Upload
carlos-miranda-velazquez
View
217
Download
0
Embed Size (px)
Citation preview
Diseño de base de datosTema 3 :
Algebra relacional
1. IntroducciónT
3: A
lge
bra
rela
cio
na
l
2
Lenguajes de consulta: son aquellos en que el usuario interroga o solicita información a la base de datos. Estos lenguajes se clasifican en procedimentales y no procedimentales.
Procedimentales: el usuario indica al sistema que realice una secuencia de operaciones en la base de datos con el fin de obtener un resultado deseado.
No procedimentales: el usuario describe la información deseada sin un procedimiento específico para obtener dicha información.
1. IntroducciónT
3: A
lge
bra
rela
cio
na
l
3
Ya hemos realizado el modelado de la base de datos. Estos modelados tiene por base las teorías de conjuntos. Por lo que para la manipulación de los valores de un conjunto veremos algunos conceptos matemáticos se denominan Algebra relacional.
El Algebra relacional es un lenguaje de consulta procedimental.
Esta constituido por: Operandos: Objetos (valores o variables) desde los
cuales nuevos objetos pueden ser construidos.
Operadores: símbolos que denotan nuevos objetos desde objetos dados.
1. IntroducciónT
3: A
lge
bra
rela
cio
na
l
4
Sus operandos son relaciones (tablas) o variables que representan relaciones.
Sus operandos están diseñados para hacer tareas más comunes que se necesitan para manipular relaciones en una base de datos.
Con estas característica el algebra relacional puede ser utilizado como lenguaje de consulta, y es el precursor de lo que luego conoceremos como SQL.
1.1 SelecciónT
3: A
lge
bra
rela
cio
na
l
5
Esta operación se usa para seleccionar un subconjunto de las relación, el resultado serán aquellas tuplas que respeten un criterio.
Representado por el símbolo σ.
Cedula Nombre Apellido
0010998 Carlos Pérez2012803 Juan Mairena0029884 Maria Ruiz1037498 Juan Talavera
σNombre=“Juan”(Persona)
Persona
CedulaNombre
Apellido
1.1 SelecciónT
3: A
lge
bra
rela
cio
na
l
6
σNombre=“Juan”(Persona)
Resultado
Cedula Nombre Apellido
2012803 Juan Mairena1037498 Juan Talavera
1.1 SelecciónT
3: A
lge
bra
rela
cio
na
l
7
Esa sección de la sentencia es donde se coloca la condición, puede haber una o varias condiciones. Cuando hay más de una condición de selección se pueden concatenar con el operador y (^) o o (v).
σNombre=“Juan”(Persona)
Cedula Nombre Apellido
0010998 Carlos Pérez2012803 Juan Mairena0029884 Maria Ruiz1037498 Juan Talavera
Persona
CedulaNombre
Apellido
1.1 SelecciónT
3: A
lge
bra
rela
cio
na
l
8
σNombre=“Juan” ^Apellido=“Pérez”(Persona)
σNombre=“Juan” ˇ Apellido=“Pérez”(Persona)
Cedula Nombre Apellido
Cedula Nombre Apellido
0010998 Carlos Pérez2012803 Juan Mairena1037498 Juan Talavera
1.2 ProyecciónT
3: A
lge
bra
rela
cio
na
l
9
Proyecta solo un conjunto especificado de
atributos de toda la relación. Su símbolo es π.
πNombre (Persona)
Persona
Cedula Nombre Apellido
0010998 Carlos Pérez2012803 Juan Mairena0029884 Maria Ruiz1037498 Juan Talavera
Persona
CedulaNombre
Apellido
1.2 ProyecciónT
3: A
lge
bra
rela
cio
na
l
1 0
πNombre (Persona)
Nombre
Carlos
Juan
Maria
Juan
Resultado
Nombre
1.2 ProyecciónT
3: A
lge
bra
rela
cio
na
l
11
En esta parte de la sentencia se ubica los atributos que se desea mostrar como resultado. Cuando son más de un atributo se separan
por , (coma)
πNombre (Persona)
1.2 ProyecciónT
3: A
lge
bra
rela
cio
na
l
1 2
π Nombre, Apellido (Persona)
Nombre Apellido
Carlos PérezJuan Mairena
Maria RuizJuan Talavera
Resultado
Nombre
Apellido
1.3 Unión T
3: A
lge
bra
rela
cio
na
l
1 3
Dado que las relaciones son conjunto de tuplas, se pueden realizar operaciones usuales de conjuntos como la unión. Su símbolo U
Cliente U Empleado
ClienteCedula Nombre
001324 Carlos203049 Juan
EmpleadoCedula Nombre
011249 María203049 Juan
1.3 Unión T
3: A
lge
bra
rela
cio
na
l
1 4
Cliente U EmpleadoRespuesta
Cedula Nombre
001324 Carlos203049 Juan011249 María
Para que una operación de Unión sea válida hay que exigir que se cumplan dos condiciones:•Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo número de atributos.•Los dominios de los atributos i-ésimos de r y s deben ser iguales para todo i.
1.4 Diferencia T
3: A
lge
bra
rela
cio
na
l
1 5
Con esta operación se puede sacar como resultado las tuplas que están en una relación
A y no en la relación B. Su símbolo es -
Cliente - Empleado
Nombre
Juan
Resultado
ClienteNombre
CarlosJuan
EmpleadoNombre
CarlosEsteban
1.4 Diferencia T
3: A
lge
bra
rela
cio
na
l
1 6
Este operador es binario y los dos conjuntos deben tener la misma estructura para poder ser unidos por este operador.
Cliente - Empleado
1.6 Producto CartesianoT
3: A
lge
bra
rela
cio
na
l
1 7
El producto cartesiano A x B donde A y B son relaciones, genera una nueva relación con las siguientes particularidades:
Conjunto de Atributos de A x B = Conjunto de atributos de A υ Conjunto de atributos de B En cuanto al número de tuplas o filas de A x B, estas se obtienen combinando cada fila de A con todas las de B de modo que si A tiene N filas y B tiene M filas el número de filas de A x B es N x M.Este es un operador binario, se aplica a dos relaciones y el resultado es otra relación.El resultado es una relación que contendrá todas las combinaciones de las tuplas de los dos operandos .
1.5 Producto cartesianoT
3: A
lge
bra
rela
cio
na
l
1 8
Esta operación combina tuplas de dos o más
relaciones. Su símbolo es X
Cliente X Cargos
Nombres Tipo
Carlos CajeroCarlos CuidadorJuan CajeroJuan Cuidador
Resultado
ClienteNombres
CarlosJuan
CargosTipo
CajeroCuidador
1.7 intercepciónT
3: A
lge
bra
rela
cio
na
l
1 9
Cliente ∩ Empleado
Nombre
Juan
ResultadoClienteNombre
CarlosJuan
EmpleadoNombre
JuanEsteban
Esta sentencia es un operador binario y necesita tener la misma estructura para poder realizar la operación.Sean A, B dos relaciones, entonces A ∩ B es una nueva relación que contiene las tuplas comunes a las relaciones A y B.
1.7 intercepciónT
3: A
lge
bra
rela
cio
na
l
2 0
Esta sentencia es parte de las sentencias compuestas del algebra relacional. Se le denominan compuesta porque en realidad se podría realizar su misma operación con las
anteriores sentencias. Su símbolo es ∩
Cliente ∩ EmpleadoCliente – (Cliente - Empleado)
1.7 intercepciónT
3: A
lge
bra
rela
cio
na
l
2 1
Nombre
Carlos
Resultado1ClienteNombre
CarlosJuan
EmpleadoNombre
JuanEsteban
(Cliente - Empleado)
Cliente – (Cliente - Empleado)
Nombre
Carlos
Resultado1ClienteNombre
CarlosJuan
Nombre
Juan
Resultado
División (÷) T
3: A
lge
bra
rela
cio
na
l
2 2
Resulta adecuada para las consultas que incluyen la expresión <<para todos>>. Operación del álgebra relacional que crea una nueva relación, seleccionando las filas en una relación que se corresponden con todas las filas en otra relación. La operación división es la opuesta de la operación producto cartesiano.Sean r y s relaciones de los esquemas R y S respectivamente, donde:R = (A1, …, Am, B1, …, Bn) S = (B1, …, Bn)El resultado de r ÷ s es una relación del esquema: R – S = (A1, …, Am)La División se realiza entre dos tablas que cumplan las siguientes condiciones:•“R” debe tener columnas de “S” y el número de columnas de “R” ha de ser mayor que el de “S”.•“S” debe tener al menos una tupla.•El cociente es una nueva tabla formada por las columnas de “R” que no están en “S” y por las filas obtenidas al concatenar con “S” que estén contenidas en “R”.
1.8 Reunión naturalT
3: A
lge
bra
rela
cio
na
l
2 3
La operación reunión natural forma un producto cartesiano de sus dos argumentos, realiza una selección forzando la igualdad de los atributos que aparecen en ambos esquemas de relación y, finalmente, elimina los atributos duplicados.
Su símbolo es |X|
Cliente |X| Empleado
σcliente.nombre=Empleado.nombre(Cliente X Empleado)
1.8 Reunión naturalT
3: A
lge
bra
rela
cio
na
l
2 4
ClienteNombre Apellido
Carlos PérezMaria RuizJuan Talavera
EmpleadoNombre Area
Juan ADMRaul INFO
(Cliente X Empleado)
Nombre Apellido Nombre Area
Carlos Pérez Juan ADMCarlos Pérez Raul INFOMaria Ruiz Juan ADMMaria Ruiz Raul INFOJuan Talavera Juan ADMJuan Talavera Raul INFO
Resultado
1.8 Reunión naturalT
3: A
lge
bra
rela
cio
na
l
2 5
Esta sentencia es operador binario y para poder realizar correctamente la operación al menos un atributo de cada tabla debe coincidir en nombre.
Cliente |X| EmpleadoCliente
Nombre Apellido
Carlos PérezMaria RuizJuan Talavera
EmpleadoNombre Area
Juan ADMRaul INFO
ResultadoNombre Apellido Area
Juan Talavera ADM
1.8 Reunión naturalT
3: A
lge
bra
rela
cio
na
l
2 6
σcliente.nom=Empleado.nom(Cliente X Empleado)
nom Apellido nom Area
Carlos Pérez Juan ADMCarlos Pérez Raul INFOMaria Ruiz Juan ADMMaria Ruiz Raul INFOJuan Talavera Juan ADMJuan Talavera Raul INFO
Resultado
1.9 Reunión ZetaT
3: A
lge
bra
rela
cio
na
l
2 7
Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden de cada
tabla. Su símbolo es |X|columna1=columna2
Cliente |X|nombre=nombemp Empleado
σcliente.nombre=Empleado.nombemp(Cliente X Empleado)
1.9 Reunión ZetaT
3: A
lge
bra
rela
cio
na
l
2 8
Esta sentencia es operador binario y para poder realizar correctamente la operación al menos un atributo de cada tabla debe coincidir en nombre.
Cliente |X|nombre=nombemp EmpleadoCliente
Nombre Apellido
Carlos PérezMaria RuizJuan Talavera
EmpleadoNombemp Area
Juan ADMRaul INFO
Resultado
Nom Area Nombemp Area
Juan Talavera Juan ADM
1.10 Reunión Lef t T
3: A
lge
bra
rela
cio
na
l
2 9
Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden de la primera tabla con la segunda y ubica a null los que no coinciden de la segunda tabla. Su
símbolo es ]X|
Cliente ]X| Empleado
1.10 Reunión Lef t T
3: A
lge
bra
rela
cio
na
l
3 0
Cliente ]X| EmpleadoClienteNom Ape
Carlos PérezMaria RuizJuan Talavera
EmpleadoNom Area
Juan ADMRaul INFO
ResultadoNom Ape Area
Carlos Pérez nullMaria Ruiz nullJuan Talavera ADM
1.11 Reunión r ightT
3: A
lge
bra
rela
cio
na
l
3 1
Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden la segunda tabla con la primera tabla y las que no
coincidan se ponen a null. Su símbolo es |X[
Cliente |X[ Empleado
1.11 Reunión Right T
3: A
lge
bra
rela
cio
na
l
3 2
Cliente |X[ EmpleadoClienteNom Ape
Carlos PérezMaria RuizJuan Talavera
EmpleadoNom Area
Juan ADMRaul INFO
Resultado
Ape Nom Area
Talavera Juan ADMnull Raul INFO
1.11 Reunión Fu l lT
3: A
lge
bra
rela
cio
na
l
3 3
Esta sentencia es parte de las sentencias compuestas del algebra relacional. Su resultado es los valores que coinciden de cada
tabla. Su símbolo es ]X[
Cliente ]X[ Empleado
1.11 Reunión fu l l T
3: A
lge
bra
rela
cio
na
l
3 4
Cliente ]X[ EmpleadoPersona
Nom Ape
Carlos PérezMaria RuizJuan Talavera
EmpleadoNom Area
Juan ADMRaul INFO
ResultadoNom Ape Area
Carlos Pérez nullMaria Ruiz nullJuan Talavera ADMRaul null INFO
1.12 AsignaciónT
3: A
lge
bra
rela
cio
na
l
3 5
Proyecta solo un conjunto especificado de
atributos de toda la relación. Su símbolo es .
Temp π Nom (Persona)
Nom
CarlosMariaJuan
TempPersonaNom Ape
Carlos PérezMaria RuizJuan Talavera
ResumenT
3: A
lge
bra
rela
cio
na
l
3 6
EJEMPLOT
3: A
lge
bra
rela
cio
na
l
3 7
FEDERACION (nombre_f,direccion,telefono)MIEMBRO (dni,nombre_m,titulacion)Composicion (nombre_f,dni,cargo,fecha_inicio)
1.Obtener el nombre de los presidentes de federación.∏nombre_m(σcargo=”presidente” (Composición X Miembro))2.Obtener la dirección de aquellas federaciones que tienen gerente.∏direccion(σcargo=”gerente” (Composición X Federacion))3.Obtener las federaciones que no tienen asesor técnico .∏nombre_f (Federacion) - ∏nombre_f (σcargo=”Asesor tecnico” (Composicion))4. Obtener las federaciones que tienen todos los cargos.∏nombre_f,cargo (Composicion) ÷ ∏cargo (Composicion)5.Obtener las federaciones que tienen asesor técnico y psicólogo.∏nombre_f (σcargo=”Asesor tecnico” (Composicion)) ∩ ∏nombre_f (σcargo=”Psicologo” (Composicion))