Implementacin de la integridad de datos Introduccin n

  • Slides: 20
Download presentation
Implementación de la integridad de datos

Implementación de la integridad de datos

Introducción n Tipos de integridad de datos n Exigir la integridad de los datos

Introducción n Tipos de integridad de datos n Exigir la integridad de los datos n Definición de restricciones n Tipos de restricciones n Deshabilitación de restricciones n Uso de valores predeterminados y reglas n Decisión del método de implementación que va a utilizar

Tipos de integridad de datos Integridad de dominio (columnas) Integridad de entidad (filas) Integridad

Tipos de integridad de datos Integridad de dominio (columnas) Integridad de entidad (filas) Integridad referencial (entre tablas)

Exigir integridad de los datos n n Integridad de datos declarativa l Los criterios

Exigir integridad de los datos n n Integridad de datos declarativa l Los criterios se definen en la definición del objeto l Asegurada automáticamente por SQL Server l Implementada mediante restricciones, valores predeterminados y reglas Integridad de datos procedimental l Los criterios se definen en una secuencia de comandos l Asegurada mediante secuencia de comandos l Implementada mediante desencadenadores y prodedimientos almacenados

u Definición de restricciones n Determinación del tipo de restricción que se va a

u Definición de restricciones n Determinación del tipo de restricción que se va a utilizar n Creación de restricciones n Consideraciones para el uso de restricciones

Determinación del tipo de restricción quese va a utilizar Tipo de integridad Dominio Entidad

Determinación del tipo de restricción quese va a utilizar Tipo de integridad Dominio Entidad Referencial Tipo de restricción DEFAULT CHECK REFERENTIAL PRIMARY KEY UNIQUE FOREIGN KEY CHECK

Creación de restricciones n Utilizar CREATE TABLE o ALTER TABLE n Puede agregar restricciones

Creación de restricciones n Utilizar CREATE TABLE o ALTER TABLE n Puede agregar restricciones a una tabla con datos existentes n Puede aplicar restricciones a una sola columna o a varias columnas l Una sola columna, se llama restricción de columna l Varias columnas, se llama restricción de tabla

Consideraciones para el uso de restricciones n Pueden cambiarse sin volver a crear una

Consideraciones para el uso de restricciones n Pueden cambiarse sin volver a crear una tabla n Requieren comprobación de errores en aplicaciones y transacciones n Comprueban los datos existentes

u Tipos de restricciones n Restricciones DEFAULT n Restricciones CHECK n Restricciones PRIMARY KEY

u Tipos de restricciones n Restricciones DEFAULT n Restricciones CHECK n Restricciones PRIMARY KEY n Restricciones UNIQUE n Restricciones FOREIGN KEY n Integridad referencial en cascada

Restricciones DEFAULT n Sólo se aplica a las instrucciones INSERT n Sólo una restricción

Restricciones DEFAULT n Sólo se aplica a las instrucciones INSERT n Sólo una restricción DEFAULT por columna n No se puede utilizar con la propiedad IDENTITY o el tipo de datos rowversion n Permite que se especifiquen algunos valores proporcionados por el sistema USE Northwind ALTER TABLE dbo. Customers ADD CONSTRAINT DF_contactname DEFAULT 'UNKNOWN' FOR Contact. Name

Restricciones CHECK n Se utilizan con las instrucciones INSERT y UPDATE n Pueden hacer

Restricciones CHECK n Se utilizan con las instrucciones INSERT y UPDATE n Pueden hacer referencia a otras columnas en la misma tabla n No pueden: l Utilizarse con el tipo de datos rowversion l Contener subconsultas USE Northwind ALTER TABLE dbo. Employees ADD CONSTRAINT CK_birthdate CHECK (Birth. Date > '01 -01 -1900' AND Birth. Date < getdate())

Restricciones PRIMARY KEY n Sólo una restricción PRIMARY KEY por tabla n Los valores

Restricciones PRIMARY KEY n Sólo una restricción PRIMARY KEY por tabla n Los valores deben serexclusivos n No se permiten valores nulos n Crea un índice exclusivo en las columnas especificadas USE Northwind ALTER TABLE dbo. Customers ADD CONSTRAINT PK_Customers PRIMARY KEY NONCLUSTERED (Customer. ID)

Restricciones UNIQUE n Permite un valor nulo n Permite varias restricciones UNIQUE en una

Restricciones UNIQUE n Permite un valor nulo n Permite varias restricciones UNIQUE en una tabla n Definidas con una o más columnas n Exigida con un índice único USE Northwind ALTER TABLE dbo. Suppliers ADD CONSTRAINT U_Company. Name UNIQUE NONCLUSTERED (Company. Name)

Restricciones FOREIGN KEY n Deben hacer referencia a una restricción PRIMARY KEY o UNIQUE

Restricciones FOREIGN KEY n Deben hacer referencia a una restricción PRIMARY KEY o UNIQUE n Proporcionan integridad referencial de una o de varias columnas n No crean índices automáticamente n Los usuarios deben tener permisos SELECT o REFERENCES en las tablas a las que se hace referencia n Usa sólo la cláusula. REFERENCES en la tabla de ejemplo USE Northwind ALTER TABLE dbo. Orders ADD CONSTRAINT FK_Orders_Customers FOREIGN KEY (Customer. ID) REFERENCES dbo. Customers(Customer. ID)

Integridad referencial en cascada NINGUNA ACCIÓN CASCADA Customers Customer. ID (PK) 1 1 INSERT

Integridad referencial en cascada NINGUNA ACCIÓN CASCADA Customers Customer. ID (PK) 1 1 INSERT new Customer. ID 2 Customers Customer. ID (PK) Orders Customer. ID (FK) UPDATE old Customer. ID to new Customer. ID Customers Customer. ID (PK) 3 DELETE old Customer. ID UPDATE Customer. ID CASCADA Orders Customer. ID (FK)

u Deshabilitación de restricciones n Deshabilitación de la comprobación de las restricciones en los

u Deshabilitación de restricciones n Deshabilitación de la comprobación de las restricciones en los datos existentes n Deshabilitación de la comprobación de las restricciones al cargar datos nuevos

Deshabilitación de la comprobaciónde las restriccionesen los datos existentes n Se aplica a las

Deshabilitación de la comprobaciónde las restriccionesen los datos existentes n Se aplica a las restricciones. CHECK y FOREIGN KEY n Utilice la opción WITH NOCHECK cuando agregue una restricción nueva n Utilizar si los datos existentesno cambian n Se pueden cambiar los datos existentesantes de agregar restricciones USE Northwind ALTER TABLE dbo. Employees WITH NOCHECK ADD CONSTRAINT FK_Employees FOREIGN KEY (Reports. To) REFERENCES dbo. Employees(Employee. ID)

Deshabilitación de la comprobación de las restricciones al cargar datos nuevos n Se aplica

Deshabilitación de la comprobación de las restricciones al cargar datos nuevos n Se aplica a las restricciones CHECK y FOREIGN KEY n Utilizar si: l Los datos cumplen las restricciones l Carga datos nuevos que no cumplen las restricciones USE Northwind ALTER TABLE dbo. Employees NOCHECK CONSTRAINT FK_Employees

Uso de valores predeterminados y reglas n Como objetos independientes: l Se definen una

Uso de valores predeterminados y reglas n Como objetos independientes: l Se definen una vez l Pueden vincularse a una o más columnas o a tipos de datos definidos por el usuario CREATE DEFAULT phone_no_default AS '(000)000 -0000' 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'

Decisión del método de implementación que vaa utilizar Componente de Costos de Funcionalidad integridad

Decisión del método de implementación que vaa utilizar Componente de Costos de Funcionalidad integridad de datos rendimiento Antes o después de la transacción Restricciones Media Baja Antes Valores predeterminados y reglas Baja Antes Desencadenadores Alta Medio-alto Después Tipos de datos, Null/Not Null Baja Antes