La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Paul Leger http://pleger.cl Algebra Relacional Paul Leger http://pleger.cl.

Presentaciones similares


Presentación del tema: "Paul Leger http://pleger.cl Algebra Relacional Paul Leger http://pleger.cl."— Transcripción de la presentación:

1 Paul Leger http://pleger.cl
Algebra Relacional Paul Leger

2 NOTA: Python, Java, C, Ruby son Turing complete
Consultando a una BD Aparte de escribir, una base de datos es usada para hacer consultas (es decir, lecturas) Los motores de base de datos usan diferentes lenguajes de programación para comunicarse y recibir consultas Dato cultural: La mayoría de los lenguajes para base de datos no son Turing complete, y son específicos este dominio. En otras palabras, se dicen que son Domain-Specific Languages (DSLs) y no Turing complete NOTA: Python, Java, C, Ruby son Turing complete

3 Algebra Relacional Es un lenguaje teórico para realizar consultas a una base de datos SQL, el cual es un implementación concreta de un lenguaje de consultas de base de datos, el cual tiene sus bases en algebra relacional Para realizar investigación y optimizaciones sobre consultas a una base de datos, se sigue usando algebra relacional

4 Algebra Relacional Algebra Relacional SQL
Descripción formal de un lenguaje de consultas Implementación concreta

5 Elementos de Algebra Relacional (AR)
Las entidades son conocidas como relaciones Los registros son conocidos como tuplas Ejemplos de dos relaciones R(r1,r2,r3,…, rn) y T(s1,s2, r1) ¿Qué atributo en común tienen R y T? ¿En el modelo relacional que sería este atributo en común?

6 Operadores en Algebra Relacional
En algebra operacional, las consultas sobre una base de datos se logran a través la composición de un conjunto de operadores funcionales Funcional: NuevaR = Operador(R). El operador toma una relación y opera con ella y retorna el resultado de esa operación como otra nueva relación. Es decir, la relación original “R” no se modifica. Composición de operadores: NuevaR = Operador3(Operador2(R2, Operador1(R1))). Para exactamente realizar o encontrar el resultado que buscamos, deberemos componer el uso de operadores. Es decir, resultado de operador pasa como entrada a otro operador.

7 Suponga estas dos relaciones: Persona y Ciudad
Rut Nombre NombreC Paul Coquimbo Renato Peor es nada Mariana Fucking 1232 La Serena Sabías que … NombreC Coquimbo Chanaral La Serena Peor es nada Chigualoco Conociendo las matemáticas ¡¡Luego veremos casi solamente letras y no conceptos como “rut” y “nombre”!! En Kansas, hay una ciudad que se llama Google (Topeka)

8 Operadores de Algebra Relacional
“Aquí se viene interesante”

9 ¡Esta relación no es modificada!
Proyección (π) Proyecta una base de datos. Por ejemplo R1 = π rut (Persona) R2= π nombre,nombreC (Persona) Rut 1232 R1 Nombre NombreC Paul Coquimbo Renato Peor es nada Mariana Fucking La Serena ¡Esta relación no es modificada! R2

10 Proyección (π) [2] R3 = π nombre (Persona) En este caso, la proyección disminuyó el largo de la tabla persona de 4 a 3 registros ¿Por qué? Nombre Paul Renato Mariana R3

11 Renombrar (ρ) Renombrar una relación. Usaremos la siguientes sintaxis para renombrar Donde a es el antiguo nombre del atributo y b es el nuevo nombre del atributo de la relación R Ejemplo: Alumno = ρnombreC/hogar (Persona) R = π hogar (Alumno) hogar Coquimbo Peor es nada Fucking La Serena R

12 σ nombre=«Paul»(Persona)
Selección (σ) Selecciona un conjunto de tuplas dada una condición (o conjunto de condiciones). Por ejemplo: σ nombre=«Paul»(Persona) Rut Nombre NombreC Paul Coquimbo 1232 La Serena ¿Qué contiene R2 en las siguientes expresiones? R1 = σ nombre=«Paul»(Persona) R2 = π nombre (R1)?

13 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. Por ejemplo: R = Persona x Ciudad Rut Nombre Persona.nombreC Ciudad.nombreC Paul Coquimbo Chanaral La Serena Peor es nada Fucking Renato R = En otras palabras, R contiene todas las combinaciones posibles entre las tuplas de Persona y Ciudad

14 Unión (U) R = Cliente U Empleado |R| ≤ |Cliente| + |Empleado|
Une dos relaciones, donde los atributos deberían tener los mismos nombres y dominios. Por ejemplo: R = Cliente U Empleado |R| ≤ |Cliente| + |Empleado| Nota: ¿Por qué la cardinalidad es ≤? ¿Le recuerda a algo la expresión |x + y| ≤ |x| + |y| ?

15 Unión (U) [2] = U Cliente Empleado Nombre Paul Renato Mariana Marco
Juan Nombre Paul Renato Mariana Nombre Juan Marco Paul = U

16 Intersección (∩) R = Cliente ∩ Empleado
Intersecta dos relaciones, donde los atributos deberían tener los mismos nombres y dominios. Por ejemplo: R = Cliente ∩ Empleado Acá, R contiene los clientes que son empleados también

17 ? Intersección (∩)[2] = ∩ Cliente Empleado Nombre Paul Renato Mariana
Juan Marco Paul ? =

18 Diferencia (-) R = R1 - R2, donde R contiene todas las tuplas de R1 que no están en R2. Los atributos deberían tener los mismos nombres y dominios. Por ejemplo: Nuevos = ActualesEmpleados AntiguosEmpleados Nombre Paul Renato Mariana Nombre Renato Ricardo Mariana Nombre Paul = -

19 Resumen Proyección (π) Renombrar (ρ) Selección (σ)
Producto Cartesiano (x) Unión (U) Intersección (∩) Diferencia (-)

20 Ejercicios Dada las relaciones T1, T2 y T3, resuelva: T1 T2 T3 P Q R
1) π p(σ T1.q=“b” (T1)) ) σ T1.P = T2.A (T1 x T2) 3) σ T1.Q = T2.B (T1 x T2) 4) T1 U T2 5) T1 U T1 6) σ T1.P = T1.P(T1 x T1) 7) σ T1.P = T2.A ^ T1.R= T2.C(T1 x T2) 8) T2 – T3 9) T3 – T2 10) π A,B (T2) – T3 T1 T2 T3 P Q R 10 a 5 15 b 8 25 6 A B C 10 b 6 25 c 3 5 A B C 10 b 6 5

21 Consultas


Descargar ppt "Paul Leger http://pleger.cl Algebra Relacional Paul Leger http://pleger.cl."

Presentaciones similares


Anuncios Google