Шта су страни кључеви у СКЛ базама података?

Шта су страни кључеви у СКЛ базама података?

Страни кључеви омогућавају администраторима базе података да лако идентификују различите везе које постоје у систему управљања СКЛ базом података.





СКЛ врши математичке операције над подацима у оквиру система за управљање базом података. Ове базе података садрже различите табеле у којима свака чува податке о одређеном ентитету. Ако имате базу података о изнајмљивању аутомобила, ентитет (или табела) у тој бази података ће бити корисници (који ће складиштити све личне податке о сваком купцу).





Ове табеле базе података садрже редове и колоне, где сваки ред садржи запис, а свака колона садржи податке специфичне за атрибут.





У систему за управљање базом података, сваки запис (или ред) би требао бити јединствен.

Примарни кључеви

Иако је одредба да сваки запис у табели треба да буде различит, то није увек случај. Настављајући са примером базе података о изнајмљивању аутомобила, ако база података садржи два купца од којих сваки има име Јохн Бровн, могло би се очекивати да Јохн Бровн врати Мерцедес-Бенз који није изнајмио.



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

шта ради паметни телевизор

Због тога би сваки запис у систему за управљање СКЛ базом података требао имати примарни кључ.





Коришћење примарних кључева у бази података

Да бисте укључили примарне кључеве у систем за управљање базом података помоћу СКЛ -а, можете их једноставно додати као нормалан атрибут при креирању нове табеле. Тако ће табела купаца садржати четири атрибута (или колоне):

  • ЦарОвнерИД (који ће складиштити примарни кључ)
  • Име
  • Презиме
  • Број телефона

Повезан: Како направити табелу у СКЛ -у





Сада ће сваки запис о кориснику који уђе у базу података имати јединствени идентификациони број, као и име, презиме и телефонски број. Телефонски број није довољно јединствен да буде примарни кључ, јер иако је јединствен само за једну особу, особа може лако да промени свој број, што значи да би сада припадао некој другој особи.

Запис са примером примарног кључа

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

Горњи СКЛ код ће додати нови запис у већ постојећи Купци сто. Доња табела приказује табелу нових купаца са два записа Јохн Бровна.

Страни кључ

Сада имате примарне кључеве који јединствено разликују једног изнајмљивача аутомобила од другог. Једини проблем је што у бази података нема стварне везе између сваког Јохна Бровна и аутомобила који изнајмљује.

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

Шта је страни кључ?

У систему управљања СКЛ базом података, страни кључ је јединствени идентификатор или комбинација јединствених идентификатора који повезују две или више табела у бази података.

Од четири постојећа система за управљање СКЛ базама података, систем управљања релационим базама података је најпопуларнији. Приликом одлучивања која табела у релационој бази података треба да има страни кључ, прво треба да идентификујете која табела је предмет, а која објект у њиховом односу.

Враћајући се у базу података о изнајмљивању аутомобила, да бисте сваког купца повезали са исправним аутомобилом, морате схватити да купац (субјект) изнајмљује аутомобил (објект). Према томе, страни кључ би требао бити у табели аутомобила.

СКЛ код који генерише табелу са страним кључем мало се разликује од норме.

Креирање табеле са примером страног кључа

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Као што видите у коду изнад, страни кључ мора бити експлицитно идентификован као такав, заједно са референцом на примарни кључ који је повезан са новом табелом.

како уклонити старе управљачке програме за виндовс 10

Повезан: Основне СКЛ наредбе Цхеат Схеет за почетнике

Да бисте додали запис у нову табелу, морате да се уверите да се вредност у пољу спољног кључа подудара са вредношћу у пољу примарног кључа оригиналне табеле.

Додавање записа са примером страног кључа

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

Горњи код ствара нови запис у новом Аутомобили Табела даје следећи резултат.

Столови за аутомобиле

Из горње табеле можете идентификовати исправног Јохна Бровна који изнајмљује Мерцедес-Бенз по страном кључу у евиденцији.

Напредни страни кључеви

Постоје два друга начина за коришћење страног кључа у бази података.

Ако се осврнете на горњу дефиницију страног кључа, открићете да он каже да страни кључ може бити јединствени идентификатор или комбинација јединствених идентификатора.

Враћајући се на пример базе података о изнајмљивању аутомобила, видећете да креирање новог записа (истог аутомобила) сваки пут када купац изнајми тај аутомобил, поништава сврху Аутомобили сто. Ако су аутомобили на продају и једном су продати једном купцу, постојећа база података је савршена; али с обзиром да се аутомобили изнајмљују, постоји бољи начин за представљање ових података.

Сложени кључеви

Сложени кључ има два или више јединствених идентификатора. У релационој бази података биће случајева када употреба једног страног кључа неће довољно представљати односе који постоје у тој бази података.

У примеру изнајмљивања аутомобила, најпрактичнији приступ је креирање новог стола у којем се чувају детаљи изнајмљивања. Да би информације у табели за изнајмљивање аутомобила биле корисне, морају се повезати и са аутомобилом и са столовима за купце.

Креирање табеле са композитним страним кључевима

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

Горњи код приказује важну тачку; иако табела у СКЛ бази података може имати више страних кључева, може имати само један примарни кључ. То је зато што би требало постојати само један јединствен начин за идентификацију записа.

Потребно је комбиновати сва три атрибута у табели да бисте имали јединствени кључ. Купац може изнајмити више од једног аутомобила истог дана (дакле Идентификација купца и ДатеРентед није добра комбинација) више клијената такође може изнајмити исти аутомобил истог дана (дакле Број лиценце и ДатеРентед није добра комбинација).

Међутим, стварање сложеног кључа који говори који купац, који аутомобил и на који дан чини одличан јединствени кључ. Овај јединствени кључ представља и сложени страни кључ и композитни примарни кључ.

како да добијете више награда за гоогле мишљење

Страни примарни кључеви

О да, страни примарни кључеви ипак излазе. Иако за то не постоји службени назив, страни кључ такође може бити примарни кључ у истој табели. То се дешава када креирате нову табелу која садржи специјализоване податке о постојећем ентитету (или запис у другој табели).

Рецимо да је Фред (који ради у компанији за изнајмљивање аутомобила) у бази података компаније испод табеле запослених. Након неколико година он постаје супервизор и додаје се за надзорнички сто.

Фред је и даље запослен и имаће исти идентификациони број. Тако је Фредов ИД запосленика сада у табели супервизора као страни кључ који ће такође постати примарни кључ у тој табели (јер нема смисла стварати нови ИД број за Фреда сада када је он надзорник).

Сада можете идентификовати стране кључеве у СКЛ базама података

Страни кључеви повезују различите табеле унутар СКЛ базе података. Из овог чланка можете видети шта је страни кључ, како функционише и зашто је важно да их имате у бази података. Такође разумете основне и још сложеније облике страних кључева.

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

Објави Објави Твеет Емаил Научите како користити операције пројекта и одабира у СКЛ -у

Упознајте се са СКЛ релационим базама података разумевајући операције Пројекат и Одабир са овим примерима.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Програмирање
  • СКЛ
  • база података
О аутору Кадеисха Кеан(Објављен 21 чланак)

Кадеисха Кеан је програмер софтвера и писац техничке/технологије. Она има изразиту способност да поједностави неке од најсложенијих технолошких концепата; производњу материјала који може лако разумети сваки почетник у технологији. Одушевљена је писањем, развојем занимљивог софтвера и путовањем по свету (кроз документарне филмове).

Више од Кадеисха Кеан

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили