database - son - que tipo de dato puede ser una llave primaria
¿Cuál es la diferencia entre una clave principal y una clave de índice? (3)
¿Alguien puede decirme cuál es la diferencia entre una clave principal y una clave de índice? ¿Y cuándo usar cuál?
La base de datos Oracle aplica una clave ÚNICA o una restricción de integridad de CLAVE PRINCIPAL en una tabla mediante la creación de un índice único en la clave única o clave principal. Este índice es creado automáticamente por la base de datos cuando la restricción está habilitada.
Puede crear índices explícitamente (fuera de las restricciones de integridad) utilizando la sentencia de SQL CREATE INDEX
.
Los índices pueden ser únicos o no únicos. Los índices únicos garantizan que no haya dos filas de una tabla con valores duplicados en la columna de clave (o columnas). Los índices no únicos no imponen esta restricción en los valores de columna.
Use la CREATE UNIQUE INDEX
para crear un índice único.
Especificar el índice asociado con una restricción
Si necesita un control más explícito sobre los índices asociados con las restricciones UNIQUE and PRIMARY KEY
, la base de datos le permite:
1. Specify an existing index that the database is to use
to enforce the constraint
2. Specify a CREATE INDEX statement that the database is to use to create
the index and enforce the constraint
Estas opciones se especifican utilizando la cláusula USING INDEX
.
Ejemplo:
CREATE TABLE a (
a1 INT PRIMARY KEY USING INDEX (create index ai on a (a1)));
http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm
Una clave (superclave mínima) es un conjunto de atributos, cuyos valores son únicos para cada tupla (cada fila de la tabla en algún momento).
Un índice es una característica de optimización del rendimiento que permite acceder a los datos más rápido.
Las claves son a menudo buenas candidatas para la indexación y algunos DBMS crean automáticamente índices para las claves, pero eso no tiene por qué ser así.
La frase "clave de índice" mezcla estas dos palabras bastante diferentes y podría evitarse si desea evitar cualquier confusión. La "clave de índice" se usa a veces para significar "el conjunto de atributos en un índice". Sin embargo, el conjunto de atributos en cuestión no es necesariamente una clave porque pueden no ser únicos.
Una clave principal es un tipo especial de índice en eso:
- Sólo puede haber uno;
- no puede ser anulable; y
- debe ser unico
Tiende a usar la clave principal como el identificador único más natural para una fila (como el número de seguro social, la identificación del empleado, etc., aunque hay una escuela de pensamiento de que siempre debe usar una clave sustituta artificial para esto).
Los índices, por otro lado, pueden usarse para una recuperación rápida basada en otras columnas. Por ejemplo, una base de datos de empleados puede tener su número de empleado como la clave principal, pero también puede tener un índice en su apellido o departamento.
Ambos índices (apellido y departamento) no permitirían NULL (probablemente) y permitirían duplicados (casi seguro), y serían útiles para acelerar las consultas que buscan a alguien con (por ejemplo) el apellido ''Corleone'' o trabajar en El departamento ''HitMan''.