Algebra relacional i-bdi

435 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
435
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
20
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Algebra relacional i-bdi

  1. 1. 21/05/13 Curso Bases de Datos 1CONCEPTOS Y DISEÑOS DEBASES DE DATOSGustavo Cáceres CastellanosUniversidad Pedagógica y Tecnológica de Colombiagustavo.caceres@uptc.edu.coEspecialización en Bases de DatosÁLGEBRA RELACIONAL
  2. 2. 21/05/13 Curso Bases de Datos 2Álgebra Relacional Permite operar con el Modelo Relacional Conjunto de operadores que toman relacionescomo sus operandos y regresan una relacióncomo resultado  El álgebra es cerrada Es un formalismo que permite solicitarinformación a las Bases de Datos Es un lenguaje puro (en general no seimplementa directamente) Propuesta por Codd Se usa para la traducción de una consulta SQLy para optimización de consultas
  3. 3. 21/05/13 Curso Bases de Datos 3Álgebra Relacional 8 operadores iniciales clasificados en2 grupos: Tradicionales de la teoría de conjuntos:Unión, Intersección, Diferencia yProducto Cartesiano Especiales: Restricción (o Selección),Proyección, Reunión (join) y División Operadores adicionales: Renombrado,Agrupamiento
  4. 4. 21/05/13 Curso Concepto y Diseño deBases de Datos4Álgebra RelacionalCódigo Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 3010 Juan Martínez 19ADMINISTRADORPRODUCTORSean las relaciones:¡¡REPASO!!¿Cuál es el esquema dela relaciónADMINISTRADOR?(Código,Nombre,Edad)
  5. 5. 21/05/13 Curso Bases de Datos 5Restricción o Selección (σ) El argumento es una relación yuna condición Produce una relación R1 quecontiene todas las tuplas de Rque cumplen una condiciónespecífica La condición se construyemediante operadores decomparación (=,<,> etc.) ybooleanos (AND, OR etc.) El resultado es una nuevarelación cuyo esquema esidéntico al esquema de Rσcondición(R)
  6. 6. 21/05/13 Curso Bases de Datos 6Restricción o Selección (σ)σEdad >= 25(Administrador):σCódigo < 5 (Productor):Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 25Código Nombre Edad2 Enrique Muñoz 25Código Nombre Edad2 Enrique Muñoz 258 Jorge Arias 3010 Juan Martínez 19
  7. 7. 21/05/13 Curso Bases de Datos 7Proyección (π) Toma como argumentouna relación R y una listade atributos Se utiliza para extraeratributos (columnas) deuna relación R El resultado es una nuevarelación R1 cuyo esquemacorresponde a la lista deatributos proyectados En R1 se eliminan lastuplas duplicadas Se puede extraer más deuna columna a la vezπ Lista Atributos (R)
  8. 8. 21/05/13 Curso Bases de Datos 8Proyección (π)πCódigo,Edad(Administrador)Código Edad1 332 253 21Código Nombre2 Enrique Muñoz8 Jorge Arias10 Juan MartínezπCódigo,Nombre(Productor)Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 21
  9. 9. 21/05/13 Curso Bases de Datos 9Proyección (π)Código Edad1 302 253 30Suponga una relación W así:πEdad(W)WEdad3025¡¡ se eliminan tuplastuplas repetidas !!El resultado será:
  10. 10. 21/05/13 Curso Bases de Datos 10Producto Cartesiano: R1 XX R2 Toma como argumentos dos relaciones R1 y R2 Da como resultado una relación R3 cuyo esquema constatanto de los atributos de R1 como de los atributos de R2 Los esquemas de R1 y R2 deben ser disjuntos, es decirlos esquemas de R1 y R2 no pueden tener nombres deatributos en común ¿por qué? Se debe usar un alias (mediante el operador ρ) si losesquemas no son disjuntos R3 contiene todas las tuplas resultantes de laconcatenación de cada tupla de R1con cada una de lastuplas de R2Renombrado de atributos
  11. 11. RENOMBRADO DE ATRIBUTOS21/05/13 Curso Bases de Datos 11Forma I:Administrador XX [ρCódigoCod,NombreNom,EdadEdad1(Productor)]Forma II:Productor1(Cod,Nom,Edad1) ‹-- Productor
  12. 12. 21/05/13 Curso Bases de Datos 12EjemploCódigo Nombre Edad Cod Nom Edad11 Jorge Campos 33 2 Enrique Muñoz 251 Jorge Campos 33 8 Jorge Arias 301 Jorge Campos 33 10 Juan Martínez 192 Enrique Muñoz 25 2 Enrique Muñoz 252 Enrique Muñoz 25 8 Jorge Arias 302 Enrique Muñoz 25 10 Juan Martínez 193 Esteban Paz 21 2 Enrique Muñoz 253 Esteban Paz 21 8 Jorge Arias 303 Esteban Paz 21 10 Juan Martínez 19El renombrado ρρ de la relationde la relationRR(A,B,C,D) en(A,B,C,D) en RR(A,K,L,D) se denota(A,K,L,D) se denotaρρ BBK,CK,CLL (R)¡¡ El renombrado es puramente sintáctico !!Administrador XX [ρCódigoCod,NombreNom,EdadEdad1(Productor)]
  13. 13. 21/05/13 Curso Bases de Datos 13Unión: R1 ∪ R2 Toma como argumentosdos relaciones R1 y R2 conesquemas idénticos Retorna una relación R3con el mismo esquema deR1 y R2 que contiene todasla tuplas de R1 y todas lasde R2, eliminando tuplasrepetidasR1R2
  14. 14. 21/05/13 Curso Bases de Datos 14Ejemplo: Administrador ∪ Productor:Código Nombre Edad1 Jorge Campos 332 Enrique Muñoz 253 Esteban Paz 218 Jorge Arias 3010 Juan Martínez 19
  15. 15. 21/05/13 Curso Bases de Datos 15Intersección: R1 ∩ R2 Toma como argumentosdos relaciones R1 y R2con esquemas idénticos Retorna una relación R3con el mismo esquemade R1 y R2 que contienetodas las tuplas queaparecen tanto en R1como en R2R1R2
  16. 16. 21/05/13 Curso Bases de Datos 16Ejemplo Administrador ∩ ProductorCódigo Nombre Edad2 Enrique Muñoz 25
  17. 17. 21/05/13 Curso Bases de Datos 17Diferencia: R1 − R2 Toma como argumentodos relaciones R1 y R2con esquemas idénticos Retorna una relación R3con el mismo esquemade R1 y R2 quecontiene todas lastuplas que aparecen enR1 pero no en R2R1R2
  18. 18. 21/05/13 Curso Bases de Datos 18Ejemplo Administrador − Productor: Productor − Administrador:Código Nombre Edad1 Jorge Campos 333 Esteban Paz 21Código Nombre Edad8 Jorge Arias 3010 Juan Martínez 19
  19. 19. 21/05/13 Curso Bases de Datos 19 La unión, intersección y productocartesiano son conmutativas yasociativas La diferencia no es conmutativa niasociativa La intersección no es primitiva ya quepuede ser expresada mediante ladiferenciaPropiedades
  20. 20. 21/05/13 Curso Bases de Datos 20Reunión (JOIN) NATURAL JOIN: R1 * R2Si R1(A,B) y R2(B,C) el resultado de R1 *R2es una relación R3 con esquema R3(A,B,C)donde cada tupla de R1 se concatena con cadatupla de R2 SIEMPRE Y CUANDO tengan elmismo valor del atributo en común (B).El atributo B puede ser compuesto.
  21. 21. 21/05/13 Curso Bases de Datos 21EjemploCódigo Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 210 Juan Martínez 19 212 Anselmo Rodas 28 6Depto Descripción1 Administración2 Producción3 Ventas4 FinanzasEmpleadoDepartamentoAtributo deJoinNotaNota: En este ejemplo, el campoDepto en Empleado NO ES CFcon respecto a la tabla Departamento
  22. 22. 21/05/13 Curso Bases de Datos 22EjemploEmpleado * DepartamentoCódigo Nombre Edad Depto Descripción1 Jorge Campos 33 1 Administración2 Enrique Muñoz 25 1 Administración3 Esteban Paz 21 1 Administración8 Jorge Arias 30 2 Producción10 Juan Martínez 19 2 Producción
  23. 23. 21/05/13 Curso Bases de Datos 23SEMI JOIN ( ⊳) Idéntico al NATURAL JOIN pero larelación resultante tiene el esquemade la relación izquierda ¿Utilidad?
  24. 24. 21/05/13 Curso Bases de Datos 24THETA JOIN (R1 ⋈ Condición R2) El operador de comparación usado en lacondición NO es el “==“ sino alguno delos siguientes: “>>“, “<<“, “>=>=“, “<=<=“,“≠≠“ Es equivalente a: σCondición (R1 X R2)
  25. 25. 21/05/13 Curso Bases de Datos 25EjemploEmpleado ⋈ Depto > Dep [ρ DeptoDep (Departamento)]Código Nombre Edad Depto Dep Desc8 Jorge Arias 30 2 1 Administración10 Juan Martínez 19 2 1 Administración12 Anselmo Rodas 28 6 1 Administración12 Anselmo Rodas 28 6 2 Producción12 Anselmo Rodas 28 6 3 Ventas12 Anselmo Rodas 28 6 4 Finanzas
  26. 26. 21/05/13 Curso Bases de Datos 26División: R1 ÷ R2Def 1: Sean las relaciones R1(A,B) yR2(B). El resultado de R1 ÷ R2es unarelación R3 cuyo esquema esta compuestopor el atributo A, donde para todo valorde B en R2 existe una pareja en R1de Acon ese valor.Def 2:R ÷ S = {t | t ∈ ΠΠK (R) y {t} x s ⊆⊆ r} conK= esquema de R – esquema de STuplas de STuplas de R
  27. 27. 21/05/13 Curso Bases de Datos 27EjemploEmpleadoCódigo Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 12 Enrique Muñoz 25 23 Esteban Paz 21 18 Jorge Arias 30 210 Juan Martínez 19 2Depto12DepartamentoEmpleado ÷ (πDepto(Departamento))En este ejemplo la relación empleado no estánormalizada, observe que la CP es (Código, Depto)y Código  Nombre, EdadCódigo Nombre Edad2 Enrique Muñoz 25
  28. 28. 21/05/13 Curso Bases de Datos 28Ademas ..Se permite también el siguiente operador:Asignación: VbleRelacion Relación←Otra forma de renombrar atributos y elnombre de la relaciónρ NuevoNombreRelación(Atributos Renombrados) (π(Lista Atributos)(R))
  29. 29. 21/05/13 Curso Bases de Datos 29Agrupar con funcionesF : Agrupar con funciones Suma(), Promedio(), Max(), Min(),Cuenta()Código Nombre Edad Depto1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 210 Juan Martínez 19 212 Anselmo Rodas 28 6¿Qué hace la siguiente consulta?Depto F Cuenta(Código) AS conteo (Emp)Renombradode la función deGrupoEmpAtributos de Agrupamiento FFunciones de Grupo (R)Ej. Sea:SINTAXIS:
  30. 30. 21/05/13 Curso Bases de Datos 30ExtenderExtend R ADD expresión AS nuevo_atributoCódigo Nombre Sal Bono1 Jorge Campos 33 12 Enrique Muñoz 25 13 Esteban Paz 21 18 Jorge Arias 30 210 Juan Martínez 19 212 Anselmo Rodas 28 6EmpEj: Extend Emp ADD Sal*2 AS Saldobl
  31. 31. 21/05/13 Curso Bases de Datos 31Ejemplo Se genera una relación como la originalpero con un atributo saldobl adicional:Código Nombre Sal Bono Saldobl1 Jorge Campos 33 1 662 Enrique Muñoz 25 1 503 Esteban Paz 21 1 428 Jorge Arias 30 2 6010 Juan Martínez 19 2 3812 Anselmo Rodas 28 6 56¿Qué hace la siguiente consulta?Ej: Extend Emp ADD 1 AS num, ‘Hola’ AS mensaje

×