Sie sind auf Seite 1von 39

25/09/2013 Curso Bases de Datos 1

LENGUAJES DE BASES DE DATOS


Algebra Relacional y
Calculo Relacional
A. Apaza Tarqui
Universidad Nacional del ALTIPLANO PUNO - PERU
apazatarqui@hotmail.com
25/09/2013 Curso Bases de Datos 2
lgebra Relacional
Permite operar con el Modelo Relacional
Conjunto de operadores que toman relaciones
como sus operandos y regresan una relacin
como resultado El lgebra es cerrada
Es un formalismo que permite solicitar informacin
a las Bases de Datos
Es un lenguaje puro (en general no se implementa
directamente)
Propuesta por Codd
Se usa para la traduccin de una consulta SQL y
para optimizacin de consultas
25/09/2013 Curso Bases de Datos 3
lgebra Relacional
8 operadores iniciales clasificados en 2 grupos:
Tradicionales de la teora de conjuntos: Unin,
Interseccin, Diferencia y Producto Cartesiano
Especiales: Restriccin (o Seleccin), Proyeccin,
Reunin (join) y Divisin
Operadores adicionales: Renombrado, Agrupamiento

25/09/2013 Curso Bases de Datos 4
lgebra Relacional
Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
Cdigo Nombre Edad
2 Enrique Muoz 25
8 Jorge Arias 30
10 Juan Martnez 19
ADMINISTRADOR
PRODUCTOR
Sean las relaciones:
REPASO!!
Cul es el esquema de
la relacin
ADMINISTRADOR?
(Cdigo,Nombre,Edad)
25/09/2013 Curso Bases de Datos 5
Restriccin o Seleccin ( )
El argumento es una relacin y
una condicin
Produce una relacin R1 que
contiene todas las tuplas de R que
cumplen una condicin especfica
La condicin se construye
mediante operadores de
comparacin (=,<,> etc.) y
booleanos (AND, OR etc.)
El resultado es una nueva relacin
cuyo esquema es idntico al
esquema de R
condicin
(R)
25/09/2013 Curso Bases de Datos 6
Restriccin o Seleccin ( )
o
Edad >= 25

(Administrador):




o
Cdigo < 5

(Productor):


Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
Cdigo Nombre Edad
2 Enrique Muoz 25
Cdigo Nombre Edad
2 Enrique Muoz 25
8 Jorge Arias 30
10 Juan Martnez 19
25/09/2013 Curso Bases de Datos 7
Proyeccin (t)
Toma como argumento una relacin
R y una lista de atributos
Se utiliza para extraer atributos
(columnas) de una relacin R
El resultado es una nueva relacin
R1 cuyo esquema corresponde a la
lista de atributos proyectados
En R1 se eliminan las tuplas
duplicadas
Se puede extraer ms de una
columna a la vez
t
Lista Atributos
(R)
25/09/2013 Curso Bases de Datos 8
Proyeccin ( )
t
Cdigo,Edad
(Administrador)

Cdigo Edad
1 33
2 25
3 21
Cdigo Nombre
2 Enrique Muoz
8 Jorge Arias
10 Juan Martnez
t
Cdigo,Nombre
(Productor)
Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
Cdigo Nombre Edad
2 Enrique Muoz 25
8 Jorge Arias 30
10 Juan Martnez 19
25/09/2013 Curso Bases de Datos 9
Proyeccin ( )
Cdigo Edad
1 30
2 25
3 30
Suponga una relacin W as:
t
Edad
(W)
W
Edad
30
25
se eliminan tuplas repetidas !!
El resultado ser:
25/09/2013 Curso Bases de Datos 10
Producto Cartesiano: R1 X R2
Toma como argumentos dos relaciones R1 y R2
Da como resultado una relacin R3 cuyo esquema
consta tanto de los atributos de R1 como de los
atributos de R2
Los esquemas de R1 y R2 deben ser disjuntos, es
decir los esquemas de R1 y R2 no pueden tener
nombres de atributos en comn por qu?
Se debe usar un alias (mediante el operador ) si los
esquemas no son disjuntos
R3 contiene todas las tuplas resultantes de la
concatenacin de cada tupla de R1

con cada una de
las tuplas de R2

Renombrado de
atributos
25/09/2013 Curso Bases de Datos 11
Ejemplo
Cdigo Nombre Edad Cod Nom Edad1
1 Jorge Campos 33 2 Enrique Muoz 25
1 Jorge Campos 33 8 Jorge Arias 30
1 Jorge Campos 33 10 Juan Martnez 19
2 Enrique Muoz 25 2 Enrique Muoz 25
2 Enrique Muoz 25 8 Jorge Arias 30
2 Enrique Muoz 25 10 Juan Martnez 19
3 Esteban Paz 21 2 Enrique Muoz 25
3 Esteban Paz 21 8 Jorge Arias 30
3 Esteban Paz 21 10 Juan Martnez 19
Administrador X [
CdigoCod,NombreNom,EdadEdad1
(Productor)]
El renombrado de la relation
R(A,B,C,D) en R(A,K,L,D) se denota
BK,CL (R)
El renombrado es puramente sintctico !!
25/09/2013 Curso Bases de Datos 12
Unin: R1

R2
Toma como argumentos dos
relaciones R1 y R2 con esquemas
idnticos
Retorna una relacin R3 con el
mismo esquema de R1 y R2 que
contiene todas la tuplas de R1 y
todas las de R2, eliminando
tuplas repetidas
R1
R2
25/09/2013 Curso Bases de Datos 13
Ejemplo:
Administrador Productor:

Cdigo Nombre Edad
1 Jorge Campos 33
2 Enrique Muoz 25
3 Esteban Paz 21
8 Jorge Arias 30
10 Juan Martnez 19
25/09/2013 Curso Bases de Datos 14
Interseccin: R1 R2


Toma como argumentos dos
relaciones R1 y R2 con
esquemas idnticos
Retorna una relacin R3 con
el mismo esquema de R1 y
R2 que contiene todas las
tuplas que aparecen tanto
en R1 como en R2
R1
R2
25/09/2013 Curso Bases de Datos 15
Ejemplo
Administrador Productor

Cdigo Nombre Edad
2 Enrique Muoz 25
25/09/2013 Curso Bases de Datos 16
Diferencia: R
1
R
2

Toma como argumento dos
relaciones R1 y R2 con
esquemas idnticos
Retorna una relacin R3 con
el mismo esquema de R1 y
R2 que contiene todas las
tuplas que aparecen en R1
pero no en R2
R1
R2
25/09/2013 Curso Bases de Datos 17
Ejemplo
Administrador Productor:




Productor Administrador:

Cdigo Nombre Edad
1 Jorge Campos 33
3 Esteban Paz 21
Cdigo Nombre Edad
8 Jorge Arias 30
10 Juan Martnez 19
25/09/2013 Curso Bases de Datos 18
Reunin (JOIN)
NATURAL JOIN: R1 R2

Si R1(A,B) y R2(B,C) el resultado de R1
R2
es una relacin R3 con esquema
R3(A,B,C) donde cada tupla de R1 se
concatena con cada tupla de R2
SIEMPRE Y CUANDO tengan el mismo
valor del atributo en comn (B).
El atributo B puede ser compuesto.
25/09/2013 Curso Bases de Datos 19
Ejemplo
Cdigo Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
12 Anselmo Rodas 28 6
Depto Descripcin
1 Administracin
2 Produccin
3 Ventas
4 Finanzas
Empleado
Departamento
Atributo de
Join
Nota: En este ejemplo, el campo
Depto en Empleado NO ES CF
con respecto a la tabla Departamento
25/09/2013 Curso Bases de Datos 20
Ejemplo
Empleado Departamento
Cdigo Nombre Edad Depto Descripcin
1 Jorge Campos 33 1 Administracin
2 Enrique Muoz 25 1 Administracin
3 Esteban Paz 21 1 Administracin
8 Jorge Arias 30 2 Produccin
10 Juan Martnez 19 2 Produccin
25/09/2013 Curso Bases de Datos 21
SEMI JOIN ( )
Idntico al NATURAL JOIN pero la relacin
resultante tiene el esquema de la relacin
izquierda Utilidad?
THETA JOIN (R1 Q
Condicin
R2)
El operador de comparacin usado en la
condicin NO es el = sino alguno de los
siguientes: >, <, >=, <=,
Es equivalente a: o
Condicin
(R1 X R2)

25/09/2013 Curso Bases de Datos 22
Ejemplo
Empleado O
Depto > Dep
[
DeptoDep
(Departamento)]
Cdigo Nombre Edad Depto Dep Desc
8 Jorge Arias 30 2 1 Administracin
10 Juan Martnez 19 2 1 Administracin
12 Anselmo Rodas 28 6 1 Administracin
12 Anselmo Rodas 28 6 2 Produccin
12 Anselmo Rodas 28 6 3 Ventas
12 Anselmo Rodas 28 6 4 Finanzas
25/09/2013 Curso Bases de Datos 23
Divisin: R
1
R
2
Def 1: Sean las relaciones R1(A,B) y R2(B). El
resultado de R1 R2

es una relacin R3 cuyo
esquema esta compuesto por el atributo A,
donde para todo valor de B en R2 existe una
pareja en R1

de A con ese valor.

Def 2:
R S = {t | t e HK (R) y {t} x s _ r} con
K= esquema de R esquema de S
Tuplas de S
Tuplas de R
25/09/2013 Curso Bases de Datos 24
Ejemplo
Empleado
Cdigo Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
2 Enrique Muoz 25 2
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
Depto
1
2
Departamento
Empleado (t
Depto
(Departamento))

En este ejemplo la relacin empleado no est
normalizada, observe que la CP es (Cdigo, Depto)
y Cdigo Nombre, Edad

Cdigo Nombre Edad
2 Enrique Muoz 25
Depto Descripcin
1 Administracin
2 Produccin
25/09/2013 Curso Bases de Datos 25
Adems ..
Se permite tambin el siguiente operador:
Asignacin: VbleRelacion Relacin

Otra forma de renombrar atributos y el nombre
de la relacin

NuevoNombreRelacin(Atributos Renombrados)
(

t
(Lista Atributos)
(R))
25/09/2013 Curso Bases de Datos 26
Agrupar con funciones
: Agrupar con funciones Sum(), Avg(), Max(), Min(), Count()
Cdigo Nombre Edad Depto
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
12 Anselmo Rodas 28 6
Qu hace la siguiente consulta?
Depto

Count(Cdigo) AS conteo
(Emp)
Renombrado
de la funcin de
Grupo
Emp
Atributos de Agrupamiento Funciones de Grupo (R)
Ej. Sea:
SINTAXIS:
25/09/2013 Curso Bases de Datos 27
Extender
Extend R ADD expresin AS nuevo_atributo
Cdigo Nombre Sal Bono
1 Jorge Campos 33 1
2 Enrique Muoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martnez 19 2
12 Anselmo Rodas 28 6
Emp
Ej: Extend Emp ADD Sal*2 AS Saldobl
25/09/2013 Curso Bases de Datos 28
Ejemplo
Se genera una relacin como la original pero con
un atributo saldobl adicional:
Cdigo Nombre Sal Bono Saldobl
1 Jorge Campos 33 1 66
2 Enrique Muoz 25 1 50
3 Esteban Paz 21 1 42
8 Jorge Arias 30 2 60
10 Juan Martnez 19 2 38
12 Anselmo Rodas 28 6 56
Qu hace la siguiente consulta?
Ej: Extend Emp ADD 1 AS num, Hola AS mensaje
25/09/2013 Curso Bases de Datos 29
Clculo Relacional
Es otro Lenguaje de Consulta para BD
relacionales
Sirve para la manipulacin y extraccin de datos
a partir de las relaciones
Es un lenguaje puro (generalmente no
implementado directamente) aunque existen
prototipos (WinRDBI)
Se basa en el Clculo de predicados de primer
orden, donde una relacin expresa una propiedad
o predicado
Es cerrado relacionalmente
25/09/2013 Curso Bases de Datos 30
Clculo Relacional
El lgebra Relacional es secuencial,
procedimental
El Clculo Relacional no es procedimental.
Intenta capturar el lenguaje natural: dice qu se
quiere obtener pero no cmo
Existen 2 variantes: de Tuplas y de Dominios
Nos concentraremos en el Clculo Relacional de
Tuplas.
Concepto bsico: Tupla
Una consulta se escribe as:
{t / P(t)}
significa: el conjunto de tuplas t, tal que el
predicado P es verdadero (se cumple) para t
25/09/2013 Curso Bases de Datos 31
Clculo Relacional de Tuplas
Elementos del predicado:
t e r : la tupla t est contenida en la relacin r
t[a] : significa el valor del atributo a de la tupla t
Condiciones de comparacin: (>,>=,<,<=, =, )
Comparaciones entre atributos o entre un
atributo y una constante
Ejemplos: t1[a] t1[b] , t1[c] > 8, t1[a] = t2[b]
Cuantificadores: Existencial (-) y Universal (). Evalan a
falso o verdadero
Cuantificador Existencial
- t e r (Q(t)): Evala a verdadero si existe al menos una
tupla t de la relacin r que cumple el predicado Q.
25/09/2013 Curso Bases de Datos 32
Clculo Relacional de Tuplas
Ejemplos:
-t e r (t[b] = 11): Es verdadero si existe al menos
una tupla en r cuyo atributo b valga 11
-t e r (t[b] < 3 . t[a]=8): Es verdadero si existe al
menos una tupla en r, cuyo atributo b sea menor
que 3 y cuyo atributo a sea igual a 8
Cuantificador Universal:
t e r (Q(t)): Evala a verdadero si todas las
tuplas t de r cumplen el predicado Q

Ejemplo:
t e r (t[a]= 8): Verdadero si todas
las tuplas t de r tienen un valor de 8 en el
atributo a
25/09/2013 Curso Bases de Datos 33
Clculo Relacional de Tuplas
Condiciones Compuestas:
Son combinaciones de los elementos anteriores, mediante
los operadores: . (and), v (or), (not)
Ejemplos:
(t1 e r . t1[a] = 8)
(t1 e r . t2 e s (t2[b] > t1[c])
El cuantificador universal puede ser
expresado en trminos del cuantificador
existencial - as:

t e r (Q(t)) - t e r (Q(t))

Un ejemplo en lenguaje natural:
Todos los clientes tienen nombre
No existe un cliente que No tenga nombre
25/09/2013 Curso Bases de Datos 34
Clculo Relacional de Tuplas
La variable asociada a un cuantificador slo tiene
existencia (validez) dentro del predicado correspondiente,
es decir:
- t e r (Q(t))

La variable t slo tiene validez dentro del predicado Q. Por
lo tanto la condicin:

t1 e r . t2 e s (t2[b] > t1[c]) . t2[z]=10

Es invlida ya que t2 no existe por fuera del cuantificador
.
Note que t1 si puede aparecer dentro del cuantificador.
Se dice t2 que es una variable ligada y t1 es libre.

25/09/2013 Curso Bases de Datos 35
Clculo Relacional de Tuplas
Sean las relaciones:

Est
Ced Nom Edad
10 Pedro 14
20 Olga 29
50 Ana 30

Prof
Ced Nom Edad
45 Gloria 14
26 Dario 29
50 Ana 30
34 Cristina 32

25/09/2013 Curso Bases de Datos 36
Ejemplos Sencillos:
Clculo Relacional de Tuplas
a) Imprimir la informacin de todos los estudiantes
{t/ t e Est}

b) Igual que a) pero solo aquellos estudiantes mayores de 25
aos
{t/ t e Est . t[edad] > 25}

c) Igual que a) pero solo imprimir las cdulas
{t/ - s e Est (t[ced] = s[ced])}

d) Imprimir solo las cdulas de los estudiantes mayores de 25
aos
{t/ - s e Est (t[ced] = s[ced] . s[edad] >25)}
Ntese que para proyectar slo algunos atributos de una relacin
se requiere utilizar el cuantificador existencial
25/09/2013 Curso Bases de Datos 37
Ejemplos Sencillos:
Clculo Relacional de Tuplas
e) Igual que a) pero solo imprimir las cdulas y los nombres
{t/ - s e Est (t[ced]=s[ced] . t[nom]= s[nom])}

f) Imprimir las cdulas de los estudiantes que tambin son
profesores

{t/ - s e Est (t[ced] = s[ced]) .
- w e Prof (t[ced] = w[ced])}
g) Imprimir las cdulas de todos los estudiantes y todos los
profesores
{t/ - s e Est (t[ced] = s[ced]) v
- w e Prof (t[ced] = w[ced])}

h) Imprimir las cdulas de los estudiantes que no son profesores
{t/ - s e Est (t[ced] = s[ced]) .
- w e Prof (t[ced] = w[ced])}
25/09/2013 Curso Bases de Datos 38
Clculo Relacional de Tuplas
Supngase las relaciones A (a,b,c) y B (d,e,f)
su
producto cartesiano en clculo es:
i) {t/ - reA (- s e B ( t[a] = r[a] . t[b] = r[b] . t[c] = r[c] .
t[d] = s[d] . t[e] = s[e] . t[f] = s[f]
)
)
}

Y el renombrado se puede lograr as:
j) {t/ - e e Est (t[ced AS cdula] = e[ced])}
25/09/2013 Curso Bases de Datos 39
Clculo Relacional de Tuplas
Ya con los elementos anteriores se pueden lograr los
equivalentes a las operaciones del lgebra: restriccin,
proyeccin (ver consulta c)), unin (ver g)), interseccin
(ver f)), diferencia (ver h)), producto (ver i)), renombrado
(ver j))
La reunin (join) y la divisin se pueden derivar a partir
de las otras operaciones
No se presentar para el clculo un operador de
agregacin similar al del lgebra
Por lo tanto cualquier consulta* expresada mediante
lgebra Relacional se puede escribir tambin en Clculo
Relacional de Tuplas
Ambos lenguajes tienen la misma potencia expresiva
* Excepto ciertas consultas realizadas con el operador de agregacin .

Das könnte Ihnen auch gefallen