37
Diseño de base de datos Tema 3 : Algebra relacional

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

Embed Size (px)

Citation preview

Page 1: 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

Diseño de base de datosTema 3 :

Algebra relacional

Page 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

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.

Page 3: 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

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.

Page 4: 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

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.

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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

Page 10: 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

1.2 ProyecciónT

3: A

lge

bra

rela

cio

na

l

1 0

πNombre (Persona)

Nombre

Carlos

Juan

Maria

Juan

Resultado

Nombre

Page 11: 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

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)

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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.

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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 .

Page 18: 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

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

Page 19: 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

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.

Page 20: 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

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)

Page 21: 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

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

Page 22: 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

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”.

Page 23: 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

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)

Page 24: 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

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

Page 25: 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

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

Page 26: 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

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

Page 27: 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

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)

Page 28: 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

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

Page 29: 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

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

Page 30: 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

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

Page 31: 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

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

Page 32: 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

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

Page 33: 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

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

Page 34: 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

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

Page 35: 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

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

Page 36: 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

ResumenT

3: A

lge

bra

rela

cio

na

l

3 6

Page 37: 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

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