miércoles, 20 de mayo de 2009

Operaciones del modelo relacional

Operaciones del modelo relacional

Todo lenguaje de manejo de datos (LMD) sirve para que los diferentes usuarios consulten y tengan acceso al contenido de la base de datos. Estos lenguajes se clasifican en:

Lenguajes Procedimentales: en estos lenguajes el usuario ordena al DBMS que realice una serie de operaciones con la b/d para obtener el resultado deseado.

Lenguajes No Procedimentales: en estos, el usuario describe la información que desea sin indicar un procedimiento específico para obtenerla.

El Álgebra Relacional es uno de los dos lenguajes formales para la consulta de datos en una base de datos. Está clasificado como un lenguaje procedimental.

Consta de cinco operaciones básicas o primitivas: selección, proyección, operaciones de conjunto, renombrar, join y división.

Toda operación, en Álgebra Relacional, utiliza una o dos relaciones como argumento y produce siempre una nueva relación.

Operadores de Conjuntos

Las bases de datos relacionales están basadas en el concepto matemático de relaciones entre conjuntos. Así las operaciones que se pueden efectuar entre relaciones son tanto las comunes a los conjuntos, unión, intersección, diferencia, producto cartesiano; como las específicas de las relaciones, selección, proyección, etc. A esto se le llama el álgebra relacional. Si r y s son relaciones con todos los dominios iguales, esto es, el mismo esquema se les puede aplicar las operaciones típicas de conjuntos:

Operaciones:

Unión

-rUs Es la relación sobre los mismos dominios que contiene

las eneadas que están en r o s.

Intersección

r\s Es la relación con las eneadas que están en r y en s.

Diferencia

r-s Es la relación con las eneadas que están en r pero no en s.

Ejemplo: Sean r y s relaciones con esquema en {A,B,C}

r: s:

A B C A B C

a1 b1 c1 a1 b1 c1

a1 b2 c1 a2 b2 c1

a2 b1 c2 a2 b2 c2

rUs:

A B C

a1 b1 c1

a1 b2 c1

a2 b1 c2

a2 b2 c1

a2 b2 c2

r\s:

A B C

a1 b1 c1

r-s:

A B C

a1 b2 c1

a2 b1 c2

Producto Cartesiano

Obtiene todas las eneadas que se construyen concatenando cada eneada de r con otra de s. En este caso los dominios de r y s no tienen que ser los mismos. Sea la r anterior y sea q la relación tal que:

q:

D E F

d1 e1 f1

d2 e2 f1

d2 e2 f2

rXq:

A B C D E F

a1 b1 c1 d1 e1 f1

a1 b1 c1 d2 e2 f1

a1 b1 c1 d2 e2 f2

a1 b2 c1 d1 e1 f1

a1 b2 c1 d2 e2 f1

a1 b2 c1 d2 e2 f2

a2 b1 c2 d1 e1 f1

a2 b1 c2 d2 e2 f1

a2 b1 c2 d2 e2 f2

Operadores Relacionales

Permutación

Esta operación se aplica a una sola relación, consiste en cambiar el orden de las columnas. Se denota por Pi_{i j k} en donde se indican el orden en que estarán las columnas de la relación original. En este caso la primera columna es la i, la segunda la j y la tercera la k.

Ejemplo:

Permutar Pi_{2 3 1}(r):

B C A

b1 c1 a1

b2 c1 a1

b1 c2 a2

Pi_{2 1 4 3} Alumnos={Nombre-al},{NoCta},{carrera},{prom}

Proyección

Es también una operación unaria. El resultado es un subconjunto de dominios, permite obtener subrelaciones de otras más grandes seleccionando algunos atributos. Se eliminan,luego, las eneadas

repetidas. Se denota también con Pi y se indican las columnas seleccionadas :

Ejemplos:

Pi_{23}(r)=

B C

b1 c1

b2 c1

b1 c2

Pi_{12} {Alumnos}={No.Cta},{nombre-al}

Selección

Produce un subconjunto de las eneadas de la relación que cumplen con una condición (simple o compuesta) sobre los valores para uno o varios de los atributos. Se denota por sigma_{cond}(r).

Ejemplos:

sigma_{(B=b1)}(r)

a1 b1 c1

a2 b1 c2

sigma_{carrera}={física}(Alumnos)

C1 Suárez 8 física

C3 Aguirre 7 física

Unión o Reunión (JOIN)

Se denota por r*{cond}s a un subconjunto del producto cartesiano de dos relaciones r,s en que se cumple alguna condición en dominios comunes. Se obtiene concatenando una eneada de r con otra de s, de forma que cumpla con una condición en los dominios comunes. Si no hay dominios comunes, esta operación es un producto cartesiano.

Ejemplo:

r={A,B} s={A,D}

r*{(A=a1)}s={A,B,D}

a1 b1 a1 d1 a1 b1 d1

a2 b2 a1 d2 a1 b1 d2

a2 d1

También es posible efectuar una reunión en atributos que tengan diferentes nombres pero el mismo dominio. En este caso se llama equireunión [Maier]. Si la condición es sobre atributos con nombres distintos, mismo dominio pero la condición no es sobre igualdades, se le llama reunión donde indica que tipo de condición se tiene (<,>,etc.).

OPERACIONES PRIMITIVAS

En el álgebra relacional se han incluido las operaciones unión, intersección, diferencia, producto cartesiano, proyección, selección, permutación y reunión. No todas ellas son necesarias tenerlas, las operaciones primitivas indispensables a partir de las cuales se pueden obtener las demás son: unión, diferencia, producto cartesiano, proyección y selección.

Por ejemplo la intersección se puede expresar en términos de la diferencia como sigue:

r/s=(r-(r-s))

La reunión se puede obtener a partir de la selección de los elementos que cumplen con una condición en el producto cartesiano:

r*_{(cond)}s=sigma_{(cond)}(r times s)

Esto es importante pues algunos sistemas manejadores de bases de datos comerciales proporcionan solo parte de los operadores, es suficiente con que tengan las operaciones primitivas a partir de las cuales obtener las otras.

Otro punto importante del álgebra relacional es ver que propiedades tienen las operaciones para optimizar su uso.

la unión es conmutativa y asociativa:

(rUs)Ut =(sUt)Ur

la intersección también es conmutativa y asociativa:

(r Int s)Int t =(s Int t )Int r

existe distributividad entre la unión y la intersección:

r Int ( sUt)=(r Int s)U(r Int t)

también son conmutativos el producto cartesiano y la selección.

A partir de los operadores del álgebra relacional también se pueden efectuar las operaciones de actualización. Para insertar una eneada se puede hacer como la unión de una relación y dicha

eneada:

rU(a1,...,an)

Para borrar se hace la diferencia entre la relación y la eneada:

r-(a1,...,an)

Según [Date] un sistema manejador de bases de datos se puede llamar totalmente relacional si soporta:

Una base de datos relacional incluidos los conceptos de dominio, llave, y las dos reglas de integridad y el almacenamiento de las relaciones. Un lenguaje de manipulación de datos que sea al menos tan poderoso como el álgebra relacional.

BIBLIOGRAFÍA

[Date] Date C. J.Introducción a los sistemas de bases de datos.

Addison Wesley Iberoamericana. 1986.

[Maier] Maier David. The Theory of Relational Databases.

Computer Science Press. 1983.

[Rivero] Rivero Cornelio E. Bases de Datos Relacionales.

Parainfo 1988.

No hay comentarios:

Publicar un comentario