Algebra Relacional
Enviado por ISAAC • 25 de Julio de 2011 • 2.315 Palabras (10 Páginas) • 1.367 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:
...