2010-06-21 15 views
13

¿Qué diferencia hay entre la clave Súper y la Candidata en ERDB?Clave de Superkey vs. Candidato

Gracias.

+4

Clave de superclave y candidato son términos del modelo de base de datos relacional. ¿Qué significa "ERDB"? Tal vez se está refiriendo al modelo de relación de la entidad (ER), que es un conjunto de convenciones para dibujar imágenes sobre datos. El modelo ER es algo diferente del modelo relacional. – sqlvogel

Respuesta

12

clave candidata es una superkey mínima

+5

+1, además sería bueno definir "mínimo" aquí ya que no es intuitivo. Por ejemplo, en la tabla (a, b, c), siendo (a) únicos y además (b, c) únicos, tanto (a) como (b, c) deberían ser claves candidatas. – orip

+1

Mínimo en el sentido de que si se elimina un atributo de la clave candidata, la fila ya no se puede identificar de manera única. – libjup

4
  • clave candidata = clave mínimo para identificar una fila
  • Súper clave = al menos tan ancha como candidato clave

Para mí, una superclave generalmente presentaría ambigüedades sobre una clave candidata

+0

Una clave candidata es una superclave mínima. Entonces, una superclave no es estrictamente "más amplia" porque una clave candidata también es una superclave. – sqlvogel

+0

@david: ¿no es "superkey mínima" un oxímoron? – gbn

+0

"generalmente introduce ambigüedades" - ¿Qué quieres decir? Por ejemplo, en esta respuesta (http://stackoverflow.com/questions/3938736/enforce-constraints-between-tables/3940708#3940708), la tabla EmployeeDepartments tiene una clave candidata '(employee_ID)' y una superclave '(employee_department_name, employee_ID) '. Ambos son necesarios para la integridad de los datos, ¿dónde está la ambigüedad? – onedaywhen

22

Una superclave es un conjunto de columnas que identifican de manera única ifies una fila. Una clave Candidato sería un conjunto MÍNIMO de columnas que identifica de manera única una fila. Entonces, esencialmente, una Superkey es una clave Candidata con columnas adicionales innecesarias.

+0

"un SuperTecla es una clave candidata con columnas adicionales innecesarios" - - las columnas adicionales pueden ser realmente necesarias para hacer referencia a la tabla y garantizar la integridad de los datos, por ejemplo '(employee_ID)' es único, pero puede ser necesaria una clave en '(employee_ID, department_name)' para ciertas tablas que restringen a los empleados de acuerdo con su departamento. – onedaywhen

2

Vamos a mantenerlo simple

Supertecla - Un juego de llaves que define de forma exclusiva un row .So de todos los atributos, si incluso uno solo es unique entonces todos los subconjuntos que tienen ese atributo único cae bajo superkey.

clave candidata - Un superkey de los cuales no más lejos subconjunto se puede derivar que puede identificar el rows uniquely, O simplemente podemos decir que es la minimal superkey.

Cuestiones relacionadas