Algebra Relacional
Enviado por ISAAC • 25 de Julio de 2011 • 2.315 Palabras (10 Páginas) • 1.445 Visitas
3.2. Álgebra relacional
El álgebra relacional es un lenguaje formal con una serie de operadores que
trabajan sobre una o varias relaciones para obtener otra relación resultado, sin
que cambien las relaciones originales. Tanto los operandos como los resultados
son relaciones, por lo que la salida de una operación puede ser la entrada de otra
operación. Esto permite anidar expresiones del álgebra, del mismo modo que
se pueden anidar las expresiones aritméticas. A esta propiedad se le denomina
clausura: las relaciones son cerradas bajo el álgebra, del mismo modo que los
números son cerrados bajo las operaciones aritméticas.
En este apartado se describen, en primer lugar, los ocho operadores originalmente
propuestos por Codd, y después se estudian algunos operadores
adicionales que añaden potencia al lenguaje.
De los ocho operadores, sólo hay cinco que son fundamentales: restricción,
proyección, producto cartesiano, unión y diferencia. Los operadores fundamentales
permiten realizar la mayoría de las operaciones de obtención de datos.
Los operadores no fundamentales son la concatenación (join), la intersección
y la división, que se pueden expresar a partir de los cinco operadores fundamentales.
La restricción y la proyección son operaciones unarias porque operan sobre
una sola relación. El resto de las operaciones son binarias porque trabajan
sobre pares de relaciones. En las definiciones que se presentan a continuación, se
supone que R y S son dos relaciones cuyos atributos son A = (a1,a2,...,aN )
y B = (b1,b2,...,bM ) respectivamente.
A continuación, se presentan los operadores del álgebra relacional, mostrando
su uso mediante breves ejemplos. Todos estos ejemplos están basados
en el esquema de la base de datos relacional presentada en el capítulo anterior
(apartado 2.3).
30
Mercedes Marqués - ISBN: 978-84-693-0146-3 31 Bases de datos - UJI
Restricción: R WHERE condición
La restricción, también denominada selección, opera sobre una sola
relación R y da como resultado otra relación cuyas tuplas son las
tuplas de R que satisfacen la condición especificada. Esta condición
es una comparación en la que aparece al menos un atributo de R, o
una combinación booleana de varias de estas comparaciones.
Ejemplo 3.1 Obtener todos los artículos que tienen un precio superior a 10 e.
Expresión del álgebra relacional que obtiene los datos especificados:
ARTICULOS WHERE precio>10
Resultado:
codart descrip precio stock stock_min dto
IM3P32V Interruptor magnetotérmico 4p, 2 27.01 1 1
im4P10L Interruptor magnetotérmico 4p, 4 32.60 1 1 15
ME200 Marco Bjc Ibiza 2 elementos 13.52 1 1
P695 Interruptor rotura brusca 100 A M 13.22 1 1
TE7200 Doble conmutador Bjc Ibiza blanco 13.22 1 1
ZNCL Base T,t lateral Ticino S, Tekne 41.71 1 1 10
Ejemplo 3.2 Obtener los artículos cuyo stock es de menos de 5 unidades y
además se ha quedado al mínimo o por debajo.
Expresión del álgebra relacional que obtiene los datos especificados:
ARTÍCULOS WHERE stock<5 AND stock<stock_min
Resultado:
codart descrip precio stock stock_min dto
IM3P32V Interruptor magnetotérmico 4p, 2 27.01 1 1
im4P10L Interruptor magnetotérmico 4p, 4 32.60 1 1 15
L14340 Bases de fusibles cuchillas T0 0.51 3 3
L17055 Bases de fusible cuchillas T3 7.99 3 3
L85459 Tecla Legrand marfil 2.80 0 4
... ... ... ... ...
Proyección: R[ai, ..., ak]
La proyección opera sobre una sola relación R y da como resultado
otra relación que contiene un subconjunto vertical de R, extrayendo
los valores de los atributos especificados y eliminando duplicados.
Ejemplo 3.3 Obtener un listado de vendedores mostrando su código, su nombre
y su código postal.
Expresión del álgebra relacional que obtiene los datos especificados:
31
Mercedes Marqués - ISBN: 978-84-693-0146-3 32 Bases de datos - UJI
VENDEDORES[codven,nombre,codpostal]
Resultado:
codven nombre codpostal
5 Guillén Vilar, Natalia 12597
105 Poy Omella, Paloma 12257
155 Rubert Cano, Diego 12425
455 Agost Tirado, Jorge 12914
Ejemplo 3.4 Obtener los códigos de las poblaciones donde hay clientes.
Expresión del álgebra relacional que obtiene los datos especificados:
CLIENTES[codpue]
Resultado:
codpue
53596
07766
12309
Producto cartesiano: R TIMES S
El producto cartesiano obtiene una relación cuyas tuplas están formadas
por la concatenación de todas las tuplas de R con todas las
tuplas de S.
La restricción y la proyección son operaciones que permiten extraer información
de una sola relación. Habrá casos en que sea necesario combinar la
información de varias relaciones. El producto cartesiano multiplica dos relaciones,
definiendo una nueva relación que tiene todos los pares posibles de tuplas
de las dos relaciones. Si la relación R tiene p tuplas y n atributos y la relación
S tiene q tuplas y m atributos, la relación resultado tendrá p ∗ q tuplas y n + m
atributos. Ya que es posible que haya atributos con el mismo nombre en las
dos relaciones, el nombre de la relación se antepondrá al del atributo en este
caso para que los nombres de los atributos sigan siendo únicos en la relación
resultado.
Una vez realizado el producto cartesiano de dos relaciones, se puede realizar
una restricción que elimine aquellas tuplas cuya información no esté relacionada,
como se muestra en el siguiente ejemplo.
Ejemplo 3.5 Obtener los nombres de las poblaciones en las que hay clientes.
Expresión del álgebra relacional que obtiene los datos especificados:
(CLIENTES[codpue] TIMES PUEBLOS)
WHERE CLIENTES.codpue = PUEBLOS.codpue
32
Mercedes Marqués - ISBN: 978-84-693-0146-3 33 Bases de datos - UJI
Resultado:
CLIENTES.codpue PUEBLOS.codpue nombre codpro
53596 53596 Vila-real 12
07766 07766 Burriana 12
12309 12309 Castellón 12
La combinación del producto cartesiano y la restricción del modo en que
se acaba de realizar, se puede reducir a la operación de concatenación (JOIN)
que se presenta más adelante.
Unión: R UNION S
La unión de dos relaciones
...