¡El poder de los datos!

1

¡El poder de los datos!

Fundamentos de Bases de Datos

2

Sistema de Gestión de Bases de Datos

3

¿Qué es una base de datos?

4

¿Qué es SQL?

5

Los comandos SQL más importantes

6

Operaciones básicas en SQL

7

Modelo Entidad Relación (ER)

8

Normalización

Introducción a las bases de datos relacionales

9

Tipos de datos en SQL

10

¿Cómo crear una base de datos en SQL?

11

Buenas practicas de bases de datos con SQL

12

Práctica: Tu primera consulta en bases de datos

Manipulación de Datos

13

Insertando Datos con SQL (INSERT)

14

Práctica: Creación de Tablas en SQL (CREATE TABLE)

15

Consultas y Selecciones en SQL (SELECT)

16

Práctica: SELECT en SQL

17

Eliminación de Datos con SQL (DELETE)

18

Actualización de Datos con SQL (UPDATE)

19

Práctica: CRUD con SQL

Manipulación Avanzada de Datos

20

🛠️ Guía de instalación de MySQL y MySQL Workbench

21

¿Qué es la cláusula WHERE de SQL?

22

Filtrar y Ordenar Datos en SQL (LIKE)

23

Cláusulas de Comparación Textual en SQL (AND, NULL, IN, NOT)

24

Funciones de Aritmética Básica en SQL (COUNT)

25

Funciones de Aritmética Básica en SQL (MIN, MAX)

Agrupación de Datos

26

Agrupación de Datos en SQL: GROUP BY, HAVING y CASE para Análisis Avanzado

27

Tipos de JOIN en SQL

28

¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

Transformación de Datos

29

Vistas Materializadas en SQL: Como optimizar tus consultas y reportes.

30

Vistas Materializadas y Temporales en SQL

31

Expresiones de Tablas Comunes (CTE) en SQL

Procedimientos Almacenados

32

Procedimientos Almacenados en SQL

33

Procedimientos Almacenados en SQL: Gestión de Variables y Manejo de Excepciones

Administración de Base de Datos

34

Respaldos y Restauración de Bases de Datos

Análisis de Datos Avanzados

35

Potenciando los Datos en la Nube: Data Science, Big Data, ML e AI

36

SQL para Análisis de Datos: Primeros pasos con Power BI

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Vistas Materializadas y Temporales en SQL

30/36
Recursos

¿Cómo optimizar los procesos de ETL mediante vistas temporales y materializadas?

Los procesos de ETL (Extracción, Transformación y Carga) son fundamentales en el ámbito del desarrollo de ingeniería de datos, ya que usualmente requieren un tiempo considerable para su ejecución. Un ingeniero de datos puede enfrentar la necesidad de consultar repetidamente la misma información, y en estas circunstancias, las vistas temporales y materializadas son herramientas útiles para optimizar flujos de trabajo y mejorar el rendimiento de las consultas. Hoy, profundizaremos en estos conceptos y te brindaremos el conocimiento necesario para implementarlos efectivamente en tus proyectos.

¿Qué son las vistas temporales y cómo se utilizan?

Las vistas temporales son una solución sencilla y eficaz para escenarios donde se necesita consultar la misma información repetidamente durante una sesión de trabajo. A diferencia de las vistas permanentes, que almacenan los datos de manera indefinida, las vistas temporales existen solo mientras la sesión está activa. Al cerrar la sesión, estas vistas se eliminan automáticamente del sistema.

Para crear una vista temporal, se utiliza el siguiente comando SQL:

CREATE TEMPORARY VIEW nombre_vista AS
SELECT ...

Donde:

  • CREATE TEMPORARY VIEW: indica que la vista que se creará será temporal.
  • nombre_vista: es el nombre que deseas asignar a tu vista.
  • SELECT ...: es la consulta que define qué datos se almacenarán en la vista.

Este enfoque es ideal cuando no necesitas conservar los datos permanentemente, aunque requieras consultarlos reiteradas veces en el mismo contexto operativo. Se recomienda para operaciones o análisis que son significativos solo por un tiempo limitado.

¿Por qué considerar las vistas materializadas?

En situaciones donde las consultas son extensas, complejas o el soporte de estas es demandante debido a la dificultad de sus operaciones, las vistas materializadas emergen como una herramienta potente. Estas vistas almacenan físicamente los resultados de la consulta en una base de datos, permitiendo un acceso más rápido a los datos procesados, reduciendo así el tiempo de procesamiento en futuras consultas.

Para crear una vista materializada, puedes utilizar el siguiente comando:

CREATE MATERIALIZED VIEW nombre_mat_vista AS
SELECT ...

Este comando es similar al de las vistas permanentes, pero la diferencia clave yace en el almacenamiento físico de los resultados, lo que no solo optimiza el rendimiento, sino también facilita la eficacia y capacidad de soporte técnico para operaciones futuras.

Ventajas de las vistas materializadas en el soporte técnico

  • Reducción en el tiempo de ejecución: Al almacenar los resultados ya calculados de consultas complejas, las vistas materializadas liberan recursos al evitar el recalculo en cada ejecución.
  • Mejora en la eficiencia del soporte: Proporcionan una capa preprocesada que simplifica la solución de problemas y la implementación de cambios requeridos.
  • Optimización de procesos: Especialmente útil en escenarios donde las transformaciones matemáticas o reglas de negocios exigen procesamiento inmediato y repetido.

Consejos finales para implementar y experimentar con vistas

Al realizar experimentos con vistas temporales y materializadas, te sugerimos seguir estos pasos:

  • Prueba diferentes comandos de creación de vistas en el motor de base de datos que estés utilizando.
  • Detecta y resuelve cualquier incompatibilidad de palabras reservadas específicas de tu sistema. Cada motor SQL (como PostgreSQL, MySQL, etc.) puede tener variaciones en el uso de palabras clave.
  • Comparte hallazgos y desafíos con tus colegas para enriquecerte mutuamente con diferentes experiencias y conocimientos.

¡Sigue explorando y mejorando tus habilidades en ingeniería de datos! Implementar las herramientas correctas no solo aumentará tu eficiencia sino que también te posicionará como un profesional experto en la gestión avanzada de datos.

Aportes 16

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Uy, subimos de nivel ![](https://static.platzi.com/media/user_upload/image-a97388d7-6c6d-4989-ac75-8d0fda7ae1f6.jpg)
MySQL no tiene el concepto de "vistas temporales" como tal, pero se pueden simular utilizando tablas temporales. Una tabla temporal es una tabla que existe solo durante la sesión actual o hasta que se elimina explícitamente. MySQL no tiene soporte nativo para vistas materializadas, que son vistas que almacenan los datos físicamente y se actualizan periódicamente. Sin embargo, se puede lograr un comportamiento similar utilizando una combinación de tablas, triggers (disparadores) y/o tareas programadas (eventos).
En MySQL, **no existe** `CREATE TEMPORARY VIEW`. Solo puedes usar `CREATE VIEW` o `CREATE TEMPORARY TABLE`. ### Soluciones: #### 1️⃣ Si quieres una **vista normal** (no temporal): `CREATE VIEW my_view AS` `SELECT` PRODUCT\_ID, PRODUCTNAME `FROM` PRODUCTS; * Se guarda en la base de datos hasta que la elimines con `DROP VIEW my_view;`. #### 2️⃣ Si necesitas algo **temporal**, usa una tabla temporal: `CREATE TEMPORARY TABLE temp_products AS` `SELECT` PRODUCT\_ID, PRODUCTNAME `FROM` PRODUCTS; * Esta tabla existe **solo durante la sesión actual** y se elimina automáticamente cuando cierras la conexión. 🔹 **Conclusión**: MySQL no soporta `CREATE TEMPORARY VIEW`, usa una vista normal (`CREATE VIEW`) o una tabla temporal (`CREATE TEMPORARY TABLE`). 🚀 4o
Las vistas, vistas materializadas y vistas temporales son conceptos importantes en SQL: 1. **Vista**: Es una consulta almacenada que se puede utilizar como una tabla. No almacena datos, solo la definición de la consulta. Se actualiza cada vez que se consulta. 2. **Vista Materializada**: Almacena físicamente los resultados de una consulta. Mejora el rendimiento al evitar recalcular datos complejos en cada acceso, pero requiere actualización manual. 3. **Vista Temporal**: Similar a una vista, pero solo existe durante la sesión actual. Se elimina automáticamente al finalizarla, lo que la hace útil para operaciones temporales. Cada tipo tiene su uso específico dependiendo de las necesidades de rendimiento y persistencia de los datos.
Comparto mi aporte en MySQL, solo es permitido la tabla temporal, en lugar de vista temporal ![](https://static.platzi.com/media/user_upload/image-13d33793-2374-4cb8-a697-4cb259f326ba.jpg)
Tablas : son como estantes con productos fisicos, vistas: es como tener descrito en algun lugar de una forma especifica lo que tengo guardado en los estantes. con esto claro los tipos de vista en orden de su permanencia o durabilidad normal view: las creamos la clase pasada es como describir lo que esta en los estantes de manera oral, duro mientras se decia temporal view: es una descripcion escrita de lo que esta en los estantes, cerrar sesion la destruye materialized view : es hacer una descripcion fisica de los estantes (como un modelo a escala) se actualiza si intencionalmente tu lo actualizas si no no .
CREATE TEMPORARY VIEW vista\_temporal AS SELECT nombre, edad FROM empleados WHERE edad > 30;
Considero importante que se mencione que al ejecutar la sentencia de creación de tabla temporal, no aparecerá en la vista de los esquemas SCHEMAS, pero en el Action Output sí se confirmará su creación.
![](https://static.platzi.com/media/user_upload/upload-7d328409-8d39-42b6-a4f1-25449434d5e2.png)
Para crear un índice en la columna "apellido" de la tabla "empleados", puedes utilizar la siguiente instrucción SQL: ```sql CREATE INDEX idx_apellido ON empleados(apellido); ``` Este comando crea un índice llamado "idx_apellido" que optimiza las consultas que involucran la columna "apellido".
En mi caso el código CREATE TEMPORARY VIEW no fue posible, en cambio SELECT ID\_PRODUCTOS, NOMBRE, PRECIOINTO #TempProductos  *-- Se crea una tabla temporal*FROM PRODUCTOS; SELECT \* FROM #TempProductos; fue el permitido
CREATE MATERIALIZED VIEW vista\_ventas AS SELECT producto, SUM(cantidad) AS total\_ventas FROM ventas GROUP BY producto;
me toco una tabla temporal ![](https://static.platzi.com/media/user_upload/image-459c727d-9a23-47aa-ab52-72ab30fdd9e2.jpg)
Tengo entendido que en **MySQL** no se pueden crear vistas temporales, sino tablas temporales. Cuando intento ejecutar `CREATE TEMPORARY VIEW` me da un error de sintaxis, pero `CREATE TEMPORARY TABLE `funciona correctamente.
Cuando dices resultado; quieres decir que queda la foto del resultado almacenado y que aunque se modifique los datos del query esta no cambiara. Hay que tener en cuenta entonces que estas vistas materializadas no queden perpetua y habria que acompañarla con alguna observación para ponerle fecha limite para eliminarlas.
<u>En MySQL no nay una vista MATERIALIZED, por lo que resta crear una tabla con la vista y hacer un refresh mediante un comando todo el tiempo. Luego, asumo que se debe borrar la tabla si ya no la necesitas como vista. </u>