Saltar al contenido

¿Cuáles son las diferencias entre una superclave y una clave candidata?

Solución:

Candidate key es un super key del cual no puede eliminar ningún campo.

Por ejemplo, una versión de software puede identificarse por versión mayor / menor, o por la fecha de compilación (asumimos compilaciones nocturnas).

Por supuesto, almacenar la fecha en tres campos no es una buena idea, pero supongamos que lo es para fines de demostración:

year  month date  major  minor
2008  01    13     0      1
2008  04    23     0      2
2009  11    05     1      0
2010  04    05     1      1

Entonces (year, major, minor) o (year, month, date, major) son super claves (ya que son únicas) pero no claves candidatas, ya que puede eliminar year o major y el conjunto restante de columnas seguirá siendo una superclave.

(year, month, date) y (major, minor) son claves candidatas, ya que no puede eliminar ninguno de los campos sin romper la unicidad.

Una superclave es cualquier combinación de columnas que identifica de forma exclusiva una fila en una tabla. Una clave candidata es una superclave a la que no se le puede quitar ninguna columna sin perder la propiedad de identificación única. Esta propiedad a veces se conoce como minimidad o (mejor) irreductibilidad.

Una superclave ≠ una clave primaria en general. La clave principal es simplemente una clave candidata elegida para ser la clave principal. Sin embargo, en la teoría de la dependencia, las claves candidatas son importantes y la clave primaria no es más importante que cualquiera de las otras claves candidatas. Las claves candidatas no primarias también se conocen como claves alternativas.

Considere esta tabla de elementos:

CREATE TABLE elements
(
    atomic_number   INTEGER NOT NULL PRIMARY KEY
                    CHECK (atomic_number > 0 AND atomic_number < 120),
    symbol          CHAR(3) NOT NULL UNIQUE,
    name            CHAR(20) NOT NULL UNIQUE,
    atomic_weight   DECIMAL(8,4) NOT NULL,
    period          SMALLINT NOT NULL
                    CHECK (period BETWEEN 1 AND 7),
    group           CHAR(2) NOT NULL
                    -- 'L' for Lanthanoids, 'A' for Actinoids
                    CHECK (group IN ('1', '2', 'L', 'A', '3', '4', '5', '6',
                                     '7', '8', '9', '10', '11', '12', '13',
                                     '14', '15', '16', '17', '18')),
    stable          CHAR(1) DEFAULT 'Y' NOT NULL
                    CHECK (stable IN ('Y', 'N'))
);

Tiene tres identificadores únicos: número atómico, nombre del elemento y símbolo. Cada uno de estos, por lo tanto, es una clave candidata. Además, a menos que esté tratando con una tabla que solo puede contener una fila de datos (en cuyo caso el conjunto vacío (de columnas) es una clave candidata), no puede tener una clave candidata menor que una columna, por lo que las claves candidatas son irreductibles.

Considere una clave compuesta por {número atómico, nombre del elemento, símbolo}. Si proporciona un conjunto coherente de valores para estos tres campos (por ejemplo, {6, Carbono, C}), entonces identificará de manera única la entrada para un elemento: Carbono. Sin embargo, esta es una súper clave que no es una clave candidata porque no es irreducible; puede eliminar dos de los tres campos sin perder la propiedad de identificación única.

Como otro ejemplo, considere una clave compuesta por {número atómico, período, grupo}. Nuevamente, este es un identificador único para una fila; {6, 2, 14} identifica Carbon (nuevamente). Si no fuera por los lantanoides y actinoides, entonces la combinación de {período, grupo} sería única, pero debido a ellos, no lo es. Sin embargo, como antes, el número atómico por sí solo es suficiente para identificar un elemento de forma única, por lo que esta es una superclave y no una clave candidata.

La superclave es la combinación de campos mediante la cual la fila se identifica de forma única y la clave candidata es la superclave mínima.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *