Elsődleges kulcs vs egyedi kulcs
Az adatbázisban lévő sor vagy sorkészlet azonosítására vagy elérésére használható oszlopot vagy oszlopkészletet kulcsnak nevezzük. Az egyedi kulcs olyan kulcs, amely a relációs adatbázisok kontextusában egyedileg azonosítani tudja a táblázat egy sorát. Az egyedi kulcs egyetlen oszlopból vagy oszlopok halmazából áll. Az elsődleges kulcs egy táblázat oszlopainak kombinációja is, amelyek egyedileg azonosítanak egy sort. De ez az egyedi kulcs speciális esetének tekinthető.
Mi az az egyedi kulcs?
Amint korábban említettük, az egyedi kulcs egyetlen oszlop vagy oszlopkészlet, amely egyedileg azonosíthatja a táblázat egy sorát. Tehát egy egyedi kulcs úgy van korlátozva, hogy nincs két egyenlő értéke. Az egyik fontos tulajdonság az, hogy az egyedi kulcsok nem kényszerítik ki a NOT NULL megszorítást. Mivel a NULL az érték hiányát jelenti, ha két sorban NULL van egy oszlopban, ez nem jelenti azt, hogy az értékek egyenlőek. Az egyedi kulcsként definiált oszlop csak egyetlen NULL értéket engedélyez az oszlopban. Ezután ez felhasználható az adott sor egyedi azonosítására. Például egy tanulói információkat tartalmazó táblázatban a diákazonosító egyedi kulcsként definiálható. Mivel két tanulónak nem lehet azonos azonosítója, egyetlen tanulót egyedileg azonosít. Tehát a diákazonosító oszlop megfelel az egyedi kulcs összes tulajdonságának. Az adatbázis kialakításától függően egy táblának több egyedi kulcsa is lehet.
Mi az elsődleges kulcs?
Az elsődleges kulcs egy oszlop vagy oszlopok kombinációja is, amely egyedileg határoz meg egy sort egy relációs adatbázis táblázatában. Egy táblának legfeljebb egy elsődleges kulcsa lehet. Az elsődleges kulcs az implicit NOT NULL kényszert kényszeríti ki. Tehát az elsődleges kulcsként definiált oszlopban nem lehet NULL érték. Az elsődleges kulcs lehet egy normál attribútum a táblában, amely garantáltan egyedi, például társadalombiztosítási szám, vagy lehet az adatbázis-kezelő rendszer által generált egyedi érték, például egy globálisan egyedi azonosító (GUID) a Microsoft SQL Serverben. Az elsődleges kulcsokat az ANSI SQL szabvány PRIMARY KEY megszorítása határozza meg. Az elsődleges kulcs a táblázat létrehozásakor is megadható. Az SQL lehetővé teszi, hogy az elsődleges kulcs egy vagy több oszlopból álljon, és az elsődleges kulcsban szereplő minden oszlop implicit módon NEM NULL-ként van meghatározva. Egyes adatbázis-kezelő rendszerek azonban megkövetelik, hogy az elsődleges kulcs oszlopait kifejezetten NEM NULL.
Különbség az elsődleges kulcs és az egyedi kulcs között
Annak ellenére, hogy az elsődleges kulcs és az egyedi kulcs is egy vagy több olyan oszlop, amelyek egyedileg azonosíthatnak egy sort a táblázatban, vannak fontos különbségek. A legfontosabb, hogy egy táblának csak egyetlen elsődleges kulcsa lehet, míg egynél több egyedi kulcsa is lehet. Az elsődleges kulcs az egyedi kulcs speciális esetének tekinthető. Egy másik különbség az, hogy az elsődleges kulcsok implicit NOT NULL megkötéssel rendelkeznek, míg az egyedi kulcs nem rendelkezik ezzel a megszorítással. Ezért az egyedi kulcsoszlopok tartalmazhatnak NULL értéket vagy nem, de az elsődleges kulcs oszlopai nem tartalmazhatnak NULL értéket.