Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo 5ta Unidad
Trabajo 5ta Unidad
ALGEBRA RELACIONAL
Proyección ........................................................................................................................ 8
Selección ........................................................................................................................... 9
Asignación <-- ........................................................................................................................ 10
División ................................................................................................................................... 10
Producto natural |X|............................................................................................................... 12
Outer Join ............................................................................................................................... 13
Renombramiento ................................................................................................................. 16
Modificaciones a la base de datos .......................................................................................... 16
Eliminación .............................................................................................................................. 16
Inserción ................................................................................................................................. 16
Actualización ........................................................................................................................... 16
Operaciones dependientes e independientes........................................................................ 17
Operadores Extendidos .............................................................................................................. 17
Eliminación de duplicidad ...................................................................................................... 17
Operadores de agregación .................................................................................................... 18
Agrupación ......................................................................................................................... 19
Ordenamiento .................................................................................................................... 19
Otros lenguajes de consulta .................................................................................................. 20
Cálculo relacional de tuplas .................................................................................................. 20
Cálculo relacional de dominios ............................................................................................. 23
2
Bibliografía ............................................................................................................................. 26
Introducción.
La parte de manipulación del modelo relacional ha evolucionado considerablemente
desde la publicación de los documentos originales de Codd sobre el tema
Ahora bien, Codd tenía en mente un propósito muy específico, el cual examinaremos
en el siguiente capítulo para definir precisamente esos ocho operadores. Pero usted
debe entender que éstos no son toda la historia; de hecho, podríamos definir cualquier
cantidad de operadores que satisficieran el sencillo requerimiento de "relaciones
dentro, relaciones fuera" y muchos de estos operadores han sido definidos por
diferentes autores.
Restringir: Regresa una relación que contiene todas las tupias de una
relación especificada que satisfacen una condición especificada.
Proyectar: Regresa una relación que contiene todas las tupias o subtuplas
que quedan en» relación especificada después de quitar los atributos
especificados.
Producto: Regresa una relación que contiene todas las tupias posibles que
3
son una combinación de dos tupias, una de cada una de dos relaciones
especificadas.
Unión: Regresa una relación que contiene todas las tupias que aparecen
en una o en las dos relaciones especificadas.
Intersección: Regresa una relación que contiene todas las tupias que
aparecen en las dos relaciones especificadas (en ambas, no en una u otra).
Diferencia: Regresa una relación que contiene todas las tupias que
aparecen en la primera pero no en la segunda de las dos relaciones
especificadas.
Juntar: Regresa una relación que contiene todas las tupias posibles que
son una coral nación de dos tupias de cada una de dos relaciones
especificadas, tales que las dos tupias que contribuyen a cualquier
combinación dada tengan un valor común para los atributos comunes de
las dos relaciones (y ese valor común aparece sólo una vez, y no dos, en
la tupia resultante).
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:
7
R y S deben tener esquemas idénticos.
Ejemplos:
Unión
Intersección
Proyección
Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las
columnas
Star
1977 124 color Fox
Wars
Mighty
1991 104 color Disney
Ducks
Wayne's
1992 95 color Paramount
World
Movie
Ejemplo:
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.
A3>16 (R) , A3>16 and A3 < 45 (R), nombre='Carlos' and edad=45 (R)
Star
1977 124 color Fox
Wars
Mighty
1991 104 color Disney
Ducks
Wayne's
1992 95 color Paramount
World
Movie
Ejemplos:
length>=100 (Movie)
Star
1977 124 color Fox
Wars
Mighty 10
1991 104 color Disney
Ducks
Star
1977 124 color Fox
Wars
title studioName
Asignación <--
Almacena temporalmente el resultado de una operación en una relación dada
División
Sean
A B C D
a b c d C D
a b e f c d
b c e f e f
e d c d S
e d e f
a b d e 11
A B
a b
e d
R/S
Dados
S
R B C D
A B 2 5 6
1 2 4 7 8
3 4 9 10 11
A R.B S.B C D 12
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
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 13
1 2 5 6
3 4 7 8
R |X| S
Outer Join
El outer join es una extensión del join para lidiar con información no existente.
Existen 3 tipos, izquierdo, derecho y completo.
employee-
street city employee- branch-
name salary
name name
Death
Smith Revolver Gates Redmond 5300
Valley
ft-works
employee
employee- branch-
street city salary
name name
|X|
14
Left Outer Join
employee- branch-
street city salary
name name
Death
Smith Revolver null null
Valley
employee- branch-
street city salary
name name
employee- branch-
street city salary
name name
Death
Smith Revolver null null
Valley
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.
length>=100 (Movie)
studioName='Fox' (Movie)
Problema:
Dadas las 2 relaciones siguientes, indique un query en algebra relacional para
16
encontrar los nombres de las estrellas que trabajan en películas cuya duración
será mayor o igual que 100.
RENOMBRAMIENTO
Renombrar una relación para facilitar la interacción con otras
s (R)
Ej.
t.nombre ( s.nombre='Carlos' and t.curso='IS341' ( s (PROFE)
X t (CURSO) ) )
Renombrar un atributo
Suponiendo R (A, B, C)
Inserción
r <-- r E
Actualización
r <-- F1,F2,....Fn(r)
account <-- account-number, branch-name, balance*1.05 (account) 17
Si sólo queremos actualizar algunas tuplas:
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%
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 incluidos en los
lenguajes de consulta más populares se han introducido como una extensión.
Eliminación de duplicidad
A B A B
1 2 1 2
3 4 3 4
1 2
1 2
(R)
Operadores de agregación
18
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 19
A B
A SUM(B)
1 2
1 6
3 4
3 4
1 2
2 14
2 8
1 2
2 6
A, SUM(B) (R)
Ordenamiento
A4, A5 (R)
A SUM(B)
1 6
2 14
3 4
A ( A, SUM(B)(R))
Otros lenguajes de consulta
20
Cálculo relacional de tuplas
Branch
21
customer- account- loan- customer- loan-
branch- amou
name number numb name number
name nt
er
Hayes A-102 Adams L-16
RoundHil
L-11 900
Johnson A-101 l Curry L-93
Perryridg
Smith A-215 L-16 1300 Smith L-11
e
borrower
null null 1900
loan
Encontrar todos los clientes que tienen un préstamo, cuenta, o ambos en el banco.
Encontrar todos los clientes que tienen una cuenta en el banco, pero no tienen
ningún préstamo.
También es posible usar el símbolo "para todo" junto con una implicación P--
>Q donde si P es verdadero, Q también deberá serlo.
Encontrar todos los clientes que tienen una cuenta en todas las sucursales
localizadas en Brooklyn
Expresiones inseguras
{t|¬(t loan ) }
Cálculo relacional de dominios
23
Branch
24
customer- account- loan- customer- loan-
branch- amou
name number numb name number
name nt
er
Hayes A-102 Adams L-16
RoundHil
L-11 900
Johnson A-101 l Curry L-93
Perryridg
Smith A-215 L-16 1300 Smith L-11
e
borrower
null null 1900
loan
Encontrar todos los clientes que tienen una cuenta en todas las sucursales
localizadas en Brooklyn.
http://ict.udlap.mx/people/carlos/is341/bases04.html. (s.f.).