Vous êtes sur la page 1sur 11

lgebra relacional

Daniel Ramirez Martinez


20 de marzo de 2012

ndice
Introduccin Relaciones Diferencias entre relaciones y tablas . . . . . . . . Orden de las tuplas en una relacin . . . . . . Orden de los elementos internos de una tupla Valores en las tuplas . . . . . . . . . . . . . . 2 2 3 4 4 4 4 5 5 6 7 8 8 8 8 10

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Operaciones fundamentales Operaciones unarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SELECCIN (SELECT) . . . . . . . . . . . . . . . . . . . . . . . . PROYECCIN (PROJECT) . . . . . . . . . . . . . . . . . . . . . . Secuencias de operaciones y la operacin RENOMBRAR (RENAME) Operaciones binarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UNIN (UNION) . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIFERENCIA (DIFFERENCE) . . . . . . . . . . . . . . . . . . . . PRODUCTO-CARTESIANO (CARTESIAN-PRODUCT) . . . . . . Bibliograa

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

Introduccin
El lgebra relacional es un conjunto de operaciones que usa como operandos las relaciones conocidas informalmente como tablas, el lgebra relacional usa principios de la lgica de primer orden y el lgebra de conjuntos. Las operaciones del lgebra relacional cumplen la propiedad de la cerradura, es decir una operacin entre relaciones devuelve una relacin, la cual puede ser usada como entrada para otra operacin. Las operaciones fundamentales del lgebra relacional se pueden clasicar en dos tipos, las operaciones unarias, las cuales nos permiten obtener o modicar informacin de una relacin especica y las operaciones de conjuntos o binarias, las cuales nos permiten realizar operaciones con dos relaciones. Ademas de las operaciones fundamentales, existen tambin las operaciones que fueron creadas especicamente para uso en bases de datos relacionales, las cuales no sern discutidas en este documento. E. F. Codd tomo el lgebra relacional como base terica para el modelo de datos relacional, el cual ha sido el modelo de bases de datos mas exitoso hasta el momento y en cual estn basados la mayoria de los DBMS actuales. Las razones por las que es necesario comprender los conceptos del lgebra relacional son las siguientes: Nos brinda un mayor entendimiento de el funcionamiento interno de un DBMS. Es usado en la optimizacin de consultas. Nos puede ayudar a razonar sobre consultas y restricciones relacionales. Nos brinda un panorama histrico sobre los inicios de las bases de datos relacionales.

Relaciones
La denicin de relacin es muy importante en el lgebra relacional dado que sera nuestra unidad de operacin, por lo que es necesario hablar tanto del modelo matemtico de relacin asi como sus diferencias con respecto a las tablas o implementaciones computacionales. Antes de denir lo que es una relacon es necesario aclarar los siguientes conceptos: Atributo: Es una propiedad que posee algn objeto o concepto del mundo real como el peso o el color. 2

Dominio: Es un conjunto de posibles valores atmicos. A un dominio se le puede asignar opcionalmente un tipo de dato y un nombre, y se denota como dom(R). Tupla: Es una secuencia ordenada de valores (v1 , v2 , ..., vn ) D1 D2 ... Dn tal que Di es un dominio y vi Di . Esquema de relacin: Un esquema de relacin R(A1 , A2 , ..., An ) est denido con un nombre de relacin R y una lista de atributos A1 , A2 , ..., An , para cada atributo Ai tenemos un dominio D que usualmente se denota dom(Ai ). Un esquema de relacin tambien tiene un grado, que es el nmero de atributos que posee. Se dene una relacin r de un esquema de relacin R(A1 , A2 , ..., An ) como un conjunto de tuplas r = {t1 , t2 , ..., tn } en la que cada ti es una secuencia ordenada de valores (v1 , v2 , ..., vi ) donde vi dom(Ai ) para cada 1 i n, al i-esimo elemento de la tupla ti se le denota como t[Ai ], la relacin se denota entonces como r(R), cabe mencionar que para los dominios D1 , D2 , ..., Dn la relacin es un subconjunto de D1 D2 ... Dn . Para ejemplicar lo anterior se presenta la siguiente gura:

Diferencias entre relaciones y tablas


Aunque la denicin de relacin anterior nos brinda una aproximacin a un objeto que podria ser parecido a una tabla, no hay que dejar de considerar los factores que los diferencian. A continuacin se mencionaran dichos factores.

Orden de las tuplas en una relacin Aunque en la denicin matemtica de relacin el orden de las tuplas es irrelevante, en un modelo de alamacenamiento siempre tenemos las tuplas en algn orden especico, inclusive al mostrar la informacin de la tabla. Orden de los elementos internos de una tupla La anterior denicin de tupla exigia un orden en sus elementos, sin embargo a nivel lgico dicho orden nos es realmente necesario ya que la correspondencia entre valores y atributos es preservada. Por lo que podemos dar una denicin alternativa para una relacin, la cual es la siguiente: Se dene esquema de relacin R = {A1 , A2 , ..., An } como un conjunto de atributos y una relacin r(R) es un conjunto nito de mapeos r = {t1 , t2 , ..., tn } donde cada tupla ti es un mapeo de R a D y D = dom(A1 ) dom(A2 ) ... dom(An ) es la unin de los dominios de los elementos de R, en esta denicin t[Ai ] = dom(Ai ) para cada 1 i n, cada mapeo ti es llamado tupla. De este modo cada mapeo ti es un conjunto de pares (< atributo >, < valor >), de este modo eleminamos la necesidad de orden en las tuplas. Valores en las tuplas En la denicin matemtica de dominio para una relacin los valores contenidos son atmicos, es decir son valores no divisibles, sin embargo, dado que una tabla es un modelo dependiente de alguna implementacin en un DBMS pueden existir multivalores para un dominio.

Operaciones fundamentales
Ahora que conocemos el concepto de relacin, hablaremos de las operaciones fundamentales del lgebra relacional las cuales son el segundo concepto fundamental de este modelo, ya que nos permitiran operar sobre las relaciones, y obtener datos especicos y transformaciones sobre ellas. Estas operaciones devulven nuevas relaciones las cuales pueden ser manipuladas posteriormente con operaciones de esta lgebra. A una secuencia de operaciones de lgebra relacional se le denomina expresin algebraica relacional.

Como ya se habia mencionado antes las operaciones del lgebra relacional se pueden dividir en dos tipos, las operaciones unarias como SELECCIN y PROYECCIN, y las operaciones binarias o de conjuntos como UNIN, PRODUCTO-CARTESIANO y DIFERENCIA.

Operaciones unarias
SELECCIN (SELECT) La operacin SELECT o SELECCIN nos permite seleccionar un subconjunto de tuplas de una relacin que cumplen con alguna condicin establecida. Podemos considerar a la operacin SELECCIN como un ltro que nos devuelve aquellas tuplas que satisfacen una condicin. La SELECCIN se denota como:

<condicio n de seleccio n> (R)


donde < condicio n de seleccio n > es una clusula de la forma < nombre de atributo >< operador de comparacio n >< constante > o < nombre de atributo >< operador de comparacio n >< nombre de atributo > y < nombre de atributo > es un elemento de R, < operador de comparacio n > es comunmente un operador como {=, , , <, >} y < constante > es un valor constante de dom(Ai ) para algn Ai de R. ademas las condiciones de seleccin pueden se conectadas arbitrariamente por operadores booleanos AND, OR, NOT. La siguiente gura es un ejemplo de una SELECCIN.

PROYECCIN (PROJECT) Si pensamos en las relaciones como tablas, la proyeccin nos permite seleccionar ciertas columnas de la tabla, esto es seleccionar todos los elementos t[Ai ] para una relacin, donde Ai es un atributo de R, La operacin PROYECCIN se denota como:

<lista de atributos> (R)


la < lista de atributos > son atributos que pertenecen a R. El producto de una proyeccin sera una relacin de grado menor o igual al grado de R, notese que en caso de que en la lista de atributos no se de ninguna llave primaria, y no haya llave candidata, la proyeccin eliminara las tuplas resultantes duplicadas. La siguiente gura es un ejemplo de una proyeccin.

Secuencias de operaciones y la operacin (RENOMBRAR) RENAME En ocasiones debemos usar mas de una operacin para reejar nuestra consulta, en este caso podemos anidar operaciones o podemos crear relaciones temporales, con el n de simplicar la lectura de secuencias complejas de operaciones. en el segundo caso podemos representar dos operaciones como:

TEMP dia = lunes (FECHA) dia, mes (TEMP) En el caso cuando queremos renombrar los atributos de una relacin, podemos denir una nueva operacin que llamaremos RENOMBRAMIENTO o RENAME y se denota de las siguientes formas para una relacin de grado n:

S (B1 ,B2 ,...,Bn ) (R) o S (R) o (B1 ,B2 ,...,Bn ) (R)


Aunque esta operacin no fue considerada originalmente por Codd se ha mostrado que es realmente necesaria y ha sido usada desde las primeras implementaciones del modelo relacional. En estas operaciones S es el nombre que queremos asignar a la relacion R y (B1 , B2 , . . . , Bn ) son los nombres que queremos asignar a los atributos (A1 , A2 , . . . , An ) de la relacin R, en el primer caso queremos renombrar tanto a la relacin R como a sus atributos, en el segundo caso solo queremos renombrar a la relacin R, en el tercer caso solo queremos renombrar a los atributos de la relacin R

Operaciones binarias
Estas son operaciones bsicas sobre conjuntos que nos permiten combinar relaciones de diferentes formas, y son llamadas binarias por que trabajan sobre dos relaciones. En la implementacin en el modelo relacional las tuplas de las relaciones a las que deseamos aplicar las operaciones binarias deben tener tuplas del mismo tipo (con excepcin, del PRODUCTOCARTESIANO) a esto se le llama compatibilidad de unin, a lo que se reere es que dadas las relaciones R y S con atributos (A1 , A2 , . . . , An ) y (B1 , B2 , . . . , Bn ) respectivamente, el grado de R debe ser igual al grado de S y dom(Ai ) deber ser igual al dom(Bi ) para todo 1 i n. A continuacin se denirn las operaciones UNIN (UNION), DIFERENCIA (DIFFERENCE) para dos relaciones R y S , y consideraremos que poseen compatibilidad de unin.

UNIN (UNION) Se dene la unin entre dos relacines como todas las tuplas en R y todas las tuplas en S y se denota como R S . DIFERENCIA (DIFFERENCE) Se dene la diferencia entre dos relaciones como todos las tuplas que estn en R pero no estn en S y se denota como R S . PRODUCTO-CARTESIANO (CARTESIAN-PRODUCT) Para el uso de esta operacin debemos tener que las relaciones R y S deben satisfacer que sus esquemas de relacin no poseen elemenentos en comn. Esta operacin es denotada como R S y esta denida de forma distinta al producto cruz para conjuntos. Deniremos el PRODUCTO-CRUZ para dos relaciones R y S con esquemas de relacin R(A1 , A2 , . . . , An ) de grado n y S (B1 , B2 , . . . , Bm ) de grado m respectivamente, como una nueva relacion Q con esquema de relacin Q(A1 , A2 , . . . , An , B1 , B2 , . . . , Bm ) de grado m + n, y suponiendo que |R| = nR y |S | = mS entonces |Q| = nR mS . Para ejemplicar como se realiza esta operacin se presenta la siguiente gura.

Bibliograa
Ramez A. Elmasri, Shamkant Navathe Fundamentals of Database Systems third edition 1999, ISBN-13: 978-0805317558. Presentacin: Alexandros Labrindis CS 2550 / Spring 2006, Principles of Database Systems - 02 Relational model, University of Pittsburgh. Presentacin: Rasmus Pagh, Fall 2005, Introduction to Databses, Lecture 7: Relational algebra and SQL, University of Copenhagen. Presentacin: Stefan Brass, 2003, Database Systems, Part 4 Relational Algebra, Halle University. Miguel-Angel Sicilia Introduccin al lgebra relacional, 2008. Presentacin: Gordon Russell Relational Algebra 1 Chapter 5.1, Napier University.

10

Vous aimerez peut-être aussi