Примарни кључ у односу на страни кључ: у чему је разлика?

Преглед садржаја:

Anonim

Пре него што научимо разлику између примарног и страног кључа, научимо:

Шта су кључеви?

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

Шта је однос базе података?

Релација базе података је асоцијација између једне или више табела које се креирају помоћу израза придруживања. Користи се за ефикасно преузимање података из базе података. Постоје првенствено три врсте односа 1) Један на један, 2) Један на много, 3) Много на много.

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

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

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

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

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

КЉУЧНЕ РАЗЛИКЕ:

  • Ограничење примарног кључа је ступац који јединствено идентификује сваки ред у табели система управљања релационом базом података, док је страни кључ ступац који ствара везу између две табеле.
  • Примарни кључ никада не прихвата нулл вредности, док страни кључ може прихватити више нулл вредности.
  • У табели можете имати само један примарни кључ, док у табели можете имати више страних кључева.
  • Вредност примарног кључа не може се уклонити из надређене табеле, док се вредност страног кључа може уклонити из подређене табеле.
  • Ниједна два реда не могу имати идентичне вредности за примарни кључ, с друге стране страни кључ може садржати дуплиране вредности.
  • Нема ограничења за уметање вредности у колону табеле док се убацује било која вредност у табелу страног кључа, осигурајте да је вредност присутна у колони примарног кључа.

Зашто користити примарни кључ?

Ево слабости / предности коришћења примарног кључа:

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

Зашто користити страни кључ?

Ево важних разлога употребе страног кључа:

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

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

Синтакса:

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

CREATE TABLE (Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);

Ево,

  • Табле_Наме је име табеле коју морате да креирате.
  • Име колоне је име колоне која има примарни кључ.

Пример:

СтудИД Ролл Но. Име Презиме Емаил
1 11 Том Цена Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели.
2 12 Ницк Вригхт Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели.
3 13 Дана Натан Ова адреса е-поште је заштићена од нежељених робота. Поште заштићена је од спам напада, треба омогућити ЈаваСкрипт да бисте је видели.

У горњем примеру смо креирали студентску табелу са колонама попут СтудИД, Ролл Но, Фирст Наме, Презиме и Емаил. СтудИД је изабран као примарни кључ јер може јединствено да идентификује остале редове у табели.

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

Синтакса:

Испод је синтакса страног кључа:

CREATE TABLE 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

Ево,

  • Параметар Назив табеле означава назив табеле коју ћете створити.
  • Параметри колона1, колона2… приказују колоне које треба додати у табелу.
  • Ограничење означава назив ограничења које креирате.
  • Референце указују на табелу са примарним кључем.

Пример:

ДептЦоде ДептНаме
001 Наука
002 енглески језик
005 рачунар
ИД наставника Фнаме Лнаме
Б002 Давид Варнер
Б017 Сара Јосифа
Б009 Мике Брунтон

У горњем примеру имамо два стола, учитеља и одељење у школи. Међутим, не постоји начин да се види која претрага у ком одељењу ради.

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

ИД наставника ДептЦоде Фнаме Лнаме
Б002 002 Давид Варнер
Б017 002 Сара Јосифа
Б009 001 Мике Брунтон

Овај концепт познат је и под називом Референцијални интегритет.

Разлика између примарног и страног кључа

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

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