Diferencias entre key, superkey, minimal superkey, candidate key y primary key


Soy nuevo en MySQL, y estoy realmente confundido acerca de los diferentes términos que he encontrado. Traté de buscar en Google la respuesta, pero los resultados son realmente confusos y cuando trato de entender simplemente parece que son la misma cosa.

¿Cuáles son exactamente las diferencias entre key, superkey, minimal superkey, candidate key y primary key?

Author: nbro, 2011-08-05

9 answers

Aquí copio y pego parte de la información que he recopilado

Clave Una clave es un solo campo o una combinación de varios campos. Su propósito es acceder o recuperar filas de datos de la tabla de acuerdo con el requisito. Las claves se definen en tablas para acceder o secuenciar los datos almacenados de forma rápida y fluida. También se utilizan para crear enlaces entre diferentes tablas.

Tipos de Claves

Clave Primaria El atributo o la combinación de atributos que identifica de forma única una fila o registro en una relación se conoce como clave primaria.

Clave secundaria Un campo o combinación de campos que es la base para la recuperación se conoce como clave secundaria. La clave secundaria es un campo no único. Un valor de clave secundaria puede referirse a muchos registros.

Clave candidata o clave alternativa Una relación solo puede tener una clave primaria. Puede contener muchos campos o una combinación de campos que se pueden usar como primarios clave. Un campo o combinación de campos se utiliza como clave primaria. Los campos o la combinación de campos que no se utilizan como clave primaria se conocen como clave candidata o clave alternativa.

Clave compuesta o clave concatenada Una clave primaria que consta de dos o más atributos se conoce como clave compuesta.

Ordenar O tecla de control Un campo o combinación de campos que se utiliza para secuenciar físicamente los datos almacenados llamado clave de ordenación. También se conoce la tecla de control s.

A superkey es una combinación de atributos que se pueden usar de forma única para identificar un registro de base de datos. Una mesa puede tener muchos superkeys. Las claves candidatas son un subconjunto especial de superclaves que no tienen ninguna información extraña en ellas.

Ejemplo de super key: Imagina una tabla con los campos <Name>, <Age>, <SSN> y <Phone Extension>. Esta tabla tiene muchas superkeys posibles. Tres de ellos son <SSN>, <Phone Extension, Name> y <SSN, Name>. De los enumerados, solo <SSN> es un candidato clave, ya que los demás contienen información que no es necesaria para identificar de forma única los registros.

Clave externa Una clave foránea es un atributo o combinación de atributos en una relación cuyo valor coincide con una clave primaria en otra relación. La tabla en la que se crea la clave foránea se llama como tabla dependiente. La tabla a la que se refiere la clave foránea se conoce como tabla padre.

 64
Author: bHaRaTh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-21 07:03:16

Siempre me ha resultado difícil recordar todas las teclas; así que tengo a mano las siguientes notas, ¡espero que ayuden a alguien! Hazme saber si se puede mejorar.

  • Key : Atributo o combinación de atributos que identifican de forma única una entidad/registro en una tabla relacional.

  • PK : Una clave única que es única y no-nula. Es uno de los llaves candidatas.

  • Clave foránea: FK es una clave en una tabla (hijo) que identifica de forma única una fila de otra tabla (padre). Un FK no es único en la tabla hijo. Es una clave candidata en la tabla padre. La integridad referencial se mantiene como el valor en FK está presente como un valor en PK en la tabla padre de lo contrario es NULL.

  • Clave Única: Una clave única que puede o no puede ser NULL

  • Clave natural : PK en OLTP. Puede ser un PK en OLAP.

  • Subrogate Key: Es la Subrogada PK in OLAP acting as the sustituto del PK en OLTP. Clave artificial generada internamente en OLAP.

  • Clave Compuesta: PK compuesta de múltiples atributos

  • SuperKey : Una clave que se puede utilizar de forma única para identificar un registro de base de datos, que puede contiene atributos adicionales que no son necesarios para identificar de forma única registro.

  • Clave candidata: Una clave candidata se puede utilizar únicamente para identificar un registro de base de datos sin cualquier dato extraño. No lo son. Null y único. Es una súper llave mínima.

  • Clave alternativa : Una clave candidata que no es la clave primaria se denomina clave alternativa.

  • Clave/es candidata / s con datos extraños: Considere que se puede usar para identificar un registro en la tabla de empleados pero candidato la clave por sí sola es suficiente para esta tarea. Tan se convierte en los datos extraños.

Tenga en cuenta que la PK, Clave Foránea, Clave Única, Llave natural, Llave Sustituta, La clave compuesta se define como objetos de base de datos; donde la clave natural es un PK en el OLTP y podría ser un PK en el OLAP objetivo. Para el resto de las claves, depende del diseñador/arquitecto de la base de datos decidir si unique/not-null / referential integrity constraints need to enforced or ni.

A continuación he tratado de utilizar la teoría de conjuntos para simplificar la representación de la pertenencia de las claves w.r.t. entre sí.

key = { All of the below keys   }
PK  = { PK  }
Foreign Key = { Key with Not Null constraint    }
Unique Key  = { {Candidate Key/s}, {attributes containing NULL} }
Natural key = { PK  }
Surrogate Key   = { PK  }
Composite Key   = { PK  }
Super Key   = { {Candidate Key/s}, {Candidate Key/s with Extraneous data}   }
Candidate Key   = { PK, {Alternate Key/s}   }
Alternate Key   = { {Candidate Keys} - PK   }
Candidate Key/s with Extraneous data    = {     }

Lo he resumido abajo:

Claves de Base de Datos

Notas: an-overview-of-the-database-keys-primary-key-composite-key-surrogate-key-et-al

 18
Author: Kent Pawar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-07 11:54:54

La clave primaria es un subconjunto de la súper clave. Que es única definir y otros campos dependen de ella. En una tabla, su puede ser solo una clave primaria y el subconjunto rest son claves candidatas o claves alternativas.

 1
Author: mick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-12 15:22:01

Superkey - Un atributo o conjunto de atributos que define de forma única una tupla dentro de una relación. Sin embargo, una superclave puede contener atributos adicionales que no son necesarios para la identificación única.

Candidate key - Una superclave tal que ningún subconjunto apropiado es una superclave dentro de la relación. Por lo tanto, básicamente tiene dos propiedades: Cada clave candidata identifica de forma única tupla en la relación; & ningún subconjunto apropiado de la clave compuesta tiene la unicidad propiedad .

Clave compuesta - Cuando una clave candidata consiste en más de un atributo.

Clave primaria - La clave candidata elegida para identificar tuplas de forma única dentro de la relación.

Alternate key - Candidate key that is not a primary key.

Foreign key - Un atributo o conjunto de atributos dentro de una relación que coincide con la clave candidata de alguna relación.

 1
Author: Kaustubh Sable,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-23 12:09:21

SUPER CLAVE:

Atributo o conjunto de atributos utilizados para identificar tuplas de forma única en la base de datos.

CLAVE CANDIDATA:

  1. La súper clave mínima es la clave candidata
  2. Puede ser uno o muchos
  3. Claves primarias potenciales
  4. no nulo
  5. atributo o conjunto de atributos para identificar registros de forma única en DB

CLAVE PRIMARIA:

  1. Una de las claves candidatas que se utiliza para identificar registros en DB únicamente

  2. Not null

 0
Author: Palak Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-05 10:44:49

En gran parte basado en la respuesta aceptada, pero con algunos ajustes para adaptarse mejor a las definiciones enseñadas en algunos cursos:

  • Key : Un conjunto de columnas $\ge1 columns.
  • Superkey : Una clave que that\supseteq a una clave candidata.
    • Por lo tanto, una superkey debe contener columns>1 columns columnas.
    • Superclave mínima \ \ equiv Key Candidate Key: Una clave que puede identificar de forma única cada fila de una tabla.
    • Clave Primaria : La Clave Candidata elegida por hacer eso.
    • Clave secundaria / Clave alternativa: Una Clave Candidata no elegida para hacer eso.
  • Clave de búsqueda : Una clave utilizada para localizar registros.
  • Clave compuesta o clave concatenada: Una clave con columns>1 columns columnas.
    • Generalmente implica "clave primaria compuesta", aunque "clave alternativa compuesta" también es una cosa.
  • Sort or control key : Una clave utilizada para secuenciar físicamente el datos.
  • Foreign Key Una clave en una tabla que coincide con la Clave Principal de otra tabla.
    • La tabla en la que reside la clave foránea se llama como tabla dependiente.
    • La tabla a la que se refiere la clave foránea se conoce como tabla padre.
 0
Author: tslmy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-19 16:26:44

Superclave: Superclave es un conjunto de uno o más atributos cuyos valores identifican la tupla en la relación de forma única.

Clave candidata: La clave candidata se puede definir como un subconjunto mínimo de la súper clave. En algunos casos, la clave candidata no puede por sí sola, ya que solo hay un atributo es el subconjunto mínimo. Ejemplo,

Empleado (id, ssn, nombre, addrress)

Aquí la clave candidata es (id, ssn) porque podemos identificar fácilmente la tupla usando id o ssn . Althrough, subconjunto mínimo de super clave es id o ssn. pero ambos pueden ser considerados como candidatos clave.

Clave primaria: La clave primaria es una de las claves candidatas.

Ejemplo : Estudiante (Id, Nombre, Departamento, Resultado)

Aquí

Super Key : {Id, Id+Name, Id+Name+Dept} porque super key es un conjunto de atributos .

Clave candidata: Id porque solo Id es el subconjunto mínimo de super clave.

Clave primaria: Id porque Id es una de las claves candidatas

 0
Author: rashedcs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-23 14:37:12

Clave candidata: La clave candidata se puede definir como un conjunto mínimo de atributos que identificar una tupla se conoce como clave candidata. Por ejemplo, STUD_NO en la parte inferior Relación estudiantil.

  • El valor de la Clave Candidate es único y no nulo para cada tupla.
  • Puede haber más de una clave candidata en una relación. Por ejemplo, tanto STUD_NO como STUD_PHONE son claves candidatas para relation STUDENT.
  • La clave candidata puede ser simple (teniendo solo un atributo) o compuesto también. Por ejemplo, {STUD_NO, COURSE_NO} es un compuesto
    clave candidate para relación STUDENT_COURSE.

introduzca la descripción de la imagen aquí

Super Key: El conjunto de atributos que pueden identificar de forma única una tupla se conoce como Super Key. Por Ejemplo, STUD_NO, (STUD_NO, STUD_NAME) etc. Adición de cero o más atributos a la clave candidata genera super clave. Una llave candidata es una súper llave pero viceversa es no es verdad. Clave primaria: puede haber más de una clave candidata en un relación de la cual uno puede ser elegido como clave primaria. Por Ejemplo, tanto STUD_NO como STUD_PHONE son claves candidatas para la relación STUDENT pero STUD_NO se puede elegir como clave primaria (solo una de muchas claves candidatas).

Alternate Key : La clave candidata que no sea la clave primaria se llama como clave alternativa. Por ejemplo, tanto STUD_NO como STUD_PHONE son candidato claves para la relación ESTUDIANTE pero STUD_PHONE será alterna clave (solo una de las muchas claves candidatas).

Foreign Key: Si un atributo solo puede tomar los valores que son presente como valores de algún otro atributo, será clave foránea a el atributo al que se refiere. La relación que está siendo referenciado se llama relación referenciada y atributo correspondiente se llama atributo referenciado y la relación que se refiere a la relación referenciada se llama relación de referencia y correspondiente el atributo se llama atributo de referencia. Atributo referenciado de el atributo de referencia debe ser clave primaria. Por ejemplo, STUD_NO en STUDENT_COURSE es una clave foránea para STUD_NO en relación con el ESTUDIANTE.

 0
Author: Noman Akhtar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-26 11:46:16

Superkey

A superkey is a combination of attributes that can be uniquely used to identify a 
database record. A table might have many superkeys.Candidate keys are a special subset
of superkeys that do not have any extraneous information in them.

Examples: Imagine a table with the fields <Name>, <Age>, <SSN> and <Phone Extension>.
This table has many possible superkeys. Three of these are <SSN>, <Phone Extension, Name>
and <SSN, Name>.Of those listed, only <SSN> is a **candidate key**, as the others
contain information not necessary to uniquely identify records.
 -1
Author: shijinmon Pallikal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-01 05:01:29