Está en la página 1de 18

Implementación de la

integridad de datos
Base de Datos II
Restricciones de integridad
Con el fin de asegurar la integridad de los datos,
SQL proporciona una serie de restricciones de
integridad, reglas que se aplican a la base de datos
para restringir los valores que se pueden colocar
en esas tablas.
Restricciones de integridad
Restricciones NOT NULL
• Un valor nulo significa que un valor no está
definido o no se conoce.
• Esto no es lo mismo que cero, en blanco, una
cadena vacía o un valor predeterminado.
• Cada columna tiene una característica de nulo
que indica si la columna acepta valores nulos.
• Se puede anular la característica de nulo
predeterminada utilizando una restricción NOT
NULL, que indica que la columna no acepta
valores nulos.
Restricciones NOT NULL
La restricción NOT NULL sólo puede utilizarse como una
restricción de columna.

<nombre de columna> <tipo de datos> NOT NULL

Ejemplo:

CREATE TABLE artistas_disco_compacto


(id_artista INT NOT NULL,
nombre_artista VARCHAR(60) NOT NULL,
lugar_de_nacimiento varchar(60) );
Restricciones UNIQUE
La restricción UNIQUE permite exigir que una columna o
conjunto de columnas contengan valores únicos.
Restricciones UNIQUE
• Para crear una restricción de columna:
<nombre de columna> <tipo de datos> UNIQUE
Ejemplo:
CREATE TABLE cd_inventario (nombre_artista VARCHAR(40),
nombre_cd VARCHAR(60) UNIQUE, derechosdeautor INT );

• Para crear una restricción de tabla:


[ CONSTRAINT <nombre de la restricción> ]
UNIQUE ( <nombre de columna> [{, <nombre de columna>}… ] )
Ejemplo:
CREATE TABLE cd_inventario (nombre_artista VARCHAR(40),
nombre_cd VARCHAR(60), derechosdeautor INT, CONSTRAINT
un_artista_cd UNIQUE (nombre_artista, nombre_cd ) );
Restricciones PRIMARY KEY
• La clave primaria (PRIMARY KEY) surge de una clave
candidato.
• Una clave de candidato es un conjunto de una o más
columnas que identifican de forma exclusiva a cada fila.
• Cada tabla debe contener una clave primaria.
• Para definir una clave primaria, se debe utilizar una
restricción de PRIMARY KEY para especificar qué
columna o columnas servirán como la clave primaria de
una tabla.
Restricciones PRIMARY KEY
• Para crear una restricción de columna:
<nombre de columna> <tipo de datos> PRIMARY KEY
Ejemplo:
CREATE TABLE cd_artistas (id_artista INT PRIMARY KEY,
nombre_artista VARCHAR(60), id_agencia INT);

• Para crear una restricción de tabla:


[CONSTRAINT <nombre de la restricción> ]
PRIMARY KEY (<nombre de columna> [ {, <nombre de columna> }… ])
• Ejemplo:
CREATE TABLE cd_artistaS (id_artista INT, nombre_artista
VARCHAR(60), id_agencia INT, CONSTRAINT pk_id_artista PRIMARY
KEY (ID_ARTISTA, NOMBRE_ARTISTA ) );
Restricciones FOREIGN KEY
La restricción FOREIGN KEY se ocupa de cómo los datos en
una tabla hacen referencia a los datos en otra tabla, que es
la razón por la que se conoce como una estricción
referencial (en relación con otra tabla).
Restricciones FOREIGN KEY
• Crear una restricción de columna
<nombre de columna> <tipo de datos> REFERENCES
<tabla referenciada> [( <columnas referenciadas> )]

Ejemplo:
CREATE TABLE titulos_cd (id_titulo_cd INT,
titulo_cd VARCHAR(60), id_editor INT REFERENCES
editores_cd );
Restricciones FOREIGN KEY
• Crear una restricción de tabla
[CONSTRAINT <nombre de la restricción>]
FOREIGN KEY (<columna referenciada> [{, <columna
referenciada>}...]) REFERENCES <tabla referida>
[(columnas de referencia>)]

Ejemplo:
CREATE TABLE titulos_cd (id_titulo_cd INT,
titulo_cd VARCHAR(60), id_editor INT,
CONSTRAINT fk_id_editor FOREIGN KEY (id_editor)
REFERENCES editores_cd (id_editor) );
CLAUSULA MATCH
Su propósito es permitirle decidir cómo tratar los valores nulos
en las columnas de clave foránea con respecto a los valores que
permiten que se inserten en las columnas de referencia.

MATCH FULL

• Todas las columnas de referencia deben tener un valor nulo o ninguna de esas
columnas puede tener un valor nulo.

MATCH PARTIAL

• una o más columnas de referencia pueden tener valores nulos siempre y cuando
el resto de las columnas de referencia tengan valores que igualen a las columnas
de referencia correspondientes

MATCH SIMPLE

• Una o más columnas de referencia tienen valores nulos, entonces el resto de las
columnas de referencia pueden tener valores que no están contenidos en las
columnas de referencia correspondientes.
MATCH SIMPLE
MATCH PARTIAL
MATCH FULL
CLAÚSULA <acción referencial
desencadenada>
Permite definir qué tipos de acciones se deben tomar
cuando se intenta actualizar o eliminar datos desde
columnas referenciadas.

Se puede definir una cláusula ON UPDATE, y una cláusula


ON DELETE, o ambas, y se pueden definir en cualquier
orden. Para cada una de estas cláusulas se puede escoger
una de cinco acciones referenciales.
Acciones referenciales
CASCADE

• Los datos se actualizan o eliminan en las columnas referenciadas y de referencia.

SET NULL

• Los datos se actualizan o eliminan en las columnas referenciadas, y en las columnas de


referencia se establecen como nulos.

SET DEFAULT

• Los datos se actualizan o eliminan en las columnas referenciadas, y en las columnas de


referencia se establecen los valores predeterminados.

RESTRICT

• Los datos en las columnas de referencia nunca pueden violar la restricción FOREIGN KEY.

NO ACTION

• Las violaciones de datos pueden ocurrir temporalmente bajo ciertas condiciones, pero los
datos en la clave foránea nunca se violan en su estado final

También podría gustarte