Documente Academic
Documente Profesional
Documente Cultură
Una consulta es
bsicamente una
pregunta sobre un Todos los autos marca Ford...
hecho en (Lenguaje de consulta)
particular que
puede o no existir
en la BD placa marca
MBO34L Ford
a
sult LDA75K Toyota
n
Co
ADA89A Fiat
LBF78G Toyota
XSA67D Ford
La consulta
se realiza
sobre las
relaciones de
Usuario la BD
Aplicacin
Otros...
Re
su Base de Datos
lta
El resultado de do Relacional
placa marca
una consulta es MBO34L Ford
una coleccin de XSA67D Ford
registros de la BD
(Una Relacin)
2
Tipos de Lenguajes de Consulta
Lenguajes puros
Clculo relacional de tuplas (N/P)
Clculo relacional de dominios (N/P)
lgebra relacional (P)
3
Tipos de Lenguajes de Consulta
Lenguajes comerciales
SEQUEL
QBE (N/P)
SQL (P + N/P)
OQL (P + N/P) (Y todos los [Object Oriented]QL)
...entre otros
tomos:
Las variables estn asociadas a las tuplas de las tablas y se
denota como relacin(variable). Ej: Modelo(M).
Los valores constantes estn asociados a los valores de los
dominios de los atributos y las funciones generadoras de los
mismos se denotan como variable.atributo. Ej: M.marca
Los predicados utilizados se construyen con los operadores de
comparacin {<, , >, , =, } y constantes.
Ejm: M.marca fiat.
A modo informativo
6
Clculo Relacional de Tuplas
A modo informativo
7
Clculo Relacional de Tuplas
8
Clculo Relacional de Tuplas
10
Clculo Relacional de Dominios
11
Clculo Relacional de Tuplas
{ 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
Divisin Proyeccin
a,b(R) Otras...
RQ
Diferencia
Conjunto completo
R-Q
de operaciones del
lgebra relacional
15
Proyeccin
placa, marca(Carro)
marca,modelo,color(Carro)
R placa marca
Q marca modelo color
MBO34L Ford
Ford Ka verde
LDA75K Toyota
Fiat siena gris
ADA89A Fiat
Toyota corollaXL blanco
LBF78G Toyota
Ford Ka rojo
XSA67D Ford 16
Proyeccin
Se eliminan
todas las tuplas
duplicadas
17
Producto Cartesiano
Carro = R x Q
R placa marca Q marca modelo color
ADA89A Fiat Fiat siena gris
LBF78G Toyota Toyota corollaXL blanco
XSA67D Ford Ford Ka rojo
R Q R'
R'=R x Q
19
Seleccin
R = marca=Ford(Carro)
Carro placa marca color
MBO34L Ford verde
R placa marca color
LDA75K Toyota blanco
MBO34L Ford verde
ADA89A Fiat gris
XSA67D Ford rojo
LBF78G Toyota blanco
XSA67D Ford rojo
R = marca=Ford color=rojo(Carro)
R R'
rombo=negro(R)
21
Producto / Reunin Natural
Carro=R|x|marcaQ
R Q R'
R'=R crculo Q
23
Unin
R=EP
R Cdula Nombre
8.347.223 Hector Redondo
9.644.667 Pedro Prez
Las relaciones
Se realiza una usadas como
operacin de unin 10.133.212 Gabriel Mendoza
operandos deben
de conjuntos. Se 11.332.334 Luis Colina
ser compatibles
eliminan las tuplas 12.123.231 Diego Dvila entre si
repetidas 12.562.884 Andrs Rojas
20.126.112 Gilberto Zapata 24
Unin
R Q R'
R'=R Q
Se eliminan
todas las tuplas
duplicadas
25
Interseccin
R=EP
Las relaciones
R Cdula Nombre usadas como
9.644.667 Pedro Prez operandos deben
10.133.212 Gabriel Mendoza ser compatibles
11.332.334 Luis Colina entre si
26
Interseccin
R Q R'
R'=R Q
27
Diferencia
R=E-P
Las relaciones
R Cdula Nombre usadas como
12.562.884 Andrs Rojas operandos deben
20.126.112 Gilberto Zapata ser compatibles
entre si
Cmo sera P E? 28
Diferencia
R Q R'
R'=R - Q
Cmo sera Q R? 29
Divisin
30
Divisin
R=EM M'
M Materia Semestre
BD 8 M' Materia
IS 8 LC
LC 9 M'=materia(semestre=9(M)) SO
SO 9
Luego...
EM Cdula Materia
9.644.667 BD
9.644.667 IS
10.133.212 LC R Cdula
10.133.212 BD 10.133.212
10.133.212 SO 11.332.334
11.332.334 LC R=EM M'
11.332.334 SO
12.562.884 LC
12.562.884 BD 31
Divisin
R Q R'
R'=R Q
32
Producto / Reunin Externa
R = Prof cdula=ced_jefeDpto
Reunin Natural
R = Prof cdula=ced_jefeDpto
Reunin Izquierda
R = Dpto cdula=ced_jefeProf
Reunin Derecha
R = Dpto cdula=ced_jefeProf
36
Producto / Reunin Externa
R = Prof cdula=ced_jefeDpto
37
Producto / Reunin Externa
R = Dpto cdula=ced_jefeProf
Reunin Abierta
Dpto Cdigo NombreD CdJefe Profesor Cdula NombreP CodigoDpto
01 Computacin 6.274.445 6.274.445 Jos Mendez 01
02 Investigacin NULO 7.422.114 Jun Zapata 01
03 Control 12.123.231 8.347.223 Hector Redondo 02
9.644.667 Pedro Prez 02
11.332.334 Luis Colina NULO
12.123.231 Diego Dvila 03
null
R= nacionalidad
avg(edad), count(P)
R R'
R= crculo
count(R) 1 2
42
Ejemplos de lgebra Relacional
Esquema de Ejemplo:
Empleado
NombreP Inic Apellido Ced FechaN Direccin Sexo Salario CedSuper ND
Departamento Lugares_Deptos
NombreD NmeroD CedGte FechaInicGte NumeroD LugarD
Proyecto Trabaja_En
NombreP NmeroP LugarP ND Ced NmP Horas
Dependiente
CdEmp NombreDep Sexo FechaN Parentesco
43
Ejemplos de lgebra Relacional
Esquema de Ejemplo:
44
Ejemplos de lgebra Relacional
TODO: Preguntas!!!
45
TODO: Falta:
Ejercicios de lgebra Relacional
46
Lenguaje de Consultas QBE
Operacin QBE
Desplegar o seleccionar P.
Condiciones adicionales
Cuantificador universal ALL. se expresan en una
Contar CNT. ventana aparte, en
Promedio AVG. algunos SGBD. Las
Suma SUM. funciones cnt, avg,
Calcular el valor mnimo MIN. sum, min y max deben
Calcular el valor mximo MAX. aplicarse a variables
Agrupar tuplas G. precedidas con ALL. Si
Ordenar en orden ascendente AO. no se desean eliminar
Ordenar en orden descendente DO.
las tuplas dobles en una
Negacin lgica
proyeccin, se coloca
Disyuncin lgica OR
Conjuncin lgica AND P.ALL._v
50
Lenguaje de Consultas QBE
Esquema de Ejemplo:
51
Procesamiento de Consultas
(Lo Bsico)
Anlisis
Lxico UPDATE departamento
(separar en SET nombre='Control'
tokens)
WHERE codigo=1
Anlisis
Sintctico
y Validacin
Optimizador
de
Consultas
Cascada de
c1 and c2 and c3(R) = c1(c2(c3(R)))
Conmutatividad de
c1(c2(R)) = c2(c1(R))
Conmutacin de con
lista(c1(R)) = c1(lista(R))
Conmutatividad de |x| o
R1cR2 = R2cR1
53
Procesamiento de Consultas
(Lo Bsico)
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
55
Optimizacin de Consultas
apellido, nombrePR
numeroPR=numPR
cedulaEMP=cedula
nombrePR='Acuario'
horas < 20
X
apellido, nombrePR
cedulaEMP=cedula
numeroPR=numPR
X
horas < 20 nombrePR='Acuario'
Empleado Trabaja_En Proyecto
57
Optimizacin de Consultas
apellido, nombrePR
cedulaEMP=cedula
X
numeroPR=numPR
cedulaEMP,
nombrePR
X
cedula, horas < 20 nombrePR='Acuario'
apellido
cedulaEMP,
numeroPR,
numPR, horas nombrePR
Empleado Trabaja_En Proyecto
58
Gracias
Gracias!
59