EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por...

13
APELLIDOS: MAÑANA NOMBRE: DNI: TARDE EXAMEN: BASES DE DATOS 4º Ingeniería Informática (31 de enero de 2008) SI Autorizo la publicación de la nota del examen junto a mi número de matrícula, tanto en la Web como en los tablones NO PARTE TEÓRICA (3 puntos) Tenga en cuenta que por cada pregunta hay una y sólo una respuesta correcta. Todas las preguntas puntúan igual. Cada pregunta correcta suma 1. Cada respuesta incorrecta resta 0,25. Cada pregunta sin responder ni suma ni resta. Se exigirá una nota mínima en esta parte del examen. Tiene 15 minutos para realizar esta parte del examen 1. Indique cuál de las siguientes afirmaciones es incorrecta: a) Las Bases de Datos Orientadas a Objetos surgen por las necesidades de los lenguajes de programación. b) Las Bases de Datos Orientadas a Objetos surgen por las limitaciones de las bases de datos relacionales. c) Las bases de datos de 3ª Generación buscan la continuidad con la tecnología relacional. d) Las bases de datos de 3ª Generación buscan la ruptura con la tecnología anterior. e) Las bases de objetos puras buscan una rigurosa adaptación a los principios de la OO. 2. Las Bases de Datos Orientadas a Objetos Puras: a) Soportan obligatoriamente el concepto de OID (identificador de objeto) y el de clave primaria. b) Soportan el concepto de clave primaria, pero no el de OID. c) Soportan el concepto de OID, pero no el de clave primaria. d) Sólo permiten el uso de OID si no se dispone de una clave primaria. e) Únicamente permiten el uso de la clave primaria si no existe OID. 3. En una Base de Datos Objeto-Relacional: a) Es posible establecer asociaciones mediante referencias. b) Es posible establecer asociaciones mediante claves ajenas. c) Una referencia representa exactamente el mismo concepto que una clave ajena, y por lo tanto, se pueden usar ambos conceptos de forma indistinta. d) No es posible utilizar consultas navegacionales usando referencias. e) a y b son correctas 4. En el Modelo Objeto-Relacional: a) La extensión y la intensión se crean a la vez, como en el modelo relacional, al definir una tabla. b) La extensión y la intensión se crean a la vez al definir un tipo estructurado. c) La intensión se crea con la definición del tipo estructurado y la extensión con la definición de una tabla tipada (una tabla definida sobre un tipo estructurado). d) La extensión se crea con la definición del tipo estructurado y la intensión con la definición de una tabla tipada (una tabla definida sobre un tipo estructurado). e) No se permite la creación de la extensión.

Transcript of EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por...

Page 1: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

APELLIDOS: MAÑANA

NOMBRE: DNI:

TARDE

EXAMEN: BASES DE DATOS 4º Ingeniería Informática

(31 de enero de 2008)

SI Autorizo la publicación de la nota del examen junto a mi número de matrícula, tanto en la Web como en los tablones NO

PARTE TEÓRICA (3 puntos) Tenga en cuenta que por cada pregunta hay una y sólo una respuesta correcta. Todas las preguntas puntúan igual. Cada pregunta correcta suma 1. Cada respuesta incorrecta resta 0,25. Cada pregunta sin responder ni suma ni resta. Se exigirá una nota mínima en esta parte del examen. Tiene 15 minutos para realizar esta parte del examen 1. Indique cuál de las siguientes afirmaciones es incorrecta:

a) Las Bases de Datos Orientadas a Objetos surgen por las necesidades de los lenguajes de programación.

b) Las Bases de Datos Orientadas a Objetos surgen por las limitaciones de las bases de datos relacionales.

c) Las bases de datos de 3ª Generación buscan la continuidad con la tecnología relacional. d) Las bases de datos de 3ª Generación buscan la ruptura con la tecnología anterior. e) Las bases de objetos puras buscan una rigurosa adaptación a los principios de la OO.

2. Las Bases de Datos Orientadas a Objetos Puras:

a) Soportan obligatoriamente el concepto de OID (identificador de objeto) y el de clave primaria. b) Soportan el concepto de clave primaria, pero no el de OID. c) Soportan el concepto de OID, pero no el de clave primaria. d) Sólo permiten el uso de OID si no se dispone de una clave primaria. e) Únicamente permiten el uso de la clave primaria si no existe OID.

3. En una Base de Datos Objeto-Relacional: a) Es posible establecer asociaciones mediante referencias. b) Es posible establecer asociaciones mediante claves ajenas. c) Una referencia representa exactamente el mismo concepto que una clave ajena, y por lo tanto, se

pueden usar ambos conceptos de forma indistinta. d) No es posible utilizar consultas navegacionales usando referencias. e) a y b son correctas

4. En el Modelo Objeto-Relacional:

a) La extensión y la intensión se crean a la vez, como en el modelo relacional, al definir una tabla. b) La extensión y la intensión se crean a la vez al definir un tipo estructurado. c) La intensión se crea con la definición del tipo estructurado y la extensión con la definición de una tabla

tipada (una tabla definida sobre un tipo estructurado). d) La extensión se crea con la definición del tipo estructurado y la intensión con la definición de una tabla

tipada (una tabla definida sobre un tipo estructurado). e) No se permite la creación de la extensión.

Page 2: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

5. El concepto de herencia soportado por Oracle 10g:

a) Corresponde al concepto de herencia soportado por el estándar SQL:2003. b) Oracle 10g no soporta ningún tipo de herencia. c) Sólo permite la herencia de tablas pero no de tipos. d) Sólo permite la herencia de tipos pero no de tablas. e) Ninguna de las anteriores.

6. El equivalente al concepto de NESTED TABLE de Oracle 10g, en el modelo Objeto-Relacional del

estándar SQL:2003 es: a) El ARRAY b) La tabla anidada c) El MULTISET d) En el modelo OR del estándar SQL:2003 no soporta colecciones. e) El modelo OR del estándar SQL:2003 no soporta ningún concepto equivalente al concepto de tabla

anidada 7. ¿Cómo podemos ver la estructura de una tabla (o tipo de datos) en Oracle usando el cliente SQL Plus?

a) DESC <nombre_tabla>; b) SHOW <nombre_tabla>; c) SELECT * FROM <nombre_tabla>; d) Recuperando el script de creación de la tabla o tipo de dato. e) Ninguna de las anteriores es correcta.

8. A la hora de codificar un trigger o disparador en Oracle debemos tener en cuenta que:

a) No se puede deshacer el resultado de la sentencia que disparó el trigger. b) El cuerpo del disparador sólo puede contener sentencias SQL válidas. c) Permiten el uso de :OLD y :NEW para disparadores definidos a nivel de fila y a nivel de sentencia. d) pueden ser invocados en cualquier momento de forma explícita por parte del usuario. e) Aquellos definidos a nivel de fila no se ejecutan si ninguna fila se ve afectada por la sentencia que lo

disparó. 9. El lenguaje XML:

a) Resulta ineficiente para el almacenamiento directo de datos. b) Permite definir nuevos lenguajes de marcas. c) Como HTML, se deriva del SGML (Standard Generalized Markup Language), lenguaje para

estructurar documentos grandes. d) Facilita el intercambio de datos y la comunicación entre aplicaciones. e) Todas las anteriores son correctas.

10. En cuanto al almacenamiento y consulta de datos XML:

a) El lenguaje XPath está diseñado para la transformación de XML a XML y HTML b) El resultado de una consulta a un documento XML nunca será otro documento XML. c) El lenguaje XQuery es un lenguaje estándar para la consulta de XML. d) El almacenamiento de datos XML en BD relacionales es directo. e) Para poder almacenar datos XML en BD XML el usuario debe realizar un proceso previo de

transformación de los datos al esquema relacional.

Page 3: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

APELLIDOS: MAÑANA

NOMBRE: DNI:

TARDE PARTE PRÁCTICA (7 puntos) Tiene 2 horas para realizar esta parte del examen. Responda en las propias hojas de examen. 1. (1.5 puntos) Defina un modelo conceptual representado mediante un diagrama de clases UML para recoger la siguiente semántica: Se desea almacenar la información referente a los periódicos nacionales. De cada periódico se va a almacenar su nombre y su sede. Diariamente los periódicos publican una edición, de la que se va a almacenar su fecha de publicación, con artículos, de los que se va almacenar el título, el nombre de su/s autor/es (si no es anónimo) y un breve resumen. Un mismo artículo podría publicarse en más de una edición.

2. (1 punto) Dado el siguiente esquema objeto–relacional, Se pide: CREATE TYPE tipo_dirección AS ( calle CHAR (30), ciudad CHAR (20), provincia CHAR (2), codigoP CHAR (5));

CREATE TYPE tipo_persona AS ( dni CHAR(9), nombre VARCHAR(50), apellidos VARCHAR(50), Fecha_nacimiento DATE dirección tipo_dirección); CREATE TABLE T_Profesor OF tipo_persona;

Dibujar la estructura de datos correspondiente (intensión) a la tabla tipada T_Profesor.

Page 4: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

3. (3.5 puntos) Dado el siguiente esquema conceptual en UML:

Jugador<<persistent>>

<<PK>> Cod_Jugador<<AK>> Nombre_Jugador<<AM>> TelefonosNum_Camiseta

Jugador<<persistent>>

<<PK>> Cod_Jugador<<AK>> Nombre_Jugador<<AM>> TelefonosNum_Camiseta

Equipo<<persistent>>

<<PK>> Cod_Equipo<<AK>> Nombre_EquipoNombre_EntrenadorCiudad

Equipo<<persistent>>

<<PK>> Cod_Equipo<<AK>> Nombre_EquipoNombre_EntrenadorCiudad

1..*1..1Juega ►

Se pide:

a. (2 puntos) Diseño lógico específico (Oracle) en notación UML extendida (no se pide el código SQL). Tenga en cuenta que la asociación Juega se debe implementar de forma bi-direccional. Haga los supuestos semánticos que considere necesarios.

Page 5: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

APELLIDOS: MAÑANA

NOMBRE: DNI:

TARDE

b. (1.5 puntos) Defina gráficamente una extensión de las tablas tipadas resultantes (mínimo dos equipos con 2 jugadores cada uno).

Page 6: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

ESTA PÁGINA NO DEBE UTILIZARSE PARA RESPONDER A LAS PREGUNTAS DEL

EXAMEN

Page 7: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

APELLIDOS: MAÑANA

NOMBRE: DNI:

TARDE 4. (2 puntos) Dado el siguiente diagrama en UML extendido que representa un modelo Objeto-Relacional para Oracle. Se pide el código SQL para:

<<composes>>EQUIPO<<OT>>

NombreEquipacion: COLORESJugadores: NT_JUGADORES

EQUIPO<<OT>>

NombreEquipacion: COLORESJugadores: NT_JUGADORES

JUGADOR<<OT>>

Nombre<<REF>>Club: EQUIPO

JUGADOR<<OT>>

Nombre<<REF>>Club: EQUIPO

<<co

mpo

ses>

>

NT_JUGADORES<<NT>>

<<REF>> Jugador: JUGADOR

NT_JUGADORES<<NT>>

<<REF>> Jugador: JUGADOR

<<composes>>

COLORES<<UDT>>

PantalonCamisetaMedias

COLORES<<UDT>>

PantalonCamisetaMedias

<<composes>>

a. (1 punto) Implementar el esquema en Oracle

Page 8: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

b. (0.2 puntos) Insertar los datos del Real Madrid (el campo jugadores será nulo): c. (0.2 puntos) Insertar los datos del jugador Raúl González que juega en el Real Madrid (no

es necesario actualizar el valor del campo Jugadores de la tabla Equipos): d. (0.4 puntos) Actualizar la tabla Equipos para reflejar el hecho de que Raúl González juega

en el Real Madrid:

Page 9: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

APELLIDOS: MAÑANA

NOMBRE: DNI:

TARDE

5. (2 puntos) Dadas las siguientes relaciones y el código para implementarlas en Oracle:

EQUIPO (Nombre, Ciudad)

JUGADOR (Nombre, Puesto, Edad)

PLANTILLAS (Equipo, Jugador, Fecha_Alta) CREATE TABLE Equipos( Nombre VARCHAR2(25), Ciudad VARCHAR2(25), PRIMARY KEY (Nombre) ); CREATE TABLE Jugadores ( Nombre VARCHAR2(25), Puesto VARCHAR2(25), Edad NUMBER, PRIMARY KEY (Nombre) );

CREATE TABLE Plantillas ( Equipo VARCHAR2(25), Jugador VARCHAR2(25), Fecha_Alta DATE, PRIMARY KEY (Equipo, Jugador) );

a. (0.75 puntos) Defina un disparador en Oracle, de forma que, cada vez que se elimine un

equipo de la tabla Equipos se elimine toda la información referente a los jugadores que pertenezcan a dicho equipo.

b. (0.75 puntos) Defina un disparador en Oracle para mantener la tabla Historico que registra en que equipos ha jugado un jugador a lo largo de su carrera.

HISTORICO (Equipo, Jugador, Fecha_Baja)

Page 10: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

c. (0.5 puntos) Dado el código del siguiente disparador definido sobre la tabla Plantillas. CREATE OR REPLACE TRIGGER X BEFORE INSERT OR DELETE ON Plantillas FOR EACH ROW DECLARE var NUMBER; BEGIN IF INSERTING THEN SELECT COUNT(*) INTO var FROM PLANTILLAS WHERE Equipo = :NEW.Equipo; ELSE SELECT COUNT(*) INTO var FROM PLANTILLAS WHERE Equipo = :OLD.Equipo; END IF; IF (var < 11 OR var > 24) THEN RAISE_APPLICATION_ERROR(-20001, 'Excepción Elevada'); END IF; END; / Explique el propósito y funcionamiento de dicho disparador ¿Funcionaría correctamente el disparador en Oracle? Razone (brevemente) su respuesta

Page 11: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

APELLIDOS: MAÑANA

NOMBRE: DNI:

TARDE

ORACLE PL/SQL – OBJECT-RELATIONAL FEATURES & TRIGGERS OBJECT TYPES CREATE [OR REPLACE] TYPE <type_name> AS OBJECT ( <column_name> [REF] <data_type>, ..., <column_name> [REF] <data_type>); / <data_type> ::= (<primitive_type> | [REF] <object_type>) <primitive_type> ::= (VARCHAR2(n) | NUMBER[(x,y)]) VARRAY TYPE CREATE [OR REPLACE] <type_name> AS VARRAY (n) OF <data_type>; NESTED TABLE TYPE CREATE OR REPLACE <type_name> AS TABLE OF <data_type>; OBJECT TYPE TABLES CREATE TABLE OF <object_type>[NESTED TABLE <NT_attribute> STORE AS <NT_name>]; INSERT INSERT INTO <table_name> [<columns_list>] VALUES <values_list>; columns_list ::= (column_name, column_name, …, column_name) values_list ::= (value, value, …, value) value ::= (primitive_value | <object_type>(values_list)) UPDATE UPDATE <table_name> SET <columns_list> = <values_list> [WHERE <condition>] SELECT SELECT <columns_list> [INTO <variables_list>] FROM <tables_list> [WHERE <condition>]; columns_list ::= ([REF]column_name, [REF]column_name, …, [REF]column_name) variables_list ::= (<variable_name>, <variable_name>, …, <variable_name>) tables_list ::= (<table_name>[alias], …, <table_name>[alias]) PL/SQL BLOCKS [DECLARE <variable_name> <data_type> [:= <valor_inicial>]; …

] BEGIN <body> END; TRIGGERS CREATE [OR REPLACE] TRIGGER <trigger_name> (BEFORE | AFTER | INSTEAD OF) (INSERT | DELETE | UPDATE [OF <attribute>]) ON <table_name> [WHEN <condition>] [FOR EACH ROW | STATEMENT] [DECLARE …] BEGIN <trigger_body> [EXCEPTION ... ] END;

Page 12: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

/

Page 13: EXAMEN: BASES DE DATOS 4º Ingeniería Informática · 5. El concepto de herencia soportado por Oracle 10g: a) Corresponde al concepto de herencia soportado por el estándar SQL:2003.

APELLIDOS: MAÑANA

NOMBRE: DNI:

TARDE

ESTA PÁGINA NO DEBE UTILIZARSE PARA RESPONDER A LAS PREGUNTAS DEL

EXAMEN