Креирање база података и табела у СКЛ-у

Креирање базе података

Да ли сте спремни да започнете креирање база података и табела са структуром језика упита ? У овом чланку истражујемо процес креирања таблица ручно помоћу ЦРЕАТЕ ДАТАБАСЕ и ЦРЕАТЕ ТАБЛЕ наредби. Ако сте нови у СКЛ-у, можда ћете прво желети да погледате чланак о СКЛ Басицс-у .

Пословни захтеви

Пре него што сједнемо на тастатури, морамо осигурати да имамо солидно разумијевање захтјева купца. Који је најбољи начин да се добије овај увид? Разговарајте с купцем, наравно! После седнице са директором КСИЗ-а за људске ресурсе, сазнајемо да су то продавница за продају видгета и да су првенствено заинтересовани за праћење информација о њиховом продајном особљу.

КСИЗ Цорпоратион дели своје продајне силе в взходне ин заходне регије, од катерих је всака раздељена на штевилне територије, ки јих покривајо посамезни продајалци. Одељење за људске ресурсе би желело да прати територију коју покрива сваки запослени, као и информације о платама и структури надзорника сваког запосленог. Да бисмо испунили ове услове, направили смо базу података која се састоји од три табеле приказане у дијаграму односа ентитета на овој страници.

Избор платформе базе података

Одлучили смо да користимо систем управљања базама података (или ДБМС) који је изграђен на језику Струцтуред Куери Лангуаге (СКЛ). Због тога, све наше базе података и наредбе за креирање таблице требају бити написане с стандардним АНСИ СКЛ-ом.

Као додатна предност, употреба АНСИ-компатибилног СКЛ-а ће осигурати да ове команде раде на било којој бази података која подржава СКЛ стандард , укључујући Орацле и Мицрософт СКЛ Сервер. Ако још нисте одабрали платформу за своју базу података, чланак Опције софтвера базе података вас шета кроз процес селекције.

Креирање базе података

Наш први корак је стварање саме базе података. Многи системи за управљање базама података нуде низ опција прилагођавања параметара базе података на овом кораку, али наша база података дозвољава једноставно креирање базе података. Као и код свих наших команди, можда ћете желети да консултујете документацију за свој ДБМС да бисте утврдили да ли неки напредни параметри које подржава ваш специфични систем задовољи ваше потребе. Користимо команду ЦРЕАТЕ ДАТАБАСЕ да подесите нашу базу података:

ЦРЕАТЕ ДАТАБАСЕ особље

Узмите посебну напомену о капитализацији која се користи у горе наведеном примеру. Уобичајена пракса међу СКЛ програмерима је да користе сва велика слова за СКЛ кључне речи као што су "ЦРЕАТЕ" и "ДАТАБАСЕ" док користите све мале слова за корисничко дефинисана имена као што је назив особља. Ове конвенције обезбеђују лако читљивост.

Наставите читати овај туторијал док правимо табеле за нашу базу података.

Учите више

Ако желите да сазнате више о структурираном језику упита , прочитајте Увод у СКЛ или се пријавите за наш бесплатни курс Леарнинг СКЛ е-маил.

Сада када смо дизајнирали и креирали нашу базу података, спремни смо да започнемо стварање три табеле које се користе за чување података о кадровима компаније КСИЗ Цорпоратион. Ми ћемо реализовати таблице које смо дизајнирали у претходном дијелу овог туторијала.

Стварање прве табле

Наша прва табела састоји се од личних података за сваког запосленог у нашој компанији. Морамо укључити име сваког запосленог, плату, идентификацију и менаџер. Добра пракса дизајнирања је да раздвојите задња и друга имена у засебна поља да бисте поједноставили претраживање и сортирање података у будућности. Такође, пратимо менаџер сваког запосленог тако што ћемо унети референцу на ИД запосленог менаџера у сваком записнику радника. Хајде прво погледати жељену таблицу запослених.

Атрибут РепортсТо чува ИД менаџера за сваког запосленог. Из приказаних узорака можемо утврдити да је Суе Сцампи менаџер Том Кендалл и Јохн Смитха. Међутим, у бази података о менаџеру Суе-а нема података, што указује унос НУЛЛ у њен ред.

Сада можемо користити СКЛ да креирамо табелу у нашој бази кадрова. Прије него то урадимо, обезбедимо да смо у исправној бази података издавањем УСЕ наредбе:

УСЕ особље;

Алтернативно, "база података база података"; наредба би извршила исту функцију. Сада можемо погледати СКЛ наредбу која се користи за креирање табеле запослених:

ЦРЕАТЕ ТАБЛЕ запослени (емплоиееид ИНТЕГЕР НОТ НУЛЛ, презиме ВАРЦХАР (25) НИЈЕ НУЛЛ, прво име ВАРЦХАР (25) НИЈЕ НУЛЛ, пријавити ИНТЕГЕР НУЛЛ);

Као иу претходном примеру, имајте на уму да програмска конвенција диктира да користимо сва велика слова за СКЛ кључне речи и мале слова за колоне и табеле корисничке називе. Горња команда може изгледати збуњујуће у почетку, али уствари постоји једноставна структура иза ње. Ево генерализованог приказа који би могао мало разјаснити ствари:

ЦРЕАТЕ ТАБЛЕ табле_наме (атрибут_наме опције података типа података, ..., атрибут_наме опције података типа података);

Атрибути и типови података

У претходном примјеру, име таблице је запослени и укључујемо четири атрибута: емплоиееид, презиме, име и репортсто. Тип података означава врсту информација коју желимо да сачува у сваком пољу. ИД радника је једноставан број цијелог броја, тако да ћемо користити тип података ИНТЕГЕР за поља запосленог и поље за пријаву. Имена запослених ће бити карактерни низови променљиве дужине и не очекујемо да запослени има име или презиме дуже од 25 знакова. Због тога ћемо користити тип ВАРЦХАР (25) за ова поља.

Вредности НУЛЛ

Такође можемо одредити НУЛЛ или НОТ НУЛЛ у пољу опција ЦРЕАТЕ израза. Ово једноставно говори базу података да ли су дозвољене НУЛЛ (или празне) вриједности за тај атрибут приликом додавања редова у базу података. У нашем примеру, Одељење за људске ресурсе захтијева да се запосленог ИД-а и комплетног имена чувају за сваког запосленог. Међутим, сваки запослени нема менаџера - извршни директор не извештава никоме! - тако да дозвољавамо унос НУЛЛ у тој области. Имајте на уму да је НУЛЛ подразумевана вредност, а изостављање ове опције ће имплицитно дозволити НУЛЛ вриједности за атрибут.

Изградња преосталих табела

Сада да погледамо табелу територија. Из брзог погледа на ове податке, чини се да морамо чувати цијели број и двије варијабле дужине. Као и код претходног примера, не очекујемо да ће ИД региона потрошити више од 25 карактера. Међутим, неке од наших територија имају дужа имена, тако да ћемо проширити дозвољену дужину тог атрибута на 40 знакова. Погледајмо одговарајући СКЛ:

ЦРЕАТЕ ТАБЛЕ територије (териториј ИНТЕГЕР НОТ НУЛЛ, територија Опис ВАРЦХАР (40) НОТ НУЛЛ, регионид ВАРЦХАР (25) НОТ НУЛЛ);

На крају, користићемо таблу ЕмплоиееТерриториес за чување односа између запослених и територија. Детаљне информације о сваком запосленом и територији чувају се у нашим претходним табелама. Због тога, потребно је само сачувати идентификационе бројеве цијелог броја у овој табели. Ако требамо проширити ове информације можемо користити ЈОИН у нашим наредбама за одабир података како би добили информације из више табела. Овај начин складиштења података смањује редундантност у нашој бази података и осигурава оптимално коришћење простора на нашим диск јединицама. Детаљну команду ћемо покрити у будућем туториалу. Ево СКЛ кода за имплементацију наше финалне таблице:

ЦРЕАТЕ ТАБЛЕ емплоиеетерриториес (емплоиееид ИНТЕГЕР НОТ НУЛЛ, територид ИНТЕГЕР НОТ НУЛЛ);

СКЛ механизам обезбеђује измену структуре базе података након стварања

Ако сте посебно запањујући данас, можда сте приметили да смо "случајно" изоставили један од захтева за дизајном приликом имплементације наших табела базе података. Директор ХР КСИЗ корпорације тражио је да база података прати податке о платама запослених и занемарили смо се да то обезбедимо у таблицама базе података које смо креирали.

Међутим, све није изгубљено. Ми можемо користити команду АЛТЕР ТАБЛЕ да додамо овај атрибут у нашу постојећу базу података. Ми желимо да плажу чувамо као целу вредност. Синтакса је прилично слична оној у наредби ЦРЕАТЕ ТАБЛЕ, овдје је:

АЛТЕР ТАБЛЕ запослени АДД плата ИНТЕГЕР НУЛЛ;

Обратите пажњу да смо прецизирали да су вриједности НУЛЛ дозвољене за овај атрибут. У већини случајева, не постоји опција приликом додавања колоне постојећој таблици. Ово је због чињенице да табела већ садржи редове без уписа за овај атрибут. Због тога, ДБМС аутоматски убацује вриједност НУЛЛ за попуњавање празнине.

И то зависи од погледа СКЛ базе података и процеса креирања стола. Често проверавајте за нове рате у нашој СКЛ туторијалној серији. Ако желите да подсетник за е-пошту додате нове чланке на страницу О базе података, обавезно се претплатите на наше билтене!