CC3201-1 B DATOS PRIMAVERA 2016
Transcript of CC3201-1 B DATOS PRIMAVERA 2016
![Page 1: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/1.jpg)
CC3201-1BASES DE DATOS
PRIMAVERA 2016
Clase 9: SQL (IV) Una nueva esperanza
Bases de datos (inter)activas
Aidan Hogan
![Page 2: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/2.jpg)
¿Acaso hemos visto todo de SQL?
(no)
![Page 3: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/3.jpg)
Lo que exploraremos hoy día
(Bases de datos interactivas)
![Page 4: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/4.jpg)
VISTAS
Capítulo 3.6 Database Management Systems,Ramakrishnan / Gehrke (Third Edition)
![Page 5: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/5.jpg)
Vistas: Una perspectiva diferente sobre una base de datos
![Page 6: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/6.jpg)
Motivación: Metacritic
![Page 7: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/7.jpg)
Motivación: Metacritic
![Page 8: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/8.jpg)
Metacritic: Evaluaciones de música
![Page 9: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/9.jpg)
Agregación de evaluaciones
¿Pero si quisiéramos hacer este tipo de consulta con mucha frecuencia? …
Actualizada.
![Page 10: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/10.jpg)
Agregación de evaluaciones
¿Algún problema aquí? …
![Page 11: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/11.jpg)
Agregación de evaluaciones dinámicas
![Page 12: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/12.jpg)
Vistas: puentes virtuales
![Page 13: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/13.jpg)
Vista: una tabla virtual
![Page 14: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/14.jpg)
Vista: facilitan consultas más simples
![Page 15: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/15.jpg)
¿Cómo funcionan las vistas?
(1) Extender la consulta de conformidad con la vista
(2) Ejecutar la consulta extendida sobre las tablas bases
(0) Crear la vista
![Page 16: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/16.jpg)
¿Cómo funcionan las vistas?
Con la vista, guardamos una sub-consulta frecuente para reutilizar en varias consultas.
(No estamos guardando/materializando datos de la tabla virtual. ¡Así no hay problema con actualizaciones en los datos subyacentes!)
![Page 17: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/17.jpg)
¡Una vista no es una tabla base/física!
… no hay índices …… no hay llaves …… no ayuda mucho con rendimiento … pero …
![Page 18: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/18.jpg)
¿Para qué sirven las vistas entonces?
• Abreviatura/abstracción
– Reducir la complejidad de consultas, evitando repeticiones de patrones comunes
• Seguridad
– Se puede dar acceso a una vista (un subconjunto de los datos) y no a todos los datos
![Page 19: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/19.jpg)
Eliminar una vista
![Page 20: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/20.jpg)
Eliminar una vista
![Page 21: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/21.jpg)
¿Actualizar una vista?
![Page 22: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/22.jpg)
¿Actualizar una vista? ¡Ambigüedad!
La idea es actualizar las tablas bases mediante la vista (no la vista misma)
¿Entonces, cuál sería el resultado de esta inserción sobre las tablas bases? …
¡No basta la información para actualizar las tablas bases!
![Page 23: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/23.jpg)
Vistas de solo lectura
Cuando la vista permita ambigüedad, la vista es solo lectura: no se puede actualizarla
![Page 24: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/24.jpg)
Vistas actualizables
![Page 25: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/25.jpg)
Vistas actualizables
![Page 26: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/26.jpg)
Vistas actualizables
Una actualización puede afectar sólo la tabla base y no la vista
![Page 27: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/27.jpg)
Vistas actualizables
Una actualización puede agregar nulos en lugares donde se permiten nulos (eg., no en columnas llaves o columnas con ‘NOT NULL’)
![Page 28: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/28.jpg)
Actualizando una vista
• Es difícil caracterizar precisamente las vistas actualizables, (incluyendo en la teoría de bases de datos) pero una vista es “solo lectura” cuando involucre, por ejemplo:– Agregación u otra forma de crear valores frescos
(como, por ejemplo, aritmético)
– Proyección que elimine una columna que no permita nulos
• Frecuentemente, los motores no soporten vistas actualizables sobre varias tablas
Pero por supuesto, no hay problema actualizar las tablas bases directamente (si uno tiene acceso) …
La vista se actualizará automáticamente
![Page 29: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/29.jpg)
¿Para qué sirven las vistas entonces?
• Abreviatura/abstracción
– Reducir la complejidad de consultas, evitando repeticiones de patrones comunes
• Seguridad
– Se puede dar acceso a una vista (un subconjunto de los datos) y no a todos los datos
¿Qué es el costo de mantener una vista?
¡Casi nada con respecto a la gestión de los datos! Pero …
![Page 30: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/30.jpg)
El costo de consultas
Son equivalentes pero la consulta extendida es mucho más difícil optimizar
Actualizada.
![Page 31: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/31.jpg)
¿… y si el rendimiento nos importara?
![Page 32: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/32.jpg)
Vista materializada: guardar tablas virtuales
![Page 33: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/33.jpg)
Vista materializada: consultar directamente
![Page 34: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/34.jpg)
Vista materializada: actualización
![Page 35: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/35.jpg)
Vista materializada: actualización
![Page 36: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/36.jpg)
Materializar vistas vs. Crear tablas
¿Cuál es la diferencia más importante entre crear una tabla y crear una vista materializada?
En la vista, se guarda la consulta para facilitar la actualización de la vista en una fase posterior
![Page 37: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/37.jpg)
Cambiar vistas?
… se puede usar ALTER posteriormenteo a veces crear índices, etc.
![Page 38: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/38.jpg)
Vistas “virtuales” son estándares
Vistas materializadas no son estándares(hay soporte diferente en Oracle y Postgres)
![Page 39: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/39.jpg)
DISPARADORES (O GATILLOS/TRIGGERS)
Capítulo 3.6 Database Management Systems,Ramakrishnan / Gehrke (Third Edition)
![Page 40: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/40.jpg)
Disparadores: Evento/Condición/Acción
![Page 41: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/41.jpg)
Disparadores: Evento/Condición/Acción
¿Qué hace el disparador?
Si intentamos reducir el pm de un álbum, se restaurará el valor previo
¿Dónde están Evento/Condición/Acción?
Actualizada.
![Page 42: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/42.jpg)
Disparadores: Evento/Condición/Acción
No cambia.
Actualizada.
![Page 43: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/43.jpg)
Disparadores: Evento/Condición/Acción
¿Cómo podríamos actualizar la tabla ÁlbumEval sobre una inserción a Evaluación?
![Page 44: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/44.jpg)
Disparadores: Evento/Condición/AcciónActualizada.
![Page 45: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/45.jpg)
Disparadores son estándares
!Pero su suporte en varios motores varia muchísimo!
Postgres implementa poco del estándar
![Page 46: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/46.jpg)
RESUMEN
![Page 47: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/47.jpg)
El mundo cambia …
… las base de datos cambian
![Page 48: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/48.jpg)
![Page 49: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/49.jpg)
• Vistas:– No hay datos físicos
• Más caro ejecutar consultas• Los resultados no pueden ser obsoletos• Más barato actualizar tablas
• Vistas materializadas:– Las actualizaciones ejecutan a veces
• Más barato ejecutar consultas• Los resultados pueden ser obsoletos• Poco portable entre motores diferentes
• Tablas físicas (sin disparadores)– Hay que actualizar por mano
• Más barato ejecutar consultas• Los resultados pueden ser obsoletos
• Tablas físicas (con disparadores)– Las actualizaciones ejecutan automáticamente
• Más barato ejecutar consultas• Los resultados deberían ser actualizado• Más caro actualizar tablas• Agregan mucha complejidad a la base de datos• Poco portable entre motores diferentes
![Page 50: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/50.jpg)
El horario:
• Tendremos un lab:
– El jueves (27 de octubre)
• Un lab: SQL IV
– El jueves (3 de noviembre)
• Un lab: Acceso Programático
![Page 51: CC3201-1 B DATOS PRIMAVERA 2016](https://reader035.fdocuments.co/reader035/viewer/2022080111/62e687474f48bd00fe3ba7c0/html5/thumbnails/51.jpg)
Preguntas?