Clau primària
En el disseny de bases de senyes relacionals, es diu clau primària, clau primària o clau principal a un camp o a una combinació de camps que identifica de forma única a cada fila d'una taula. Una clau primària comprén d'esta manera una columna o conjunt de columnes. No pot haver dos files en una taula que tinguen la mateixa clau primària.
Eixemples de claus primàries són DNI (associat a una persona) o ISBN (associat a un llibre). Les guies telefòniques i diccionaris no poden usar noms o paraules o números del sistema decimal de Dewey com a claus candidates, perque no identifiquen unívocamente números de teléfon o paraules.
El model relacional, segons li l'expressa per mig de càlcul relacional i àlgebra relacional, no distinguix entre clau primària i atres tipos de claus. Les claus primàries varen ser agregades a l'estàndart SQL principalment per a conveniència del programador. En un modele entitat-relació, la clau primària permet les relacions de la taula que té la clau primària en atres taules que van a utilisar l'informació d'esta taula.
Tant claus úniques com a claus primàries poden referenciarse en claus forànees.
Definint claus primàries
[editar | editar còdic]Les claus primàries estan definides l'estàndart ANSI SQL, per mig de la directiva PRIMARY KEY. La sintaxis per a aplicar tal directiva a una taula existent està definida en SQL:2003 d'esta manera:
ALTER TABLE <identificador_de_la_taula>
ADD [ CONSTRAINT <identificador_de_la_directiva> ]
PRIMARY KEY ( <nom_de_columna> {, <nom_de_columna>}... )La clau primària pot especificar-se directament o de forma immediata en el moment de la creació de la taula també. En l'estàndart SQL, les claus primàries poden estar compostes per una o més columnes. Cada columna que forme part de la clau primària queda implícitament definida com NOT NULL. Note's que alguns sistemes de bases de senyes requerixen que es marque explícitament a les columnes de clau primària com NOT NULL.
CREATE TABLE nom_de_la_taula (
aneu_col INT,
col2 CHARACTER VARYING(20),
...
CONSTRAINT clapri_taula PRIMARY KEY(aneu_col),
...
)En el cas en que la clau primària siga una sola columna, esta pot marcar-se com a tal per mig de la següent sintaxis:
CREATE TABLE nom_de_la_taula (
aneu_col INT PRIMARY KEY,
col2 CHARACTER VARYING(20),
...
))
Definint claus úniques
[editar | editar còdic]La definició de claus úniques és sintácticamente molt similar a la de clau primària.
ALTER TABLE <identificador_de_la_taula>
ADD [ CONSTRAINT <identificador_de_la_directiva> ]
UNIQUE ( <nom_de_columna> {, <nom_de_columna>}... )De la mateixa manera, les claus úniques poden definir-se com a part de la sentència de SQL CREATE TABLE.
CREATE TABLE nom_de_la_taula (
aneu_col INT,
col2 CHARACTER VARYING(20),
cla_col SMALLINT,
...
CONSTRAINT clau_única UNIQUE(cla_col),
...
) CREATE TABLE nom_de_la_taula (
aneu_col INT PRIMARY KEY,
col2 CHARACTER VARYING(20),
...
cla_col SMALLINT UNIQUE,
...
)
Referències
[editar | editar còdic]- Este artícul conté una traducció derivada de «Clave primaria» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.