Bases de Datos
Práctico 2: Lenguajes de Consulta Puros

G. Saiz - N. Wolovick

  1. A partir de los diagramas ER de ejercicio 3 y 4 del práctico 1, obtenga y optimice los esquemas de relación.

  2. Sean $R(ABC)$ y $S(BCD)$ dos esquemas de relación, con las siguientes relaciones $r$ y $s$ definidas sobre $R$ y $S$ respectivamente.

    A B C
    a b c
    d b c
    b b f
    c a d
    B C D
    b c d
    b c e
    a d b

    Calcular las siguientes expresiones del álgebra relacional:

    1. $\Pi_{BC}(r) - \Pi_{BC}(s)$
    2. $\sigma_{B=b}(r)$
    3. $r\Join s$
    4. $r \times s$
    5. $s \div k$ con $k \in K(CD)$ y $k=\{(c,e),(c,d)\}$

  3. Sea $X$ un subconjunto de $R$ y sean $r$ y $s$ relaciones sobre $R$. Pruebe o encuentre un contra ejemplo para las siguientes afirmaciones:
    1. $\Pi_{X}(r\cap s) = \Pi_{X}(r) \cap \Pi_{X}(s)$
    2. $\Pi_{X}(r-s) = \Pi_{X}(r) - \Pi_{X}(s)$
    3. $\Pi_{X}(r\cup s) = \Pi_{X}(r) \cup \Pi_{X}(s)$

  4. Sean $r(R), s(S)$ y $t(T)$ relaciones, probar las siguientes afirmaciones:
    1. $(r \Join s) \Join t = r \Join (s \Join t)$
    2. $A \in R,\ \ \sigma_{A=a}(r \Join s) = \sigma_{A=a}(r) \Join s$
    3. $R \cap S = \emptyset \ \ \ (r \Join s) \div s = r$

  5. Para dos relaciones $r(R)$ y $s(S)$, $X \subseteq R$ y $X \subseteq S$, con $X=A_{1}\ldots A_{k}$ dar una expresión en el cálculo relacional de tuplas para definir las operaciones $\Pi_{X}(r)$, $\sigma_{X=a_{1}\ldots a_{k}}(r)$ y $r\Join s$.

  6. El siguiente es un esquema de relación para una base de datos de una biblioteca:

    LIBRO(nomLibro,genero)
    EDPOR(nomLibro, nomEditorial,nroEdicion,nroPaginas)
    ESCPOR(nomLibro,nomAutor)
    AUTOR(nomAutor,nacionalidad)

    Responder a los siguientes enunciados en los tres lenguajes de consultas puros vistos en clase:

    1. Nombre de los libros escritos por Borges.
    2. Nombre de los autores que han editado al menos un libro en Panamericana.
    3. Nombre de los autores que han editado todos sus libros en Panamericana.
    4. Nombre de los libros del género novela escritas por autores argentinos.
    5. Nombre de los libros editados por El Ateneo que no son obras de teatro.

  7. Expresar en álgebra relacional las siguientes consultas:
    1. $\{ t^{nomLibro} / (\exists s) (s \in EDPOR \wedge t[nomLibro]=s[nomLibro]
\wedge s[nroPaginas]>500) \}$
    2. $\{ t^{nomAutor} / (\exists s) (s \in ESCPOR \wedge t[nomAutor]=s[nomAutor] \wedge$
      $\neg(\exists u)(u \in LIBRO \wedge s[nomLibro]=u[nomLibro] \wedge
u[genero]=\mbox{'Cuento infantil'})) \}$

  8. Expresar en cálculo relacional de tuplas y cálculo relacional de dominios:
    1. $\Pi_{nomLibro}(LIBRO) -
\Pi_{nomLibro}(\sigma_{nomEditorial=\mbox{'TusQuets'}}(EDPOR))$
    2. $\Pi_{nomLibro}((\sigma_{nacionalidad=\mbox{'Ingles'}}(AUTOR)) \Join ESCPOR)$

  9. Dado el modelo relacional de los Bares, Bebedores y Cervezas, responder las consultas que se presentan debajo en álgebra relacional.

    ESCLIENTEDE(bebedor,bar)
    PREFIERE(bebedor,cerveza)
    VENDE(bar,cerveza)

    1. Clientes que frecuentan al menos un bar en el que sirven cervezas que él prefiere.
    2. Clientes que sólo frecuentan bares que venden cervezas que él prefiere.
    3. Clientes que no frecuentan bares en los cuales se venden cervezas que él prefiere.
    4. Clientes de todos los bares.
    5. Clientes de todos los bares que venden todas las cervezas que prefiere Jn.
    6. Clientes de algún bar que no venden ninguna de las cervezas que prefieren.

  10. Decidir si las siguientes consultas pertenecen al cálculo de dominios safe.
    1. $r(x,y) \vee \neg s(x,y)$
    2. $(\exists x)(\neg r(x,y) \wedge s(z) \wedge z=y)$
    3. $(\neg r(x,y) \wedge y=x) \vee s(x,y)$
    4. $r(x,y) \wedge z=y \wedge w=z \wedge \neg s(z,w)$

  11. Dado el esquema de relación EMP(codigo,sueldo) y la consulta ``los empleados que más ganan'', expresarla en:
    1. Cálculo de dominios.
    2. Algebra relacional.
    3. Cálculo de dominios safe.

  12. Dar una consulta sobre algún esquema de relación que sea domain independent sin ser safe. ¿Podría reescribir la consulta de tal manera que sí resulte safe?

  13. Demostrar que toda consulta del álgebra relacional es expresable en cálculo de tuplas.



bdd@hal.famaf.unc.edu.ar