Академический Документы
Профессиональный Документы
Культура Документы
ALGEBRA RELACIONAL
DEFINICIN: Es un lenguaje terico con operaciones que se aplican a una o mas relaciones. Es un lenguaje de manipulacin de una o varias relaciones. Operandos como los resultados son relaciones. Propiedad de cierre: Anidar expresiones.
OPERACIONES DE CONSULTA: Fundamentales (Codd, 1972): Seleccin Unarias Proyeccin Producto cartesiano Unin Diferencia de conjuntos Binarias Otros: Combinacin (Join) Intercepcin Divisin Algebra Relacional Extendida: Proyeccin Generalizada Operaciones de Agregacin. Operaciones de Agrupacin. OPERACIONES DE MODIFICACIN: Borrado Insercin, Actualizacin
2
Operaciones Unarias
SELECCIN (o RESTRICCIN)
Se aplica a una nica relacin R. Genera otra relacin que contiene nicamente aquellas tuplas de R que satisfacen la condicin (Predicado) especificada.
Condicin(R)
Relacin (R)
C1 C2 C3 condicin
Relacin obtenida
C1 C2 C3
OPERADORES: Simples: =, <>, <, <=, >, >= Complejos: (and), (or), ~(no)
3
ID NOMBRE
33 33 NULL 22
NACIONALIDAD=Espaola"(EMPLEADO)
44 Ana
ID NOMBRE
De Miguel Espaola
APELLIDO
03/06/1954
33
08/12/1950 03/06/1954
NULL 22
Operaciones Unarias
PROYECCIN Se aplica a una nica relacin R. Genera otra relacin que contiene un subconjunto de los campos (extrayendo sus atributos) y eliminando las tuplas duplicadas. Relacin obtenida Relacin (R)
Cm, , Cn(R)
C1 1 2 3 4 5 6 7
C2 C3 11 A 22 B 43 C 64 C 15 D 76 E 76 E
C2,C3(R)
C2 C3 11 A 22 B 43 C 64 C 15 D 76 E
ID NOMBRE
33 33 NULL 22
NOMBRE, APELLIDO(EMPLEADO)
William Daniele Ana Ana
NOMBRE
APELLIDO
NOMBRE(NOMBRE=Ana(EMPLEADO))
Ana
NOMBRE
Operaciones Binarias
UNIN
Se aplica a dos relaciones R y S. Genera otra relacin que contiene TODAS las tuplas de R como de S, eliminado las tuplas duplicadas. R y S deben ser compatibles (Ambas tienen el mismo nmero de atributos, nombre y se encuentran definidos sobre los mismos dominios). En muchas ocasiones ser necesario realizar proyecciones para hacer que dos relaciones sean compatibles para la unin.
RUS
1 2 3 4
DEPORTE U ACTIVIDAD
ID NOMBRE
1 2 3 4 1 2 3
NOMBRE
Operaciones Binarias
DIFERENCIA DE CONJUNTOS
Se aplica a dos relaciones R y S. Genera otra relacin compuesta por las tuplas que se encuentran en la relacin R pero no en S. R y S deben ser compatibles.
R-S
Relacin (R) Relacin (S)
C1 C2 C3 1 A 2 C 3 D C1 C2 C3 11 A 2 C 3 D
ID NOMBRE
33 33 NULL 22
Cuales son los identificadores de los deportes que las empleados no practican?
ID
3 4
ID(DEPORTE) ID(EMP_DEPORTE)
10
Operaciones Binarias
INTERSECCIN
Se aplica a dos relaciones R y S. Genera otra relacin compuesta por las tuplas que se encuentran tanto en R como en S. R y S deben ser compatibles. Cualquier fila duplicada se reducir a una sola.
S = R-(R-S)
11
S
Relacin (R) Relacin (S)
C1 C2 C3 1 A 2 C 3 D C1 C2 C3 11 A 2 C 3 D
Relacin obtenida R S
C1 C2 C3 2 C 3 D
11 11 33
ID
1 2 1
ID(DEPORTE)
ID(EMP_DEPORTE)
ID
1 2
12
Operaciones Binarias
PRODUCTO CARTESIANO
Se aplica a dos relaciones R y S. Genera otra relacin que es la concatenacin de cada tupla de la relacin R con cada tupla de la relacin S. Si R tiene i tuplas y S j tuplas, entonces la nueva relacin tendr i*j tuplas. Si R tiene n atributos y S m atributos, entonces la nueva relacin tendr n+m atributos. Cuando las relaciones tienen atributos con el mismo nombre, se aade como prefijo el nombre de la relacin al nombre del atributo. Relacin obtenida C1 R.C2 G1 S.C2 Relacin (R) Relacin (S)
RXS
C1 C2 1 A 2 B 3 C
G1 C2 a 4 b 5
RXS
1 1 2 2 3 3
A A B B C C
a B a B a b
4 5 4 5 4 5
13
ID NOMBRE
33 33 NULL 22
DIRECCIN (Id_Per, Nro, Cod_Ciud, Barrio) 11 Av. 35 12-56 33 Cll. 4 con 17 33 Cra. 3 #12-56
ID NRO COD_CIUD BARRIO
C5 C2 C2
14
11 William 11 William 11 William 22Daniele 22Daniele 22Daniele 33Ana 33Ana 33Ana 44Ana 44Ana 44Ana
EMPLEADO X DIRECCIN
Date Norteamericana 12/06/1960 33 11 Av. 35 12-56 Date Norteamericana 12/06/1960 33 33 Cll. 4 con 17 Date Norteamericana 12/06/1960 33 33 Cra. 3 #12-56 Baltoni Italiana 23/05/1971 33 11 Av. 35 12-56 Baltoni Italiana 23/05/1971 33 33 Cll. 4 con 17 Baltoni Italiana 23/05/1971 33 33 Cra. 3 #12-56 Giraldo Colombiana 08/12/1950 NULL 11 Av. 35 12-56 Giraldo Colombiana 08/12/1950 NULL 33 Cll. 4 con 17 Giraldo Colombiana 08/12/1950 NULL 33 Cra. 3 #12-56 De Miguel Espaola 03/06/1954 22 11 Av. 35 12-56 De Miguel Espaola 03/06/1954 22 33 Cll. 4 con 17 De Miguel Espaola 03/06/1954 22 33 Cra. 3 #12-56
Direccin.ID
NRO
COD_CIUD BARRIO
C5 C2 C2 C5 C2 C2 C5 C2 C2 C5 C2 C2
Journals Tulcan Palace Journals Tulcan Palace Journals Tulcan Palace Journals Tulcan Palace
Empleado.ID
15
Operaciones Unaria
RENOMBRAMIENTO
X(RR)
Relacin Resultante (RR) X (C1, , Cn)
C1 Cn
16
EMPLEADO X ( M(EMPLEADO) )
ID NOMBRE ID_JEFE M.ID M.NOMBRE M.ID_JEFE 11 William 33 11 William 33 11 William 33 22 Daniele 33 11 William 33 33 Ana NULL 11 William 33 44 Ana 22 22 Daniele 33 11 William 33 22 Daniele 33 22 Daniele 33 22 Daniele 33 33 Ana NULL 22 Daniele 33 44 Ana 22 33 Ana NULL 11 William 33 33 Ana NULL 22 Daniele 33 33 Ana NULL 33 Ana NULL 33 Ana NULL 44 Ana 22 44 Ana 22 11 William 33 44 Ana 22 22 Daniele 33 44 Ana 22 33 Ana NULL 44 Ana 22 44 Ana 22
(ID=M.ID_JEFE)(EMPLEADO X (M(EMPLEADO) ) )
ID NOMBRE ID_JEFE M.ID M.NOMBRE M.ID_JEFE 22 Daniele 33 44 Ana 22 33 Ana NULL 11 William 33 33 Ana NULL 22 Daniele 33
ID, NOMBRE(A)
ID NOMBRE 22 Daniele 33 Ana
18
Operaciones Binarias
DIVISIN
Se aplica a dos relaciones R y S. Es adecuada para las consultas que incluyen la expresin Para todos. Sea: A = Conjunto de atributos de R. B = Conjunto de atributos de S (B es un subconjunto de A). C=AB Entonces, se genera una relacin con los atributos C, compuesta con el conjunto de tuplas de R que corresponden con la combinacin de TODAS las tuplas de S.
RS
T1 <- c(R) T2 <- c( (SXT1)-R) T <- T1-T2
S RS
Resto
19
R
A a a b b c B 1 2 1 2 1
S RS
B 1 2 A a b
R
A a a b e e a B b b c d d b C c e e c e d D d f f d f e C c e
S
D d f
RS
A a e B b d
20
ID NOMBRE
33 33 NULL 22
EMP_CURSO(Id_Per, Id_Curso) 11 22 44 11 44 11
ID_Per Id_curso
C1 C2 C3 C2 C2 C3
Empleados que han tomado todos los cursos que ha dado la empresa ID, NOMBRE( ( ID = Id_Per(EMPLEADO X (EMP_CURSO Id_Curso(CURSO)))))
11 William
ID NOMBRE
21
Operaciones Binarias
COMBINACIN THETA (-JOIN) Se aplica a dos relaciones R y S. Sirve para simplificar algunas operaciones. La relacin resultante contiene las tuplas del Producto Cartesiano de R y S que satisfacen el predicado . Es equivalente a realizar Condicin(RXS)
EQUICOMBINACIN (EQUI-JOIN, JOIN INTERNO, JOIN SIMPLE) Es la misma -JOIN, solo que el predicado contiene el operador de igualdad (=).
22
Operaciones Binarias
COMBINACIN NATURAL (NATURAL-JOIN) Se aplica a dos relaciones R y S. Sirve para simplificar algunas operaciones. La relacin resultante es una equicombinacin entre dos relaciones R y S sobre todos los atributos COMUNES. Del resultado se eliminan una de las dos apariciones de cada atributo con nombre comn. R
A a b B 1 2 A a a a b b b
RXS
B 1 1 1 2 2 2 B 1 1 3 1 1 3 C X Y Z X Y Z
R R.B=S.BS R.B=S.B(RXS)
A a a
S
C X Y
S
B 1 1 3 C X Y Z
B 1 1
B 1 1
C X Y
A a a
B 1 1
23
Mostrar el id y el nombre de las empleados que tienen registrada alguna direccin? EMPLEADO DIRECCIN
Norteamericana12/06/1960 33 Colombiana 08/12/1950 NULL Colombiana 08/12/1950 NULL Av. 35 12-56 Cll. 4 con 17 Cra. 3 #12-56
NRO COD_CIUD BARRIO IDNOMBREAPELLIDO NACIONALIDAD FECHA_NACID_JEFE
NRO BARRIO Av. 35 12-56 Journals Cll. 4 con 17 Tulcan Cra. 3 #12-56Palace
C5 C2 C2
DIRECCIN)
24
Operaciones Binarias
COMBINACIN EXTERNA (JOIN EXTERNO, OUTER JOIN): El equijoin solo retorna las filas que cumplen la condicin, el join externo retorna mas filas que las establecidas.
COMBINACIN EXTERNA A LA IZQUIERDA (LEFT OUTER JOIN) COMBINACIN EXTERNA A LA DERECHA (RIGHT OUTER JOIN) COMBINACIN EXTERNA COMPLETOA (FULL OUTER JOIN)
EMPLEADO (Id, Nombre, , Id_Depto) ID NOMBRE APELLIDO Id_Depto 11 William Date D1 22 Daniele Baltoni D2 33 Ana Giraldo NULL 44 Ana De Miguel D2 DEPARTAMENTO (Id_Depto, Nombre) Id_Depto NOMBRE D1 Desarrollo D2 Operaciones D3 Administracin
EMPLEADO DEPARTAMENTO ID NOMBRE APELLIDO Id_Depto NOMBRE 11 William Date D1 Desarrollo 22 Daniele Baltoni D2 Operaciones 44 Ana De Miguel D2 Operaciones
25
COMBINACIN EXTERNA A LA IZQUIERDA (LEFT OUTER JOIN): -Muestra todas las tuplas que cumplen la condicin y las tuplas solo de R que no cumplan la condicin. -Se incluyen filas de la tabla de la izquierda (R) que no tienen correspondencia en la tabla de la derecha (S).
EMPLEADO (Id, Nombre, , Id_Depto) ID NOMBRE APELLIDO Id_Depto 11 William Date D1 22 Daniele Baltoni D2 33 Ana Giraldo NULL 44 Ana De Miguel D2
E(EMPLEADO)
E.Id_depto = D.Id_depto
D(DEPARTAMENTO)
ID NOMBRE APELLIDO Id_Depto NOMBRE 11 William Date D1 Desarrollo 22 Daniele Baltoni D2 Operaciones 44 Ana De Miguel D2 Operaciones 33 Ana Giraldo
26
-Muestra todas las tuplas que cumplen la condicin y las tuplas solo de S que no cumplan la condicin.
-Se incluyen filas de la tabla de la Derecha (S) que no tienen correspondencia en la tabla de la Izquierda (R).
EMPLEADO (Id, Nombre, , Id_Depto) ID NOMBRE APELLIDO Id_Depto 11 William Date D1 22 Daniele Baltoni D2 33 Ana Giraldo NULL 44 Ana De Miguel D2
E(EMPLEADO)
E.Id_depto = D.Id_depto
D(DEPARTAMENTO)
ID NOMBRE APELLIDO Id_Depto NOMBRE 11 William Date D1 Desarrollo 22 Daniele Baltoni D2 Operaciones 44 Ana De Miguel D2 Operaciones D3 Administracin
27
COMBINACIN EXTERNA COMPLETA (FULL OUTER JOIN) -Muestra todas las tuplas que cumplen la condicin y las tuplas de R y S que no cumplan la condicin. -Se incluyen filas de la tabla de la Izquierda (R) y de la Derecha (S) que no tienen correspondencia.
EMPLEADO (Id, Nombre, , Id_Depto) ID NOMBRE APELLIDO Id_Depto 11 William Date D1 22 Daniele Baltoni D2 33 Ana Giraldo NULL 44 Ana De Miguel D2
E(EMPLEADO)
E.Id_depto = D.Id_depto
D(DEPARTAMENTO)
ID NOMBRE APELLIDO Id_Depto NOMBRE 11 William Date D1 Desarrollo 22 Daniele Baltoni D2 Operaciones 44 Ana De Miguel D2 Operaciones D3 Administracin 33 Ana Giraldo
28
Operaciones de Agregacin
AGREGACIN
Se utilizan para realizar algn tipo de resumen de los datos. Para la agregacin no se tiene en cuenta los valores nulos. Retornar un solo valor.
F(Atributo)(R)
Las principales funciones de agregacin (F) son: COUNT: Devuelve la cantidad de los valores en el atributo asociado. SUM: Devuelve la suma de los valores en el atributo asociado. AVG: Devuelve la media de los valores en el atributo asociado. MIN: Devuelve el valor mas pequeo en el atributo asociado. MAX: Devuelve el valor mximo en el atributo asociado.
29
EMPLEADO ID NOMBRE
33 33 NULL 22
COUNT(ID), MIN(FECHA_NAC),MAX(FECHA_NAC)(EMPLEADO)
COUNT(ID)(EMPLEADO)
COUNT(ID) 4
R (MinFecha)(
MIN(FECHA_NACIMIENTO)(EMPLEADO)) 08/12/1950
MINFECHA
30
Operaciones de Agrupacin
AGRUPACIN
Agrupa las tuplas de la relacin R segn los atributos de agrupacin AG, y luego aplica las lista de funciones F; donde AG=(A1,,An) y F(Atributo) es opcional. El resultado de una funcin agregada es una relacin, no un valor real. La relacin resultante contiene los atributos de agrupacin junto con los resultados de la agregacin. No se tiene en cuenta los valores nulos. En la aplicacin de una funcin agregada, en general, los duplicados no se eliminan.
AG
F(Atributo)(R)
31
1 2 1
ID
EMP_DEPORTE
EMPLEADO
DEPORTE.NOMBRE
32
R (A, B)
A 1 3 1 2 1 2 B 2 4 2 8 2 6
SUM(B)(R)
EMPLEADO ID NOMBRE APELLIDO SALARIO ID_DEPT 71134534 Juan Mesa 1,600,000 C3 23423445 Ana Mara Betancur 1,700,000 C2 12453535 Gloria Betancur 1,350,000 C3 75556743 Pedro Ochoa 1,700,000 C1 43533322 Patricia Angel 1,350,000 C3 78900456 Carlos Betancur 1,500,000 C1 73456789 Mario Gmez 1,200,000 C2 43890231 Claudia Gonzalez 1,800,000 78900700 Fabio Solano 1,200,000 C1
ID_DEPT
ID_DEPT, SALARIO(A)
ID_DEPT SALARIO C3 1,600,000 C2 1,700,000 C1 1,700,000
33
A SUM(B) 1 6 3 4 2 14
MAX(SALARIO)(EMPLEADO)
Modificacin de la BD
BORRADO: Solo se pueden eliminar tuplas enteras, no valores de atributos concretos. R RE Donde R es una relacin y E es una consulta de algebra relacional. INSERCIN: Solo se pueden insertar tuplas que tengan el mismo dominio y numero de atributos R RUE Donde R es una relacin y E es una expresin de algebra relacional o son valores reales. ACTUALIZACIN: Solo se pueden insertar tuplas que tengan el mismo dominio y numero de atributos (n). R F1,,Fn(P(R)) U R-(P(R)
34
Apreciaciones finales
Todas las operaciones estn implementadas por rutinas internas en los SGBDR comerciales para manipular los datos. Se ejecutan cuando se realizan llamadas desde sentencias y operan con unos argumentos de entrada, devolviendo el resultado, generalmente, tras una seleccin y una proyeccin.
Las tablas resultantes slo se generan en memoria temporal para visualizar sus datos u operar con ellas, pero nunca se almacenan en memoria permanente a no ser que se indique expresamente.
Los algoritmos internos de la rutina de join estn optimizados, ya que en el join de tablas con una cardinalidad muy alta (miles de tuplas) el proceso podra ser muy lento y costoso. Por ejemplo, cuando la cardinalidad de las tablas que intervienen es muy diferente, aplica la propiedad conmutativa a la operacin de join, de forma que toma en primer lugar la tabla con cardinalidad inferior, con lo que se ahorra lecturas.
35