Desnormalización de datos

Transformar y analizar datos con Microsoft Fabric

Luis Silva

Solution Architect - Data & AI

¿Qué es la normalización?

  • Organiza los datos para reducir la redundancia y aumentar la integridad
  • Basada en principios de 1970 del científico informático Tedd Codd, creador del modelo relacional
  • Tercera forma normal (3FN): los atributos no clave dependen solo de la clave primaria
Transformar y analizar datos con Microsoft Fabric

¿Qué es la normalización?

  • Se logra usando claves y nuevas tablas para sustituir atributos que generarían redundancia.

 

Diagrama que ilustra dividir una tabla en tres para reducir la redundancia

Transformar y analizar datos con Microsoft Fabric

Ejemplo de normalización

Tabla de ejemplo con títulos de videojuegos y sus editoras y géneros. Fila de ejemplo: Título Gran Turismo, Editora Sony, Género Carreras

  • Muchas entradas de texto repetidas en los valores de publisher y genre.
Transformar y analizar datos con Microsoft Fabric

Ejemplo de normalización

Tabla de ejemplo con títulos de videojuegos y sus editoras y géneros. Las descripciones de editoras y géneros se han movido a tablas separadas y las entradas de texto en la tabla de juegos se han sustituido por ID numéricos que referencian las tablas maestras de editoras y géneros

  • Las entradas de texto de publisher y genre ahora aparecen solo una vez.
  • Las claves numéricas que sustituyen a publisher y genre en la tabla Games ocupan menos espacio
Transformar y analizar datos con Microsoft Fabric

Desnormalización

  • La desnormalización usa redundancia para aplanar el modelo de datos; es lo opuesto a la normalización
  • Conduce a menos tablas a costa de mayor redundancia

Diagrama que ilustra unir varias tablas en una

Transformar y analizar datos con Microsoft Fabric

¿Cuándo usar la normalización?

  • Sistemas transaccionales OLTP

    • Optimizar escrituras de datos (inserciones, actualizaciones y borrados individuales)
    • Garantizar la integridad de los datos
  • Tablas de hechos

    • Millones de filas
    • Reducir espacio de almacenamiento
    • Hacer el modelo más fácil de entender
    • Base del esquema en estrella

 

Diagrama de un esquema en estrella, destacando la tabla de hechos

Transformar y analizar datos con Microsoft Fabric

¿Cuándo usar la desnormalización?

  • Tablas de dimensiones
    • Generalmente mucho más pequeñas que las de hechos
    • Redundancia = Menos joins = Consultas más rápidas
    • El rendimiento de consulta compensa el coste de almacenar datos redundantes
    • El esquema en estrella es más simple que el en copo de nieve

 

Diagrama de un esquema en estrella, destacando las tablas de dimensiones

Transformar y analizar datos con Microsoft Fabric

Implementación de la desnormalización

 

 

Iconos que representan tres herramientas: SQL, Spark y Dataflows

Transformar y analizar datos con Microsoft Fabric

Implementar desnormalización con SQL

  • Sentencia SELECT + JOIN
-- [dim_videogames]: Videogames table
-- [dim_genres]: Genres table
-- [dim_publishers]: Publishers table

SELECT game_id, title, gen.genre, pub.publisher
FROM dim_videogames_norm vidg
JOIN dim_genres gen
  ON vidg.genre_id = gen.genre_id
JOIN dim_publishers pub
  ON vidg.publisher_id = pub.publisher_id
Transformar y analizar datos con Microsoft Fabric

Implementar desnormalización con Spark

  • DataFrame join( ) y select( )
# [videogamesDF]: Videogames DataFrame
# [genresDF]: Genres DataFrame
# [publishersDF]: Publishers DataFrame

videogames1DF = videogamesDF.join(genresDF, ["genre_id"])
videogamesdenormDF = videogames1DF.join(publishersDF, ["publisher_id"])
videogamesdenormDF.select("game_id", "title", "genre_id", "publisher_id").show()
Transformar y analizar datos con Microsoft Fabric

Implementar desnormalización con Dataflows

  • Usa consultas para cargar datos
  • Usa las transformaciones Merge queries o Merge queries as new para unir las consultas

Captura de un Dataflow que usa Merge queries as new para unir las consultas videogames, genres y publishers

Transformar y analizar datos con Microsoft Fabric

¡Vamos a practicar!

Transformar y analizar datos con Microsoft Fabric

Preparing Video For Download...