Oracle
 sql >> база данни >  >> RDS >> Oracle

Суперключ, кандидат ключ и първичен ключ

Тъй като не искате дефиниции от учебници, свободно казано, суперключът е набор от колони, които уникално дефинират ред.

Този набор може да има един или повече елементи и може да има повече от един супер ключ за таблица. Обикновено правите това чрез функционални зависимости.

Във вашия пример предполагам:

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

В този случай суперключ е всяка комбинация, която съдържа номера на ученика.

Така че следните са суперключове

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

Сега приемете, че ако PhoneNumber е уникален (които споделят телефони в наши дни), тогава следните също са суперключове (в допълнение към това, което изброих по-горе).

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

Ключът кандидат е просто „най-късият“ суперключ. Връщайки се към първия списък със суперключове (т.е. телефонният номер не е уникален), най-краткият суперключ е StudentNumber.

Първичният ключ обикновено е само кандидат ключът.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на Substr с Instr за извличане на низ в Oracle

  2. Създайте списък с всички месеци от колона с дата в ORACLE SQL

  3. Oracle не може да съхранява емотикони

  4. Как да промените nls_date_format по подразбиране за oracle jdbc клиент

  5. Разработване за Windows Server 2003 64 бита на Windows XP 32 бита