Tema 6. Integridad de Datos

Slides:



Advertisements
Presentaciones similares
Ejercicios Solemne 2 Parte 1
Advertisements

Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
Implementación de la integridad de datos
SQL Base de Datos LENGUAJES DE CONSULTA AR y CR no pueden ser tomados como base para implementar porque: Poseen sintaxis compleja No permiten.
MySQL M.C. Pedro Bello López.
Restricciones de Integridad en ORACLE
…Tablas DDL.
SQL Lenguaje de consulta estructurado
Integridad Referencial 1. Integridad referencial 2.
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
CAPITULO 10 Manejando Restricciones
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
ESCUELA TECNOLÓGICA INSTITUTO TÉCNICO CENTRAL Ing. Johanna Vargas Esp. Gerencia de proyectos.
SQL: Lenguaje de Interrogación Estructurado. Vistas Declaración de vista CREATE VIEW ( ) AS SELECT... Semántica Tabla virtual cuyo contenido es el resultado.
Structured Query Language (Lenguaje Estructurado de Consultas)
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Base de Datos I. SQL es el lenguaje estándar para trabaja con base de datos relacionales. MySQL, el sistema de gestión de bases de datos SQL Open Source.
Ing. Esp. Ricardo Cujar Otros Postgres. ALTER TABLE Permite alterar la definición de una tabla. Alter table rename to Permite cambiar el nombre de una.
Comandos DDL Los comandos DDL son las siglas de Data Definition Language, y se corresponde con el conjunto de órdenes que permiten definir las estructuras.
(Lenguaje de consulta estructurado)
Modificando la estructura de tablas
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
Sentencias DDL y DML PostgreSQL. Base de Datos I – Fundamentos Básicos PostgreSQL PostgreSQL es un servidor de base de datos relacional libre bajo la.
SQL: DDL.
Base de Datos SQL - Introductorio - DDL. DEFINICIÓN SQL Volver a los Objetivos.
ALTER TABLE MODIFICAR LA ESTRUCTURA DE LOS OBJETOS DE UNA BASE DE DATOS.
Implementación de funciones definidas por el usuario.
Lenguaje MySQL, DDL (Lenguaje de definición de datos) Ing. Linda Masias Morales.
Copyright  Oracle Corporation, All rights reserved. 10 Constraints (Restricciones)
UNIDAD IV. Diseño de Base de Datos Relacionales
Índices Ing. Catherine Naranjo D.. Introducción Los índices son objetos de base de datos diseñados para mejorar el rendimiento de las consultas. En este.
Conferencia 12. Temas Avanzados de Integridad de Bases de Datos.
UNIDAD 3 - MySQL Rafael Albertti.
SQL: Structured Query Language
Wladimir Solano Marco Pascale
MYSQL SQL: Lenguaje de consulta estructurado. Es un lenguaje de programación para trabajar con BD relacionadas, entre las cuales tenemos MYSQL, ORACLE,
SEGURIDAD SQL Usuarios, privilegios y perfiles.
Tipos de datos en MYSQL YEAR: Año. “YYYY” o “YY”
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
Stored Procedures Firebird.
SQL Prof. Martín Contreras.
Técnicas y Herramientas de Computación
Introducción a Transact-SQL BASES DE DATOS II. Introducción E lenguaje de programación Transact-SQL Tipos de instrucciones de Transact-SQL Elementos de.
SQL: structured Query Language
Lenguajes de programación
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
Prof. Daniel Obando Fuentes
BASE DE DATOS relacional
MODELO RELACIONAL.
Taller de Bases de Datos Ingeniería en Sistemas Computacionales Clave de la asignatura: SCA-1025 (Créditos) SATCA1: 0 – 4 – 4.
Taller de Base de Datos Clase 4
Taller de Bases de Datos
Sentencias DDL.
Orígenes Funciones Condicionales
SQL Lenguaje de definición de datos
Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Base de Datos - II . Unidad 1 -SQL.
1. 2 create table DEPARTAMENTO( numero integer primary key, nombre text, director integer not null, F_inic_Director date, CONSTRAINT director_FK FOREIGN.
Unidad V :- Integridad de datos.
Modificación de datos. Introducción Uso de transacciones Inserción de datos Eliminación de datos Actualización de datos Consideraciones acerca del rendimiento.
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
Características Objeto Relacionales en Oracle
RELACIONANDO TABLAS Restricción FOREIGN KEY. Constraint Foreign key Genera una restricción a partir de la relación de dos tablas. En la figura siguiente.
Fundamentos de las Base de Datos. Contenido Que es una Base de Datos. La diferencia entre datos e informacion. Clasificacion de las base de datos. Importancia.
Taller de Bases de Datos Ingeniería en Sistemas Computacionales M. en I.S.C Mariana Carolyn Cruz Mendoza Por Alexis Orlando Rebollar Lopez.
El SQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de datos relacionales. La sigla que se conoce como SQL corresponde.
Lenguaje de definición de datos. Un lenguaje de base de datos o lenguaje de definición de datos es un lenguaje proporcionado por el sistema de gestión.
Transcripción de la presentación:

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 Uso de valores predeterminados y reglas 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 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 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

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

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

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

Consideraciones para el uso de restricciones Pueden cambiarse sin volver a crear una tabla Requieren comprobación 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 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 dbventas ALTER TABLE cliente ADD CONSTRAINT DF_nombrecontacto DEFAULT 'UNKNOWN' FOR NombreContacto

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 Contener subconsultas USE dbventas ALTER TABLE Empleados ADD CONSTRAINT CK_fechanacimiento CHECK (FechaNacimiento > '01-01-1900' AND FechaNacimiento < 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 dbventas ALTER TABLE Clientes ADD CONSTRAINT PK_Clientes PRIMARY KEY (IDCliente)

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 dbventas ALTER TABLE Proveedores ADD CONSTRAINT U_NombreCompanhia UNIQUE (NombreCompanhia)

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 USE bventas ALTER TABLE Pedido ADD CONSTRAINT FK_Pedido_Clientes FOREIGN KEY (IDCliente) REFERENCES Clientes(IDCliente)

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

Deshabilitación de restricciones 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

Deshabilitación de la comprobación de las restricciones en los datos existentes 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 restricciones USE dbventas ALTER TABLE Empleados WITH NOCHECK ADD CONSTRAINT FK_Empleados_Empleados FOREIGN KEY (AReportes) REFERENCES Empleados(IDEmpleado)

Deshabilitación de la comprobación 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 restricciones USE dbventas ALTER TABLE Empleados NOCHECK CONSTRAINT FK_Empleados_Empleados

Uso de valores predeterminados y reglas 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' GO EXEC sp_unirdefault telefono_no_default, 'Cliente.Telefono' CREATE RULE codigoregion_regla AS @codigoregion IN ('IA', 'IL', 'KS', 'MO') GO EXEC sp_unirregla codigoregion_regla, 'Clientes.Region'

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

Caso Práctico: Sincronización e Integridad de Datos en MySQL Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Trabajo encargado: Completar las siguientes tablas de la base de datos DBIESTPD: alumno aula carreraprofesional docente semestre unidaddidactica usuario Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Tabla: alumno Create Table Alumno( idalumno int(4) zerofill not null auto_increment, NomAlumno varchar(30), ApePaterno varchar (25), ApeMaterno varchar (25), NumDocumento int (8), FecNacimiento date, Sexo enum ('M','F'), Direccion varchar (45), Email varchar (30), Telefono varchar (9), NomCarrera varchar (30), FicInscripcion bit, CerEstudios bit, CopDni bit, CopPartida bit, Fotografia bit, Decjurada bit, Observaciones text, Unique(CodAlumno), Unique(NumDocumento), primary key (CodAlumno) );//Insertar un alumno con código vacío sin carrera profesional Volver Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Tabla: aula NomAula varchar(30), NumAula int(4) zerofill, idaula INT( 2 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT NomAula varchar(30), NumAula int(4) zerofill, primary key (idaula) ); Volver Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Tabla: carreraprofesional idcarrera int(2) zerofill not null auto_increment, NomCarrera varchar(30), NumResolucion varchar (15), FecCreacion date default '1980-01-01', primary key (CodCarrera) ); Volver Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Tabla: docente Create Table Docente( iddocente int(3) zerofill not null auto_increment, NomDocente varchar(30), ApePaterno varchar (25), ApeMaterno varchar (25), Cargo varchar (30), NumDocumento int (8) zerofill, ConDocente enum ('NOMBRADO','CONTRATADO'), FecNacimiento date default '1980- 01-01', Sexo enum ('M','F'), Direccion varchar (45), Telefono varchar (9), Email varchar (30), Observaciones text, primary key (CodDocente) ); Volver Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Tabla: semestre Volver idsemestre int(2) zerofill not null auto_increment, Semestre varchar (3), Detalle varchar (25), Primary Key (CodSemestre) ); Volver Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Tabla: unidaddidactica 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) ); Volver Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018

Tabla: usuario 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) ); Volver Ing. Lenin Huayta Flores - Taller de Base de Datos 13/09/2018