DBMS kulcsok: Jelölt, Elsődleges, Szuper és Idegen típusok
⚡ Okos összefoglaló
A DBMS kulcsai olyan attribútumok, amelyek egyedileg azonosítanak egy sort egy táblázatban, és kapcsolatokat hoznak létre a táblázatok között. Nyolc kulcstípus, a szuper és elsődleges kulcstól az idegen és helyettes kulcsig, biztosítja az azonosságot és az integritást egy relációs adatbázisban.

Mik azok a kulcsok a DBMS-ben?
Kulcsok a DBMS-ben egy olyan attribútum vagy attribútumok halmaza, amely segít azonosítani egy sort (tuple-t) egy relációban (táblában). Lehetővé teszik két tábla közötti kapcsolat megtalálását. A kulcsok segítenek egyedileg azonosítani egy sort egy táblázatban egy vagy több oszlop kombinációjával, és hasznosak egy egyedi rekord megtalálásában a táblázatban.
Példa:
| munkavállalói azonosító | Keresztnév | Vezetéknév |
|---|---|---|
| 11 | Andrew | Johnson |
| 22 | Tomi | Fa |
| 33 | Alex | Vonszol |
A fenti példában az alkalmazotti azonosító egy elsődleges kulcs, mivel egyedileg azonosítja az alkalmazotti rekordot. Ebben a táblázatban egyetlen más alkalmazottnak sem lehet ugyanaz az alkalmazotti azonosítója.
Miért van szükségünk kulcsra?
Íme néhány ok, amiért érdemes kulcsot használni egy adatbázis-kezelő rendszerben:
- A kulcsok segítenek azonosítani egy táblázat bármely sorát. Egy valós alkalmazásban egy táblázat több ezer rekordot is tartalmazhat, és a rekordok duplikálódhatnak. A kulcsok biztosítják, hogy ezen kihívások ellenére is egyedileg azonosítható legyen egy táblázatrekord.
- Lehetővé teszik a táblák közötti kapcsolatok létrehozását és azonosítását.
- Segítenek az identitás és az integritás érvényesítésében a kapcsolatban.
Kulcstípusok a DBMS-ben
A DBMS-ben főként nyolc különböző típusú kulcs létezik, és mindegyik kulcsnak megvan a saját funkciója:
- Szuper kulcs
- Elsődleges kulcs
- Jelöltkulcs
- Alternatív kulcs
- Idegen kulcs
- Összetett kulcs
- Összetett kulcs
- Helyettesítő kulcs
Az alábbi táblázat mind a nyolcat egy pillantással összefoglalja, mielőtt részletesen elmagyaráznánk őket.
| Kulcs | Egy sorban | Egyedi? |
|---|---|---|
| Szuper kulcs | Bármely sort azonosító attribútumkészlet, az extrák megengedettek. | Igen |
| Jelöltkulcs | Minimális szuperkulcs, redundáns attribútum nélkül | Igen |
| Elsődleges kulcs | A kiválasztott jelöltkulcs, nem null | Igen |
| Alternatív kulcs | Egy jelöltkulcs, amelyet nem elsődlegesként választottak ki | Igen |
| Idegen kulcs | Egy másik táblában található elsődleges kulcsra hivatkozik | Nem |
| Összetett kulcs | Két vagy több attribútum, amelyek mindegyike esetleg nem egyedi | Kombinált |
| Összetett kulcs | Két vagy több oszlop kombinálva az egyediség érdekében | Kombinált |
| Helyettesítő kulcs | Egy mesterségesen generált azonosító | Igen |
Mi az a szuperkulcs?
A szuperkulcs egy vagy több kulcsból álló csoport, amely egy táblázat sorait azonosítja. A szuperkulcs további attribútumokkal is rendelkezhet, amelyekre nincs szükség az egyedi azonosításhoz.
Példa:
| EmpSSN | EmpNum | Empname |
|---|---|---|
| 9812345098 | AB05 | Látható |
| 9876512345 | AB06 | Roslyn |
| 199937890 | AB07 | James |
A fenti példában az EmpSSN és az EmpNum szuperkulcsok.
Mi az elsődleges kulcs?
ELSŐDLEGES KULCS in DBMS egy oszlop vagy oszlopcsoport egy táblázatban, amely egyedileg azonosítja a táblázat minden sorát. Az elsődleges kulcs nem lehet ismétlődő, ami azt jelenti, hogy ugyanaz az érték nem szerepelhet egynél többször a táblázatban. Egy táblázatnak nem lehet egynél több elsődleges kulcsa.
Elsődleges kulcs definiálásának szabályai
- Két sor nem rendelkezhet azonos elsődleges kulcsértékkel.
- Minden sornak tartalmaznia kell egy elsődleges kulcs értékét.
- Az elsődleges kulcs mezője nem lehet null.
- Az elsődleges kulcs oszlopában lévő érték soha nem módosítható vagy frissíthető, ha bármely idegen kulcs az elsődleges kulcsra hivatkozik.
Példa: A következő példában StudID egy elsődleges kulcs.
| StudID | Roll No | Az Ön neve | Vezetéknév | |
|---|---|---|---|---|
| 1 | 11 | Tomi | Ár: | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Nathan | mno@yahoo.com |
Mi az az alternatív kulcs?
ALTERNATÍV KULCS egy táblázat egy oszlopa vagy oszlopcsoportja, amely egyedileg azonosítja az összes sort. Egy táblázatban több elsődleges kulcs is megadható, de csak egy állítható be elsődleges kulcsként. Az összes olyan kulcsot, amely nem az elsődleges kulcs, alternatív kulcsnak nevezzük.
Példa: Ebben a táblázatban a StudID, a Roll No és az Email jogosult elsődleges kulcsként szerepelni. Mivel azonban a StudID az elsődleges kulcs, a Roll No és az Email másodlagos kulcsokká válnak.
| StudID | Roll No | Az Ön neve | Vezetéknév | |
|---|---|---|---|---|
| 1 | 11 | Tomi | Ár: | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Nathan | mno@yahoo.com |
Mi az a jelöltkulcs?
JELÖLT KULCS egy olyan attribútumok halmaza, amelyek egyedileg azonosítják a tuple-ket egy táblában. A kulcsjelölt egy szuperkulcs ismétlődő attribútumok nélkül. Az elsődleges kulcsot a kulcsjelöltek közül kell kiválasztani. Minden táblának tartalmaznia kell legalább egy kulcsjelöltet, és egy táblának több kulcsjelöltje is lehet, de csak egyetlen elsődleges kulcsa.
Egy jelöltkulcs tulajdonságai:
- Egyedi értékeket kell tartalmaznia.
- Egy kulcsjelölt több attribútummal is rendelkezhet.
- Nem tartalmazhat null értékeket.
- Tartalmaznia kell a minimálisan szükséges mezőket az egyediség biztosításához.
- Egyedileg azonosítja a táblázat minden egyes rekordját.
Példa: Az alábbi táblázatban a StudID, a Roll No és az Email olyan jelöltkulcsok, amelyek segítenek egyértelműen azonosítani egy hallgatói rekordot. A szuper- és elsődleges kulcsokkal való kapcsolatuk egy gyakori módja annak, hogy megértsük funkcionális függőség.
| StudID | Roll No | Az Ön neve | Vezetéknév | |
|---|---|---|---|---|
| 1 | 11 | Tomi | Ár: | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Nathan | mno@yahoo.com |

Mi az az idegen kulcs?
IDEGEN KULCS egy oszlop, amely kapcsolatot hoz létre két tábla között. Az idegen kulcs célja az adatok integritásának fenntartása és a navigáció lehetővé tétele egy entitás két különböző példánya között. Kereszthivatkozásként működik két tábla között, mivel egy másik tábla elsődleges kulcsára hivatkozik.
Példa:
| OsztályCode | DeptName |
|---|---|
| 001 | Tudomány |
| 002 | Angol |
| 005 | Számítógép |
| Tanári azonosító | Fname | Lnév |
|---|---|---|
| B002 | David | Warner |
| B017 | Sara | Joseph |
| B009 | Mikrofon | Brunton |
Ebben a példában két táblázatunk van egy iskolában, a Tanár és a Tanszék. Jelenlegi állapotukban nincs mód arra, hogy lássuk, melyik tanár melyik tanszéken dolgozik.
Az idegen kulcs hozzáadásával DeptCode a Tanár táblához, kapcsolatot hozhatunk létre a két tábla között.
| Tanári azonosító | OsztályCode | Fname | Lnév |
|---|---|---|---|
| B002 | 002 | David | Warner |
| B017 | 002 | Sara | Joseph |
| B009 | 001 | Mikrofon | Brunton |
Ezt a koncepciót referenciális integritásnak is nevezik.
Mi az az összetett kulcs?
ÖSSZETETT KULCS két vagy több olyan attribútummal rendelkezik, amelyek lehetővé teszik egy adott rekord egyedi azonosítását. Lehetséges, hogy az egyes oszlopok nem egyediek önmagában az adatbázison belül. Azonban kombinálva az oszlopok egyedivé válnak. Az összetett kulcs célja, hogy egyedileg azonosítsa a táblázat minden rekordját.
Példa:
| Rendelési szám | Termék azonosító | termék név | Mennyiség |
|---|---|---|---|
| B005 | JAP102459 | egér | 5 |
| B005 | DKT321573 | USB | 10 |
| B005 | OMG446789 | LCD Monitor | 20 |
| B004 | DKT321573 | USB | 15 |
| B002 | OMG446789 | Lézeres nyomtató | 3 |
Ebben a példában a Rendelési szám és a Termékazonosító nem lehet külön-külön elsődleges kulcs, mivel egyik sem azonosít egyértelműen egy rekordot. Azonban egy Rendelési szám és Termékazonosító összetett kulcsa egyértelműen azonosítja az egyes rekordokat.
Mi az összetett kulcs?
ÖSSZETETT KULCS két vagy több oszlop kombinációja, amelyek egyedileg azonosítják a táblázat sorait. Az oszlopok kombinációja garantálja az egyediséget, bár az egyediség önmagában nem garantált. Ezért kombinálják őket, hogy egyedileg azonosítsák a táblázat rekordjait.
Az összetett és az összetett kulcs közötti különbség az, hogy az összetett kulcs bármely része lehet idegen kulcs, de az összetett kulcs lehet vagy nem lehet része egy idegen kulcsnak.
Mi az a pótkulcs?
HELYETTES KULCS egy mesterséges kulcs, amelynek célja az egyes rekordok egyedi azonosítása. Ez a fajta kulcs egyedi, mert akkor jön létre, amikor nincs természetes elsődleges kulcs. A helyettesítő kulcsok nem adnak jelentést a táblázatban lévő adatoknak, és általában egy egész szám, amelyet közvetlenül a rekord beszúrása előtt generálnak.
| Fname | Vezetéknév | Kezdési idő | End Time |
|---|---|---|---|
| Anne | Kovács | 09:00 | 18:00 |
| csatlakozó | Francis | 08:00 | 17:00 |
| Anna | McLean | 11:00 | 20:00 |
| Látható | Willam | 14:00 | 23:00 |
A fenti példa a különböző alkalmazottak műszakbeosztását mutatja be. Itt egy helyettesítő kulcsra van szükség az egyes alkalmazottak egyedi azonosításához. Helyettesítő kulcsok a következőben: SQL akkor használják, amikor:
- Egyetlen tulajdonság paramétere sem elsődleges kulcs.
- Az elsődleges kulcs túl nagy vagy bonyolult.
Különbség az elsődleges kulcs és az idegen kulcs között
A következő a fő különbség az elsődleges kulcs és az idegen kulcs között:
| Elsődleges kulcs | Idegen kulcs |
|---|---|
| Segít egyedileg azonosítani egy rekordot a táblázatban. | Ez egy olyan mező a táblában, amely egy másik tábla elsődleges kulcsa. |
| Egy 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 táblázatban lévő adatok fizikailag a fürtözött index sorrendjében vannak elrendezve. | Egy idegen kulcs nem tud automatikusan indexet létrehozni, legyen az fürtözött vagy nem fürtözött. Manuálisan is létrehozhat egyet. |
| Egyetlen elsődleges kulcs lehet egy táblázatban. | Egy táblázatban több idegen kulcs is lehet. |
