LGEBRA RELACIONAL
Expresin en lgebra relacional: Una expresin bsica consiste
de: una relacin nombrada de la base de datos (Ej: Agencia) o
una
relacin
constante
(Ej:{(CodAgencia:02,
Activo:3000000, Ciudad:Arica),...} ). Una expresin general
consiste de subexpresiones menores.
Sean E1 y E2 expresiones del lgebra relacional.
Seleccin: Es una operacin unaria, selecciona tuplas que satisfacen
un predicado dado.
E1 WHERE P, P es un predicado de atributos en E1
Selecciona las tuplas de E1 que satisfacen el predicado P.
En el predicado P se permiten comparaciones: =, < >, <, <=, >, >=
y el uso de conectivos: AND(), OR().
LGEBRA RELACIONAL
Un panorama general del lgebra: El lgebra relacional es un
lenguaje de manipulacin de datos procedural, el cual consiste
en un conjunto de operadores de alto nivel que operan sobre
relaciones. Cada uno de estos operadores toma una o dos
relaciones como entrada y produce una nueva relacin como
salida. Codd defini un conjunto de ocho operadores
relacionales, en dos grupos de cuatro cada uno:
1. Las operaciones tradicionales de conjuntos: unin,
interseccin, diferencia y producto cartesiano (todas ellas con
ligeras modificaciones debidas al hecho de tener relaciones
como operandos, y no conjuntos arbitrarios; dado que una
relacin es un tipo especial de conjunto): y
2. Las
operaciones
relacionales
especiales:
seleccin
(restriccin), proyeccin, reunin y divisin.
Adems de estos dos grupos, se han propuesto operaciones
adicionales de naturaleza algebraica para aadirlos al conjunto
(de ocho operaciones) original, tales como: renombrar,
ampliacin, resumen, divisin generalizada, reunin externa,
unin externa, proyeccin generalizada, etc.
CodAgencia
CodCliente
Valor
110
03
101
700
120
02
305
200
115
03
406
300
111
02
115
1000
127
01
250
400
116
02
400
800
Resultado:
CodEmpt
CodAgencia
CodCliente
Valor
111
02
115
1000
116
02
400
800
LGEBRA RELACIONAL
LGEBRA RELACIONAL
CodAgencia
CodCliente
03
101
02
305
03
Agencia
CodAgencia
Activo
Ciudad
01
5000000
Santiago
406
02
3000000
Arica
02
115
03
4000000
Santiago
01
250
02
400
EmptCodAg
CodCliente
Valor
CodAgencia
Activo
Ciudad
110
03
101
700
01
5000000
Santiago
110
03
101
700
02
3000000
Arica
110
03
101
700
03
4000000
Santiago
120
03
305
200
01
5000000
Santiago
120
03
305
200
02
3000000
Arica
120
03
305
200
03
4000000
Santiago
115
03
496
300
01
5000000
Santiago
115
03
496
300
02
3000000
Arica
115
03
496
300
03
4000000
Santiago
111
02
115
1000
01
5000000
Santiago
111
02
115
1000
02
3000000
Arica
111
02
115
1000
03
4000000
Santiago
127
01
250
400
01
5000000
Santiago
127
01
250
400
02
3000000
Arica
127
01
250
400
03
4000000
Santiago
116
02
400
800
01
5000000
Santiago
116
02
400
800
02
3000000
Arica
116
02
400
800
03
4000000
Santiago
LGEBRA RELACIONAL
Unin: Es una operacin binaria. E1 UNIN E2
Es el conjunto de todas las tuplas que pertenecen ya sea a E1 o E2 o
a ambas.
La operacin de unin es hecha entre relaciones compatibles con la
unin. Para que sean compatibles con la unin son necesarias
dos condiciones:
1. E1 y E2 deben ser del mismo orden o grado. Esto es deben
tener el mismo nmero de atributos.
2. Los dominios del i-simo atributo de E1 y el i-simo atributo
de E2 deben ser los mismos.
Ej: Obtener todos los cdigos de los clientes que tienen depsitos
y/o emprstitos.
(Depsito[CodCliente]) UNIN (Emprstito[CodCliente])
LGEBRA RELACIONAL
Depsito[CodCliente]
Emprstito[CodCliente] Resultado de
Depsito[CodCliente])
UNION
Emprstito[CodCliente]):
CodCliente
CodCliente
101
Depsito
CodDepsito CodAgencia CodCliente
Saldo
CodCliente
215
03
350
400
350
102
02
115
900
115
305
350
201
01
210
350
210
406
115
310
03
190
750
190
115
210
222
01
400
1000
400
250
190
390
03
400
600
370
400
400
340
02
370
500
250
260
01
250
700
250
295
03
250
400
101
370
305
406
LGEBRA RELACIONAL
Interseccin: Es una operacin binaria. E1 INTERSECT E2
Es el conjunto de tuplas que pertenecen a ambos E1 y E2.
La operacin de interseccin es hecha entre relaciones compatibles
con la unin.
La operacin de interseccin puede ser substituida por un par de
operadores de diferencia:
E1 INTERSECT E2 = E1 MINUS (E1 MINUS E2)
E1 INTERSECT E2 = E2 MINUS (E2 MINUS E1)
Ej: Obtener los cdigos de los clientes que tienen depsito y
emprstito.
(Depsito[CodCliente]) INTERSECT (Emprstito[CodCliente])
Resultado:
LGEBRA RELACIONAL
Diferencia: Es una operacin binaria. E1 MINUS E2
Es el conjunto de tuplas que pertenecen a E1 y no a E2.
La operacin de diferencia es hecha entre relaciones compatibles
con la unin.
Ej: Obtener los cdigos de los clientes que tienen depsito pero no
tienen emprstito.
(Depsito[CodCliente]) MINUS (Emprstito[CodCliente])
Resultado:
CodCliente
350
CodCliente
210
115
190
400
250
370
LGEBRA RELACIONAL
LGEBRA RELACIONAL
EmptCodAg
CodCliente
Valor
CodAgencia
Activo
Ciudad
110
03
101
700
03
4000000 Santiago
120
02
305
200
02
3000000 Arica
115
03
406
300
03
4000000 Santiago
111
02
115
1000
02
3000000 Arica
127
01
250
400
01
5000000 Santiago
116
02
400
800
02
3000000 Arica
LGEBRA RELACIONAL
LGEBRA RELACIONAL
LGEBRA RELACIONAL
LGEBRA RELACIONAL
CodAgencia
CodCliente
Valor
Activo
Ciudad
110
03
101
700
4000000 Santiago
120
02
305
200
3000000 Arica
115
03
406
300
4000000 Santiago
111
02
115
1000
3000000 Arica
127
01
250
400
5000000 Santiago
116
02
400
800
3000000 Arica
LGEBRA RELACIONAL
Ej: Encontrar todos los cdigos de clientes que tengan una cuenta de
depsito en todas las agencias localizadas en Santiago.
Depsito[CodCliente, CodAgencia] DIVIDEBY
(Agencia WHERE Ciudad = Santiago[CodAgencia])
Resultado:
CodCliente
400
250
LGEBRA RELACIONAL
OPERACIONES ADICIONALES
Renombrar: Tiene como propsito cambiar el nombre de los
atributos dentro de una relacin. Crea una nueva copia de la
relacin especificada en la cual se ha dado un nombre
diferente a la lista de atributos especificada.
Ej: (Depsito RENAME CodCliente AS DepoCodCliente,
CodAgencia AS DepoCodAg)
LGEBRA RELACIONAL
LGEBRA RELACIONAL
OPERACIONES ADICIONALES
Ampliacin: La operacin EXTEND (ampliar) crea una nueva relacin
semejante a la especificada pero con uno (o ms) atributo(s) adicionales,
cuyos valores se obtienen evaluando alguna expresin de clculo (escalar)
especificada.
Ej: EXTEND Depsito ADD Saldo con Inters AS Explicacin,
(Saldo * 1.05) AS NuevoSaldo
CodDepsito
CodAgencia
CodCliente
Saldo
Explicacin
215
03
350
400
Nuevo Saldo
420
102
02
115
900
945
201
01
210
350
367.5
310
03
190
750
787.5
222
01
400
1000
1050
390
03
400
600
630
340
02
370
500
525
260
01
250
700
735
295
03
250
400
420
OPERACIONES ADICIONALES
Resumen: La operacin SUMMARIZE (resumen) crea una
nueva relacin a partir de una relacin especificada, con uno o
ms clculos de agregados (cuenta, suma, promedio, mximo,
mnimo) especificados.
Ej: SUMMARIZE Depsito GROUPBY (CodAgencia)
ADD SUM(Saldo) AS SaldoTotalAg
Produce al evaluarse una relacin con la cabecera
(CodAgencia, SaldoTotalAg), en la cual hay una tupla por
cada valor distinto de CodAgencia en Depsito, dando ese
valor de CodAgencia y el Saldo Total para dicha agencia
CodAgencia
SaldoTotalAg
03
2150
02
1400
01
2050
LGEBRA RELACIONAL
LGEBRA RELACIONAL
OPERACIONES ADICIONALES
Resumen:
Si se omite la lista de atributos en la clusula GROUPBY, se
realiza el clculo de agregados una sola vez para toda la
relacin.
Ej: SUMMARIZE Depsito GROUPBY ( )
ADD SUM(Saldo) AS SaldoTotal
OPERACIONES ADICIONALES
Divisin generalizada: Dadas las relaciones E1(X, Y) y
E2(Y, Z), la expresin
E1 DIVIDEBY E2
Produce una relacin con la cabecera (X, Z) y un cuerpo
formado por todas las tuplas (X:x, Z:z) tales que aparece una
tupla (X:x, Y:y) en E1 para todas las tuplas (Y:y, Z:z) que
aparecen en E2.
La divisin original de Codd es slo un caso especial de la
divisin generalizada.
Ej: Sean las relaciones SP(S#, P#) y PJ(P#, J#)
SP DIVIDEBY PJ
Producir una relacin con la cabecera (S#, J#) y un cuerpo
formado por pares de nmero de proveedor y nmero de
proyecto tales que el proveedor indicado suministra todas las
partes empleadas en el proyecto indicado.
Resultado:
SaldoTotal
5600
LGEBRA RELACIONAL
LGEBRA RELACIONAL
OPERACIONES ADICIONALES
Divisin generalizada:
Ej:
SP
PJ
SP DIVIDEBY PJ
S#
P#
P#
J#
S#
J#
S1
P1
P1
J1
S1
J1
S1
P2
P2
J1
S1
J2
S1
P3
P2
J2
S3
J3
S2
P1
P3
J2
S2
P4
P2
J3
S3
P2
P4
J3
S3
P4
LGEBRA RELACIONAL
LGEBRA RELACIONAL
Ejemplo de Reunin Externa Izquierda (LEFT OUTER JOIN):
Empleado
Trabajo_a_tiempo_completo
Nombre
Calle
Ciudad
Nombre
Sucursal
Sueldo
Segura
Tebeo
La Loma
Segura
S100
3000
Domnguez
Viaducto
VillaAlta
Domnguez
S100
2000
Gmez
Bailn
Alcorcn
Barea
S101
2800
Valdivieso
Fuentes
Mstoles
Valdivieso
S101
2300
Calle
Ciudad
Sucursal
Segura
Tebeo
La Loma
S100
Sueldo
3000
Domnguez
Viaducto
VillaAlta
S100
2000
Valdivieso
Fuentes
Mstoles
S101
2300
Gmez
Bailn
Alcorcn Nulo
Nulo
OPERACIONES ADICIONALES
Reunin Externa: Es una forma ampliada de la operacin ordinaria
(natural o interna) de reunin, en cuyo resultado adems de las
tuplas de la reunin ordinaria aparecen las tuplas de una relacin
que no tiene contraparte en la otra, con nulos en las posiciones de
los dems atributos.
Reunin Externa Izquierda conserva en el resultado todas
las tuplas de la primera relacin (o relacin de la izquierda). Si no se
encuentra una tupla coincidente en la segunda relacin, los atributos
de esta ltima se rellenan con valores nulos.
Reunin Externa Derecha conserva en el resultado todas
las tuplas de la segunda relacin (o relacin de la derecha). Si no se
encuentra una tupla coincidente en la primera relacin, los atributos
de esta primera relacin se rellenan con valores nulos.
Reunin Externa Completa conserva en el resultado todas
las tuplas de ambas relaciones, cuando no se encuentran tuplas
coincidentes, las rellena con valores nulos.
OPERACIONES ADICIONALES
Unin Externa: Se cre para efectuar la unin de tuplas de dos
relaciones que no son compatibles con la unin. Esta operacin
efectuar la unin de tuplas de dos relaciones que son parcialmente
compatibles, lo que significa que solo algunos de sus atributos son
compatibles con la unin.
En el resultado se conservan los atributos no compatibles de
cualquiera de las relaciones, y las tuplas que no tienen valores para
dichos atributos se rellenan con valores nulos.
Por ejemplo: Sean dos relaciones cuyos esquemas son:
Estudiante(Nombre, NSS, Departamento, Asesor)
Profesor(Nombre, NSS, Departamento, Categora)
El esquema de la relacin resultante de
Estudiante UNIN EXTERNA Profesor es:
R(Nombre, NSS, Departamento, Asesor, Categora), y todas las
tuplas de ambas relaciones se incluyen en el resultado. Las tuplas de
Estudiante tendrn nulos en el atributo Categora y las tuplas de
Profesor tendrn nulos en el atributo Asesor. Una tupla que exista en
ambas tendrn valores para todos los atributos del esquema
resultante.
LGEBRA RELACIONAL
LGEBRA RELACIONAL
OPERACIONES ADICIONALES
Proyeccin Generalizada: Amplia la operacin de proyeccin
permitiendo que se utilicen funciones aritmticas en la lista de
atributos. Tiene la forma:
E[F1 , F2 , ..., Fn ]
Donde E es una expresin del lgebra relacional y F1 , F2 , ..., Fn son
expresiones aritmticas que incluyen constantes y atributos en el
esquema de E. Como caso especial, la expresin aritmtica puede
ser simplemente un atributo o una constante.
Ej:
Informacin_prstamo[Cliente,
Informacin_prstamo
Limite-Saldo]
Cliente
Limite
Saldo
Cliente
Limite-Saldo
Santos
1200000
140000
Santos
1060000
Gmez
400000
80000
Gmez
320000
Lpez
300000
300000
Lpez
Prez
400000
350000
Prez
50000
LGEBRA RELACIONAL
APLICACIONES DE LAS
LGEBRA RELACIONAL
EXPRESIONES
DEL
SISTEMA RELACIONAL