Pauta Certamen 2 de Bases de Datos II Primer Semestre 2013 Profesora: Loreto Bravo La prueba tiene un total de 30 puntos más 5 puntos bonus. 1. Diga cuales son las relaciones de poder expresivo entre los lenguajes dados en cada una de las partes de esta pregunta. Diga si son equivalentes, si uno domina al otro o si no hay relación de dominancia entre ellos y justifique sus respuestas. En todas las preguntas puede asumir que los lenguajes están escritos en forma normal: Π1 . . . Πn σ1 . . . σm (R1 × . . . × Rl ). Lo único que varı́a entre los ejemplos son las condiciones de selección. (a) [10 puntos] Asuma que el dominio de los atributos es infinito, ordenado y que, por lo tanto las comparaciones =, 6=, ≤ y ≥ están definidos. 1. S= PC: donde las operaciones de selección son solo de dos formas: σA=c y σA=B donde A y B son atributos y c es una constante. 2. S6= PC: S= PC, más σA6=c y σA6=B donde A y B son atributos y c es una constante. 3. S≤ PC: S= PC, más σA≤c , σA≥c , σA≤B y σA≥B donde A y B son atributos y c es una constante. 4. S6=,≤ PC: S= PC, más σA6=c , σA6=B , σA≤c , σA≥c , σA≤B y σA≥B donde A y B son atributos y c es una constante. Solución: Esta es la solución para las partes (a) y (b) donde la posición (Li , Lj ) contiene v si Li v Lj y 6v si Li 6v Lj : S= PC S6= PC S≤ PC S6=≤ PC S=∨ PC S6=∨ PC S≤∨ PC S6=≤∨ PC S= PC v v v v v v v S6= PC 6v(Q1) 6v(Q2) v 6v(Q1) v 6v(Q2) v S≤ PC 6v(Q3) 6v(Q3) v 6v(Q3) 6v(Q3) v v S6=≤ PC 6v(Q1) 6v(Q3) 6v(Q2) 6v(Q1) 6v(Q3) 6v(Q2) v S=∨ PC 6v(Q4) 6v(Q4) 6v(Q4) 6v(Q4) v v v S6=∨ PC 6v(Q1) 6v(Q4) 6v(Q2) 6v(Q4) 6v(Q1) 6v(Q2) v S≤∨ PC 6v(Q3) 6v(Q3) 6v(Q4) 6v(Q4) 6v(Q3) 6v(Q3) v S6=≤∨ PC 6v(Q1) 6v(Q3) 6v(Q2) 6v(Q4) 6v(Q1) 6v(Q3) 6v(Q2) Todas las relaciones v se demuestran en forma trivial. Por lo tanto sólo es necesario justificar las relaciones 6v dando un ejemplo de una consulta que no puede ser reescrita. A continuación se dan algunos ejemplos de consultas que justifican las relaciones. Q1: σA6=c R, donde A es un atributo y c es una constante en dom. Esta consulta pertenece a los lenguajes S6= PC, S6=≤ PC, S6=∨ PC y S6=≤∨ PC y no puede ser reescrita en S= PC ni en S=∨ PC ya que puede requerir infinitas disyunciones de igualdades. 1 Certamen 2 11 de julio, 2013 Q2: σA6=B R donde A y B son atributos en R. Esta consulta pertenece a los lenguajes S6= PC, S6=≤ PC, S6=∨ PC y S6=≤∨ PC; y no puede ser reescrita en una consulta de S≤ PC o S≤∨ PC ya que se requerirı́an infinitas disyunciones asignando todos los posibles valores a A y B de dom que hacen que se cumpla la condición de desigualdad. Q3: σA≥c R, donde A es un atributo y c es una constante en dom. Esta consulta pertenece a los lenguajes S≤ PC, S6=≤ PC, S≤∨ PC y S6=≤∨ PC; y no puede ser reescrita en S= PC, S6= PC, S=∨ PC, ni en S6=∨ PC ya que puede requerir infinitas disyunciones de igualdades. Q4: σA=c∨B=d R donde A, B son atributos y c, d constantes en dom. Esta consulta pertenece a los lenguajes S=∨ PC, S6=∨ PC, S≤∨ PC y S6=≤∨ PC; y no puede ser reescrita en S= PC, S6= PC, S≤ PC, ni en S6=≤ PC ya que puede requerir infinitas selecciones en S= PC, o puede requerir infinitas disyunciones de igualdades. (b) [10 puntos] Asuma que el dominio de los atributos es infinito, ordenado y que, por lo tanto las comparaciones =, 6=, ≤ y ≥ están definidos. 1. S= PC 2. S6= PC 3. S≤ PC 4. S6=,≤ PC 5. S= PC∨ : S= PC más ∨ en la selección. 6. S6= PC∨ : S6= PC más ∨ en la selección. 7. S≤ PC∨ : S≤ PC más ∨ en la selección. 8. S6=,≤ PC∨ : S6=,≤ PC más ∨ en la selección. Solución: Ver la solución a la parte (a). (c) [5 puntos (bonus)] Si consideramos que el dominio de cada atributo es finito, algunas de las relaciones de poder expresivo de la parte (1a) cambian. De un ejemplo de una relación que cambia, diga cuál es la nueva relación y explique por qué. Solución: Considere, por ejemplo, el dominio finitio {1, 2, 3, 4}. La consulta σA6=1 R puede ser reescrita como σA=2∨A=3∨A=4 R. Si generalizamos, toda consulta en S6= PC puede ser reescrita como una consulta en S= PC by replacing in a query Π1 . . . Πn σ1 . . . σm (R1 × . . . × Rl ) in S6= PC, every σA6=c by σ(W A=d) d∈(dom\{c}) and σA6=B by σ(W c∈dom ( W d∈(dom\{c}) A=c∧B=d)) Luego, las conjunciones pueden ser reemplazadas distribuyendo las disyunciones y considerando que σA=c∧B=d ≡ σA=c σB=d Página 2 de 3 Pase a la siguiente página. . . Certamen 2 11 de julio, 2013 2. Una red social almacena información de colaboración entre grupos de investigación. Para esto utiliza una tabla Rel con sort(Rel) = [Ins1, Ins2] contiene una tupla (x, y) si los institutos de investigación x e y colaboran entre ellos. Es común que cuando un instituto desea contactar a otro instituto, busque una cadena de contacto a través de otros institutos con los que colabora y las colaboraciones que ellos tienen. (a) [5 puntos] Escriba en Datalog un programa que calcule en forma recursiva para toda institución las instituciones con las que se puede colaborar utilizando la red de contactos que ya tienen las instituciones RedContacto(x, y). También tome en cuenta que si (x, y) ∈ Rel entonces también es necesario considerar que (y, x) ∈ Rel. Solución: Rel(y,x) :- Rel(x,y). Rel(x,x) :- Rel(x,y). RedContacto(x,y) :- Rel(x,y). RedContacto(x,z) :- Rel(x,y), RedContacto(y,z). (b) [5 puntos] ¿Que contiene RedContacto para la siguiente tabla Rel: Ins1 Ins2 UdeC PUC PUC UChile UChile UFRO UBB UChile UChile UBB Solución: La tabla contiene todas las combinaciones de {UdeC, PUC, UChile, UFRO, UBB} Página 3 de 3 Fin del certamen.