06- Calculo Relacional[1]

16

Transcript of 06- Calculo Relacional[1]

EL MODELO DE DATOS RELACIONAL

TEMARIO:

1. El panorama general del modelo de datos relacional

2. Conceptos básicos

3. Las restricciones del modelo relacional

4. Las operaciones del álgebra relacional

5. Cálculo relacional

6. Resumen

Elaborado por: Ing. Heber Abanto Cabrera / Abril 2011

ICSI, INSO e INTE 2011-10

5. El cálculo relacional

El cálculo relacional representa una alternativa al álgebra

relacional como candidato para la parte de manipulación del modelo de datos relacional. La diferencia entre los dos es la siguiente:

• El álgebra proporciona un conjunto de operaciones explícitas como la unión, intersección, diferencia, selección proyección, combinación, etc., que pueden ser efectivamente utilizadas para construir alguna relación deseada de las relaciones que figuran en la base de datos.

• El cálculo proporciona una notación para la formulación de la definición de esa relación deseada en términos de las relaciones dadas.

ICSI, INSO e INTE 2011-10

El cálculo relacional ...

Por ejemplo, considere la consulta "obtener los nombres completos y las ciudades de los propietarios que poseen un automóvil de color rojo”.

Una versión algebraica de esta consulta podría ser:

• Combinación de la relación PROPIETARIOS con la relación AUTOMOVILES en el atributo NumeroDeIdentificacion

• Selección de la relación resultante sólo en las tuplas con el automóvil de color = “ROJO“

• Proyección del resultado de esa restricción al Nombre, Apellido y Ciudad de los PROPIETARIOS

ICSI, INSO e INTE 2011-10

El cálculo relacional ...

Una formulación del cálculo, por el contrario, podría ser:

• Obtener Nombre, Apellido y Ciudad para los propietarios que tengan un automóvil con el mismo NumeroDeIdentificacion y con el color ROJO.

Aquí el usuario ha limitado a afirmar las características que definen el conjunto deseado de tuplas, y se deja al sistema para decidir exactamente cómo se va a hacer. Podríamos decir que la formulación de cálculo es descriptivo, mientras que el álgebra es prescriptivo. El cálculo se limita a establecer cuál es el problema, mientras que el álgebra da un procedimiento para resolver ese problema.

ICSI, INSO e INTE 2011-10

El cálculo relacional ...

Lo cierto es que el álgebra y el cálculo son, precisamente, equivalentes entre sí. Para cada expresión del álgebra, hay una expresión equivalente en el cálculo; del mismo modo, para cada expresión del cálculo, hay una expresión equivalente en el álgebra. Existe una correspondencia uno-a-uno entre los dos. Los formalismos diferentes simplemente representan estilos diferentes de expresión. El cálculo es más como el lenguaje natural, mientras que el álgebra es más cercano a un lenguaje de programación.

El cálculo relacional se basa en una rama de la lógica matemática denominada cálculo de predicados. Kuhns parece ser el padre de esta idea de usar el cálculo de predicados como la base para un lenguaje de base de datos, pero Codd fue el primero que propuso el concepto de cálculo relacional, un cálculo de predicados aplicado específicamente a las bases de datos relacionales

ICSI, INSO e INTE 2011-10

El cálculo relacional ...

Un lenguaje explícitamente basado en el cálculo relacional también fue presentado por Codd. Se llamaba sublenguaje de datos ALPHA y nunca fue implementado en la forma original. El lenguaje QUEL de INGRES es en realidad muy similar al sublenguaje de datos ALPHA. Codd también dio un algoritmo, el algoritmo de reducción de Codd, por el cual una expresión arbitraria del cálculo puede ser reducida a una expresión semánticamente equivalente del álgebra.

Hay dos tipos de cálculo relacional:

• Cálculo relacional orientado a tupla - basado en el concepto de variable de tupla

• Cálculo Relacional orientado a dominio - basado en el concepto de variable de dominio

ICSI, INSO e INTE 2011-10

5.1. Cálculo relacional orientado a tupla

Una variable tupla es una variable que se extiende sobre alguna relación. Es una variable para la cuál los valores permitidos son tuplas de esa relación. En otras palabras, si una variable tupla T se extiende sobre la relación R, entonces, en un momento dado, T representa una tupla t de R.

Una variable tupla se define como:

RANGE OF T IS X1; X2; …; Xn

donde T es una variable tupla y X1, X2, …, Xn son expresiones de cálculo de tupla, que representan relaciones R1, R2, …, Rn. Estas relaciones R1, R2, …, Rn todas deben ser unión-compatibles, y los atributos correspondientes deben tener el mismo nombre en cada relación. La variable tupla T se extiende en la unión de esas relaciones.

ICSI, INSO e INTE 2011-10

Cálculo relacional orientado a tupla …

Si la lista de expresiones de cálculo de tupla identifica sólo una relación denominada R (el caso normal), entonces la variable tupla t sólo se extiende sobre las tuplas de esa única relación.

Cada ocurrencia de una variable tupla puede ser libre o ligada.

Si una variable tupla ocurre en el contexto de un atributo referenciado de la forma T.A, donde A es un atributo de la relación sobre la cuál se extiende T, es llamada una variable tupla libre.

Si una variable tupla ocurre como la variable que inmediatamente sigue a uno de los cuantificadores: el cuantificador existencial ∃ o el cuantificador universal ∀, es llamada una variable tupla ligada.

ICSI, INSO e INTE 2011-10

Cálculo relacional orientado a tupla …

Una expresión de cálculo de tupla se define como:

T.A, U.B, …, V.C WHERE f

donde T, U, …, V son variables tupla, A, B, …, C son atributos de las relaciones asociadas, y f es una fórmula de cálculo relacional que contienen exactamente T, U, …, V como variables libres. El valor de esta expresión se define como una proyección del subconjunto del producto cartesiano ampliado T×U×…×V (donde T, U, …, V extienden todos sus posibles valores) para el cuál f se evalúa como verdadera o si “WHERE f” se omite una proyección de todo el producto cartesiano. La proyección es tomada sobre los atributos indicados por T.A, U.B, …, V.C. Ningún elemento objetivo puede aparecer más de una vez en esa lista.

ICSI, INSO e INTE 2011-10

Cálculo relacional orientado a tupla …

Por ejemplo, la consulta "Obtener el Nombre, Apellido y Ciudad para los propietarios de automóviles que tengan un automóvil con el mismo NumeroDeIdentificacion y con el color ROJO" se puede expresar de la siguiente manera:

RANGE OF OWNERS IS

OWNERS.FirstName, OWNERS.LastName, OWNERS.City WHERE

∃ CARS(CARS.IdentificationNumber=OWNERS.IdentificationNumber

AND CARS.Color=’RED’)

El cálculo de tupla es formalmente equivalente al álgebra relacional. El lenguaje QUEL de INGRES se basa en el cálculo relacional orientado de tuplas.

ICSI, INSO e INTE 2011-10

5.2. Cálculo relacional orientado a dominio

Lacroix y Pirotte propusieron una alternativa de cálculo relacional denominada cálculo de dominio, en el cuál las variables de tupla se sustituyen por las variables de dominio. Una variable de dominio es una variable que se extiende sobre un dominio en lugar de sobre una relación.

Cada ocurrencia de una variable de dominio también puede ser libre o ligada. Una variable de dominio ligada se presenta como la variable que sigue inmediatamente a uno de los cuantificadores: al cuantificador existencial ∃ o al cuantificador universal ∀. En los demás casos, la variable es llamada una variable libre.

ICSI, INSO e INTE 2011-10

Cálculo relacional orientado a dominio …

El cálculo relacional orientado a dominio utiliza condiciones de pertenencia. Una condición de pertenencia toma la forma de:

R (término, término, …)

donde R es el nombre de la relación, y cada término es un par de la forma A:v, donde A es un atributo de R y v es o bien una variable de dominio o una constante. La condición se evalúa como verdadera si y sólo si existe una tupla en la relación R con los valores especificados para los atributos especificados.

Por ejemplo la expresión

OWNERS(IdentificationNumber:’SB24MEA’,City:’SIBIU’) es una condición de pertenencia, la cuál evalúa como verdadera si y sólo si existe una tupla en la relación PROPIETARIOS con el valor de NumeroDeIdentificacion SB24MEA y el valor de Ciudad SIBIU.

ICSI, INSO e INTE 2011-10

Cálculo relacional orientado a dominio …

Del mismo modo, la condición de pertenencia R (A:AX, B:BX, …)

evalúa a verdadero si y sólo si existe una tupla R con un valor de atributo igual al valor actual de la variable de dominio AX (no importa lo que sea), el valor del atributo B igual al valor actual de la variable de dominio BX (de nuevo, no importa lo que sea) y así sucesivamente.

Por ejemplo, la consulta "Obtener el Nombre, Apellido y Ciudad para los propietarios de automóviles que tengan un automóvil con el mismo NumeroDeIdentificacion y con el color ROJO" se puede expresar de la siguiente manera:

ICSI, INSO e INTE 2011-10

Cálculo relacional orientado a dominio …

FirstNameX, LastNameX, CityX WHERE ∃ IdentificationNumberX

(OWNERS (IdentificationNumber:IdentificationNumberX,

FirstName:FirstNameX, LastName:LastNameX,

City:CityX)

AND CARS(IdentificationNumber:IdentificationNumberX, Color:’RED’)

El cálculo de dominio es formalmente equivalente al álgebra relacional.

Un lenguaje, llamado ILL, basado en éste cálculo fue presentado por Lacroix y Pirotte. Otro lenguaje relacional basado en el cálculo relacional de dominio es QBE (Query-By-Example).

ICSI, INSO e INTE 2011-10

Resumen

El cálculo relacional se presenta como una alternativa al álgebra relacional para la parte de manipulación del modelo de datos relacional. Las diferencias entre ellos fueron explicadas. El cálculo relacional orientado a tupla, basada en el concepto de variable de tupla y el cálculo relacional orientado a dominio, basado en el concepto de variable de dominio, también fueron descritos en esta presentación.

ICSI, INSO e INTE 2011-10