Beruflich Dokumente
Kultur Dokumente
PROTECO
TEMA 6
LGEBRA RELACIONAL
Definicin de lgebra relacional.
El lgebra relacional es un lenguaje formal de obtencin y
manipulacin de informacin que define un conjunto de
operaciones sobre tablas relacionales, tambin denominadas
relaciones; con el fin de obtener un resultado sin modificar el
origen de los datos. Fue definida originalmente por Codd, creador
del modelo relacional, hacia 1970.
Clasificacin de operaciones.
Las operaciones definidas por el lgebra relacional pueden
clasificarse como:
Operaciones bsicas.
o
o
o
o
o
Proyeccin.
Seleccin.
Unin.
Diferencia.
Producto cartesiano.
PROTECO
Operacin Seleccin.
Extrae las tuplas especficas de una relacin dada, presentando
slo aquellas que satisfacen la condicin solicitada.
Se representa con la siguiente notacin:
Ejemplo
Considere la siguiente relacin:
EMPLEADO
nombreEmp salarioEmp
Juan Prez
1500
Luis Surez
2300
Jos Ramrez
1800
Pedro Lpez
2100
nombreEmp
Luis Surez
Pedro Lpez
(EMPLEADO)
salarioEmp
2300
2100
PROTECO
Operacin Proyeccin.
Extrae los atributos especficos de una relacin dada.
Ejemplo
Considere la siguiente relacin:
ALUMNO
numCuenta
nombreAlu
402057203
Martn Peralta
305248321
Fabiola Rojas
304721843 Ricardo Martnez
(ALUMNO)
nombreAlu
Martn Peralta
Fabiola Rojas
Ricardo Martnez
PROTECO
Operacin Unin.
Construye una relacin formada por todas las tuplas que aparecen
en las dos relaciones especificadas.
Es necesario considerar que las relaciones deben ser compatibles
para esta operacin, es decir, ambas deben tener el mismo
nmero de atributos y los atributos en campos correspondientes
deben tener el mismo dominio. En caso de que no exista
compatibilidad, puede recurrirse a la operacin proyeccin, de
forma que nicamente se extraigan los atributos necesarios para
lograr la compatibilidad, y por ende, la operacin unin.
Si como resultado de la unin se presentan tuplas repetidas, stas
son eliminadas.
RELACION1 U RELACION2
Grficamente se denota de la siguiente forma:
PROTECO
Ejemplo
Considere las siguientes relaciones:
JUGADORSELECCION
nombreJugSel numeroJugSel
Gerardo Torrado
6
Fernando Arce
15
Andrs Guardado
18
Guillermo Ochoa
1
Ricardo Osorio
5
JUGADORLIGAMEX
nombreJugLM equipoJugLM
Gerardo Torrado
Cruz Azul
Fernando Arce
Santos
Sergio Bernal
Pumas
Emanuel Villa
Cruz Azul
Guillermo Ochoa
Amrica
Hctor Mancilla
Toluca
(JUGADORSELECCION) U
nombreJugLM (JUGADORLIGMEX)
nombreJugSel
nombreJugSel_nombreJugLM
Gerardo Torrado
Fernando Arce
Andrs Guardado
Guillermo Ochoa
Ricardo Osorio
Sergio Bernal
Emanuel Villa
Hctor Mancilla
PROTECO
Operacin Diferencia.
Construye una relacin formada por todas las tuplas de la primera
relacin que no aparecen en la segunda relacin de las dos
especificadas.
Para realizar esta operacin, las relaciones deben ser compatibles
entre s, de la misma forma que con la operacin unin.
RELACION1 RELACION2
Grficamente se denota de la siguiente forma:
PROTECO
Ejemplo
Considere las relaciones indicadas en el ejemplo de la operacin
unin.
Obtener los nombres de todos los jugadores de la seleccin que no
juegan en la liga mexicana.
(JUGADORSELECCION)
nombreJugLM (JUGADORLIGMEX)
nombreJugSel
nombreJugSel_nombreJugLM
Andrs Guardado
Ricardo Osorio
RELACION1 X RELACION2
Ejemplo
Considere las siguientes relaciones:
CLUB
claveClub
1
2
3
nombreClub
Atletismo
Ajedrez
Natacin
PROTECO
SOCIO
claveClub
2
3
3
1
1
2
nombreSocio
Eduardo Vzquez
Daniel Chvez
Eduardo Vzquez
Daniel Chvez
Eduardo Vzquez
Carlos Gonzlez
nombreSocio
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Carlos Gonzlez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Carlos Gonzlez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Carlos Gonzlez
PROTECO
RELACION1
RELACION2
La relacin R
S=
R.Ac=S.Ac
(R X S)
Ejemplo
Considere las relaciones indicadas en el ejemplo de la operacin
producto cartesiano.
PROTECO
SOCIO.
nombreSocio
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Carlos Gonzlez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Carlos Gonzlez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Daniel Chvez
Felipe Vzquez
Carlos Gonzlez
SOCIO
nombreSocio
Daniel Chvez
Felipe Vzquez
Felipe Vzquez
Carlos Gonzlez
Daniel Chvez
Felipe Vzquez
10
PROTECO
Operacin Interseccin.
Construye una relacin formada por todas las tuplas que aparecen
en ambas relaciones de las dos especificadas.
Para realizar esta operacin, las relaciones deben ser compatibles
entre s, de la misma forma que con la operacin unin.
RELACION1 RELACION2
Grficamente se denota de la siguiente forma:
11
PROTECO
Ejemplo
Considere las relaciones indicadas en el ejemplo de la operacin
unin.
(JUGADORSELECCION)
nombreJugLM (JUGADORLIGMEX)
nombreJugSel
nombreJugSel_nombreJugLM
Gerardo Torrado
Fernando Arce
Guillermo Ochoa
12
PROTECO
Operacin Divisin.
Toma dos relaciones, una unaria y una binaria que concuerde en el
atributo de la binaria con todos los valores de la relacin unaria.
RELACION1
RELACION2
S = {A2}
La operacin R
R
S=
(R) (
A1
((
A1
(R) X S) R))
Ejemplo
Considere las relaciones indicadas en el ejemplo de la operacin
producto cartesiano.
(SOCIO)
claveClub (CLUB)
nombreSocio, claveClub
nombreSocio
Felipe Vzquez
13
PROTECO
CTAHAB
nomCtaHab
Emilio Torres
Francisco Prez
Fernando Surez
Luis Snchez
Armando Velzquez
Javier Ros
ciudadCtaHab
Ciudad de Mxico
Guadalajara
Ciudad de Mxico
Ciudad de Mxico
Ciudad de Mxico
Monterrey
CLIENTE
nomCtaHab
nomEjeCta
Emilio Torres
Juan Lpez
Fernando Surez
Juan Lpez
Luis Snchez
Armando Velzquez
Armando Velzquez Armando Velzquez
Javier Ros
Jos Valencia
Francisco Prez
Jess Rojas
SUCURSAL
nomSuc
ciudadSuc
Activo
Centro
Ciudad de Mxico 1500000
Bellas Artes Ciudad de Mxico 1300500
Hidalgo
Ciudad de Mxico 1250000
Nios Hroes
Guadalajara
1300000
Revolucin
Monterrey
1450000
Independencia
Guadalajara
1410000
14
PROTECO
PRESTAMO
nomSuc
numPres
nomCtaHab
importe
Centro
1
Emilio Torres
1250
Bellas Artes
2
Emilio Torres
2500
Nios Hroes
3
Francisco Prez
1100
Independencia
4
Francisco Prez
1000
Centro
5
Fernando Surez
2100
Bellas Artes
6
Armando Velzquez
1150
Revolucin
7
Javier Ros
1300
Centro
8
Armando Velzquez
2700
CUENTA
nomSuc
numCta
nomCtaHab
saldo
Centro
1
Luis Snchez
1300
Bellas Artes
2
Armando Velzquez 5000
Centro
3
Fernando Surez
3850
Hidalgo
4
Luis Snchez
500
Revolucin
5
Javier Ros
2800
Nios Hroes
6
Francisco Prez
6300
Bellas Artes
7
Luis Snchez
1000
Centro
8
Fernando Surez
3700
(PRESTAMO)
nomSuc numPres
nomCtaHab
importe
Centro
1
Emilio Torres
1250
Bellas Artes
2
Emilio Torres
2500
Centro
5
Fernando Surez
2100
Revolucin
7
Javier Ros
1300
Centro
8
Armando Velzquez 2700
15
PROTECO
(PRESTAMO)
nomSuc numPres
nomCtaHab
importe
Centro
5
Fernando Surez
2100
Centro
8
Armando Velzquez 2700
Obtener el nombre de los cuentahabientes que tienen el
mismo nombre que su ejecutivo de cuenta.
nomCtaHab
nomCtaHab = nomEjeCta
(CLIENTE) )
nomCtaHab
Armando Velzquez
Obtener el nombre de los cuentahabientes y las sucursales
en las que stos tienen prstamos.
nomCtaHab, nomSuc
nomCtaHab
Emilio Torres
Emilio Torres
Francisco Prez
Francisco Prez
Fernando Surez
Armando Velzquez
Javier Ros
Armando Velzquez
(PRESTAMOS)
nomSuc
Centro
Bellas Artes
Nios Hroes
Independencia
Centro
Bellas Artes
Revolucin
Centro
16
PROTECO
nomCtaHab
nomSuc = Centro
(CUENTA) )
nomCtaHab
nomSuc = Centro
(PRESTAMO) )
nomCtaHab
Luis Snchez
Obtener el nombre de los cuentahabientes que tienen una
cuenta, un prstamo o ambos en la sucursal Centro.
nomCtaHab
nomSuc = Centro
(CUENTA) ) U
nomCtaHab
nomSuc = Centro
(PRESTAMO) )
nomCtaHab
Luis Snchez
Fernando Surez
Emilio Torres
Armando Velzquez
Obtener el nombre de los clientes del ejecutivo de cuenta
Juan Lpez y las ciudades en donde viven.
CTAHAB.nomCtaHab, ciudadCtaHab
(CLIENTE X CTAHAB) )
nomCtaHab
Emilio Torres
Fernando Surez
ciudadCtaHab
Ciudad de Mxico
Ciudad de Mxico
17
PROTECO
CTAHAB.nomCtaHab, ciudadCtaHab
(PRESTAMO X CTAHAB) )
nomCtaHab
Emilio Torres
Fernando Surez
ciudadCtaHab
Ciudad de Mxico
Ciudad de Mxico
nomCtaHab
nomSuc = Centro
(CUENTA) )
nomCtaHab
nomSuc = Centro
(PRESTAMO) )
nomCtaHab
Fernando Surez
Obtener el nombre de todos los cuentahabientes que tienen
cuenta en todas las sucursales de la Ciudad de Mxico.
(
CUENTA.nomSuc = SUCURSAL.nomSuc
ciudadSuc = Ciudad de Mxico (CUENTA X SUCURSAL) )
CUENTA.nomSuc, nomCtaHab
nomSuc
(SUCURSAL) )
nomCtaHab
Luis Snchez
18