Está en la página 1de 23

TECNOLÓGICO NACIONAL DE MEXICO

INSTITUTO TECNOLOGICO DE POCHUTLA

NOMBRE: Angel Emmanuel García Becerra.

Núm. Control: 181160153.

SEMESTRE: 4°

CARRERA: Ing. En Sistemas Computacionales.

DOCENTE: Ing. Miguel Morgan Matus.

MATERIA: Fundamentos de Base de Datos.

ACTIVIDAD: AR – 01: Reporte de Investigación


Contenido
Introducción ............................................................................................................................ 3
¿Qué es el Algebra Relacional? .............................................................................................. 4
Operaciones fundamentales .................................................................................................... 4
Conjunto de operaciones en relaciones .................................................................................. 8
Combinación de operaciones ................................................................................................ 16
Modificaciones a la base de datos ........................................................................................ 18
Operaciones dependientes e independientes......................................................................... 18
Operadores Extendidos ......................................................................................................... 19
Bibliografía ........................................................................................................................... 23
Introducción
En este documento vamos a aprender acerca del algebra relacional y la manera de realizar
consultas a una base de datos empleando algunos conceptos matemáticos aplicados a un
esquema relacional.

El modelo relacional consiste de algunas simples pero a la vez poderosas maneras de


construir nuevas relaciones a partir de otras.
¿Qué es el Algebra Relacional?
El "Álgebra Relacional" es un lenguaje, que define una serie de operaciones, que se
realizan utilizando "operadores", cada uno de los cuales puede trabajar sobre uno o varios
conjuntos de datos produciendo como resultado un nuevo conjunto de datos.
El conjunto de datos resultante de una operación puede a su vez ser utilizado en una nueva
operación, en forma anidada, tal como se hace con las operaciones aritméticas. Esta
propiedad es conocida como "clausura".

Operaciones fundamentales
Las operaciones selección, proyección y renombramiento se denominan operaciones unarias
porque operan sobre una sola relación. Las otras tres operaciones operan sobre pares de
relaciones y se denominan, por lo tanto, operaciones binarias.
La operación selección

La operación selección selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra
griega sigma minúscula (σ) para denotar la selección. El predicado aparece como subíndice
de σ. La relación del argumento se da entre paréntesis a continuación de σ. Por tanto, para
seleccionar las tuplas de la relación préstamo en que la sucursal es «Navacerrada» hay que
escribir:
σ nombre-sucursal = «Navacerrada»(préstamo)
Si la relación préstamo es como se muestra a continuación:

la relación que resulta de la consulta anterior es:


Se pueden buscar todas las tuplas en las que el importe prestado sea mayor que 1.200
escribiendo:

σ importe>1200 (préstamo)
En general, se permiten las comparaciones que utilizan =, ≠, <, ≤, > o ≥ en el predicado de
selección. Además, se pueden combinar varios predicados en uno mayor utilizando las
conectivas y (∧) y o (∨). Por tanto, para encontrar las tuplas correspondientes a préstamos de
más de 1.200 concedidos por la sucursal de Navacerrada, se escribe:

σ nombre-sucursal= «Navacerrada» ∧importe>1200 (préstamo)


El predicado de selección puede incluir comparaciones entre dos atributos. Para ilustrarlo,
considérese la relación responsable-préstamo, que consta de tres atributos: nombre-cliente,
nombre-banquero y número-préstamo, que especifica que un empleado concreto es el
responsable del préstamo concedido a un cliente. Para hallar todos los clientes que se llaman
igual que su responsable de préstamos se puede escribir:

σ nombre-cliente= nombre-banquero (responsable-préstamo)


Dado que el valor especial nulo indica «valor desconocido o inexistente», cualquier
comparación que implique a un valor nulo se evalúa como falsa. La operación proyección
Supóngase que se desea hacer una lista de todos los números de préstamo y del importe de
los mismos, pero sin que aparezcan los nombres de las sucursales. La operación proyección
permite producir esta relación.
La operación proyección

es una operación unaria que devuelve su relación de argumentos, excluyendo algunos


argumentos. Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas.
La proyección se denota por la letra griega mayúscula pi (Π). Se crea una lista de los atributos
que se desea que aparezcan en el resultado como subíndice de Π. La relación de argumentos
se escribe a continuación entre paréntesis. Por tanto, la consulta para crear una lista de todos
los números de préstamo y del importe de los mismos puede escribirse como:
Π número-préstamo, importe(préstamo)
La relación que resulta de esta consulta es la siguiente:
Composición de operaciones relacionales.

Es importante el hecho de que el resultado de una operación relacional sea también una
relación. Considérese la consulta más compleja «Encontrar los nombres de clientes que viven
en Peguerinos». Hay que escribir:

Π nombre-cliente( σ ciudad-cliente = «Peguerinos» (cliente))

Téngase en cuenta que, en vez de dar en el argumento de la operación proyección el nombre


de una relación, se da una expresión que se evalúa como una relación. En general, dado que
el resultado de una operación del álgebra relacional es del mismo tipo (relación) que los datos
de entrada, las operaciones del álgebra relacional pueden componerse para formar una
expresión del álgebra relacional. La composición de operaciones del álgebra relacional para
formar expresiones del álgebra relacional es igual que la composición de operaciones
aritméticas (como +, –, * y ÷) para formar expresiones aritméticas.
La operación unión

Considérese una consulta para averiguar el nombre de todos los clientes del banco que tienen
una cuenta, un préstamo o ambas cosas. Obsérvese que la relación cliente no contiene esa
información:
dado que los clientes no necesitan tener ni cuenta ni préstamo en el banco. Para contestar a
esta consulta hace falta la información de la relación impositor:

y la de la relación prestatario

Se conoce la manera de averiguar los nombres de todos los clientes con préstamos en el
banco:
Π nombre-cliente(prestatario)
También se conoce la manera de averiguar el nombre de los clientes con cuenta en el banco:
Π nombre-cliente(impositor)
Para contestar a la consulta hace falta la unión de estos dos conjuntos; es decir, hacen falta
todos los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos
datos se pueden averiguar mediante la operación binaria unión, denotada, como en la teoría
de conjuntos, por ∪. Por tanto, la expresión buscada es:
Π nombre-cliente (prestatario) ∪ Π nombre-cliente (impositor)
La relación resultante de esta consulta es:
Téngase en cuenta que en el resultado hay diez tuplas, aunque hay siete prestatarios y seis
impositores distintos. Esta discrepancia aparente se debe a que Gómez, Santos y López son
a la vez prestatarios e impositores. Dado que las relaciones son conjuntos, se eliminan los
valores duplicados.

Obsérvese que en este ejemplo se toma la unión de dos conjuntos, ambos consistentes en
valores de nombre-cliente. En general, se debe asegurar que las uniones se realicen entre
relaciones compatibles. Por ejemplo, no tendría sentido realizar la unión de las relaciones
préstamo y prestatario. La primera es una relación con tres atributos, la segunda sólo tiene
dos. Más aún, considérese la unión de un conjunto de nombres de clientes y de un conjunto
de ciudades. Una unión así no tendría sentido en la mayor parte de los casos. Por tanto, para
que una operación unión r ∪ s sea válida hay que exigir que se cumplan dos condiciones:

1. Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo
número de atributos.
2. Los dominios de los atributos i-ésimos de r y de s deben ser iguales para todo i.

Téngase en cuenta que r y s pueden ser, en general, relaciones temporales que sean resultado
de expresiones del álgebra relacional.

Conjunto de operaciones en relaciones

• R S, la unión de R y S es el conjunto de elementos que están en R o S o ambos. Un


elemento solo aparece una sola vez.

• R S, el conjunto de elementos que aparecen en ambos R y S


• R - S, la diferencia de R y S, el conjunto de elementos que estan en R pero no en S.
Es importante resaltar que R - S es diferente a S - R.
• R / S, la división de una relación entre otra, debe cumplirse que para toda tupla en R
exista su correspondiente en S.

Restricciones:

1. R y S deben tener esquemas idénticos.


2. El orden de las columnas debe ser el mismo

Ejemplos:
name address gender birthdate

Carrie Fisher 123 Maple St. F 9/9/99

Mark Hamill 456 Oak Rd. M 8/8/88

name address gender birthdate

Harrison Ford 789 Palm Dr. M 7/7/77

Carrie Fisher 123 Maple St. F 9/9/99

Unión

name address gender birthdate

Harrison Ford 789 Palm Dr. M 7/7/77

Mark Hamill 456 Oak Rd. M 8/8/88

Carrie Fisher 123 Maple St. F 9/9/99

Intersección

name address gender birthdate

Carrie Fisher 123 Maple St. F 9/9/99

Resta

name address gender birthdate

Mark Hamill 456 Oak Rd. M 8/8/88

Proyección
• Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las columnas

• A1,A3,A6 (R)

title year length filmType studioName

Star Wars 1977 124 color Fox

Mighty Ducks 1991 104 color Disney

Wayne's World 1992 95 color Paramount

Movie

Ejemplo:

title, year, length(Movie)

title year length

Star Wars 1977 124

Mighty Ducks 1991 104

Wayne's World 1992 95

filmType(Movie)

filmType

color

Selección
• Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las tuplas a
partir de un criterio dado.
• El criterio se basa en restricciones sobre los atributos de la relación R y no pueden
incluirse otras relaciones en dicho criterio que no esten en R

• A3>16 (R) , A3>16 and A3 < 45 (R), nombre='Carlos' and edad=45 (R)

title year length filmType studioName

Star Wars 1977 124 color Fox

Mighty Ducks 1991 104 color Disney

Wayne's World 1992 95 color Paramount

Movie

Ejemplos:

length>=100 (Movie)

title year length filmType studioName

Star Wars 1977 124 color Fox

Mighty Ducks 1991 104 color Disney

length>=100 and studioName='Fox' (Movie)

title year length filmType studioName

Star Wars 1977 124 color Fox

title,studioName( length>=100 (Movie))


title studioName

Star Wars Fox

Mighty Ducks Disney

Asignación <--

Almacena temporalmente el resultado de un operación en un relación dada

LOLO <-- title,studioName( length>=100 (Movie))

División

Sean

A B C D

a b c d

a b e f C D

b c e f c d

e d c d e f

e d e f
S
a b d e

R
A B

a b

e d

R/S

Ejemplo: Estudiantes que han tomado todos los cursos de "IS"


ID,num ( depto='IS' (estudiante_cursos)) / num( depto='IS'(cursos)

Producto cartesiano X

Producto cruz o solo producto

R X S, los esquemas de ambas relaciones se mezclan y unen.

Dados

B C D
A B
2 5 6
1 2
4 7 8
3 4
9 10 11

R
S

A R.B S.B C D

1 2 2 5 6

1 2 4 7 8

1 2 9 10 11

3 4 2 5 6

3 4 4 7 8

3 4 9 10 11

RXS

Producto natural |X|

Es un producto cartesiano donde nos interesan únicamente algunas tuplas que hacen "match"
en algún criterio.
A R.B S.B C D

1 2 2 5 6

1 2 4 7 8

1 2 9 10 11

3 4 2 5 6

3 4 4 7 8

3 4 9 10 11

A B C D

1 2 5 6

3 4 7 8

R |X| S

Outer Join

El outer join es una extensión del join para lidear con información no existente. Exiten 3
tipos, izquierdo, derecho y completo.

employee- employee- branch-


street city salary
name name name

Coyote Toon Hollywood Coyote Mesa 1500

Rabbit Tunnel Carrotville Rabbit Mesa 1300

Death Gates Redmond 5300


Smith Revolver
Valley Williams Redmond 1500
Williams Seaview Seattle
ft-works

employee

employee-name street city branch-name salary

Coyote Toon Hollywood Mesa 1500

Rabbit Tunnel Carrotville Mesa 1300

Williams Seaview Seattle Redmond 1500

|X|

Left Outer Join

employee-name street city branch-name salary

Coyote Toon Hollywood Mesa 1500

Rabbit Tunnel Carrotville Mesa 1300

Williams Seaview Seattle Redmond 1500

Smith Revolver Death Valley null null

Right Outer Join

employee-name street city branch-name salary

Coyote Toon Hollywood Mesa 1500

Rabbit Tunnel Carrotville Mesa 1300

Williams Seaview Seattle Redmond 1500


Gates null null Redmond 5300

Full Outer Join

employee-name street city branch-name salary

Coyote Toon Hollywood Mesa 1500

Rabbit Tunnel Carrotville Mesa 1300

Williams Seaview Seattle Redmond 1500

Smith Revolver Death Valley null null

Gates null null Redmond 5300

Combinación de operaciones

Cuáles son los títulos y años de las películas hechas por Fox y que tengan al menos 100
minutos de duración.

1. Seleccionar aquellas películas que tienen length >=100

length>=100 (Movie)

2. Seleccionar aquellas películas que tienen studioName='Fox'

studioName='Fox' (Movie)

3. Calcular la intersección de (1) y (2)

length>=100 studioName='Fox' (Movie)


4. Proyectar únicamente title y year

title,studioName ( length>=100 studioName='Fox' (Movie) )

Problema:

Dadas las 2 relaciones siguientes, indique un query en algebra relacional para encontrar los
nombres de las estrellas que trabajan en películas cuya duración sera mayor o igual que 100.

Movie (title,year,length,filmType,studioName)

Movie_star(title,year,starName)

starName ( length>=100 (Movie |X| Movie_star)

Renombramiento

Renombrar una relación para facilitar la interacción con otras

s (R)

Ejemplo.

t.nombre ( s.nombre='carlos' and t.curso='IS341' ( s (PROFE) X t (CURSO) ) )

Renombrar un atributo

Suponiendo R (A,B,C)

R(A,X,C) (R) s(A,X,C) (R) A, B as X, C (R) B as X (R)

= R(A,X,C) = S(A,X,C) = R(A,X,C) = R(X)


Modificaciones a la base de datos
Eliminación

r <-- r - E

depositor <-- depositor - customer-name='Smith'(depositor)

Inserción

r <-- r E

account <-- account {(A-973, "Perryridge", 1200)}

Actualización

r <-- F1,F2,....Fn(r)

account <-- account-number, branch-name, balance*1.05 (account)

Si sólo queremos actualizar algunas tuplas:

r <-- F1,F2...Fn ( P(r)) (r- P(r))

Suponiendo que se desea que las cuentas con balance superior a $ 10,000 reciban un aumento
del 6% y que todas las demas solo el 5%

account <-- AN, BN, balance*1.06 ( balance > 10000 (account))

AN,BN, balance*1.05 ( balance <= 10000 (account))

Operaciones dependientes e independientes

R S=R-(R-S)
R |X| S = L( c(RXS))

Operadores Extendidos

No son parte del estándar del Algebra Relacional, pero al ser incluídos en los lenguajes de
consulta más populares se han introducido como una extensión.

Eliminación de duplicidad

A B

1 2

3 4

1 2

1 2

(R)

A B

1 2

3 4

Operadores de agregación

A B

1 2

3 4

1 2

1 2

• SUM(B)= 10
• AVG(A)= 1.5
• MIN(A)=1
• MAX(B)=4
• COUNT(A)=4

Es importante resaltar que estos operadores nunca devuelven un "valor" sino una relación
conteniendo el valor.

SUM(B)

10

SUM(B) (R)

Agrupación

A B

1 2

3 4

1 2

2 8

1 2

2 6

A SUM(B)

1 6

3 4
2 14

A, SUM(B) (R)

Ordenamiento

A4,A5 (R)

A SUM(B)

1 6

2 14

3 4

A( A, SUM(B)(R))
Bibliografía
Algebra Relacional. (s.f.). Obtenido de
http://ict.udlap.mx/people/carlos/is341/bases04.html
Anonimo. (s.f.). Obtenido de http://fcays.ens.uabc.mx/anterior/BD/AlgebraRelacional.pdf
Fing.edu. (s.f.). Obtenido de
https://www.fing.edu.uy/tecnoinf/mvd/cursos/bd2/material/teo/bd2-teorico01.pdf
Gaona, D. A. (s.f.). Obtenido de http://hp.fciencias.unam.mx/~alg/bd/alg.pdf
Google Sites. (s.f.). Obtenido de
https://sites.google.com/site/basededatosdistribuidastics/algebra-relacional
TRIPOD. (s.f.). Obtenido de http://basdatos.tripod.com/algebra.html
WordPress. (s.f.). Obtenido de https://quintonivel2010.wordpress.com/2010/05/28/algebra-
relacional/

También podría gustarte