2011-04-10 21 views
15

Estoy leyendo acerca de las claves candidatas y las claves compuestas. Llegué a conocer esa clave¿Cuál es la diferencia entre la clave candidata y la clave compuesta?

  • un candidato puede calificar como una clave principal y que puede ser una sola columna o combinación de columnas
  • y una clave compuesta es también una combinación de columnas.

Para clave compuesta he hecho referencia este enlace

how do I make a composite key with SQL Server Management Studio?

Así, cuando tanto la clave candidata y clave compuesta son una combinación de columnas, se puede calificar como una clave principal. Entonces, ¿cuál es la diferencia exacta? ¿Puedes explicar con ejemplos?

Respuesta

12

Como sé, la clave candidata es una clave única que se puede utilizar como clave principal. pero no necesariamente usado como uno.

La clave compuesta es una clave de dos o más atributos que identifica de manera única la fila.

+1

Una clave compuesta es ** a ** Clave de .. no necesita ser la clave principal. – user2864740

4

Candidato Clave: Un candidato para el campo de clave primaria se conoce como clave candidata.

Clave compuesta: La creación de más de una clave primaria se conoce conjuntamente como clave compuesta.

Actualización: Una clave candidata es una clave única que se puede utilizar como clave principal. La clave compuesta es una clave de dos o más atributos que identifica de manera única la fila. Una clave es un conjunto de columnas que se puede usar para identificar de manera única cada fila dentro de una tabla.

+4

No está creando exactamente más de una clave principal; está creando una clave primaria ** única ** que consta de más de una columna –

+0

Su respuesta es engañosa. Por favor corrígelo. Gracias –

14

Una clave es un conjunto de columnas que se puede utilizar para identificar de manera única cada fila dentro de una tabla.

Cada tabla tiene al menos una clave. Digamos que hemos identificado cada clave posible para la tabla. Cada una de estas claves es una clave candidata.

Al examinar cada una de estas claves, la clave puede consistir en ninguna columna (!), Una columna o más de una columna, que cuando se consideran juntas identifican de forma única cada fila. El término clave compuesta se refiere específicamente a una clave que consta de más de una columna.

En SQL, se decidió que una clave debería seleccionarse y tratarse "más igual" que las otras teclas de la tabla. Esta clave se llama clave principal. Otras claves también se pueden declarar en la tabla, estas se conocen generalmente como Contsraints únicos.

(!) En SQL, no está permitido declarar una clave sin columnas, aunque ocasionalmente sería útil (piense en una tabla que solo debería tener una sola fila, donde cada columna representa información de configuración)


Como ejemplo de una tabla que tiene varias teclas, todas ellas compuestas.Imagínese un sistema de citas, donde un cliente y un asesor se reúnen en una habitación en un momento determinado:

CREATE TABLE Appointments (
    ClientID int not null, 
    CounsellorID int not null, 
    RoomID int not null, 
    AppointmentTime datetime not null 
) 

Las claves candidatas para este cuadro son {ClientID, AppointmentTime}, {CounsellorID, AppointmentTime} y {roomid, AppointmentTime }. Cualquiera de esas combinaciones de columnas podría usarse para identificar de manera única una fila en la tabla, y todas ellas son claves compuestas.

El que decidamos declarar como clave principal dependerá (probablemente) de nuestra propia interpretación del "foco" principal del sistema. ¿Nos preocupa principalmente el uso de la sala, los clientes o los consejeros? En cualquier caso, seleccionaremos uno y lo declararemos la clave principal. También esperamos declarar las otras claves como restricciones únicas.

O, podríamos decidir utilizar un sustituto, y declarar una columna AppointmentID, utilizando las instalaciones de numeración automática disponibles en la base de datos. Esa podría ser la clave primaria (no compuesta). Pero aún deberíamos declarar las otras claves para la tabla.

+1

No todas las tablas tienen una clave, es decir 'create table tbl (i int); inserte los valores tbl (1), (1), (2), ... ' – Andomar

+2

@Andomar - una tabla así no pertenece realmente a una base de datos relacional (para tomar una vista purista por un momento). –

2

una clave candidata es sólo eso: una columna o combinación de columnas que podría usarse como la clave primaria, es decir, un candidato o clave principal potencial, una clave compuesta es, por definición, dos o más columnas que podrían utilizarse para identificar una fila Más comúnmente cuando se habla de claves compuestas, la pregunta es si se debe tener como clave principal tener una clave sustituta en su lugar. Ocasionalmente, puede escuchar a las personas referirse a una clave compuesta que no es una clave principal (es decir, no única para todas las filas), en cuyo caso es (con suerte) solo una forma de referirse a una combinación multiconsumida en clave no primaria campos (en lugar de hacer combinación cruzada y filtrar las filas en la cláusula where).

1

CLAVE DE CANDIDATO: - La clave del candidato es una clave única y es un "Candidato" para ser una clave principal. COMPOSITE KEY: - "Composición" de dos o más columnas como clave principal, se considera como clave compuesta.

Cuestiones relacionadas