¿Cuál es la diferencia entre la clave primaria y la súper clave en DBMS?


20

Soy nuevo en DBMS y todavía estoy aprendiendo la teoría.

Estoy realmente confundido con este negocio clave y después de buscar en Google lo reduje a solo 2 teclas que no obtengo (clave principal y superclave).

Tengo algunas preguntas sobre DBMS. Le agradecería que me las pueda responder.

1) ¿Cuál es la diferencia entre la clave primaria y la súper clave en DBMS? Lo agradecería mucho si puede usar un ejemplo completo para explicar adecuadamente

2) ¿Pueden la clave primaria y la súper clave ambas tener múltiples columnas combinadas para formar la clave primaria y la súper clave?

3) ¿Es la clave primaria un subconjunto de la superclave o viceversa?


1
Una cosa que se pasa por alto es que la tupla (fila) en sí misma es una superclave. Dado que la intención es poder identificar de manera exclusiva la fila, es decir, poder identificar de manera única la tupla que contiene una combinación particular de valores, una forma de hacerlo es tener todos los valores disponibles. Por lo tanto, la tupla es una superclave en sí misma, ya que una vez que conocemos los valores en la tupla, claramente sabemos cómo encontrar la tupla que tiene esos valores. Al principio parece una tontería, pero establece un límite superior en lo que puede ser una superclave para una tupla: la tupla misma.
Dave

@Dave El conjunto de todos los nombres de columna de una relación / tabla (y, por lo tanto, cada una de sus tuplas / filas) es una superclave. No "la tupla (fila) en sí".
philipxy

@philipxy tienes razón y hablo mal, estoy corregido. Gracias por agregar la aclaración.
Dave

Respuestas:


23

Una Superclave es simplemente una Clave de candidato no mínima , es decir, una con columnas adicionales no estrictamente necesarias para garantizar la unicidad de la fila.

Una clave primaria es una clave mínima de candidato , es decir, todas las columnas constituyentes son estrictamente necesarias para garantizar la unicidad.

Como desarrollador / diseñador de bases de datos con 30 años de experiencia, nunca había escuchado el término Super Key hasta que vi esta pregunta y la busqué. El concepto de Súper clave parece más relacionado con el tema del rendimiento y el diseño del esquema físico, ya que se asigna directamente al concepto de un índice único no agrupado con columnas adicionales para una mejor cobertura de consultas.


3
Esto es bastante inexacto. Está utilizando superkey, CK y PK en lugar de superkey, superkey y CK adecuados. Un superkey es un conjunto ÚNICO. (Una CK es una superclave "mínima". No existe la noción de "CK mínima". Cada CK es una superclave. Por lo tanto, una superclave no tiene que tener más columnas que una CK. Una PK es una CK que se llama PK. Si tuviera que ser un "CK mínimo", entonces "mínimo" tendría que significar "arbitrario".) SQL PK y UNIQUE NOT NULL declaran superclaves. (Una PK de SQL puede o no ser una PK). Las superclaves son fundamentales para la definición de CK, que es fundamental para el diseño, incluida la normalización. Mira mi respuesta.
philipxy

1
Además, se necesita la comprensión de SK para usar Boyce-Codd NF
Tanckom

16

Super Keys: Super key significa superconjunto de una clave. Una Superclave es un conjunto de uno o más atributos que se toman colectivamente y pueden identificar todos los demás atributos de manera única.

Por ejemplo, estamos teniendo mesa

Book (BookId, BookName, Author)

Entonces en esta tabla podemos tener

   (BookId)
   (BookId,BookName)
   (BookId, BookName, Author)
   (BookId, Author)
   (BookName, Author)

Como nuestra superclave. Cada superclave puede identificar de forma única cada tupla (registro).

Claves candidatas Las claves candidatas son una súper clave que no tiene atributos redundantes. En otras palabras, las claves candidatas son superclaves mínimas. Por ejemplo, en la ilustración de arriba

   (BookId)
   (BookName,Author)

Estas dos claves pueden ser claves candidatas, ya que las claves restantes tienen atributos redundantes. El registro de medias en superclave (BookId, BookName) se puede identificar de forma exclusiva con solo bookid y, por lo tanto, Bookname es un atributo redundante

Clave primaria: es una clave candidata elegida por el diseñador de la base de datos para identificar entidades en un conjunto de entidades. O Una clave que se utiliza para identificar de forma exclusiva cada registro se conoce como clave primaria.

De las claves candidatas anteriores, cualquiera puede ser la clave principal. Y el otro que no se elija como clave principal se conocerá como clave alternativa


Esto responde a la pregunta y merece un voto positivo.
srk

También tenga en cuenta que otro nombre para alternative keyes secondary keyson los mismos. ¡Gran respuesta!
Wael Alshabani

2

De esta respuesta mía de stackoverflow.com :

Una clave candidata es un conjunto de columnas que identifica filas de manera única y que no contiene un subconjunto de columnas más pequeño ("apropiado") que identifica filas de manera única.

Una superclave es un conjunto de columnas que identifica filas de manera exclusiva. Entonces, una clave candidata es una superclave que no contiene una superclave más pequeña.

En SQL no puede declarar una clave candidata vacía. Además, UNIQUE NOT NULL y PRIMARY KEY (que en términos de restricciones solo significa UNIQUE NOT NULL) declaran superclaves, no claves per se. Si el conjunto de columnas de dicha declaración no contiene un conjunto de columnas más pequeño declarado como una superclave, entonces la superclave que declara es una clave candidata.

De esta respuesta de stackoverflow.com mía en relación con una tabla dada:

Para los conjuntos de columnas X e Y podemos escribir X -> Y . Decimos que X es el conjunto determinante e Y es el conjunto determinado de / en dependencia funcional ( FD ) X -> Y.

Decimos que X determina funcionalmente a Y e Y está funcionalmente determinado por X. Decimos que X es el determinante de X -> Y. En {C} -> Y decimos que C determina funcionalmente a Y. En X -> {C} decimos X determina funcionalmente C. Cuando X es un superconjunto de Y, decimos que X -> Y es trivial .

Decimos que X -> Y se mantiene en la tabla T cuando cada subcampo de valores para X siempre / solo aparece con el mismo subcampo de valores para Y. O decimos que X -> Y es un FD de / en T. Cuando X es un determinante de algunos FD en la tabla T decimos que X es un determinante de / en T.

Una superclave de una tabla T es un conjunto de columnas que determina funcionalmente cada atributo. Una clave candidata ( CK ) es una superclave que no contiene una superclave más pequeña. Podemos elegir una CK como clave principal ( PK ) y luego llamar a las otras claves alternativas de CK . Una columna es primo cuando está en alguna CK.

(Como comenté allí, "Las cuatro oraciones en negrita para FD, hold, superkey y CK habrían sido suficientes").

(Una tabla con un CK vacío está restringido a contener como máximo una fila. Un conjunto de columnas determinado por el conjunto vacío está obligado a tener el mismo valor subrow en cada fila).


1

Clave Una clave es una sola o combinación de múltiples 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 sin problemas. También se utilizan para crear enlaces entre diferentes tablas.

Tipos de claves Las siguientes tablas o relaciones se utilizarán para definir diferentes tipos de claves.

Clave primaria El atributo o combinación de atributos que identifica de forma exclusiva 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 clave principal. Un campo o combinación de campos se utiliza como clave principal. Los campos o la combinación de campos que no se utilizan como clave principal 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.

Clave de clasificación o control Un campo o combinación de campos que se utiliza para secuenciar físicamente los datos almacenados llamados clave de clasificación. También se conoce como clave de control.

Una superclave es una combinación de atributos que se pueden usar de forma exclusiva para identificar un registro de base de datos. Una mesa puede tener muchas superclaves. Las claves candidatas son un subconjunto especial de superclaves que no contienen información extraña.

Ejemplo de superclave: imagine una tabla con los campos Nombre, Edad, SSN y <Extensión de teléfono>. Esta tabla tiene muchas posibles superclaves. Tres de estos son SSN, extensión de teléfono y nombre. De los enumerados, solo el SSN es una clave candidata, ya que los otros contienen información que no es necesaria para identificar registros de forma exclusiva.

Clave externa Una clave externa 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 externa se denomina tabla dependiente. La tabla a la que se refiere la clave externa se conoce como tabla primaria.

para la clave Super mínima, consulte este enlace, es más claro allí http://www.answers.com/topic/superkey-1

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.