Algebra Relacional

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Algebra Relacional

ORGANIZACI ON DE ARCHIVOS Y BASE DE DATOS I


LICENCIATURA EN CIENCIAS DE LA COMPUTACI ON
UNIVERSIDAD NACIONAL DE SAN LUIS
A NO 2006
1. Introducci on
Un modelo de bases de datos es una herramienta que nos permite almacenar y administrar informaci on. Para ello,
nos provee de los medios necesarios para denir las restricciones asociadas a los datos, especicar las estructuras de
almacenamiento utilizadas y realizar consultas y/o actualizaciones en la base. Para especicar las estructuras de datos
y restricciones se utiliza un lenguaje de denici on de datos (DDL) y para la manipulaci on se utiliza un lenguaje de
manipulaci on de datos (DML).
Existen diferentes modelos de bases de datos; cada uno utiliza alguna herramienta matem atica para la descripci on de
la base. En los Modelos de Red, Sem anticos, Orientados a Objetos se utilizan los grafos; en el Modelo Jer arquico, los
arboles; y en el Modelo Relacional, las relaciones.
El Modelo Relacional fue presentado por Codd en una publicaci on en 1970, reri endose a un modelo de datos espec-
co, con Relaciones como unico objeto de tratamiento en el modelo, un algebra como lenguaje de consulta, a la que
llam o

Algebra Relacional (AR), y ninguna manera de expresar actualizaciones, restricciones y/o c alculos sobre el mo-
delo. Posteriormente, Codd present o otro lenguaje basado en el C alculo de Predicados de la L ogica de Primer Orden,
mostrando que era equivalente en su poder expresivo al AR primeramente presentada; a este segundo lenguaje lo deno-
min o C alculo Relacional (CR).
El ARse considera un lenguaje procedural, dado que, como se ver a m as adelante, el c alculo de una nueva relaci on se hace
especicando las operaciones a realizar y el orden en que deben ser evaluadas, semejante a un lenguaje de programaci on de
tipo procedural. El CR en cambio, es un lenguaje no procedural; se deben especicar las condiciones que debe satisfacer
la relaci on resultante, pero de ninguna manera se indica el procedimiento para lograrlo.
En las siguientes publicaciones, Codd present o la primera restricci on de integridad: Dependencia Funcional. Luego de
este inicio, numerosos investigadores continuaron dedic andose a profundizar en el tema, deniendo m as restricciones de
integridad, elaborando una rica teora del Modelo Relacional y creando lenguajes basados en el AR/CRcon mayor poder
expresivo, con adaptaciones basadas en el paradigma de la programaci on l ogica.
En el Modelo Relacional, las relaciones son almacenadas en estructuras de datos simples tal como la lista secuencial
desordenada, com unmente denominada tabla. Los administradores de bases de datos relacionales proveen la facilidad de
crear estructuras de acceso
1
, en funci on de especicaciones brindadas por el usuario. Estas estructuras de acceso, por lo
general, son arboles B, com unmente denominados ndices.
1
Estas estructuras de acceso pueden ser vistas como servicios secundarios sobre la relaci on. En este caso, no hay servicio primario, sino un espacio
primario de nuplas
1
Resulta sencillo entender la idea subyacente en el modelo, por lo que es accesible a una gran cantidad de usuarios. Por
otro lado, el Modelo Relacional ha dado pie a que investigadores de la teora de bases de datos lo utilicen como marco
formal de estudio, dado sus aspectos te oricos, la variedad de herramientas, t ecnicas y lneas de investigaci on que provee,
que permiten la comprensi on y el estudio de otros modelos de datos.
Intuitivamente, la informaci on es representada en tablas, en las cuales cada la representa un objeto especco o un con-
junto de objetos, y todas las las con un sentido y estructura uniforme son agrupadas en una entidad. Cada tabla almacena
una relaci on. En la siguiente secci on veremos algunos conceptos preliminares sobre relaciones antes de introducirnos en
el tema.
2. Relaciones
Desde un punto de vista matem atico, una relaci on se dene del siguiente modo: dados los conjuntos D
1
, D
2
, . . . , D
n
llamados dominios, una relaci on R es un subconjunto del producto cartesiano de n dominios, R D
1
D
2
D
n
.
Ejemplo:
Proveedores #Proveedor Nombre P Categora P Ciudad P
#Proveedor = Alfa num erico

Nombre P = Alfa

Categora P = 10, , 50
Ciudad P = Alfa

Donde : Alfa=a, b,. . ., z, a, e, , o, u, u, y Alfa num erico = Alfa 0, 1, 2, . . . , 9


2
En este caso, a los elementos de R los llamamos nuplas, distinguiendo que las componentes de las mismas guardan un
orden establecido por el orden en que se dispusieron los dominios en el producto cartesiano. As, el producto cartesiano
D
1
D
2
D
n
es distinto de D
2
D
1
D
n
, por lo que, por ejemplo, la nupla (d
1
, d
2
, d
3
, . . . , d
n
) es diferente
de (d
2
, d
1
, d
3
, . . . , d
n
)
Esto signica que, desde un enfoque matem atico, el orden en que se disponen los dominios en una relaci on, tiene impor-
tancia, no as el nombre de los mismos. Incluso, algunos autores, consideran un dominio universal sobre el que se dene
la relaci on: R D
n
, donde D puede ser visto como la uni on de los D
i
, es decir D =

n
i=1
D
i
. Bajo esta perspectiva, los
atributos no necesariamente deben llevar nombre, a lo sumo interesa la cantidad de dominios, denominada aridad de la
relaci on.
Esta perspectiva es denominada por algunos autores como no nombrada.
Desde un punto de vista computacional, podemos relajar la condici on de orden, puesto que no resulta relevante: cualquier
permutaci on de dominios representa la misma informaci on.
Para ello, tenemos que distinguir entre atributo y dominio. El atributo representa un dato particular de un objeto. Lleva
nombre propio y un dominio asociado de donde toma sus valores, como por ejemplo: enteros, cadenas de caracteres,
valores booleanos, etc.
El conjunto de atributos determina la constituci on de la relaci on, y tal conjunto es llamado esquema de la relaci on. Al
conjunto de elementos que conforman la relaci on en un determinado instante del tiempo se lo denomina instancia de la
relaci on.
Cada elemento de la instancia de la relaci on es llamado tupla. Una tupla t es denida como una funci on o aplicaci on sobre
el conjunto de atributos, donde cada valor que toma la tupla es obtenido de un conjunto de constantes, correspondiente al
dominio del atributo. Formalmente:
Sean:
U = A
1
, A
2
, . . . , A
n

dom : U D
1
, D
2
, . . . , D
n

D =

n
i=1
D
i
OA y BDI - Universidad Nacional de San Luis 2
Una tupla t se dene como:
t : U D tal que t(A
i
) = v
s
v
s
dom(A
i
), para i = 1 . . . n
As, una relaci on se dene mediante su esquema, y la instancia se dene como un conjunto de aplicaciones o funciones
totales, del siguiente modo:
r t/t : U D t(A
i
) dom(A
i
)
Notar que, hablar de esquema e instancia de relaci on es an alogo al concepto tipo - valor de una variable: la declaraci on de
una variable se corresponde con la especicaci on del esquema de una relaci on; y el valor de la variable en un instante de
tiempo dado se corresponde con el concepto de instancia de la relaci on .
Esta perspectiva es denominada por algunos autores como nombrada.
Ejemplo:
Para la relaci on denida en el primer ejemplo, el esquema de la relaci on es:
Proveedores = #Proveedor, Nombre P, Categora P, Ciudad P
Para cada atributo del esquema tenemos los siguientes dominios:
dom(#Proveedor) = Alfa num erico

dom(Nombre P) = Alfa

dom(Categora P) = 10, . . . , 50
dom(Ciudad P) = Alfa

Una instancia posible de esta relaci on es Prov = t


1
, t
2
, donde cada tupla est a denida del siguiente modo:
t
1
(#Proveedor) = S1 t
2
(#Proveedor) = S2
t
1
(Nombre P) = Smith t
2
(Nombre P) = Jones
t
1
(Categora P) = 20 t
2
(Categora P) = 10
t
1
(Ciudad P) = Londres t
2
(Ciudad P) = Pars
Otra forma de expresar Prov es:
Prov = (#Proveedor, S1), (Nombre P, Smith), (Categora P, 20), (Ciudad P, Londres),
(#Proveedor, S2), (Nombre P, Jones), (Categora P, 10), (Ciudad P, Pars)
2
La correspondencia entre ambas perspectivas es natural, dado que:
1. Una tupla t = (A
1
, a
1
), (A
2
, a
2
), . . . , (A
n
, a
n
) denida como funci on, puede ser vista como una nupla 'a
1
, a
2
, . . . , a
n
`
considerando un orden sobre los atributos A
1
, A
2
, . . . , A
n
.
2. Dada una nupla 'a
1
, a
2
, . . . , a
n
` puede ser interpretada como una funci on sobre el conjunto de los enteros 1, 2, . . . , n
con t(i) = a
i
para i = 1, 2, . . . , n.
Esta correspondencia, nos permite ir de una perspectiva a otra, seg un la conveniencia eventual. Por ello, es com un encon-
trar en la bibliografa el uso de una u otra, de acuerdo a la elecci on del autor.
Nos referiremos a subtupla (subnupla) cuando necesitemos considerar parte de la misma. La parte que nos interese se
corresponder a con un subconjunto de atributos del esquema de la relaci on. Veamos esto un poco m as en detalle.
Desde la perspectiva nombrada, una tupla t es una funci on, y por consiguiente podemos restringirla a un subconjunto de
su dominio
2
. Sea R un esquema de relaci on, r una instancia con esquema R, t r, X R, la proyecci on de la tupla t
en X, que denotaremos con
X
(t), se dene como :

X
(t) = t
|X
Observaci on: cuando X es un conjunto vaco,
X
(t) = siendo el valor nulo.
2
Recordar lo visto en Estructuras de Datos y Algoritmos sobre restricci on de una funci on a un subconjunto del dominio
OA y BDI - Universidad Nacional de San Luis 3
Desde una perspectiva no nombrada, una nupla es una secuencia de valores. Sea R una relaci on de aridad n, y sea m una
nupla de R . Utilizaremos la notaci on m(i) para referirnos a la i- esima componente de la nupla m; notar que m(i) D
i
.
Luego, si X = 'i
1
, i
2
, . . . , i
k
` con i
j
1, 2, . . . , n, i
j
< i
j+1
, la subnupla m(X) , tambi en denominada X-valor, se
dene como:
m(X) = (m(i
1
), m(i
2
), . . . , m(i
k
))
Resumiendo tenemos:
No nombrada Nombrada
Nuplas (secuencias ordenadas) Tuplas (funciones)
Dominios Atributos(nombre y dominio)
Relaci on (producto cartesiano y aridad) Relaci on (esquema e instancia)
3. El Modelo Relacional
El modelo de base de datos relacional maneja una unica componente, que es la relaci on. Una base de datos relacional
es un conjunto de relaciones que representan una realidad dada. Por lo tanto, para describir una base, desde laperspectiva
no nombrada, debemos especicar cu ales son las relaciones con sus respectivas aridades. Ydesde la perspectiva nombrada,
interesa distinguir entre el esquema de la base de datos, que especica la estructura de la misma, formado por un conjunto
de esquemas de relaciones; y la instancia de la base de datos, que especica el contenido actual, formado por un conjunto
de instancias de relaciones denidas seg un los esquemas antes mencionados.
Desde una perspectiva nombrada, los atributos son vistos como parte de la base de datos y pueden ser usados en los
lenguajes de consulta y/o actualizaci on y en la especicaci on de restricciones (dependencias). Y desde una perspectiva no
nombrada, los atributos son ignorados, y s olo la aridad es de inter es.
En este curso utilizaremos la siguiente notaci on:
Constantes: a, b, c
Atributos: A, B, C
Conjuntos de atributos: U, V, W, X
Esquemas de relaci on: R, S
Instancias de relaci on: r, s
Esquemas de base de datos : ,
Instancias de base de datos: /

, /

Tuplas: t, u
Para abreviar la notaci on, denotaremos con esq(r) al esquema de la instancia de relaci on r, y con inst(R) a una instancia
del esquema de relaci on R. Para denotar todas las instancias de relaciones con esquema R, usaremos la notaci on Rel(R).
4. Denici on del

Algebra Relacional
El

Algebra Relacional (AR) se dene como una 7-upla = 'U, D, dom, , /

, , ` donde:
1. U es un conjunto de atributos llamado Esquema de la Relaci on Universal, U = A
1
, A
2
, . . . , A
n
. A cada atributo
A
i
le corresponde un dominio D
i
de donde toma sus valores.
2. D es el conjunto formado por todos los dominios D
i
: D = D
1
, D
2
, . . . , D
n
.
3. dom es una funci on, dom : U D tal que dom(Ai) D.
4. es un conjunto de esquemas de relaci on, = R
1
, R
2
, . . . , R
p
, donde U =

p
i=1
R
i
. es llamado descompo-
sici on de U y conforma el Esquema de la Base de Datos.
5. /

es un conjunto de instancias de relaciones /

= r
1
, r
2
, . . . , r
p
, donde cada r
i
es una instancia de relaci on
con esquema de relaci on R
i
, y conforma la Instancia de la Base de Datos.
6. es un conjunto de operadores relacionales que permiten comparar valores del dominio que sean compatibles. Se
utlizan los siguientes operadores relacionales: <, >, , , =, =. Con estos operadores se arman f ormulas seg un la
siguiente sintaxis:
T erminos:
Si A
i
U, entonces A
i
es t ermino.
Si c D
j
para alg un j, entonces c es un t ermino.
OA y BDI - Universidad Nacional de San Luis 4

Atomos de comparaci on
La expresi on T ermino T ermino es un atomo de comparaci on, donde .
F ormulas
Un atomo de comparaci on es una f ormula.
Si F
1
y F
2
son f ormulas, entonces: F
1
F
2
, F
1
F
2
, F
1
son f ormulas.
Nada m as es f ormula
Para interpretar estas f ormulas y obtener un valor de verdad Verdadero o Falso, es necesario darle sem antica a los
operadores de comparaci on y a los conectivos l ogicos. Entonces para:
Los operadores de comparaci on: se debe denir un orden total sobre cada dominio de atributo del esquema
universal.
Los operadores l ogicos: consideraremos las funciones
3
correspondientes a tales conectivos como com unmen-
te se conocen.
7. es un conjunto de operadores del AR cuyos operandos son las relaciones. La evaluaci on de estos operadores
devuelve como resultado una relaci on. Los operadores algebraicos se clasican en Primitivos y No primitivos
Los operadores algebraicos primitivos son seis: Proyecci on() Selecci on(), Uni on (), Diferencia (-), Producto
cartesiano extendido () y Renombre(). Los operadores algebraicos no primitivos son varios, pero nosotros s olo
veremos los siguientes: Intersecci on(), Ensamble Natural (), Ensamble con selecci on (
F
) y Divisi on().
Una Expresi on algebraica E, es una expresi on legalmente formada
4
, que dene una funci on desde un conjunto relaciones
a una unica relaci on. El esquema y la instancia de la relaci on resultante dependen de los esquemas y de las instancias
corrientes del conjunto de relaciones intervinientes en la expresi on.
Denotaremos con esq(E) al esquema de la relaci on resultante de la evaluaci on de E. Primero deniremos el esquema de
E en forma recursiva. Para la denici on de su instancia, veremos los operadores en detalle individualmente m as adelante.
Entonces denimos el esq(E) seg un las siguientes reglas:
1. Si E es r
i
entonces esq(E) es el esquema de relaci on para r
i
, esq(E) = esq(r
i
) = R
i
.
2. Si E es una relaci on constante, entonces el esq(E) es el esquema de la relaci on constante, esq(E) = esq(r
i
) = R
i
.
3. Si E = (E
1
E
2
), o E = (E
1
E
2
), o E = (E
1
E
2
), o E =
F
(E
1
), entonces el esq(E) = esq(E
1
).
4. Si E =
X
E
1
entonces esq(E) = X
5. Si E = (E
1
E
2
) entonces el esq(E) = esq(E
1
) esq(E
2
).
6. Si E = E
1
E
2
entonces el esq(E) = esq(E
1
) esq(E
2
).
7. Si E = E
1

F
E
2
entonces el esq(E) = esq(E
1
) m as
5
esq(E
2
)
8. Si E = E
1
E
2
entonces el esq(E) = esq(E
1
) mas esq(E
2
), con renombre de atributos.
9. Si E =
AiBi
(E
1
) entonces el esq(E) = esq(E
1
) A
i
B
i
.
Si E involucra las relaciones r
1
, r
2
, . . . , r
n
con esquemas R
1
, R
2
, . . . , R
n
, entonces E es la funci on:
E : Rel(R
1
) Rel(R
2
) Rel(R
n
) Rel(esq(E))
Cualquier relaci on resultante de la evaluaci on de una expresi on algebraica tiene asociado un esquema y una instancia de
relaci on, pero no un nombre, por lo que ella no pertenece al conjunto de relaciones que conforman la base de datos. Es
una relaci on temporal, que puede ser utilizada como operando de otras operaciones algebraicas s olo si la expresi on que la
dene es una subexpresi on de otra m as general que las abarque.
3
Es decir, las tablas de verdad conocidas
4
Mediante reglas sint acticas. Ver cada operador
5
Es m as porque van todos los atributos participantes; los repetidos se renombran autom aticamente
OA y BDI - Universidad Nacional de San Luis 5
5. Los operadores algebraicos
5.1. Los operadores primitivos
Los operadores algebraicos denominados primitivos, son aquellos para los que no hay una combinaci on de operadores
primitivos que produzcan el mismo resultado.
Un operador es considerado unario si toma una unica relaci on como operando y binario si toma dos relaciones como
operandos. Los operadores algebraicos primitivos y unarios son la Proyeccion, Selecci on y Renombre. Los operadores
algebraicos primitivos y binarios son Uni on, Diferencia y Producto Cartesiano.
PROYECCI ON
Sean R un esquema de relaci on, X un subconjunto de R y r una instancia de relaci on con esquema R. Denotamos con

X
(r) a la proyecci on de r sobre el conjunto X. La relaci on resultante tiene esquema X y su instancia est a conformada
por el conjunto de tuplas obtenidas proyectando todas las tuplas t de r a X. Ejemplos:
Proveedores = #Proveedor, Nombre P, Categora, Ciudad P
Prov :
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas

#Proveedor,Nombre P
(Prov) :
Categora,Ciudad P
(Prov) :
# Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 30 Atenas
S5 Adams
2
Sea
X
(r) = s, luego tenemos los siguientes casos extremales:
X = entonces esq(s) = y s = .
X = esq(r) = R entonces esq(s) = esq(r) = R y s = r.
r = entonces esq(s) = X y s = .
SELECCI ON
Sean R un esquema de relaci on, r una instancia de relaci on con esquema R y F una f ormula, descripta en t erminos de
los atributos del esquema de la relaci on. Denotamos con
F
(r) a la selecci on de tuplas de r respecto de F. La relaci on
resultante tiene esquema R, y su instancia est a conformada por el conjunto de tuplas que cumplen con una condici on
establecida por medio de la evaluaci on de F.
Ejemplos:
Prov :
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 20 Atenas
OA y BDI - Universidad Nacional de San Luis 6

(Categora P=30)
(Prov) :
#Proveedor Nombre P Categora P Ciudad P
S3 Blake 30 Pars

(Categora P<30 (Ciudad P=Atenas Ciudad P=Pars))


(Prov) :
#Proveedor Nombre P Categora P Ciudad P
S2 Jones 10 Pars
S5 Adams 20 Atenas
2
Sea
F
(r) = s luego tenemos los siguientes casos extremales:
Ninguna tupla de r satisface F, entonces s =
Todas las tuplas satisfacen la f ormula F , entonces s = r
UNI ON
Sean R un esquema de relaci on, r y s instancias de relaci on con esquema R. Denotamos con r s a la uni on de tuplas de
ambas relaciones. La relaci on resultante tiene esquema R, y su instancia est a conformada por el conjunto de tuplas que
pertenecen a r o a s o ambas.
Este operador cumple con las propiedades conmutativa y asociativa.
Ejemplo:
Prov1 :
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
Prov2 :
#Proveedor Nombre P Categora P Ciudad P
S6 Jones 40 Londres
S2 Jones 10 Pars
S7 Adams 10 Roma
Prov1 Prov2 :
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
S6 Jones 40 Londres
S7 Adams 10 Roma
2
Sea r s = v, luego tenemos los siguientes casos extremales:
esq(r) = , entonces esq(v) = y v = .
r = entonces v = s.
r = s entonces v = r = s.
OA y BDI - Universidad Nacional de San Luis 7
DIFERENCIA
Sean R un esquema de relaci on, r y s instancias de relaci on con esquema R. Denotamos con rs a la diferencia de tuplas
de ambas relaciones. La relaci on resultante tiene esquema R, y su instancia est a conformada por el conjunto de tuplas que
pertenecen a r y no pertenecen a s.
Ejemplo:
Prov1 :
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
Prov2 :
#Proveedor Nombre P Categora P Ciudad P
S6 Jones 40 Londres
S2 Jones 10 Pars
S7 Adams 10 Roma
Prov1 Prov2 :
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
2
Sea r s = v, luego tenemos los siguientes casos extremales:
esq(r) = entonces esq(v) = y v = .
r = entonces v = .
r = s entonces v = .
PRODUCTO CARTESIANO
Sean R y S esquemas de relaciones, r y s instancias de relaci on con esquema R y S respectivamente. Denotamos con
r s al producto cartesiano extendido de ambas relaciones. La relaci on resultante tiene esquema R S con renombre
de atributos repetidos. La instancia de la relaci on resultante est a conformada por el conjunto de tuplas t tal que, hay una
tupla t
r
en r y hay una tupla t
s
en s que cumplen las siguientes restricciones:
-
R
(t) = t
r
-
S
(t) = t
s
Este operador cumple con las propiedades conmutativa y asociativa.
Ejemplo:
Proveedores = #Proveedor, Nombre P, Categora, Ciudad
Proyectos = #Proyecto, Nombre, Ciudad
Prov :
#Proveedor Nombre P Categora P Ciudad
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
OA y BDI - Universidad Nacional de San Luis 8
Proy :
#Proyecto Nombre Ciudad
J1 Ordenador Pars
J2 Perforadora Roma
Prov Proy :
#Proveedor Nombre P Categora P Ciudad #Proyecto Nombre Ciudad
S1 Smith 20 Londres J1 Ordenador Pars
S2 Jones 10 Pars J1 Ordenador Pars
S3 Blake 30 Pars J1 Ordenador Pars
S1 Smith 20 Londres J2 Perforadora Roma
S2 Jones 10 Pars J2 Perforadora Roma
S3 Blake 30 Pars J2 Perforadora Roma
Notar que :
esq(Prov Proy) = #Proveedor, Nombre P, Categora, Ciudad, #Proyecto, Nombre, Ciudad

2
Sea r s = v, luego tenemos los siguientes casos extremales:
esq(r) = entonces esq(v) = esq(s) = S y v = .
r = entonces v = .
RENOMBRE
Sean R un esquema de relaci on, r una instancia de relaci on con esquema R, A y B atributos tales que: A R y
B / R. Denotamos con
AB
(r) al cambio de nombre del atributo A por B. La relaci on resultante tiene esquema
(R A B). La instancia de la relaci on no vara.
OA y BDI - Universidad Nacional de San Luis 9
Ejemplo:
Prov :
#Proveedor Nombre P Categora P Ciudad
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas

CiudadCiudad P
(Prov)
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
2
5.2. Los operadores no primitivos
Los siguientes operadores algebraicos son no primitivos y binarios.
INTERSECCI ON
Sean R un esquema de relaci on, r y s instancias de relaciones con esquema R. Denotamos con r s a la intersecci on
de tuplas de ambas relaciones. La relaci on resultante tiene esquema R, y su instancia est a conformada por el conjunto de
tuplas que pertenecen a r y a s.
Propiedades: conmutativo, asociativo.
Ejemplo:
Prov1 :
#Proveedor Nombre P Categora P Ciudad P
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
Prov2 :
#Proveedor Nombre P Categora P Ciudad P
S6 Jones 40 Londres
S2 Jones 10 Pars
S7 Adams 10 Roma
Prov1 Prov2 :
#Proveedor Nombre P Categora P Ciudad P
S2 Jones 10 Pars
2
Sea r s = v, luego tenemos los siguientes casos extremales:
esq(r) = entonces esq(v) = y v = .
r = entonces v = .
r = s entonces v = r.
OA y BDI - Universidad Nacional de San Luis 10
DIVISI ON
Sean R y S esquemas de relaci on, S R, r y s instancias de relaci on con esquema R y S respectivamente. Denotamos
con r s a la divisi on de r por s. La relaci on resultante tiene esquema (R S). Esta operaci on realiza una selecci on de
subtuplas de r, considerando que las mismas est en relacionadas con todas las tuplas dadas en s. Es decir, la instancia de
la relaci on est a conformada por el conjunto de tuplas t, tal que para toda tupla t
s
de s, hay una tupla t
r
en r que cumplen
las siguientes restricciones:
-
RS
(t
r
) = t
-
S
(t
r
) = t
s
Ejemplos:
Obtener los proyectos provistos por todos los proveedores
Pp = #Proveedor, #Proyecto
Pr = #Proveedor
pp : pr :
#Proveedor #Proyecto #Proveedor
S1 J1 S1
S1 J4 S2
S1 J2 S3
S1 J3
S2 J1
S2 J3
S3 J1
S3 J3
Pp Pr
#Proyecto
J1
J3
Obtener todos los proyectos a los que el proveedor S1 provee las partes P1 y P2, y el proveedor S2 provee la parte P3
PPP = #Proveedor, #Parte, #Proyecto
R = #Proveedor, #Parte
ppp : r :
#Proveedor #Parte #Proyecto #Proveedor #Parte
S1 P1 J1 S1 P1
S1 P1 J4 S1 P2
S1 P2 J1 S2 P3
S1 P1 J2
S1 P4 J1
S1 P3 J3
S1 P2 J2
S2 P3 J1
S2 P3 J2
S2 P3 J3
S2 P3 J4
ppp r
#Proyecto
J1
J2
2
Sea r s = v, luego tenemos los siguientes casos extremales:
esq(r) = esq(s) entonces esq(v) = y v = .
OA y BDI - Universidad Nacional de San Luis 11
esq(r) = entonces esq(v) = y v = .
esq(s) = entonces esq(v) = esq(r) y v = r.
s = entonces v =
(RS)
(r).
r = entonces v =
ENSAMBLE NATURAL
Sean R y S esquemas de relaciones, r y s instancias de relaci on con esquema R y S respectivamente. Denotamos con
r s al ensamble natural de r y s. La relaci on resultante tiene esquema R S. Esta operaci on realiza el ensamblaje de
tuplas por atributos comunes con iguales valores. Es decir, la instancia de la relaci on est a conformada por el conjunto de
tuplas t tal que hay una tupla t
r
en r y hay una tupla t
s
en s que cumplen las siguientes restricciones:
-
R
(t) = t
r
-
S
(t) = t
s
-
(RS)
(t
r
) =
(RS)
(t
s
)
Este operador cumple con las propiedades conmutativa y asociativa.
Ejemplo:
Proveedores = #Proveedor, Nombre P, Categora P, Ciudad
Proyectos = #Proyecto, Nombre, Ciudad
Prov :
#Proveedor Nombre P Categora P Ciudad
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
Proy :
#Proyecto Nombre Ciudad
J1 Ordenador Pars
J2 Perforadora Roma
J3 Impresora Atenas
Prov Proy
#Proveedor Nombre P Categora P Ciudad #Proyecto Nombre
S2 Jones 10 Paris J1 Ordenador
S3 Blake 30 Paris J1 Ordenador
S5 Adams 30 Atenas J3 Impresora
2
Sea r s = v, luego tenemos los siguientes casos extremales:
esq(r) = esq(s) entonces esq(v) = esq(r) = R y v = r s.
esq(r) = entonces esq(v) = esq(s) = S y v = .
r = entonces v = .
(R S) = entonces v = r s.
ENSAMBLE CON SELECCI ON
Sean R y S esquemas de relaciones, r y s instancias de relaciones con esquema R y S respectivamente y F una f ormula
formada con atributos de R y S. Denotamos con r
F
s al ensamble de r y s condicionado a F. La relaci on resultante
OA y BDI - Universidad Nacional de San Luis 12
tiene esquema R m as S con renombre de atributos repetidos. Esta operaci on realiza el ensamblaje de tuplas y selecciona
las que satisfacen la f ormula F. Es decir, la instancia de la relaci on est a conformada por el conjunto de tuplas t tal que
hay una tupla t
r
en r y hay una tupla t
s
en s que cumplen las siguientes restricciones:
-
R
(t) = t
r
-
S
(t) = t
s
- t satisface la f ormula F
Este operador cumple con las propiedades conmutativa y asociativa.
Ejemplo:
Proveedores = #Proveedor, Nombre P, Categora P, Ciudad
Proyectos = #Proyecto, Nombre, Ciudad
Prov :
#Proveedor Nombre P Categora P Ciudad
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
Proy :
#Proyecto Nombre Ciudad
J1 Ordenador Pars
J2 Perforadora Roma
Proy
(Ciudad=Ciudad

Categora<30)
Proy
#Proveedor Nombre P Categora P Ciudad #Proyecto Nombre Ciudad
S1 Smith 20 Londres J1 Ordenador Pars
S1 Smith 20 Londres J2 Perforadora Roma
S2 Jones 10 Pars J2 Perforadora Roma
S4 Clark 20 Londres J1 Ordenador Pars
S4 Clark 20 Londres J2 Perforadora Roma
Notar que:
esq(Prov
Ciudad=Ciudad

Categora<30
Proy) =
#Proveedor, Nombre P, Categora P, Ciudad, #Proyecto, Nombre, Ciudad

2
Sea r
F
s = v, luego tenemos los siguientes casos extremales:
esq(r) = esq(s) entonces esq(v) = esq(r) m as esq(s) completamente renombrado.
esq(r) = entonces esq(v) = esq(s) = S.
r = entonces v = .
Ninguna tupla satisface F, entonces v = .
Todas las tuplas satisfacen F, entonces v = r s.
6. Expresividad del

Algebra Relacional
El AR es un lenguaje restringido en cuanto a la cantidad de clases de consultas que puede expresar. A continuaci on
mostraremoscu ales son las clases no expresables.
CONSULTAS DE CLAUSURA
OA y BDI - Universidad Nacional de San Luis 13
Dado un conjunto A includo en un universo |, y una propiedad {, la clausura de A respecto de { se dene como el
menor conjunto B (B |), tal que: A B y B cumple la propiedad {.
Dado que las relaciones son conjuntos de nuplas, este concepto es aplicable a relaciones. En este caso, para las relaciones
binarias
6
, hay dos clausuras que son de particular inter es: la clausura transitiva y la clausura reexo-transitiva .
La clausura transitiva de una relaci on R XX, denotada con R
+
, es la menor relaci on que contiene a R y que cumple
con la propiedad transitiva. R
+
puede calcularse de la siguiente manera:
R
+
=

i=1
R
i
donde: R
1
= R
y R
i
= R R
i1
An alogamente, la clausura reexo-transitiva de una relaci on R X X, denotada con R

, es la menor relaci on que


contiene a R y que cumple con las propiedades reexiva y transitiva. R

puede calcularse de la siguiente manera:


R

= R
+
R
0
donde: R
0
= (x, x)/x X
Si X es un conjunto nito, la uni on de las R
i
tambi en lo ser a , dado que llegar a un punto en que ninguna nupla nueva
pueda agregarse a la clausura, es decir existir a un i tal que R
i1
= R
i
. Este i depender a de la instancia de la relaci on, en
el peor de los casos i llegar a hasta n, donde n =[ X [.
Aho y Ullman demostraron que la clausura no es expresable ni en AR ni en CR, y por lo tanto tampoco lo son las
consultas que involucren c alculo de clausura. Esto se debe a que en AR, no hay manera de expresar una iteraci on que se
realiza un n umero arbitrario de veces.
Al principio, el poder expresivo de un lenguaje de consultas a bases de datos relacionales se meda en funci on del AR,
consider andoselo relacionalmente completo si era capaz de expresar por lo menos la misma clase de consultas que el AR.
A partir de la demostraci on de Aho y Ullman, el concepto de completitud relacional cambi o radicalmente, demostr andose
en este nuevo sentido que ni el AR ni el CR eran completos. Para denir completitud se desarroll o una amplia y compleja
teora al respecto, la cual es materia de estudio e investigaci on en bases de datos.
6
Notar que estamos trabajando desde una perspectiva no nombrada
OA y BDI - Universidad Nacional de San Luis 14
Ejemplo:
Sea G = (P, R) un 1-digrafo, donde P es el conjunto de v ertices, y R P P es el conjunto de arcos
7
. Bajo la
perspectiva del modelo relacional, la base de datos estar a conformada por dos relaciones: la relaci on P de aridad 1 y la
relaci on R de aridad 2. Supongamos que queremos resolver en AR la siguiente consulta: obtener los pares de v ertices
para los cuales existe un camino en G.
Notar que :
R
0
= (x, x)/x P est an todos los pares de v ertices para los cuales existe un camino de longitud cero.
R
1
= R est an todos los pares de v ertices para los cuales existe un camino de longitud uno.
R
2
= R R est an todos los pares de v ertices para los cuales existe un camino de longitud dos.
.
.
.
R
i
= R R
i1
est an todos los pares de v ertices para los cuales existe un camino de longitud i.
Luego en R

n
i=0
R
i
est an todos los pares de v ertices para los que existe un camino.
En AR podemos hacer las sucesivas composiciones de la siguiente manera:
R
0
:
1

=2

(P P)
R
1
: R
R
2
:
1,4
(
2

=3

(R R
1
))
R
3
:
1,4
(
2

=3

(R R
2
))
.
.
.
R
n
:
1,4
(
2

=3

(R R
n1
))
Finalmente : R

: R
0
R
1
R
2
R
n
El problema fundamental es que no podemos expresar la uni on generalizada como una operaci on unica, sino que debemos
hacerla explcitamente para cada n. En general, no podemos dar una expresi on algebraica general para la clausura
transitiva de cualquier relaci on. A un considerando que tuvi eramos la cardinalidad de P que nos brinda una cota m axima
para la longitud de caminos elementales, siempre depender a de ese n umero y la expresi on variar a de acuerdo al mismo.
CONSULTAS DE CARDINALIDAD No es posible contar la cantidad de tuplas que conforman la instancia de una relaci on,
es decir su cardinalidad. No hay manera de seleccionar las tuplas una por una, de modo de poder escribir una expresi on
que denote un contador de elementos de un conjunto.
CONSULTAS CON OPERACIONES ARITM ETICAS, MANIPULACI ON DE CADENAS DE CARACTERES
No es posible realizar c alculos aritm eticos entre los valores de atributos de tipo num erico, dado que el AR no est a provista
de las operaciones aritm eticas. Tampoco se pueden realizar operaciones tipo concatenaci on, subcadena, etc. sobre atributos
de tipo car acter.
CONSULTAS DE SELECCI ON DE LA I ESIMA TUPLA
Cuando se realiza una consulta en AR, obtenemos como respuesta una relaci on. La relaci on es un conjunto de tuplas
(nuplas), y como tal, solamente tenemos la posibilidad de trabajar con el conjunto completo y no con sus componentes.
El AR no nos provee ning un tipo de operaci on que permita explcitamente acceder a un elemento de una relaci on y mucho
menos a una componente de una tupla. Puede ocurrir que la relaci on resultante tenga una sola tupla, pero la misma no
podr a ser manipulada como tal, sino que s olo podremos manejar el conjunto unitario conformado por tal tupla.
De igual modo, si en particular nos interesara una subtupla, deberemos tratarla a trav es del conjunto unitario que con-
tenga a tal subtupla como su unico elemento. En estos casos, el tratamiento de una tupla en particular puede realizarse
mediante las operaciones de ensamble vistas.
Ejemplo:
Obtener la tupla de Proveedores correspondiente al Proveedor S3.
7
Recordar que en un 1-digrafo ,un arco u pueden identicarse por el par de v ertices que une
OA y BDI - Universidad Nacional de San Luis 15
Prov :
#Proveedor Nombre P Categora P Ciudad
S1 Smith 20 Londres
S2 Jones 10 Pars
S3 Blake 30 Pars
S4 Clark 20 Londres
S5 Adams 30 Atenas
Temp =
#Proveedor=S3
(Prov)
#Proveedor Nombre P Categora P Ciudad
S3 Blake 30 Pars
Obtenemos una relaci on Temp conformada por una sola tupla. Luego si quisi eramos manipular la tupla, deberamos ha-
cerlo a trav es del conjunto, utilizando los operadores algebraicos. Por ejemplo, si s olo interesara el nombre del proveedor,
a nuestra selecci on anterior deberamos agregarle una proyecci on por nombre de proveedor.
Temp

=
Nombre P
(
#Proveedor=S3
(Prov))
Nombre P
Blake
Pero siempre obtendramos un conjunto unitario formado por la subtupla correspondiente. Si ese valor de atributo nos
hiciera falta para utilizarlo como constante en una consulta, no podramos usarlo directamente;es distinto expresar Blake
que (Blake).
Si bi en no es posible usar Blake en forma directa y explcita, s lo es en forma indirecta a trav es de un ensamble natural
entre Temp y alguna otra relaci on:
Prov

:
#Proveedor Nombre P Categora P Ciudad
S2 Jones 10 Pars
S3 Blake 30 Pars
S5 Adams 30 Atenas
Temp

= Temp

Prov

#Proveedor Nombre P Categora P Ciudad


S3 Blake 30 Pars
Es incorrecto escribir la consulta anterior como:

#Nombre P=Temp
(Prov

)
CONSULTAS DE ORDENAMIENTOS No es posible ordenar las tuplas por alg un atributo ni ablocarlas por alg un criterio.
Esto es porque la relaci on es manejada como un todo.

BIBLIOGRAFIA
1. Abiteboul,S; Hull and Vianu, V. ; Foundations of Databases ; Addison-Wesley Publishing Company, 1995.
2. Codd, E.F.; A relational model of data for a large shared data banks Com of ACM 13/6):377- 387,1970.
3. Date; Introduction To Database Systems Vol I,. Addison Wesley, 1981
4. Maier, D; The theory of relational databases Computer science press, 1983.
5. Ullman, Jeffrey D.; Principles of Database and Knowledge Base Systems, Vol I Computers Science Press, 1988.
OA y BDI - Universidad Nacional de San Luis 16

También podría gustarte