Segundo Parcial de Fundamentos de Base de Datos



Documentos relacionados
Práctico 6 Diseño Relacional

Segundo Parcial de Fundamentos de Base de Datos

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero Solución

Curso: Base de Datos Distribuidas. Unidad 3: Optimización de las Estrategias de Acceso. M. en C. José Mario Martínez Castro

Primer Parcial de Fundamentos de Base de Datos

Dep. Multivaluadas y Cuarta F.N.

FUNDAMENTOS DE BASES DE DATOS. Examen Julio Solución

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

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

Primer Parcial de Fundamentos de Base de Datos

Teórico 9 Del MER al MR

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES

Dependencias Funcionales. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

FUNDAMENTOS DE BASES DE DATOS. Examen Julio 2002

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

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

4.Diseño de Bases de Datos (I)

Ejercicio Nº 3: Realizar aumentos en una Tabla de Sueldos

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

Tema 6: Teoría de la Normalización

Modelos y Bases de Datos

Base de datos relacional

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Primer Parcial de Fundamentos de Base de Datos

LABORATORIO Nº 3 PRÁCTICA DE FUNCIONES EN MICROSOFT EXCEL

El rincón de los problemas

4. Modelo Relacional: Manipulación de los datos.

Primer Parcial de Fundamentos de Base de Datos

Ing. YIM ISAIAS APESTEGUI FLORENTINO Tema: Normalización

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN)

VI Olimpiada de Informática del estado de Guanajuato Solución Examen Teórico

AMPLIACIÓN DE MATEMÁTICAS. REPASO DE MATEMÁTICAS DISCRETA. CONGRUENCIAS. En el conjunto de los números enteros

Primer Parcial de Programación 3 (1/10/2009)

Espacios generados, dependencia lineal y bases

PREVENCIÓN DE DAÑOS EN TEXAS

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

FUNDAMENTOS DE BASES DE DATOS. Examen Febrero 2003

Matrices Invertibles y Elementos de Álgebra Matricial

Base de datos en Excel

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

Estructuras de Datos y Algoritmos

Es una persona que ayudará a que los derechos de las personas con discapacidad se hagan realidad

Partida doble. Veamos los siguientes ejemplos:

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

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

Álgebra Relacional. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Fac. Ciencias, UNAM / 1

Módulo 9 Sistema matemático y operaciones binarias

Figura 4.1 Clasificación de los lenguajes de bases de datos

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

UNIDAD 3 ASPECTOS ASOCIADOS CON BASES DE DATOS. Diseno Físico de Bases de Datos Objetivo. 2.2 Visión General del Procesamiento de Consultas

Inter American Accreditation Cooperation. Grupo de prácticas de auditoría de acreditación Directriz sobre:

PRESENTACIÓN 8.- IMPORTANCIA DE LA CONTABILIDAD

Estructuras de Datos y Algoritmos. Árboles de Expresión

El modelo relacional

Registro Unificado de Solicitantes. Guía de Usuario

8º Estudio sobre el secretariado en España El perfil

3 POLINOMIOS Y FRACCIONES ALGEBRAICAS

Diseño Estructurado de Algoritmos

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

masterunir FORMULARIO DE SOLICITUD DE ADMISIÓN Solicitud de admisión Nombre: Solicita plaza para máster:

BASE DE DATOS RELACIONALES

Normalización de una Base de Datos. Normalización de la BD (precio fijo)

Al ingresar pueden consultar sala, ver las reservaciones que tienen asignadas y reservar equipos

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Gestión de Permisos. Documento de Construcción. Copyright 2014 Bizagi

Guías de ayuda para la configuración de la privacidad y seguridad de las redes sociales

DUDAS DE ACCESO / PROBLEMAS DE ACCESO MÁS FRECUENTES

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

USO SEGURO DE LOS MEDICAMENTOS LMCV

6.1. Conoce la papelera

ESPOCH ESCUELA DE MEDICINA HERNANDEZ MAYRA FORMULAS Y DUNCIONES BASICAS ESPOCH

Qué son los monomios?

Bases de Datos 2. Teórico

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Bases de Datos 2. Teórico

Comente: Los bancos siempre deberían dar crédito a los proyectos rentables. Falso, hay que evaluar la capacidad de pago.

Normalización. Carlos A. Olarte Bases de Datos I

Cómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO

Divisibilidad y números primos

CAPÍTULO 10 Aplicaciones de la Derivada a Funciones Económicas

Matrices: Conceptos y Operaciones Básicas

Modelos y Bases de Datos

MÓDULO ACTIVO FIJO. Versión 3.0 CAPACITACION USUARIOS FINALES SIGI

OPTIMIZACION DE CONSULTAS A BASES DE DATOS RELACIONALES

MEDICION DE LA CREACIÓN DE VALOR ECONOMICO EN LA EMPRESA

NIFBdM C-7 OTRAS INVERSIONES PERMANENTES

Apuntes Recuperación ante Fallas - Logging

Aplicaciones de Bases de Datos con Delphi

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

Consultas con combinaciones

CAPITULO VI CONCLUSIONES. Al haber analizado los conceptos presentados en este trabajo, pudimos llegar a la

ENSAYOS CLÍNICOS. Guía para padres y tutores

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos

FORMA CANONICA DE JORDAN Y ECUACIONES DIFERENCIALES LINEALES A COEFICIENTES CONSTANTES

INFERENCIA ESTADISTICA: CONTRASTE DE HIPÓTESIS

Transcripción:

Segundo Parcial de Fundamentos de Base de Datos Ejercicio 1 (12 puntos) Diciembre 2008 a) Dado el siguiente MER, deducir el esquema relacional que le parezca más adecuado. Se deben indicar: las tablas, para cada tabla la clave primaria y otras dependencias que se cumplan, y las dependencias de inclusión. nombre-cli ci-cli telefono cod-act nombre-act ACTIVIDADES desc-act OFRECE ACTIVIDAD 1 1 nombre-ce dir CETROS ESTETICOS telef* email* TRABAJA CLIETES REALIZA COFORMA TRATAMIETOS OFRECE TRATAMIETO TRABAJA EXCLUS nombre-emp dir-emp ci-emp PERSOAL telefono CC serie nro tarea fecha hora Datos * duracion cod-trat observacion nombre-trat desc-trat ESPECIALISTA 1 especialidad O ESPECIALISTA RE: - En una misma fecha y hora, un mismo cliente no puede realizar más de una actividad-tratamiento. - Especialista oespecialista = b) Decir en qué forma normal se encuentra el esquema obtenido en la parte a. c) Ahora suponga que se cumplen las siguientes propiedades: - La hora en que se realiza un tratamiento determina su duración. - La dirección de un empleado determina la serie de su credencial cívica. Decir en qué forma normal se encuentra el esquema obtenido en la parte a. d) Considerando las condiciones impuestas en la parte c, llevar el esquema relacional a BCF. Decir si se pierden dependencias funcionales. 1

Ejercicio 1 - Solución (12 puntos) Parte a) CLIETES (ci-cli, nombre-cli, telefono) ci-cli nombre-cli, telefono ACTIVIDADES (cod-act, nombre-act, desc-act) cod-act nombre-act, desc-act CETROS-ESTETICOS (nombre-ce, dir) nombre-ce dir CE-TELEF (nombre-ce, telef) CE-EMAIL (nombre-ce, email) PERSOAL (ci-emp, nombre-emp, dir-emp, telefono, cc-serie, cc-nro) cc-serie, cc-nro ci-emp ci-emp nombre-emp, dir-emp, telefono, cc-serie, cc-nro ESPECIALISTAS (ci-emp, especialidad, nombre-ce) ci-emp especialidad, nombre-ce O_ESPECIALISTAS (ci-emp) TRATAMIETOS (nombre-ce, cod-trat, nombre-trat, desc-trat) nombre-ce, cod-trat nombre-trat, desc-trat TRABAJA (nombre-ce, ci-emp, tarea) nombre-ce, ci-emp tarea OFRECE-ACTIVIDAD (cod-act, nombre-ce) COFORMA (cod-act, nombre-ce, cod-trat) REALIZA (ci-cli, fecha, hora, nombre-ce, cod-trat, ci-emp, duracion, observacion, cod-act) ci-cli, fecha, hora nombre-ce, cod-trat, cod-act, ci-emp, duracion, observacion Observacion: todas las dfs generadas son a partir de los atributos claves de cada esquema, excepto PERSOAL que ademas tiene una df: (cc-serie, cc-nro ci-emp) con lo cual (cc-serie, ccnro) tambien es clave del esquema pues a partir de ellos se llega a la clave ci-emp. Inclusiones 1. Π nombre-ce (CE-telef) Π nombre-ce (Centros-Esteticos) 2. Π nombre-ce (CE-email) Π nombre-ce (Centros-Esteticos) 3. Π ci-emp (Especialistas) Π ci-emp (Personal) 2

4. Π ci-emp (o_especialistas) Π ci-emp (Personal) 5. Π ci-emp (Trabaja) Π ci-emp (o_especialista) 6. Π nombre-ce (Trabaja) Π nombre-ce (Centros-Esteticos) 7. Π nombre-ce (Especialista) Π nombre-ce (Centros-Esteticos) 8. Π cod-act (Ofrece-Actividad) Π cod-act (Actividades) 9. Π cod-act (Actividades) Π cod-act (Ofrece-Actividad) 10. Π nombre-ce (Ofrece-Actividad) Π nombre-ce (Centros-Esteticos) 11. Π cod-act (Conforman) Π cod-act (Actividades) 12. Π cod-trat, nombre-ce (Conforman) Π cod-trat, nombre-ce (Tratamientos) 13. Π cod-trat, nombre-ce (Tratamientos) Π cod-trat, nombre-ce (Conforman) 14. Π nombre-ce (Tratamientos) Π nombre-ce (Centros-Esteticos) Parte b) En que forma normal se encuentra? Está en 1F pues todos los atributos de los esquemas no son ni multivaluados ni compuestos. Está en 2F pues ningún atributo no primo depende parcialmente de una clave(*) Esta en 3F pues todas las dependencias funcionales cumplen con que sus lados izquierdos son claves (*) => son superclaves. Y sabiamos que estaba en 2F. En realidad 3F pide menos que eso (ningun atributo no primo de R depende transitivamente de una clave de R y cumple 2F), en particular si cumple lo anterior (los lados izquierdos son superclaves) => esta en BCF o tiene dmv => esta 4F (*) ver la observacion final de la parte a) sobre las claves Parte c) hora duracion dir-emp cc-serie Esta en 1F pues el esquema REALIZA no cumple 2F por la dependencia hora duracion, donde hora es parte de la unica clave (ci-cli, fecha, hora) y duracion es un atributo no primo (no es parte de ninguna clave). 3

Parte d) Considerando las df de la parte c) llevar a BCF, y decir si se pierden dependencias funcionales CLIETES (ci-cli, nombre-cli, telefono) ACTIVIDADES (cod-act, nombre-act, desc-act) CETROS-ESTETICOS (nombre-ce, dir) ESPECIALISTAS (ci-emp, especialidad, nombre-ce) O_ESPECIALISTAS (ci-emp) TRATAMIETOS (nombre-ce, cod-trat, nombre-trat, desc-trat) TRABAJA (nombre-ce, ci-emp, tarea) Sus df tienen por lados izquierdos las claves => superclaves => estan en BCF PERSOAL (ci-emp, nombre-emp, dir-emp, telefono, cc-serie, cc-nro) Posee las siguientes df: cc-serie, cc-nro ci-emp ci-emp nombre-emp, dir-emp, telefono, cc-serie, cc-nro dir-emp cc-serie Las dos primeras df tienen por lados izquierdos claves => BCF En la tercer df el lado izquierdo no es superclave pero el lado derecho es un atributo primo (cc-serie, cc-nro es clave en el esquema) => La máxima forma normal que cumple el esquema es 3F => viola BCF REALIZA (ci-cli, fecha, hora, nombre-ce, cod-trat, ci-emp, duracion, observacion, cod-act) Posee las siguientes df: ci-cli, fecha, hora nombre-ce, cod-trat, cod-act, ci-emp, duracion, observacion hora duracion La primera tiene del lado izquierdo una clave => BCF La segunda tiene un atributo no primo duracion que depende parcialmente de una clave pues hora es parte de la clave (ci-cli, fecha, hora es clave del esquema) => Viola 2F => viola BCF Entonces analizamos el esquema PERSOAL (dir-emp cc-serie ) es la df que hace que PERSOAL viole BCF PERSOAL (ci-emp, nombre-emp, dir-emp, telefono, cc-serie, cc-nro) => PERSOAL_1 (dir-emp, cc-serie) PERSOAL_2 (ci-emp, nombre-emp, dir-emp, telefono, cc-nro) 4

Hay que ver la forma normal de cada subsquema para saber si debemos seguir descomponiendo o no. Para eso analizamos cada subesquema con las df que se proyectan en c/u. Las dfs originales eran: cc-serie, cc-nro ci-emp ci-emp nombre-emp, dir-emp, telefono, cc-serie, cc-nro dir-emp cc-serie PERSOAL_1 (dir-emp, cc-serie) dir-emp cc-serie esta en BCF por ser dir-emp clave PERSOAL_2 (ci-emp, nombre-emp, dir-emp, telefono, cc-nro) ci-emp nombre-emp, dir-emp, telefono, cc-nro esta en BCF por ser ci-emp clave del subesquema o hay mas dfs que se proyecten y los subesquemas generados estan en BCF Entonces analizamos el esquema REALIZA (hora duracion) es la df que hace que realiza viole BCF REALIZA (ci-cli, fecha, hora, nombre-ce, cod-trat, ci-emp, duracion, observacion, cod-act) => REALIZA_1(hora, duracion) REALIZA_2(ci-cli, fecha, hora, nombre-ce, cod-trat, ci-emp, observacion, cod-act) Hay que ver la forma normal de cada subsquema para saber si debemos seguir descomponiendo o no. Para eso analizamos cada subesquema con las df que se proyectan en c/u. Las dfs originales eran: ci-cli, fecha, hora nombre-ce, cod-trat, cod-act, ci-emp, duracion, observacion hora duracion REALIZA_1(hora, duracion) hora duracion Esta en BCF por ser dir-emp clave REALIZA_2(ci-cli, fecha, hora, nombre-ce, cod-trat, ci-emp, observacion, cod-act) ci-cli, fecha, hora nombre-ce, cod-trat, cod-act, ci-emp, observacion esta en BCF por ser ci-cli, fecha, hora clave del subesquema o hay mas dfs que se proyecten y los subesquemas generados estan en BCF Manteniendo todos los esquemas originales y descomponiendo PERSOAL en PERSOAL_1 y PERSOAL_2, REALIZA en REALIZA_1 y REALIZA_2 Se llega al esquema relacional en BCF Se pierden df? A = La union de las df proyectadas en PERSOA_1 y PERSOA_2 = { dir-emp cc-serie, ci-emp nombre-emp, dir-emp, telefono, cc-nro } Calculo 5

(cc-serie, cc-nro) A + = {cc-serie} => se pierde la df cc-serie, cc-nro ci-emp Ejercicio 2 (12 puntos) Dado el esquema relación R(A,B,C,D,E,G,H) y el conjunto de dependencias F sobre R. F = {AB CE, B GH, D A, H BD} Para cada una de las siguientes afirmaciones indicar si son verdaderas o falsas. Justificar todas las respuestas: a) (BD) es clave de R según F. b) Las únicas claves de R según F son B y H. c) Sea F 1 = { AB C, AB E, B G, B H, D A, H B, H D}. F 1 es un cubrimiento minimal de F d) R esta en tercera forma normal con respecto a F. e) Π R1 F = {D A} siendo R1 (A,B,D,E) Ejercicio 2 (12 puntos) - Solución a) FALSO (BD) + F = {B,G,H,D,A,C,E} Por lo tanto (BD) es superclave de R según F. Pero no es minimal ya que B + F = {B,G,H,D,A,C,E}, o sea que (BD) no es clave. b) VERDADERO Por lo probado en la parte a) es posible afirmar que B es clave de R según F. H + F = {H,B,D,G,A,C,E}. Por lo tanto H es clave (es superclave y es un atributo único por lo tanto es minimal). Resta probar que son las únicas claves. Si existieran más claves deben pertenecer al conjunto (ACDEG), o sea este conjunto de atributos debe ser superclave. (ACDEG) + F = {A,C,D,E,G} R Por lo tanto O existen más claves, la afirmación es correcta. c) FALSO El conjunto F 1 no es minimal. En la dependencia AB C, el atributo A es redundante ya que B + F1 = {B,G,H,D,A,C,E} d) FALSO Dada la dependencia D A D no es superclave y A no es primo ya que las únicas claves son B y H (demostrado en parte b)) Por lo tanto viola las condiciones de 3F. R no esta en 3F e) FALSO B + F = {B,G,H,D,A,C,E}, por lo tanto B ADE Π R1 F Por lo tanto Π R1 F {D A} 6

Ejercicio 3 (10 puntos) Sea el esquema relación R (A,B,C,D,E,G,H). F es un conjunto de dependencias funcionales que se cumplen en R, tales que en todas ellas el lado derecho de la dependencia esta formado por un único atributo. Una persona P1 aplica un primer paso del algoritmo visto en el curso que permite obtener una descomposición de R en BCF obteniendo la siguiente descomposición: ρ1 = (R1(A,B,C),R2(A,B,D,E,G,H)). Una persona P2 aplica un primer paso del mismo algoritmo también sobre R obteniendo la siguiente descomposición: ρ2 = (R3(A,D,G),R4(D,E,A,B,C,H)) a) Sabiendo que todas las claves de R según F son de un único atributo dar una superclave de R según F que no tenga más de 4 atributos. Justificar su respuesta. b) Sea r una instancia de R y r 1 = Π R1 r r 2 = Π R2 r r 3 = Π R3 r r 4 = Π R4 r Determinar el resultado de la siguiente consulta: r 1 * r 2 * r 3 * r 4. Justificar su respuesta. Ejercicio 3 (10 puntos) - Solución a) Al obtener la persona P1 la descomposición ρ1 es posible afirmar que : AB C y/o AB DEGH F y violan las condiciones de BCF o sea AB no es superclave. Como F es un conjunto de dependencias tal que los lados derechos de F están formados por un único atributo. Por lo tanto AB C F y AB DEGH F. Al considerar la descomposición obtenida por P2 es posible afirmar que: AD G y/o AD EBCH F y violan las condiciones de BCF o sea AD no es superclave. Como F es un conjunto de dependencias tal que los lados derechos de F están formados por un único atributo. Por lo tanto AD G F y AD EBCH F. Como las claves de R según F están formadas por un único atributo y sabemos que AB y AD no son superclaves es posible afirmar que: A,B, D no son claves y no pertenecen a ninguna clave. Por lo tanto una posible superclave de R según F es : R {A,B,D} = CEGH También es posible afirmar que C y G no son claves ya que si alguna de ellas lo fuera también serán superclave AB y/o AD. Por lo tanto otra superclave es EH. b) El algoritmo visto en el curso que permite obtener una descomposición del esquema original en BCF garantiza que en cada paso se obtiene una descomposición con JSP. Por lo tanto ρ1 es una descomposición de R con JSP y por la definición de JSP se cumple que r 1 * r 2 = r. De la misma forma se cumple que r 3 * r 4 = r Por lo tanto r 1 * r 2 * r 3 * r 4 = r * r = r 7

Ejercicio 4 (11 puntos) Una Universidad esta haciendo un estudio para saber cuales son los sitios de mayor interés a nivel educativo, por lo cual registra datos sobre los sitios visitados por los estudiantes. Para ello registra en una base de datos la siguiente información: Estudiantes (ciestudiante, carrera, añoingreso) En esta tabla se registra para cada estudiante la carrera en la que esta anotado y el año que ingreso a la carrera. Cada estudiante puede cursar una única carrera, y al anotarse a la misma se le crea un usuario de red con su cedula de identidad. Sitios (URL, categoría, descripción) En esta tabla se registran todos los sitios visitados, una descripción de los mismos, y la categoría a la que pertenecen. Algunas de las posibles categorías son: Sin Clasificar (aun no se indicó la categoría del sitio), Instituciones Educativas, Congresos, etc. ResumenDeUso (ciestudiante, URL, tiempo, bajoinfo?) En esta tabla se registra el tiempo en horas, que un estudiante estuvo en un sitio y si en algún momento bajó información del mismo. π ciestudiante (ResumenDeUso) π ciestudiante (Estudiantes) π URL (ResumenDeUso) = π URL (Sitios) SELECT E.ciestudiante, S.URL FROM Estudiantes E, ResumenDeUso R, Sitios S WHERE R. ciestudiante = E. ciestudiante AD R.URL = S.URL AD E.carrera = Psicologia AD S.categoria = Instituciones Educativas Considere la siguiente información: Existen 5 carreras distintas. Los estudiantes se distribuyen en las distintas carreras de forma uniforme. El 50 % de los sitios registrados en la tabla correspondiente (sitios) se refieren a Instituciones Educativas y Congresos, distribuyéndose en forma uniforme. El 85 % de los estudiantes de la universidad que visitan sitios, lo hacen sobre sitios de Instituciones Educativas. Los cuales se distribuyen en forma uniforme entre las distintas carreras El tamaño de las tablas es el siguiente: o Estudiantes: 10000 tuplas o Sitios: 320 tuplas o ResumenDeUso: 15000 tuplas Los índices existentes son los siguientes: Indice Tabla/Atributo Tipo Indice_EstCIEst Estudiantes/ciestudiante Primario Indice_EstCarr Estudiantes/carrera Secundario Indice_EstAño Estudiantes/añoingreso Secundario Indice_SitioURL Sitios/URL Primario Indice_SitioCat Sitios/categoria Secundario Indice_ResTmp ResumenDeUso/tiempo Secundario 8

Se pide: a) Dar el árbol canónico correspondiente a la consulta b) Dar un plan lógico para la consulta, optimizado mediante las heurísticas vistas en el curso (todas). Justifique su respuesta c) Calcule los tamaños (cantidad de tuplas), sin considerar las proyecciones, de los resultados de las selecciones y los join s. d) Dar un plan físico para el plan lógico de la parte a), usando de manera eficiente los índices existentes. e) Suponga que la tabla Estudiantes solo contiene estudiantes de Psicología (la consulta SQL no requiere filtrar por carrera). Explique que cambiaria en los planes lógicos y físicos presentados en la parte b) y d) (dé los nuevos árboles lógico y físico). Justifique su respuesta Ejercicio 4 - Soluciones (11 puntos) a) árbol canónico Π E.ciestudiante, S.URL σ E.carrera = Psicologia AD S.categoria = Instituciones Educativas AD R.URL = S.URL AD R.ciestudiante = E.ciestudiante X X E R S b) plan lógico A partir del árbol canónico, sustituyendo la conjunción de selecciones por una cascada de selecciones, y bajando las selecciones lo máximo posible, quedaría: Π E.ciestudiante, S.URL σ R.URL = S.URL X σ E.ciestudiante = R.ciestudiante X σ S.categoria = Instituciones Educativas σ E.carrera = Psicologia E R S 9

A partir del anterior cambiando orden de las hojas de productos para que lados izquierdos sean mas chicos quedaría: Π E.ciestudiante, S.URL X σ E.ciestudiante = R.ciestudiante σ R.URL = S.URL X σ E.carrera = Psicologia σ S.categoria = Instituciones R E Educativas S A partir del anterior sustituyendo, los productos + selecciones por claves, por join s quedaría: Π E.ciestudiante, S.URL >< t4 t2 t3 >< σ E.carrera = Psicologia t1 σ S.categoria = Instituciones R E Educativas S c) Estimación de tamaños para joins y selecciones en el peor caso S = 320 E = 10000 R = 15000 t1 = 80 (El 50 % de los sitios registrados en la tabla sitios se refieren a Instituciones Educativas y Congresos, distribuyéndose en forma uniforme) 10

t2 = 150*85 = 12750 (Join entre t1 y R, y además se sabe que el 85 % de los estudiantes de la universidad que visitan sitios, lo hacen sobre sitios de Instituciones Educativas => solo el 85% de las tuplas de R se vincularan con el resultado t1) t3 = 10000/5 = 2000 (Existen 5 carreras distintas. Los estudiantes se distribuyen en las distintas carreras de forma uniforme) t4 = 12750/5 = 2550 (Join entre t2 y t3. Observar que t2 tiene el 85% de estudiantes que visitan sitios lo hacen sobre sitios de Instituciones Educativas, pero este 85 % se distribuyen en forma uniforme en las distintas carreras que son 5 => solo t2/5 se vincularan con t3) d) plan físico Join por bucle anidado sin índices (*) Join por bucle anidado sin índice Selección con índice sec. Indice_EstCarr Selección con indice R E sec. Indice_SitioCat S 11

e) Suponga que la tabla Estudiantes solo contiene estudiantes de Psicología (la consulta SQL no requiere filtrar por carrera). Explique que cambiaria en los planes lógicos y físicos presentados en la parte b) y d) (de los nuevos árboles lógico y físico). Justifique su respuesta o habría que hacer una selección sobre la tabla Estudiantes, por lo cual el Join que involucra Estudiantes (*) podría hacerse por bucle anidado con índice primario Indice_EstCIEst Plan Lógico Π E.ciestudiante, S.URL >< >< E σ S.categoria = Instituciones R Educativas S Plan Físico Join por bucle anidado con indice primario Indice_EstCiEst Join por bucle anidado sin índice E Selección con indice R sec. Indice_SitioCat S 12

Ejercicio 5 (11 puntos) Dada las siguientes transacciones: T1: r1(k), w1(k), w1(q), r1(q), w1(k), c1 T2: r2(q), w2(q), r2(k), w2(k), c2 a) Indicar si las siguientes historias son serializables, recuperables, seriales, estrictas y si evitan abortos en cascada. En cada caso justifique su respuesta. En caso de ser serializable, muestre una historia serial equivalente. i) H1: r1(k), w1(k), r2(q), w1(q), w2(q), r1(q), r2(k), w2(k), c2, w1(k), c1 ii) H2: r1(k), w1(k), w1(q), r1(q), r2(q), w2(q), w1(k), c1, r2(k), w2(k), c2 iii) H3: r1(k), w1(k), r2(q), w2(q), w1(q), r1(q), w1(k), c1, r2(k), w2(k), c2 b) Dar una historia de T1 y T2 con operaciones entrelazadas, recuperable y donde las transacciones sigan el protocolo 2PL básico. Es Serializable? Justifique. Ejercicio 5 - solucion (11 puntos) a) i) El grafo de seriabilidad tiene ciclos por tanto no es serializable. o es recuperable porque T2 lee k, dato escrito por T1 previamente y T2 comitea antes que T1. o es serial porque tiene operaciones entrelazadas. o es estricta porque al menos una transacción lee o escribe de una no confirmada. o evita abortos en cascada porque T1 lee de transacciones no confirmadas. ii) El grafo de seriabilidad no tiene ciclos (T1->T2) por tanto es serializable. Su historia serial equivalente es: H2 : r1(k), w1(k), w1(q), r1(q), w1(k), c1, r2(q), w2(q), r2(k), w2(k), c2 Es recuperable porque T2 lee q, dato escrito por T1 previamente y T1 comitea antes que T2. o es serial porque tiene operaciones entrelazadas. o es estricta porque al menos una transacción lee o escribe de una no confirmada. o evita abortos en cascada porque T2 lee de transacciones no confirmadas. iii) El grafo de seriabilidad tiene ciclos por tanto no es serializable. Es recuperable porque T2 lee k, dato escrito por T1 previamente y T1 comitea antes que T2. o es serial porque tiene operaciones entrelazadas. o es estricta porque al menos una transacción lee o escribe de una no confirmada. Evita abortos en cascada porque T1 sobreescribe el dato de q escrito por T2. b) Primero muestro la historia sin los locks: r1(k), w1(k), w1(q), r1(q), r2(q), w2(q), w1(k), c1, r2(k), w2(k), c2 Segundo muestro la historia solamente con las operaciones de lock/unlock: rl1(k), wl1(k), wl1(q), u1(q), rl2(q), wl2(q), u1(k), rl2(k), wl2(k), u2(q), u2(k) H5: rl1(k), r1(k), wl1(k), w1(k), wl1(q), w1(q), r1(q), u1(q), rl2(q), r2(q), wl2(q), w2(q), w1(k), u1(k), c1, rl2(k), r2(k), wl2(k), w2(k), u2(q), u2(k), c2 Es recuperable por T2 lee de T1 pero T1 confirma primero. Es serializable, me lo asegura el protocolo 2PL básico. 13