una términos superclave relacional que primaria natural modelo los llave las explique entre ejemplos diferencias diferencia datos clave candidata sql oracle primary-key relational

sql - términos - Superkey, clave candidata y clave principal



que es una clave candidata en base de datos ejemplos (3)

Dado que no desea definiciones de libros de texto, hablando en términos generales, una súper clave 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 súper clave para una tabla. Usualmente 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 contiene el número de alumno.

Entonces las siguientes son superkeys

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, si PhoneNumber es único (quién comparte teléfonos en estos días), las siguientes son también superkeys (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 superkeys (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.

¿Puede algún alma amable aclarar mis dudas con un simple ejemplo a continuación e identificar la superclave, la clave candidata y la clave principal?

Sé que hay muchas publicaciones y sitios web que explican las diferencias entre ellos. Pero parece que todas son definiciones genéricas.

Ejemplo:

Student (StudentNumber, FamilyName, Degree, Major, Grade, PhoneNumber)

Entonces, del ejemplo anterior, puedo saber que StudentNumber es una clave primaria.

Pero en cuanto a superkey, estoy un poco confundido, ¿qué combinación de atributos podría agruparse en la superclave?

En cuanto a la clave candidata, estoy confundido por la definición dada ya que cualquier clave candidata puede calificar como clave principal.

¿Significa que atributos como PhoneNumber son una clave candidata y pueden ser una clave principal? (Suponiendo que un PhoneNumber solo le pertenece a un estudiante)

Gracias por cualquier aclaración!


Extendiendo la respuesta de Cambium, si PhoneNumber también es único junto con StudentNumber candidate keys serían: - {StudentNumber} , {PhoneNumber} .
Aquí no podemos suponer {StudentNumber,PhoneNumber} como una única candidate key porque si omitimos un atributo, digamos StudentNumber , seguimos obteniendo un atributo único {PhoneNumber} , lo que infringe la definición de candidate key .

Primary key: elija una candidate key entre todas las candidate keys . Hay 2 candidate keys para que podamos elegir {StudentNumber} como primary key .
Alternate keys: las candidate keys sobrantes, después de elegir primary key candidate keys , son teclas alternativas, es decir, {PhoneNumber} .

compound key: una clave compuesta es una clave que consta de dos o más atributos que identifican de manera única una ocurrencia de entidad. Una clave simple es aquella que tiene solo un atributo. Las claves compuestas pueden estar compuestas por otras claves simples únicas y atributos no clave, pero no pueden incluir otra clave compuesta.

composite key: una clave compuesta contiene al menos una clave compuesta y un atributo más. Las claves compuestas también pueden incluir claves simples y atributos no clave.


Una superclave es cualquier conjunto de atributos para los cuales se garantiza que los valores serán únicos para todos los posibles conjuntos de tuplas en una tabla en todo momento.

Una clave candidata es una superclave "mínima", es decir, el subconjunto más pequeño de atributos de superkey que son únicos. Por lo tanto, eliminar cualquier atributo de una clave candidata lo haría no exclusivo.

Una clave principal es solo una clave candidata. No hay diferencia entre una clave principal y cualquier otra clave candidata.

No es realmente útil hacer suposiciones sobre claves basadas solo en una lista de nombres de atributos. Necesita saber qué dependencias deben contener entre los atributos. Habiendo dicho eso, supongo que tienes razón: StudentNumber es probablemente una clave candidata en tu ejemplo.