UNIDAD 4: ALGEBRA RELACIONAL - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

UNIDAD 4: ALGEBRA RELACIONAL

Description:

Los modelos relacionales soportan un lenguaje de consultas simple y poderoso ... Los DBMS t picamente no hacen esto de manera autom tica, pero se puede forzar (Porque? ... – PowerPoint PPT presentation

Number of Views:478
Avg rating:3.0/5.0
Slides: 26
Provided by: and7176
Category:

less

Transcript and Presenter's Notes

Title: UNIDAD 4: ALGEBRA RELACIONAL


1
UNIDAD 4ALGEBRA RELACIONAL
  • UTN FRRe
  • Diseño de Base de Datos
  • Para Sistemas de Información

2
Lenguaje de Consulta Relacional
  • Lenguajes de ConsultaPermite la manipulacion y
    la recuperación de datos.
  • Los modelos relacionales soportan un lenguaje de
    consultas simple y poderoso
  • Fundamentos sólidos basados en la lógica
    relacional
  • Permite la fácil optimización
  • Lenguaje de Consulta ? Lenguaje de Programación
  • Los LCs no es Turing compatible (se espera que
    las próximas revisiones si lo sea) (carece de
    estructuras de programación)
  • Los LCs no esta diseñados para cálculos
    complejos.
  • Los LCs soportan en forma eficiente acceso a
    grandes cantidades de datos.

3
Lenguajes Formales de Consulta Relacional
  • Dos LC matemáticos forman la base de los
    lenguajes de consulta reales (ej. SQL)
  • Algebra relacional Mas operacional, muy util
    para representar planes de ejecución.
  • Cálculo relacional Permite a los usuarios
    describir que es lo que necesitan, en vez de
    definir como se computa (no-operacional,
    declarativo)
  • Entender las operaciones del algebra relacional
    es la clave para entender los lenguajes de
    consulta relacionales (SQL)

4
Algunas definiciones previas
  • Una consulta es aplicada a instancias y el
    resultado genera otra instancia.
  • Los esquemas de las relaciones de entrada son
    fijos (generalmente tablas). La consulta deberá
    funcionar sin importar la instancia de entrada.
  • El esquema resultante de una consulta es también
    fijo. Determinado por la definición de campos
    proyectados en la consulta.
  • Lenguaje posicional vs. Nombrado
  • La notación posicional es mas sencilla para
    definciones formales, la nombrada es de mas
    sencilla interpretación.
  • SQL usa ambas.

5
Ejemplo de Instancias
  • Tablas usadas
  • Marineros y Reservas
  • Usaremos notificacion posicional o nombrada, de
    acuerdo al caso
  • Asumiremos que los nombres de los campos en las
    consultas resultantes son heredados de los
    nombres de los campos de la consulta de entrada
    entrada. (sin necesidad de usar alias)

6
Algebra Relacional
  • Operaciones Básicas
  • Selección ( s )Selecciona un subconjunto de
    filas de una relación.
  • Proyección ( p ) Proyecta un subconjunto de
    atributos de una relación.
  • Producto Cruzado ( X ) Permite combinar dos
    relaciones.
  • Diferencia ( - ) Muestra las tuplas de la primer
    relación pero no en la seguna.
  • Unión ( U ) Muestra las tuplas de la primer
    relación y las de la segunda.
  • Operadores Adicionales
  • Intersección (n), junta(X), división(/),
    renombrado(?) No esenciales, pero muy útiles.
  • Como cada operación devuelve una relación, las
    operaciones pueden ser compuestas (El algebra
    relacional es cerrada)

7
Proyección
  • Borra los atributos que no estan en la lista de
    proyección.
  • El esquema del resultado contiene exactamente los
    campos enumerados en la lista, con los mismos
    nombres que tenían en la relación de entrada.
  • El operador de proyección debe eliminar los
    campos duplicados (Porque?)
  • Los DBMS típicamente no hacen esto de manera
    automática, pero se puede forzar (Porque?)

8
Selección
  • Selecciona filas que satisfagan una determinada
    condición.
  • No informa duplicados (porque?)
  • El esquema del resultado es identico al de la
    relación de entrada.
  • El resultado puede ser entrada de otra operación
    del algebra relacional (Principio de Composión de
    Operaciones)

9
Unión, Intersección y Diferencia de Conjuntos
  • Todas estas operaciones toman dos relaciones como
    argumentos de entrada, los cuales deben ser
    unión-compatibles
  • Misma cantidad de atributos.
  • Correspondencia entre tipos de datos según su
    posición ordinal.
  • Cúal es el esquema del resultado?

10
Producto Cruzado
  • Cada fila de S1 es apareada con cada fila de R1.
  • El esquema resultante tiene un campo por cada
    compo de S1 y R1, con nombres heredados si esto
    es posible.
  • ConflictoSi S1 y R1 tiene el mismo atributo sid.

Operación de renombrado
11
Juntas
  • Condición de Junta
  • El esquema resultante es el mismo que el producto
    cruzado.
  • Igual o menos filas que el producto cruzado.

12
Juntas
  • Equi-Junta Un caso especial de junta se produce
    cuando la condición de junta c contiene solo
    igualdades.
  • El esquema resultante es idem producto cruzado y
    junta visto anteriormente, pero solo una copia de
    los campos que cumplen la condición (sin
    duplicados)
  • Junta Natural Equi-Junta de todos los campos con
    el mismo nombre.

13
División
  • No soportada como operación primitiva, pero muy
    útil para resolver consultas tipo
  • Encuentre los marineros que reservaron todos los
    botes
  • Digamos que A tiene dos campos, x y, y B solo uno
    llamado y.
  • Ej., A/B contiene todas las tuplas x (marineros)
    tal que para cada tupla y (botes) hay una tupla
    xy en A.
  • O, si un conjunto de valores y (botes) asociado
    con un valor x (marinero) en A contiene todos los
    valores y en B, entonces x pertenece al resultado
    A/B.
  • En general, x e y pueden ser cualquier lista de
    campos, y es una lista de campos en B, y x U y es
    una lista de campos en A.

14
Ejemplos de División en A
15
Expresando A/B usando operadores primarios
  • La división es una operación no esencial, ya
    que puede ser reemplazada por un conjunto de
    operaciones primarias.
  • Ej. Para A/B, computar todos los x que no sen
    descalificantes para algún valor de y en B.
  • Un valor x es descalificante si juntandolo con
    y de B, obtenemos una tupla que no existe en A.
  • Valores de x que no califican

16
EJEMPLOS PRACTICOS
17
Encuentre los nombres de los marineros que
reservaron el bote 103
18
Encuentre los nombres de los marineros que
reservaron un bote rojo
  • La información sobre el color del bote se
    encuentra en la relación Botes, por lo tanto
    necesitamos una junta
  • Una solución mas eficiente sería
  • Un optimizador estándar de consulta (presente en
    todos los motores de base de datos relacionales)
    puede obtener esta segunda respuesta a partir de
    la primera entrada.

19
Encuentre los marineros que reservaron un bote
verde o uno rojo
  • Identificar primero todos los botes verdes y
    rojos, luego encontrar quienes reservaron estos
    botes.
  • También se puede definir TempBotes usando una
    unión
  • Qué pasa si reemplazamos la ? por una ??

20
Encuentre los marineros que reservaron un bote
verde y uno rojo
  • La aproximación anterior no funciona. Se debe
    identificar los marineros que reservaron botes
    rojos, los que reservaron botes verdes y luego
    encontrar la intersección de ambos conjuntos.

21
Encuentre los marineros que reservaron todos los
botes
  • Se resuelve con la operación división. Sse debe
    tener cuidado con los esquemas de entrada.
  • Y para encontrar los marineros que reservaron
    todos los botes llamados Interlake

22
Cálculo Relacional
  • Se divide un dos subgrupos
  • Cálculo relacional de Tuplas (TRC)
  • Cálculo relacional de Dominios (DRC)
  • El cálculo relacional tiene variables, funciones
    de comparación, conectores lógicos y
    calificadores.
  • TRC Las variables son basadas en tuplas.
  • DRC Las variables son basadas en dominios.
  • Ambos son simples subconjuntos de primer orden
    lógicos.
  • Las expresiones se llaman fórmulas. Una tupla de
    respuesta es simplemente una asignación de
    constantes a variables que hacen que la fórmula
    sea verdadera.

23
Ejemplos DRC
  • La condición asegura
    que las variables de dominio I, N, T, y A esta
    ligada a campos de la misma tupla de Marineros.
  • El término a la izquierda de (se
    lee tal cual) dice que cada tupla de
    que satisface Tgt7 forma parte de la respuesta.

24
Consultas Inseguras
  • Es posible escribir consultas sintácticamente
    correctas que generar un infinito conjunto
    posible de respuestas. Este tipo de consultas se
    definen como inseguras.
  • Podemos decir que cualquier consulta que puede
    representarse en algebra relacional puede
    representarse como consulta segura en DRC /
    TRC, y viceversa.
  • Completitud Relacional Los lenguajes de consulta
    (ej.SQL) puede expresar cualquier consulta que es
    expresable con el algebra o el calculo relacional
    seguro

25
Resumen
  • El Algebra relacional es operacional, útil para
    representaciones internas (planes de ejecución /
    optimizadores)
  • Ofrece alternativas para resolver una consulta,
    el optimizador elije la que considera mas
    conveniente en ese momento.
  • El Cálculo relacional es no-operacional, y se
    definen las consultas en base a que se quiere
    obtener, y no como.
  • El Algebra y el cálculo relacional son
    equivalentes (en términos de poder operacional)
    siempre y cuando esta última sea segura.
Write a Comment
User Comments (0)
About PowerShow.com