![Page 1: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/1.jpg)
CC3201-1BASES DE DATOS
OTOÑO 2018
Clase 10: SQL: Vistas y Disparadores
Aidan Hogan
![Page 2: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/2.jpg)
¿Acaso hemos visto todo de SQL?
(no)
![Page 3: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/3.jpg)
Lo que exploraremos hoy día
(vistas y disparadores)
![Page 4: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/4.jpg)
Motivación: Metacritic
![Page 5: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/5.jpg)
Motivación: Metacritic
![Page 6: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/6.jpg)
Metacritic: Evaluaciones de música
![Page 7: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/7.jpg)
Agregación de evaluaciones
¿Pero si quisiéramos hacer este tipo de consulta con mucha frecuencia? …
![Page 8: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/8.jpg)
Agregación de evaluaciones
¿Algún problema aquí? …
![Page 9: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/9.jpg)
Agregación de evaluaciones dinámicas
![Page 10: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/10.jpg)
VISTAS
Capítulo 3.6 | Ramakrishnan / Gehrke
![Page 11: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/11.jpg)
Vistas: tablas virtuales
![Page 12: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/12.jpg)
Vista: una tabla virtual
![Page 13: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/13.jpg)
Vista: facilitan consultas más simples
![Page 14: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/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 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/15.jpg)
¿Cómo funcionan las vistas?
Con la vista, guardamos una sub-consulta frecuente para reutilizarla en varias consultas.
(No estamos guardando/materializando los datos de la tabla virtual. ¡Así no hay problema con actualizaciones en los datos subyacentes!)
![Page 16: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/16.jpg)
Eliminar una vista
![Page 17: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/17.jpg)
Eliminar una vista
![Page 18: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/18.jpg)
VISTAS ACTUALIZABLES
![Page 19: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/19.jpg)
¿Actualizar una vista?
¿Qué pasa aquí entonces? …
![Page 20: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/20.jpg)
¿Actualizar una vista? ¡Hay 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 21: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/21.jpg)
Vistas de solo lectura
Cuando la vista permite ambigüedad, la vista es solo lectura: no se puede actualizarla.
![Page 22: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/22.jpg)
Vistas actualizables
![Page 23: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/23.jpg)
Vistas actualizables
![Page 24: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/24.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 involucra, por ejemplo:
– Agregación (como, por ejemplo, conteo)
– Proyección que elimine una columna que no permita nulos
• A menudo, los motores no implementan 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 25: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/25.jpg)
Vistas actualizables: Valores Ausentes
¿Qué pasa aquí entonces? …
![Page 26: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/26.jpg)
Vistas actualizables: Valores Ausentes
Una actualización puede agregar nulos en lugares donde se permiten nulos
¿Qué pasa aquí entonces? …
![Page 27: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/27.jpg)
Vistas actualizables: Sin
¿Qué pasa aquí entonces? …
![Page 28: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/28.jpg)
Vistas actualizables: Sin
¿Qué pasa aquí entonces? …
[Por defecto]
Una actualización puede afectar a la(s) tabla(s) base(s) sin satisfacer la vista
![Page 29: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/29.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
![Page 30: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/30.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
:
Impide actualizaciones que no satisfagan la vista misma
![Page 31: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/31.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
![Page 32: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/32.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
:
Impide actualizaciones que no satisfagan la vista misma
![Page 33: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/33.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
![Page 34: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/34.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
:
La inserción funciona: solo verifica las condiciones de la vista local
![Page 35: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/35.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
![Page 36: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/36.jpg)
Vistas actualizables:
¿Qué pasa aquí entonces? …
:
Aplica incluso cuando se actualice una vista dependiente
![Page 37: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/37.jpg)
Vistas actualizables:
¿Qué pasa AQUÍ entonces? …
![Page 38: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/38.jpg)
Vistas actualizables:
¿Qué pasa AQUÍ entonces? …
:
Impide actualizaciones que no satisfagan la vista o una vista referenciada (recursivamente)
![Page 39: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/39.jpg)
Vistas: ¡No son tablas físicas!
![Page 40: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/40.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
¿Cuáles son los costos de mantener una vista?
¡Casi nada con respecto a la gestión de los datos! Pero …
![Page 41: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/41.jpg)
El costo de consulta
Son equivalentes pero la consulta extendida es mucho más difícil de optimizar
¿Y si el rendimiento de las consultas importa?
…
![Page 42: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/42.jpg)
VISTAS MATERIALIZADAS
![Page 43: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/43.jpg)
Vista materializada: guardar tablas virtuales
![Page 44: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/44.jpg)
Vista materializada: consultar directamente
![Page 45: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/45.jpg)
Vista materializada: actualización
![Page 46: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/46.jpg)
Vista materializada: actualización
![Page 47: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/47.jpg)
Materializar vistas vs. Crear tablas
¿Cuál es la diferencia más importante entre crear una tabla y crear una vista materializada?
En una vista materializada, se guarda la consulta para facilitar la actualización de la vista en una fase posterior
![Page 48: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/48.jpg)
¿Se pueden cambiar vistas?
… es limitado.
![Page 49: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/49.jpg)
Vistas “virtuales” son estándares
Vistas materializadas no son estándares(pero hay soporte en Oracle y Postgres 9.3+)
![Page 50: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/50.jpg)
DISPARADORES (O GATILLOS/TRIGGERS)
Capítulo 3.6 | Ramakrishnan / Gehrke
![Page 51: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/51.jpg)
¿Actualizar una tabla automáticamente?
¿Cómo podríamos actualizar la tabla ÁlbumEval dada una
inserción a Evaluación?
![Page 52: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/52.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 53: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/53.jpg)
Disparadores: Evento/Condición/Acción
No cambia.
![Page 54: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/54.jpg)
Disparadores: Evento/Condición/Acción
¿Cómo podríamos actualizar la tabla ÁlbumEval dada una
inserción a Evaluación?
![Page 55: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/55.jpg)
Disparadores: Evento/Condición/Acción
¿Qué pasaría si tuviéramos BEFORE INSERT …? Actualizaciones atrasadas
![Page 56: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/56.jpg)
Disparadores son estándares
!Pero su implementación en varios motores varia muchísimo!
Por ejemplo, Postgres usa "stored procedures" …
![Page 57: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/57.jpg)
Trigger
Stored Procedure
Disparadores en Postgres
![Page 58: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/58.jpg)
Vista Mat.
Trigger
Stored Procedure
Disparadores + Vistas Mat. en Postgres
![Page 59: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/59.jpg)
Vista Mat.
Trigger
Stored Procedure
Disparadores en Postgres
Trigger
Stored Procedure
![Page 60: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/60.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á solo el álbum que cambió.
![Page 61: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/61.jpg)
![Page 62: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/62.jpg)
RESUMEN
![Page 63: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/63.jpg)
El mundo cambia …
… las bases de datos cambian
![Page 64: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/64.jpg)
![Page 65: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/65.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
• Tablas físicas (sin disparadores)– Hay que actualizarlas a 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 actualizados
• Más caro actualizar tablas
• Agregan mucha complejidad
• Poco portable
![Page 66: CC3201 Bases de Datos - Aidan Hoganaidanhogan.com/.../cc3201-1-2018/lectures/BdD2018-10.pdf · 2018. 7. 9. · CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 10: SQL: Vistas y Disparadores](https://reader034.vdocumento.com/reader034/viewer/2022052010/602067f4042850498844d783/html5/thumbnails/66.jpg)
Preguntas?