CC Bases de Datos Otoño Clase 10: SQL: Vistas y Disparadores

Slides:



Advertisements
Presentaciones similares
Subconsultas Avanzadas
Advertisements

VISTAS.  Una Vista es una tabla virtual.  Provee otra manera de buscar en los datos existentes  Se definen para facilitar y restringir el acceso a.
ORACLE SQL - DCL.
Lenguaje Estructurado de Consultas
Normalización Consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad- relación al modelo relacional.
Escuela superior politécnica de Chimborazo facultad ingeniería en marketing carrera ingeniería comercial INTEGRANTES: JANneth merino PABLO SANCHEZ semestre:
COMANDOS BÁSICOS MYSQL BASES DE DATOS 2 UNIVERSIDAD DE LA AMAZONIA.
TUTORIAL: TRANSICIONES DE DIAPOSITIVAS POR: JULIANA GUERRIDO.
Gestor de paquetes Instalar y eliminar software (GUI y consola)
CC Bases de Datos Otoño Clase 8: SQL (IV) Acceso programático
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 10: SQL (V) El Hacker Contraataca Acceso programático Aidan Hogan
CC Bases de Datos Otoño 2017 Clase 3: ER II y Álgebra Relacional
Paul Leger Casos de Usos Paul Leger
SQL: Structured Query Language
PL/SQL Francisco Moreno Universidad Nacional.
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
Conceptos a Base de Datos
Convenciones de nomenclatura y diseño
Conceptos a Base de Datos
Lineamientos informales para un buen diseño
El punte entre tu y tu base de datos
CC Bases de Datos Primavera Clase 12: Implementación de ACID
SEGURIDAD SQL Usuarios, privilegios y perfiles.
¿Qué es una consulta? En bases de datos, una consulta es el método para acceder a los datos en las bases de datos. Con las consultas se puede modificar,
Tipos de datos en MYSQL YEAR: Año. “YYYY” o “YY”
SQL Prof. Martín Contreras.
Lineamientos para un buen diseño de base de datos
Arquitectura de una Base de Datos
SQL: Structured Query Language
Stored Procedures Firebird.
Paul Leger Algebra Relacional 2 Paul Leger
Técnicas y Herramientas de Computación
BASES DE DATOS.
SQL 2: Structured Query Language
SQL: structured Query Language
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
Lenguaje Estructurado de Consultas
Restricciones de integridad en el modelo relacional
5. SQL Procedural.
SQL Lenguaje de Consulta Estructurado
Crear y editar páginas ¿Para qué quieres la wiki?
Bases De Datos : Consultas
Medical Change.
CONSULTA DE BASES DE DATOS
Examen de informática. (PowerPoint)..
Base de Datos - II . Unidad 1 -SQL.
Structure Query Languaje
Customización en ADempiere
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
BD Activas: Motivación
Cómo personalizar Microsoft SharePoint Sitio web en línea
Nuevas Características de SQL Server 2016
CC Bases de Datos Otoño Clase 8: SQL: Acceso Programático,
Modificación de datos. Introducción Uso de transacciones Inserción de datos Eliminación de datos Actualización de datos Consideraciones acerca del rendimiento.
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
POSTGRE SQL CONCEPTO El uso de caracteres en mayúscula en el nombre PostgreSQL puede confundir a algunas personas a primera vista. Las distintas pronunciaciones.
BASES DE DATOS II.
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
Aidan Hogan CC Bases de Datos Otoño 2019 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan.
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
CC Bases de Datos Otoño Clase 9: SQL: Acceso Programático,
CC Bases de Datos Otoño 2019 Clase 11: Transacciones y ACID
CC Bases de Datos Otoño 2019 Clase 4: El Álgebra Relacional
Funciones principales de Excel Online
ALGEBRA RELACIONAL UNIDAD 3 ALGEBRA RELACIONAL. INTRODUCCIÓN Se forma a partir de la matemática formal Creada por Edgar Frank Codd en 1972 Concede comportamineto.
Fundamentos de las Base de Datos. Contenido Que es una Base de Datos. La diferencia entre datos e informacion. Clasificacion de las base de datos. Importancia.
Optimización de consultas en SQL Server Crux Consultores, 2017.
SISTEMAS GESTORES DE REFERENCIAS BIBLIOGRÁFICAS Son programas para computadoras que permiten crear, mantener, organizar y dar forma a referencias bibliográficas.
El SQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de datos relacionales. La sigla que se conoce como SQL corresponde.
Lenguaje de definición de datos. Un lenguaje de base de datos o lenguaje de definición de datos es un lenguaje proporcionado por el sistema de gestión.
Transcripción de la presentación:

Aidan Hogan aidhog@gmail.com CC3201-1 Bases de Datos Otoño 2019 Clase 10: SQL: Vistas y Disparadores Aidan Hogan aidhog@gmail.com

¿Acaso hemos visto todo de SQL? (no)

Lo que exploraremos hoy día (vistas y disparadores)

Motivación: Metacritic

Motivación: Metacritic

Metacritic: Evaluaciones de música

Agregación de evaluaciones ¿Pero si quisiéramos hacer este tipo de consulta con mucha frecuencia? …

Agregación de evaluaciones ¿Algún problema aquí? …

Agregación de evaluaciones dinámicas

Vistas Capítulo 3.6 | Ramakrishnan / Gehrke

Vistas: tablas virtuales

Vista: una tabla virtual

Vista: facilita consultas más simples

¿Cómo funcionan las vistas? (0) Crear la vista (2) Ejecutar la consulta extendida sobre las tablas bases (1) Extender la consulta de conformidad con la vista

¿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!)

Eliminar una vista

Eliminar una vista

Vistas Actualizables

¿Qué pasa aquí entonces? … ¿Actualizar una vista? ¿Qué pasa aquí entonces? …

¿Actualizar una vista? ¡Hay ambigüedad! La idea es actualizar las tablas base mediante la vista (no la vista misma). ¿Entonces, cuál sería el resultado de esta inserción sobre las tablas base? … ¡No basta la información para actualizar las tablas base!

Vistas de solo lectura Cuando la vista permite ambigüedad, la vista es solo lectura: no se puede actualizarla.

Vistas actualizables

Vistas actualizables

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 con actualizar las tablas base directamente (si uno tiene acceso) La vista se actualizará automáticamente

Vistas actualizables: Valores Ausentes ¿Qué pasa aquí entonces? …

Vistas actualizables: Valores Ausentes ¿Qué pasa aquí entonces? … Una actualización puede agregar nulos en lugares donde se permiten nulos

Vistas actualizables: Sin CHECK ¿Qué pasa aquí entonces? …

Vistas actualizables: Sin CHECK ¿Qué pasa aquí entonces? … [Por defecto] Una actualización puede afectar a la(s) tabla(s) base(s) sin satisfacer la vista

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? …

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? … WITH LOCAL CHECK OPTION: Impide actualizaciones que no satisfagan la vista misma

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? …

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? … WITH LOCAL CHECK OPTION: Impide actualizaciones que no satisfagan la vista misma

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? …

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? … WITH LOCAL CHECK OPTION: La inserción funciona: solo verifica las condiciones de la vista local

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? …

Vistas actualizables: LOCAL CHECK ¿Qué pasa aquí entonces? … WITH LOCAL CHECK OPTION: Aplica incluso cuando se actualice una vista dependiente

Vistas actualizables: CASCADED CHECK ¿Qué pasa AQUÍ entonces? …

Vistas actualizables: CASCADED CHECK ¿Qué pasa AQUÍ entonces? … WITH CASCADED CHECK OPTION: Impide actualizaciones que no satisfagan la vista o una vista referenciada (recursivamente)

Vistas: ¡No son tablas físicas!

¿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 …

¿Y si el rendimiento de las consultas importa? 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? …

Vistas Materializadas

Vista materializada: guardar tablas virtuales

Vista materializada: consultar directamente

Vista materializada: actualización

Vista materializada: actualización

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

¿Se pueden cambiar las vistas? … sí, pero de forma limitada.

Las vistas “virtuales” son estándar Las vistas materializadas no son estándar (pero hay soporte en Oracle y Postgres 9.3+)

Disparadores (o Gatillos/Triggers) Capítulo 3.6 | Ramakrishnan / Gehrke

¿Actualizar una tabla automáticamente? ¿Cómo podríamos actualizar la tabla ÁlbumEval dada una inserción a Evaluación?

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?

Disparadores: Evento/Condición/Acción No cambia.

Disparadores: Evento/Condición/Acción Orden AFTER: Aplicar acción después del evento BEFORE: Aplicar acción antes del evento INSTEAD OF: Aplicar acción en vez del evento Eventos: INSERT: Insertar una tupla UPDATE: Actualizar un valor de una tupla DELETE: Borrar una tupla Por ejemplo: BEFORE INSERT OR UPDATE … Antes de una inserción o actualización, hace algo …

Disparadores: Evento/Condición/Acción ¿Cómo podríamos actualizar la tabla ÁlbumEval dada una inserción a Evaluación?

Disparadores: Evento/Condición/Acción ¿Qué pasaría si tuviéramos BEFORE INSERT …? Actualizaciones atrasadas

Los disparadores son estándar ¡Pero su implementación en varios motores varía muchísimo! Por ejemplo, Postgres usa "stored procedures" …

Disparadores en Postgres Stored Procedure Trigger

Disparadores + Vistas Mat. en Postgres Vista Mat. Stored Procedure Trigger

Disparadores en Postgres Vista Mat. Stored Procedure Stored Procedure Trigger Trigger

Disparadores en Postgres Stored Procedure Vista Mat. Stored Procedure ¿Cuál es la diferencia entre ambos? Trigger La opción izquierda actualizará la vista entera cada vez. La opción derecha actualizará solo el álbum que cambió. Trigger

Resumen

El mundo cambia … … las bases de datos cambian

Tablas físicas (sin disparadores) Vistas: No hay datos físicos Más caro ejecutar consultas Los resultados no pueden ser obsoletos Más barato actualizar tablas Tablas físicas (sin disparadores) Hay que actualizarlas a mano Más barato ejecutar consultas Los resultados pueden ser obsoletos Vistas materializadas: Las actualizaciones se 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 (con disparadores) Las actualizaciones se ejecutan automáticamente Más barato ejecutar consultas Los resultados deberían ser actualizados Más caro actualizar tablas Agregan mucha complejidad Poco portable

Preguntas?