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

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

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

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

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

instagram viewer
Дијаграм ентитета и односа на овој страници.

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

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

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

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

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

СТВАРАЊЕ БАЗЕ БАЗА особља

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

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

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

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

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

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

УСЕ особље;

Алтернативно, „Особље БАЗЕ ПОДАТАКА;“ наредба би извршила исту функцију. Сада можемо погледати СКЛ наредбу која се користи за креирање табеле наших запослених:

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

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

СТВОРИ ТАБЕЛУ име_табеле
(опције типа атрибута_име података,
...,
опције атрибута_име типа података);

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

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

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

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

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

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

Погледајмо одговарајући СКЛ:

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

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

Овај метод чувања података смањује сувишност у нашој бази података и осигурава оптимално коришћење простора на нашим дисковима за складиштење. У наредном упутству детаљно ћемо покрити наредбу ЈОИН. Ево СКЛ кода за примену наше завршне табеле:

СТВОРИТЕ ТАБЕЛУ територија запослених
(запосленик ИНТЕГЕР НОТ НУЛЛ,
териториј ИНТЕГЕР НОТ НУЛЛ);

Механизам СКЛ пружа могућност промене структуре базе података након стварања

Ако сте данас посебно оштроумни, можда сте приметили да смо „случајно“ пропустили један од захтева дизајна приликом примене наших табела базе података. Директор за људске ресурсе корпорације КСИЗ затражио је да база података прати податке о платама запослених, а ми смо то занемарили у табелама базе података које смо креирали.

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

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

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