Académique Documents
Professionnel Documents
Culture Documents
Lenguajes de Consulta
Una consulta es
bsicamente una
pregunta sobre un
hecho en
particular que
puede o no existir
en la BD
ult
s
n
placa
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D
Co
La consulta
se realiza
sobre las
relaciones de
la BD
Usuario
Aplicacin
Otros...
El resultado de
una consulta es
una coleccin de
registros de la BD
(Una Relacin)
marca
Ford
Toyota
Fiat
Toyota
Ford
Re
su
lta
placa
MBO34L
XSA67D
marca
Ford
Ford
do
Base de Datos
Relacional
Lenguajes puros
Clculo relacional de tuplas (N/P)
Clculo relacional de dominios (N/P)
lgebra relacional (P)
3
Lenguajes comerciales
SEQUEL
QBE (N/P)
SQL (P + N/P)
OQL (P + N/P) (Y todos los [Object Oriented]QL)
...entre otros
A modo informativo
A modo informativo
11
12
{ V, P | NP Venta(nombreCliente: V, nroProVen:
NP) and Producto(nroPro: NP, nombrePro: P, color =
verde) }
Se produce producto por medio de la variable NP
13
lgebra Relacional
Producto
Cartesiano
RxQ
Reunin
Externa
RQ
Interseccin
RQ
Unin
RQ
Unin
Externa
Operacin
Asignacin
Seleccin
a,b(R)
Funciones
Agregadas
Divisin
RQ
Proyeccin
a,b(R)
Otras...
Diferencia
R-Q
Conjunto completo
de operaciones del
lgebra relacional
15
Proyeccin
placa, marca(Carro)
marca,modelo,color(Carro)
Carro
placa
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D
marca
Ford
Toyota
Fiat
Toyota
Ford
placa
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D
marca
Ford
Toyota
Fiat
Toyota
Ford
modelo
color
Ka
verde
corollaXL blanco
siena
gris
corollaXL blanco
Ka
rojo
marca
Ford
Fiat
Toyota
Ford
Se eliminan todas
salvo una de las
tuplas repetidas
(Ej, <Toyota,
corollaXL, blanco>)
modelo
Ka
siena
corollaXL
Ka
color
verde
gris
blanco
rojo
16
Proyeccin
rombos(R)
Se eliminan
todas las tuplas
duplicadas
17
Producto Cartesiano
Carro = R x Q
R
placa
ADA89A
LBF78G
XSA67D
marca
Fiat
Toyota
Ford
Carro
No es relevante
para el producto
cartesiano, pero es
notable, que en
algunas tuplas
marcaR = marcaQ
placa
ADA89A
ADA89A
ADA89A
LBF78G
LBF78G
LBF78G
XSA67D
XSA67D
XSA67D
marca
Fiat
Toyota
Ford
marcaR
Fiat
Fiat
Fiat
Toyota
Toyota
Toyota
Ford
Ford
Ford
modelo
siena
corollaXL
Ka
color
gris
blanco
rojo
18
Producto Cartesiano
R'
R'=R x Q
19
Seleccin
R = marca=Ford(Carro)
Carro
placa
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D
marca
Ford
Toyota
Fiat
Toyota
Ford
color
verde
blanco
gris
blanco
rojo
placa
MBO34L
XSA67D
marca
Ford
Ford
color
verde
rojo
marca
Ford
color
rojo
R = marca=Ford color=rojo(Carro)
Carro
placa
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D
marca
Ford
Toyota
Fiat
Toyota
Ford
color
verde
blanco
gris
blanco
rojo
placa
XSA67D
20
Seleccin
R'
rombo=negro(R)
21
placa
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D
marca
Ford
Toyota
Fiat
Toyota
Ford
Carro = (R.marca=Q.marca)(R x Q)
o bien:
Carro = R |x| Q
Carro
placa
MBO34L
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D
XSA67D
marca
Ford
Toyota
Fiat
Toyota
Ford
marca
Ford
Ford
Toyota
Fiat
Toyota
Ford
Ford
modelo
Ka
corollaXL
siena
corollaXL
Ka
color
verde
blanco
gris
blanco
rojo
modelo
color
Ka
verde
Ka
rojo
corollaXL blanco
siena
gris
corollaXL blanco
Ka
verde
Ka
rojo
22
R'
R'=R crculo Q
23
Unin
R=EP
E
Cdula
9.644.667
10.133.212
11.332.334
12.562.884
20.126.112
Nombre
Pedro Prez
Gabriel Mendoza
Luis Colina
Andrs Rojas
Gilberto Zapata
Se realiza una
operacin de unin
de conjuntos. Se
eliminan las tuplas
repetidas
Cdula
8.347.223
9.644.667
10.133.212
11.332.334
12.123.231
12.562.884
20.126.112
Cdula
8.347.223
9.644.667
10.133.212
11.332.334
12.123.231
Nombre
Hector Redondo
Pedro Prez
Gabriel Mendoza
Luis Colina
Diego Dvila
Andrs Rojas
Gilberto Zapata
Nombre
Hector Redondo
Pedro Prez
Gabriel Mendoza
Luis Colina
Diego Dvila
Las relaciones
usadas como
operandos deben
ser compatibles
entre si
24
Unin
R'
R'=R Q
Se eliminan
todas las tuplas
duplicadas
25
Interseccin
R=EP
E
Cdula
9.644.667
10.133.212
11.332.334
12.562.884
20.126.112
Nombre
Pedro Prez
Gabriel Mendoza
Luis Colina
Andrs Rojas
Gilberto Zapata
Cdula
9.644.667
10.133.212
11.332.334
Cdula
8.347.223
9.644.667
10.133.212
11.332.334
12.123.231
Nombre
Pedro Prez
Gabriel Mendoza
Luis Colina
Nombre
Hector Redondo
Pedro Prez
Gabriel Mendoza
Luis Colina
Diego Dvila
Las relaciones
usadas como
operandos deben
ser compatibles
entre si
26
Interseccin
R'
R'=R Q
27
Diferencia
R=E-P
E
Cdula
9.644.667
10.133.212
11.332.334
12.562.884
20.126.112
Nombre
Pedro Prez
Gabriel Mendoza
Luis Colina
Andrs Rojas
Gilberto Zapata
Cdula
12.562.884
20.126.112
Cdula
8.347.223
9.644.667
10.133.212
11.332.334
12.123.231
Nombre
Andrs Rojas
Gilberto Zapata
Cmo sera P E?
Nombre
Hector Redondo
Pedro Prez
Gabriel Mendoza
Luis Colina
Diego Dvila
Las relaciones
usadas como
operandos deben
ser compatibles
entre si
28
Diferencia
R'
R'=R - Q
Cmo sera Q R?
29
Divisin
Divisin
R=EM M'
M
Materia Semestre
BD
8
IS
8
LC
9
SO
9
M'
M'=materia(semestre=9(M))
Materia
LC
SO
Luego...
EM
Cdula
Materia
9.644.667
BD
9.644.667
IS
10.133.212
LC
10.133.212
BD
10.133.212
SO
11.332.334
LC
11.332.334
SO
12.562.884
LC
12.562.884
BD
R=EM M'
Cdula
10.133.212
11.332.334
31
Divisin
R'
R'=R Q
32
Cdula
NombreP
CodigoDpto
6.274.445
01
Jos Mendez
Jun Zapata
7.422.114
01
8.347.223 Hector Redondo
02
9.644.667
Pedro Prez
02
11.332.334
Luis Colina
12.123.231 Diego Dvila
03
Dpto Cdigo
NombreD
CdJefe
01
Computacin 6.274.445
02
Investigacin
03
Control
12.123.231
Cdula
NombreP CdigoDpto Cdigo
NombreD
CdJefe
6.274.445 Jos Mendez
01
01
Computacin 6.274.445
12.123.231 Diego Dvila
03
03
Control
12.123.231
Cdula
NombreP
CodigoDpto
6.274.445
01
Jos Mendez
Jun Zapata
7.422.114
01
8.347.223 Hector Redondo
02
9.644.667
Pedro Prez
02
11.332.334
Luis Colina
NULO
12.123.231 Diego Dvila
03
Dpto Cdigo
NombreD
CdJefe
01
Computacin 6.274.445
02
Investigacin
NULO
03
Control
12.123.231
Cdula
NombreP
CdigoDpto Cdigo
NombreD
CdJefe
6.274.445
01
01
Computacin 6.274.445
Jos Mendez
7.422.114
Jun Zapata
01
NULO
NULO
NULO
8.347.223 Hector Redondo
02
NULO
NULO
NULO
9.644.667
Pedro Prez
02
NULO
NULO
NULO
11.332.334
Luis Colina
NULO
NULO
NULO
12.123.231 Diego Dvila
03
03
Control
12.123.231
34
Profesor
Cdula
NombreP
CodigoDpto
6.274.445
01
Jos Mendez
Jun Zapata
7.422.114
01
8.347.223 Hector Redondo
02
9.644.667
Pedro Prez
02
11.332.334
Luis Colina
NULO
12.123.231 Diego Dvila
03
R Cdigo
NombreD
CdJefe
Cdula
NombreP
CdigoDpto
Jos Mendez
01
Computacin 6.274.445 6.274.445
01
NULO
NULO
NULO
7.422.114
Jun Zapata
01
NULO
NULO
NULO
8.347.223 Hector Redondo
02
NULO
NULO
NULO
9.644.667
Pedro Prez
02
NULO
NULO
NULO
11.332.334
Luis Colina
03
Control
12.123.231 12.123.231 Diego Dvila
03
35
Profesor
Cdula
NombreP
CodigoDpto
6.274.445
01
Jos Mendez
Jun Zapata
7.422.114
01
8.347.223 Hector Redondo
02
9.644.667
Pedro Prez
02
11.332.334
Luis Colina
NULO
12.123.231 Diego Dvila
03
NombreD
CdJefe
R Cdigo
Cdula
01
Computacin 6.274.445 6.274.445
02
Investigacin
NULO
NULO
03
Control
12.123.231 12.123.231
NombreP
Jos Mendez
NULO
Diego Dvila
CdigoDpto
01
NULO
03
36
Cdula
NombreP
CodigoDpto
6.274.445
01
Jos Mendez
Jun Zapata
7.422.114
01
8.347.223 Hector Redondo
02
9.644.667
Pedro Prez
02
11.332.334
Luis Colina
NULO
12.123.231 Diego Dvila
03
Cdula
6.274.445
NULO
12.123.231
NombreP
Jos Mendez
NULO
Diego Dvila
Dpto Cdigo
NombreD
CdJefe
01
Computacin 6.274.445
02
Investigacin
NULO
03
Control
12.123.231
CdigoDpto Cdigo
NombreD
CdJefe
01
01
Computacin 6.274.445
NULO
02
Investigacin
NULO
03
03
Control
12.123.231
37
NombreD
R Cdigo
02
Investigacin
CdJefe
NULO
Profesor
Cdula
NombreP
CodigoDpto
6.274.445
01
Jos Mendez
Jun Zapata
7.422.114
01
8.347.223 Hector Redondo
02
9.644.667
Pedro Prez
02
11.332.334
Luis Colina
NULO
12.123.231 Diego Dvila
03
Cdula
NULO
NombreP
NULO
CdigoDpto
NULO
Profesor
Cdula
NombreP
CodigoDpto
6.274.445
01
Jos Mendez
Jun Zapata
7.422.114
01
8.347.223 Hector Redondo
02
9.644.667
Pedro Prez
02
11.332.334
Luis Colina
NULO
12.123.231 Diego Dvila
03
NombreD
CdJefe
NombreP
CdigoDpto
R Cdigo
Cdula
01
Computacin 6.274.445 6.274.445
01
Jos Mendez
Jun Zapata
NULO
NULO
NULO
7.422.114
01
NULO
NULO
NULO
8.347.223 Hector Redondo
02
Pedro Prez
NULO
NULO
NULO
9.644.667
02
NULO
NULO
NULO
11.332.334
Luis Colina
02
Investigacin
NULO
NULO
NULO
NULO
03
Control
12.123.231 12.123.231 Diego Dvila
03
39
Reunin Externa
R'
R'=R crculo Q
null
40
nacionalidad
avg(edad), count(P)
Posibles funciones de
agregacin: avg,
sum, max, min,
count, entre otras
R'
R=
crculo
count(R)
2
1
42
Esquema de Ejemplo:
Empleado
NombreP Inic Apellido Ced FechaN Direccin Sexo Salario CedSuper ND
Departamento
NombreD NmeroD CedGte FechaInicGte
Proyecto
NombreP NmeroP LugarP ND
Lugares_Deptos
NumeroD LugarD
Trabaja_En
Ced
NmP
Horas
Dependiente
CdEmp
NombreDep Sexo FechaN Parentesco
43
Esquema de Ejemplo:
44
TODO: Preguntas!!!
45
TODO: Falta:
Ejercicios de lgebra Relacional
46
47
nroPro
Producto
U.
nroPro
_np
_np
48
49
Operacin
Desplegar o seleccionar
Cuantificador universal
Contar
Promedio
Suma
Calcular el valor mnimo
Calcular el valor mximo
Agrupar tuplas
Ordenar en orden ascendente
Ordenar en orden descendente
Negacin lgica
Disyuncin lgica
Conjuncin lgica
QBE
P.
ALL.
CNT.
AVG.
SUM.
MIN.
MAX.
G.
AO.
DO.
OR
AND
Condiciones adicionales
se expresan en una
ventana aparte, en
algunos SGBD. Las
funciones cnt, avg,
sum, min y max deben
aplicarse a variables
precedidas con ALL. Si
no se desean eliminar
las tuplas dobles en una
proyeccin, se coloca
P.ALL._v
50
Esquema de Ejemplo:
Producto(nroPro, nombrePro, cantidad, color)
Procesamiento de Consultas
(Lo Bsico)
Anlisis
Lxico
(separar en
tokens)
UPDATE departamento
SET nombre='Control'
WHERE codigo=1
Anlisis
Sintctico
y Validacin
Optimizador
de
Consultas
Procesamiento
de la
Consulta en la
BD
52
Procesamiento de Consultas
(Lo Bsico)
Cascada de
c1 and c2 and c3(R) = c1(c2(c3(R)))
Conmutatividad de
c1(c2(R)) = c2(c1(R))
Cascada de (se ignoran todas menos la ltima)
lista1(lista2(lista3(R))) = lista1
Conmutacin de con
lista(c1(R)) = c1(lista(R))
Conmutatividad de |x| o
R1cR2 = R2cR1
53
Procesamiento de Consultas
(Lo Bsico)
Proyecto (numeroPR, nombrePR, descripcion)
Empleado (cedula, nombre, apellido, fecha_nac)
Trabaja_En (cedulaEMP, numPR, horas, categoria)
apellido, nombrePR(
numeroPR=numPR AND cedulaEMP=cedula AND
(
nombrePR='Acuario' AND horas < 20
Empleado|x| Trabaja_En |x|Proyecto))
54
Optimizacin de Consultas
apellido, nombrePR
numeroPR=numPR AND
cedulaEMP=cedula AND
nombrePR='Acuario' AND
horas < 20
X
X
Empleado
Trabaja_En
Proyecto
55
Optimizacin de Consultas
apellido, nombrePR
numeroPR=numPR
cedulaEMP=cedula
nombrePR='Acuario'
horas < 20
X
X
Empleado
Trabaja_En
Proyecto
56
Optimizacin de Consultas
apellido, nombrePR
cedulaEMP=cedula
numeroPR=numPR
X
horas < 20
Empleado
Trabaja_En
nombrePR='Acuario'
Proyecto
57
Optimizacin de Consultas
apellido, nombrePR
cedulaEMP=cedula
X
cedulaEMP,
nombrePR
numeroPR=numPR
cedula,
apellido
horas < 20
cedulaEMP,
numPR, horas
Empleado
Trabaja_En
nombrePR='Acuario'
numeroPR,
nombrePR
Proyecto
58
Gracias
Gracias!
59