Lenguaje SQL (2ª Parte) Definición de datos

Documentos relacionados
Práctica 3: El lenguaje SQL (2ª parte). (6ª sesión).

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Solución Ejercicio Prac. 3b (Esquema).

Práctica 4: Estudio del SGBD Oracle 10 Gestión de Transacciones

Solució Exercici Prac. 3b (Esquema).

Práctica 3: El lenguaje SQL (2ª parte). Definici ón de datos. Programa de prácticas: Lenguaje SQL: manipulación de datos. definición de datos

Práctica 3: El lenguaje SQL (2ª parte). (7ª sesión).

EXAMEN DE BASES DE DATOS 11/06/04 Esquema de trabajo

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

Departamento de Lenguajes y Sistemas Informáticos

Introducción a SQL (DDL)

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 4: Estudio del SGBD ORACLE8 1 Gestión de transacciones 22 DE MAYO DE 2000

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Unidad III. Bases de Datos

Diseño de bases de datos

Tema 1. Bases de datos activas

Tema 5. Lenguaje de Definición de Datos

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

Integridad en sistemas de bases de datos relacionales

Disparadores en ORACLE

Tema II: El modelo relacional de datos Objetivos:

Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers. Tecnólogo en Informática, sede Paysandú Bases de Datos 2

Departamento de Lenguajes y Sistemas Informáticos E.T.S. de Ingeniería Informática Universidad de Sevilla Avda Reina Mercedes, s/n.

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Restricciones de Integridad

Lenguaje para descripción de datos

SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS

Tema 1. Bases de datos activas

EXAMEN: BASES DE DATOS 4º Ingeniería Informática (31 de enero de 2008)

DISEÑO DE BASES DE DATOS ºC Examen 8/Feb/2006

GBD Diseño físico de DDBB

Bases de Datos Relacionales y SQL: Una Introducción

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández

DISPARADORES EN SQL SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005)

T07 Opciones de integridad referencial

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Bases de Datos I. Cursada Clase 3: Restricciones de Integridad (de tablas y generales)

Ejercicios SQL - Definición de Datos - Solución

Un ejemplo teórico de trigger podría ser éste:

SQL: Lenguaje de Interrogación Estructurado

PRÁCTICA III. DISPARADORES EN SQL (II)

ejemplos de consultas SQL para obtener claves, DF y DMV en la BD de prendas de ropa

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

BASES DE DATOS ACTIVAS

Ambos conjuntos son completamente distintos: propósito, acciones,... L M D. datos

Haga clic para PostgreS cambiar el estilo

1. Motivación: comportamientos activos. 2. Reglas ECA. Ejemplos BASES DE DATOS ACTIVAS. Las BD tradicionales se consideran pasivas

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

BASES de DATOS ÁCTIVAS

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Los disparadores pueden ser utilizados para cumplir con alguna de las siguientes tareas:

ELEMENTOS DE BASES. Restricciones de dominio. Mecanismos de integridad. SQL Restricciones en el esquema de relación. Integridad de Entidad

Procedimientos, Funciones, Trigger y Cursores en ORACLE

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

A.1. Definiciones de datos en SQL

LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO

Introducción a PL/SQL

RESTRICCIONES DE DOMINIOS

2.5.- El lenguaje estándar SQL

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

SQL Sintaxis. Ejemplo de Alumno, Curso, Profesor. Esquemas de Alumno, Curso, Profesor. Andrés Moreno S.

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

Jair Ospino Ardila -- Guía Sencilla

SQL - DDL y consultas de actualización. José Muñoz Jimeno Febrero 2015

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

Apartado A (3 puntos):

- Bases de Datos - - Diseño Físico - Luis D. García

PL/PGSQL. Extensión "procedural" de SQL

Examen de Bases de datos Grado de Ingeniería en Informática 3 de septiembre, 2015

Objetos de Bases de Datos

1 2 3 ( /! 3 ) +, 1& 3 0))) % &! ( ) +,. / & 0)))

FUNDAMENTOS DE BASES DE DATOS TEMA 5

Triggers. Carmen Hernández Triggers y PL/SQL 2

[CASI v.0110] Pág. 1

(LDD) VARCHAR2 (n) : alfanumérico (hasta 240) NUMBER (n,p) : números con signo y punto decimal

Base de Datos Oracle 10g: Programación con PL/SQL Código: D Duración: 5 días (40 horas)

SQL Sintaxis. OpenOffice. Ejemplo de Alumno, Curso, Profesor. Ejemplo de Alumno, Curso, Profesor. Andrés Moreno S. Nombre. Apellido. RutAlumno.

Diseño lógico El modelo Relacional. José Muñoz Jimeno Febrero 2015

PL/SQL. - La unidad de programación utilizada por PL/SQL es el bloque. - Todos los programas de PL/SQL están conformados por bloques.

6. Integridad en Sistemas de Bases de Datos Relacionales

Programación SQL. Lucio Salgado Diciembre 2008

Otros objetos de Base de Datos

Triggers (o disparadores) Definición y sintaxis

Laboratorios de BASES DE DATOS. (I.T. Informática)

EXAMEN: BASES DE DATOS 4º Ingeniería Informática (29 de enero de 2009)

Tema 6. Restricciones a la Base de Datos: Integridad y seguridad

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

Grupo Kybele, Pág. 1

Apartado A (3 puntos):

SQLModificaciones a la BD

Manejo de Tablas y Llaves Foráneas

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

Transcripción:

Lenguaje SQL (2ª Parte) Definición de datos Bases de Datos Práctica 3 DSIC - UPV Facultad de Informática Escuela Técnica Superior de Informática Aplicada Objetivos Sintaxis del Lenguaje de Definición de Datos. Creación de tablas. Modificación de la definición de una tabla. Creación de una vista. Visto en Teoría Otorgar autorizaciones. Diferencias entre Oracle y SQL (estándar). Creación de reglas de actividad (disparadores). Realizar todo lo anterior usando la herramienta ISQL del sistema de gestión de bases de datos ORACLE. Bases de Datos DSIC-UPV 2

Diferencias entre Oracle 9i / SQL ANSI Definición de Relaciones (Oracle): No permite la definición de esquemas (CREATE SQUEMA) Todas las relaciones forman parte de misma BD. No se permite la definir dominios (CREATE DOMAIN) Los atributos sólo se pueden definir sobre los tipos de datos proporcionados por el sistema. Solamente implementa la integridad referencial débil para las claves ajenas. Las únicas directrices para la restauración de la integridad referencial disponibles son borrado en cascada y a nulos. No se permite la definición de restricciones generales sobre la base de datos (CREATE ASSERTION). Bases de Datos DSIC-UPV 3 Definición n de reglas de actividad (Disparadores) Define el comportamiento activo del sistema. Aplicaciones: comprobación de restricciones de integridad control de la seguridad definición de reglas de funcionamiento de la organización mantenimiento de información derivada Bases de Datos DSIC-UPV 4

Definición n de reglas de actividad (Disparadores) Forma de una regla de actividad: Evento - Condición - Acción acción que el sistema ejecuta cuando como respuesta a la ocurrencia de un evento cuando cierta condición se satisface. En Oracle: evento: operación de actualización condición: expresión lógica del SQL acción: procedimiento escrito en PL/SQL (incluye instrucción de manipulación de la BD) Bases de Datos DSIC-UPV 5 Definición n de reglas de actividad (Disparadores) definición_regla::= {CREATE REPLACE} TRIGGER nombre_regla {BEFORE AFTER INSTEAD OF} evento [disyunción_eventos] ON {nombre_relación nombre_vista} [ [REFERENCING OLD AS nombre_referencia [NEW AS nombre_referencia] ] [FOR EACH {ROW STATEMENT} [WHEN ( condición ) ] ] bloque PL/SQL disyunción_eventos ::= OR evento [disyunción_eventos] evento ::= INSERT DELETE UPDATE [OF comalista_nombre_atributo] Bases de Datos DSIC-UPV 6

Definición n de reglas de actividad (Disparadores) Definición de Disparadores (Oracle): Un mismo TRIGGER se puede activar por más de un evento sobre la misma tabla (se dispone de las variables booleanas INSERTING, DELETING, UPDATING). Sólo en el caso de granularidad orientada a la tupla (FOR EACH ROW) el disparador está parametrizado. No existen parámetros de tabla. No es necesario dar nombre a los parámetros. En la construcción de la condición de la regla (WHEN) solamente pueden aparecer referencias a los parámetros, sin subconsultas ni funciones agregadas. La acción siempre es un boque PL/SQL. En la acción no se puede hacer referencia a la tabla que ha disparado el TRIGGER. Bases de Datos DSIC-UPV 7 Ejemplo La La siguiente regla define en en el el esquema de de la la base de de datos el el siguiente comportamiento activo: después de de cada inserción en en la la relación R hacer una una copia de de la la tupla insertada en en la la relación R_copia. (El (El esquema de de R es es R(A:dom_A, B:dom_B)) CREATE TRIGGER T1 T1 AFTER INSERT ON ON R FOR EACH ROW BEGIN INSERT INTO R_copia VALUES(:NEW.A, :NEW.B); END; Bases de Datos DSIC-UPV 8

Ejemplo La La siguiente regla define en en el el esquema de de la la base de de datos el el siguiente comportamiento activo: después de de cada operación de de actualización de de la la relación R registrar la la información sobre el el usuario y la la fecha de de la la actualización en en la la relación R_control CREATE TRIGGER T2 T2 AFTER INSERT OR OR UPDATE OR OR DELETE ON ON R FOR EACH STATMENT BEGIN INSERT INTO R_control VALUES(user, sysdate); END; (user y sysdate son son funciones del del sistema que que devuelven respectivmente el el usuario de de la la sesión y la la fecha del del sistema) Bases de Datos DSIC-UPV 9 Ejemplo La La siguiente regla define en en el el esquema la la restricción: No No se se puede insertar en en la la relación R una una tupla si si existe en en la la relación S S CREATE TRIGGER T3 T3 AFTER INSERT ON ON R FOR FOR EACH ROW ROW DECLARE Aux Aux NUMBER; BEGIN SELECT Count(*) INTO Aux Aux FROM S WHERE :NEW.A=S.A; IF IF Aux>0 THEN RAISE_APPLICATION_ERROR(-20000, No No se se puede realizar esta operación ); END END IF; IF; END; Bases de Datos DSIC-UPV 10

Ejercicios Diseñar la la base de de datos de de una pequeña biblioteca: consultar los datos de un libro: código del libro, título, autor(es), temática y en caso de estar prestado, el socio que lo tiene actualmente en préstamo consultar la información sobre un socio: código del socio, nombre, dirección, teléfono y libros que actualmente tiene en préstamo así como la fecha de préstamo consultar los préstamos históricos de un socio: código del libro, fecha del préstamo y fecha de la devolución dar de alta, dar de baja y modificar los datos de un socio gestionar los préstamos: prestar un libro a un socio y registrar la devolución de un libro. (Se supone que un préstamo dura al menos un día, es decir un libro no se puede prestar el mismo día más de una vez) Bases de Datos DSIC-UPV 11 Ejercicios Diseñar la la base de de datos de de una pequeña biblioteca: Restricciones: el código del libro identifica unívocamente al libro el código del socio identifica unívocamente al socio el conjunto de temas utilizados para clasificar un libro son: física, electricidad, mecánica y óptica la fecha de devolución de un libro debe ser posterior a la fecha de préstamo el número total de libros que tiene prestados un socio es un dato derivado que será mantenido automáticamente por el sistema Bases de Datos DSIC-UPV 12

Ejercicios Tareas: a) definir el esquema relacional de la base datos anterior (usando los conceptos del modelo relacional) b) definir la base de datos en el sistema ORACLE9i c) realizar actualizaciones y consultas sobre la base de datos creada Bases de Datos DSIC-UPV 13 Diferencias entre Oracle 9i / SQL ANSI Tipos de datos proporcionados: Numéricos: NUMBER [(precisión[, escala])] NUMBER (precisión) entero NUMBER (precisión, escala) real Alfanuméricos: CHAR (longitud) VARCHAR (longitud) o VARCHAR2 (longitud) Fechas: DATE Bases de Datos DSIC-UPV 14

Diferencias entre Oracle 9i / SQL ANSI Definición de Relaciones (SQL ANSI): tipo_integridad_referencial ::= MATCH { FULL PARTIAL} directriz_borrado ::= ON DELETE { CASCADE SET NULL SET DEFAULT NO ACTION} directriz_actualización ::= ON UPDATE { CASCADE SET NULL SET DEFAULT NO ACTION} Bases de Datos DSIC-UPV 15 Definición n de reglas de actividad (Disparadores) Parametrización de eventos: Los eventos de las reglas FOR EACH ROW están parametrizados nombre de parámetros: evento INSERT: NEW evento DELETE: OLD evento UPDATE: OLD y NEW se pueden usar en la condición de la regla se pueden usar en el bloque PL/SQL Bases de Datos DSIC-UPV 16

2.6. SQL: llenguatge de definició de dades (DDL) Definició de taules/relacions definició_taula ::= CREATE TABLE nom_taula (element_taula1, element_taula2, element_taula3,...) element_taula ::= definició_atribut restricció_taula definició_atribut ::= nom_atribut {tipus_dada nom_domini} [DEFAULT ({valor funció_sistema NULL} )] [restricció_atribut1 restricció_atribut2...] Bases de Datos DSIC-UPV 17 2.6. SQL: llenguatge de definició de dades (DDL) Restriccions sobre atributs restricció_atribut ::= [CONSTRAINT nom_restricció] {NOT NULL UNIQUE PRIMARY KEY REFERENCES nom_taula [(nom_atribut)] [MATCH {FULL PARTIAL SIMPLE}] [Directriu_esborrat] [Directriu_modificació] CHECK (condició) } [quan_comprovar] Bases de Datos DSIC-UPV 18

2.6. SQL: llenguatge de definició de dades (DDL) Restriccions sobre relacions restricció_taula ::= [CONSTRAINT nom_restricció] { UNIQUE (atribut1, atribut2,...) PRIMARY KEY (atribut1, atribut2,...) FOREIGN KEY (atribut1, atribut2,...) REFERENCES nom_taula [(atribut1, atribut2,...)] [MATCH {FULL PARTIAL SIMPLE}] [Directriu_esborrat] [Directriu_modificació] CHECK (condició)} [quan_comprovar] Bases de Datos DSIC-UPV 19 2.6. SQL: llenguatge de definició de dades (DDL) Directriu_esborrat ::= ON DELETE {CASCADE SET NULL SET DEFAULT NO ACTION} Directriu_esborrat_modificació::= ON UPDATE {CASCADE SET NULL SET DEFAULT NO ACTION} Bases de Datos DSIC-UPV 20

2.6. SQL: llenguatge de definició de dades (DDL) quan_comprovar:= [NOT] DEFERRABLE [INITIALLY {INMEDIATE DEFERRED}] Si no s'utilitza aquesta clàusula la restricció es defineix com no diferible i amb mode immediat. NOT DEFERRABLE INITIALLY IMMEDIATE NOT DEFERRABLE INITIALLY IMMEDIATE DEFERRABLE INITIALLY IMMEDIATE defineix una restricció com diferible i amb mode per defecte immediat. DEFERRABLE INITIALLY DEFERRED defineix una restricció com diferible i amb mode per defecte diferit. DEFERRABLE INITIALLY DEFERRED NOT DEFERRABLE INITIALLY DEFERRED està prohibida. Bases de Datos DSIC-UPV 21