stringtranslate.com

Clave primaria

En el modelo relacional de bases de datos , una clave principal es un atributo designado ( columna ) que puede identificar y distinguir de manera confiable cada registro individual en una tabla . El creador de la base de datos puede elegir un atributo único existente o una combinación de atributos de la tabla (una clave natural ) para que actúe como su clave principal, o crear un nuevo atributo que contenga un identificador único que exista únicamente para este propósito (una clave sustituta ).

Entre los ejemplos de claves naturales que podrían ser claves primarias adecuadas se incluyen datos que, por definición, ya son únicos para todos los elementos de la tabla, como un atributo de número de identificación nacional para registros de personas, o la combinación de un atributo de marca de tiempo muy preciso con un atributo de ubicación muy preciso para registros de eventos.

De manera más formal, una clave principal es una elección específica de un conjunto mínimo de atributos que especifican de forma única una tupla ( fila ) en una relación (tabla). [a] [1] Una clave principal es una elección [ aclaración necesaria ] de una clave candidata (una superclave mínima ); cualquier otra clave candidata es una clave alternativa .

Diseño

En términos de bases de datos relacionales, una clave principal no difiere en forma o función de una clave que no es principal. En la práctica, varias motivaciones pueden determinar la elección de una clave como principal en lugar de otra. La designación de una clave principal puede indicar el identificador "preferido" para los datos de la tabla, o que la clave principal se utilizará para referencias de claves externas de otras tablas o puede indicar alguna otra característica técnica en lugar de semántica de la tabla. Algunos lenguajes y software tienen características de sintaxis especiales que se pueden utilizar para identificar una clave principal como tal (por ejemplo, la restricción PRIMARY KEY en SQL).

El modelo relacional, tal como se expresa a través del cálculo relacional y el álgebra relacional, no distingue entre claves primarias y otros tipos de claves. Las claves primarias se agregaron al estándar SQL principalmente para conveniencia del programador de aplicaciones. [ cita requerida ]

Las claves principales pueden ser un número entero que se incrementa, un identificador único universal (UUID) o pueden generarse utilizando el algoritmo Hi/Lo .

Definición de claves primarias en SQL

Las claves primarias se definen en el estándar SQL ISO , mediante la restricción PRIMARY KEY. La sintaxis para agregar dicha restricción a una tabla existente se define en SQL:2003 de la siguiente manera:

ALTER TABLE < identificador de tabla > ADD [ CONSTRAINT < identificador de restricción > ] PRIMARY KEY ( < nombre de columna > [ { , < nombre de columna > } ... ] )                       

La clave principal también se puede especificar directamente durante la creación de la tabla. En el estándar SQL, las claves principales pueden constar de una o varias columnas. Cada columna que participa en la clave principal se define implícitamente como NOT NULL. Tenga en cuenta que algunos RDBMS requieren marcar explícitamente las columnas de clave principal como NOT NULL. [ cita requerida ]

CREAR TABLA nombre_tabla ( ... )     

Si la clave principal consta únicamente de una única columna, la columna se puede marcar como tal utilizando la siguiente sintaxis:

CREAR TABLA nombre_tabla ( id_col INT CLAVE PRIMARIA , col2 CARÁCTER VARIABLE ( 20 ), ... )           

Llaves sustitutas

En algunas circunstancias, la clave natural que identifica de forma única una tupla en una relación puede resultar complicada de utilizar para el desarrollo de software. Por ejemplo, puede implicar varias columnas o campos de texto grandes. En tales casos, se puede utilizar una clave sustituta como clave principal. En otras situaciones, puede haber más de una clave candidata para una relación y, obviamente, no se prefiere ninguna clave candidata. Se puede utilizar una clave sustituta como clave principal para evitar dar a una clave candidata una primacía artificial sobre las demás.

Dado que las claves primarias existen principalmente para conveniencia del programador, las claves primarias sustitutas se utilizan a menudo, en muchos casos de manera exclusiva, en el diseño de aplicaciones de bases de datos.

Debido a la popularidad de las claves primarias sustitutas, muchos desarrolladores y, en algunos casos, incluso teóricos, han llegado a considerar las claves primarias sustitutas como una parte inalienable del modelo de datos relacional. Esto se debe en gran medida a una migración de principios del modelo de programación orientada a objetos al modelo relacional, creando el modelo híbrido objeto-relacional. En el patrón de registro activo similar a ORM , se imponen estas restricciones adicionales a las claves primarias:

Sin embargo, ninguna de estas restricciones forma parte del modelo relacional ni de ningún estándar SQL. Se debe actuar con la debida diligencia al decidir sobre la inmutabilidad de los valores de clave principal durante el diseño de la base de datos y la aplicación. Algunos sistemas de bases de datos incluso implican que los valores de las columnas de clave principal no se pueden cambiar mediante la UPDATEdeclaración SQL. [ cita requerida ]

Clave alternativa

Normalmente, se elige una clave candidata como clave principal. Otras claves candidatas se convierten en claves alternativas, a cada una de las cuales se UNIQUEle puede asignar una restricción para evitar duplicados (una entrada duplicada no es válida en una columna única). [2]

Las claves alternativas se pueden usar como la clave principal cuando se realiza una selección de una sola tabla o cuando se filtra en una cláusula where , pero normalmente no se usan para unir varias tablas.

Véase también

Notas

  1. ^ Los términos correspondientes son respectivamente teóricos (atributo, tupla, relación) y concretos (columna, fila, tabla).

Referencias

  1. ^ "Agregar o cambiar la clave principal de una tabla en Access". Microsoft . Consultado el 20 de enero de 2020 . Una clave principal es un campo o un conjunto de campos con valores que son únicos en toda una tabla.
  2. ^ Tecla alternativa – Preguntas frecuentes de Oracle