sql >> Base de Datos >  >> RDS >> Oracle

Superclave, clave candidata y clave principal

Dado que no desea definiciones de libros de texto, en términos generales, una superclave es un conjunto de columnas que define de manera única una fila.

Este conjunto puede tener uno o más elementos, y puede haber más de una superclave para una tabla. Por lo general, haces esto a través de dependencias funcionales.

En tu ejemplo, asumo:

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

En este caso, una superclave es cualquier combinación que contenga el número de alumno.

Entonces, las siguientes son superclaves

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

Ahora suponga que si PhoneNumber es único (quién comparte teléfonos en estos días), entonces las siguientes también son superclaves (además de lo que he enumerado anteriormente).

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

Una clave candidata es simplemente la superclave "más corta". Volviendo a la primera lista de superclaves (es decir, el número de teléfono no es único), la superclave más corta es StudentNumber.

La clave principal suele ser solo la clave candidata.