Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Integridad Referencial
Integridad Referencial
integridad de datós
Base de Datos II
Restricciónes 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.
Restricciónes de integridad
Restricciónes 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.
Restricciónes NOT NULL
La restricción NOT NULL sólo puede utilizarse como una
restricción de columna.
Ejemplo:
Ejemplo:
CREATE TABLE titulos_cd (id_titulo_cd INT,
titulo_cd VARCHAR(60), id_editor INT REFERENCES
editores_cd );
Restricciónes 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
CLAUÚ SULA <accióó n referencial
desencadenada>
Permite definir qué tipos de acciones se deben tomar
cuando se intenta actualizar o eliminar datos desde
columnas referenciadas.
SET NULL
SET DEFAULT
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
Restriccióó n CHECK
Una restricción CHECK permite especificar qué valores se
pueden incluir en una columna.
Se puede definir un rango de valores (por ejemplo, entre
10 y 100), una lista de valores (por ejemplo, blues, jazz,
pop, country), o una serie de otras condiciones que
restringen exactamente qué valores se permiten en una
columna.
Restriccióó n CHECK
• Restricción CHECK de columna
<nombre de columna> <tipo de datos> CHECK ( <condición de
búsqueda> )
Ejemplo:
CREATE TABLE titulos_cd ( id_disco_compacto INT, titulo_cd
VARCHAR(60) NOT NULL, en_existencia INT NOT NULL CHECK
( en_existencia > 0 AND en_existencia < 30 ) );
Ejemplo:
CREATE TABLE titulos_cd ( id_disco_compacto INT,
titulo_cd VARCHAR(60) NOT NULL, era CHAR(5),
CONSTRAINT ck_era check ( era IN ( '1940s', '1950s',
'1960s', '1970s', '1980s', '1990s', '2000s' ) ) );
Restriccióó n CHECK
Usando el operador BETWEEN
• Ejemplo:
CREATE TABLE titulos_cd (id_disco_compacto INT, titulo_cd
VARCHAR(60) NOT NULL, en_existencia INT NOT NULL,
constraint ck_en_existencia CHECK ( ( en_existencia BETWEEN 0
AND 30 ) OR ( en_existencia BETWEEN 49 AND 60 ) ) )