Copyright  Oracle Corporation, 1998. All rights reserved. 10 Constraints (Restricciones)

Slides:



Advertisements
Presentaciones similares
SQL Sigla del nombre “Structured Query Language”.
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
Subconsultas Multi-Columna
Fernando Velasco
Unidad 3 Lenguaje de manipulación de datos(DML).
Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: DML Ing. Alfonso Vicente, PMP
MySQL M.C. Pedro Bello López.
SQL.
Restricciones de Integridad en ORACLE
…Tablas DDL.
Lenguaje SQL (Structured Query Language)
SQL Lenguaje de consulta estructurado
Bases de Datos Relacionales
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
D Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Uso de SQL*Plus.
6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Visualización de Datos de Varias Tablas Utilizando Uniones.
Gestión de Objetos con Vistas de Diccionario de Datos
Integridad Referencial 1. Integridad referencial 2.
UNITA - IBARRA TRIGGERS
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.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
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:
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.
ESCUELA TECNOLÓGICA INSTITUTO TÉCNICO CENTRAL Ing. Johanna Vargas Esp. Gerencia de proyectos.
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
LENGUAJE SQL.
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.
SQL: DDL Francisco Moreno. SQL: DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la BD Tipos de objetos: - Tablas: corresponden a las.
Creación y población de Base de datos. Creación de Base de datos Instrucciones. CREATE SCHEMA CREATE DATABASE nombre_base de datos.
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
SQL Sigla del nombre “Structured Query Language”.
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.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
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.
Diseño de base de datos Tema 4 : LDD.
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.
Copyright  Oracle Corporation, All rights reserved. 4 Visualización de datos de varias tablas.
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.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Copyright  Oracle Corporation, All rights reserved. Agenda.
Copyright  Oracle Corporation, All rights reserved. 8 Manipulación de Datos.
Copyright  Oracle Corporation, All rights reserved. 1 Escritura de sentencias SQL SELECT básicas.
Apuntes PL-SQL Triggers I.
Administración de Base de Datos Integridad Prof Mercy Ospina Torres Prof Renny A. Hernandez
Mtr. Adrián Monge Monge Educación 2015 Maestría, Mención en Administración de Proyectos ULACITMaestría, Mención en Administración de Proyectos 2012 Licenciatura,
Copyright  Oracle Corporation, All rights reserved. 2 Restricción y ordenación de datos.
Copyright  Oracle Corporation, All rights reserved. 12 Otros Objetos de la Base de Datos.
DLM Transact SQL Sesión II Recuperación de información.
ALTER TABLE MODIFICAR LA ESTRUCTURA DE LOS OBJETOS DE UNA BASE DE DATOS.
Copyright  Oracle Corporation, All rights reserved. 11 Creación de Vistas.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Copyright  Oracle Corporation, All rights reserved. 9 Creación y gestión de tablas.
6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos.
Lenguaje MySQL, DDL (Lenguaje de definición de datos) Ing. Linda Masias Morales.
Copyright  Oracle Corporation, All rights reserved. 6 Subconsultas.
UNIDAD IV. Diseño de Base de Datos Relacionales
Sentencias DDL.
SQL Lenguaje de definición de datos
Transcripción de la presentación:

Copyright  Oracle Corporation, All rights reserved. 10 Constraints (Restricciones)

10-2 Copyright  Oracle Corporation, All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Describir constraints Crear y mantener constraints Al completar esta lección, debería ser capaz de hacer lo siguiente: Describir constraints Crear y mantener constraints

10-3 Copyright  Oracle Corporation, All rights reserved. ¿Qué son las constraints? “Fuerzan reglas a nivel de tabla” Las constraints previenen el borrado de una tabla si existen dependencias. Son válidos los siguientes tipos de restricciones: – NOT NULL – UNIQUE Key – PRIMARY KEY – FOREIGN KEY – CHECK “Fuerzan reglas a nivel de tabla” Las constraints previenen el borrado de una tabla si existen dependencias. Son válidos los siguientes tipos de restricciones: – NOT NULL – UNIQUE Key – PRIMARY KEY – FOREIGN KEY – CHECK

10-4 Copyright  Oracle Corporation, All rights reserved. Guía para el uso de constraints Asigne un nombre a la restricción, en caso contrario el Server generará uno usando el formato SYS_Cn. Asigne un nombre a la restricción, en caso contrario el Server generará uno usando el formato SYS_Cn. Se puede crear una restricción Se puede crear una restricción – En el momento de crear la tabla. – Después que la tabla ha sido creada. Se puede definir un restricción a nivel de columna o a nivel de tabla. Se puede definir un restricción a nivel de columna o a nivel de tabla. Vea la constraint en el diccionario de datos. Vea la constraint en el diccionario de datos. Asigne un nombre a la restricción, en caso contrario el Server generará uno usando el formato SYS_Cn. Asigne un nombre a la restricción, en caso contrario el Server generará uno usando el formato SYS_Cn. Se puede crear una restricción Se puede crear una restricción – En el momento de crear la tabla. – Después que la tabla ha sido creada. Se puede definir un restricción a nivel de columna o a nivel de tabla. Se puede definir un restricción a nivel de columna o a nivel de tabla. Vea la constraint en el diccionario de datos. Vea la constraint en el diccionario de datos.

10-5 Copyright  Oracle Corporation, All rights reserved. Definición de constraints CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], … [table_constraint]); CREATE TABLE emp( (empno NUMBER(4), ename VARCHAR2(10), … deptno NUMBER(7,2) NOT NULL, CONSTRAINT emp_empno_pk PRIMARY KEY (EMPNO));

10-6 Copyright  Oracle Corporation, All rights reserved. Definición de constraints Constraint a nivel de columna: Constraint a nivel de tabla: Constraint a nivel de columna: Constraint a nivel de tabla: column [CONSTRAINT constraint_name] constraint_type, column,... [CONSTRAINT constraint_name] constraint_type (column,...), column,... [CONSTRAINT constraint_name] constraint_type (column,...),

10-7 Copyright  Oracle Corporation, All rights reserved. La constraint NOT NULL Asegura que los valores nulos no serán permitidos para la columna. EMP EMPNO ENAME JOB... COMM DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER NOT NULL constraint (ningún registro podrá contener un valor nulo contener un valor nulo para esta columna) para esta columna) Ausencia de la constraint NOT NULL (cualquier reg. puede contener un valor nulo para esta columna) Constraint NOT NULL

10-8 Copyright  Oracle Corporation, All rights reserved. La constraint NOT NULL Definido a nivel de columna (sólo): SQL> CREATE TABLE emp( 2 empno NUMBER(4), 3enameVARCHAR2(10) NOT NULL, 4jobVARCHAR2(9), 5mgrNUMBER(4), 6hiredateDATE, 7salNUMBER(7,2), 8 commNUMBER(7,2), 9deptnoNUMBER(7,2) NOT NULL);

10-9 Copyright  Oracle Corporation, All rights reserved. La constraint UNIQUE Key DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON Constraint UNIQUE key 50SALESDETROIT 60BOSTON Insert into No permitido (DNAME No permitido (DNAME  SALES ya existe) permitido

10-10 Copyright  Oracle Corporation, All rights reserved. La constraint UNIQUE Key Definido bien a nivel de tabla o de columna: SQL> CREATE TABLE dept( 2 deptno NUMBER(2), 3dnameVARCHAR2(14), 4locVARCHAR2(13), 5CONSTRAINT dept_dname_uk UNIQUE);

10-11 Copyright  Oracle Corporation, All rights reserved. La constraint PRIMARY KEY DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON PRIMARY key Insert into 20MARKETINGDALLAS FINANCENEW YORK No permitido (DEPTNO20 No permitido (DEPTNO  20 ya existe) No permitido (DEPTNO es null)

10-12 Copyright  Oracle Corporation, All rights reserved. La constraint PRIMARY KEY Definido bien a nivel de tabla o de columna: SQL> CREATE TABLE dept( 2 deptno NUMBER(2), 3dnameVARCHAR2(14), 4locVARCHAR2(13), 5CONSTRAINT dept_dname_uk UNIQUE, 6CONSTRAINT dept_deptno_pk PRIMARY KEY);

10-13 Copyright  Oracle Corporation, All rights reserved. La FOREIGN KEY constraint DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS... PRIMARY key EMP EMPNO ENAME JOB... COMM DEPTNO 7839KINGPRESIDENT BLAKEMANAGER FOREIGN key 7571FORDMANAGER FORDMANAGER Insert into No permitido (DEPTNO No permitido (DEPTNO  no existe en la tabla DEPT Permitido

10-14 Copyright  Oracle Corporation, All rights reserved. La FOREIGN KEY constraint Definido bien a nivel de tabla o de columna: SQL> CREATE TABLE emp( 2 empno NUMBER(4), 3enameVARCHAR2(10) NOT NULL, 4jobVARCHAR2(9), 5mgrNUMBER(4), 6hiredateDATE, 7salNUMBER(7,2), 8 commNUMBER(7,2), 9deptnoNUMBER(7,2) NOT NULL, 10CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno) 11REFERENCES dept (deptno));

10-15 Copyright  Oracle Corporation, All rights reserved. La constraint FOREIGN KEY palabras reservadas FOREIGN KEY: Define la columna en la tabla hija a nivel de constraint de tabla. REFERENCES: Identifica la tabla y columna en la tabla padre. ON DELETE CASCADE: Permite borrar en la tabla padre y borrar registros dependientes de la tabla hija. ON DELETE SET NULL: Convierte los valores de clave ajena dependientes en valores nulos. FOREIGN KEY: Define la columna en la tabla hija a nivel de constraint de tabla. REFERENCES: Identifica la tabla y columna en la tabla padre. ON DELETE CASCADE: Permite borrar en la tabla padre y borrar registros dependientes de la tabla hija. ON DELETE SET NULL: Convierte los valores de clave ajena dependientes en valores nulos.

10-16 Copyright  Oracle Corporation, All rights reserved. La constraint CHECK Define una condición que debe satisfacer cada fila. Define una condición que debe satisfacer cada fila. Expresiones no permitidas: Expresiones no permitidas: – Referencias a las pseudocolumnas CURRVAL, NEXTVAL, LEVEL, o ROWNUM. – Llamadas a las funciones SYSDATE, UID, USER, o USERENV. – Consultas que se refieran a otros valores en otras filas. Se define o bien como una restricción a nivel de tabla, o a nivel de columna. Se define o bien como una restricción a nivel de tabla, o a nivel de columna. Define una condición que debe satisfacer cada fila. Define una condición que debe satisfacer cada fila. Expresiones no permitidas: Expresiones no permitidas: – Referencias a las pseudocolumnas CURRVAL, NEXTVAL, LEVEL, o ROWNUM. – Llamadas a las funciones SYSDATE, UID, USER, o USERENV. – Consultas que se refieran a otros valores en otras filas. Se define o bien como una restricción a nivel de tabla, o a nivel de columna. Se define o bien como una restricción a nivel de tabla, o a nivel de columna...., deptnoNUMBER(2), CONSTRAINT emp_deptno_ck CHECK (DEPTNO BETWEEN 10 AND 99),...

10-17 Copyright  Oracle Corporation, All rights reserved. Añadir una constraint Añade o borra, pero no modifica una constraint. Activa-Desactiva constraints. Añade una constraint NOT NULL con la cláusula MODIFY. Añade o borra, pero no modifica una constraint. Activa-Desactiva constraints. Añade una constraint NOT NULL con la cláusula MODIFY. ALTER TABLE table ADD [CONSTRAINT constraint] type (column); ALTER TABLE table ADD [CONSTRAINT constraint] type (column);

10-18 Copyright  Oracle Corporation, All rights reserved. Añadir una constraint Añada una constraint FOREIGN KEY en la tabla EMP indicando que un manager (director) tiene que existir previamente como número de empleado. SQL> ALTER TABLEemp 2 ADD CONSTRAINTemp_mgr_fk 3 FOREIGN KEY(mgr) REFERENCES emp(empno); Table altered.

10-19 Copyright  Oracle Corporation, All rights reserved. Eliminación de una constraint Borra la constraint del manager de la tabla EMP. SQL> ALTER TABLEemp 2 DROP CONSTRAINT emp_mgr_fk; Table altered. SQL> ALTER TABLEemp 2 DROP CONSTRAINT emp_mgr_fk; Table altered. Borra la constraint de PRIMARY KEY de la tabla DEPT y borra la constraint de FOREIGN KEY asociada en la columna EMP.DEPTNO. SQL> ALTER TABLEdept 2 DROP PRIMARY KEY CASCADE; Table altered. SQL> ALTER TABLEdept 2 DROP PRIMARY KEY CASCADE; Table altered.

10-20 Copyright  Oracle Corporation, All rights reserved. Desactivar constraints Ejecute la cláusula DISABLE de la sentencia ALTER TABLE para desactivar una constraint de integridad. Utilice la opción CASCADE para desactivar constrains dependientes. Ejecute la cláusula DISABLE de la sentencia ALTER TABLE para desactivar una constraint de integridad. Utilice la opción CASCADE para desactivar constrains dependientes. SQL> ALTER TABLEemp 2 DISABLE CONSTRAINTemp_empno_pk CASCADE; Table altered. SQL> ALTER TABLEemp 2 DISABLE CONSTRAINTemp_empno_pk CASCADE; Table altered.

10-21 Copyright  Oracle Corporation, All rights reserved. Activar constraints Active una constraint de integridad actualmente desactivada en la definición de la tabla, por medio de la cláusula ENABLE. Un índice UNIQUE o de PRIMARY KEY se crea automáticamente si activa una constraint tipo UNIQUE o PRIMARY KEY Active una constraint de integridad actualmente desactivada en la definición de la tabla, por medio de la cláusula ENABLE. Un índice UNIQUE o de PRIMARY KEY se crea automáticamente si activa una constraint tipo UNIQUE o PRIMARY KEY SQL> ALTER TABLEemp 2 ENABLE CONSTRAINTemp_empno_pk; Table altered. SQL> ALTER TABLEemp 2 ENABLE CONSTRAINTemp_empno_pk; Table altered.

10-22 Copyright  Oracle Corporation, All rights reserved. Visualización de constraints Consulte la tabla USER_CONSTRAINTS para ver todos los nombres y definiciones de constraints. CONSTRAINT_NAME C SEARCH_CONDITION SYS_C00674 C EMPNO IS NOT NULL SYS_C00675 C DEPTNO IS NOT NULL EMP_EMPNO_PK P... CONSTRAINT_NAME C SEARCH_CONDITION SYS_C00674 C EMPNO IS NOT NULL SYS_C00675 C DEPTNO IS NOT NULL EMP_EMPNO_PK P... SQL> SELECTconstraint_name, constraint_type, 2search_condition 3 FROMuser_constraints 4 WHEREtable_name = 'EMP';

10-23 Copyright  Oracle Corporation, All rights reserved. Visualización de las columnas asociadas con constraints CONSTRAINT_NAME COLUMN_NAME EMP_DEPTNO_FK DEPTNO EMP_EMPNO_PK EMPNO EMP_MGR_FK MGR SYS_C00674 EMPNO SYS_C00675 DEPTNO CONSTRAINT_NAME COLUMN_NAME EMP_DEPTNO_FK DEPTNO EMP_EMPNO_PK EMPNO EMP_MGR_FK MGR SYS_C00674 EMPNO SYS_C00675 DEPTNO SQL> SELECTconstraint_name, column_name 2 FROMuser_cons_columns 3 WHEREtable_name = 'EMP'; Visualice las columnas asociadas con los nombres de constraints en la vista: USER_CONS_COLUMNS USER_CONS_COLUMNS

10-24 Copyright  Oracle Corporation, All rights reserved. Resumen Cree los siguientes tipos de constraints: – NOT NULL – UNIQUE Key – PRIMARY KEY – FOREIGN KEY – CHECK Consulte la tabla USER_CONSTRAINTS para ver todos los nombres y definiciones de constraints. Cree los siguientes tipos de constraints: – NOT NULL – UNIQUE Key – PRIMARY KEY – FOREIGN KEY – CHECK Consulte la tabla USER_CONSTRAINTS para ver todos los nombres y definiciones de constraints.

10-25 Copyright  Oracle Corporation, All rights reserved. Visión general de la práctica Añada constraints a tablas ya existentes. Añada columnas adicionales a una tabla. Visualice información de vistas del diccionario de datos. Añada constraints a tablas ya existentes. Añada columnas adicionales a una tabla. Visualice información de vistas del diccionario de datos.