Download clase-6-algebra-relacional
Document related concepts
Transcript
E S C U E L A D E C I E N C I A S E M P R E S R I A L E S Algebra Relacional Paul Leger http://pleger.cl Consultando a una BD • Aparte de re-escribir, una base de datos son para hacer consultas (es decir lecturas) • Los motores de base de datos usan diferentes lenguajes de programación para comunicarse para permitir consultas • La mayoría de estos lenguajes no son Turing complete, y son específicos al dominios de la base de datos. En otras palabras, se dicen que son Domain Specific Languages (DSLs) no Turing complete Algebra Relacional • Es un lenguaje teórico para realizar consultas a una base de datos • SQL, el cual es un lenguaje concreto para base de datos, tienes sus bases en algebra relacional • Para realizar investigación en consultas a una base de datos, se usa algebra relacional Elementos de Algebra Relacional • Las tablas son conocidas como relaciones • Los registros son conocidos como tuplas • Ejemplos R(r1,r2,r3,…, rn) y T(r1,s2,s3) Suponga estas dos relaciones: Persona y Ciudad Rut Nombre Ciudad 12312312-3 Paul Coquimbo 15123561-3 Renato Peor es nada 12354345-2 Mariana Fucking Ciudad Coquimbo Chanaral La Serena Peor es nada Chigualoco Luego veremos más letras!! Operaciones en AR • Proyección (π): Proyecta una base de datos. Por ejemplo Rut • π _rut_ (Persona) => R1 12312312-3 15123561-3 12354345-2 • π _nombre,ciudad_ (Persona) => R2 Nombre Ciudad Paul Coquimbo Renato Peor es nada Mariana Fucking Renombrar • Renombrar (ρ): Renombrar una relación • ρ_Alumno_(Persona) => Alumno • ρ_rut,nombre,hogar (Alumno)_(Persona) => Alumno(rut,nombre,hogar) Selección • Selección (σ): Selecciona un conjunto de tuplas dada una condición (o conjunto de condiciones) • σ_nombre=«Paul»_(Persona) => Rut Nombre Ciudad 12312312-3 Paul Coquimbo Producto Cartesiano: «x» • Al igual que en la matemáticas, el producto cartesiano cruza todas las tuplas de una relación R1 con todas las tuplas de una relación R2 Rut Nombre R1.Ciudad R2.Ciudad 12312312-3 Paul Coquimbo Coquimbo 12312312-3 Paul Coquimbo Chanaral 12312312-3 Paul Coquimbo La Serena 12312312-3 Paul Coquimbo Peor es nada 12312312-3 Paul Coquimbo Fucking 15123561-3 Renato Peor es nada Coquimbo … … … … Unión (U) • Unión: Une dos relaciones, donde los campos deberían tener los mismos nombres y dominios • RT = Persona U Empleado • #(RT) <= #(Persona) + #(Empleado) – ¿Por qué la cardinalidad es <=? Intersección (∩) • Intersección(∩) : Intersecta dos relaciones, donde los campos deberían tener los mismos nombres y dominios • RT = Persona ∩ Empleado • RT contiene las personas que son empleados también Diferencia (-) • Diferencia(-) : R=R1-R2, donde R contiene todas las tuplas de R1 que no están en R2 • Nuevos = ActualesEmpleados - AntiguosEmpleados Resumen 1. 2. 3. 4. 5. 6. 7. Proyección (π) Renombrar (ρ) Selección (σ) Producto Cartesiano (x) Unión (U) Intersección (∩) Diferencia (-) Ejercicios • Dada las relaciones, resuelva a) σ_T1.P = T2.A_(T1x T2) b) σ_T1.Q = T2.B_(T1x T2) c) T1 U T2 d) T1 U T1 e) σ_T1.P = T1.P_(T1x T1) f) σ_T1.P = T2.A ^ T1.R= T2.C_(T1x T2) g) T2-T3 h) T3 – T2 i) π _A,B_(T2) – T3 A B C 10 b 6 10 b 5 T3 E S C U E L A D E C I E N C I A S E M P R E S R I A L E S Consultas