You are on page 1of 22

Departamento de Lenguajes y Sistemas Informticos

E.T.S. Ingeniera Informtica. Universidad de Sevilla



Avda Reina Mercedes s/n. 41012 Sevilla
Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es

E.T.S. Ingeniera
Informtica





















Bases de Datos

Lenguajes relacionales






Sevilla, octubre 2005
V 2005.10.1
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 2 de 22


1 LENGUAJES RELACIONALES........................................................................... 3
1.1 LENGUAJES TERICOS DE REFERENCIA ................................................................................ 3
1.2 LENGUAJES COMERCIALES..................................................................................................... 4
2 LGEBRA RELACIONAL (AR)........................................................................... 4
2.1 CLASIFICACIN DE OPERADORES .......................................................................................... 4
2.2 DENOMINACIN DE ATRIBUTOS. .......................................................................................... 4
2.3 RELACIONES DERIVADAS. ...................................................................................................... 5
2.4 RELACIONES COMPATIBLES EN UNIN ................................................................................. 5
2.5 OPERADORES RELACIONALES................................................................................................ 5
2.5.1 Unin ........................................................................................................................................................ 5
2.5.2 Interseccin.............................................................................................................................................. 6
2.5.3 Diferencia ................................................................................................................................................. 7
2.5.4 Producto cartesiano ................................................................................................................................ 7
2.5.5 Renombrado............................................................................................................................................. 8
2.5.6 Restriccin................................................................................................................................................ 9
2.5.7 Proyeccin.............................................................................................................................................. 10
2.5.8 Divisin................................................................................................................................................... 11
2.5.9 -concatenacin..................................................................................................................................... 12
2.5.10 -concatenacin externa por la izquierda .......................................................................................... 14
2.5.11 -concatenacin externa por la derecha............................................................................................. 15
2.5.12 -concatenacin externa simtrica...................................................................................................... 15
2.5.13 Agregacin.............................................................................................................................................. 16
2.5.14 Agregacin con restricciones sobre resultados ................................................................................. 17
3 CLCULO RELACIONAL (CR) .........................................................................17
3.1 CLCULO RELACIONAL ORIENTADO A TUPLAS (CROT) ...................................................... 17
3.1.1 Denominacin de atributos. ................................................................................................................ 17
3.1.2 Expresiones............................................................................................................................................ 17
3.1.3 Formulas bien formadas y variables tupla. ........................................................................................ 18
3.1.4 Renombrado de expresiones................................................................................................................ 18
3.1.5 Ejemplos................................................................................................................................................. 19
3.1.6 SQL vs CROT....................................................................................................................................... 19
3.2 CLCULO RELACIONAL ORIENTADO A DOMINIOS (CROD)................................................. 20
3.2.1 Expresiones............................................................................................................................................ 20
3.2.2 Formulas bien formadas y variables dominio. .................................................................................. 20
3.2.3 Renombrado de expresiones................................................................................................................ 20
3.2.4 Ejemplos................................................................................................................................................. 21
3.2.5 QBE vs CROD...................................................................................................................................... 21
4 LENGUAJES RELACIONALES COMPLETOS............................................... 22
5 CLASIFICACIN DE LOS SISTEMAS RELACIONALES.............................. 22

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 3 de 22

1 Lenguajes relacionales
1.1 Lenguajes tericos de referencia
E.F.Codd, en 1972, extiende el modelo relacional bsico (RM/B) dotndolo de comportamiento dinmico
mediante la propuesta de dos lenguajes tericos de referencia:

El lgebra relacional (AR)
El clculo relacional (CR)

Codd pretende dar respuesta a la especificacin de consultas sobre una base de datos relacional,
proponiendo un salto cualitativo sobre los lenguajes de datos existentes en la poca, de carcter
eminentemente procedural
1
. Tanto el AR como el CR son lenguajes de especificacin
2
que se apoyan en
la base matemtica formal del RM/B (una relacin es un conjunto) para definir consultas a la base de datos
como la declaracin de conjuntos mediante su definicin por intensin (la propiedad que cumplen los
conjuntos).

El lgebra relacional se apoya en la teora de conjuntos y en la aplicacin de operadores tales que
transforman relaciones de la base de datos en relaciones derivadas. Sobre una relacin derivada puede, a su
vez, aplicarse una transformacin u operador algebraico cuyo resultado es una nueva relacin derivada. En
general, una consulta a la base de datos puede expresarse mediante un programa algebraico:

{ }
{ } ( ) ( ) ( ) ( )
1 2 1
Base de datos
Consulta
: Programa algebraico, Transformacin algebraica
q ..
:
i
n n
n
R
Ri
Q
Q





El clculo relacional es una aplicacin del clculo de predicados, basado en la lgica de primer orden. Una
relacin puede ser interpretada como un predicado bsico y una tupla de una relacin como un hecho
catalogado en dicha base de datos, para la cual el predicado toma el valor de verdad Verdadero; de este
modo, una consulta a la base de datos puede definirse como una funcin lgica, donde intervienen
predicados (relaciones), variables (variables tupla o variables de dominio segn la versin del clculo) y
constantes:

{ }
{ } ( )
Base de datos
Consulta
: Frmula lgica
q
i R
Ri
F
F



1
Lenguaje procedural es aquel que, desde la perspectiva de acceso a los datos en memoria externa, obliga a construir
procedimientos o algoritmos para dar respuesta a una consulta general sobre la base de datos. Se les denomina tambin
lenguajes navegacionales. Los lenguajes navegacionales solo permiten acceder a un registro con una instruccin o primitiva
elemental de manipulacin de datos.
2
Lenguaje de especificacin es aquel que, en lo referente al acceso a datos, permite, con primitivas de manipulacin, acceder,
en general, a un conjunto de datos.
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 4 de 22

1.2 Lenguajes comerciales
Los lenguajes tericos son la base de lenguajes comerciales universalmente extendidos en el mercado de los
sistemas de gestin de bases de datos relacionales; as:

SQL (Structured Query Language) es el lenguaje ms extendido para la definicin y manipulacin de bases
de datos relacionales. Es ISO desde 1986; actualmente existe el nivel ISO SQL3 de 1999; los SGBDs
comerciales utilizan generalmente el nivel SQL2 o SQL ISO de 1992. SQL es un lenguaje con interface de
comando, basado en el clculo relacional de tuplas.

QBE (Query by Example) es el interface ms extendido para la especificacin de consultas en herramientas
de usuario o para profesionales de la programacin. Se basa en un interface de especificacin visual que
interacciona con el esquema de la base de datos, permitiendo elegir objetos del esquema y especificar
condiciones sobre los mismos, as como validar la consulta y ejecutarla sobre un interface hombre-mquina
o bien catalogar la consulta. QBE se base en el clculo relacional de dominios.
2 lgebra relacional (AR)
2.1 Clasificacin de operadores
Se definen dos grupos de operadores algebraicos:

a) Operadores conjuntistas. Propios de la teora de conjuntos.
Unin
Interseccin
Diferencia
Producto cartesiano
b) Operadores propiamente relacionales
Renombrado
Restriccin
Proyeccin
Divisin
-Concatenacin
c) Extensin del lgebra relacional bsica
Agregacin
2.2 Denominacin de atributos.
Una relacin nominada se define explcitamente sobre un esquema relacional.

( ) { } ( )
1 1, 2 2, ..
1, 2, ..
: : : o tambin R :
A la relacin R se le asocian los siguientes nombres calificados de atributos:

R
. . .
n n i j
n
A D A D A D A D
R A R A R A


Para un atributo se usar su nombre calificado (anteponiendo el nombre de la relacin o su alias) o
bien su nombre sin calificar cuando no exista ambigedad.

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 5 de 22

2.3 Relaciones derivadas.
Se dice que una relacin es derivada si se define mediante una expresin del AR; el resultado de aplicar un
operador o programa algebraico a una BD es una relacin derivada; es decir, una consulta tambin es una
relacin derivada.
2.4 Relaciones compatibles en unin
( ) ( )
[ ] [ ]
R { : } y R { : } , i n, j m
es compatible en unin con si puede establecerse una biyeccin entre sus esquemas o
intensiones de modo que los constituyentes que se correspondan
: :
i j j
i j j
Dadas A Di B E
R S
A Di B E

tienen el mismo dominio: ( ) ( )
Como consecuencia: i n ;
Las denominaciones de los atributos no tienen que ser necesariamente idnticas
i j
j
dom A dom B
E Di Ej n m
=
= =
/

2.5 Operadores relacionales
2.5.1 Unin
Sean ( ) ( ) { : } { : } dos relaciones compatibles en unin. i i j j R A D y S B E

se define * R S Z =

, como la relacin derivada de esquema ( ) * { . : } i i Z R A D
y extensin ( ) ( ) { }
* * z t Z t R t S
/


Con la definicin realizada queda patente:
a) * Z toma el esquema del primer operando R
b) Las tuplas * z de * Z son la unin de los conjuntos de tuplas de sus operandos R y S .

La unin es asociativa y conmutativa.

Productos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000



ProductosPedidos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P11 Mini TK68 10 142000
P20 Cadena A4 10 20000



Productos ProductosPedidos



pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000
P20 Cadena A4 10 20000


Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 6 de 22

2.5.2 Interseccin

Sean ( ) ( ) { : } { : } dos relaciones compatibles en unin. i i j j R A D y S B E

se define * R S Z =

, como la relacin derivada de esquema ( ) * { . : } i i Z R A D

y extensin ( ) ( ) { }
* * z t Z t R t S
/


Con la definicin realizada queda patente:

a) * Z toma el esquema del primer operando R
b) Las tuplas * z de * Z son la interseccin de los conjuntos de tuplas de sus operandos R y S .


La interseccin es asociativa y conmutativa.


Productos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000





ProductosPedidos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P11 Mini TK68 10 142000
P20 Cadena A4 10 20000


Productos ProductosPedidos



pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P11 Mini TK68 10 142000
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 7 de 22


2.5.3 Diferencia

Sean ( ) ( ) { : } { : } dos relaciones compatibles en unin. i i j j R A D y S B E

se define * R - S Z = , como la relacin derivada de esquema ( ) * { . : } i i Z R A D

y extensin ( ) ( ) { }
* * z t Z t R t S
/ /


Con la definicin realizada queda patente:
a) * Z toma el esquema del primer operando R
b) Las tuplas * z de * Z son la diferencia de los conjuntos de tuplas de sus operandos R y S .


La diferencia no es asociativa ni conmutativa.


Productos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000





ProductosPedidos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P11 Mini TK68 10 142000
P20 Cadena A4 10 20000


Productos ProductosPedidos

Pid pdesc ppeso pprecio
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000

2.5.4 Producto cartesiano

Sean ( ) ( ) { : } { : } dos relaciones. i i j j R A D y S B E
se define * R S Z = , como la relacin derivada de esquema { } * { . : } . : i i j Z R A D S B Ej




y extensin ( ) { }
* * r s z t rs Z R S =
/


Una tupla * z es la concatenacin de dos tuplas r y s .

El producto cartesiano es asociativo y conmutativo.
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 8 de 22


Productos
Pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000



AExistencias
aid pid acant
A2 P1 156
A2 P2 1234


Productos AExistencias
Pid pdesc ppeso pprecio aid pid acant
P1 Televisor M1 27 56000 A2 P1 156
P2 Televisor M2 30 78000 A2 P1 156
P3 Televisor M3 35 97000 A2 P1 156
P10 Mini TK67 12 112000 A2 P1 156
P11 Mini TK68 10 142000 A2 P1 156
P1 Televisor M1 27 56000 A2 P2 1234
P2 Televisor M2 30 78000 A2 P2 1234
P3 Televisor M3 35 97000 A2 P2 1234
P10 Mini TK67 12 112000 A2 P2 1234
P11 Mini TK68 10 142000 A2 P2 1234


2.5.5 Renombrado
Mediante el operador podemos renombrar una relacin y sus atributos

( ) ( ) ( )
1 2 n 1 2 , ,.. , ,.. n S B B B R A A A =
aplica cada atributo de R sobre cada atributo de S, estableciendo una nueva denominacin para los
atributos y para la relacin, tal que:

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
1 1 2 2 .. n n dom B dom A dom B dom A dom B dom A = = =

Es posible, adems, renombrar el resultado de una consulta
{ } ( ) ( ) ( ) ( )
1 2
1 2 1
( , ,.. ) .. n
n n
S B B B Ri


=




( ) Existencias (codigo, desc,peso, precio,almacen,codprod,cantidad) = Productos Aexistencias

Existencias
codigo desc peso precio almacen codprod cantidad
P1 Televisor M1 27 56000 A2 P1 156
P2 Televisor M2 30 78000 A2 P1 156
P3 Televisor M3 35 97000 A2 P1 156
P10 Mini TK67 12 112000 A2 P1 156
P11 Mini TK68 10 142000 A2 P1 156
P1 Televisor M1 27 56000 A2 P2 1234
P2 Televisor M2 30 78000 A2 P2 1234
P3 Televisor M3 35 97000 A2 P2 1234
P10 Mini TK67 12 112000 A2 P2 1234
P11 Mini TK68 10 142000 A2 P2 1234
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 9 de 22


2.5.6 Restriccin

Sean ( ) { : } una relacin una frmula. i i R A D y f

se define
( )
*
f
Z R = , como la relacin derivada de esquema ( ) * { . : } i i Z R A D
y extensin ( ) { }
* * z t Z t R f t Verdadero =
/


Es decir Z* tiene el mismo esquema de R y las tuplas z * de Z* son las tuplas de R que satisfacen la
condicin impuesta en la formula f

La formula f se construye con:
a) Condiciones i j i A A A a
donde i j A y A son nombres de atributos de R y a una constante
( ) ( ) ( ) ( ).
es un operador escalar de comparacin (= ).
i i tal que dom A dom Aj y dom A dom a

= =
<>


b) Operadores lgicos ( ) ( ) ( ) AND OR NOT

Formula bien formada (FBF) en AR:
a) Toda condicin i j i A A A a es una FBF.
b) ( ) ( ) Si f es una FBF tambin lo son f y f
c) ( ) ( ) Si f y g son FBF tambin lo son f g y f g
d) Ninguna otra frmula es una FBF .


La formula f es cierta para una tupla t cuando al sustituir en f cada nombre de atributo por su
correspondiente valor en t dicha frmula se cumple; f adquiere el valor de verdad Verdadero.

( ) ( ) ( ) El orden de precedencia de los operadores es

Productos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000


30
Productos
Peso



pid pdesc ppeso pprecio
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 10 de 22

2.5.7 Proyeccin

Sean ( ) { } { : } una relacin un subconjunto de atributos B , i i j R A D y B B R =

se define
B
* R Z =

, como la relacin derivada de esquema ( ) * { : } Z Bj Dj



y extensin ( ) ( ) { }
* * . . z t b Z b B r R b Bj r Bj = =
/


Es decir Z* tiene como esquema un subconjunto de atributos del esquema de R y las tuplas z * de Z*
son tales que al menos aparece en R una tupla con dichos valores.

AExistencias
aid pid Acant
A2 P1 156
A2 P2 1234
A2 P3 69
A2 P10 120
A2 P11 345
A3 P3 5000
A4 P1 200
A4 P2 956
A4 P3 134
A4 P10 120
A4 P11 542



, Pid Acant
AExistencias


pid acant
P1 156
P2 1234
P3 69
P10 120
P11 345
P3 5000
P1 200
P2 956
P3 134
P10 120
P11 542








Pid
AExistencias


pid
P1
P2
P3
P10
P11

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 11 de 22


2.5.8 Divisin

Sean
{ } { } ( ) ( ) : , : S { : } dos relaciones con esquema los subconjuntos
de atributos(descriptores) ,
i i j R A A D B B Ej y B Bj Ej
A B


se define
( )
,
*
( )
R A B
Z
S B
= , como la relacin derivada de esquema ( ) * { : } Z A Ai Di

y extensin { } * * z t Z b S tb R
/




AExistencias
aid pid acant
A2 P1 156
A2 P2 1234
A2 P3 69
A2 P10 120
A2 P11 345
A3 P3 5000
A4 P1 200
A4 P2 956
A4 P3 134
A4 P10 120
A4 P11 542






Productos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000




,
Pr
AExistencias
Aid Pid
oductos
Pid



Expresando la divisin como diferencias:
( )
,
( ) es equivalente a:
( )
( )
A
A
A
R A B
C A
S B
C A R S R R
=

=











aid
A2
A4
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 12 de 22

2.5.9 -concatenacin
Sean
( ) ( ) { : } { : } dos relaciones tales que ( ) ( ) i i j j i j R A D y S B E dom A dom B =
(= ) y un escalar de comparacin <>
;
se define
. .
*
R Ai S Bj
Z R S

=
6
,
como la relacin derivada de esquema
( )
* { . : } { . : } i i j j Z R A D S B E



y extensin
( ) ( ) { }
* * r s . . i j z t rs Z R S r A s B Verdad = =
/


Tambin se denomina -join o -combinacin.

La -concatenacin no es una operacin primitiva ya que puede expresarse como un producto
cartesiano y una restriccin:
( )
. . . .
*
i i j j R A S B R A S B
Z R S R S

= =
6


Si es el operador = se dice que la -concatenacin es una equiconcatenacin.

Cuando en la equiconcatenacin se considera una denominacin no calificada de atributos en los
esquemas (los atributos con la misma denominacin en ambas relaciones aparecen solo una vez en la
relacin resultado), el resultado es una concatenacin natural y se expresa:

* Z R S =
6




Es decir, la concatenacin natural es el resultado de realizar un producto cartesiano, una restriccin de
las tuplas que verifican la igualdad de los mismos atributos, procedentes de los operandos (relaciones)
iniciales y una proyeccin no redundante de atributos, constituyendo el esquema con la unin de
esquemas de R y S no calificadas..


( ) ( ) ( )
( ) ( ) ( )
( ) ( )
1 2
1 1
2 2
1, 2, .. 1, 2, .. 1, 2, ..
1, 2, .. 1, 2, .. 1, 2, ..
, ,..
. .
. .
. .
.. . .


*
k
k n m
p n m
X X X X
R Y S Y
R Y S Y
R Y S Y
R Yp S Yp
Si X X X X A A A B B B
Si Y Y Y Y A A A B B B
Z R S R S R S

=
=
=
=
= =
= =



= = =





6

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 13 de 22


AExistencias
aid pid acant
A2 P1 156
A2 P2 1234
A2 P3 69
A2 P10 120
A2 P11 345
A3 P3 5000
A4 P1 200
A4 P2 956
A4 P3 134
A4 P10 120
A4 P11 542
A4 P22 10






Productos
pid pdesc ppeso pprecio
P1 Televisor M1 27 56000
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000
P10 Mini TK67 12 112000
P11 Mini TK68 10 142000
P20 Producto nuevo 10 100

Se ha insertado una tupla nueva en AExistencias<A4,P22,10> y otra en
Productos<P20,Productonuevo,10,100>.

. Pr .
* Pr
AExistencias pid oductos pid
Z AExistencias oductos
=
=
6

aid pid acant pdesc ppeso pprecio
A2 P1 156 Televisor M1 27 56000
A2 P2 1234 Televisor M2 30 78000
A2 P3 69 Televisor M3 35 97000
A2 P10 120 Mini TK67 12 112000
A2 P11 345 Mini TK68 10 142000
A3 P3 5000 Televisor M3 35 97000
A4 P1 200 Televisor M1 27 56000
A4 P2 956 Televisor M2 30 78000
A4 P3 134 Televisor M3 35 97000
A4 P10 120 Mini TK67 12 112000
A4 P11 542 Mini TK68 10 142000


Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 14 de 22

2.5.10 -concatenacin externa por la izquierda

Sean
( ) ( ) { : } { : } dos relaciones, tal que ( ) ( ) i i j j i j R A D y S B E dom A dom B =
(= ) y un escalar de comparacin <> ; se define
. .
*
i R A S Bj
Z R S

=
7
, como la relacin derivada de
esquema * { . : } { . : } i i j j Z R A D S B E


y

extensin
( )
( )
* : r s . .
* =
*( . ) : r s . .
i j
j j i j
rs Z sii R S r A s B Verdad
z t t
rn Z B n B null sii R S r A s B Verdad


=

/
= = /
/



AExistencias.pid=Productos.pid
* AExistencias Productos Z =
7 77 7

aid pid acant pdesc ppeso pprecio
A2 P1 156 Televisor M1 27 56000
A2 P2 1234 Televisor M2 30 78000
A2 P3 69 Televisor M3 35 97000
A2 P10 120 Mini TK67 12 112000
A2 P11 345 Mini TK68 10 142000
A3 P3 5000 Televisor M3 35 97000
A4 P1 200 Televisor M1 27 56000
A4 P2 956 Televisor M2 30 78000
A4 P3 134 Televisor M3 35 97000
A4 P10 120 Mini TK67 12 112000
A4 P11 542 Mini TK68 10 142000
A4 P22 10

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 15 de 22

2.5.11 -concatenacin externa por la derecha
Sean ( ) ( ) { : } { : } dos relaciones, tal que ( ) ( ) i i j j i j R A D y S B E dom A dom B =
(= ) y un escalar de comparacin <>
se define
. .
*
i R A S Bj
Z R S

=
8 88 8
, como la relacin derivada de esquema * { . : } { . : } i i j j Z R A D S B E


y
extensin
( )
( )
* : r s . .
* =
* ( . ) : . .
i j
j j i j
rs Z sii R S r A s B Verdad
z t t
ns Z A n A null sii s S r R r A s B Verdad


=

/
= = /
/



AExistencias.pid=Productos.pid
* AExistencias Productos Z =
8 88 8

aid pid acant pdesc ppeso pprecio
A2 P1 156 Televisor M1 27 56000
A2 P2 1234 Televisor M2 30 78000
A2 P3 69 Televisor M3 35 97000
A2 P10 120 Mini TK67 12 112000
A2 P11 345 Mini TK68 10 142000
A3 P3 5000 Televisor M3 35 97000
A4 P1 200 Televisor M1 27 56000
A4 P2 956 Televisor M2 30 78000
A4 P3 134 Televisor M3 35 97000
A4 P10 120 Mini TK67 12 112000
A4 P11 542 Mini TK68 10 142000
P20 Producto Nuevo 10 100
2.5.12 -concatenacin externa simtrica
Sean ( ) ( ) { : } { : } dos relaciones, tal que ( ) ( ) i i j j i j R A D y S B E dom A dom B =
(= ) y un escalar de comparacin <> ;se define
. .
*
i R A S Bj
Z R S

=
9 99 9
, como la relacin derivada de
esquema
( )
* { . : } { . : } i i j j Z R A D S B E

y extensin
( )
( )
( )
* : r s . .
* = * ( . ) : r s . .
* ( . ) : . .
i j
j j i j
j j i j
rs Z sii R S r A s B Verdad
z t t rn Z B n B null sii R S r A s B Verdad
ns Z A n A null sii s S r R r A s B Verdad

=


= = /
/ /

= = /
/


AExistencias.pid=Productos.pid
* AExistencias Productos Z =
9 99 9

aid pid acant pdesc ppeso pprecio
A2 P1 156 Televisor M1 27 56000
A2 P2 1234 Televisor M2 30 78000
A2 P3 69 Televisor M3 35 97000
A2 P10 120 Mini TK67 12 112000
A2 P11 345 Mini TK68 10 142000
A3 P3 5000 Televisor M3 35 97000
A4 P1 200 Televisor M1 27 56000
A4 P2 956 Televisor M2 30 78000
A4 P3 134 Televisor M3 35 97000
A4 P10 120 Mini TK67 12 112000
A4 P11 542 Mini TK68 10 142000
A4 P22 10
P20 Producto Nuevo 10 100
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 16 de 22

2.5.13 Agregacin

Sea ( ) { : } i i R A D

se define
( )
* Z
g
R =

F
donde g es el criterio de agrupacin y F es un conjunto de funciones
agregadas:
{ }
0
1) si no hay criterios de agrupacin;
la relacin es particionada en una nica clase de equivalencia R =R
2) , ; queda particionada en clases de equivalencia,
tales que cada particin
i
R
g
A A A R R


=

i R de tuplas t R tiene el mismo valor de A









( ) { }
( )
' ' ' ' ' ' '
* ; un conjunto de funciones agregadas aplicables a cada particin
( ), ( ), ( ), max( ), min( ), ( ), ( )
i i
i
i i i i i i i
Z siendo R
g
sum count count distinct avg std
A A A A A A A
=


=



F F F
F


y extensin
{ } i * * se obtiene una sola tupla agregada aplicando las funciones de agregacin i z t Z R t
/
F
AExistencias
Productos existentes en los distintos almacenes:
( )
( )
( )
( )
*
( )
o bien: *
(*)
*
,
,
count pid
Z AExistencias
count pid
Z AExistencias
count
Z AExistencias
=

=
=








Productos distintos existentes en los distintos almacenes:
( )
( ( ))
*
count distinct pid
Z AExistencias =




Productos existentes en cada almacn:
( )
, ( ( ))
*
aid count distinct pid
Z AExistencias
aid
=





Cantidad mxima de un producto en cada almacn:
( )
,max( )
*
aid acant
Z AExistencias
aid
=



aid pid acant
A2 P1 156
A2 P2 1234
A2 P3 69
A2 P10 120
A2 P11 345
A3 P3 5000
A4 P1 200
A4 P2 956
A4 P3 134
A4 P10 120
A4 P11 542
Count(*)
11
Count(distinct(pid))
5
aid Distinct(pid)
A2 5
A3 1
A4 5
aid Max(acant)
A2 1234
A3 5000
A4 956
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 17 de 22


2.5.14 Agregacin con restricciones sobre resultados

Se define
( )
( ) *
f
g
Z R

F
, como la relacin derivada de esquema idntico al caso anterior. Pero es
posible aplicar una restriccin algebraica sobre el esquema del resultado intermedio de la agrupacin.

Productos cuya media de existencias en los almacenes est por debajo de 200




3 Clculo relacional (CR)
Mientras que el lgebra relacional proporciona un conjunto de operadores que, combinados, permiten
obtener una relacin a partir de otras bsicas, el clculo relacional facilita una notacin destinada a definir
una nueva relacin a travs de las especificaciones de un predicado que deben cumplir las tuplas
implicadas.

El clculo relacional se basa en la lgica de primer orden. Codd elabor dos propuestas de lenguajes de
especificacin: el clculo relacional orientado a tuplas y el clculo relacional orientado a dominios.
3.1 Clculo relacional orientado a tuplas (CROT)
Se define una variable-tupla como aquella cuyos valores permitidos son las tuplas de una relacin R de la
base de datos.
3.1.1 Denominacin de atributos.
( ) { : } una relacin y una tupla de i i Sea R A D t R R , t.A
i
representa el valor del atributo A
i
en la tupla t.

Por extensin, una variable tupla puede definirse sobre la unin de un conjunto de relaciones
compatibles.
3.1.2 Expresiones
Una expresin del clculo de tuplas tiene la forma:

( ) { }
i j k . , . ,.. . t A r B s C f
donde:

a) t,r,..s son variables tupla.
b) A
i
, B
j
,.. C
k
son nombres de atributos de las relaciones sobre las que se han definido las
variables tupla.
pid avg(acant)
P1 178
P10 120
( )
( )
, ( )
( ) 200
*
pid avg acant
avg acant
pid
Z AExistencias

<



=

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 18 de 22

c) f es una frmula bien formada (FBF) que contiene:
i) las variables tupla anteriores,
ii) condiciones ( , donde es un operador escalar de comparacin (= ),
e son de la forma t.Ai o una constante),
iii) operadores
X Y
X Y
<>
lgicos ( ) y
iv) cuantificadores ( ).




La relacin definida por una expresin del CROT puede interpretarse algebraicamente como:

a) El producto cartesiano de las relaciones sobre las que se han definido t, r, .. s.
b) Seleccionar del producto anterior las tuplas para las que f es cierto. Se considera un orden de
precedencia entre operadores: operadores de comparacin, cuantificadores, operadores lgicos.
c) Proyectar la relacin resultante sobre los atributos A
i
, B
j
,..C
k
.

Puede decirse que una ocurrencia de una variable tupla en una frmula es ligada o acotada si se introduce
en ella a travs de un cuantificador y libre si no es as, entendiendo por ocurrencia de una variable en una
frmula la aparicin del nombre de la variable en dicha frmula.

3.1.3 Formulas bien formadas y variables tupla.
El siguiente conjunto de reglas define el concepto de FBF, variable tupla libre y variable tupla acotada.

a) Cualquier condicin es un FBF. En una condicin todas las ocurrencias de variables son libres.
b) ( ) ( ) Si f es una FBF tambin lo son f y f
Las ocurrencias de variables en ( ) ( ) f y f sern libres o acotadas segn lo sean en f
c) ( ) ( ) Si f y g son FBF tambin lo son f g y f g
Las ocurrencias de variables en ( ) ( ) f g y f g sern libres o acotadas segn sean en f y g .
d) Si f es una FBF en la cual t aparece como variable libre, entonces tambin son FBFs
( ) ( ) t f t f y
Las ocurrencias de t libres en f sern acotadas en ( ) ( ) t f t f y .
Cualquier otra ocurrencia de variable en f ser libre o acotada en ( ) ( ) t f t f y segn sea en f
e) Las frmulas que no se definan a partir de las reglas a, b) c) y d) no son FBF

3.1.4 Renombrado de expresiones.
Es posible dar nombre al resultado de una consulta, ya sea para poder utilizarlo posteriormente o
bien para poder renombrar una relacin o sus atributos.

( )
( ) { }
1 2 n i j k
1 i 2 j n k
, ,.. := . , . ,.. .
(B ) (t.A) (B ) (r.B) .. (B ) (s.C )
R B B B t A r B s C f
dom dom dom dom dom dom

= = =

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 19 de 22


3.1.5 Ejemplos
a) Obtener el cdigo y la descripcin de los productos de peso igual a 30
{ }
.Pid, .Pdesc Productos ( ) .Ppeso ' 30' Px Px Px Px =
b) Obtener el cdigo de los almacenes que tienen existencia del producto Televisor M2 y cantidad
que tienen en stock.
( )
( ) Productos
.Aid, .Acant AExistencias ( )
.Pid .Pid . esc = 'Televisor M2'
Px
AEx AEx AEx Px
Px AEx Px Pd

| | | |

|
| `
|
=
\ \ )

c) Almacenes que tienen existencias de ms de un producto
( )
( ) AExistencias
.Aid AExistencias ( ) .Pid <> .Pid
.Aid .Aid
AEy
AEx AEx AEy AEy AEx
AEy AEx

| | | |
|
|


| ` |
| |
=
\ \ )


d) Almacenes que tienen existencias de ms de un producto. Renombrar la relacin y el atributo que
se obtienen
( )
( ) AExistencias
( ) : .Aid AExistencias ( ) .Pid <> .Pid
.Aid .Aid
AEy
Almacenes codigo AEx AEx AEy AEy AEx
AEy AEx

| | | |
|
|

=
| ` |
| |
=
\ \ )



3.1.6 SQL vs CROT

El lenguaje estndar SQL para definicin y manipulacin de datos en SGBD relacionales est basado en
el clculo relacional orientado a tuplas.

La consulta b) Obtener el cdigo de los almacenes que tienen existencia del producto Televisor M2 y
cantidad que tienen en stock:
( )
( ) Productos
.Aid, .Acant AExistencias ( )
.Pid .Pid . esc = 'Televisor M2'
Px
AEx AEx AEx Px
Px AEx Px Pd

| | | |

|
| `
|
=
\ \ )

en SQL:
SELECT AEx.Aid, AEx.Acant
FROM Aexistencias AEx, Productos Px WHERE Px.Pid = AEx.Pid AND Px.Pdesc=Televisor M2;

Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 20 de 22


3.2 Clculo relacional orientado a dominios (CROD)
El clculo relacional orientado a dominios (CROD) es similar al CROT con la diferencia de basar sus
expresiones en variables-dominio.
3.2.1 Expresiones
Estn basadas en expresiones de comparacin denominadas : condiciones de pertenencia de la
forma:
( )
1 1 2 2 donde es una relacin y las parejas :
denotan el atributo de la relacin y es una constante o variable de dominio.
: , : .. i i
i i
R A v
A R v
R A v A v

Estas condiciones se suponen ciertas si existe en R, al menos, una tupla que satisface la condicin de
pertenencia.
Una expresin del clculo de dominios tiene la forma general:

( ) { }
1, 2,.. v v f
3.2.2 Formulas bien formadas y variables dominio.
El siguiente conjunto de reglas recogen los conceptos de FBF, variables dominio libre y variables
dominio acotada.
a) Cualquier condicin de pertenencia o condicin v
1
v
2
. es una FBF. Todas las ocurrencias de
variables son libres.
b) ( ) ( ) Si f es una FBF tambin lo son f y f
Las ocurrencias de variables en ( ) ( ) f y f sern libres o acotadas segn lo sean en f
c) ( ) ( ) Si f y g son FBF tambin lo son f g y f g
Las ocurrencias de variables en ( ) ( ) f g y f g sern libres o acotadas segn sean en f y g .
d) Si f es una FBF en la cual t aparece como variable libre, entonces tambin son FBFs
( ) ( ) t f t f y
Las ocurrencias de t libres en f sern acotadas en ( ) ( ) t f t f y .
Cualquier otra ocurrencia de variable en f ser libre o acotada en ( ) ( ) t f t f y segn sea en f
e) Las frmulas que no se definan a partir de las reglas a, b) c) y d) no son FBF

3.2.3 Renombrado de expresiones.
Al igual que en CROT es posible dar nombre al resultado de una consulta, ya sea para poder utilizarlo
posteriormente o bien para poder renombrar una relacin o sus atributos.

( ) ( ) { }
1 2 1 2 : 1, : 2.. 1, 2,.. : 1, : 2.. S B v B v v v R A v A v




Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 21 de 22

3.2.4 Ejemplos
a) Obtener el cdigo y la descripcin de los productos de peso igual a 30
( )
{ }
_ , _ Productos Pid: _ , Desc: Pd _ , Ppeso:' 30' Pid x Pdesc x Pid x esc x
b) Obtener el cdigo de los almacenes que tienen existencia del producto Televisor M2 y cantidad
que tienen en stock.
( )
AExistencias(Aid: _ , Pid: _ , ant : _ )
_ , _ _
Productos (Pid: _ , esc: 'TelevisorM2')
Aid x Pid x Ac Acant x
Aid x Acant x Pid x
Pid x Pd
| |

` |

\
)

c) Almacenes que tienen existencias de ms de un producto
( ) ( )
( )
( )
AExistencias : _ , : _
_ _ _ AExistencias : _ , : _
_ _
Aid Aid x Pid Pid x
Aid x Pid x Pid y Aid Aid x Pid Pid y
Pid x Pid y
| |
|


| `
|

\ )

d) Almacenes que tienen existencias de ms de un producto. Renombrar la relacin y el atributo
que se obtienen
( )( )
( )
( )
AExistencias : _ , : _
( ) _ _ _ AExistencias : _ , : _
_ _
Aid Aid x Pid Pid x
Almacenes codigo Aid x Pid x Pid y Aid Aid x Pid Pid y
Pid x Pid y
| |
|


| `
|

\ )

3.2.5 QBE vs CROD
El lenguaje de consulta relacional QBE (Query By Example) est basado en el clculo relacional
orientado a dominios.

QBE es un lenguaje propuesto por Zloof en el que el usuario para formular la consulta rellena una
plantilla que se presenta en pantalla.
La consulta b) Obtener el cdigo de los almacenes que tienen existencia del producto Televisor M2 y
cantidad que tienen en stock:
( )
AExistencias(Aid: _ , Pid: _ , ant : _ )
_ , _ _
Productos (Pid: _ , esc: 'TelevisorM2')
Aid x Pid x Ac Acant x
Aid x Acant x Pid x
Pid x Pd
| |

` |

\
)

En la interface QBE de Access sera:

Tablas como condiciones
de pertenencia
Bases de Datos
Sevilla, octubre 2005, V 2005.10.1
Lenguajes relacionales

Pg. 22 de 22


4 Lenguajes relacionales completos
Los dos lenguajes AR y CR son equivalentes entre s y fueron formulados por Codd para definir la mnima
capacidad expresiva a exigir a un lenguaje relacional.

Un lenguaje es relacionalmente completo si tiene al menos la misma capacidad expresiva que el CROT y
por tanto que el AR
3
.

Para comprobar la completitud de un lenguaje es suficiente demostrar que se pueden escribir expresiones
en dicho lenguaje para cada uno de los operadores del lgebra relacional (realmente bastara comprobarlo
slo para los operadores primitivos). Es decir:

( )
( ) i
Si es un lenguaje, donde es la expresin de una consulta genrica en dicho lenguaje:
, siendo un operador primitivo del i i
q
AR AR




/


Si adems el lenguaje permite el almacenamiento temporal de relaciones, cualquier relacin definida por una
expresin de CROT o AR podr ser obtenida en dicho lenguaje, teniendo as la misma capacidad expresiva
que ellos, siendo por tanto un lenguaje relacional completo.

Existe una definicin ms restrictiva asociada a la completitud de un lenguaje relacional, la cual considera
que un lenguaje es relacionalmente completo si cualquier relacin definida a partir de una expresin de
CROT o AR se puede definir con una expresin nica en dicho lenguaje.

( )
( )
( ) ( ) ( )
i j
j
Si ( ), son expresiones equivalentes de en lgebra y clculo relacional
y es un lenguaje, donde es la expresin de una consulta genrica en dicho lenguaje
( ) k i k
q AR CR q
q q AR CR





/

5 Clasificacin de los sistemas relacionales
Los SGBD relacionales pueden clasificarse en funcin de las estructuras y operadores soportados en:

Requisito
SGBD
Estructura
tabular
Listas
invertidas
Operadores
relacionales

6
Todos los
operadores del
AR
Definicin
Reglas de
Integridad y
Dominios
Tabular o semi-relacional


Mnimamente relacional




Relacionalmente completo




Plenamente relacional





3
Slo se consideran los operadores del lgebra relacional bsica.

You might also like