Está en la página 1de 4

Objetivos

➤ Conocer los operadores del Cálculo relacional.

➤ Saber realizar consultas utilizando el Calculo relacional.


Tema 3: El modelo relacional (IG18)
➤ Conocer las opciones que ofrece SQL equivalentes a las del calculo.
Cálculo Relacional y SQL
➤ Saber utilizar las sentecias de SQL para hacer consultas en un
http://www.unoweb-s.uji.es/IG18 SGBDR.

Miguel Pérez Francisco

Tema 3: El modelo relacional (IG18) – 3 ➲


➲❏✘



Índice Bibliografía
1. Introducción 5 ➤ M. Celma, J.C. Casamayor, L. Mota “Bases de datos relacionales”.
Ed. Pentice Hall.
2. Cálculo relacional orientado a tuplas. Variable tuplas 7
2.1. Variables Tupla . . . . . . . . . . . . . . . . . . . . . . . 8 ➤ R. Elmasri i S. B. Navathe. “Fundamentals of Database Systems”. 2
2.2. Expresiones . . . . . . . . . . . . . . . . . . . . . . . . 9 edición, Addison-Wesley Ed. [QA76.9.D3 E57 1994].

➤ C. J. Date. “An Introduction to Database Systems” (vol. 1). 6a


edición, Addison-Wesley Ed. 1995. [QA76.9.D3 D38 1995].

➤ T. Connolly, C. Begg, A. Strachan. “Database Systems”.


Addison-Wesley Ed. 1997. [QA76.9.D26 C66].

Tema 3: El modelo relacional (IG18) – 4 ➲


➲❏✘



1 Introducción 2 Cálculo relacional orientado a tuplas.
Mientras que en un lenguaje algebraico hay que especificar los Una Variable de Tupla se define mediante una proposición de la forma
operadores que se tienen que aplicar a las relaciones para obtener el siguiente,
resultado, en el cálculo relacional sólo es preciso indicar cuál es el RANGE OF T IS X1, X2, . . . , Xn
resultado que se quiere obtener.
donde
En el cálculo se definen las características de la relación, y el SGBD
➤ T es la variable de tupla definida.
define las operaciones a aplicar para construir la relación.
➤ X1, X2, . . . , Xn son nombres de relación, o bien una expresión del
Este tipo de lenguajes se llaman predicativos porque utilizan el cálculo
cálculo de tuplas entre paréntesis.
de predicados para construir expresiones.
➤ Las relaciones Xi deben ser compatibles respecto de la unión, es
Se puede decir que el cálculo es descriptivo y que el álgebra es
decir, todas tienen el mismo esquema de tupla.
prescriptivo.
➤ La variable T toma valores en la unión de todas las relaciones Xi.
Tema 3: El modelo relacional (IG18) – 5 ➲ Tema 3: El modelo relacional (IG18) – 7 ➲
➲❏✘ ➲❏✘




1 Introducción 2.1 Variables Tupla

Una característica del cálculo relacional es que se utilizan variables que RANGE OF SX IS S
toman valores de tuplas de una relación, y sus únicos valores permitidos RANGE OF SY IS S
RANGE OF PX IS P
son las tuplas de dicha relación.
RANGE OF SPX IS SP
RANGE OF CIUDADX IS (SX.CIUDAD),(PX.CIUDAD)
Las variables también pueden tomar valores en el dominio de un
RANGE OF SP4X IS (SX WHERE ∃SPX (SPX.S#=SX.S# AND SPX.P#=’P4’))
atributo.

Los lenguajes de cálculo relacional pueden ser de dos tipos: Variables Libres y Ligadas

Cada Ocurrencia de una Variable de Tupla en una fórmula bien formada puede
➤ orientados a tuplas, en los que una variable se interpreta como si
ser Libre o Ligada.
representase las tuplas de una relación.
- Será Ligada si la variable se asocia a un cuantificador (∃ o ∀): ∀x(x > 3)
➤ orientados a dominios, en los que una variable se interpreta como si
- Será Libre si no es Ligada: (x > 3)
representase los valores de un dominio.
Tema 3: El modelo relacional (IG18) – 6 ➲ Tema 3: El modelo relacional (IG18) – 8 ➲
➲❏✘ ➲❏✘



2.2 Expresiones 2.2 Expresiones

Una expresión del cálculo relacional tiene la siguiente estructura:

lista_de_objetivos [ WHERE fbf ]

lista_de_objetivos: objetivos separados por comas


objetivo: [ X = ] T.A

➤ T : variable tupla

➤ A : atributo de la relación asociada a T

➤ X : nuevo nombre del atributo

fbf: fórmula bien formada (predicado simple o combinación booleana de


predicados) ¿Qué realizan estas dos consultas?

Tema 3: El modelo relacional (IG18) – 9 ➲ Tema 3: El modelo relacional (IG18) – 11 ➲


➲❏✘ ➲❏✘




2.2 Expresiones 2.2 Expresiones

Evaluación SQL:

Sea T, U, ..., V el conjunto de variables tupla especificadas en la lista de Existe (∃):



objetivos y X1, X2, ... , Xn los nombres de los atributos a obtener en el SELECT lista de objetivos
resultado: FROM tabla1 t1 JOIN tabla2 t2, ...
WHERE EXISTS (SUBCONSULTA)
(1) Se forma el producto cartesiano T x U x . . . x V (T, U, . . . , V toman todos los
valores posibles de sus rangos).
Para todo (∀):

(2) Se eliminan (restricción) las tuplas del producto anterior que no satisfacen
SELECT lista de objetivos
la fbf del WHERE, si lo hay. FROM tabla1 t1 JOIN tabla2 t2, ...
WHERE valor opLog ALL (SUBCONSULTA)
(3) Se proyecta el resultado anterior sobre X1, X2, ..., Xn.

SX.SNOMBRE,SPX.pnum WHERE (SX.snum=SPX.snum AND SPX.CANT>200)

Tema 3: El modelo relacional (IG18) – 10 ➲ Tema 3: El modelo relacional (IG18) – 12 ➲


➲❏✘ ➲❏✘



2.2 Expresiones 2.2 Expresiones

o transformando el para todo (∀) en not exists (6 ∃): Piezas que en todos los envíos la cantidad es mayor a 100:

∀a(b) ←→6 ∃a(¬b) SELECT px.pnum, px.pnombre


FROM p AS px
WHERE NOT EXISTS (SELECT *
FROM sp AS spx
∀ como 6 ∃ WHERE NOT(spx.snum<>sp.snum
SELECT lista de objetivos OR spx.cant>=100))
FROM tabla1 t1 JOIN tabla2 t2, ...
WHERE NOT EXISTS (SUBCONSULTA CONTRARIA)
SELECT px.pnum, px.pnombre
FROM p AS px
WHERE NOT EXISTS (SELECT *
FROM sp AS spx
WHERE spx.snum=sp.snum
AND spx.cant<100))

Tema 3: El modelo relacional (IG18) – 13 ➲ Tema 3: El modelo relacional (IG18) – 15 ➲


➲❏✘ ➲❏✘




2.2 Expresiones

Piezas que se envian en cantidades superior a 100:

SELECT px.pnum, px.pnombre


FROM p AS px
WHERE EXISTS (SELECT *
FROM sp AS spx
WHERE spx.snum=sp.snum
AND spx.cant>=100)

Tema 3: El modelo relacional (IG18) – 14 ➲


➲❏✘

También podría gustarte