tema 6. integridad de datos
DESCRIPTION
Tema 6. Integridad de Datos. Ing. Lenin Huayta Flores U.D. Taller de Base de Datos C.P. Computación e Informática. Í ndice. Tipos de integridad de datos Exigir la integridad de los datos Definición de restricciones Tipos de restricciones Deshabilitación de restricciones - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/1.jpg)
Ing. Lenin Huayta FloresU.D. Taller de Base de Datos
C.P. Computación e Informática
![Page 2: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/2.jpg)
Tipos de integridad de datos Exigir la integridad de los datos Definición de restricciones Tipos de restricciones Deshabilitación de restricciones Uso de valores predeterminados y
reglas Decisión del método de
implementación que va a utilizar
![Page 3: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/3.jpg)
Integridad de dominio (columnas)
Integridad de entidad (filas)
Integridad referencial(entre tablas)
![Page 4: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/4.jpg)
Integridad de datos declarativa◦ Los criterios se definen en la definición del objeto◦ Asegurada automáticamente por MySQL
Worbench.◦ Implementada mediante restricciones, valores
predeterminados y reglas. Integridad de datos procedimental
◦ Los criterios se definen en una secuencia de comandos
◦ Asegurada mediante secuencia de comandos◦ Implementada mediante desencadenadores y
prodedimientos almacenados
![Page 5: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/5.jpg)
Determinación del tipo de restricción que se va a utilizar
Creación de restricciones Consideraciones para el uso de
restricciones
![Page 6: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/6.jpg)
Tipo de integridadTipo de integridadTipo de integridadTipo de integridad Tipo de restricciónTipo de restricciónTipo de restricciónTipo de restricción
DominioDominioDEFAULTDEFAULT
CHECKCHECK
REFERENTIALREFERENTIAL
EntidadEntidad PRIMARY KEYPRIMARY KEY
UNIQUEUNIQUE
ReferencialReferencial FOREIGN KEYFOREIGN KEY
CHECKCHECK
![Page 7: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/7.jpg)
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
![Page 8: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/8.jpg)
Pueden cambiarse sin volver a crear una tabla
Requieren comprobación de errores en aplicaciones y transacciones
Comprueban los datos existentes
![Page 9: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/9.jpg)
Restricciones DEFAULT Restricciones CHECK Restricciones PRIMARY KEY Restricciones UNIQUE Restricciones FOREIGN KEY Integridad referencial en cascada
![Page 10: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/10.jpg)
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
USE dbventasALTER TABLE clienteADDCONSTRAINT DF_nombrecontacto DEFAULT 'UNKNOWN' FOR NombreContacto
USE dbventasALTER TABLE clienteADDCONSTRAINT DF_nombrecontacto DEFAULT 'UNKNOWN' FOR NombreContacto
![Page 11: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/11.jpg)
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◦ Contener subconsultas
USE dbventasALTER TABLE EmpleadosADD CONSTRAINT CK_fechanacimientoCHECK (FechaNacimiento > '01-01-1900' AND FechaNacimiento < getdate())
USE dbventasALTER TABLE EmpleadosADD CONSTRAINT CK_fechanacimientoCHECK (FechaNacimiento > '01-01-1900' AND FechaNacimiento < getdate())
![Page 12: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/12.jpg)
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 dbventasALTER TABLE Clientes ADD CONSTRAINT PK_Clientes PRIMARY KEY (IDCliente)
USE dbventasALTER TABLE Clientes ADD CONSTRAINT PK_Clientes PRIMARY KEY (IDCliente)
![Page 13: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/13.jpg)
Permite un valor nulo Permite varias restricciones UNIQUE en una
tabla Definidas con una o más columnas Exigida con un índice único
USE dbventasALTER TABLE ProveedoresADD CONSTRAINT U_NombreCompanhia UNIQUE (NombreCompanhia)
USE dbventasALTER TABLE ProveedoresADD CONSTRAINT U_NombreCompanhia UNIQUE (NombreCompanhia)
![Page 14: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/14.jpg)
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
USE bventasALTER TABLE Pedido ADD CONSTRAINT FK_Pedido_Clientes FOREIGN KEY (IDCliente) REFERENCES Clientes(IDCliente)
USE bventasALTER TABLE Pedido ADD CONSTRAINT FK_Pedido_Clientes FOREIGN KEY (IDCliente) REFERENCES Clientes(IDCliente)
![Page 15: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/15.jpg)
CASCADANINGUNAACCIÓN CustomersCustomersCustomersCustomers
INSERT new CustomerIDINSERT new CustomerID
CustomerID (PK)
11
OrdersOrdersOrdersOrders
CustomerID (FK)
UPDATE old CustomerID to new CustomerID
UPDATE old CustomerID to new CustomerID
22
CustomersCustomersCustomersCustomers
CustomerID (PK)
UPDATE CustomerIDUPDATE CustomerID
OrdersOrdersOrdersOrders
CustomerID (FK)
11
CASCADA
CustomersCustomersCustomersCustomers
DELETE old CustomerIDDELETE old CustomerID
CustomerID (PK)
33
![Page 16: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/16.jpg)
Deshabilitación de la comprobación de las restricciones en los datos existentes
Deshabilitación de la comprobación de las restricciones al cargar datos nuevos
![Page 17: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/17.jpg)
Se aplica a las restricciones CHECK y FOREIGN KEY
Utilice la opción WITH NOCHECK cuando agregue una restricción nueva
Utilizar si los datos existentes no cambian Se pueden cambiar los datos existentes
antes de agregar restriccionesUSE dbventasALTER TABLE Empleados WITH NOCHECK ADD CONSTRAINT FK_Empleados_Empleados FOREIGN KEY (AReportes) REFERENCES Empleados(IDEmpleado)
USE dbventasALTER TABLE Empleados WITH NOCHECK ADD CONSTRAINT FK_Empleados_Empleados FOREIGN KEY (AReportes) REFERENCES Empleados(IDEmpleado)
![Page 18: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/18.jpg)
Se aplica a las restricciones CHECK y FOREIGN KEY
Utilizar si:◦ Los datos cumplen las restricciones◦ Carga datos nuevos que no cumplen las
restricciones
USE dbventasALTER TABLE Empleados NOCHECK CONSTRAINT FK_Empleados_Empleados
USE dbventasALTER TABLE Empleados NOCHECK CONSTRAINT FK_Empleados_Empleados
![Page 19: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/19.jpg)
Como objetos independientes:◦ Se definen una vez◦ Pueden vincularse a una o más columnas
o a tipos de datos definidos por el usuario
CREATE DEFAULT telefono_no_default AS '(000)000-0000' GOEXEC sp_unirdefault telefono_no_default, 'Cliente.Telefono'
CREATE DEFAULT telefono_no_default AS '(000)000-0000' GOEXEC sp_unirdefault telefono_no_default, 'Cliente.Telefono'
CREATE RULE codigoregion_regla AS @codigoregion IN ('IA', 'IL', 'KS', 'MO')GOEXEC sp_unirregla codigoregion_regla, 'Clientes.Region'
CREATE RULE codigoregion_regla AS @codigoregion IN ('IA', 'IL', 'KS', 'MO')GOEXEC sp_unirregla codigoregion_regla, 'Clientes.Region'
![Page 20: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/20.jpg)
Componente deComponente deintegridad de datosintegridad de datos
Componente deComponente deintegridad de datosintegridad de datos
RestriccionesRestricciones
Valores predetermi-nados y reglas
Valores predetermi-nados y reglas
DesencadenadoresDesencadenadores
FuncionalidadFuncionalidadFuncionalidadFuncionalidad
MediaMedia
BajaBaja
AltaAlta
Costos de Costos de rendimientorendimiento
Costos de Costos de rendimientorendimiento
BajaBaja
BajaBaja
Medio-altoMedio-alto
Antes o despuésAntes o despuésde la transacciónde la transacción
Antes o despuésAntes o despuésde la transacciónde la transacción
AntesAntes
AntesAntes
DespuésDespués
Tipos de datos,Null/Not Null
Tipos de datos,Null/Not Null BajaBaja BajaBaja AntesAntes
![Page 21: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/21.jpg)
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 21
![Page 22: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/22.jpg)
Completar las siguientes tablas de la base de datos DBIESTPD:◦ alumno◦ aula◦ carreraprofesional◦ docente◦ semestre◦ unidaddidactica◦ usuario
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 22
![Page 23: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/23.jpg)
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 23
Volver
![Page 24: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/24.jpg)
idaula INT( 2 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT NomAula varchar(30),NumAula int(4) zerofill,primary key (idaula));
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 24
Volver
![Page 25: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/25.jpg)
idcarrera int(2) zerofill not null auto_increment,NomCarrera varchar(30),NumResolucion varchar (15),FecCreacion date default '1980-01-01',primary key (CodCarrera));
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 25
Volver
![Page 26: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/26.jpg)
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 26
Volver
![Page 27: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/27.jpg)
idsemestre int(2) zerofill not null auto_increment,Semestre varchar (3),Detalle varchar (25),Primary Key (CodSemestre));
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 27
Volver
![Page 28: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/28.jpg)
idunidaddidactica int(3) zerofill not null auto_increment,NomUnidad varchar (150),HorSemana int (2),CreUnidad float (2,1),HorSemestre int (3),Primary Key (CodUnidad),CodCarrera int(2) zerofill unsigned references carreraprofesional (CodCarrera),CodSemestre int(2) zerofill unsigned references semestreacademico (CodSemestre));
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 28
Volver
![Page 29: Tema 6. Integridad de Datos](https://reader030.vdocuments.site/reader030/viewer/2022013103/56813bea550346895da518e8/html5/thumbnails/29.jpg)
CodUsuario int(3) zerofill not null auto_increment,NomUsuario varchar(30),ApePaterno varchar (25),ApeMaterno varchar (25),TipUsuario enum ('ALUMNO','DOCENTE','ADMINISTRADOR') default 'ALUMNO',Usuario varchar (8),Password varchar (8),FecIngreso date,FecCaducidad date,Observaciones text,primary key (CodUsuario),check (fecIngreso < FecCaducidad),unique (usuario));
20/04/23Ing. Lenin Huayta Flores - Taller
de Base de Datos 29
Volver