FUNDAMENTOS DE BASES DE DATOS. Solución Examen Julio Parte 1. Modelo Entidad-Relación

Documentos relacionados
Segundo Parcial de Fundamentos de Bases de Datos. Noviembre 2016

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero Solución

FUNDAMENTOS DE BASES DE DATOS. Examen Julio Solución

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero SOLUCIONES. Parte 1. Modelo Entidad-Relación

FUNDAMENTOS DE BASES DE DATOS. Examen Diciembre 2003

FUNDAMENTOS DE BASES DE DATOS Examen Febrero 2017 Solución

Segundo Parcial de Fundamentos de Base de Datos

FUNDAMENTOS DE BASES DE DATOS. Examen Marzo 2003

Primer Parcial de Fundamentos de Base de Datos

Práctico 5 Diseño Relacional-Dependencias Funcionales

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero 2010 Solución

Segundo Parcial de Fundamentos de Base de Datos

Diseño de Base de Datos Relacional. Diseño de Base de Datos Relacional

Diseño de Base de Datos Relacional

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero SOLUCION

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 10-Feb Nombre:

FUNDAMENTOS DE BASES DE DATOS. Examen Diciembre SOLUCION

Bases de datos 1. Teórico: Normalización

Bases de datos 1. Teórico: Normalización

Formas Normales. Normalización. Introducción

FUNDAMENTOS DE BASES DE DATOS. Diciembre Solución

Universidad de Valladolid Departamento de Informática

Ejercicio 1 (20 pts).

FUNDAMENTOS DE BASES DE DATOS. Examen Julio Solución

Formas Normales. - Facultad de Ingeniería Curso : Fundamentos de Bases de Datos Tema 1. Introducción y Conceptos Generales 1

FUNDAMENTOS DE BASES DE DATOS. Solución Diciembre 2006

Ficheros y Bases de Datos Curso Primer Parcial. 7 de FEBRERO de Nombre:

FUNDAMENTOS DE BASES DE DATOS. Examen Julio 2008

Dependencias funcionales

Base de Datos. Práctica de Normalización. 1 Base de Datos

Tarea 2 - Consultas en SQL Solución propuesta por los docentes

Nombre: Se debe entregar esta hoja

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

FUNDAMENTOS DE BASES DE DATOS. Examen Julio 2002

Primer Parcial de Fundamentos de Base de Datos

FUNDAMENTOS DE BASES DE DATOS. Examen Julio Parte 1. Modelo Entidad-Relación

Álgebra Relacional. Carlos A. Olarte BDI

Bases de Datos 1. Teórico: Structured Query Language

Primer Parcial de Fundamentos de Base de Datos

Normalización Clase Práctica SPI y SPDF

FICHEROS Y BASES DE DATOS 2º ITIG 8/9/2001 NOMBRE

Examen de Ficheros y bases de datos ( ) Convocatoria de febrero I PARCIAL

Vemos que t3 y t4 serían las mismas tuplas que las dadas. En este caso no se agregan tuplas.

TEMA 6.- LENGUAJES DE CONSULTA FORMALES.

Normalización Clase Práctica Formas Normales

Guía de estudio para el examen. Sean tres atributos A, B y C. Indique, para cada par de transacciones T1 y T2, si se garantiza que A+B+C no cambia.

Primer Parcial de Fundamentos de Base de Datos

Solución Práctico 6 Diseño Relacional. Ejercicio 1: Tecnólogo en Informática Base de Datos 1 Práctico

Práctico 6 Diseño Relacional

ADMINISTRACIÓN DEL MANEJO DE BASE DE DATOS MySQL. Dr. Ricardo Raúl Jacinto Montes

Segundo Parcial de Fundamentos de Base de Datos

Laboratorio de Base de Datos Práctica Nro. 3, Modelo Relacional y Transformaciones

Clases Prácticas Base de Datos DF y FN 10 y 17/09/ C.2010

GUÍAS CLÁSICAS DE BASES DE DATOS

Procesamiento y Optimización de Consultas

Procesamiento y Optimización de Consultas

Apartado A (3 puntos):

SQL. Amparo López Gaona. México, D.F. Noviembre 2003

CC42A: Bases de Datos Auxiliar: Optimizacion Consultas SQL

Primer Parcial de Fundamentos de Base de Datos

A.1. Definiciones de datos en SQL

Ser capaces de realizar una consulta dentro de otra

Temario Curso Bases de Datos

EXAMEN DE ESTRUCTURAS DE LA INFORMACIÓN (Junio de 2008)

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero 2003

Algebra Relacional Algebra Relacional

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

Bases de Datos 2. Teórico

TEMA: CONSULTAS (ALGEBRA RELACIONAL Y SQL)

MODELO RELACIONAL Y PASAJE MER A RELACIONAL

Primer Parcial de Fundamentos de Base de Datos

Apartado A (3 puntos):

SQL. Carlos A. Olarte BDI

Universidad de Concepción Departamento de Ing. Informática y Cs. de la Computación

Facultad de Informática UCM - Examen Parcial Convocatoria de Febrero Curso 2009/2010 Grupo A Bases de Datos y Sistemas de la Información SOLUCIÓN

AR - Marco General. Álgebra Relacional AR - SELECT. AR - SELECT - Propiedades. 19/Agosto/2016

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Examen de Ficheros y bases de datos (cód. 520) Ingeniería Técnica en Informática de Gestión Convocatoria de junio I PARCIAL

Una relación esta en 4FN si esta en la BCFN y no contiene dependencias multivaluadas.

DISEÑO DE BASES DE DATOS. DEPENDENCIAS FUNCIONALES. Ejercicios 1.

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

5. El diseño lógico de una BD es independiente del modelo de datos elegido para su posterior implementación.

Examen de Bases de datos y sistemas de información I PARCIAL. A C S I _y s1 _z B N C

PAU Madrid. Matemáticas II. Año Examen de septiembre. Opción A. Ejercicio 1. Valor: 2 puntos.

El Modelo Relacional. Carlos A. Olarte BDI

Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación Base de Datos

REGISTRO Y MATRÍCULA DE SUBCLASES

PROCEDIMIENTO GENERAL DE EVALUACIÓN DEL DESEMPEÑO UNIVERSIDAD DEL QUINDIO APLICATIVO WEBSTEDL

BASES DE DATOS Lenguajes de Consulta

Bases de Datos Curso Grado en Ingeniería del Software Examen Junio. Nombre:

SQL: Lenguaje de Interrogación Estructurado

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Optimización. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

EJERCICIOS DETERMINANTES. 1º/ Calcula el siguiente determinante:

EXAMEN DE ESTRUCTURAS DE LA INFORMACIÓN (Junio 2010)

Recopilación de preguntas de exámenes anteriores de dependencias funcionales y normalización

Optimización de Consultas

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Diseño Conceptual - Modelo ER

Transcripción:

FUDAMETOS DE BASES DE DATOS Solución Examen Julio 20 Presentar la resolución del examen: Con las hojas numeradas y escritas de un solo lado. Con la cantidad de hojas entregadas en la primer hoja. Con cédula de identidad y nombre en cada hoja. Escrita a lápiz y en forma prolija. Parte. Modelo Entidad-Relación Ejercicio. (25 pts) (25 puntos) Se desea realizar el modelo conceptual para la información de una empresa de auxilio mecánico, la cual necesita registrar lo siguiente. Existe un conjunto de vehículos de la empresa, los cuales son autos y camiones. De estos vehículos se guarda la matrícula (que identifica a cada vehículo), el año, marca y modelo. En el caso de los camiones interesa saber el peso máximo de carga que puede llevar. Se registran los siguientes datos de los choferes de la empresa: cédula de identidad, nombre, dirección y teléfono. Algunos de los choferes manejan solamente autos, otros solamente camiones, y otros manejan tanto autos como camiones. A la vez, cada chofer que maneja autos tiene asignado un conjunto de autos que puede manejar, y análogamente los que manejan camiones. Tanto los autos como los camiones pueden ser manejados por distintos choferes. Los vehículos de la empresa están asignados a zonas donde trabajan. De las zonas se registra un identificador, un nombre y el departamento al que pertenece. Interesa saber qué zonas son limítrofes entre sí. Se lleva la información sobre los socios y sus vehículos asociados. De cada socio interesa su cédula de identidad, su nombre, su dirección y sus teléfonos. De cada vehículo asociado se guarda su matrícula (que lo identifica), su marca, modelo y color. Un socio puede tener varios vehículos asociados, pero para un vehículo hay un solo socio correspondiente. Se registran todos los incidentes que ocurren a los vehículos asociados y generan un pedido de auxilio. Los incidentes se clasifican en leves o graves. Los leves, son los que pueden ser atendidos en el lugar por un auto de la empresa, mientras que los graves son aquellos donde tiene que ir un camión para trasladar el vehículo socio a un taller. De los incidentes se registra un código, la fecha, la hora y el lugar donde ocurrió. El lugar está dado por el cruce de dos calles, de las cuales se guarda su nombre. Interesa registrar qué auto o camión atendió el incidente y quién fue el chofer actuante. También interesa registrar qué vehículo socio fue el afectado, y si el incidente fue grave, a qué taller fue hecho el traslado. Del taller se guarda el nombre, el cual junto con la zona a la cual pertenece, lo identifica, dirección y teléfono. Se registra también en qué zona fue el incidente. La zona del incidente debería ser una zona asignada al vehículo de la empresa que lo atendió. Los socios declaran un conjunto de talleres como de su preferencia. Cuando se traslada un vehículo socio se intenta hacerlo a un taller de su preferencia, aunque no siempre es posible. Se pide: Modelo Entidad Relación completo. /9

Solución: matricula año marca modelo VEHICULOS-EMP TRABAJA id-zona LIMITA ZOAS nombre depto nombre E dir TALLER tel AUTOS CAMIOES carga E TRASLADO CHOF-AUTO CHOF-CAMIO LEVE ATIEDE2 GRAVE PREFIERE MAEJA-AUTO MAEJA-CAMIO ICIDETE lugar calle calle2 AFECTADO codigo fecha hora CHOFERES ci nombre dir tel matricula modelo color VEHICULOS-SOCIOS ci nombre ATIEDE marca DUEÑO SOCIOS dir tel* RE: - AUTOS CAMIOES = VEHICULOS-EMP - AUTOS CAMIOES = - MAEJA-AUTO MAEJA-CAMIO = CHOFERES - LEVE GRAVE = ICIDETE - LEVE GRAVE = - LIMITA es irrefelexiva. - <l,<a,ma>> ATIEDE, <a,z> ZOAS <l,z> E - <g,<c,mc>> ATIEDE2, <c,z> ZOAS <g,z> E 2/9

Parte 2. Consultas (25 puntos) Ejercicio 2 (25 pts) Una federación de ajedrez mantiene la información de los clubes afiliados a la misma, de los jugadores y de los torneos que se organizan en una base de datos con el siguiente esquema: CLUB (nroclub, nomclub, dirclub, dirigente) Contiene información de los clubes afiliados a la federación. De cada club se conoce un número que permite identificarlo en la federación, su nombre, dirección de la sede y el nombre del dirigente responsable frente a la federación. JUGADORES (nrojug, nomjug, nroclub, categoria, elo) Contiene información de los jugadores registrados en la federación. De cada jugador se conoce su nombre, su categoría, su elo y el número del club al que pertenece y por el cuál esta registrado. A cada uno de estos jugadores la federación le asigna un número que lo identifica. TOREOS (nrotorneo, nroclub, tipo,fecha) Contiene información de los torneos oficiales de la federación. De estos torneos se conoce un número que lo identifica, el número club encargado de la organización, tipo del torneo y fecha de realización. PARTICIPACIÓ (nrotorneo, nrojug, puntos) Contiene información sobre la participación de los jugadores en los torneos registrando en cada caso el total de puntos obtenidos por el jugador. En este esquema no existen tablas vacías y se cumplen las siguientes dependencias de inclusión. nroclub (JUGADORES) nroclub (CLUB) nroclub (TOREOS) nroclub (CLUB) nrotorneo (PARTICIPACIO) nrotorneo (TOREOS) nrojug (PARTICIPACIO) nrojug (JUGADORES) Resolver en álgebra relacional las siguientes consultas: a) Obtener el nombre de los jugadores que han obtenido más de 0 puntos sólo en los torneos organizados por el club al cual pertenecen. A = ( ( JUGADORES * PARTICIPACIÓ * TOREOS)) 0 nrojug σ puntos> ro de los jugadores que han obtenido puntos en torneos organizados por su club. B = (( * ) )) $ 2 ( σ PARTICIPACIÓ TOREOS JUGADORES >< puntos > 0 $2= $7 $4 $8 ro de los jugadores que han obtenido puntos en torneos organizados por otros clubes. SOL = nomjug (( A B)* JUGADORES) b) Obtener el nombre de los clubes que uno de sus jugadores participó en todos los torneos de tipo ABIERTO. A = ( ( TOREOS)) nrotorneo σ tipo= ABIERTO 3/9

ro de los torneos de tipo abierto. B = ( PARTICIPACIO )% A nrojug, nrotorneo Jugadores que participaron en todos los torneos abiertos. SOL = nomc lub ( B * JUGADORES * CLUB) Resolver en cálculo relacional las siguientes consultas: c) Obtener el nombre de los jugadores con elo 0 que han obtenido el mayor puntaje en algún torneo en el cual también participaron jugadores con elo mayor a 200. { j.nomjug / JUGADORES(j) j.elo = 0 ( p)(participacio(p) p.nrojug = j.nrojug ( ( p2)(participacio(p2) p2.nrotorneo = p.nrotorneo p2.puntos > p.puntos ) ) ( p3) (PARTICIPACIO(p3) p3.nrotorneo = p.nrotorneo ( j2)(jugadores(j2) p3.nrojug = j2.nrojug j2.elo > 200) ) ) } d) Obtener el nombre de los dirigentes de los clubes tales que todos sus jugadores participaron en todos los torneos realizados antes del //200. { c.dirigente / CLUB(c) ( j)(jugadores(j) j.nroclub = c.nroclub ( j2)(jugadores(j2) j2.nroclub = j.nroclub ( ( t)(toreos(t) t.fecha < //200 ( ( p)(participacio(p) p.nrojug = j2.nrojug p.nrotorneo = t.nrotorneo ) ) ) ) } Resolver en SQL, sin utilizar vistas ni sub-consultas en el FROM, las siguientes consultas: e) Obtener el número del jugador, la cantidad de torneos en los que participó y los puntos totales obtenidos para aquellos jugadores que pertenecen a categorías con por lo menos 20 jugadores registrados SELECT P.nroJug, count(*), sum(j.puntos) FROM PARTICIPACIO P ATURAL JOI JUGADORES J WHERE J.categoria I (SELECT J.categoria FROM JUGADORES J GROUP BY J.categoria HAVIG count(*) > 20 ) GROUP BY P.nroJug 4/9

f) Obtener las parejas (nro de torneo, nombre del club) tales que para ese torneo el club indicado tuvo la mayor cantidad de jugadores participantes en el mismo. SELECT P.nroTorneo, C.nomClub FROM PARTICIPACIO P ATURAL JOI JUGADORES J ATURAL JOI CLUB C GROUP BY P.nroTorneo, J.nroClub, C.nomClub HAVIG count(*) >= ALL (SELECT count(*) FROM PARTICIPACIO P2 ATURAL JOI JUGADORES J2 WHERE P2.nroTorneo = P.nroTorneo GROUP BY J2.nroClub ) Parte 3. Diseño Relacional (25 puntos) Ejercicio 3. (25 pts.) Sea el esquema R(A, B, C, D, E, G, H) y el conjunto de dependencias: F = {B->D, CD->E, GHD->E, E->GH, GH->C, B->A} a. Indicar TODAS las claves. Justificar. b. Hallar un cubrimiento minimal de F. Justificar. c. Dada la siguiente descomposición de R: R(A, B, C, E) R2(B, D, E, G, H). Verificar si cumple con la propiedad de JSP 2. Cuál es la máxima forma normal en que se encuentra R? d. Hallar una descomposición de R que esté en BCF y tenga JSP, aplicando el algoritmo visto en el curso. Determine si dicha descomposición preserva las dependencias funcionales. SOLUCIÓ: (a) Como B no es determinado por otros atributos, debe aparecer en toda clave. Calculamos su clausura: B+ = {A, B, D}, por lo que B no es clave. A no aparece en ningún lado derecho, por lo que no puede estar en ninguna clave. Calculamos clausuras de pares de atributos posibles que cumplen estas condiciones: BA+= {A, B, D}, como B->A, agregar A no aporta nada BC+ = {A, B, C, D, E, G, H}, BC es clave BD+ = {A, B, D}, como B->D, agregar D no aporta nada BE+ = {A, B, C, D, E, G, H}, BE es clave BG+ = {A, B, D, G} BH+ = {A, B, D, H} Clausuras de atributos de a tres (sin C o E, porque ya son parte de otras claves, ni A o D, porque no aportan si ya se tiene B): BGH+ = {A, B, C, D, E, G, H}, BGH es clave (b) Aplicamos el algoritmo. Paso. F = F Paso 2. F = {B->D, CD->E, GHD->E, E->G, E->H, GH->C, B->A} 5/9

Paso 3 (eliminar atributos redundantes). Se chequean atributos redundantes en las dependencias con más de un atributo del lado izquierdo: CD->E, GHD->E y GH->C E no está en C+ ni en D+, por lo tanto no hay atributos redundantes en CD->E. E no está en HD+ ni en GD+ ni en GH+, por lo tanto no hay atributos redundantes en GHD->E. C no está en G+ ni en H+, por lo tanto tampoco hay atributos redundantes en GH->C. o hay atributos redundantes en F. Paso 4 (eliminar dependencias redundantes). GHD+ respecto a F (GHD->E) = {G, H, D, C, E}, por lo que GHD->E es redundante y se elimina. Resultado: F = {B->D, CD->E, E->G, E->H, GH->C, B->A} (c). Aplicamos la siguiente propiedad vista en teórico: D = (R, R2) de R tiene JSP respecto a F sobre R si y solo si: - la df (R R2) (R - R2) está en F+ ó - la df (R R2) (R2 - R) está en F+ En este caso (R R2) = {B, E} BE es clave así que BE -> R R2 y BE-> R2 R están ambas en F+. Por lo tanto la descomposición tiene JSP. 2. B->A se proyecta en R, y como A es un atributo no primo y B es parte de una clave, esta dependencia viola 2F, por lo que R está en F. (d) Aplicamos el algoritmo visto en el teórico. D:= {R}, R no está en BCF, B->D viola BCF porque B no es superclave. D:= {R(B, D), R2(A, B, C, E, G, H)}, R está en BCF por tener dos atributos. R2 no está en BCF porque E->G viola BCF. D:= {R(B, D), R2(E, G), R22(A, B, C, E, H)}, R2 está en BCF por tener dos atributos. En R22 E->H viola BCF. D:= {R(B, D), R2(E, G), R22(E, H), R222(A, B, C, E)}, R22 está en BCF por tener dos atributos. En R222 B->A viola BCF. D:= {R(B, D), R2(E, G), R22(E, H), R222(A, B), R2222(B, C, E)}, R222 está en BCF. En R2222 E->C viola BCF. D:= {R(B, D), R2(E, G), R22(E, H), R222(A, B), R2222(C, E), R22222(B, E)}, R2222 y R22222 están ambas en BCF por tener dos atributos. Resultado {R(B, D), R2(E, G), R3(E, H), R4(A, B), R5(C, E), R6(B, E)} CD->E, GH->C y GHD->E no están en {B->D, E->G, E->H, B->A, E->C}+ por lo que no se preservan las dependencias. 6/9

Parte 4 Optimización (25 puntos) Ejercicio 4. (5 pts). Dado el siguiente esquema: BOLETOS ( roboleto, IdParadaSube, Fecha, Compañia, Linea) PARADAS ( IdParada, CoordX, CoordY, Calle ) Π IdParada (BOLETOS) Π IdParada (PARADAS) y la siguiente consulta: SELECT * FROM BOLETOS B, PARADAS P WHERE P.IdParada = B.IdParadaSube AD B.Linea = '7' a) Dar 2 planes lógicos posibles para la consulta. b) Dar un plan físico asociado a cada plan lógico dado. c) Calcular los costos de los planes físicos dados y compararlos. o olvidar considerar los costos de grabar para los resultados intermedios. Considere que se dispone de 3 buffers. Tabla Columna Valores distintos Boletos IdParadaSube 000 Boletos Linea 20 (distr. uniforme) Paradas IdParada 000 Tabla Cant. tuplas Factor de bloqueo Paradas 000 4 Boletos 0000 5 Paradas >< Boletos 3 Indice Tabla/Atributo Tipo Cant. niveles Parada_IdParada Paradas/IdParada Primario Boleto_Linea Boletos/Linea Secundario B+ a) Plan lógico : Plan lógico 2: >< σ B.Linea = '7' >< σ B.Linea = '7' Paradas P Boletos B Boletos B Paradas P 7/9

b) Plan físico : Plan lógico 2: Bucle anidado sin utilizar índice Selección por búsqueda lineal Selecc x índice sec (boletos_linea) Paradas P Join índice primario (Parada_IdParada) Boletos B Boletos B Paradas P c) Costo Plan : C(seleccion) = x + selección = + 500 = 50 C(grabar) = b seleccion = seleccion / factor de bloqueo = 500 / 5 = 00 C(join) = b seleccion + b seleccion * b paradas = 00 + 00 * 250 = 2500 Aclaración: seleccion = Boletos / V(linea, Boletos) = 0000 / 20 = 500 Ctotal = 2570 Costo Plan 2: C(join) = b R + n R * (x + ) = 2000 + 0000 * 2 = 22000 C(grabar) = b join = join / factor de bloqueo = 0000 / 3 = 3334 C(selección) = b join = 3334 Aclaración: join = A = 0000, porque IdParada es clave en Paradas y clave foránea en Boletos Ctotal = 28668 Vemos que el Plan es menos costoso que el Plan 2. Ejercicio 5. (0 pts). Dadas las siguientes transacciones: T: r(x) w(x) r(y) w(y) r(z) w(z) c T2: w2(z) r2(y) w2(y) c2 a) Marcar en el cuadro con S o si cada propiedad es cumplida o no por cada historia dada. Ser Rec EAC Estr r(x) w2(z) w(x) r(y) w(y) r(z) w(z) r2(y) w2(y) c c2 r(x) w(x) r(y) w2(z) r2(y) w(y) r(z) w(z) w2(y) c2 c S w2(z) r2(y) r(x) w(x) r(y) w(y) w2(y) c2 r(z) w(z) c S S otación: Ser Serializable Rec Recuperable EAC Evita Abortos en Cascada Estr Estricta 8/9

b) Dar un historia entrelazada de T y T2 con bloqueos y desbloqueos, tal que las transacciones sigan 2PL. Utilizar bloqueos de escritura y de lectura. Decir si la historia es serializable, justificando. H: rl(x) r(x) wl(x) w(x) wl2(z) w2(z) rl2(y) r2(y) wl2(y) w2(y) u2(z) u2(y) rl(y) r(y) wl(y) w(y) rl(z) r(z) wl(z) w(z) u(y) u(z) c c2 La historia es serializable, ya que toda historia formada por transacciones que siguen 2PL es serializable. 9/9