Sie sind auf Seite 1von 22

Departamento de Lenguajes y Sistemas Informticos

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


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

Bases de Datos

Lenguajes relacionales

Sevilla, octubre 2005


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

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

Pg. 2 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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 procedural1. Tanto el AR como el CR son lenguajes de especificacin2 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:

Base de datos {Ri}

Consulta q Q n
( (.. ( ( {Ri}))))
n 1 2 1

Q : Programa algebraico, n : Transformacin algebraica

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 {Ri}


Consulta q F ( {Ri})
F : Frmula lgica

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.


Pg. 3 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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.

R ( A : D A : D A : D ) o tambin R ({ A : D })
1 1, 2 2, .. n n i j

A la relacin R se le asocian los siguientes nombres calificados de atributos:


R.A R.A R.A
1, 2, .. n

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.

Pg. 4 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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


Dadas R ({ Ai : Di}) y R ({Bj : Ej}) , i n, j m
R es compatible en unin con S si puede establecerse una biyeccin entre sus esquemas o
intensiones de modo que los constituyentes que se correspondan
[ Ai : Di ] [ Bj : Ej ] tienen el mismo dominio: dom( Ai) = dom( Bj )
Como consecuencia: i n Ej / Di = Ej; n = m
Las denominaciones de los atributos no tienen que ser necesariamente idnticas

2.5 Operadores relacionales


2.5.1 Unin
Sean R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones compatibles en unin.

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

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 ProductosPedidos
pid pdesc ppeso pprecio pid pdesc ppeso pprecio
P1 Televisor M1 27 56000 P1 Televisor M1 27 56000
P2 Televisor M2 30 78000 P2 Televisor M2 30 78000
P3 Televisor M3 35 97000 P11 Mini TK68 10 142000
P10 Mini TK67 12 112000 P20 Cadena A4 10 20000
P11 Mini TK68 10 142000

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

Pg. 5 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.2 Interseccin

Sean R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones compatibles en unin.

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

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 ProductosPedidos
P1 Televisor M1 27 56000 pid pdesc ppeso pprecio
P2 Televisor M2 30 78000 P1 Televisor M1 27 56000
P3 Televisor M3 35 97000 P2 Televisor M2 30 78000
P10 Mini TK67 12 112000 P11 Mini TK68 10 142000
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

Pg. 6 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.3 Diferencia

Sean R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones compatibles en unin.

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


i i

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 ProductosPedidos
P1 Televisor M1 27 56000 pid pdesc ppeso pprecio
P2 Televisor M2 30 78000 P1 Televisor M1 27 56000
P3 Televisor M3 35 97000 P2 Televisor M2 30 78000
P10 Mini TK67 12 112000 P11 Mini TK68 10 142000
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 R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones.

se define Z *= R S , como la relacin derivada de esquema Z * {R. A : D }  {S .B : Ej}


i i j

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

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

El producto cartesiano es asociativo y conmutativo.

Pg. 7 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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

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

S ( B1,B 2,.. Bn ) = ( R ( A1, A2,.. An ) )


aplica cada atributo de R sobre cada atributo de S, estableciendo una nueva denominacin para los
atributos y para la relacin, tal que:

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

Es posible, adems, renombrar el resultado de una consulta

( ( (
S ( B1, B 2,.. Bn ) = n n 1 .. 2 1 ( { 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

Pg. 8 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.6 Restriccin

Sean R ({ Ai : Di}) una relacin y f una frmula.

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


f
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 Ai Aj Ai a
donde Ai y Aj son nombres de atributos de R y a una constante
tal que dom( Ai ) = dom( Aj ) y dom( Ai ) = dom(a ).
es un operador escalar de comparacin (= <>).

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

Formula bien formada (FBF) en AR:


a) Toda condicin Ai Aj Ai 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
P1
pdesc
Televisor M1
ppeso
27
pprecio
56000
Peso 30
Productos
P2 Televisor M2 30 78000
P3 Televisor M3 35 97000 pid pdesc ppeso pprecio
P10 Mini TK67 12 112000 P2 Televisor M2 30 78000
P11 Mini TK68 10 142000 P3 Televisor M3 35 97000

Pg. 9 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.7 Proyeccin

Sean R ({ Ai : Di}) una relacin y un subconjunto de atributos B = {Bj} , B R

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


B

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 AExistencias
Pid
P10 120
P11 345 pid
P3 5000 P1
P1 200 P2
P2 956 P3
P3 134 P10
P10 120 P11
P11 542

Pg. 10 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.8 Divisin

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

R( A, B )
se define Z* = , como la relacin derivada de esquema Z * ( A{ Ai : Di})
S ( B)
y extensin z * {t Z * /b S tb R}

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

AExistencias aid
Aid , Pid A2
A4
Pr oductos
Pid

Expresando la divisin como diferencias:

R( A, B )
C ( A) = es equivalente a:
S ( B)

C ( A) = R S R R
A
A
A

Pg. 11 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.9 -concatenacin
Sean
R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones tales que dom( Ai ) = dom( Bj )
y un escalar de comparacin (= <> ) ;

se define Z* = R 6 S,
R. Ai S .Bj
(
como la relacin derivada de esquema Z * {R. Ai : Di} {S .Bj : Ej} )
y extensin
z * {( t = rs ) Z * /r R s S ( r. Ai s.Bj = 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:
Z* = R 6
R. Ai S .Bj
S=
R. A S .B
i
( R S)
j

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 6 S

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..

Si X = ( X 1, X 2, .. Xk ) = ( A1, A2, .. An )  (B B 1, 2, .. Bm )
Si Y = (Y 1, Y 2, ..Yp ) = ( A1, A2, .. A )  (B B
n 1, 2, .. Bm )



Z *= R6 S = ( R S ) = ( R S )
X

R .Y = S .Y X 1, X 2 ,.. Xk
R.Y 1 = S .Y 1
R .Y 2 = S .Y 2
.. R .Yp = S .Yp

Pg. 12 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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

Se ha insertado una tupla nueva en AExistencias<A4,P22,10> y otra en


Productos<P20,Productonuevo,10,100>.

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

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

Pg. 13 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.10 -concatenacin externa por la izquierda

Sean
R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones, tal que dom( Ai ) = dom( Bj )
y un escalar de comparacin (= <> ) ; se define Z * = R 7 S , como la relacin derivada de
R. Ai S . Bj


esquema Z * {R. Ai : Di}  {S .Bj : Ej} y

rs Z * sii: r R s S ( r. Ai s.Bj = Verdad )


extensin z * t /t =
rn Z */(Bj n.Bj = null ) sii : r R / s S ( r. Ai s.Bj = Verdad )

Z * = AExistencias 7 Productos
AExistencias.pid=Productos.pid
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

Pg. 14 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.11 -concatenacin externa por la derecha


Sean R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones, tal que dom( Ai ) = dom( Bj )
y un escalar de comparacin(= <> )

se define Z * = R 8 S , como la relacin derivada de esquema Z * {R. Ai : Di}  {S .Bj : Ej} y
R. Ai S . Bj
rs Z * sii: r R s S ( r. Ai s.Bj = Verdad )
extensin z * t /t =
ns Z */(Aj n. Aj = null ) sii : s S / r R ( r. Ai s.Bj = Verdad )

Z * = AExistencias 8 Productos
AExistencias.pid=Productos.pid
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 R ({ Ai : Di}) y S ({Bj : Ej}) dos relaciones, tal que dom( Ai ) = dom( Bj )
y un escalar de comparacin(= <> ) ;se define Z * = R 9 S , como la relacin derivada de
R. Ai S . Bj

(
esquema Z * {R. Ai : Di} {S .Bj : Ej} y extensin )
rs Z * sii: r R s S ( r. Ai s.Bj = Verdad )

z * t /t = rn Z */(Bj n.Bj = null ) sii : r R / s S ( r. Ai s.Bj = Verdad )

ns Z */(Aj n. Aj = null ) sii : s S / r R ( r. Ai s.Bj = Verdad )
Z * = AExistencias 9 Productos
AExistencias.pid=Productos.pid
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

Pg. 15 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.13 Agregacin

Sea R ({ Ai : Di})

se define Z * = F
g ( R ) donde g es el criterio de agrupacin y F es un conjunto de funciones
agregadas:
1) si no hay criterios de agrupacin;
la relacin R es particionada en una nica clase de equivalencia R0=R

g=
2) A{ Ai} , A R; R queda particionada en clases de equivalencia,
tales que cada particin Ri de tuplas t R tiene el mismo valor de A

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

y extensin
z * {t Z * /Ri se obtiene una sola tupla agregada t aplicando las funciones de agregacin Fi}
AExistencias
aid pid acant Productos existentes en los distintos almacenes:
A2 P1 156 count ( pid )
A2 P2 1234 Z * = ( AExistencias ),
A2 P3 69
count ( pid )
A2
A2
P10
P11
120
345
o bien: Z * = ( AExistencias ) ,
A3 P3 5000 count (*)
A4 P1 200 Z* = ( AExistencias )
A4 P2 956
Count(*)
A4 P3 134
11
A4 P10 120
A4 P11 542

Productos distintos existentes en los distintos almacenes:


count ( distinct ( pid ))
Z* = ( AExistencias ) Count(distinct(pid))
5

Productos existentes en cada almacn:


aid , count (distinct ( pid )) aid Distinct(pid)
Z* =
aid ( AExistencias ) A2 5
A3 1
A4 5

Cantidad mxima de un producto en cada almacn:


aid ,max(acant )
Z * = aid ( AExistencias ) aid
A2
Max(acant)
1234
A3 5000
A4 956

Pg. 16 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

2.5.14 Agregacin con restricciones sobre resultados

(F)
Se define Z * = gf ( R ) , 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

( pid ,avg ( acant ) ) pid avg(acant)
Z * = pid ( AExistencias ) P1
avg ( acant ) < 200
178
P10 120

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.


Sea R ({ Ai : Di}) una relacin y t R una tupla de R , t.Ai representa el valor del atributo Ai 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:

{t.A , r.B ,.. s.C ( f )}


i j k

donde:

a) t,r,..s son variables tupla.


b) Ai, Bj,.. Ck son nombres de atributos de las relaciones sobre las que se han definido las
variables tupla.

Pg. 17 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

c) f es una frmula bien formada (FBF) que contiene:


i) las variables tupla anteriores,
ii) condiciones ( X Y , donde es un operador escalar de comparacin (= <>),
X e Y son de la forma t.Ai o una constante),
iii) operadores 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 Ai, Bj,..Ck.

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 ) y t ( f )
Las ocurrencias de t libres en f sern acotadas en t ( f ) y t ( f ) .
Cualquier otra ocurrencia de variable en f ser libre o acotada en t ( f ) y t ( f ) 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.

2 n
{
R ( B ,B ,.. B ) := t.A , r.B ,.. s.C ( f )
1 i j k
}
dom(B1) = dom(t.Ai) dom(B2) = dom(r.Bj) .. dom(Bn ) = dom(s.Ck)

Pg. 18 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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

(Px )
Px.Pid = AEx .Pid Px. Pdesc = 'Televisor M2'

c) Almacenes que tienen existencias de ms de un producto


AExistencias ( AEy )

AEx.Aid AExistencias ( AEx ) (AEy ) AEy.Pid <> AEx.Pid
AEy.Aid = AEx.Aid

d) Almacenes que tienen existencias de ms de un producto. Renombrar la relacin y el atributo que


se obtienen
AExistencias ( AEy )

Almacenes(codigo) := AEx.Aid AExistencias ( AEx ) (AEy ) AEy.Pid <> AEx.Pid

AEy.Aid = AEx.Aid

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 ( Px )
AEx.Aid, AEx.Acant AExistencias ( AEx ) (Px)
Px.Pid = AEx.Pid Px.Pdesc = 'Televisor M2'

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

Pg. 19 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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:
R ( A :v , A :v ..
1 1 2 2
) donde R es una relacin y las parejas A : v i i

denotan el atributo Ai de la relacin R y vi es una constante o variable de dominio.


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:

{v1,v2,..(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 v1v2. 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 ) y t ( f )
Las ocurrencias de t libres en f sern acotadas en t ( f ) y t ( f ) .
Cualquier otra ocurrencia de variable en f ser libre o acotada en t ( f ) y t ( f ) 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.

S( B :v1, B :v2..) {v1,v2,.. R ( A :v1, A :v2..)}


1 2 1 2

Pg. 20 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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

Aid _ x ( Pid _ x )( Pid _ y ) AExistencias ( 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 ( Aid : Aid _ x, Pid : Pid _ x )

Almacenes(codigo) Aid _ x ( Pid _ x )( Pid _ y ) AExistencias ( 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:Aid _ x, Pid:Pid _ x, Acant : Acant _ x)
Aid _ x, Acant _ x ( Pid _ x )
Productos (Pid:Pid _ x, Pdesc: 'TelevisorM2')
En la interface QBE de Access sera:

Tablas como condiciones


de pertenencia

Pg. 21 de 22
Bases de Datos Lenguajes relacionales
Sevilla, octubre 2005, V 2005.10.1

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 AR3.

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:

Si es un lenguaje, donde ( ) es la expresin de una consulta genrica q en dicho lenguaje:


i AR i ( ) /, siendo i un operador primitivo del 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.

Si q i ( AR ) j(CR), son expresiones equivalentes de q en lgebra y clculo relacional


y es un lenguaje, donde ( ) es la expresin de una consulta genrica en dicho lenguaje
q k ( ) /q i ( AR ) j(CR ) k ( )

5 Clasificacin de los sistemas relacionales


Los SGBD relacionales pueden clasificarse en funcin de las estructuras y operadores soportados en:

Requisito Estructura Listas Operadores Todos los Definicin


SGBD tabular invertidas relacionales operadores del Reglas de
6 AR Integridad y
Dominios
Tabular o semi-relacional

Mnimamente relacional

Relacionalmente completo

Plenamente relacional

3 Slo se consideran los operadores del lgebra relacional bsica.


Pg. 22 de 22

Das könnte Ihnen auch gefallen