Está en la página 1de 20

Implementacin de la integridad de datos

Introduccin

Tipos de integridad de datos Exigir la integridad de los datos Definicin de restricciones Tipos de restricciones Deshabilitacin de restricciones Uso de valores predeterminados y reglas Decisin del mtodo de implementacin que va a utilizar

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 definicin del objeto Asegurada automticamente por SQL Server Implementada mediante restricciones, valores predeterminados y reglas Los criterios se definen en una secuencia de comandos Asegurada mediante secuencia de comandos

Integridad de datos procedimental

Definicin de restricciones

Determinacin del tipo de restriccin que se va a utilizar Creacin de restricciones Consideraciones para el uso de restricciones

Determinacin del tipo de restriccin que se va a utilizar

Tipo de integridad Dominio

Tipo de restriccin DEFAULT CHECK REFERENTIAL PRIMARY KEY UNIQUE FOREIGN KEY CHECK

Entidad Referencial

Creacin 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 restriccin de columna Varias columnas, se llama restriccin de tabla

Consideraciones para el uso de restricciones


Pueden cambiarse sin volver a crear una tabla Requieren comprobacin de errores en aplicaciones y transacciones Comprueban los datos existentes

Tipos de restricciones

Restricciones DEFAULT Restricciones CHECK Restricciones PRIMARY KEY Restricciones UNIQUE Restricciones FOREIGN KEY Integridad referencial en cascada

Restricciones DEFAULT

Slo se aplica a las instrucciones INSERT Slo una restriccin DEFAULT por columna No se puede utilizar con la propiedad IDENTITY o el tipo de datos rowversion

Permite que se especifiquen algunos USE valores proporcionados por el sistema 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:

Utilizarse con el tipo de datos rowversion

USE Northwind Contener subconsultas ALTER TABLE dbo.Employees ADD CONSTRAINT CK_birthdate CHECK (BirthDate > '01-01-1900' AND BirthDate < getdate())

Restricciones PRIMARY KEY

Slo una restriccin PRIMARY KEY por tabla Los valores deben ser exclusivos No se permiten valores nulos

Crea un ndice exclusivo en las USE Northwind columnas especificadas


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 ms 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 restriccin PRIMARY KEY o UNIQUE Proporcionan integridad referencial de una o de varias columnas No crean ndices automticamente Los usuarios deben tener permisos SELECT o REFERENCES en las tablas a las que se hace referencia en la

Usa slo la USE Northwind clusula REFERENCES tabla de ejemplo ALTER TABLE dbo.Orders ADD CONSTRAINT FK_Orders_Customers FOREIGN KEY (CustomerID) REFERENCES dbo.Customers(CustomerID)

Integridad referencial en cascada


NINGUNA ACCIN
1 Customers CustomerID (PK)

CASCADA
1

Customers CustomerID (PK)

INSERT new CustomerID


Orders CustomerID (FK)

UPDATE CustomerID CASCADA


Orders CustomerID (FK)

UPDATE old CustomerID to new CustomerID

Customers CustomerID (PK)

DELETE old CustomerID

Deshabilitacin de restricciones

Deshabilitacin de la comprobacin de las restricciones en los datos existentes Deshabilitacin de la comprobacin de las restricciones al cargar datos nuevos

Deshabilitacin de la comprobacin de las restricciones en los datos existentes

Se aplica a las restricciones CHECK y FOREIGN KEY Utilice la opcin WITH NOCHECK cuando agregue una restriccin nueva Utilizar si los datos existentes no cambian

USE Se pueden cambiar los datos Northwind existentes antes de ALTER TABLE dbo.Employees agregar WITHrestricciones NOCHECK ADD CONSTRAINT FK_Employees_Employees FOREIGN KEY (ReportsTo) REFERENCES dbo.Employees(EmployeeID)

Deshabilitacin de la comprobacin de las restricciones al cargar datos nuevos


Se aplica a las restricciones CHECK y FOREIGN KEY Utilizar si:

Los datos cumplen las restricciones

Carga datos nuevos que no cumplen las USE Northwind restricciones


ALTER TABLE dbo.Employees NOCHECK CONSTRAINT FK_Employees_Employees

Uso de valores predeterminados y reglas

Como objetos independientes:


Se definen una vez

Pueden vincularse a una o ms columnas o a tipos de datos definidos por el CREATE usuario phone_no_default DEFAULT
GO EXEC sp_bindefault phone_no_default, 'Customers.Phone' CREATE RULE regioncode_rule AS @regioncode IN ('IA', 'IL', 'KS', 'MO') GO EXEC sp_bindrule regioncode_rule, 'Customers.Region' AS '(000)000-0000'

Decisin del mtodo de implementacin que va a utilizar

Componente de Costos de Funcionalidad integridad de datos rendimiento Restricciones Valores predeterminados y reglas Desencadenadores Tipos de datos, Null/Not Null Media Baja Alta Baja Baja Baja Medio-alto Baja

Antes o despus de la transaccin Antes Antes Despus Antes

También podría gustarte