You are on page 1of 8

lgebra relacional

lgebra relacional
El lgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo. Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta.

Tuplas
Una tupla se define como una funcin finita que asocia unvocamente los nombres de los atributos de una relacin con los valores de una instanciacin de la misma. En trminos simplistas, es una fila de una tabla relacional.

Unin compatible
Una unin es compatible entre dos relaciones R, S, si ellas poseen el mismo grado y el dominio del mismo elemento de la relacin R es el mismo que el iesimo elemento de la relacin S.

Grado (Aridad)
Nmero de atributos.

Las operaciones
Bsicas Cada operador del lgebra acepta una o dos relaciones y retorna una relacin como resultado. y son operadores unarios, el resto de los operadores son binarios. Las operaciones bsicas del lgebra relacional son: Seleccin () Permite seleccionar un subconjunto de tuplas de una relacin (R), todas aquellas que cumplan la(s) condicin(es) P, esto es:

Ejemplo:

Selecciona todas las tuplas que contengan Gmez como apellido en la relacin Alumnos. Una condicin puede ser una combinacin booleana, donde se pueden usar operadores como: combinndolos con operadores . , ,

lgebra relacional Proyeccin () Permite extraer columnas (atributos) de una relacin, dando como resultado un subconjunto vertical de atributos de la relacin, esto es:

donde Ejemplo:

son atributos de la relacin R .

Selecciona los atributos Apellido, Semestre y NumeroControl de la relacin Alumnos, mostrados como un subconjunto de la relacin Alumnos Producto cartesiano (x) El producto cartesiano de dos relaciones se escribe como:

y entrega una relacin, cuyo esquema corresponde a una combinacin de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S. Ejemplo:

Muestra una nueva relacin, cuyo esquema contiene cada una de las tuplas de la relacin Alumnos junto con las tuplas de la relacin Maestros, mostrando primero los atributos de la relacin Alumnos seguidos por las tuplas de la relacin Maestros. Unin () La operacin

retorna el conjunto de tuplas que estn en R, o en S, o en ambas. R y S deben ser uniones compatibles. Diferencia (-) La diferencia de dos relaciones, R y S denotada por:

entrega todas aquellas tuplas que estn en R, pero no en S. R y S deben ser uniones compatibles. Estas operaciones son fundamentales en el sentido en que (1) todas las dems operaciones pueden ser expresadas como una combinacin de stas y (2) ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda informacin. No bsicas o Derivadas Entre los operadores no bsicos tenemos: Interseccin () La interseccin de dos relaciones se puede especificar en funcin de otros operadores bsicos:

La interseccin, como en Teora de conjuntos, corresponde al conjunto de todas las tuplas que estn en R y en S, siendo R y S uniones compatibles.

lgebra relacional Unin natural ( ) (Natural Join)

La operacin unin natural en el lgebra relacional es la que permite reconstruir las tablas originales previas al proceso de normalizacin. Consiste en combinar las proyeccin, seleccin y producto cartesiano en una sola operacin, donde la condicin es la igualdad Clave Primaria = Clave Externa (o Foranea), y la proyeccin elimina la columna duplicada (clave externa). Expresada en las operaciones bsicas, queda

Una reunin theta ( -Join) de dos relaciones es equivalente a:

donde la condicin Si la condicin Divisin (/)

es libre.

es una igualdad se denomina EquiJoin.

Supongamos que tenemos dos relaciones A(x, y) y B(y) donde el dominio de y en A y B, es el mismo. El operador divisin A / B retorna todos los distintos valores de x tales que para todo valor y en B existe una tupla en A. Agrupacin () Permite agrupar conjuntos de valores en funcin de un campo determinado y hacer operaciones con otros campos. Por ejemplo: sum(puntos) as Total Equipo (PARTIDOS).

Ejemplos
Suponga las relaciones o tablas:

Alumno
ID NOMBRE CIUDAD 01 Pedro 11 Juan 21 Diego 31 Rosita 41 Manuel Santiago EDAD 14

Buenos Aires 18 Lima Concepcin Lima 12 15 17

Apoderado
ID NOMBRE FONO ID_ALUMNO

054 Vctor 457 Jos 354 Mara 444 Paz

654644 21 454654 11 997455 31 747423 01

lgebra relacional

Curso
COD NOMBRE FECHA_INICIO DURACION VALOR 13-01 15-02 15 12 30 10 15 3.000 2.500 4.000 1.500 3.200

01142 Sicologa 02145 Biologa

03547 Matemticas 01-03 04578 Msica 05478 Fsica 05-04 20-04

Inscrito
ID ID_AL COD 1 2 3 4 5 01 01 11 21 41 05478 02145 03547 02145 03547

Mostrar los nombres de los alumnos y su apoderado Primero, realizaremos una combinacin entre alumnos y apoderados (pues necesitamos saber a que alumno le corresponde tal apoderado). La combinacin realizar un producto cartesiano, es decir, para cada tupla de alumnos (todas las filas de alumnos) har una mezcla con cada una tupla de apoderados y seleccionar aquellas nuevas tuplas en que alumnos.id sea igual a apoderados.id_alumno, esto es:
ID (alumno) NOMBRE (alumno) CIUDAD 01 01 01 01 11 11 11 11 21 21 21 21 31 31 31 31 41 Pedro Pedro Pedro Pedro Juan Juan Juan Juan Diego Diego Diego Diego Rosita Rosita Rosita Rosita Manuel Santiago Santiago Santiago Santiago EDAD ID (apoderado) NOMBRE (apoderado) FONO 14 14 14 14 054 457 354 444 054 457 354 444 054 457 354 444 054 457 354 444 054 Vctor Jos Mara Paz Vctor Jos Mara Paz Vctor Jos Mara Paz Vctor Jos Mara Paz Vctor ID_ALUMNO

654644 21 454654 11 997455 31 747423 01 654644 21 454654 11 997455 31 747423 01 654644 21 454654 11 997455 31 747423 01 654644 21 454654 11 997455 31 747423 01 654644 21

Buenos Aires 18 Buenos Aires 18 Buenos Aires 18 Buenos Aires 18 Lima Lima Lima Lima Concepcin Concepcin Concepcin Concepcin Lima 12 12 12 12 15 15 15 15 17

lgebra relacional

5
Manuel Manuel Manuel Lima Lima Lima 17 17 17 457 354 444 Jos Mara Paz 454654 11 997455 31 747423 01

41 41 41

Por tanto, el resultado final de la combinacin es:

Alumnos
ID (alumno) NOMBRE (alumno) CIUDAD 01 11 21 31 Pedro Juan Diego Rosita Santiago EDAD ID (apoderado) NOMBRE (apoderado) FONO 14 444 457 054 354 Paz Jos Vctor Mara ID_ALUMNO

747423 01 454654 11 654644 21 997455 31

Buenos Aires 18 Lima Concepcin 12 15

Ahora, aqu debemos mostrar solo el nombre del alumno y el nombre del apoderado, esto lo hacemos con un Proyect o Proyeccin, donde la tabla final sera:
NOMBRE (alumno) NOMBRE (apoderado) Pedro Juan Diego Rosita Paz Jos Vctor Mara

Resumiendo en un solo paso: Alumnos

Apoderados Se lee: Proyecta los nombre de alumnos y nombre de apoderados de los alumnos cuyo ID sea el mismo que el ID_ALUMNO de los apoderados. Mostrar el nombre de los alumnos inscritos y el nombre de los cursos que tomaron Comenzaremos con una combinacin entre los inscritos y los cursos para obtener el nombre de los cursos:

Lo que nos da la tabla:

Resultado 1
ID ID_AL COD (inscritos) COD (cursos) NOMBRE 1 2 3 4 5 01 01 11 21 41 05478 02145 03547 02145 03547 05478 02145 03547 02145 03547 Fsica Biologa FECHA_INICIO DURACION VALOR 20-04 15-02 15 12 30 12 30 3.200 2.500 4.000 2.500 4.000

Matemticas 01-03 Biologa 15-02

Matemticas 01-03

Como podemos observar, la combinacin solo nos entrega las combinaciones entre Inscritos y Cursos en que COD sea igual entre los inscritos y el curso correspondiente.

lgebra relacional Ahora necesitamos los nombres de los alumnos inscritos. Al resultado anterior (Resultado 1) aplicaremos una nueva combinacin comparando los ID de los alumnos para colocar el nombre adecuado con el estudiante adecuado: Resultado 1 O escrito todo junto: Inscritos La tabla de este nuevo resultado sera: Cursos Alumnos Alumnos

Resultado 2
ID ID_AL COD (inscrito) (inscritos) 1 2 3 01 01 11 05478 02145 03547 COD (cursos) 05478 02145 03547 NOMBRE (curso) Fsica Biologa Matemticas FECHA_INICIO DURACION VALOR ID NOMBRE (alumno) (alumno) 20-04 15-02 01-03 15 12 30 3.200 2.500 4.000 01 01 11 Pedro Pedro Juan CIUDAD EDAD

Santiago Santiago Buenos Aires Lima Lima

14 14 18

4 5

21 41

02145 03547

02145 03547

Biologa Matemticas

15-02 01-03

12 30

2.500 4.000

21 41

Diego Manuel

12 17

Finalmente con una Proyeccin mostraremos el nombre del alumno y el curso inscrito: Resultado 2 Donde la tabla final sera:

Tabla final
NOMBRE (alumno) NOMBRE (curso) Pedro Pedro Juan Diego Manuel Fsica Biologa Matemticas Biologa Matemticas

La expresin completa sera: Inscritos Cursos ' Alumnos '

Mostrar los nombres y precios de los cursos inscritos con valor menor a 3.000 Resultado 1 Lo que nos entregara la tabla:

lgebra relacional

Resultado final
NOMBRE VALOR Biologa 2.500

Y la expresin completa sera: Curso Inscrito

Vase tambin
Relacin matemtica Modelo relacional Modelo de datos Clculo relacional SQL

Enlaces externos
RAT, Software Rational Algebra Translator to SQL [1] TQL, a relational query language draft proposal [2] LEAP - An implementation of the relational algebra [3] WinRDBI Home, Educational Tool [4]

Referencias
[1] [2] [3] [4] http:/ / www. slinfo. una. ac. cr/ rat/ rat. html http:/ / www. c2. com/ cgi/ wiki?TqlRoadmap http:/ / leap. sourceforge. net http:/ / www. eas. asu. edu/ ~winrdbi/

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


lgebra relacional Fuente: http://es.wikipedia.org/w/index.php?oldid=50761167 Contribuyentes: Banfield, Barcex, Bucephala, Diegusjaimes, Dnu72, Dogor, Elwikipedista, Faelomx, Fuentesmelendez, Gensin, Humberto, Jarisleif, Jesuja, Jkbw, Jorge c2010, Jurgens, Kved, Laura Fiorucci, Leugim1972, Metalpotato, Naldo 1065, Retama, Troodon, Vitamine, Vitorres, Y0rx, Yeza, 127 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/