La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


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

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

2 Repaso (1/2) Proyección (π) Renombrar (ρ) Selección (σ)
Producto Cartesiano (x) Unión (U) Intersección (∩) Diferencia (-)

3 Repaso (2/2) Muestre todos los nombres de las personas (no mostrar nombres repetidos) πNombre (Persona) πCiudad (Persona) ∩ Ciudad? πCiudad (Persona) ∩ πCiudad (Ciudad)? ¿Qué entrega? Muestre la descripción de la ciudad donde vive cada persona π atributos_de_R (RxR) – R?

4 Algunos comentarios En la clase anterior, definimos la sintaxis del operador renombre(ρ) de la siguiente manera: ρrut,nombre,hogar (Alumno)(Persona) => Alumno(rut,nombre,hogar) Cambiaremos un poquitito la sintaxis, usando la siguiente la sintaxis a: Por ejemplo, en el caso anterior, se escribiría de la siguiente manera: Alumno = ρciudad/hogar(Persona)

5 Hoy veremos más operadores
… A divertirse …

6 Recordando las dos relaciones: Persona y Ciudad
Rut Nombre Ciudad Paul Coquimbo Renato Peor es nada Mariana Fucking Ciudad Comentario Coquimbo Buen puerto Chanaral Mucho sol Fucking No muy agradable Peor es nada El nombre basta Chigualoco Para Surf Nueva Columna

7 (Natural) Join (⋈) Este operador realiza un producto cartesiano entre dos relaciones, y solamente rescata las filas, cuyos atributos con el mismo nombre contienen el mismo valor. Nota: El resultado contendrá dos columnas con el mismo nombre y valores (es decir, dos columnas idénticas). Una de esas dos columna es eliminada Preguntas: ¿Qué es R = Persona ⋈ Ciudad ? ¿Cómo se podría escribir Persona ⋈ Ciudad sin usar join? ¿Para que sirve ⋈ para una base de datos implementada con un modelo relacional?

8 Θ-join: El super caso del Natural join
Es un join, donde podemos cambiar las condiciones (= Θ) de comparación (ejemplos >, >= , !=) R= ⋈Θ S ¿Cómo se podría escribir R= T ⋈Θ S sin usar join?

9 Theta join y Equijoin son más teóricos que prácticos
Es un (natural) join sin eliminar una columna con idéntica. Theta join y Equijoin son más teóricos que prácticos

10 Semi Joins (⋉)(⋊) Son un natural joins, sin el contenido (o el resto de los valores de una relación) R1 = T ⋉ S, no incluye los atributos de S R2 = T ⋊ S, no incluye los atributos de T Preguntas: Realice «Persona ⋉ Ciudad”, “Persona ⋊ Ciudad” ¿Cuál es la diferencia de entre Persona ⋉ Ciudad, Persona ⋊ Ciudad? ¿Cómo podemos expresar T ⋉ S, usando solamente ⋊?

11 Ejercicio Rut Nombre Ciudad Paul Coquimbo Renato Fucking Mariana Ciudad Comentario Coquimbo Buen puerto Fucking Mucho sol Muestre los nombres de las personas que viven en todas las ciudades (de la relación Ciudad)

12 Solución C= πciudad(Ciudad) P= π Rut, nombre(Persona) x C
PersonasViveUnaCiudad = P – Persona Respuesta = π Rut, nombre(Persona – PersonasViveUnaCiudad)

13 División (/) Dada dos relaciones S y T, la división entre S y T (= S/T) retorna … Todas las tuplas de una proyección de S (= πatributos (S)) que … (ejemplo => πnombre (Persona)) Tienen un link externo con cada tupla de T ejemplo => πciudad (Ciudad))

14 Definición formal de la división
R1:= πa1,...,an(T) × S R2 := R1 − T R3 := πa1,...,an(R2) R := πa1,...,an(T) − R3 Ejercicio: En el ejercicio anterior, encuentre la relación con estos cuatro pasos

15 Agregación (G) Permite ejecutar operaciones a grupos de datos
Similar al grupo de funciones de Excel (Suma, promedio, etc) G Max(Sueldo), Min(Sueldo), Avg(Sueldo) (Persona) Rut Nombre Sueldo Paul 1000 Renato 2000 Mariana 3000 500 Max Min Avg 3000 500 1625

16 Agregación por Agrupación (G)
Similar al anterior, pero ahora podemos agrupar por un atributo Rut Nombre Sueldo Paul 1000 Renato 2000 Mariana 3000 500 Nombre G Max(Sueldo), Min(Sueldo), Avg(Sueldo) (Persona) Nombre Max Min Avg Paul 1000 Renato 2000 500 1250 Mariana 3000

17 Resumen Aparte de los operadores vistos anteriormente (ej. proyección), tenemos nuevos operadores Se pueden expresar en términos de otros: Natural Join (⋈) Theta (θ) join (θ-⋈) Equi-join (Equi- ⋈) Semi-joins (⋉)(⋊) División (/) No se pueden expresar en términos de otros: Agregación (G) Agrupación para Agregación (G)

18 Consultas


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

Presentaciones similares


Anuncios Google