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

Tamaño: px
Comenzar la demostración a partir de la página:

Download "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"

Transcripción

1 Programa de prácticas: Práctica 1. Introducci ón al uso de una BD relacional (ACCESS). Práctica 3: El lenguaje SQL (2ª parte). Definici ón de datos Práctica 2. Representaci ón de la realidad en el modelo relacional de datos. Práctica 3. (ORACLE9) Práctica 4. Estudio del SGBD ORACLE9. Objetivos (2ª parte): estudio del lenguaje de definici ón de datos del SQL. definir una base de datos relacional en el sistema ORACLE9. estudio del mecanismo de disparadores (triggers) en el sistema ORACLE9. Lenguaje SQL: manipulación de datos SELECT (consulta) INSERT (inserción de tuplas) DELETE (borrado de tuplas) UPDATE (modificación de tuplas) definición de datos Clave primaria categoría Departamento director Docencia gteo gprac Clave Ajena Asignatura semestre teo prac Departamento (: tira(5), : tira(100), director tira(50), : tira(11)) CP={}, VNN={} Asignatura (: tira(5), : tira(100), semestre: tira(2), teo: real, prac: real, : tira(5)) CP={}, VNN={, teo, prac, semestre} CAj={} Departamento f()= ( : tira(5), : tira(50), : tira(11), categoría: tira(3), : tira(5) ) CP={}, VNN={, categoría} CAj={} Departamento f()= Docencia ( : tira(3), : tira(3), gteo: entero, gprac: entero) CP={, }, VNN={gteo, gprac} CAj={} Asignatura f()= CAj={} f()=

2 Definición de un esquema relacional en SQL. definiciones de dominios CREATE DOMAIN... definiciones de relaciones: esquema y restricciones. CREATE TABLE... ORACLE definiciones de restricciones de integridad generales CREATE ASSERTION... definiciones de vistas CREATE VIEW... ORACLE definiciones de autorizaciones de acceso GRANT... ORACLE esquema lógico esquema externo seguridad Lenguaje de definición de datos en SQL esquema ::= CREATE SCHEMA NO ORACLE AUTHORIZATION usuario lista_elemento_esquema elemento_esquema ::= definición_dominio NO ORACLE definición-relación-básica definición-restricción definición-vista definición-operación-grant Definición de dominios definición_dominio ::= CREATE DOMAIN nom_dominio [AS] tipo_dato [DEFAULT {NULL valor}] [lista_restricción_dominio] restricción_dominio ::= [CONSTRAINT _restricción] CHECK (condición_búsqueda) [cuando_comprobar] cuando_comprobar::= [NOT] DEFERRABLE NO ORACLE Definición de relación básica definición_relaci ón_básica ::= CREATE TABLE nom_relación (lista_elemento_relación_básica ) elemento-relaci ón-básica ::= definición-atributo restricción_relaci ón NO ORACLE definición_atributo ::= nom_atributo { tipo _datos nom_dominio } [DEFAULT {valor NULL}] [lista_restricción_atributo] El lenguaje SQL en ORACLE: Definición de relación básica Definición_relación_básica ::= CREATE TABLE nom_relación (elemento_relación1,elemento_relación2) elemento_relación ::= definición_atributo restricción_relación definición_atributo ::= nom_atributo tipo_datos [DEFAULT (expresión)] [restricción_atributo1, restricción_atributo2, ] tipo_datos ::= CHAR (longitud) VARCHAR2 (longitud) NUMBER [(precisión[, escala])] DATE Restricciones sobre relaciones restricción_relación ::= [CONSTRAINT -restricción] { UNIQUE (comalista-nom-atributo) PRIMARY KEY (comalista-nom-atributo) FOREIGN KEY (comalista-nom-atributo) REFERENCES nom-relación [(comalista-nom-atributo)] [tipo-integridad-referencial] SÓLO DÉBIL [directriz-borrado] [directriz-actualización] NO ORACLE CHECK (condici ón-búsqueda)} [cuando-comprobar]

3 Restricciones sobre atributos restricción_atributo ::= [CONSTRAINT _restricción] {NOT NULL UNIQUE PRIMARY KEY REFERENCES nom_relación [(nom_atributo)] [tipo_integridad_referencial] SÓLO DÉBIL [directriz_borrado] [directriz_actualizaci ón] NO ORACLE CHECK (condici ón_búsqueda) } [cuándo_comprobar] tipo_integridad_referencial ::= MATCH {FULL PARTIAL} directriz_borrado ::= ON DELETE {CASCADE SET NULL SET DEFAULT NO ORACLE NO ACTION} directriz_actualización ::= ON UPDATE NO ORACLE {CASCADE SET NULL SET DEFAULT NO ACTION} El lenguaje SQL en ORACLE: Restricciones sobre atributos restricción_atributo ::= [CONSTRAINT nom_restricción] {[NOT] NULL UNIQUE PRIMARY KEY REFERENCES nom_relación* [(nom_atributo*)] [ON DELETE {CASCADE SET NULL}] CHECK (condici ón)} [cuándo_comprobar] restricción_relación ::= [CONSTRAINT nom_restricción] { UNIQUE (nom_atributo1, nom_atributo2, ) PRIMARY KEY (nom_atributo1, nom_atributo2, ) FOREIGN KEY (nom_atributo1, nom_atributo2, ) REFERENCES nom_relación [(nom_atributo1, nom_atributo2, )] [ON DELETE {CASCADE SET NULL}] CHECK (condici ón)} [cuándo_comprobar] cuándo_comprobar ::= [NOT] DEFERRABLE [INITIALLY {IMMEDIATE DEFERRED}] Restricciones sobre la base de datos definición_restricción ::= CREATE ASSERTION -restricción CHECK (condición-búsqueda) [cuando-comprobar] NO ORACLE cuando_comprobar:= [[NOT] DEFERRABLE] [INITIALLY {IMMEDIATE DEFERRED}] Nota: La sem ántica de cada una de las versiones de la cl áusula cuando_comprobar es la siguiente: - si no se utiliza esta clá usula la restricci ón se define como no diferible y con modo inmediato. - la versió n DEFERRABLE INITIALLY IMMEDIATE (resp. DEFERRED) define una restricci ón como diferible y con modo por defecto inmediato (resp. diferido). - la versi ón NOT DEFERRABLE INITIALLY IMMEDIATE coincide con los valores por defecto. - la versi ó n NOT DEFERRABLE INITIALLY DEFERRED está prohibida. - la versi ón DEFERRABLE (resp. NOT DEFERABLE) define una restricci ón como diferible (resp. no diferible) y con modo por defecto inmediato. - la versió n INITIALLY IMMEDIATE define una restricció n como no diferible y con modo inmediato. - la versi ó n INITIALLY DEFERRED define una restricci ón como diferible y con modo por defecto diferido. La instrucción SQL que permite cambiar, localmente en una transacción, el modo de una restricción definida como diferible, es: SET CONSTRAINT {comalista restricción ALL} {IMMEDIATE DEFERRED}. Cada restricción especificada en la lista debe ser diferible y la opción ALL hace referencia a todas las restricciones diferibles del esquema de la base de datos. El alcance del cambio producido por la instrucción SET CONSTRAINT es la transacción en la que se incluye o el fragmento de transacción hasta la siguiente aparición de la misma instrucción. Si se incluye la instrucción en medio de la transacción con la opción IMMEDIATE, las restricciones afectadas por la instrucción son comprobadas cuando se ejecuta ésta, si alguna de estas restricciones falla, la instrucción SET falla y el modo de las restricciones permanece sin modificar.

4 Modificación de relaciones DIFERENTE EN ORACLE modificación_relación::= ALTER TABLE _relación {ADD (definición_atributo) ALTER [COLUMN ] (_atributo) {DROP DEFAULT SET DEFAULT {literal funcion_sistema NULL} } DROP [COLUMN ] _at ributo {RESTRICT CASCADE} } borrado_relaci ón::= DROP TABLE _relación {RESTRICT CASCADE} El lenguaje SQL en ORACLE: Modificación de relaciones modificaci ón_relaci ón ::= ALTER TABLE nom_relaci ón {ADD (elemento_relació n1, elemento_relaci ó n2, ) MODIFY (definició n_atributo1, definici ón_atributo2, ) DROP COLUMN ( nom_atributo1, nom_atributo2, ) [CASCADE] {DROP [VALIDATE NOVALIDATE] ENABLE DISABLE } (restricció n) } restricci ón ::= {PRIMARY [CASCADE] UNIQUE (nom_atributo1, nom_atributo2, ) [CASCADE] CONSTRAINT nom_restricció n } ADD permite añadir nuevos atributos o restricciones a una relaci ón. MODIFY permite modificar la definició n de los atributos. ENABLE (resp. DISABLE) permite activar (resp. desactivar) una restricci ón de integridad. Con la opci ón VALIDATE (opció n por defecto), el sistema se asegura que al activar una restricció n los datos almacenados en la base de datos en el momento de la activació n satisfacen la restricció n. DROP permite borrar atributos o restricciones de integridad. CASCADE borra en cascada cualquier restricció n de integridad definida en el esquema que dependa del elemento que se acaba de borrar. Definición de un esquema externo en SQL. Definición de vistas definición_vista::= CREATE VIEW _vista [(comalista atributo)] AS sentencia_select [WITH CHECK OPTION] El lenguaje SQL en ORACLE: Definición de vistas definición_vista ::= CREATE [OR REPLACE] VIEW nom_vista [(nom_atributo1, nom_atributo2, )] AS sentencia_select [WITH CHECK OPTION] borrado_vista::= DROP VIEW _vista {RESTRICT CASCADE} El lenguaje SQL en ORACLE: Definición de vistas Restricciones de las actualizaciones sobre vistas en Oracle 9: Una vista definida por una SELECT que contiene operadores conjuntistas (UNION, INTERSECT, ), el operador DISTINCT, funciones agregadas (SUM, AVG, ) o la cláusula GROUP BY no es actualizable. Si la vista está definida sobre una única relaci ón básica el sistema traducirála actualización sobre la vista en una operación de actualización sobre la relaci ón básica siempre que no se viole ninguna restricci ón de integridad definida sobre dicha relación. El lenguaje SQL en ORACLE: Definición de vistas Restricciones de las actualizaciones sobre vistas en Oracle 9: Si la vista está definida sobre una concatenación de relaciones, la actualizaci ón está sometida a las siguientes restricciones adicionales: La actualización sólo puede modificar una de las relaciones básicas. La actualización modificará la relación básica que cumpla la propiedad de conservación de la clave, es decir aquella relación tal que su clave primaria podría ser también clave de la vista si sus atributos fuesen seleccionados por la SELECT que define la vista. La actualización no se realizará si viola alguna de las restricciones definidas sobre la relación básica que se va a actualizar.

5 Definición de privilegios de acceso en SQL definición_privilegio::= GRANT {ALL SELECT INSERT [comalista_columna ] DELETE UPDATE [comalista_columna ]} ON objeto TO {PUBLIC comalista_usuario} [WITH GRANT OPTION] eliminación_privilegio::= REVOKE [GRANT OPTION FOR ] {ALL SELECT INSERT [comalista_columna ] DELETE UPDATE [comalista_columna ]} ON objeto TO {PUBLIC comalista_usuario} {RESTRICT CASCADE} El lenguaje SQL en ORACLE: Definición de privilegios definición_operación_grant ::= GRANT privilegio_sistema1, privilegio_sistema2, ON objeto TO {PUBLIC usuario1, usuario2, } [WITH ADMIN OPTION] usuario es el identificador de un usuario. Con la cláusula PUBLIC se transmiten los privilegios a todos los usuarios. La cl áusula WITH ADMIN OPTION concede permiso para ceder a terceros los privilegios obtenidos. Objetoes una relación o una vista del esquema. clave primaria Departamento Clave ajena Restricciones de integridad (adicionales): los créditos deben ser valores reales positivos los grupos de clase deben ser enteros positivos categoría director Docencia gteo Asignatura semestre teo prac las categorías de un profesor son: TEU, TU, CEU y CU un profesor con categoría TEU no puede dar mas de 33 créditos y un profesor con categoría TU no puede dar mas de 22 créditos. todo profesor debe estar adscrito a un departamento toda asignatura debe estar adscrita a un departamento el director de un departamento debe ser un profesor y sólo se puede ser director de un departamento gprac las directrices de mantenimiento de la integridad referencial son: clave ajena director en Departamento: borrado a nulos, actualización en cascada clave ajena en : borrado restrictivo, actualización en cascada clave ajena en Asignatura: borrado restrictivo, actualización en cascada clave ajena en Docencia: borrado en cascada, actualización en cascada clave ajena en Docencia: borrado restrictivo, actualización en cascada CREATE SCHEMA Docencia-UPV CREATE TABLE Departamento ( CHAR(5), VARCHAR(100) NOT NULL, director VARCHAR(50), CHAR(11), CONSTRAINT CP_dpto PRIMARY KEY () ) VERSIÓN 1 CREATE TABLE ( CHAR(5), VARCHAR(50) NOT NULL, CHAR(11), categoría CHAR(3) NOT NULL CHAR(5), CONSTRAINT CP_prof PRIMARY KEY (), CONSTRAINT CAj_prof_dpto FOREIGN KEY () REFERENCES Departamento () )

6 CREATE TABLE Asignatura ( CHAR(5), VARCHAR(100) NOT NULL, semestre CHAR(2) NOT NULL, teo NUMBER(3,1) NOT NULL, prac NUMBER(3,1) NOT NULL, CHAR(5), CONSTRAINT CP_asg PRIMARY KEY (), CONSTRAINT CAj_asg_dpto FOREIGN KEY () REFERENCES Departamento () ) CREATE TABLE Docencia ( CHAR(5), CHAR(5), gteo INTEGER NOT NULL, gprac INTEGER NOT NULL, CONSTRAINT CP_doc PRIMARY KEY (, ), CONSTRAINT CAj_doc_prof FOREIGN KEY ( ) REFERENCES (), CONSTRAINT CAj_doc_asg FOREIGN KEY () REFERENCES Asignatura () ); CREATE SCHEMA Docencia-UPV CREATE DOMAIN créditos AS NUMBER(1,1) CHECK (value>=0) CREATE DOMAIN grupos AS INTEGER CHECK (value>=0) CREATE TABLE Departamento ( CHAR(5), VARCHAR(100) NOT NULL, director CHAR(5) UNIQUE REFERENCES () ON UPDATE CASCADE ON DELETE SET NULL, CHAR(11), CONSTRAINT CP_dpto PRIMARY KEY () ) VERSIÓN 2 CREATE TABLE ( CHAR(5), VARCHAR(50) NOT NULL, CHAR(11), categoría CHAR(3) NOT NULL CHECK categoría IN ( TEU, TU, CEU, CU ) CHAR(5) NOT NULL, CONSTRAINT CP_prof PRIMARY KEY (), CONSTRAINT CAj_prof_dpto FOREIGN KEY () REFERENCES Departamento () ON UPDATE CASCADE ) CREATE TABLE Asignatura ( CHAR(5), VARCHAR(100) NOT NULL, semestre CHAR(2) NOT NULL, teo créditos NOT NULL, prac créditos NOT NULL, CHAR(5) NOT NULL, CONSTRAINT CP_asg PRIMARY KEY (), CONSTRAINT CAj_asg_dpto FOREIGN KEY () REFERENCES Departamento () ON UPDATE CASCADE ) CREATE TABLE Docencia ( CHAR(5), CHAR(5), gteo grupos NOT NULL, gprac grupos NOT NULL, CONSTRAINT CP_doc PRIMARY KEY (, ), CONSTRAINT CAj_doc_prof FOREIGN KEY ( ) REFERENCES () ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT CAj_doc_asg FOREIGN KEY () REFERENCES Asignatura () ON UPDATE CASCADE) CREATE ASSERTION RI_docencia CHECK (NOT EXISTS ( SELECT * FROM PROFESOR P WHERE (P.categoría= TEU AND (SELECT SUM (gteo*teo + gprac*prac) FROM Docencia NATURAL JOIN Asignatura WHERE = P.) >33 ) OR (P.categoría= TU AND (SELECT SUM (gteo*teo + gprac*prac) FROM Docencia NATURAL JOIN Asignatura WHERE =P.) >22 ) ) )

7 Definición de un esquema externo en SQL (vistas). o dirección o categoría Relación básica CREATE VIEW Prof_DSIC AS Prof_DSIC o dirección o categoría Relación derivada (vista) SELECT,, dirección,, categoría FROM WHERE = DSIC El lenguaje de definición de datos de ORACLE: Las principales diferencias respecto al estándar SQL son: no contempla el concepto de esquema de base de datos no permite la definición de dominios sólo contempla el tipo de integridad referencial débil sólo admite directrices de restauración de la integridad referencial frente a la operación de borrado (ON DELETE) las restricciones de integridad generales que se pueden definir con la cláusula CHECKson muy limitadas (no se pueden usar subconsultas, ni funciones agregadas,...) no admite la sentencia CREATE ASSERTION. Programa de prácticas: Práctica 1. Introducci ón al uso de una BD relacional (ACCESS). Práctica 3: El lenguaje SQL (2ª parte). Práctica 2. Representaci ón de la realidad en el modelo relacional de datos. Práctica 3. (ORACLE9) Práctica 4. Estudio del SGBD ORACLE9. Disparadores Objetivos (2ª parte): estudio del lenguaje de definici ón de datos del SQL. Clave primaria Departamento Clave Ajena definir una base de datos relacional en el sistema ORACLE8. estudio del mecanismo de disparadores (triggers) en el sistema ORACLE9. director Docencia Asignatura semestre teo prac gteo gprac

8 disparador regla de actividad Los disparadores permiten modelar un comportamiento activo (autónomo) del sistema como respuesta a la ocurrencia de sucesos. - condición - acci ón : especifica el suceso a cuya ocurrencia debe responder el sistema. condición: especifica el contexto en el cual la regla cuyo se ha producido debe ser ejecutada. acción: especifica las acciones que deben ser ejecutadas por el sistema como respuesta a la ocurrencia del cuando la condición es cierta. Ejemplo1: cuando un profesor se da de baja (es borrado) sus datos deben registrarse en un histórico de profesores. Borrado Inserción SGBD Histórico- es fecha DELETE FROM WHERE = RFC JCC Juan C. Casamayor Ródenas 7796 DSIC RFC Robert Fuster i Capilla 6789 MAT JBD José V. Benlloch Dualde 5760 DISCA MAF María Alpuente Frasnedo 3560 DSIC CPG Cristina Pérez Guillot 7439 IDM JTM José M. Torralba Martínez 4590 OEM IGP Ignacio Gil Pechuán 3423 OEM DGT Daniel Gil Tomás 5679 DISCA MCG Matilde Celma Giménez 7756 DSIC CREATE OR REPLACE TRIGGER borrado_profesor AFTER DELETE ON FOR EACH ROW BEGIN INSERT INTO Histórico-es VALUES (:OLD., :OLD., :OLD.tel éfono, :OLD., SYSDATE); END; SGBD INSERT INTO Histórico-es VALUES ( RFC, Robert Fuster Capilla, 6789, MAT, SYSDATE) Hist órico- PPP Pedro Pérez Puerta 7795 DISCA 12/12/97 RFC RobertFusterCapilla 6789 MAT 12/12/99 acci ó n Después (AFTER) de un borrado en () por cada tupla borrada ( FOR EACH ROW ) se insertará una tupla en Histórico- es (acción) construida con los valores viejos (OLD) de la tupla borrada. DELETE FROM WHERE = RFC JCC Juan C. Casamayor Ródenas 7796 DSIC RFC Robert Fuster i Capilla 6789 MAT JBD José V. Benlloch Dualde 5760 DISCA MAF María Alpuente Frasnedo 3560 DSIC CPG Cristina Pérez Guillot 7439 IDM JTM José M. Torralba Martínez 4590 OEM IGP Ignacio Gil Pechuán 3423 OEM DGT Daniel Gil Tomás 5679 DISCA MCG Matilde Celma Giménez 7756 DSIC Parámetros del : campos de la tupla actualizada. OLD._campo: valor antes de la actualización NEW._campo: valor después de la actualización INSERT: NEW._campo DELETE: OLD._campo UPDATE: OLD._campo, NEW._campo OLD. OLD. OLD. OLD. Dependiendo del tipo de sólo tienen sentido un tipo de parámetros (NEW o OLD)

9 DELETE FROM WHERE = DSIC JCC Juan C. Casamayor Ródenas 7796 DSIC RFC Robert Fuster i Capilla 6789 MAT JBD José V. Benlloch Dualde 5760 DISCA Ejemplo2: cuando se realiza una actualización en se debe hacer un registro de seguridad en la tabla Accesos. SGBD INSERT INTO Histórico-es VALUES ( ) MAF María Alpuente Frasnedo 3560 DSIC CPG Cristina Pérez Guillot 7439 IDM JTM José M. Torralba Martínez 4590 OEM IGP Ignacio Gil Pechuán 3423 OEM DGT Daniel Gil Tomás 5679 DISCA MCG Matilde Celma Giménez 7756 DSIC Hist órico- JCC Juan C. Casamayor Ródenas 7796 DSIC 12/12/99 MAF María Alpuente Frasnedo 3560 DSIC 12/12/99 MCG Matilde Celma Giménez 7756 DSIC 12/12/99 DELETE- UPDATE-INSERT INSERT SGBD Accesos nro usuario fecha CREATE OR REPLACE TRIGGER borrado_profesor AFTER INSERT OR UPDATE OR DELETE ON FOR EACH ROW BEGIN INSERT INTO Accesos VALUES ( nro, USER, SYSDATE); END; Ejemplo 3: Restricción de integridad: Los profesores que imparten la asignatura EST1 deben ser del departamento de Estadística (EST). acci ó n Después (AFTER) de una operación (inserción, borrado o actualización) en () se insertará una tupla en Accesos (acción) independientemente del numero de tuplas actualizadas. Nota: USER y SYSDATE son funciones predefinidas que devuelven el identificador del usuario conectado y la fecha del sistema. Restricción de integridad: Los profesores que imparten la asignatura EST1 deben ser del departamento de Estadística (EST). CREATE ASSERTION CHECK ( NOT EXISTS (SELECT * FROM Docencia NATURAL JOIN WHERE Docencia. = EST1 AND. <> EST ) SQL El lenguaje de definición de datos de ORACLE: Las principales diferencias respecto al estándar SQL son: no contempla el concepto de esquema de base de datos no permite la definición de dominios sólo contempla el tipo de integridad referencial débil sólo admite directrices de restauración de la integridad referencial frente a la operación de borrado (ON DELETE) las restricciones de integridad generales que se pueden definir con la cláusula CHECKson muy limitadas (no se pueden usar subconsultas, ni funciones agregadas,...) no admite la sentencia CREATE ASSERTION.

10 Restricción de integridad: Los profesores que imparten la asignatura EST1 deben ser del departamento de Estadística (EST). ORACLE CREATE ASSERTION CHECK ( NOT EXISTS (SELECT * FROM Docencia NATURAL JOIN WHERE Docencia. = EST1 AND. <> EST ) Restricción de integridad: Los profesores que imparten la asignatura EST1 deben ser del departamento de Estadística (EST). Se deben analizar los s relevantes para la restricción, es decir que pueden violarla, y definir los disparadores necesarios. Operaciones sobre la relación Docencia Operaciones sobre la relación La restricción de integridad que no se puede definir en ORACLE puede ser comprobada por medio de disparadores. Disparadores sobre Docencia: INSERT Docencia UPDATE () NEW.=EST1 si de NEW. <> EST entonces RECHAZAR UPDATE () Evento Condición Acción REGLA DE ACTIVIDAD CREATE OR REPLACE TRIGGER control_docencia1 AFTER INSERT OR UPDATE OF, ON Docencia FOR EACH ROW WHEN NEW. = EST1 DECLARE X CHAR(4); BEGIN condición SELECT P. INTO X FROM P WHERE P.cod-prof = : NEW.cod-prof; IF X <> EST THEN RAISE-APPLICATION-ERROR ( ---, actualización no válida ) END IF; END acción ORACLE Disparadores sobre : UPDATE () OLD.=EST AND NEW.<>EST si NEW.f imparte EST1 entonces RECHAZAR Evento Condición Acción REGLA DE ACTIVIDAD CREATE OR REPLACE TRIGGER control_docencia2 AFTER UPDATE OF ON FOR EACH ROW WHEN OLD. = EST AND NEW.<> EST DECLARE X INTEGER; BEGIN SELECT COUNT(*) INTO X FROM Docencia D WHERE D.cod-prof = :NEW.cod-prof AND D.= EST1 condición IF X <> 0 THEN RAISE-APPLICATION-ERROR ( ---, actualización no válida ) END IF; END acción ORACLE

11 Ejemplo4: en la relación existe un atributo derivado créditos que debe ser mantenido automáticamente por el sistema. Ley de derivación del atributo créditos: el valor del atributo créditos de es la suma de todos los créditos que en la relación Docencia aparecen impartidos por el profesor Clave primaria créditos* Departamento director Docencia créditos Clave Ajena Asignatura semestre teo prac * atributo derivado CREATE TABLE ( CHAR(5), VARCHAR(50) NOT NULL, CHAR(11), CHAR(5), créditos NUMBER (4,1) DEFAULT 0, CONSTRAINT CP_prof PRIMARY KEY (), INSERT UPDATE (creditos) DELETE UPDATE () Docencia aplicar la ley de derivació n del atributo cré ditos en y actualizar dicho atributo: UPDATE (creditos) CONSTRAINT CAj_prof_dpto FOREIGN KEY () REFERENCES Departamento()) El atributo derivado créditos debe ser mantenido automáticamente por el sistema. Evento Condición Acción REGLA DE ACTIVIDAD CREATE TRIGGER total_creditos AFTER INSERT OR DELETE OR UPDATE OF creditos, ON Docencia FOR EACH ROW BEGIN IF INSERTING THEN UPDATE SET créditos=cr éditos+:new.creditos acci ó n WHERE =:NEW.; ELSEIF UPDATING THEN IF :NEW.!= :OLD.f THEN UPDATE SET créditos=cr éditos+:new.creditos WHERE =:NEW.; UPDATE SET créditos=cr éditos -:OLD.creditos WHERE =:OLD.; ELSE UPDATE SET créditos + :NEW.creditos - :OLD.creditos; WHERE =:NEW.; END IF; ELSE UPDATE SET creditos=creditos - :OLD.creditos WHERE =:OLD.; END IF; END; definición_regla := CREATE [OR REPLACE ] TRIGGER _regla {BEFORE AFTER INSTEAD OF} [OR [OR [...] ]] ON {_tabla _vista} [[REFERENCING OLD AS _ref [NEW AS _ref] ] [FOR EACH ROW [WHEN ( condición ) ] ] bloque PL/SQL := {INSERT DELETE UPDATE [OF nom_atributo1, nom_atributo2...]} Sólo los disparadores de tipo FOR EACH ROW pueden llevar condición. Los disparadores de tipo INSTEAD OF sólo actúan sobre vistas.

12 Creación: CREATE TRIGGER _regla.. Borrado: DROP TRIGGER _regla Modificaci ón: REPLACE TRIGGER _regla Recompilación: ALTER TRIGGER _regla COMPILE Consulta: consultas a las tablas del diccionario del sistema: USER_TRIGGERS, ALL_TRIGGERS, DBA_TRIGGERS Prioridad entre reglas: no existe Habilitar y deshabilitar reglas: ALTER TRIGGER _regla [ENABLE DISABLE] ALTER TABLE _relación [{ENABLE DISABLE} ALL TRIGGERS] Tipos de reglas: 4 tipos de reglas BEFORE AFTER [FOR EACH STATEMENT] se ejecuta la regla una vez antes de la ejecuci ón del se ejecuta la regla una vez después de la ejecució n del FOR EACH ROW se ejecuta la regla una vez antes de la actualizaci ón de cada tupla afectada por el se ejecuta la regla una vez después de la actualizació n de cada tupla afectada por el Anexo: Lenguaje PL/SQL de ORACLE Estructura de un bloque PL/SQL: DECLARE Secció n de declaraci ó n de variables BEGIN Sentencias del bloque END Sección de declaraci ón de variables: - Variables locales al bloque: _variable tipo_dato tipo_dato::= {NUMBER CHAR ( ) DATE } (las declaraciones de esta sección deben ir separadas por punto y coma) Sentencias del cuerpo del bloque PL/SQL: - Secuencia_de_sentencias::= sentencia; [sentencia;]... - Sentencia de selección: IF condición THEN secuencia_de_sentencias [ELSE secuencia_de_sentencias] END IF; - Sentencias de repetición: WHILE condición LOOP secuencia_de sentencias ; END LOOP; FOR contador IN mínimo.. máximo LOOP secuencia_de_sentencias ; END LOOP; Sentencias del cuerpo del bloque PL/SQL: - Sentencia de asignaci ón : -Sentencias SQL: _variable := expresión INSERT, DELETE, UPDATE, SELECT... INTO... - Sentencias de entrada-salida: dbms_output.put_line ('mensaje'). Para usar esta función el paquete dbms_output debe estar activado, esto se hace con la sentencia SQL SET SERVEROUTPUT ON.

13 Manejo de errores: Si durante la ejecución de una regla (trigger) se produce un error predefinido en el sistema o definido por el usuario, entonces se anulan todas las actualizaciones realizadas por la acción de la regla así como el que la activó. La sentencia RAISE_APPLICATION_ERROR (nro_error, ' mensaje' ) provoca la ocurrencia del error de número interno nro_error y envía al usuario el mensaje 'mensaje'. (nro_error debe ser un número negativo entre y ). Ejercicio de prácticas. Se desea diseñar una base de datos para la gestión de una pequeña biblioteca de un departamento. Después de realizar el análisis del sistema, se han identificado los requerimientos que van a realizarse con más frecuencia; éstos son: -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,, dirección, y libros que actualmente tiene en préstamo así como la fecha del 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. Ejercicio de prácticas. Algunas restricciones de integridad que se han detectado son: -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. Realizar las siguientes tareas: definir el esquema relacional de la base datos anterior (usando los conceptos del modelo relacional). definir la base de datos en el sistema ORACLE9. realizar actualizaciones y consultas sobre la base de datos creada.

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). Definici ón de datos. Programa de prácticas: Lenguaje SQL: manipulación de datos. definición de datos Programa de prácticas: Práctica 3: El lenguaje SQL (2ª parte). Definici ón de datos Práctica 1. Introducci ón al uso de una BD relacional (ACCESS). Práctica 2. Representaci ón de la realidad en el modelo

Más detalles

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

Práctica 3: El lenguaje SQL (2ª parte). (6ª sesión). Práctica 3: El lenguaje SQL (2ª parte). (6ª sesión). Programa de prácticas: Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 2. Representación de la realidad en el modelo relacional

Más detalles

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos Objetivos Presentar la sintaxis de creación de tablas Diferencia con SQL/92 Presentar la sintaxis de la modificación de definición de una tabla Presentar

Más detalles

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

Lenguaje SQL (2ª Parte) Definición de datos 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

Más detalles

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 3: El lenguaje SQL. 2ª Parte: Definición de datos 10 DE ABRIL DE 2000

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 3: El lenguaje SQL. 2ª Parte: Definición de datos 10 DE ABRIL DE 2000 1. El lenguaje SQL del sistema ORACLE8 1.1 Definición de datos. BASES DE DATOS En el sistema ORACLE no existe el concepto de esquema de base de datos tal como aparece en el lenguaje SQL estándar. Asociado

Más detalles

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

Práctica 3: El lenguaje SQL (2ª parte). (7ª sesión). Práctica 3: El lenguaje SQL (2ª parte). (7ª sesión). Programa de prácticas: Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 2. Representación de la realidad en el modelo relacional

Más detalles

Tema II: El modelo relacional de datos Objetivos:

Tema II: El modelo relacional de datos Objetivos: Tema II: El Lenguaje Estándar SQL (2.5) El modelo relacional de datos Objetivos: conocer las estructuras de datos del modelo: la tupla y la relación conocer básicamente la forma de modelar la realidad

Más detalles

Tema II: El modelo relacional de datos. (2.7) Automatización

Tema II: El modelo relacional de datos. (2.7) Automatización Tema II: El modelo relacional de datos. (2.7) El modelo relacional de datos. 2.5 El lenguaje standard SQL 2.5.1 Lenguaje de definición de datos DDL. 2.5.2 Lenguaje de manipulación de datos DML. 2.6 Información

Más detalles

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

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

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

Práctica 3: El lenguaje SQL (1ª parte). (4ª sesión) Práctica 3: El lenguaje SQL (1ª parte). (4ª sesión) Programa de prácticas: Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 2. Representación de la realidad en el modelo relacional

Más detalles

Programa de prácticas:

Programa de prácticas: Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 2. Representación de la realidad en el modelo relacional de datos.

Más detalles

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle Triggers en Oracle Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla Diciembre 2016 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir

Más detalles

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (5ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización):

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (5ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización): Programa de prácticas: Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 3: El lenguaje SQL (1ª parte). Práctica 2. Representación de la realidad en el modelo relacional de datos.

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es

Más detalles

Práctica 1: Introducción a las bases de datos relacionales.

Práctica 1: Introducción a las bases de datos relacionales. Práctica 1: Introducción a las bases de datos relacionales. Objetivos: Presentar de forma intuitiva: El concepto de relación y de base de datos relacional. La función de los atributos identificadores y

Más detalles

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo SQL. DDL (Data Definition Language) BASES DE DATOS (I.T.I. Gestión) Tipo boolean character Bit Numéricos Tipos de datos en SQL Declaración estándar Declaración en ORACLE BOOLEAN CHAR (longitud) char(longitud),

Más detalles

Práctica 1: Introducción a las bases de datos relacionales

Práctica 1: Introducción a las bases de datos relacionales Práctica 1: Introducción a las bases de datos relacionales Escuela Universitaria de Informática Semestre 2B Objetivos Presentar de forma intuitiva el concepto de relación Presentar de forma intuitiva el

Más detalles

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas avanzado 22/11/2016 avanzado: Secuencias, triggers, cursores y subprogramas Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre

Más detalles

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

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers Triggers Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla octubre 2011 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir Consultar

Más detalles

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

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 DISPARADORES EN SQL:1999 DISPARADORES EN SQL Modelos Avanzados de Bases de Datos Un (trigger) es un procedimiento especial que se ejecuta en respuesta a un evento específico. Ej. Al aumentar el sueldo

Más detalles

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

Práctica 4: Estudio del SGBD Oracle 10 Gestión de Transacciones Práctica 4: Estudio del SGBD Oracle 10 El SGBD Oracle 10 Objetivos estudio de la gestión de transacciones. estudio de las estrategias para la comprobación de la integridad. estudio de las estrategias para

Más detalles

Triggers. BASES DE DATOS Mercedes García Merayo

Triggers. BASES DE DATOS Mercedes García Merayo Triggers BASES DE DATOS Mercedes García Merayo Triggers Un trigger es código (PL/SQL) que se ejecuta automáticamente cuando se realiza una determinada acción sobre la base de datos. Tipos de triggers Triggers

Más detalles

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (2ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización):

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (2ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización): Programa de prácticas: Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 3: El lenguaje SQL (1ª parte). Práctica 2. Representación de la realidad en el modelo relacional de datos.

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

Introducción a las Bases de Datos Relacionales

Introducción a las Bases de Datos Relacionales Introducción a las Bases de Datos Relacionales Bases de Datos Práctica 1 - UPV Facultad de Informática Escuela Técnica Superior de Informática Aplicada Objetivos Presentar de forma intuitiva: El concepto

Más detalles

BD Activas: Motivación

BD Activas: Motivación BD Activas: Motivación Los SGBD convencionales son pasivos. Sólo ejecutan preguntas o transacciones realizadas por los usuarios o por los programas de aplicación. Para representar la semántica del mundo

Más detalles

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

EXAMEN DE BASES DE DATOS 11/06/04 Esquema de trabajo EXAMEN DE BASES DE DATOS 11/06/04 Esquema de trabajo Cuando haya terminado el cuestionario traslade CUIDADOSAMENTE sus respuestas a la siguiente tabla, de este modo al terminar el examen podrá calcular

Más detalles

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

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 Grupo de Bases de Datos Avanzadas Univ. Carlos III de Madrid Índice V.1 Introducción V.1 SQL como Lenguaje de V.1.1 Definición del esquema V.1.2 Evolución del esquema V.2 SQL como Lenguaje de Manipulación

Más detalles

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

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle Triggers en Oracle Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla noviembre 2012 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir

Más detalles

Tema II: El modelo relacional de datos. (2.2)

Tema II: El modelo relacional de datos. (2.2) Tema II: El modelo relacional de datos. (2.2) El modelo relacional de datos. Objetivos: conocer las estructuras de datos del modelo: la tupla y la relación. conocer básicamente la forma de modelar la realidad

Más detalles

A. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271

A. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271 PL/SQL en objetos de la base de datos A. Introducción Además de los bloques PL/SQL anónimos utilizados por SQL*PLus o por las herramientas de desarrollo (Oracle*FORMS, Oracle*Reports), se puede emplear

Más detalles

T07 Opciones de integridad referencial

T07 Opciones de integridad referencial 1 de 9 17/05/2013 13:48 Lecciones SQL > T07 Opciones de integridad referencial Contenidos 1 Las opciones para mantener la integridad Las opciones para mantener la integridad referencial 2 On delete referencial

Más detalles

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

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

Más detalles

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

Solución Ejercicio Prac. 3b (Esquema). Solución Ejercicio Prac. 3b (Esquema). LIBRO(codlib, título, autores, temática, totalpres) CP= {codlib} VNN= {título} PRÉSTAMO(codlib, codsoc, fechapres, fechadev) CP= {codlib, fechapres} VNN= {codsoc}

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes sn. 41012 Sevilla TlfFax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es Diseño

Más detalles

Práctica 2: Representación de la realidad en el modelo relacional de datos. Práctica 1. Introducción al uso de una BD relacional (ACCESS).

Práctica 2: Representación de la realidad en el modelo relacional de datos. Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 2: Representación de la realidad en el modelo relacional de datos. Programa de prácticas: Práctica 1. Introducción al uso de una BD relacional (ACCESS). Práctica 2. Representación de la realidad

Más detalles

Solució Exercici Prac. 3b (Esquema).

Solució Exercici Prac. 3b (Esquema). Solució Exercici Prac. 3b (Esquema). LIBRO(codlib, título, autores, temática, totalpres) CP= {codlib} VNN= {título} PRÉSTAMO(codlib, codsoc, fechapres, fechadev) CP= {codlib, fechapres} VNN= {codsoc} CAj=

Más detalles

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

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 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 1 Se recomienda que para la realización de esta práctica se revisen los conceptos

Más detalles

Tema 5. Lenguaje de Definición de Datos

Tema 5. Lenguaje de Definición de Datos Tema 5 Lenguaje de Definición de Datos Índice Tema 5 1. Creación de tablas. Restricciones 2. Consultas de creación de tablas. 3. Modificación de la estructura de una tabla. 4. Borrado de tablas. 5. Creación

Más detalles

Tema II: El modelo relacional de datos (2.3) El modelo relacional de datos.

Tema II: El modelo relacional de datos (2.3) El modelo relacional de datos. Tema II: El modelo relacional de datos (2.3) El modelo relacional de datos. Objetivos: conocer las estructuras de datos del modelo: la tupla y la relación. conocer básicamente la forma de modelar la realidad

Más detalles

Departamento de Lenguajes y Sistemas Informáticos

Departamento de Lenguajes y Sistemas Informáticos Departamento de Lenguajes y Sistemas Informáticos Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es www.lsi.us.es E.T.S. Ingeniería Informática Diseño de bases de datos Anexo

Más detalles

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

Ambos conjuntos son completamente distintos: propósito, acciones,... L M D. datos 4. Lenguaje SQL Instrucciones del Lenguaje SQL: divididas en dos tipos para la definición de los objetos: Lenguaje de Definición de Datos para el manejo de la información: Lenguaje de Manipulación de Datos

Más detalles

Examen 24/6/97. Cuestionario de Bases de Datos: Nota del Test: 3.5 puntos (0.25 por cuestión). Cada 3 cuestiones incorrectas anulan 1 correcta.

Examen 24/6/97. Cuestionario de Bases de Datos: Nota del Test: 3.5 puntos (0.25 por cuestión). Cada 3 cuestiones incorrectas anulan 1 correcta. Examen 24/6/97 Cuestionario de Bases de Datos: Nota del Test: 3.5 puntos (0.25 por cuestión). Cada 3 cuestiones incorrectas anulan 1 correcta. Fórmula: Aciertos Errores 3 1) Al registrarse un punto de

Más detalles

Unidad 6. Procedimientos Almacenados y Disparadores

Unidad 6. Procedimientos Almacenados y Disparadores Unidad 6 Procedimientos Almacenados y Disparadores Disparadores (Triggers) Características Los disparadores solo ocurren cuando se presentan determinados eventos Los tipos de eventos permitidos suelen

Más detalles

EXAMEN DE BASES DE DATOS 10/06/05 CUESTIONARIO

EXAMEN DE BASES DE DATOS 10/06/05 CUESTIONARIO EXAMEN DE BASES DE DATOS 10/06/05 CUESTIONARIO 1. Supóngase que se han definido todas las restricciones de integridad como DEFERRABLE INITIALLY IMMEDIATE y sea la transacción T1 que se ejecuta sobre la

Más detalles

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

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo: TEMA 7.- EL ESTANDAR SQL. El Sublenguaje de Manipulación. El Sublenguaje de Definición. El Sublenguaje de Control. El Sublenguaje Huésped. 1. El Sublenguaje de Manipulación. (Se verá en la clase de problemas)

Más detalles

Tema: DISPARADORES (TRIGGERS)

Tema: DISPARADORES (TRIGGERS) Base de datos II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos II Tema: DISPARADORES (TRIGGERS) Objetivo Conocer la definición y utilización de los triggers Materiales Oracle

Más detalles

Unidad III. Bases de Datos

Unidad III. Bases de Datos Clase:11 1 Unidad III Bases de Datos 2 SQL. Comandos de DDL. Comandos de DML. Agenda 3 SQL Structured Query Language SQL Los comandos del SQL pueden dividirse en tres grupos: Comandos de definición de

Más detalles

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

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC INTRODUCCIÓN Los subprogramas son otro tipo de bloques PL/SQL Se diferencian de los bloques anónimos porque

Más detalles

La sintaxis de un trigger a nivel de registro es:

La sintaxis de un trigger a nivel de registro es: 9.2.2 CREACION DE TRIGGERS ROW Como ya hemos dicho, los triggers 'row' se ejecutan una vez para cada registro afectado por la sentencia DML que lo disparó. Es decir: si realizamos un UPDATE de varios registros,

Más detalles

RESTRICCIONES DE DOMINIOS

RESTRICCIONES DE DOMINIOS RESTRICCIONES DE DOMINIOS - Cargo del personal de la inmobiliaria: create domain cargo_personal as character20 check value in Venta, Alquiler, Gerencial - Categoría del barrio: create domain categoría

Más detalles

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo:

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo: Triggers en Oracle Nuestro objetivo para este artículo es intentar mostrar un breve panorama de cómo crear TRIGGERS (disparadores o gatilladores [1]) para bases de datos bajo Oracle 8, asi como describir

Más detalles

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

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 ÍNDICE Introducción... XI Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 Características y novedades de Access 2010... 1 Comienzo rápido del trabajo y seguimiento de la información...

Más detalles

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

DISPARADORES EN SQL SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003 DISPARADORES EN SQL Modelos Avanzados de Bases de Datos Curso 2004/2005 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003 CREATE [OR REPLACE] TRIGGER nombre [temporalidad del evento] [granularidad del evento]

Más detalles

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

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT Introducción Objetivos I-2 Objetivos del Curso I-3 Oracle11g - 12cI-5 Oracle Database 11g - 12cI-6 Oracle Application Server 11g - 12cI-7 Oracle Enterprise Manager 11g - 12cGrid Control I-8 Sistema de

Más detalles

Pràctica 1: dades relacionals. Pràctiques de Bases de Dades

Pràctica 1: dades relacionals. Pràctiques de Bases de Dades Pràctica 1: Introducció a les bases de dades relacionals Pràctiques de Bases de Dades Objectius Presentar de forma intuïtiva el concepte de relació Presentar de forma intuïtiva el concepte de base de dades

Más detalles

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 Página 1 de 6 GUIA N 5 LINEA DE COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE

Más detalles

BASES DE DATO TO I VISTAS curso 2008

BASES DE DATO TO I VISTAS curso 2008 BASES DE DATOS I VISTAS curso 2008 Vistas: conceptos Una VISTA es una tabla virtual derivada de otras tablas (que pueden ser tablas base o también otras vistas). Sus tuplas no se almacenan sino que se

Más detalles

SQL: Lenguaje de Interrogación Estructurado

SQL: Lenguaje de Interrogación Estructurado SQL: Lenguaje de Interrogación Estructurado SQL Es el lenguaje para Bases de Datos Relacionales más usado Es un lenguaje declarativo: QUÉ no CÓMO El núcleo fundamental se basa en el Algebra Relacional,

Más detalles

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

ejemplos de consultas SQL para obtener claves, DF y DMV en la BD de prendas de ropa probar_consultas.sql /* @probar_consultas.sql */ SET echo ON SELECT sysdate FROM dual; -- crear la BD de la tienda de ropa (tabla prendas @BD_Ropa_createBD.sql -- añadir algunas prendas para probar @BD_Ropa_insertData.sql

Más detalles

Introducción a PL/SQL

Introducción a PL/SQL Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL

Más detalles

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA Página 1 de 6 GUIA N 7 COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE DE DATOS

Más detalles

2.5.- El lenguaje estándar SQL

2.5.- El lenguaje estándar SQL 25- El lenguaje estándar SQL El SQL es un lenguaje estándar de definición y manipulación (y consulta) de bases de datos relacionales El SQL estándar incluye: Características del Álgebra Relacional Características

Más detalles

Programación de la asignatura BDA ( )

Programación de la asignatura BDA ( ) Objetivos. Programación de la asignatura BDA (2002-03) Los objetivos generales de la asignatura son: estudio de los fundamentos de la tecnología de bases de datos estudio del modelo relacional de datos,

Más detalles

GBD Diseño físico de DDBB

GBD Diseño físico de DDBB GBD Diseño físico de DDBB Mª Carmen Gabarrón Manual SQL de Oracle 10g http://download.oracle.com/docs/cd/b19306_01/server.102/b14200/index.htm SQL SQL es el lenguaje de consulta universal para bases de

Más detalles

Bases de Datos Relacionales y SQL: Una Introducción

Bases de Datos Relacionales y SQL: Una Introducción 1 Bases de Datos Relacionales y SQL: Una Introducción Protein Design Group, CNB CSIC 2 Sumario Qué es un SGBDR? Usuarios de base de datos Tablas: creación y definición de restricciones Manipulación de

Más detalles

Introducción a SQL (DDL)

Introducción a SQL (DDL) Introducción a SQL (DDL) Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2012 Introducción a SQL Objetivos de este tema

Más detalles

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL ) 3 puntos) Considérese un fichero secuencial con un índice con asociación estática. El índice es primario y está organizado sobre una

Más detalles

Introducción a Oracle PL / SQL 12c

Introducción a Oracle PL / SQL 12c ORACLE PL / SQL 12C a Oracle PL / SQL 12c El alumno egresara del mismo con los conocimientos y destrezas necesarias para desempeñarse como desarrollador Oracle PL/SQL además de contar con los conocimientos

Más detalles

Cuestión: Proceso de consultas en BD Relacionales. Problema 1: Diseño conceptual

Cuestión: Proceso de consultas en BD Relacionales. Problema 1: Diseño conceptual Cuestión: Proceso de consultas en BD Relacionales Políticas y heurísticas para la optimización de árboles algebraicos. Peso: 5% Tiempo:5min Problema : Diseño conceptual Una empresa decide crear un portal

Más detalles

Disparadores en ORACLE

Disparadores en ORACLE Diseño de Bases de Datos y Seguridad de la Información PL/SQL-1 PL/SQL: lenguaje de programación estructurado en bloques Bloques: unidad mínima en PL/SQL Soportan DML y DDL Anónimos / Con nombre Disparadores

Más detalles

Tema 1. Bases de datos activas

Tema 1. Bases de datos activas 18 de marzo de 2002 1 1. Introducción 2. El modelo evento-condición-acción Definición y uso de disparadores en Oracle Características de las reglas activas 3. Propiedades de las reglas activas 4. Aplicaciones

Más detalles

Disparadores en ORACLE. Disparadores Tema 11

Disparadores en ORACLE. Disparadores Tema 11 Disparadores en ORACLE Disparadores Tema 11 Introducción PL/SQL: lenguaje de programación estructurado en bloques Bloques: unidad mínima en PL/SQL Soportan DML y DDL Anónimos / Con nombre TRIGGERS Disparadores

Más detalles

Diseño Lógico Específico. Diseño Lógico Tema 13

Diseño Lógico Específico. Diseño Lógico Tema 13 Diseño Lógico Tema 13 Introducción Diseño Conceptual Diseño lógico Diseño físico EC ELS ELE EI Modelo Lógico estándar Modelo Lógico Específico Requisitos, objetivos, características SGBD, SO, hw A partir

Más detalles

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

Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers. Tecnólogo en Informática, sede Paysandú Bases de Datos 2 Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers Tecnólogo en Informática, sede Paysandú Bases de Datos 2 Funciones Variables Declarar: DECLARE @ Asignar valor:

Más detalles

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

DISEÑO DE BASES DE DATOS ºC Examen 8/Feb/2006 Cuestión: Control de concurrencia Haga un cuadro comparativo de las ventajas e inconvenientes de los distintos métodos de control de concurrencia que conozca (en filas: el método, en columnas: ventajas

Más detalles

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

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas

Más detalles

Integridad en sistemas de bases de datos relacionales

Integridad en sistemas de bases de datos relacionales Integridad en sistemas de bases de datos relacionales Competencias específicas a adquirir Asegurar la integridad de los datos mediante la aplicación de los mecanismos soportados por los SGBDs. Identificar

Más detalles

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

Departamento de Lenguajes y Sistemas Informáticos E.T.S. de Ingeniería Informática Universidad de Sevilla Avda Reina Mercedes, s/n. Departamento de Lenguajes y Sistemas Informáticos E.T.S. de Ingeniería Informática Universidad de Sevilla Avda Reina Mercedes, s/n. 41012 SEVILLA 1 DISEÑO DE BASES DE DATOS (23 Septiembre 2003) Problema

Más detalles

MATERIAL SOBRE SENTENCIAS SQL

MATERIAL SOBRE SENTENCIAS SQL MATERIAL SOBRE SENTENCIAS SQL Retomado este esquema Relacional obtenido en el ejemplo de normalización): EDITOR Editor_Nombre, Editor_Direccion, Editor_Telefono ) LIBRO Libro_ID, Titulo, Editor_Nombre

Más detalles

Oracle Database 12c SQL and PLSQL Fundamentals

Oracle Database 12c SQL and PLSQL Fundamentals Oracle Database 12c SQL and PLSQL Fundamentals DESCRIPCION MODULOS DE CAPACITACION Introducción Información general sobre 12c de base de datos Oracle y productos afines Descripción de los conceptos y la

Más detalles

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

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127 I. DATOS INFORMATIVOS Carrera Especialidad Curso Código Ciclo : Tercero Requisitos Duración Horas Semana : 06 horas Versión : v.0110 II. SUMILLA : COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería

Más detalles

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

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD Ligaduras de Integridad y Restricciones sobre la BD Outline 1 Introducción 2 Ligaduras de Dominio 3 Llaves Primarias 4 Llaves de Unicidad 5 Integridad Referencial Introducción y Motivación Por qué se deben

Más detalles

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers).

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers). Unidad 5 SQL Procedural 5.1 Procedimientos y Funciones. 5.2 Disparadores (Triggers). Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 MySQL 1. Se usará la Base de Datos llamada LaConsentida.

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes sn. 41012 Sevilla TlfFax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es Diseño

Más detalles

Tema II: Información Derivada: Vistas (2.6)

Tema II: Información Derivada: Vistas (2.6) Tema II: Información Derivada: Vistas (2.6) El modelo relacional de datos Objetivos: conocer las estructuras de datos del modelo: la tupla y la relación conocer básicamente la forma de modelar la realidad

Más detalles

Oracle PL/SQL. Programa de Estudio.

Oracle PL/SQL. Programa de Estudio. Oracle PL/SQL Programa de Estudio Oracle PL/SQL El alumno egresara del mismo con los conocimientos y destrezas necesarias para desempeñarse como desarrollador Oracle PL/SQL además de contar con los conocimientos

Más detalles

SQL: Vistas, Triggers, y Procedimientos Almacenados

SQL: Vistas, Triggers, y Procedimientos Almacenados SQL: Vistas, Triggers, y Procedimientos Almacenados Dr. Gerardo Rossel Bases de Datos 1C 2018 PostgreSQL Aclaración En estas diapositivas nos basaremos principalmente en PostgreSQL. Diferentes motores

Más detalles

CONOCIMIENTOS DE CONCEPTOS BASES DE DATOS

CONOCIMIENTOS DE CONCEPTOS BASES DE DATOS CONOCIMIENTOS DE CONCEPTOS BASES DE DATOS Los temas que se presentan a continuación son una referencia para el trabajo en base de datos tomando con referencia en la ultima parte, el SGBD MySQL. Sin embargo,

Más detalles

DISEÑO DE BASES DE DATOS 2007/2008 2ºC Examen 18/Jun/2008. Cuestiones. Problema 1: Diseño conceptual BD

DISEÑO DE BASES DE DATOS 2007/2008 2ºC Examen 18/Jun/2008. Cuestiones. Problema 1: Diseño conceptual BD Avda Reina Mercedes s/n. 402 Sevilla Examen 8/Jun/2008 Cuestiones Q. Compare los algoritmos pesimistas de control de concurrencia con los algoritmos optimistas. Cuál es la política de cada uno? En qué

Más detalles

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

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008 Base de Datos I SQL PROCEDURAL Triggers y Stored Procedures Ing. Gustavo A. Correa Reina UNCPBA 2008 SQL Procedural Posibilita el uso de código procedural conjuntamente con sentencias SQL que son almacenadas

Más detalles

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

LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO EXAMEN FINAL DE PRÁCTICAS DE BASES DE DATOS 18 de junio de 2003 Nombre: LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO

Más detalles

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

Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005) Disparadores en ORACLE Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005) Oracle Database Application Developer's Guide Fundamentals 10g Release 2 (10.2) (Noviembre 2005) Óscar

Más detalles

BASES DE DATOS ACTIVAS

BASES DE DATOS ACTIVAS BASES DE DATOS ACTIVAS 1 Motivación: comportamientos activos 2 Reglas ECA 3 Disparadores (Oracle) S. Ilarri 1 1. Motivación: comportamientos activos Las BD tradicionales se consideran pasivas No pueden

Más detalles

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

SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS Objetivos Enseñar al alumno las sentencias que forman el lenguaje de definición

Más detalles

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

1. Motivación: comportamientos activos. 2. Reglas ECA. Ejemplos BASES DE DATOS ACTIVAS. Las BD tradicionales se consideran pasivas BASES DE DATOS ACTIVAS 1. Motivación: comportamientos activos 1 Motivación: comportamientos activos 2 Reglas ECA 3 Disparadores (Oracle) Las BD tradicionales se consideran pasivas No pueden reaccionar

Más detalles

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

SQL Sintaxis. Ejemplo de Alumno, Curso, Profesor. Esquemas de Alumno, Curso, Profesor. Andrés Moreno S. SQL Sintaxis Andrés Moreno S. 1 Ejemplo de Alumno, Curso, Profesor RutAlumno Nombre Apellido Carrera Alumno Apellido2 Créditos SiglaCurso Toma Curso Dicta NomProfesor Profesor ApellidoP Apellido2P NombreCurso

Más detalles