Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Superchave, chave candidata e chave primária


Como você não quer definições de livros didáticos, falando livremente, uma superchave é um conjunto de colunas que define exclusivamente uma linha.

Esse conjunto pode ter um ou mais elementos e pode haver mais de uma superchave para uma tabela. Você geralmente faz isso por meio de dependências funcionais.

No seu exemplo, estou assumindo:
StudentNumber    unique
FamilyName     not unique
Degree     not unique
Major      not unique
Grade      not unique
PhoneNumber    not unique

Nesse caso, uma superchave é qualquer combinação que contenha o número do aluno.

Então, as seguintes são superchaves
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

Agora suponha que, se PhoneNumber for único (quem compartilha telefones hoje em dia), os seguintes também são superchaves (além do que listei acima).
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

Uma chave candidata é simplesmente a superchave "mais curta". Voltando à primeira lista de superchaves (ou seja, o número de telefone não é único), a superchave mais curta é StudentNumber.

A chave primária geralmente é apenas a chave candidata.