Sei sulla pagina 1di 32

TEMA 5

Algebra Relacional

TEMA 5 Algebra Relacional Del Angel Morado Manuel Alejandro

Del Angel Morado Manuel Alejandro

QUE ES EL ALGEBRA RELACIONAL

Y PRINCIPALES OPERACIONES

Algebra Relacional es un modelo desarrollado por Cott para manipular la

relación del contenido de una instancia de la base de datos con el fin de

extraer datos de interés.

• Selección • Proyección
• Selección
• Proyección

Unión

Intersección

Diferencia

Producto Cartesiano

Join

División

Unarios Binarios
Unarios Binarios
Unarios Binarios

Unarios

Binarios

Unarios Binarios

Se divide en:

SELECCIÓN

Consiste en recuperar un conjunto de registros de una tabla o una relación indicando las condiciones que deben cumplir los registros recuperados de tal forma que los registros devueltos por la selección han de satisfacer todas las condiciones que se hayan establecido.

Normalmente se le conoce como consulta

Alumno

matriculaN

nAlumno

aAlumno

edad

Sexo

001

Luis

Alban

3

F

002

Marco

Maya

4

F

003

Camila

Teran

5

M

004

Rafaela

Bayas

4

M

005

Andrea

Bayas

3

M

FORMATO DE USO SELECCIÓN

Formato

FORMATO DE USO SELECCIÓN Formato Letra sigma en minúscula Señala que es una selección Operaciones que
FORMATO DE USO SELECCIÓN Formato Letra sigma en minúscula Señala que es una selección Operaciones que

Letra sigma en minúscula

Señala que es una selección

Letra sigma en minúscula Señala que es una selección Operaciones que se pueden realizar dentro del

Operaciones que se pueden

realizar dentro del predicado:

Comparación

<,>,≤,≥,=

Lógicos

^(AND), v(OR), ¬(NOT)

(Condición)

Recordemos que el operador

De selección elige las tuplas o Filas de una tabla, es decir el Operador de selección opta por Las tuplas que satisfacen cierto

predicado

Recordamos que Selección

Pertenece al grupo de binarios

Por lo tanto aquí solo podemos Elegir una tabla

Recordamos que Selección Pertenece al grupo de binarios Por lo tanto aquí solo podemos Elegir una

(R)

TABLA

Recordamos las operaciones Comparación

<,>,≤,≥,=

Lógicos ^(AND), v(OR), ¬(NOT)

Recordemos que la información que podemos extraer de esta tabla mediante el operador de

selección, es la que esta contenida en las tuplas

o filas

Alumno

SELECCIÓN

matriculaN

nAlumno

aAlumno

edad

Sexo

 

001

Luis

Albán

3

F

001 Luis Albán 3 F

002

Marco

Maya

4

F

002 Marco Maya 4 F

003

Camila

Terán

5

M

004

Rafaela

Bayas

4

M

005

Andrea

Bayas

3

M

En el siguiente ejemplo utilizaremos las operaciones lógicas

Finalmente indicamos que la información que

extraeremos es de la

tabla alumnos

GENERAR GENERAR UNA LISTA UNA CON LISTA TODOS CON TODOS

GENERAR GENERAR UNA LISTA UNA CON LISTA TODOS CON TODOS LOS ALUMNOS QUE SEAN MAYORES A

LOS ALUMNOS QUE SEAN MAYORES A 3

LOS ALUMNOS QUE

SEAN MAYORES A

AÑOS Y DE SEXO FEMENINO 3 AÑOS

ALUMNOS QUE SEAN MAYORES A AÑOS Y DE SEXO FEMENINO 3 AÑOS edad > 3 ^
ALUMNOS QUE SEAN MAYORES A AÑOS Y DE SEXO FEMENINO 3 AÑOS edad > 3 ^
edad > 3 ^ edad > 3 (Alumno) (Condición) (R) edad > 3 (R)
edad > 3 ^
edad > 3
(Alumno)
(Condición) (R)
edad > 3
(R)
edad > 3 (Alumno) (Condición) (R) edad > 3 (R) sexo=‘F’ (Alumno) Recordemos el formato Analizamos

sexo=‘F’ (Alumno)

Recordemos el formato
Recordemos el formato

Analizamos el enunciado Que es lo que hace

matriculaN matriculaN matriculaN nAlumno nAlumno nAlumno aAlumno aAlumno aAlumno edad edad edad Sexo Sexo
matriculaN
matriculaN
matriculaN
nAlumno
nAlumno
nAlumno
aAlumno
aAlumno
aAlumno
edad
edad
edad
Sexo
Sexo
Sexo
002
002
001
Marco
Marco
Luis
Maya
Maya
Albán
4
4
3
F F F
003
002
Camila Marco
Terán
Maya
5
4
M
F
Nuestra
tabla quedaría de la siguiente
forma
004
003
Rafaela Camila
Bayas Terán
4
5
M M
004
Rafaela
Bayas
4
M
Nuestra tabla quedaría de la siguiente forma
005
Andrea
Bayas
3
M

selección?

Selecciona únicamente

En el predicado colocamos el

nombre de la

columna

las Observamos filas que cumplan que

con tenemos la condición una

restricción

que cumplan que con tenemos la condición una restricción Notamos que nuestro operador Cumplen con selección

Notamos que nuestro operador

Cumplen con

selección

(en este caso) es

mayor que

Y la condición que es 3

Atributos

PROYECCIÓN

Alumno

Alumno

matriculaN

nAlumno

aAlumno

edad

Sexo

001

Luis

Albán

3

F

002

Marco

Maya

4

F

003

Camila

Terán

5

M

004

Rafaela

Bayas

4

M

005

Andrea

Bayas

3

M

Nos permite extraer columnas o atributos de una relación dando como resultado un subconjunto vertical de atributos de la relación

Formato

π

letra

La proyección se señala

con la

PI mayúscula

π letra La proyección se señala con la PI mayúscula Como subíndice se coloca una lista

Como subíndice se coloca una

lista de todos los atributos que

se desean que aparezcan en el resultado

los atributos que se desean que aparezcan en el resultado El operador de proyección permite extraer
los atributos que se desean que aparezcan en el resultado El operador de proyección permite extraer

El operador de proyección

permite extraer columnas y

o atributos en una relación.

Dando como resultado un

subconjunto vertical de

atributos de la relación.

PROYECCIÓN

Al igual que el operador de selección, proyección también

pertenece al grupo de binarios

por lo tanto aquí solo podemos

elegir una tabla

de binarios por lo tanto aquí solo podemos elegir una tabla Aquí debemos de especificar de

Aquí debemos de especificar

de que tabla vamos a extraer

la información

GENERAR UN LISTADO DE TODOS LOS

DETALLES DE LOS DATOS PERSONALES

DE TODOS LOS ALUMNOS

π (lista de atributos) (R)

π (matriculaN, nAlumno, aAlumno, edad, sexo) (R)

(Alumno)

π π (matriculaN, nAlumno, aAlumno, edad, sexo) (Alumno)

π π (matriculaN, nAlumno, aAlumno, edad, sexo) (Alumno) Recordar nuestro enunciado de proyección Como vemos solo

Recordar nuestro enunciado de proyección

Como vemos solo necesitamos Alumno los datos de la lista edad aAlumno edad Sexo Luis
Como vemos solo necesitamos
Alumno
los datos de la lista
edad aAlumno
edad
Sexo
Luis
3
Albán
3
F
Marco
4
Maya
4
F
Camila
5
Terán
5
M
Rafaela
4
Bayas
4
M
Andrea
3
Bayas
3
M

Tenemos que

anotar los nombres

de las columnas que queremos

Recuerda colocar el nombre de la tabla de la que

necesitas las

columnas

Este Este es es el el resultado resultado con con proyección proyección de de la la tabla tabla

PROYECCIÓN Y SELECCIÓN PROYECCIÓN Y SELECCIÓN

Generar Generar una una lista lista con con todos todos los los alumnos alumnos donde donde se se muestre muestre la el nombre, matricula, el el

nombre, el apellido, la edad y el sexo, de los alumnos que sea igual a 4

apellido y la edad, de los alumnos que sean mayores o iguales a 4 años

años o que sean del sexo femenino

o iguales a 4 años años o que sean del sexo femenino π (matriculaN, nAlumno, aAlumno,

π (matriculaN, nAlumno, aAlumno, edad, sexo) (

π (nAlumno, aAlumno, edad) (

aAlumno, edad, sexo) ( π (nAlumno, aAlumno, edad) ( Podemos combinar proyección y selección con la

Podemos combinar proyección y selección con la siguiente condición

Alumno nAlumno matriculaN nAlumno matriculaN aAlumno aAlumno nAlumno nAlumno edad Edad aAlumno aAlumno edad
Alumno
nAlumno
matriculaN
nAlumno
matriculaN
aAlumno
aAlumno
nAlumno
nAlumno
edad
Edad
aAlumno
aAlumno
edad
edad
Sexo
Sexo
(R)
π (lista de
atributos) (
(condición)
Marco
Luis
002
001
Albán
Maya
Marco
Luis
3
4
Maya
Albán
4
3
M
M
Camila
Marco
003
002
Maya
Terán
Camila
Marco
4
5
Terán
Maya
5
4
M
F
Cumple
con la
Rafaela
Camila
004
003
Terán
Bayas
Rafaela
Camila
5 4 Bayas
Terán
4
5
F
F
condición
Rafaela
005
004
Bayas
Andrea
Rafaela
4
Bayas
Bayas
3 4
F F
Andrea
005
Bayas
Andrea
3
Bayas
3
F
Resultado final

edad ≥ 4 (ALUMNOS))

(edad = 4) v (sexo = ‘F’) (ALUMNOS))

Una u otra

3 Bayas 3 F Resultado final edad ≥ 4 (ALUMNOS)) (edad = 4) v (sexo =

Una u otra

A = B = A U B
A =
B =
A U B
A y B
A y B

La unión de los conjuntos

es otro conjunto A u B que

UNIÓN

La unión de los conjuntos es otro conjunto A u B que UNIÓN En algebra relacional

En algebra relacional se dice que es la unión de dos relaciones R y S que definen en relación

Estos definen una relación que contienen todas las tuplas de R y S

Relación

relación que contienen todas las tuplas de R y S Relación R u S Se eliminan
relación que contienen todas las tuplas de R y S Relación R u S Se eliminan
relación que contienen todas las tuplas de R y S Relación R u S Se eliminan

R u S

Se eliminan las tuplas duplicadas

Recuerda: R y S deben ser compatibles respecto a la unión

Alumno

Alumno 1

UNIÓN

nAlumno

aAlumno

edad

sexo

nAlumno

aAlumno

edad

sexo

Luis

Albán

3

M

Rafaela

Bayas

4

F

Marco

Maya

4

M

Martin

Tapia

6

M

Camila

Terán

5

F

Andrea

Bayas

3

F

Rafaela

Bayas

4

F

Pedro

Paredes

5

M

Andrea

Bayas

3

F

Tomas

Jácome

6

M

Para realizar este ejemplo vamos a suponer que existen horarios en la mañana y en la tarde

en la tabla alumnos es la que pertenece a los alumno de la mañana de la clase de natación y la tabla alumno1 los que pertenecen a los de la tarde

GENERAR UN LISTADO DE TODOS LOS ALUMNOS QUE ASISTEN AL CURSO DE NATACIÓN YA SEA EN LA MAÑANA

O EN LA TARDE, DONDE NOS INDIQUE SOLO SU NOMBRE

Y APELLIDO

π (nAlumno, aAlumno) (ALUMNO) U π (nAlumno, aAlumno) (ALUMNO1)

Alumno

nAlumno

aAlumno

edad

sexo

Luis

Albán

3

M

Marco

Maya

4

M

Camila

Terán

5

F

Rafaela

Bayas

4

F

Andrea

Bayas

3

F

U

Alumno 1

nAlumno

aAlumno

edad

sexo

Rafaela

Bayas

4

F

Martin

Tapia

6

M

Andrea

Bayas

3

F

Pedro

Paredes

5

M

Tomas

Jácome

6

M

π (nAlumno, aAlumno) (ALUMNO) U π (nAlumno, aAlumno) (ALUMNO1)

Alumno

nAlumno

aAlumno

edad

sexo

Luis

Albán

3

M

Marco

Maya

4

M

Camila

Terán

5

F

Rafaela

Bayas

4

F

Andrea

Bayas

3

F

Alumno 1

nAlumno

aAlumno

edad

sexo

Rafaela

Bayas

4

F

Martin

Tapia

6

M

Andrea

Bayas

3

F

Pedro

Paredes

5

M

Tomas

Jácome

6

M

Pedro Paredes 5 M Tomas Jácome 6 M Alumno U Alumno1 nAlumno nAlumno nAlumno aAlumno
Pedro Paredes 5 M Tomas Jácome 6 M Alumno U Alumno1 nAlumno nAlumno nAlumno aAlumno

Alumno U Alumno1

nAlumno

nAlumno

nAlumno

aAlumno

aAlumno

aAlumno

Luis

Luis

Luis

Albán

Albán

Albán

Marco

Marco

Marco

Maya

Maya

Maya

Camila

Camila

Camila

Terán

Terán

Terán

Rafaela

Rafaela

Rafaela

Bayas

Bayas

Bayas

Andrea

Andrea

Andrea

Bayas

Bayas

Bayas

Rafaela Martin

Bayas Tapia

Martin

Pedro

Martin

Tapia

Tapia

Paredes

Andrea Tomas

Jácome Bayas

Pedro

Pedro

Paredes

Paredes

Tomas

Tomas

Jácome

Jácome

Paredes Paredes Tomas Tomas Jácome Jácome Esta operación nos da como resultado una nueva tabla donde

Esta operación nos

da como resultado una nueva tabla donde va a contener los alumnos de

la

de la

tabla alumno

tabla alumno

tabla alumno tabla alumno 1
tabla alumno tabla alumno 1
tabla alumno 1

tabla alumno 1

+ los niños

Recordemos que en la unión se eliminan las filas

o tuplas duplicadas

Nuestra tabla resultante

con la unión de Alumno

y Alumno1 quedaría así

PRODUCTO CARTESIANO

El producto cartesiano se denota por una x minúscula, permite combinar

información de dos relaciones el producto cartesiano es una operación binaria es decir que se aplica a parejas de relaciones

El producto cartesiano de dos relaciones se escribe como A x B entregada

una relación cuyo esquema corresponde a una combinación de todas las

tuplas de A por cada una de las tuplas de B y sus atributos corresponde a las de A seguidos por los de b

A = {1, 2}

2 elementos

B = {x, y, z} 3 elementos

los de b A = {1, 2} 2 elementos B = {x, y, z} 3 elementos
1. 2.
1.
2.

A

.x .y .z
.x
.y
.z

B

A x B ={(1,x);(1,y);(1,z); (2,x);(2,y);(2,z)} 6 elementos

PRODUCTO CARTESIANO

Ingenieros

E#

Nombre

D#

320

Jose

D1

322

Rosa

D2

Nombre D# 320 Jose D1 322 Rosa D2 Ingenieros x Proyectos E# Nombre D# Proyecto
Nombre D# 320 Jose D1 322 Rosa D2 Ingenieros x Proyectos E# Nombre D# Proyecto

Ingenieros x Proyectos

E#

Nombre

D#

Proyecto

Tiempo

320

Jose

D1

RX338A

21

320

Jose

D1

PY254Z

32

322

Rosa

D3

RX338A

21

322

Rosa

D3

PY254Z

32

Se Coloca

RX338A 21 322 Rosa D3 PY254Z 32 Se Coloca Se Multiplica Proyectos Proyecto Tiempo RX338A

Se Multiplica

322 Rosa D3 PY254Z 32 Se Coloca Se Multiplica Proyectos Proyecto Tiempo RX338A 21 PY254Z

Proyectos

Proyecto

Tiempo

RX338A

21

PY254Z

32

32 Se Coloca Se Multiplica Proyectos Proyecto Tiempo RX338A 21 PY254Z 32 Producto Cartesiano Final
32 Se Coloca Se Multiplica Proyectos Proyecto Tiempo RX338A 21 PY254Z 32 Producto Cartesiano Final

Producto Cartesiano Final

32 Se Coloca Se Multiplica Proyectos Proyecto Tiempo RX338A 21 PY254Z 32 Producto Cartesiano Final
32 Se Coloca Se Multiplica Proyectos Proyecto Tiempo RX338A 21 PY254Z 32 Producto Cartesiano Final

INTERSECCIÓN

Permite obtener la intersección de dos relaciones tomadas como conjuntos de tuplas.

El resultado de esta operación, especifica como R ∩ S, es una relación que

incluye todas las tuplas que están en R y S.

(<relación>) ∩ (<relación>)

donde:

Relación es una relación o expresión relacional.

A B
A
B

A ∩ B

SE MUESTRAN LAS RELACIONES ESTUDIANTE Y PROFESOR, SON LA UNIÓN COMPATIBLE Y SUS TUPLAS

REPRESENTAN LOS NOMBRES DE LOS ESTUDIANTES Y DE LOS PROFESORES. LA INTERSECCIÓN INCLUYE SOLO AQUELLOS QUE SON ESTUDIANTES Y PROFESORES A LA VEZ

A) ESTUDIANTES

Nombre Apellido Susana Gómez Luis Campos Juan Garrido Bárbara Duran Amanda González Joaquín Martin
Nombre
Apellido
Susana
Gómez
Luis
Campos
Juan
Garrido
Bárbara
Duran
Amanda
González
Joaquín
Martin
Ernesto
Flores

B) PROFESORES

Nombre Apellido Antonio Fernández Ricardo Adriano Susana Gómez Francisco Peláez Luis Campos
Nombre
Apellido
Antonio
Fernández
Ricardo
Adriano
Susana
Gómez
Francisco
Peláez
Luis
Campos

A B

Nombre Apellido Susana Gómez Luis Campos
Nombre
Apellido
Susana
Gómez
Luis
Campos

La intersección solo incluirá lo que se pidió anteriormente, solo los alumnos que sean

Alumnos y Profesores a la vez

DIFERENCIA

Notaron Algo? No?

Enserio?

Cuando son compatibles

las tablas?

Algo? No? Enserio? Cuando son compatibles las tablas? Permite obtener la diferencia de dos relaciones tomadas

Permite obtener la diferencia de dos relaciones tomadas como conjuntos de tuplas

Para poder realizar la diferencia de dos relaciones es necesario que las

la diferencia de dos relaciones es necesario que las • La diferencia entre relaciones R y

La diferencia entre relaciones R y S se indica como: R - S

Sintaxis:

Las tablas son compatibles:

1. Cuando se tienen la misma cantidad

(<relación>) (<relación>) Donde:

Relación es una relación o expresión relacional.

de columnas. 2. Cuando cada columna esta definida

sobre el mismo dominio.

QUEREMOS OBTENER UNA RELACIÓN E R. TODOS LOS EMPLEADOS QUE

TRABAJAN EN UNA EMPRESA EN EL ÁREA DE ADMINISTRACIÓN PERO NO EN

PRODUCCIÓN

Empleados_ADM

-----

Empleados_PROD

EMPLEADOS ADMINISTRACION

 

Empleados_ADM

DNI

Nombre

Apellido

Edificiodesp

Numerodesp

40.444.225

Juan

García

Marina

Empleados_PROD ----- Empleados_PROD

120

33.567.711

DNI

Nombreemp Marta

Apellidoemp Roca

Edificiodesp Marina

120

Numerodesp

12.027.251

40.444.225

Juan Sofía

Moreno García

Marina Marina

120

120

12.027.251

EMPLEADOS PRODUCCION

Sofía

Moreno

Marina

120

EMPLEADOS PRODUCCION Sofía Moreno Marina 120 Cumplen con la condición   Empleados_PROD DNI

Cumplen

con la condición

 

Empleados_PROD

DNI

Nombreemp

Apellidoemp

Edificiodesp

Numerodesp

33.567.711

Marta

Roca

Marina

120

32.567.865

Carlos

Rodríguez

Diagonal

260

89.087.231

María

Pérez

Marina

120

OPERADORES DERIVADOS

Los operadores presentados antes son los básicos del Algebra Relacional.

Se definen otro que se pueden expresar en función de los básicos, pero que

expresan operaciones dado que se usan habitualmente.

Estos operadores son:

Join: Permite expresar la combinación de tablas.

División: Permite obtener los datos que se relacionan con todos los elementos

de otro conjunto.

DIVISIÓN

Dadas R1 y R2, donde R2 / R1 (la cabecera de R2 es un subconjunto de la

cabecera de R1), se construye una nueva relación formada por los atributos

de R1 que no están en R2, donde los valores de los otros atributos concuerdan con todos los valores de la relación R2

Símbolo /

Termino común: DIVIDE BY

Notación: R1 / R2

R1 A B a1 b1 a1 b4 a2 b1 a3 b4 / R2 B b1
R1
A
B
a1
b1
a1
b4
a2
b1
a3
b4
/
R2
B
b1
b4
R3 A a1
R3
A
a1

ENCONTRAR TODOS LOS PARES (NOMBRE-

HALLAR OBTENER TODOS TODAS LOS CLIENTES LAS SUCURSALES QUE TENGAN DE

HALLAR LOS CLIENTES QUE APARECEN EN

CLIENTE, R2 CON NOMBRE-SUCURSAL) LOS NOMBRES DE TODAS PARA LOS LAS

ABIERTA UNA CUENTA EN TODAS SURCO LAS

QUE EL CLIENTE TIENE UNA CUENTA EN UNA

SUCURSALES DE R1

SUCURSALES DE SURCO

SUCURSAL

CUENTA EN UNA SUCURSALES DE R1 SUCURSALES DE SURCO SUCURSAL N_cliente, N_Sucursal ( Titular-cuenta Θ Cuenta)

N_cliente, N_Sucursal (Titular-cuenta Θ Cuenta) /

R2 = π N_cliente, N_Sucursal (Titular-cuenta Θ Cuenta)

π

R1 = π N_sucursal (

N_Distrito = Surco (Sucursal)

π R1 = π N_sucursal ( N _ Distrito = Surco (Sucursal) Titular-cuenta π N_Sucursal (

Titular-cuenta

π

N_Sucursal (

Sucursal

N_Distrito = Surco (Sucursal))

N_Cliente Cuenta N_Sucursal González C-101 Sucursal Chacarilla Gómez C-215 Primavera Titular-cuenta (1) López
N_Cliente
Cuenta N_Sucursal
González
C-101 Sucursal Chacarilla
Gómez
C-215
Primavera
Titular-cuenta (1)
López
C-102
Abril
C-305
Cuenta (1)
González
C-201
Santos
C-217
Rodríguez
C-222
N_Sucursal N_Distrito N_Cliente N_Sucursal Cuenta 1 Miraflores González Estos serian los únicos Miraflores
N_Sucursal
N_Distrito
N_Cliente
N_Sucursal
Cuenta 1
Miraflores
González
Estos serian los
únicos
Miraflores
Chacarilla
N_Sucursal
Cuenta
Saldo
N_SUCURSAL
N_DISTRITO
clientes que cuentan
Gómez
La Aurora
Chacarilla
C-101
100,000
LA Aurora
Surquillo
con una cuenta en la
N_Cliente
López
Lima Cercado
La Aurora
N_CLIENTE
sucursal
C-215
140,000
CUENTA
Lima Cercado
Lima
Abril
González Chacarilla
Lima
C-102
80,000
SALDO Cercado
González
Primavera
N_SUCURSAL
Chacharita
CUENTA
Surco
Chacarilla
C-305
70,000
Santos
Primavera
Primavera
C-201
180,000
Rodríguez
La Molina
Surco
Surquillo
Surquillo
Surquillo
Surquillo
C-222
140,000
La Molina
C-217
150,000
La Molina
La Molina
Barrios Altos
Lima

JOIN

¿Qué es la operación Join? Es la combinación del producto, selección y operaciones de proyección.

Sintaxis:

R <condición de reunión> (S)

Equivalente a:

R ⋈ <condición de reunión> (S) Equivalente a: <condición de reunión> (R x S ) Selección

<condición de reunión> (R x S)

de reunión> (S) Equivalente a: <condición de reunión> (R x S ) Selección Producto Cartesiano

Selección

Producto

Cartesiano

Tabla resultante del producto cartesiano TABLA A TABLA.EIDaquí ya podemos= TABLA B.Numerousar JOIN-Estudiante(TABLA B)

EID NOMBRE ESPECIALIDAD GRADO Numerode- Nombrede Aplicamos producto cartesiano para obtener la siguiente tabla
EID
NOMBRE
ESPECIALIDAD
GRADO
Numerode-
Nombrede
Aplicamos producto cartesiano para obtener la siguiente tabla
Estudiantes
Clase
EID
NOMBRE
ESPECIALIDAD
GRADO
Nombrede
123
JONES
HISTORIA
JR
Numerode-
123 Estudiante
H350 Clase
NumerodeP
osicion
Numerod
ePosicion 1
123
JR
105
BA490 H350
3
123
JONES JONES
HISTORIA HISTORIA
JR
123
1
123
JR
123
7
123
HISTORIA HISTORIA
JR
105
3
JONES JONES Tabla A
TABLA BA490 BA490 B
158
MATEMATICAS
GR
123
H350
1
EID
123
NOMBRE PARKS JONES
PARKS
ESPECIALIDAD
HISTORIA
GRADO
JR
123
Numerode-
158
MATEMATICAS
GR
105
NombredeCl BA490
BA490 ase H350
123
158
JONES
PARKS
HISTORIA
MATEMATICAS
JR
GR
Estudiante
123
NumerodeP 7
osicion 3
1
158
MATEMATICAS
GR
123
BA490
7
158
158
PARKS
PARKS PARKS
MATEMATICAS
MATEMATICAS
GR
GR
123
105
H350
BA490
3
1
105
ANDERSON
ADMINISTRACION
SN
123
1
105
158
ANDERSON
PARKS
ADMINISTRACION
MATEMATICAS
SN
GR
123
105
BA490 H350 BA490
3 7
105
ANDERSON
ADMINISTRACION
SN
105
BA490 H350
3
271
105
SMITH ANDERSON
HISTORIA
ADMINISTRACION
JR
NS
123
123
BA490
7 1
105
ANDERSON
ADMINISTRACION
SN
123
BA490
7
271
SMITH
HISTORIA
JR
123
H350
1
271
SMITH
HISTORIA
JR
105
BA490
3
Multiplicamos
271
SMITH
HISTORIA
JR
123
BA490
7

JOIN NATURAL

Elimina las columnas redundantes en una relación resultante Sintaxis:

R* <condición de reunión> (S) Equivalente a:

( EMPLEADO,NSS=TRABAJA_EN.NSS(EMPLEADO X TRABAJA_EN))

R y S: Tablas

*: Símbolo de JOIN natural : Selección

a: ( EMPLEADO,NSS=TRABAJA_EN.NSS (EMPLEADO X TRABAJA_EN)) R y S: Tablas *: Símbolo de JOIN natural :
TABLA A * <TABLA A.EID = TABLA B.NUMERO-ESTUDIANTE>(TABLA B) Obtenemos EID NOMBRE ESPECIALIDAD GRADO Nombred

TABLA A * <TABLA A.EID = TABLA B.NUMERO-ESTUDIANTE>(TABLA B)

Obtenemos

EID NOMBRE ESPECIALIDAD GRADO Nombred Numer eClase odePos icion 123 JONES HISTORIA JR H350 1
EID
NOMBRE
ESPECIALIDAD
GRADO
Nombred
Numer
eClase
odePos
icion
123
JONES
HISTORIA
JR
H350
1
123
JONES
HISTORIA
JR
BA490
7
105
ANDERSON
ADMINISTRACION
SN
BA490
3

Se obtiene una tabla similar a la anterior solo que se elimina numero estudiante

ALGEBRA RELACIONAL

EXTENDIDA

El álgebra relacional es un conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones, tal y como éstas

son definidas en el modelo relacional. Denominada de tipo procedimental,

¿Qué es el Algebra Relacional Extendida?

a diferencia del Cálculo relacional que es de tipo declarativo.

¿Qué es lo que describe?

Alguna vez te haz preguntado eso? No?

Describe el aspecto de la manipulación de datos. Estas operaciones se usan

como una representación intermedia de una consulta a una base de datos

y, debido a sus propiedades algebraicas, sirven para obtener una versión

más optimizada y eficiente de dicha consulta.

FUNCIONES DE AGREGACIÓN Y

OPERADORES

Las funciones de agregación toman como entrada un conjunto de valores y devuelven un único valor. avg: valor medio, retorna la media de los valores min: valor mínimo, retorna el mínimo de los valores max: valor máximo, retorna el máximo de los valores sum: suma, retorna la suma de los valores count: número de valores, retorna el numero de elementos del conjunto

El operador agregación: se define en algebra relacional como volver más tarde

G1, G2, …, Gn g F1( A1), F2( A2),…, Fn( An) (E )

E es una expresión de algebra relacional

G 1 , G 2 …, G n lista de atributos a agrupar (puede no existir)

Cada F i es una función de agregación

Cada A i es el nombre de un atributo

EMPLEADOS

Nombre-empleado

Nombre-sucursal

Sueldo

González

Centro

1.500

Díaz

Centro

1.300

Jiménez

Centro

2.500

Catalán

Leganés

1.600

Cana

Leganés

1.500

Cascallar

Navacerrada

5.300

Fernández

Navacerrada

1.500

Ribera

Navacerrada

1.300

SUM: Es la suma de las cantidades de las columnas seleccionada SUM: <COLUMNA O VALOR> (RELACIONES)

COUNT: Es la suma de todas las tuplas de una columna seleccionada GCOUNT: <COLUMNA SELECCIONADA> (RELACION)

AVG: Es el promedio a la media de los valores de una

columna seleccionada

GAVG: <COLUMNA SELECCIONADA> (RELACION)

MAX: Es el valor máximo de una columna seleccionada GMAX: <COLUMNA SELECCIONADA> (RELACION) MIN: Es el valor mínimo de una columna seleccionada GMIN: <COLUMNA SELECCIONADA> (RELACION)

Promedio de sueldos de los empleados de la empresa:

GAVG(Sueldo)(EMPLEADOS)

El mayor y menor sueldo de los empleados de una empresa:

GMAX(Sueldo), MIN(Sueldo) (EMPLEADOS)

Suma total de sueldos de los empleados de la empresa:

GSUM(Sueldo) (EMPLEADOS)

Promedio

Máximo

Suma

Sintaxis

Suma total de sueldos de los empleados de la empresa: GSUM (Sueldo) (EMPLEADOS) Promedio Máximo Suma

Suma de los sueldos por sucursal:

nombre-sucursal G nombre-sucursal, SUM(sueldo)(Empleados)

La anterior función tomara todos los sueldos de los empleados de una sucursal, los sumara y los asociara a la sucursal correspondiente, presentando un listado como el siguiente:

Forma General:

nombre-sucursal Sum(sueldo) Centro 5.300 Leganes 3.100 Navacerrada 8.100
nombre-sucursal
Sum(sueldo)
Centro
5.300
Leganes
3.100
Navacerrada
8.100
Centro 5.300 Leganes 3.100 Navacerrada 8.100 g1, g2 … gn G f1(a1), f2(a2) … Fm(am)(E) Donde:

g1, g2 … gn G f1(a1), f2(a2) … Fm(am)(E)

Donde:

G1,g2,…gn constituye la lista de atributos que indica como se realiza la agrupación fi

es una función de agregación y ai es un nombre del atributo

Clientes

EJERCICIO

NumClie

Empresa

RepClie

LimiteCredito

NombreR

EdadR

OficinaR

CiudadOficina

RegionOficina

ObjetivoOficina

       

Manuel

   

Nueva York

Este

 

$500,000

2101

Gigante

106

$65,000

Martínez

35

11

 

2102

JC Penny

102

$65,000

Sylvia Martínez

37

12

Chicago

Este

 

$350,000

       

Manuel

   

NuevaYork

Este

 

$500,000

2103

Acme

106

$50,000

Martínez

35

11

 

Pedidos

 

folio

 

Fecha

Cliente

Representante

Fabricante

Producto

Cantidad

Importe

Descripcion

Precio

Existencia

112861

04/04/2010

 

2102

 

102

ACE

2A44K

7

$224

Abrazadera

$32

15

112961

05/08/2012

 

2117

 

106

ACE

2A44L

7

$105

Pasador

$15

10

112963

16/01/2013

 

2103

 

105

BIC

410004

28

$3,276

Artículo tipo 4

$117

139

112979

03/03/2013

 

2114

 

102

ACE

2100Z

6

$204

Perno

$2,100

20

112982

03/03/2013

 

2117

 

103

ACE

2A44K

1

$224

Abrazadera

$38

20

112990

03/03/2013

 

2103

 

102

ACE

2A44K

1

$224

Abrazadera

$38

20

Escribe la solución para cada consulta utilizando las operaciones del álgebra relacional. Puedes usar las abreviaciones SL SELECCIÓN, PJ PROYECCIÓN, JN-JOIN u otras nomenclaturas o símbolos estándar para cada operador.

1. Listar todas las oficinas de ventas, mostrando la ciudad y la región donde está localizada cada una de ellas, así como sus ventas anuales hasta la fecha.

Pj = π (lista de atributos) (R)

2. Listar los nombres y las ventas anuales hasta la fecha para todos los vendedores de la Base de Datos

Pj = π (lista de atributos) (R)

3. Mostrar la clave, nombre, ventas y cuota de los vendedores cuyas ventas son menores a su cuota.

Pj = π (lista de atributos) (R)

4. Mostrar de la tabla RepVentas el Nombre y edad de los Representantes con cuota de ventas mayores a $180,000.

π Clave, Nombre, Ventas, Cuota (

π OficinaR, Ciudad, Región, Objetivo (OficinaRepresentante)

π NombreR. Ventas (Representante Ventas)

π NombreR. Ventas (Representante Ventas) Ventas < Cuota(RepresentanteVentas)) π Nombre, Edad,

Ventas < Cuota(RepresentanteVentas))

π Nombre, Edad, Cuota (

< Cuota(RepresentanteVentas)) π Nombre, Edad, Cuota ( Ventas > 180,000 (RepresentanteVentas)) 5. Desplegar

Ventas > 180,000 (RepresentanteVentas))

5. Desplegar nombre y edad de representantes que tengan edad entre 20 y 35 años.

π Nombre, Edad (

de representantes que tengan edad entre 20 y 35 años. π Nombre, Edad ( Edad ≥

Edad ≥ 20 ^ Edad ≤ 35 (RepresentanteVentas)