Lenguajes de consulta: son aquellos en que el usuario interroga o solicita información a la base de...

Post on 24-Jan-2016

219 views 0 download

Transcript of Lenguajes de consulta: son aquellos en que el usuario interroga o solicita información a la base de...

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