Elsődleges kulcs vs idegen kulcs: Mi a különbség?

Tartalomjegyzék:

Anonim

Mielőtt elsajátítanánk az elsődleges és az idegen kulcs közötti különbséget, tanuljuk meg:

Mik azok a kulcsok?

A kulcsok olyan attribútumok, amelyek segítenek azonosítani egy sort (duplát) egy relációban (táblázat). Ezek lehetővé teszik, hogy megtalálja a kapcsolatot két táblázat között. A kulcsok segítenek a táblázat egy vagy több oszlopának kombinációjával egyedileg azonosítani a sorokat. Az adatbáziskulcs abban is hasznos, hogy egyedi rekordot vagy sort keressen a táblából.

Mi az adatbázis-kapcsolat?

Az adatbázis-kapcsolat asszociáció egy vagy több tábla között, amelyek csatlakozási utasítások segítségével jönnek létre. Az adatok hatékony lekérésére szolgál az adatbázisból. Elsősorban háromféle kapcsolat létezik: 1) egy-egy, 2) egy-sok, 3) sok-sok.

Mi az elsődleges kulcs?

Az elsődleges kulcskorlát egy oszlop vagy oszlopcsoport, amely egyedileg azonosítja a relációs adatbázis-kezelő rendszer táblázatának minden sorát. Ez nem lehet másolat, vagyis ugyanaz az érték nem szerepelhet többször a táblázatban.

Egy táblának több elsődleges kulcsa lehet. Az elsődleges kulcs az oszlop vagy a táblázat szintjén határozható meg. Ha összetett elsődleges kulcsot hoz létre, azt a táblázat szintjén kell meghatározni.

Mi az a külföldi kulcs?

Az idegen kulcs egy oszlop, amely kapcsolatot hoz létre két táblázat között. Az idegen kulcs célja az adatok integritásának fenntartása és az entitás két különböző példánya közötti navigáció lehetővé tétele. Kereszthivatkozásként szolgál két táblázat között, mivel egy másik táblázat elsődleges kulcsára hivatkozik. Az adatbázis minden kapcsolatát támogatni kell egy idegen kulccsal.

Főbb különbségek:

  • Az elsődleges kulcs korlát olyan oszlop, amely egyedileg azonosítja a relációs adatbázis-kezelő rendszer táblázatának minden sorát, míg az idegen kulcs olyan oszlop, amely kapcsolatot hoz létre két táblázat között.
  • Az elsődleges kulcs soha nem fogad el null értékeket, míg az idegen kulcs több null értéket is elfogadhat.
  • Csak egy elsődleges kulcs lehet egy táblázatban, míg több idegen kulcs lehet egy táblázatban.
  • Az elsődleges kulcs értéke nem távolítható el a szülő táblából, míg az idegen kulcs értéke eltávolítható a gyermek táblából.
  • Két sorban nem lehet azonos érték az elsődleges kulcs számára, másrészt egy idegen kulcs tartalmazhat ismétlődő értékeket.
  • Nincs korlátozás az értékek beszúrására a táblázat oszlopába, miközben bármilyen értéket be kell illeszteni az idegen kulcs táblába, győződjön meg arról, hogy az érték szerepel az elsődleges kulcs oszlopában.

Miért használja az elsődleges kulcsot?

Íme az elsődleges kulcs használatának hátrányai / előnyei:

  • Az elsődleges kulcs fő célja, hogy azonosítsa az adatbázis táblában szereplő minden egyes rekordot.
  • Akkor használhat elsődleges kulcsot, ha nem engedélyezi, hogy valaki null értékeket írjon be.
  • Ha törli vagy frissíti a rekordokat, akkor a megadott műveletet végrehajtja az adatok integritásának biztosítása érdekében.
  • Végezze el a korlátozási műveletet a szülőtábla törlésének vagy frissítésének elutasításához.
  • Az adatok fürtözött indexek sorozatába vannak rendezve, amikor fizikailag rendezi a DBMS-táblákat.

Miért érdemes használni a Foreign Key-t?

Íme a külföldi kulcs használatának fontos okai:

  • Az idegen kulcsok segítenek az entitások migrálásában a szülőtábla elsődleges kulcsával.
  • Egy idegen kulcs lehetővé teszi két vagy több táblázat összekapcsolását.
  • Ez következetesvé teszi az adatbázis adatait.
  • Egy idegen kulcs használható arra, hogy egy oszlop vagy oszlopkombináció illeszkedjen a szülőtábla elsődleges kulcsához.
  • Az SQL idegen kulcs korlátozásával megbizonyosodhatunk arról, hogy az adatszülő referenciális integritása megfelel-e az utódtábla értékeinek.

Példa az elsődleges kulcsra

Szintaxis:

Az alábbiakban látható az elsődleges kulcs szintaxisa:

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

Itt,

  • A tábla_név a létrehozandó tábla neve.
  • Az oszlop_név az elsődleges kulccsal rendelkező oszlop neve.

Példa:

StudID Tekercs sz Keresztnév Vezetéknév Email
1 11. Tom Ár Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.
2 12. Nick Wright Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.
3 13. Dana Natan Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez.

A fenti példában létrehoztunk egy diáktáblát olyan oszlopokkal, mint a StudID, a Roll Roll, a First Name, a Last Name és az Email. A StudID-t választják elsődleges kulcsnak, mert egyedülállóan azonosíthatja a táblázat többi sorát.

Példa idegen kulcsra

Szintaxis:

Az alábbiakban található az idegen kulcs szintaxisa:

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)… );

Itt,

  • A Tábla neve paraméter a létrehozni kívánt tábla nevét jelzi.
  • A paraméterek oszlop1, oszlop2 ... azokat az oszlopokat ábrázolják, amelyeket hozzá kell adni a táblához.
  • A kényszer a létrehozott kényszer nevét jelöli.
  • A hivatkozások egy táblázatot jelölnek az elsődleges kulccsal.

Példa:

DeptCode DeptName
001 Tudomány
002 angol
005 Számítógép
Tanári igazolvány Fname Lname
B002 David Warner
B017 Sara József
B009 Mikrofon Brunton

A fenti példában két asztalunk van, egy tanár és egy osztály egy iskolában. Arról azonban nem lehet megtudni, hogy melyik osztály melyik osztályon működik.

Ebben a táblázatban, hozzáadva a Deptcode idegen kulcsát a Tanár nevéhez, kapcsolatot hozhatunk létre a két táblázat között.

Tanári igazolvány DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara József
B009 001 Mikrofon Brunton

Ez a fogalom referenciális integritás néven is ismert.

Különbség az elsődleges kulcs és az idegen kulcs között

Itt található a legfontosabb különbség az elsődleges kulcs és az idegen kulcs között:

Elsődleges kulcs Idegen kulcs
Az elsődleges kulcskorlát egy oszlop vagy oszlopcsoport, amely egyedileg azonosítja a relációs adatbázis-kezelő rendszer táblázatának minden sorát. Az idegen kulcs egy oszlop, amely kapcsolatot hoz létre két táblázat között.
Segít abban, hogy egyedileg azonosítson egy rekordot a táblázatban. Ez egy olyan mező a táblázatban, amely egy másik táblázat elsődleges kulcsa.
Az elsődleges kulcs soha nem fogad el null értékeket. Egy idegen kulcs több nullértéket is elfogadhat.
Az elsődleges kulcs egy fürtözött index, és a DBMS táblázat adatai fizikailag a fürtözött index sorrendjében vannak rendezve. Az idegen kulcs nem hozhat létre indexet, fürtözött vagy nem fürtözött.
Megadhatja az egyetlen Elsődleges kulcsot egy táblázatban. Több idegen kulcs is szerepelhet egy táblázatban.
Az elsődleges kulcs értéke nem távolítható el a szülő táblából. Az idegen kulcs értéke törölhető az alárendelt tábláról.
Az ideiglenes táblákon implicit módon meghatározhatja az elsődleges kulcsot. Nem definiálhat idegen kulcsokat a helyi vagy globális ideiglenes táblákon.
Az elsődleges kulcs egy fürtözött index. Alapértelmezés szerint nem fürtözött index.
Két sorban nem lehet azonos érték az elsődleges kulcshoz. Egy idegen kulcs tartalmazhat ismétlődő értékeket.
Nincs korlátozás az értékek táblázat oszlopba történő beszúrására. Bármelyik érték beszúrása az idegen kulcs táblába, ellenőrizze, hogy az érték szerepel-e az elsődleges kulcs oszlopában.