sql >> Databáze >  >> RDS >> Oracle

Superklíč, kandidátský klíč a primární klíč

Protože nechcete učebnicové definice, volně řečeno, super klíč je sada sloupců, které jednoznačně definují řádek.

Tato sada může mít jeden nebo více prvků a pro tabulku může být více než jeden super klíč. Obvykle to děláte prostřednictvím funkčních závislostí.

Ve vašem příkladu předpokládám:

StudentNumber    unique
FamilyName     not unique
Degree     not unique
Major      not unique
Grade      not unique
PhoneNumber    not unique

V tomto případě je superklíč jakákoli kombinace, která obsahuje číslo studenta.

Takže následující jsou superklíče

StudentNumber
StudentNumber, FamilyName
StudentNumber, FamilyName, Degree
StudentNumber, FamilyName, Degree, Major
StudentNumber, FamilyName, Degree, Major, Grade
StudentNumber, FamilyName, Degree, Major, Grade, PhoneNumber
StudentNumber, Degree
StudentNumber, Degree, Major
StudentNumber, Degree, Major, Grade
StudentNumber, Degree, Major, Grade, PhoneNumber
StudentNumber, Major
StudentNumber, Major, Grade
StudentNumber, Major, Grade, PhoneNumber
StudentNumber, Grade
StudentNumber, Grade, PhoneNumber
StudentNumber, PhoneNumber

Nyní předpokládejme, že pokud je PhoneNumber jedinečné (kdo v dnešní době sdílí telefony), pak jsou následující také superklíče (kromě toho, co jsem uvedl výše).

PhoneNumber
PhoneNumber, Grade, 
PhoneNumber, Major, Grade
PhoneNumber, Degree, Major, Grade
PhoneNumber, FamilyName, Degree, Major, Grade
PhoneNumber, Major
PhoneNumber, Degree, Major
PhoneNumber, FamilyName, Degree, Major
PhoneNumber, StudentNumber, FamilyName, Degree, Major
PhoneNumber, Degree
PhoneNumber, FamilyName, Degree
PhoneNumber, StudentNumber, FamilyName, Degree
PhoneNumber, FamilyName
PhoneNumber, StudentNumber, FamilyName

Kandidátský klíč je jednoduše „nejkratší“ superklíč. Vrátíme-li se zpět k 1. seznamu superklíčů (tj. telefonní číslo není jedinečné), nejkratší superklíč je StudentNumber.

Primární klíč je obvykle pouze kandidátský klíč.



  1. Nastavení PostgreSQL ODBC ve Windows

  2. Sjednocení a uspořádání MySQL pomocí nápovědy

  3. Psaní velkých písmen jmen osob v programování

  4. Operátor SQLite UNION