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.