Professional Documents
Culture Documents
Tema 4
Lenguajes Relacionales
Francisco Ruiz
dic-2000
documentacin preparada con ayuda de Esperanza Marcos (Universidad Rey Juan Carlos) y Mario Piattini
(Universidad de Castilla-La Mancha)
UCLM-ESI (F.Ruiz)
Tema 4
Lenguajes Relacionales
Complementar con:
* captulos 6 y 7 del libro Fundamentos y Modelos de Bases de
Datos (2 edicin). De Miguel, A.; Piattini, M.; Ra-Ma, 1999.
* apuntes de Formalizacin del Algebra Relacional y Clculo
Relacional de la asignatura.
UCLM-ESI (F.Ruiz)
BDa - 4
Objetivos
UCLM-ESI (F.Ruiz)
BDa - 4
Referencias
Principales:
[de Miguel y Piattini, 1999]
caps. 6 y 7
De Miguel, A.; Piattini, M.; Fundamentos y Modelos de Bases de Datos (2 edicin).
Ra-Ma, 1999.
Otras:
-
Silberschatz, A.; Korth, H.F.; Sudarshan, S.; Fundamentos de Bases de Datos (3 edicin).
McGraw-Hill, 1998. Captulo 5.
Ullman, J.D.; Widom, J.; Introduccin a los Sistemas de Bases de Datos. Prentice Hall,
1999. Captulos 4 y 5.
UCLM-ESI (F.Ruiz)
BDa - 4
ndice
1.
2.
3.
4.
Introduccin.
lgebra relacional.
2.1. Operadores primitivos.
2.2. Operadores derivados.
2.3. Operadores de consulta adicionales.
2.4. Operadores con valores nulos.
Clculo relacional.
3.1. Clculo relacional de tuplas.
3.2. Clculo relacional de dominios.
Lenguajes relacionales comerciales.
4.1. SQL.
4.2. SQL embebido.
4.3. SQL dinmico.
4.4. QBE.
UCLM-ESI (F.Ruiz)
BDa - 4
1. Introduccin
El modelo relacional (MR), como todo modelo de datos (MD), lleva asociado
a su parte esttica (estructura y restricciones) una dinmica que permite la
transformacin entre estados de la base de datos. Esta transformacin de
un estado origen a un estado objetivo se realiza aplicando un conjunto de
operadores, mediante los cuales se llevan a cabo los siguientes tipos de
operaciones:
insercin de tuplas
borrado de tuplas
modificacin de tuplas
consultas
BDa - 4
1. Introduccin
UCLM-ESI (F.Ruiz)
BDa - 4
2. lgebra Relacional
UCLM-ESI (F.Ruiz)
BDa - 4
2. lgebra Relacional
UCLM-ESI (F.Ruiz)
BDa - 4
2. lgebra Relacional
Asignacin:
Operacin auxiliar que se utiliza para almacenar el resultado de una
consulta en una nueva relacin o para denominar resultados intermedios
cuando se desea dividir una operacin compleja en una secuencia de
operaciones ms simples. El smbolo para representarla es una flecha:
RELACION_NUEVA O(R)
Tambin permite copiar una relacin en otra nueva ( siendo el operador
O la identidad):
R R
O renombrar los atributos de la relacin original:
RELACION_NUEVA (A1, A2,....An) O(R)
UCLM-ESI (F.Ruiz)
BDa - 4
10
2. lgebra Relacional
Algebra Relacional
Operadores primitivos + operadores derivados
Operadores primitivos:
Restriccin (seleccin)
Proyeccin
Unin
Diferencia
Producto Cartesiano
UCLM-ESI (F.Ruiz)
BDa - 4
11
2. lgebra Relacional
Seleccin (
)
Autor
Nombre
Nacionalidad
Institucin
Date
Saltor
Espaola
U.P.C.
Bertino
Italiana
U. Milan
nacionalidad=Espaola
(Autor)
Nombre
Nacionalidad
Institucin
Saltor
Espaola
U.P.C.
SELECT *
FROM autor
WHERE nacionalidad=Espaola
UCLM-ESI (F.Ruiz)
BDa - 4
12
2. lgebra Relacional
Proyeccin (
)
Autor
Institucin
nacionalidad
(Autor)
N acio nalid ad
Nombre
Nacionalidad
Date
N orteam ericana
Saltor
Espaola
U.P.C.
E spa ola
Bertino
Italiana
U. Milan
Italiana
SELECT nacionalidad
FROM autor
UCLM-ESI (F.Ruiz)
BDa - 4
13
2. lgebra Relacional
Unin (
)
Autor
Editor
Nombre
Nacionalidad
Date
Institucin
Nombre
Nacionalidad
Chen
Norteamericana ER Institute
Saltor
Espaola
U.P.C.
Yao
Norteamericana U.N.Y
Bertino
Italiana
U. Milan
Bertino
Italiana
Autor Editor
UCLM-ESI (F.Ruiz)
Nombre
Date
Saltor
Bertino
Chen
Yao
Nacionalidad
Norteamericana
Espaola
Italiana
Norteamericana
Norteamericana
Institucin
U. Milan
Institucin
Relat. Institute
U.P.C.
U. Milan
ER Institute
U.N.Y
BDa - 4
14
2. lgebra Relacional
Diferencia (-)
Autor
Editor
Nombre
Nacionalidad
Date
Institucin
Nombre
Nacionalidad
Chen
Norteamericana ER Institute
Saltor
Espaola
U.P.C.
Yao
Norteamericana U.N.Y
Bertino
Italiana
U. Milan
Bertino
Italiana
Autor - Editor
UCLM-ESI (F.Ruiz)
Nombre
Date
Saltor
Institucin
U. Milan
Nacionalidad
Institucin
Norteamericana Relat. Institute
Espaola
U.P.C.
BDa - 4
15
2. lgebra Relacional
UCLM-ESI (F.Ruiz)
BDa - 4
16
2. lgebra Relacional
EDITORIAL
Idioma Nombre_e
Pas
Ra-ma
Pez, 20
Madrid
Espaa
AddisonWesley
24
Lennon
London
UK
LIBRO x EDITORIAL
Cdigo
Ttulo
Idioma
Nombre_e
Nombre_e
Direccin
Ciudad
Pas
001
BD
Espaol
Ra-ma
Ra-ma
Pez, 20
Madrid
Espaa
001
BD
Espaol
Ra-ma
UK
Diseo
de BD
Diseo
de BD
Espaol
Ra-ma
24
Lennon
Pez, 20
London
003
AddisonWesley
Ra-ma
Madrid
Espaa
Espaol
Ra-ma
AddisonWesley
24
Lennon
London
UK
003
UCLM-ESI (F.Ruiz)
BDa - 4
17
2. lgebra Relacional
Restriccin
( )
Proyeccin
Producto ( X )
( )
a
b
c
Unin ( )
UCLM-ESI (F.Ruiz)
x
y
a
a
b
b
c
c
x
y
x
y
x
y
Diferencia ( - )
BDa - 4
18
2. lgebra Relacional
Combinacin (
)
La combinacin de dos relaciones respecto a una cierta condicin de
combinacin, es otra relacin constituida por todos los pares de tuplas ti y tj
concatenadas, tales que, en cada par, las correspondientes tuplas satisfacen la
condicin especificada.
Tambin se llama JOIN o PRODUCTO THETA.
Tambin se representa mediante el smbolo
Se corresponde con un producto cartesiano seguido de una restriccin.
Si se trata de una condicin de combinacin simple por igualdad tambin se
denomina equi-combinacin.
La condicin de combinacin, en el caso ms sencillo, est referida a dos
atributos A1i y A2j, cada uno de los cuales pertenece a una de las relaciones,
unidos por un operador de comparacin. En el caso ms general, varios pares
de atributos pueden combinarse mediante el operador lgico AND.
UCLM-ESI (F.Ruiz)
BDa - 4
19
2. lgebra Relacional
BDa - 4
20
2. lgebra Relacional
NOMBRE
Date, C.J.
Saltor, F.
Ceri, S.
NACIONALIDAD
Norteamericana
Espaola
Italiana
LIBRO
DB Systems
Basi di Dati
SQL Standard
LIBRO
AUTOR
INSTITUCION
Relational Inst.
U.P.C.
Politc. Miln
AUTOR
Date, C.J.
Ceri, S.
Date, C.J.
EDITORIAL
Addison
Clup
Addison
LIBRO
(AUTOR.nombre = LIBRO.autor)
NOMBRE
Date, C.J.
Date, C.J.
Ceri, S.
UCLM-ESI (F.Ruiz)
NACIONALIDAD
Norteamericana
Norteamericana
Italiana
INSTITUCION
Relational Inst.
Relational Inst.
Politc. Miln
LIBRO
DB Systems
SQL Standard
Basi di Dati
EDITORIAL
Addison
Addison
Clup
BDa - 4
21
2. lgebra Relacional
Interseccin (
)
AUTOR
NOMBRE
Date, C.J.
Saltor, F.
Ceri, S.
NACIONALIDAD
Norteamericana
Espaola
Italiana
NOMBRE
Chen, P.
Yao, L.
Ceri, S.
INSTITUCION
Relational Inst.
U.P.C.
Politc. Miln
NACIONALIDAD
Norteamericana
Norteamericana
Italiana
EDITOR
INSTITUCION
ER Institute
U.N.Y.
Politc. miln
AUTOR EDITOR
NOM BRE
Ceri, S.
UCLM-ESI (F.Ruiz)
NACIONALIDAD INSTITUCION
Italiana
Politc. Miln
BDa - 4
22
2. lgebra Relacional
Divisin (:)
AUTOR_EDITORIAL
NOM BRE
D ate, C .J.
C ervera, J.
Saltor, F.
C eri, S.
C ostilla, C .
C odd, E .
C ervera, J.
N A C IO N A L ID A D
N orteam ericana
E spaola
E spaola
Italiana
E spaola
N orteam ericana
E spaola
E D IT O R IA L
A ddison
R am a
Paraninfo
C lup
D iaz de Santos
Prentice H all
A ddison
EDITORIAL
EDITORIAL
Addison
Rama
AUTOR_EDITORIAL : EDITORIAL
NOMBRE
Cervera, J.
UCLM-ESI (F.Ruiz)
NACIONALIDAD
Espaola
BDa - 4
23
2. lgebra Relacional
AUTOR_ARTIC
NOMBRE
Date, C.J.
Cervera, J.
Saltor, F.
Ceri, S.
Costilla, C.
Codd, E.
NACIONALIDAD
Norteamericana
Espaola
Espaola
Italiana
Espaola
Norteamericana
NUM_ART.
27
10
14
9
8
29
AUTOR_ARTIC AGRUPACION_POR
nacionalidad, MEDIA (n artculos)
UCLM-ESI (F.Ruiz)
BDa - 4
24
2. lgebra Relacional
Cierre Transitivo
Operacin unaria definida sobre dos
atributos compatibles (que
comparten el mismo dominio), que
se obtiene por sucesivas
operaciones de combinacin,
proyeccin y unin, consistente en
aadir a la relacin de origen todas
las tuplas que se deducen,
sucesivamente, por transitividad
hasta la saturacin:
si existen las tuplas (a,b) y (b,c) se
aade (a,c)
UCLM-ESI (F.Ruiz)
TEMAS
TEMA_P
Bases de Datos
Bases de Datos
Diseo
Diseo
Diseo lgico
TEMA_S
Fundamentos
Diseo
Diseo conceptual
Diseo lgico
Diseo relacional
TEMA_S
Fundamentos
Diseo
Diseo conceptual
Diseo lgico
Diseo relacional
Diseo conceptual
Diseo lgico
Diseo relacional
Diseo relacional
BDa - 4
25
2. lgebra Relacional
Combinacin externa
Tambin llamado OUTER JOIN.
Al combinar R1 con R2, evita que las
tuplas de una relacin que no casan
con ninguna tupla de la otra
desaparezcan en el resultado (tal
como ocurre en la combinacin
normal (interna).
Segn que las tuplas a conservar sean
las de R1, o las de R2, o ambas se
tienen tres tipos:
por la izquierda:
/*
por la derecha:
*/
NOMBRE
simtrica:
/*/
Date, C.J.
Date, C.J.
Saltor, F.
Ceri, S.
UCLM-ESI (F.Ruiz)
AUTOR
NOMBRE
Date, C.J.
Saltor, F.
Ceri, S.
NACIONALIDAD
Norteamericana
Espaola
Italiana
INSTITUCION
Relational Inst.
U.P.C.
Politc. Miln
LIBRO
LIBRO
DB Systems
Basi di Dati
SQL Standard
Autor
AUTOR
Date, C.J.
Ceri, S.
Date, C.J.
/*
EDITORIAL
Addison
Clup
Addison
Libro
(AUTOR.nombre=LIBRO.autor)
NACIONALIDAD
Norteamericana
Norteamericana
Espaola
Italia
INSTITUCION
Relational Inst.
Relational Inst.
U.P.C.
Politc. Miln
LIBRO
DB Systems
SQL Standard
Nulo
Basi di Dati
EDITORIAL
Addison
Addison
Nulo
Clup
BDa - 4
26
2. lgebra Relacional
a
1
1
1
1
1
1
1
2
2
Operadores MAYBE
Son un grupo de operadores que
tienen en cuenta la lgica trivaluada,
incorporando en el resultado las
tuplas que pueden ser ciertas.
Existe una versin MAYBE para
cada operador de los ya estudiados
donde
puede
producirse
una
comparacin en la que intervienen
valores nulos.
R1
a
1
1
2
Nulo
b
5
Nulo
4
2
Nulo
UCLM-ESI (F.Ruiz)
R2
c
5
2
Nulo
Nulo
d
3
4
6
5
Nulo
MAYBE R1 R2
b=c
Nulo
Nulo
3
3
3
3
b
5
5
5
c
5
Nulo
5
2
Nulo
Nulo
Nulo
Nulo
Nulo
Nulo
Nulo
4
4
2
2
2
Nulo
Nulo
5
2
Nulo
Nulo
2
Nulo
Nulo
Nulo
Nulo
Nulo
Nulo
d
3
6
5
3
4
6
5
6
5
4
6
5
3
4
6
5
BDa - 4
27
2. lgebra Relacional
Operadores MAYBE
EDITORIAl
Addison
Addison
UCLM-ESI (F.Ruiz)
NACIONALIDAD
Norteamericana
Norteamericana
Espaola
INSTITUCION
Relational Inst.
Relational Inst.
U.P.C.
LIBRO
DB Systems
SQL Standard
Nulo
EDITORIAl
Addison
Addison
Nulo
BDa - 4
28
3. Clculo Relacional
UCLM-ESI (F.Ruiz)
BDa - 4
29
3. Clculo Relacional
Ejemplos:
La unin de dos relaciones R S puede expresarse en CRT as:
{ t R(t) S(t) }
La diferencia de dos relaciones R - S se expresa de la siguiente forma:
{ t R(t) S(t) }
UCLM-ESI (F.Ruiz)
BDa - 4
30
3. Clculo Relacional
UCLM-ESI (F.Ruiz)
BDa - 4
31
3. Clculo Relacional
Ejemplos:
La unin de dos relaciones R S se expresa en CRD as:
{ t1, t2, ..., tk R(t1, t2, ..., tk) S(t1, t2, ..., tk) }
La diferencia de dos relaciones R - S se expresa de la siguiente forma:
{ t1, t2, ..., tk R(t1, t2, ..., tk) S(t1, t2, ..., tk) }
UCLM-ESI (F.Ruiz)
BDa - 4
32
3. Clculo Relacional
UCLM-ESI (F.Ruiz)
BDa - 4
33
4.1 SQL
Evolucin Resumida:
1975:
1977:
1979:
1986:
1987:
1989:
1992:
1999:
UCLM-ESI (F.Ruiz)
BDa - 4
34
4.1 SQL
Esquemas
Dominios
Tablas
Columnas
Restricciones y reglas de integridad
Vistas
Catlogos
Privilegios
Transacciones
....
El lenguaje SQL-92 se estudia en detalle en las prcticas de laboratorio.
Ver apndice con la sintaxis de SQL-92.
UCLM-ESI (F.Ruiz)
BDa - 4
35
4.1 SQL
UCLM-ESI (F.Ruiz)
BDa - 4
36
?
Variables
anfitrin
UCLM-ESI (F.Ruiz)
BDa - 4
37
Las sentencias SQL manejan conjuntos de filas mientras que el lenguaje anfitrin
(Cobol, Basic, C) slo puede manejarlas de una en una.
Para resolver esta discordancia (conocida como impedance mismatch), el SQL
soporta el concepto de cursor, ofreciendo sentencias para declararlos (DECLARE
CURSOR FOR), abrirlos (OPEN), cerrarlos (CLOSE) y leerlos (FETCH).
Declaracin de un cursor:
<declaracin de cursor>::=
DECLARE <nombre del cursor> [INSENSITIVE][SCROLL] CURSOR
FOR <sentencia SELECT>
Ejemplo:
DECLARE cursor_e CURSOR FOR
SELECT Cdigo, Nombre, Dir, Ciudad
FROM Editorial
ORDER BY Ciudad DESC;
UCLM-ESI (F.Ruiz)
BDa - 4
38
UCLM-ESI (F.Ruiz)
BDa - 4
39
4.3 QBE
Zona para
nombre de
tabla
Zona para
operador de
fila
UCLM-ESI (F.Ruiz)
BDa - 4
40
4.3 QBE
SISTEMA
CALCULO
P.
U.
I.
D.
G.
ALL.
UNQ.
AO (n)
DO (n)
SUM.
CNT.
AVG.
MAX.
MIN.
=, >, <
>=, <=, <>
IN
LIKE
BETWEEN
+, -, *, /
LOGICA
Lgica
FUNCIONES
COMPARACION
UCLM-ESI (F.Ruiz)
BDa - 4
41
4.3 QBE
cliente
prstamo
UCLM-ESI (F.Ruiz)
sucursal
nombre
calle
ciudad
P._t1
P._t2
p._t3
n-prstamo
cliente
importe
_t1
> 300000
BDa - 4
42