![Page 1: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/1.jpg)
CC3201-1BASES DE DATOS
PRIMAVERA 2016
Clase 9: SQL (V) Bases de datos (inter)activas
Aidan Hogan
![Page 2: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/2.jpg)
¿Acaso hemos visto todo de SQL?
(no)
![Page 3: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/3.jpg)
Lo que exploraremos hoy día
(Bases de datos interactivas)
![Page 4: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/4.jpg)
Motivación: Metacritic
![Page 5: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/5.jpg)
Motivación: Metacritic
![Page 6: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/6.jpg)
Metacritic: Evaluaciones de música
![Page 7: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/7.jpg)
Agregación de evaluaciones
¿Pero si quisiéramos hacer este tipo de consulta con mucha frecuencia? …
![Page 8: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/8.jpg)
Agregación de evaluaciones
¿Algún problema aquí? …
![Page 9: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/9.jpg)
Agregación de evaluaciones dinámicas
![Page 10: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/10.jpg)
VISTAS
Capítulo 3.6 | Ramakrishnan / Gehrke
![Page 11: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/11.jpg)
Vistas: puentes virtuales
![Page 12: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/12.jpg)
Vista: una tabla virtual
![Page 13: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/13.jpg)
Vista: facilitan consultas más simples
![Page 14: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/14.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 15: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/15.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 16: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/16.jpg)
Eliminar una vista
![Page 17: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/17.jpg)
Eliminar una vista
![Page 18: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/18.jpg)
¿Actualizar una vista?
![Page 19: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/19.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 20: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/20.jpg)
Vistas de solo lectura
Cuando la vista permita ambigüedad, la vista sea solo lectura: no se pueda actualizarla
![Page 21: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/21.jpg)
Vistas actualizables
![Page 22: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/22.jpg)
Vistas actualizables
![Page 23: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/23.jpg)
Vistas actualizables
Una actualización puede afectar sólo la tabla base y no la vista
![Page 24: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/24.jpg)
Vistas actualizables
Una actualización puede agregar nulos en lugares donde se permiten nulos (p.ej., no en columnas llaves o columnas con ‘NOT NULL’)
![Page 25: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/25.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 26: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/26.jpg)
¡Una vista no es una tabla base/física!
![Page 27: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/27.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 28: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/28.jpg)
El costo de consultas
Son equivalentes pero la consulta extendida es mucho más difícil optimizar
¿Y si el rendimiento importa?
…
![Page 29: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/29.jpg)
Vista materializada: guardar tablas virtuales
![Page 30: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/30.jpg)
Vista materializada: consultar directamente
![Page 31: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/31.jpg)
Vista materializada: actualización
![Page 32: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/32.jpg)
Vista materializada: actualización
![Page 33: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/33.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 34: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/34.jpg)
¿Se pueden cambiar vistas?
… es limitado.
![Page 35: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/35.jpg)
Vistas “virtuales” son estándares
Vistas materializadas no son estándares(pero hay soporte en Oracle y Postgres 9.3+)
![Page 36: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/36.jpg)
DISPARADORES (O GATILLOS/TRIGGERS)
Capítulo 3.6 | Ramakrishnan / Gehrke
![Page 37: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/37.jpg)
¿Actualizar una tabla automáticamente?
¿Cómo podríamos actualizar la tabla ÁlbumEval sobre una inserción a Evaluación?
![Page 38: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/38.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?
![Page 39: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/39.jpg)
Disparadores: Evento/Condición/Acción
No cambia.
![Page 40: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/40.jpg)
Disparadores: Evento/Condición/Acción
¿Cómo podríamos actualizar la tabla ÁlbumEval sobre una inserción a Evaluación?
![Page 41: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/41.jpg)
Disparadores: Evento/Condición/Acción
¿Qué pasaría si tuviéramos BEFORE INSERT …? Nada.
![Page 42: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/42.jpg)
Disparadores son estándares
!Pero su suporte en varios motores varia muchísimo!
Por ejemplo, Postgres usa stored prodecures …
![Page 43: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/43.jpg)
Trigger
Stored Procedure
Disparadores en Postgres
![Page 44: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/44.jpg)
Vista Mat.
Trigger
Stored Procedure
Disparadores + Vistas Mat. en Postgres
![Page 45: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/45.jpg)
Vista Mat.
Trigger
Stored Procedure
Disparadores en Postgres
Trigger
Stored Procedure
![Page 46: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/46.jpg)
Vista Mat.
Trigger
Stored Procedure
Disparadores en Postgres
Trigger
Stored Procedure¿Cuál es la diferencia entre ambos?
La opción izquierda actualizará la vista entera cada vez.La opción derecha actualizará sólo el álbum que cambió.
![Page 47: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/47.jpg)
![Page 48: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/48.jpg)
Ejemplo interactivo
![Page 49: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/49.jpg)
RESUMEN
![Page 50: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/50.jpg)
El mundo cambia …
… las base de datos cambian
![Page 51: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/51.jpg)
![Page 52: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/52.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
– (pero se puede usar un disparador con un costo de actualización)
• 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 53: CC3201-1 B DATOS P 2016 Clase 9: SQL (V)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-09.pdf¿Acaso hemos visto todo de SQL? (no) ... guardamos una sub-consulta frecuente](https://reader031.vdocumento.com/reader031/viewer/2022021823/5b4a384a7f8b9a9a2c8c0d4f/html5/thumbnails/53.jpg)
Preguntas?