Você está na página 1de 8

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.

[editar] Unin compatible


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

[editar] Grado (Aridad)


Nmero de atributos.

[editar] Las operaciones


[editar] 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:
[editar] 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
.
[editar] Proyeccin ()

Permite extraer columnas (atributos) de una relacin, dando como resultado un


subconjunto vertical de atributos de la relacin, esto es:

donde

son atributos de la relacin R .

Ejemplo:

Selecciona los atributos Apellido, Semestre y NumeroControl de la relacin Alumnos,


mostrados como un subconjunto de la relacin Alumnos
[editar] 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.
[editar] 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.
[editar] 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.
[editar] No bsicas o Derivadas
Entre los operadores no bsicos tenemos:
[editar] 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.
[editar] 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 es libre.


Si la condicin es una igualdad se denomina EquiJoin.
[editar] Divisin (/)

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.
[editar] 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).

[editar] Ejemplos
Suponga las relaciones o tablas:

ID
01
11
21
31
41

NOMBRE
Pedro
Juan
Diego
Rosita
Manuel

ID
054
457
354
444

NOMBRE
Vctor
Jos
Mara
Paz

COD
01142
02145
03547
04578
05478

NOMBRE
Sicologa
Biologa
Matemticas
Msica
Fsica

ID
1
2
3
4
5

Alumno
CIUDAD
Santiago
Buenos Aires
Lima
Concepcin
Lima
Apoderado
FONO
654644
454654
997455
747423
Curso
FECHA_INICIO
13-01
15-02
01-03
05-04
20-04
Inscrito

ID_AL
01
01
11
21
41

EDAD
14
18
12
15
17
ID_ALUMNO
21
11
31
01
DURACION
15
12
30
10
15
COD
05478
02145
03547
02145
03547

VALOR
3.000
2.500
4.000
1.500
3.200

[editar] 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
NOMBRE
CIUDAD
(alumno) (alumno)
01
Pedro
Santiago
01
Pedro
Santiago
01
Pedro
Santiago
01

Pedro

Santiago

11

Juan

11

Juan

11

Juan

11

Juan

21

Diego

Lima

21
21
21
31
31

Diego
Diego
Diego
Rosita
Rosita

31

Rosita

31
41
41
41
41

Rosita
Manuel
Manuel
Manuel
Manuel

Buenos
Aires
Buenos
Aires
Buenos
Aires
Buenos
Aires

EDAD
14
14
14
14

ID
NOMBRE
FONO ID_ALUMNO
(apoderado) (apoderado)
054
Vctor
654644 21
457
Jos
454654 11
354
Mara
997455 31
74742
444
Paz
01
3

18

054

Vctor

654644 21

18

457

Jos

45465
11
4

18

354

Mara

997455 31

18

444

Paz

747423 01

12

054

Vctor

Lima
12
Lima
12
Lima
12
Concepcin 15
Concepcin 15
Concepci
15
n
Concepcin 15
Lima
17
Lima
17
Lima
17
Lima
17

457
354
444
054
457

Jos
Mara
Paz
Vctor
Jos

354

Mara

444
054
457
354
444

Paz
Vctor
Jos
Mara
Paz

65464
21
4
454654 11
997455 31
747423 01
654644 21
454654 11
99745
31
5
747423 01
654644 21
454654 11
997455 31
747423 01

Por tanto, el resultado final de la combinacin es:


Alumnos Alumnos.ID = Apoderados.ID_ALUMNO Apoderados
ID
NOMBRE
ID
NOMBRE
CIUDAD EDAD
FONO ID_ALUMNO
(alumno) (alumno)
(apoderado) (apoderado)
01
Pedro
Santiago 14
444
Paz
747423 01
Buenos
11
Juan
18
457
Jos
454654 11
Aires
21
Diego
Lima
12
054
Vctor
654644 21
5

31

Rosita

Concepcin 15

354

Mara

997455 31

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:
Alumnos.NOMBRE,Apoderados.NOMBRE
NOMBRE (apoderado)
Paz
Jos
Vctor
Mara

NOMBRE (alumno)
Pedro
Juan
Diego
Rosita
Resumiendo en un solo paso:

Alumnos Alumnos.ID = Apoderados.ID_ALUMNO


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.
[editar] 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
1
2
3
4
5

COD
ID_AL
(inscritos)
01
05478
01
02145
11
03547
21
02145
41
03547

COD
(cursos)
05478
02145
03547
02145
03547

NOMBRE

FECHA_INICIO DURACION VALOR

Fsica
20-04
Biologa
15-02
Matemticas 01-03
Biologa
15-02
Matemticas 01-03

15
12
30
12
30

3.200
2.500
4.000
2.500
4.000

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.
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

Resultado 1.ID_AL = Alumnos.ID

Alumnos
6

O escrito todo junto:

Inscritos

Cursos

Inscritos.COD = Cursos.COD

Resultado 1.ID_AL = Alumnos.ID

Alumnos

La tabla de este nuevo resultado sera:


Resultado 2
NOM
ID
COD COD NOMB
ID
ID_
FECHA_I DURAC VAL
BRE CIUD ED
(inscri
(inscri (curs RE
(alum
AL
NICIO
ION
OR
(alumn AD AD
to)
tos) os) (curso)
no)
o)
0547
Santia
1
01 05478
Fsica 20-04
15
3.200 01
Pedro
14
8
go
0214
Santia
2
01 02145
Biologa 15-02
12
2.500 01
Pedro
14
5
go
Bueno
0354 Matem
3
11 03547
01-03
30
4.000 11
Juan s
18
7
ticas
Aires
0214
4
21 02145
Biologa 15-02
12
2.500 21
Diego Lima 12
5
0354 Matem
Manue
5
41 03547
01-03
30
4.000 41
Lima 17
7
ticas
l
Finalmente con una Proyeccin mostraremos el nombre del alumno y el curso inscrito:
Resultado2.NOMBRE (alumno),Resultado2.NOMBRE (curso) Resultado 2
Donde la tabla final sera:

NOMBRE (alumno)
Pedro
Pedro
Juan
Diego
Manuel

Tabla final
NOMBRE (curso)
Fsica
Biologa
Matemticas
Biologa
Matemticas

La expresin completa sera:


Inscritos
Cursos

Inscritos.COD = Cursos.COD

Resultado1.ID_AL = Alumnos.ID

Alumnos

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

NOMBRE
Biologa

Resultado final
VALOR
2.500

Y la expresin completa sera:


Curso
Inscrito

Você também pode gostar