2. Dr. Edgar Frank Codd,_(database) matemático y científico de la computación
publicó en 1970 el artículo A Relational Model of Data for Large Shared Data
Banks, algo así como Un modelo de datos relacional para grandes bancos de
datos compartidos, donde definió lo siguiente.
– Los sistemas de bases de datos deberían presentarse a los usuarios con una
visión de los datos organizados en estructuras llamadas relaciones,
definidas como conjuntos de tuplas (filas), una relación puede haber
cualquier estructura de datos compleja que permita una respuesta rápida a
una variedad de consultas.
– el usuario de un sistema relacional sólo debía preocuparse por el qué
consultar y no el cómo de las estructuras de almacenamiento.
“El contenido entero de una base de datos relacional se representa por
una y sola una forma, a saber: como valores de atributos en tuplas dentro
de relaciones” E. F. Codd
BASES DE DATOSJOSÉ CUARTAS
Historia
3. • Algebra: Sistema matématico que consite de:
• Los operandos --- variables o valores de los que los nuevos valores se
puede construir.
• Los operadores --- símbolos que denotan procedimientos que construyen
nuevos valores a partir de valores dado.
• http://es.wikipedia.org/wiki/Álgebra
• Algebra Relacional: Colección de operaciones que sirven para
manipular relaciones enteras.
• El resultado de una operación es una nueva relación, la cual también se
puede manipular.
• http://es.wikipedia.org/wiki/Álgebra_relacional
• Operandos: Relaciones o variables que representan las relaciones
• http://es.wikipedia.org/wiki/Operando
• Operadores: Son diseñados para hacer las cosas más comunes que con
las relaciones en una base de datos.
• El resultado es un álgebra que se puede utilizar como un lenguaje de
consulta para las relaciones (ejemplo SQL).
• http://es.wikipedia.org/wiki/Operador
BASES DE DATOSJOSÉ CUARTAS
Definamos los términos:
4. • Matemáticas de conjunto:
– La unión
– La intersección
– La diferencia
– producto cartesiano
BASES DE DATOSJOSÉ CUARTAS
• Operaciones especificas de las DB:
– Selección
– Proyectar
– Agregación
– Reunión (JOIN)
Unarias: operan con una sola tabla.
– Selección
– Proyección
Binarias o de conjunto: Operan con
dos tablas.
– Unión
– Diferencia
– Producto cartesiano
Operadores Relacionales
5. • Operaciones derivadas o adicionales: realizan en su proceso
llamadas a las operaciones básicas.
– Intersección
– Cociente o división
R1 / R2 = πC(R1) -πC(R2 x πC(R1) - R1)
– Join o reunión
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
6. • Selecciona un subconjunto que satisface una condición.
• Operador unitario , se aplica a una sola relación.
• la σ (sigma identifica el operador)
• La operación contiene los mismos atributos de la relación y se aplica a
cada tupla o fila de la relación.
• Operadores que se aplican
– Operadores comunes <,> =,<=,>= de la condición de selección o expresión booleana
– Puede conectarse con operadores lógicos AND,OR y NOT que permitan tener mas
cláusula en la condición de selección.
• R1 := σC (R2)
– C es una condición (Como una sentencia “IF”) que se refiere a los atributos de R2. R1
son todas las tuplas R2 que satisfacen a C.
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– SELECCIONAR
7. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– SELECCIONAR
Relación ventas:
Bar Licor Precio
La80 Oporto Vino Z 18000
La80 Sangria Z 15500
Licorcafe Sangria Z 15500
Licorcafe
Champaña
Casa Doma 11000
Ventas_LA80 :=σbar=“La80”(ventas):
bar Licor Precio
La80 Oporto Vino Z 18000
La80 Sangria Z 15500
8. • Selecciona los atributos de una relación, los proyecta y son dispuestos
en el mismo orden en que aparecen.
• la π (Pi identifica el operador)
• R1 := π L (R2)
– L es una lista de atributos que se deriva del esquema de R2.
– R1 se construye examinando a cada tupla o fila de R2, extrae los
atributos en la lista L, en el orden especificado, y proyecta esos
elementos en una tupla o fila de R1.
– Elimina tuplas o filas duplicadas, si es el caso.
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– PROYECTAR
9. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– PROYECTAR
Relación ventas:
Bar Licor Precio
La80 Oporto Vino Z 18000
La80 Sangria Z 15500
Licorcafe Sangria Z 15500
Licorcafe
Champaña Casa
Doma 11000
Ventas_precios :=π(licor,precio)(ventas):
Licor Precio
Oporto Vino Z 18000
Sangria Z 15500
Champaña Casa
Doma 11000
10. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
COMBINANCIÓN de operadores
Relación ventas:
Bar licor Precio
La80 Oporto Vino Z 18000
La80 Sangria Z 15500
Licorcafe Sangria Z 15500
Licorcafe
Champaña
Casa Doma 11000
Ventas_precios :=π(licor,precio)(σbar=“La80”(ventas)):
Licor Precio
Oporto Vino Z 18000
Sangria Z 15500
•π L (R2)(σC (R2))
11. • En el resultado de las operaciones algebraicas ( relaciones intermedias
o la resultante ) no tiene nombre, resulta útil poder usar un nombre para
referirse a ella,
• Los atributos o columnas de las relaciones también se les puede
renombrar.
• la ρ(identifica la operación)
• - ρ x(E)
– X: Nombre de la relación
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– RENOMBRAMIENTO
12. • Operación de la teoría de conjuntos, el resultado de esta operación es
una relación que incluye todas las tuplas o filas que están tanto en R
como en S o en ambas. Las tuplas repetidas se eliminan.
• La U(identifica la operación)
• Condiciones (compatibilidad de unión):
– Los dominios de los atributos i-enesimo, de las relaciones R y S deben ser iguales
para todo i y deben estar en el mismo orden.
– La Aridad debe ser la misma, es decir cada relación que es operando de la operación
unión debe tener la misma cantidad de atributos.
– Nota: No implica que los nombres de definición de tuplas o atributos sean iguales.
• R1 := R U S
– R es una relación y S es otra relación. R1 son todas las tuplas o filas que están tanto
en R como en S o en ambas. Las tuplas repetidas se eliminan.
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– UNIÓN
13. BASES DE DATOSJOSÉ CUARTAS
TBL Profesores TBL Estudiantes
idDocumento Nombre_profe IdDocumento Nombre_estu
1 Juan 7 Carlos
2 Jose 8 Catalina
3 Carlos 9 Natalia
7 Carlos
TBL Profesores UNION TBL Estudiantes
idDocumento Nombres
1 Juan
2 Jose
3 Carlos
7 Carlos
8 Catalina
9 Natalia
Operadores Relacionales
Operador– UNIÓN
14. • Operación de la teoría de conjuntos, el resultado de esta operación es
una relación que incluye las tuplas con los atributos combinados de 2
relaciones, es decir tiene una tupla por cada combinación de tuplas: una
de R y una de S.
• La X(identifica la operación)
• El producto cartesiano para las relaciones a las que se aplica no tiene
que ser compatibles con la condición compatibilidad de unión
• Se conoce también como PRODUCTO CRUZADO o REUNIÓN
CRUZADA
• R1 := R X S
– R es una relación y S es otra relación. R1 son todas las tuplas o filas
que combinan las relaciones de R y S.
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– PRODUCTO CARTESIANO
16. • Operación de la teoría de conjuntos, el resultado de esta operación es
una relación que incluye todas las tuplas que están en R pero no en S.
• la - (identifica la operación)
• Diferencia condiciones (compatibilidad de unión):
– Los dominios de los atributos i-enesimo, de las relaciones R y S deben ser iguales
para todo i y deben estar en el mismo orden.
– La Aridad debe ser la misma, es decir cada relación que es operando de la operación
unión debe tener la misma cantidad de atributos.
– Nota: No implica que los nombres de definición de tuplas sean iguales.
• R1 := R - S
• R es una relación y S es otra relación. R1 son todas las FILAS que
están en R pero no en S.
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– DIFERENCIA
17. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– DIFERENCIA
TBL Profesores TBL Estudiantes
idDocumento Nombre_profe IdDocumento Nombre_estu
1 Juan 7 Carlos
2 Jose 8 Catalina
3 Natalia 3 Natalia
7 Carlos
TBL Profesores - TBL Estudiantes
idDocumento Nombres
1 Juan
2 Jose
18. • La división (/) de una relación R1 (dividendo) por otra relación R2
(divisor) es una relación R (cociente) tal que, al realizarse su combinación
con el divisor, todas las tuplas o filas resultantes se encuentran en el
dividendo.
• La operación División se puede expresar como una secuencia de
operaciones π, × y −
• R1 / R2 = πC(R1) -πC(R2 x πC(R1) - R1)
• , o como sigue:
– T1 ← πY (R)
– T2 ← πY ((S × T1 ) − R)
– T ← T1 − T2
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– DIVISIÓN
19. BASES DE DATOSJOSÉ CUARTAS
Empleado
Nombre Apellido1 Apellido2 di F-Nac Dirección Sexo Salario Supervisor Num-Dept
José López Gómez 1245 21/01/1971 Calle 49 Varón 34000000 5544 2
Ana Moreira González 5874 25/07/1985 Car 80 Mujer 38000000 5544 2
María Pérez Mosquera 5544 21/08/1969 Calle 11 Mujer 50000000 Null 2
Pedro González Ruíz 8811 07/07/1979 Trasn 32 c Varón 25000000 1122 1
Luis Izquierdo Sánchez 1122 09/09/1970 Calle 55 Varón 30000000 Null 1
trabaja_en di_nump
Derivada de la
entidad
trabaja en nump_ana
document
o
di Num-Proy Horas di Num-Proy Num-Proy di
1245 1 10 1245 1 1 1245
1245 3 15 1245 3 3 5874
5874 1 20 5874 1 5544
5544 3 50 5544 3
5544 1 5 5544 1
8811 4 10 8811 4
1122 2 20 1122 2
5874 3 10 5874 3
• “obtener los datos de los empleados que trabajan en todos los proyectos en los
que trabaja Ana Moreira”.
Operadores Relacionales
Operador– DIVISIÓN
20. • Combina tuplas o filas relacionadas de dos relaciones que satisfagan
una condición de selección.
• La condición en este operador evalúa la combinación de tuplas, y
escoge la tupla para la cual la condición con los valores de atributos
produzca el resultado verdadero.
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– REUNIÓN NATURAL(JOIN)
21. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– REUNIÓN NATURAL(JOIN)
VENTAS
Bar Licor Precio
La80 Oporto Vino Z 18000
La80 Sangria Z 15500
Licorcafe Sangria Z 15500
Licorcafe
Champaña
Casa Doma 11000
BarInfo := Ventas JOIN Ventas.bar = Bares.nombre Bares
BARES
Nombre Dirección
La80 Crra 80 n 30-39
Licorcafe Calle 10 n 55-30
22. • No son operadores del algebra relacional.
• Se aplican enteramente sobre columnas y producen un solo resultado.
• Ejemplos mas comunes: SUM, AVG, COUNT, MIN y MAX.
• Otras GROUP BY, HAVING y DISTINC
• Ejemplo
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– FUNCIONES DE AGREGACIÓN
R = ( A B )
1 3
3 4
3 2
SUM(A) = 7
COUNT(A) = 3
MAX(B) = 4
AVG(B) = 3
23. • Es una ampliación de la operación reunión(JOIN) que utiliza la información
ausente.
• Las combinaciones externas combinan registros de dos tablas que cumplen la
condición, más los valores de los registros no coincidentes.
• los registros no coincidentes se rellenados con el valor desconocido(NULL).
• Hay tres tipos de combinaciones externas:
– Reunión externa izquierda(left outer join): Toma todas las tuplas que no coinciden
con ninguna tupla de la relación derecha y rellena con nulos todos los atributos de la
relación derecha y adicionas estas tuplas al resultado de la reunión natural.
– Reunión externa izquierda(right outer join): Toma todas las tuplas que no
coinciden con ninguna tupla de la relación izquierda y rellena con nulos todos los
atributos de la relación izquierda y adicionas estas tuplas al resultado de la reunión
natural.
– Reunión externa completa(full outer join): Realiza estas dos operaciones,
rellenándolas tuplas de la relación izquierda que no coinciden con ninguna tupla de
la relación derecha y las tuplas de la relación de la derecha que no coinciden con
ninguna tupla de la relación de la izquierda y adiciona al resultado de la reunión
natural.
BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– REUNIÓN EXTERNA(outer join)
24. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– REUNIÓN EXTERNA(outer join)
R OUTERJOIN S =
R S
A B C D
1 2 2 3
4 5 6 7
A B C
1 2 3
4 5 NULL
NULL 6 7
Relaciones R y S:
25. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– LEFT OUTER JOIN
TBL Empleados TBL InfoSobreEmpleados
Nombre Direccion Ciudad Nombre Sucursal Sueldo
Jose Calle 80 Medellín Jose Centro $ 3.000.000
Natalia calle 10 Medellín Natalia Poblado $ 2.000.000
Juan jose Av 49 Medellín Alejandro Bello $ 2.500.000
Manuela Belen Medellín Manuela Itagui $ 2.800.000
Left Outer Join
Nombre Direccion Ciudad Sucursal Sueldo
Jose Calle 80 Medellín Centro $ 3.000.000
Natalia calle 10 Medellín Poblado $ 2.000.000
Juan jose Av 49 Medellín NULL NULL
Manuela Belen Medellín Itagui $ 2.800.000
26. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– RIGHT OUTER JOIN
TBL Empleados TBL InfoSobreEmpleados
Nombre Direccion Ciudad Nombre Sucursal Sueldo
Jose Calle 80 Medellín Jose Centro $ 3.000.000
Natalia calle 10 Medellín Natalia Poblado $ 2.000.000
Juan jose Av 49 Medellín Alejandro Bello $ 2.500.000
Manuela Belen Medellín Manuela Itagui $ 2.800.000
Right Outer Join
Nombre Direccion Ciudad Sucursal Sueldo
Jose Calle 80 Medellín Centro $ 3.000.000
Natalia calle 10 Medellín Poblado $ 2.000.000
Alejandro null null Bello $ 2.500.000
Manuela Belen Medellín Itagui $ 2.800.000
27. BASES DE DATOSJOSÉ CUARTAS
Operadores Relacionales
Operador– FULL OUTER JOIN
TBL Empleados TBL InfoSobreEmpleados
Nombre Direccion Ciudad Nombre Sucursal Sueldo
Jose Calle 80 Medellín Jose Centro $ 3.000.000
Natalia calle 10 Medellín Natalia Poblado $ 2.000.000
Juan jose Av 49 Medellín Alejandro Bello $ 2.500.000
Manuela Belen Medellín Manuela Itagui $ 2.800.000
Full Outer Join
Nombre Direccion Ciudad Sucursal Sueldo
Jose Calle 80 Medellín Centro $ 3.000.000
Natalia calle 10 Medellín Poblado $ 2.000.000
Alejandro null null Bello $ 2.500.000
Manuela Belen Medellín Itagui $ 2.800.000
Juan jose Av 49 Medellín null null
28. BASES DE DATOSJOSÉ CUARTAS
Después de la teoría sigue la práctica
Siguiente