Vous êtes sur la page 1sur 59

lgebra Relacional

Universidad de los Andes


Demin Gutierrez
Mayo 2010

Lenguajes de Consulta
Una consulta es
bsicamente una
pregunta sobre un
hecho en
particular que
puede o no existir
en la BD

Todos los autos marca Ford...


(Lenguaje de consulta)

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

Tipos de Lenguajes de Consulta

Son lenguajes que utilizan los usuarios para


solicitar informacin a la BD
Hay de dos tipos
Procedimentales
No-procedimentales

Estas son las


bases de los
lenguajes de
consulta
comerciales

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

El estndar de facto usado hoy en da en la


industria es el SQL, aunque con la incursin de
los SGBDOO, ORMs y tecnologas similares el
OQL y sus distintas alternativas y variantes son
tambin bastante utilizados

Clculo Relacional de Tuplas

Es un lenguaje de consulta formal que permite


expresar las consultas a partir de frmulas
bien formadas, donde las variables son
interpretadas como variantes sobre las tuplas
de las tablas. Fue presentado por Codd en
1972 y se deduce del Clculo de Predicados
Una consulta en CRT es una expresin de tipo:
{t,e,x | C(t,e,x)}
Donde t,e,x son variables de tuplas y C(t,e,x) es
una expresin condicional donde intervienen t,e,x
5

Clculo Relacional de Tuplas


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

Clculo Relacional de Tuplas


Una frmula bien formada se define como:
Todo tomo es una frmula bien formada F.
Si F1 y F2 son frmulas bien formadas, entonces F1 and
F2, F1 or F2, not F1 o not F2 son frmula bien formada.
F1 es una frmula bien formada (Cuantificador
existencial, se lee, existe un...).
F1 es una frmula bien formada (Cuantificador
universal, se lee, para todo ...).

A modo informativo

Clculo Relacional de Tuplas

Ejemplo 1: Obtener la fecha de nacimiento y la


direccin del empleado (o empleados) cuyo
nombre es 'Pedro Prez':
Empleado(Cdula, Nombre, Apellido FechaN, Direccin)

{e.FechaN, e.Direccin | Empleado(e) and


e.Nombre = 'Pedro' and e.Apellido = 'Prez'}
8

Clculo Relacional de Tuplas

Ejemplo 2: Obtener el nombre y la direccin de


todos los empleados que trabajan para el
departamento 'Investigacin')
Empleado(Cdula, Nombre, Apellido FechaN, Direccin, NumDpto)
Dpto(NumDpto, NomDpto)

{e.Nombre, e.Direccin | Empleado(e) and (d)


(Dpto(d) and e.NumDpto = d.NumDpto and
d.NomDpto = 'Investigacin')}

Clculo Relacional de Tuplas

Es un lenguaje de consulta formal que


permite expresar las consultas a partir de
frmulas bien formadas, donde cada
variable se interpreta como variante
sobre el dominio del atributo de una
relacin.
Es similar al Clculo Relacional de
Tuplas y tambin se deduce del clculo
de predicados
10

Clculo Relacional de Dominios

Las variables estn asociadas a los dominios de los


atributos y se denota como
relacin(att1: variable1, att2: variable2, ... )
Ejm: ModeloCarro(modelo: m, marca: c)
los predicados utilizados se construyen igual que
para el clculo relacional de tuplas

11

Clculo Relacional de Tuplas

Ejemplo 1: Obtener el nombre y el color de


cada producto en almacn:
Producto(nroPro, nombrePro, cantidad, color)
{N, C | Producto(nombrePro: N, color: C,
cantidad > 0)}
El resultado, a diferencia del CRT son variables

12

Clculo Relacional de Tuplas


Ejemplo 2: Obtener los clientes que han comprado al
menos un producto de color verde:
Producto(nroPro, nombrePro, cantidad, color)
Venta(nroVen, fechaVen, nombreCliente, nroProVen, cantidadVen)

{ 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

Es un conjunto de operaciones que describen


paso a paso (procedimental) la forma de
transformar una serie de relaciones en otras
para as obtener una respuesta a una consulta
R2 = Operacin1 (R1)
R3 = Operacin2 (R2)
R5 = Operacin2 (R3, R4)
...

Una operacin de AR toma una serie de


relaciones de entrada y genera una relacin
de salida
14

lgebra Relacional (Operaciones)


Reunin
Natural
R |x|a,b Q

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

Todas las tuplas, pero no completas, slo se


seleccionan algunas columnas...
R'

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

marcaQ modelo color


siena
gris
Fiat
Toyota corollaXL blanco
Ka
rojo
Ford
Fiat
siena
gris
Toyota corollaXL blanco
Ford
Ka
rojo
siena
gris
Fiat
Toyota corollaXL blanco
Ka
rojo
Ford

18

Producto Cartesiano

Cada tupla de uno de los conjuntos se


combina con todas las tuplas del otro conjunto
R

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

Se seleccionan slo las tuplas que cumplen


una condicin dada
R

R'

rombo=negro(R)

21

Producto / Reunin Natural


Carro=R|x|marcaQ
R

placa
MBO34L
LDA75K
ADA89A
LBF78G
XSA67D

marca
Ford
Toyota
Fiat
Toyota
Ford

Sin embargo aqu


se perdi
informacin
(Descomposicin
con prdida)

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

Producto / Reunin Natural

Producto cartesiano con condicin de


igualdad, se combinan solo las tuplas con
valores iguales en ciertos atributos
R

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

Todas las tuplas de ambas relaciones (que


deben ser compatibles)
R

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

Slo las tuplas comunes a ambas relaciones


(que deben ser compatibles)
R

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

Tuplas que aparecen en la primera relacin


pero no en la segunda
R

R'

R'=R - Q

Cmo sera Q R?

29

Divisin

Supongamos que tenemos dos


relaciones A(x, y) y B(y) donde el
dominio de y en A y B, es el mismo.
El operador divisin A B retorna todos
los distintos valores de x tales que para
todo valor y en B existe una tupla <x,
y> en A
30

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

Tuplas de la primera que contienen a todas o


alguna de las tuplas de la segunda
R

R'

R'=R Q

32

Producto / Reunin Externa


R = Prof cdula=ced_jefeDpto
Reunin Natural
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
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

Dnde estn los dems profesores?


Dnde est el departamento de Investigacin?
33

Producto / Reunin Externa


R = Prof cdula=ced_jefeDpto
Reunin Izquierda
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

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

Producto / Reunin Externa


R = Dpto cdula=ced_jefeProf
Reunin Derecha
Dpto Cdigo
NombreD
CdJefe
01
Computacin 6.274.445
02
Investigacin
NULO
03
Control
12.123.231

Es la misma relacin resultante


que la de la transparencia anterior?

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

Producto / Reunin Externa


R = Dpto cdula=ced_jefeProf
Dpto Cdigo
NombreD
CdJefe
01
Computacin 6.274.445
02
Investigacin
NULO
03
Control
12.123.231

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

Producto / Reunin Externa


R = Prof cdula=ced_jefeDpto
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
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

Producto / Reunin Externa


R = nombreP=NULO (Dpto cdula=ced_jefeProf)
Dpto Cdigo
NombreD
CdJefe
01
Computacin 6.274.445
02
Investigacin
NULO
03
Control
12.123.231

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

Cules son los departamentos sin Jefe de


Departamento?
38

Producto / Reunin Externa


R = Dpto cdula=ced_jefeProf
Reunin Abierta
Dpto Cdigo
NombreD
CdJefe
01
Computacin 6.274.445
02
Investigacin
NULO
03
Control
12.123.231

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

Si algunas tuplas de la izquierda no tienen


pareja en la derecha, entonces se rellena con
valores nulos
R

R'

R'=R crculo Q

En este caso se est haciendo una


reunin externa izquierda (), pero
se puede hacer tambin una reunin
externa derecha () y una reunin
externa completa ()

null

40

Agrupacin (y Funciones Agregadas)


R=
P

nacionalidad

avg(edad), count(P)

Nombre Nacionalidad Edad


Pedro
Venezuela
45
Gabriel Venezuela
20
Luis
Argentina
33
Andrs
Colombia
20
Miguel
Argentina
23
Peru
Luis
34
15
Gilberto Colombia

Se agrupan los datos


usando algn tipo de
criterio y luego se
calculan funciones sobre
los datos agrupados

Posibles funciones de
agregacin: avg,
sum, max, min,
count, entre otras

Nacionalidad AVG(Edad) Count


Venezuela
32,5
2
Argentina
28
2
Colombia
17,5
2
34
1 41
Peru

Agrupacin (y Funciones Agregadas)

Se agrupan las tuplas en base al valor de


cierto atributo y luego se pueden calcular
funciones sobre atributos de las tuplas
agrupadas
R

R'

R=

crculo

count(R)

2
1

42

Ejemplos de lgebra Relacional

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

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

Presentado por Zloff en el ao 1977 y


comercializado desde 1980 por IBM.
Es un lenguaje de manipulacin de datos
grfico.
La idea de su construccin es la formulacin
de la consulta mediante un ejemplo de la
posible respuesta.
Est basado en el Clculo Relacional de
Dominios.

47

Lenguaje de Consultas QBE


Las consultas se realizan invocando los esquemas de
las tablas objeto de la consulta, las cuales sern
desplegadas en forma grfica en la pantalla. Una vez
obtenidas, se posiciona el ratn en la o las columnas
deseadas y se indica la operacin a realizar.
Producto

nroPro

nombrePro cantidad color

Producto
U.

nroPro
_np
_np

nombrePro cantidad color


_c
rojo
_c+100

48

Lenguaje de Consultas QBE


Las variables se indican con el smbolo de subrayado
como prefijo, ejemplo: _s, _3, _d5, o se subrayan,
ejemplo: s, 3, d5.
Las constantes se colocan directamente en la
columna deseada precedidas por el operador de
comparacin deseado, si no es =.
Toda variable desplegable est cuantificada
implcitamente por el cuantificador existencial
Todas las operaciones deben tener como sufijo un
punto (Ver tabla siguiente)

49

Lenguaje de Consultas QBE

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

Lenguaje de Consultas QBE

Esquema de Ejemplo:
Producto(nroPro, nombrePro, cantidad, color)

Venta(nroVen, fechaVen, nombreCliente,


nroProVen, cantidadVen)
Compra(nroCom, fechaCom, nombreProveedor,
nroProCom, cantidadComp)
51

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

SELECT nombre, cedula


FROM persona
WHERE cedula='12.343.223'

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

Vous aimerez peut-être aussi