Страни кључеви омогућавају администраторима база података да лако препознају различите везе које постоје у систему управљања СКЛ базама података.
СКЛ врши математичке операције над подацима унутар система за управљање базама података. Ове базе података садрже различите табеле у које свака смешта податке о одређеном ентитету. Ако имате базу података о изнајмљивању аутомобила, ентитет (или табела) у тој бази података биће купци (који ће чувати све личне податке о сваком купцу).
Ове табеле базе података садрже редове и колоне, где сваки ред садржи запис, а свака колона садржи податке специфичне за атрибут.
У систему управљања базом података, сваки запис (или ред) треба да буде јединствен.
Примарни тастери
Иако је предвиђено да сваки запис у табели треба да буде различит, то није увек случај. Настављајући са примером базе података о изнајмљивању аутомобила, ако база података садржи по два купца имају име „Јохн Бровн“, могло би се очекивати да Јохн Бровн врати Мерцедес-Бенз који није закуп.
Стварање примарног кључа умањиће овај ризик. У СКЛ систему управљања базом података, примарни кључ је јединствени идентификатор који разликује један запис од другог.
Због тога би сваки запис у систему управљања базом података СКЛ требао имати примарни кључ.
Коришћење примарних кључева у бази података
Да бисте укључили примарне кључеве у систем за управљање базом података помоћу СКЛ-а, можете га једноставно додати као уобичајени атрибут приликом креирања нове табеле. Тако ће табела купаца садржати четири атрибута (или колоне):
- ЦарОвнерИД (који ће чувати примарни кључ)
- Име
- Презиме
- Број телефона
Повезан: Како створити табелу у СКЛ-у
Сада ће сваки кориснички запис који уђе у базу података имати јединствени идентификациони број, као и име, презиме и телефонски број. Телефонски број није довољно јединствен да би био примарни кључ, јер иако је јединствен само за једну особу, особа лако може да промени свој број, што значи да би сада припадао неком другом.
Запис са примером примарног кључа
/ * креира нови запис у табели купаца * /
УМЕСТИ У ВРЕДНОСТИ купаца
('0004',
'Јован',
'Браон',
'111-999-5555');
Горњи СКЛ код ће додати нови запис у већ постојећи Купци сто. Табела у наставку приказује нову табелу купаца са два записа Јохн Бровн-а.
Страни кључ
Сада имате примарне кључеве који јединствено разликују једног изнајмљивача аутомобила од другог. Једини проблем је што у бази података не постоји стварна веза између сваког Џона Брауна и аутомобила који изнајмљује.
Стога могућност погрешке и даље постоји. Овде се појављују страни кључеви. Коришћење примарног кључа за решавање проблема нејасноћа власништва могуће је постићи само ако се примарни кључ двоструко користи као страни кључ.
Шта је страни кључ?
У СКЛ систему управљања базом података, страни кључ је јединствени идентификатор или комбинација јединствених идентификатора који повезују две или више табела у бази података.
Од четири постојећа СКЛ система за управљање базама података, релациони систем за управљање базама података је најпопуларнији. Када одлучујете која табела у релационој бази података треба да има страни кључ, прво треба да идентификујете која је табела субјекат, а који објекат у њиховом односу.
Враћајући се у базу података о изнајмљивању аутомобила, да бисте сваког купца повезали са исправним аутомобилом, мораћете да схватите да купац (субјекат) изнајмљује аутомобил (објекат). Због тога би страни кључ требао бити у табели аутомобила.
СКЛ код који генерише табелу са страним кључем мало се разликује од норме.
Креирање табеле са примером страног кључа
/ * креира нову табелу аутомобила у бази података о изнајмљивању аутомобила * /
СТВОРИ ТАБЕЛУ Аутомобили
(
Број дозволе варцхар (30) НУЛЛ ПРИМАРНИ КЉУЧ,
ЦарТипе варцхар (30) НИЈЕ НУЛЛ,
ЦустомерИД варцхар (30) СТРАНЕ КЉУЧНЕ РЕФЕРЕНЦЕ Купци (ЦустомерИД)
);
Као што видите у коду изнад, страни кључ мора бити експлицитно идентификован као такав, заједно са референцом на примарни кључ који је повезан са новом табелом.
Повезан: Основне таблице СКЛ наредби за почетнике
Да бисте додали запис у нову табелу, мораћете да се уверите да се вредност у пољу спољног кључа подудара са вредношћу у пољу примарног кључа оригиналне табеле.
Додавање записа са примером страног кључа
/ * креира нови запис у табели аутомобила * /
ИНСЕРТ ИНТО Царс ВАЛУЕС
('100012',
„Мерцедес-Бенз“,
'0004');
Горњи код ствара нови запис у новом Аутомобили табела која даје следећи резултат.
Сто за аутомобиле
Из горње табеле можете да препознате исправног Џона Брауна који изнајмљује Мерцедес-Бенз по страном кључу у евиденцији.
Унапређени страни кључеви
Постоје два начина за коришћење страног кључа у бази података.
Ако се осврнете на горњу дефиницију страног кључа, видећете да она каже да страни кључ може бити јединствени идентификатор или комбинација јединствених идентификатора.
Враћајући се на пример базе података о изнајмљивању аутомобила, видећете да стварање новог записа (истог аутомобила) сваки пут када купац тај аутомобил изнајми, поништава сврху Аутомобили сто. Ако се аутомобили продају и једном продају једном купцу, постојећа база података је савршена; али с обзиром да се аутомобили изнајмљују, постоји бољи начин за представљање ових података.
Композитни тастери
Састављени кључ има два или више јединствених идентификатора. У релационој бази података биће случајева када употреба једног страног кључа неће у довољној мери представљати везе које постоје у тој бази података.
У примеру изнајмљивања аутомобила, најпрактичнији приступ је стварање нове табеле која чува детаље о закупу. Да би информације у табели изнајмљивања аутомобила биле корисне, мора се повезати и са табелом аутомобила и са купцима.
Креирање табеле са композитним страним кључевима
/ * креира ЦарРентал табелу у бази података о изнајмљивању аутомобила * /
СТВОРИ ТАБЕЛУ ЦарРентал
(
Датум ИЗДАВАЊА ДАТУМ НИЈЕ НУЛЛ,
Број лиценце варцхар (30) НИЈЕ ПОСТОЈАНЕ СТРАНЕ КЉУЧНЕ РЕФЕРЕНЦЕ Аутомобили (број лиценце),
ЦустомерИД варцхар (30) НИЈЕ НУЛТА СТРАНЕ КЉУЧНЕ РЕФЕРЕНЦЕ Купци (ЦустомерИД),
ПРИМАРНИ КЉУЧ (Датум издавања, број лиценце, ИД клијента)
);
Горњи код приказује важну тачку; иако табела у СКЛ бази података може имати више страних кључева, може имати само један примарни кључ. То је зато што би требало да постоји само један јединствени начин за идентификацију записа.
Потребно је комбиновати сва три атрибута у табели да бисте имали јединствени кључ. Купац може изнајмити више аутомобила истог дана (дакле Идентификација купца и ДатумИзнајмљено није добра комбинација) више купаца такође може изнајмити исти аутомобил истог дана (дакле Број лиценце и ДатумИзнајмљено није добра комбинација).
Међутим, стварање сложеног кључа који говори који купац, који аутомобил и који дан чини одличан јединствени кључ. Овај јединствени кључ представља и композитни страни кључ и композитни примарни кључ.
Страни примарни кључеви
О да, страни примарни кључеви излазе. Иако за њега не постоји званични назив, страни кључ такође може бити примарни кључ у истој табели. То се дешава када креирате нову табелу која садржи специјализоване податке о постојећем ентитету (или запис у другој табели).
Рецимо да је Фред (који ради у компанији за изнајмљивање аутомобила) у бази података компаније испод табеле запослених. После неколико година постаје супервизор и додаје се у табелу супервизора.
Фред је и даље запослен и и даље ће имати исти матични број. Тако се Фредов ИД запосленог сада налази у табели супервизора као страни кључ који ће такође постати примарни кључ у тој табели (јер нема смисла креирати нови ИД број за Фреда сада када је супервизор).
Сада можете препознати стране кључеве у базама података СКЛ
Страни кључеви повезују различите табеле унутар СКЛ базе података. Из овог чланка можете видети шта је страни кључ, како функционише и зашто је важно да их имате у бази података. Такође разумете основне, и још сложеније облике страних кључева.
Ако мислите да су страни кључеви занимљиви, имат ћете дан на терену када почнете да користите пројекат и операције одабира за испитивање ваших СКЛ база података.
Упознајте се са СКЛ релационим базама података разумевањем пројеката и селекције на овим примерима.
Прочитајте следеће
- Програмирање
- Програмирање
- СКЛ
- база података
Кадеисха Кеан је програмер софтвера у пуном слогу и писац техничких / технолошких технологија. Она има изразиту способност да поједностави неке од најсложенијих технолошких концепата; производећи материјал који лако може разумети било који технолошки новак. Одушевљена је писањем, развојем занимљивог софтвера и путовањем по свету (кроз документарне филмове).
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!
Још један корак…!
Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.