una términos tipos superclave son secundaria relacional qué que primarias primaria natural modelo los llave las foraneas foranea explique entre ejemplos diferencias diferencia datos cómo construye claves clave candidata sql relational-database

sql - términos - ¿Cuál es la diferencia entre una clave candidata y una clave principal?



superclave modelo relacional (11)

¿Es que una clave principal es la clave candidata seleccionada para una tabla determinada?


Clave primaria

La clave principal de una tabla es una columna (o una combinación de columnas) utilizada como una identificación única de filas en esa tabla. En otras palabras, dos filas diferentes en una tabla pueden no tener nunca el mismo valor en su clave principal, y para cada fila en la tabla, la clave primaria siempre debe tener un valor. Esto último significa que los valores nulos no están permitidos en una clave primaria. llave.

Nos encontramos con claves primarias en todas partes. Por ejemplo, la tabla en la que un banco almacena datos sobre cuentas bancarias tiene el número de cuenta bancaria de la columna como clave principal. Del mismo modo, una tabla en la que se registran diferentes automóviles utiliza la matrícula como clave principal

Llave candidata

Algunas tablas contienen más de una columna (o combinación de columnas) que pueden actuar como clave principal. Todas estas columnas poseen la propiedad de exclusividad de una clave principal. Aquí, también, los valores nulos no están permitidos. Estas columnas se llaman claves candidatas. Sin embargo, solo uno se designa como la clave principal. Por lo tanto, una tabla siempre tiene al menos una clave candidata.

Si suponemos que los números de pasaporte también se incluyen en la tabla de JUGADORES de un club, esa columna se usará como la clave candidata porque los números de pasaporte son únicos. Dos jugadores nunca pueden tener el mismo número de pasaporte. Esta columna también podría designarse como la clave principal.

Clave alternativa

Una clave candidata que no es la clave principal de una tabla se denomina clave alternativa. Se pueden definir cero o más teclas alternativas para una tabla específica. El término clave de candidato es un término general para todas las claves primarias y alternativas.

Clave externa

Una clave externa es una columna (o combinación de columnas) en una tabla en la que la población es un subconjunto de la población de la clave primaria de una tabla (esta no tiene que ser otra tabla). Las claves externas a veces se llaman claves referenciales.


La respuesta de John Woo es correcta, hasta donde llega. Aquí hay algunos puntos adicionales.

Una clave principal es siempre una de las claves candidatas. Muy a menudo, es el único candidato.

Una tabla sin claves candidatas no representa una relación. Si está utilizando el modelo relacional para ayudarlo a construir una buena base de datos, entonces cada tabla que diseñe tendrá al menos una clave candidata.

El modelo relacional estaría completo sin el concepto de clave primaria. No estaba en la presentación original del modelo relacional. Como cuestión práctica, el uso de referencias de claves externas sin una clave primaria declarada conduce a un desastre. Podría ser un lío lógicamente correcto, pero no deja de ser un desastre. La declaración de una clave principal permite que el DBMS lo ayude a aplicar las reglas de datos. La mayoría de las veces, hacer que el DBMS lo ayude a hacer cumplir las reglas de datos es algo bueno, y vale la pena el costo.

Algunos diseñadores de bases de datos y algunos usuarios tienen cierta confusión mental sobre si la clave primaria identifica una fila (registro) en una tabla o una instancia de una entidad en el tema que la tabla representa. En un mundo ideal, se supone que debe hacer ambas cosas, y debería haber una correspondencia uno a uno entre las filas en una tabla de entidades y las instancias de la entidad correspondiente.

En el mundo real, las cosas se arruinan. Alguien ingresa dos veces al mismo empleado nuevo y el empleado termina con dos identificaciones. Alguien es contratado, pero la entrada de datos se resuelve a través de las grietas en un proceso manual, y el empleado no obtiene una identificación, hasta que la omisión se corrige. Una base de datos que no colapsa la primera vez que las cosas se arruinan es más sólida que una que sí lo hace.


No hay diferencia. Una clave principal es una clave candidata. Por convención, una clave candidata en una relación generalmente se elige para ser la "primaria", pero la elección es esencialmente arbitraria y una cuestión de conveniencia para los usuarios / diseñadores / desarrolladores de bases de datos. No hace que una clave "primaria" sea fundamentalmente diferente de cualquier otra clave candidata.


Piense en una tabla de vehículos con una clave primaria entera.

El número de registro sería una clave candidata.

En el mundo real, los números de registro están sujetos a cambios, por lo que depende de alguna manera de las circunstancias, lo que podría calificar como una clave candidata.


Primero, debes saber qué es un determinante ? el determinante es un atributo que se utilizó para determinar otro atributo en la misma tabla. ASÍ QUE el determinante debe ser una clave candidata . Y puedes tener más de un determinante. Pero la clave principal se usa para determinar el registro completo y solo puede tener una clave principal. Tanto la clave primaria como la candidata pueden estar compuestas por uno o más atributos


Si la superclave es un conjunto grande, la clave candidata es un conjunto más pequeño dentro del conjunto grande y la clave primaria, cualquier elemento (uno a la vez o para una tabla) en el conjunto de claves candidatas.


Una clave principal es un tipo especial de índice en el que:

there can be only one; it cannot be nullable it must be unique.

Las claves candidatas se seleccionan del conjunto de superclaves, lo único que tenemos cuidado al seleccionar la clave candidata es: no debe tener ningún atributo redundante.

Ejemplo de una tabla de empleado: Empleado (Id. De empleado, Nombre completo, SSN, DeptID)

  1. Clave de candidato: son columnas individuales en una tabla que califica para unicidad de todas las filas. Aquí en Employee table EmployeeID y SSN son claves candidatas.

  2. Clave principal: son las columnas que elige para mantener la singularidad en una tabla. Aquí, en la tabla de Empleados, puede elegir las columnas EmployeeID o SSN, EmployeeID es una opción preferible, ya que el SSN es un valor seguro.

  3. Clave alternativa: columna de candidato, otra columna Primaria, como si ID de empleado es PK, entonces SSN sería la clave alternativa.

  4. Súper clave: si agrega cualquier otra columna / atributo a una clave principal, se convertirá en una súper clave, como EmployeeID + FullName es una Súper clave.

  5. Clave compuesta: si una tabla no tiene una sola columna que califica para una clave Candidato, entonces debe seleccionar 2 o más columnas para hacer que una fila sea única. Al igual que si no hay columnas EmployeeID o SSN, puede hacer que FullName + DateOfBirth sea la clave primaria compuesta. Pero aún puede haber una pequeña posibilidad de fila duplicada.


Una clave principal es una columna (o columnas) en una tabla que identifica de manera única las filas en esa tabla.

CUSTOMERS CustomerNo FirstName LastName 1 Sally Thompson 2 Sally Henderson 3 Harry Henderson 4 Sandra Wellington

Por ejemplo, en la tabla anterior, CustomerNo es la clave principal.

Los valores colocados en las columnas de clave primaria deben ser únicos para cada fila: no se pueden tolerar duplicados. Además, los nulos no están permitidos en las columnas de clave principal.

Entonces, habiéndote dicho que es posible usar una o más columnas como clave principal, ¿cómo decides qué columnas (y cuántas) elegir?

Bueno, hay ocasiones en que es recomendable o esencial usar columnas múltiples. Sin embargo, si no puede ver una razón inmediata para usar columnas múltiples, entonces use una. Esta no es una regla absoluta, es simplemente un consejo. Sin embargo, las claves primarias formadas por columnas individuales generalmente son más fáciles de mantener y de operación más rápida. Esto significa que si consulta la base de datos, generalmente obtendrá la respuesta más rápido si las tablas tienen claves primarias de columna única.

Siguiente pregunta: ¿qué columna debes elegir? La forma más fácil de elegir una columna como clave principal (y un método razonablemente común) es lograr que la base de datos asigne automáticamente un número único a cada fila.

En una tabla de empleados, claramente cualquier columna como FirstName es una opción pobre ya que no puede controlar los nombres de los empleados. A menudo, solo hay una opción para la clave principal, como en el caso anterior. Sin embargo, si hay más de uno, estos pueden describirse como "claves candidatas": el nombre refleja que son candidatos para el trabajo responsable de clave principal.


Una tabla puede tener tantas columnas que pueden identificar de manera única una fila. Estas columnas se denominan claves candidatas , pero la clave principal debe ser una de ellas porque una clave primaria es suficiente para una tabla. Entonces, la selección de la clave primaria es importante entre tantas claves candidatas . Esa es la principal diferencia.


Candidate Key : una clave candidata puede ser cualquier columna o combinación de columnas que pueda calificar como clave única en la base de datos . Puede haber múltiples Candidate Keys en una tabla. Cada Clave candidata puede calificar como Clave principal.

Primary Key : una clave principal es una columna o una combinación de columnas que identifica un registro de manera única . Solo una Clave candidata puede ser la Clave principal.

Más en este enlace con el ejemplo


Clave principal -> Cualquier columna o conjunto de columnas que pueda identificar de manera única un registro en la tabla es una clave principal. (Solo puede haber una clave principal en la tabla)

Clave candidata -> Cualquier columna o conjunto de columnas que sean candidatas para convertirse en clave principal son clave Candidato. (Puede haber una o más claves candidatas en la tabla, si solo hay una clave candidata, puede elegirse como clave principal)