logo

Страни кључ у ДБМС

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

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

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

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

Употреба страног кључа

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

Пример страног кључа

Хајде да размотримо пример да бисмо разумели рад страног кључа.

јава визуализатор

Размотрите две табеле Ученик и Одељење имају своје одговарајуће атрибуте као што је приказано у структури табеле испод:

торцх инсталл
Страни кључ у ДБМС
Страни кључ у ДБМС

У табелама је један атрибут, видите, уобичајен, тј Студ_Ид , али има различита кључна ограничења за обе табеле. У табели Студент, поље Студ_Ид је а Примарни кључ јер јединствено идентификује сва друга поља Студентске табеле. С друге стране, Студ_Ид је а страни кључ атрибут за табелу Одељења јер делује као примарни кључ атрибута за табелу Студент. То значи да су и табела ученика и одељења међусобно повезане због атрибута Студ_Ид.

На доле приказаној слици можете видети следећу структуру односа између две табеле.

Страни кључ у ДБМС

Напомена: Референтни интегритет у ДБМС је развијен из концепта страног кључа. Јасно је да је примарни кључ сам постојећи кључ и да се страни кључ увек позива на примарни кључ у некој другој табели, у којој је табела која садржи примарни кључ позната као референтна табела или родитељска табела за другу табелу која има страни кључ.

Креирање ограничења страног кључа

На ЦРЕАТЕ ТАБЛЕ

Испод је синтакса која ће нас натерати да научимо креирање страног кључа у табели:

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int, FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id) ); 

Дакле, на овај начин можемо поставити страни кључ за табелу у МИСКЛ бази података.

У случају креирања страног кључа за табелу у СКЛ или Орацле серверу, следећа синтакса ће радити:

 CREATE TABLE Department ( Dept_name varchar (120) NOT NULL, Stud_Id int FOREIGN KEY REFERENCES Student (Stud_Id) ); 

На АЛТЕР ТАБЛЕ

Следи синтакса за креирање ограничења страног кључа на АЛТЕР ТАБЛЕ:

 ALTER TABLE Department ADD FOREIGN KEY (Stud_Id) REFERENCES Student (Stud_Id); 

Испуштање страног кључа

Да бисте избрисали страни кључ, постоји доле описана синтакса која се може користити:

 ALTER TABLE Department DROP FOREIGN KEY FK_StudentDepartment; 

Дакле, на овај начин можемо испустити страни кључ користећи АЛТЕР ТАБЛЕ у МИСКЛ бази података.

Тачка за памћење

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

ек корисничког имена

Референтне радње

Постоје неке радње које су повезане са радњама које предузима носилац табеле страног кључа:

1) Каскада

разлика између љубави и сличног

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

2) Поставите НУЛЛ

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

3) Поставите ДЕФАУЛТ

јава метод

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

4) Ограничити

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

5) Без акције

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

6) Окидачи

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