CustomerID

Anuncio
Base de datos II
UNIDAD III. Restricciones de las
Bases de Datos
Objetivo

El
alumno
establecerá
las
restricciones a la base de datos
relacional para mantener la integridad
de la misma.
MC Ricardo Israel Roque Covarrubias
Resultado de Aprendizaje

Elaborará un documento basado en
un caso de estudio que incluya:
Esquema de base de datos con
restricciones definidas.
 Scripts de las restricciones definidas.
 Casos
de prueba con resultados
obtenidos.
 Conclusiones

MC Ricardo Israel Roque Covarrubias
Contenido
1.
2.
3.
Tipos de restricciones de integridad.
Uso de restricciones.
Casos de Prueba para restricciones
MC Ricardo Israel Roque Covarrubias
1. Tipos de restricciones
De dominio
 Entidad
 Referencial

MC Ricardo Israel Roque Covarrubias
Tipos de integridad de datos
Integridad de dominio
(columnas)
Integridad de entidad (filas)
Integridad referencial
(entre tablas)
Exigir integridad de los datos

Integridad de datos declarativa
Los criterios se definen en la definición
del objeto
 Asegurada automáticamente por SQL
Server
 Implementada
mediante restricciones,
valores predeterminados y reglas

Exigir integridad de los datos

Integridad de datos procedimental
Los criterios se definen en una secuencia
de comandos
 Asegurada
mediante
secuencia
de
comandos
 Implementada
mediante
desencadenadores
y
procedimientos
almacenados

Determinación del tipo de
restricción que se va a utilizar
Tipo de integridad
Dominio
Entidad
Referencial
Tipo de restricción
DEFAULT
CHECK
REFERENTIAL
PRIMARY KEY
UNIQUE
FOREIGN KEY
CHECK
2. Uso de restricciones
Restricciones DEFAULT
 Restricciones CHECK
 Restricciones PRIMARY KEY
 Restricciones UNIQUE
 Restricciones FOREIGN KEY
 Integridad referencial en cascada

Creación de restricciones
Utilizar CREATE TABLE o ALTER
TABLE
 Puede agregar restricciones a una
tabla con datos existentes
 Puede aplicar restricciones a una sola
columna o a varias columnas

Una sola columna, se llama restricción
de columna
 Varias columnas, se llama restricción de
tabla

Restricciones DEFAULT
Sólo se aplica a las instrucciones
INSERT
 Sólo una restricción DEFAULT por
columna
 No
se puede utilizar con la
propiedad IDENTITY o el tipo de
datos rowversion
 Permite que se especifiquen algunos
valores proporcionados por el
sistema

Restricciones DEFAULT
USE Northwind
ALTER TABLE dbo.Customers
ADD
CONSTRAINT DF_contactname DEFAULT 'UNKNOWN'
FOR ContactName
Restricciones CHECK
Se utilizan con las instrucciones
INSERT y UPDATE
 Pueden hacer referencia a otras
columnas en la misma tabla
 No pueden:


Contener subconsultas
USE Northwind
ALTER TABLE dbo.Employees
ADD
CONSTRAINT CK_birthdate
CHECK (BirthDate > '01-01-1900' AND BirthDate <
getdate())
Restricciones PRIMARY KEY
Sólo una restricción PRIMARY KEY
por tabla
 Los valores deben ser exclusivos
 No se permiten valores nulos
 Crea un índice exclusivo en las
columnas especificadas

USE Northwind
ALTER TABLE dbo.Customers
ADD
CONSTRAINT PK_Customers
PRIMARY KEY NONCLUSTERED (CustomerID)
Restricciones UNIQUE
Permite un valor nulo
 Permite varias restricciones UNIQUE
en una tabla
 Definidas con una o más columnas
 Exigida con un índice único

USE Northwind
ALTER TABLE dbo.Suppliers
ADD
CONSTRAINT U_CompanyName
UNIQUE NONCLUSTERED (CompanyName)
Restricciones FOREIGN KEY
Deben hacer referencia a una
restricción PRIMARY KEY o UNIQUE
 Proporcionan integridad referencial de
una o de varias columnas
 No crean índices automáticamente
 Los usuarios deben tener permisos
SELECT o REFERENCES en las tablas a
las que se hace referencia
 Usa sólo la cláusula REFERENCES en la
tabla de ejemplo

Restricciones FOREIGN KEY
USE Northwind
ALTER TABLE dbo.Orders
ADD CONSTRAINT FK_Orders_Customers
FOREIGN KEY (CustomerID)
REFERENCES dbo.Customers(CustomerID)
Integridad referencial en
cascada
NINGUNA
CASCADA
ACCIÓN
1
1
INSERT new
CustomerID
2
Customers
CustomerID (PK)
Customers
CustomerID (PK)
Orders
CustomerID (FK)
UPDATE old
CustomerID to new
CustomerID
Customers
CustomerID (PK)
3
DELETE old
CustomerID
UPDATE CustomerID
CASCADA
Orders
CustomerID (FK)
Descargar