Anar al contingut

Clau primària

De L'Enciclopèdia, la wikipedia en valencià

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]