jueves, enero 26, 2012

Álgebra Relacional I - CBDS

Lección anterior: Esquema XML

Empezamos con un tema nuevo, muy interesante, importante y útil. Es el álgebra relacional, entender esto bien nos ayudará mucho a la hora de hacer consultas reales en una base de datos implementada, ya que el álgebra relacional se puede traducir directamente al lenguaje SQL.

Como siempre dice mi profesor: "Las bases de datos no están hechas para entrar información si no para sacar información". Claro que lo que él quiere decir es que lo más importante es la información que se puede extraer de una base de datos (véase minería de datos). Así que pongamos mucha atención a este tema; que yo personalmente, no me llevo bien con las consultas.

Veamos el material traducido del PDF:

 Una consulta (o expresión) en un conjunto de relaciones produce una relación como resultado.


Los ejemplos se realizan utilizando una base de datos del sistema de admisión de una universidad. El esquema es el siguiente:

Universidad(uNombre, estado, inscripciones)
Estudiante(eID, eNombre, GPA, tamañoEsc)
Aplica(eID, uNombre, especialidad, decision)

*Puedes pasar el cursor por las cursivas para ver una descripción

La consulta más simple es el nombre de una relación.
Usa los operadores para filtrar, combinar y extraer partes de relaciones.

Operador Selección: escoge ciertas filas.
    Estudiantes con GPA>3.7
        $ {\LARGE \sigma}_{\small GPA > 3.7} \, \, {\large Estudiante} $ 

    Estudiantes con GPA>3.7 y HS<1000
         $ {\LARGE \sigma}_{\small GPA>3.7 \; \wedge \; tamañoEsc<1000} \; {\large{Estudiante}} $

    Aplicaciones a Stanford para la especialidad CS
        $ {\LARGE \sigma}_{\small uNombre='Stanford' \; \wedge \; especialidad='CS'} \; {\large Aplica}$



Operador Proyección: escoge ciertas columnas.

Para seleccionar columnas y filas...
    ID y nombre de los estudiantes con GPA>3.7
        $ {\LARGE \pi}_{\small eID, \; eNombre} \; ({\LARGE \sigma}_{\small GPA>3.7} {\large \; Estudiante}) $

Expresiones generales de la Selección (selecciona filas) y la Proyección (selecciona columnas)...
 $ {\LARGE \sigma}_{\small cond} {\large (Expr)} $
 $ {\LARGE \pi}_{\small A_1,...,A_n} {\large (Expr)} $


Producto cruzado o Cartesiano: combinar dos relaciones
$ {\normalsize Estudiante \times{} Aplica } $

    Nombres y GPAs de los estudiantes con tamañoEsc>1000 que hayan aplicado a CS y
    hayan sido rechazados
    $ {\LARGE \pi}_{\small eNombre, \; GPA} {\large (} {\LARGE \sigma}_{\small Estudiante.eID=Aplica.eID \; \wedge \; tamañoEsc>1000 \; \wedge \; especialidad='CS' \; \wedge \; dec='R'} {\normalsize (Estudiante \times{} Aplica)} {\large )} $


*El Natural Join no se símboliza con el ínfinito, pero es lo más parecido que encontré en LaTeX.
  • Impone igualdad en todos los atributos con el mismo nombre
  • Elimina una copia de los atributos duplicados
    Nombres y GPAs de los estudiantes con tamañoEsc>1000 que hayan aplicado a una
    especialidad CS en universidades con inscripciones>20,000 y hayan sido rechazados
$ {\LARGE \pi} _{\small eNombre, GPA} {\LARGE (} $
$ \; \; {\LARGE \sigma}_{\small tamañoEsc>1000 \; \wedge \; especialidad='CS' \; \wedge \; dec='R' \; \wedge \; inscripciones>20,000} {\normalsize \; Estudiante \, \infty \, (Aplica \infty Universidad)} {\LARGE )} $

Natural Join no añade poder adicional al Álgebra Relacional, como podemos ver a continuación, éste operador se puede expresar en términos de otros operadores más básicos y sería lo mismo:

$ {\normalsize Exp_1 \infty Exp_2 \equiv} {\LARGE \; \pi}_{\small esquema(E1) \, \cup \, esquema(E2)} {\LARGE ( \sigma}_{\small E1.A1=E2.A1 \, \wedge \, E1.A2=E2.A2 \, \wedge \, ...} {\normalsize (Exp_1 \, \times{} \, Exp_2)} {\LARGE)} $


  • Operador básico implementado en los SGBD
  • Cuando se habla de "join" a menudo se refiere al theta join
$ {\normalsize Exp_1 \, \infty}_{\small \theta} {\normalsize \, Exp_2 \, \equiv \,} {\LARGE \, \sigma}_{\small \theta} {\normalsize (Exp_1 \times{} Exp2)} $

Operadores vistos hasta ahora: Selección, Proyección, Producto Cruzado, Natural Join, Theta Join



Descarga: Álgebra Relacional. Subtítulos.

Con el tema del cierre de Megaupload y las medidas que han tomado las otras páginas de hosting de archivos, ya no es seguro seguir subiendo los subtítulos a Mediafire, de hecho, leí que Mediafire está llamada a testificar al FBI dentro de los próximos 90 días. Si algo le pasa, moveré todo a otro servidor inseguro hasta que encuentre otra alternativa ¿tienes alguna idea?

No hay comentarios:

Publicar un comentario

¿Qué opinas?