Clave primaria
En el diseño de bases de datos relacionales, se llama clave primaria a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. No puede haber dos filas en una tabla que tengan la misma clave primaria.
Ejemplos de claves primarias son DNI (asociado a una persona) o ISBN (asociado a un libro). Las guías telefónicas y diccionarios no pueden usar nombres o palabras o números del sistema decimal de Dewey como claves candidatas, porque no identifican unívocamente números de teléfono o palabras.
El modelo relacional, según se lo expresa mediante cálculo relacional y álgebra relacional, no distingue entre clave primaria y otros tipos de claves. Las claves primarias fueron agregadas al estándar SQL principalmente para conveniencia del programador. En una arquitectura entidad-relación, la clave primaria permite las relaciones de la tabla que tiene la clave primaria con otras tablas que van a utilizar la información de esta tabla.
Tanto claves únicas como claves primarias pueden referenciarse con claves foráneas.
Definiendo claves primarias:
Las claves primarias están definidas el estándar ANSI SQL, mediante la directiva PRIMARY KEY. La sintaxis para aplicar tal directiva a una tabla existente está definida en SQL:2003 de esta manera:
ALTER TABLE <identificador_de_la_tabla>
ADD [ CONSTRAINT <identificador_de_la_directiva> ]
PRIMARY KEY ( <nombre_de_columna> {, <nombre_de_columna>}... )
La clave primaria puede especificarse directamente o de forma inmediata en el momento de la creación de la tabla también. En el estándar SQL, las claves primarias pueden estar compuestas por una o más columnas. Cada columna que forme parte de la clave primaria queda implícitamente definida como NOT NULL. Nótese que algunos sistemas de bases de datos requieren que se marque explícitamente a las columnas de clave primaria como NOT NULL.
CREATE TABLE nombre_de_la_tabla (
id_col INT,
col2 CHARACTER VARYING(20),
...
CONSTRAINT clapri_tabla PRIMARY KEY(id_col),
...
)
En el caso en que la clave primaria sea una sola columna, ésta puede marcarse como tal por medio de la siguiente sintaxis:
CREATE TABLE nombre_de_la_tabla (
id_col INT PRIMARY KEY,
col2 CHARACTER VARYING(20),
...
)
Definiendo claves primarias
La definición de claves únicas es sintácticamente muy similar a la de clave primaria.
ALTER TABLE <identificador_de_la_tabla>
ADD [ CONSTRAINT <identificador_de_la_directiva> ]
UNIQUE ( <nombre_de_columna> {, <nombre_de_columna>}... )
De la misma manera, las claves únicas pueden definirse como parte de la sentencia de SQL
CREATE TABLE
. CREATE TABLE nombre_de_la_tabla (
id_col INT,
col2 CHARACTER VARYING(20),
cla_col SMALLINT,
...
CONSTRAINT clave_única UNIQUE(cla_col),
...
)
CREATE TABLE nombre_de_la_tabla (
id_col INT PRIMARY KEY,
col2 CHARACTER VARYING(20),
...
cla_col SMALLINT UNIQUE,
...
)
No hay comentarios:
Publicar un comentario