Está en la página 1de 10

3.

Modelado
3.01. Normalización de tablas
3.02. Tipos de tablas
3.03. Tabla de fechas o Calendario (I)
3.04. Tabla de fechas o Calendario (II)
3.05. Tabla de fechas o Calendario (III)
3.06. Role Playing Dimension
3.07. SCD (Slowly Changing Dimension)
3.08. Dimensiones degeneradas
3.09. Dimensiones basura o Junk dimensions
3.01. Normalización de tablas Power BI Cheat sheet 3. Modelado

Normalización Normalización / Desnormalización

Cliente Ciudad Provincia Fecha factura Factura Importe Normalización


Aplicación de unas técnicas llamadas Formas normales para
Cliente 1 Gandía Valencia 02/01/2020 FAC001 350,00 €
minimizar la redundancias y facilitar la actualización de datos.
Cliente 1 Gandía Valencia
Forma normal 1
Cliente 1 Gandía Valencia No puede haber campos dinamizados
Cliente 1 Gandía Valencia 01/03/2020 FAC003 682,50 € No puede haber más de un dato dentro de una celda
Cliente 2 Elche Alicante No debe haber registros duplicados en una tabla
Cliente 2 Elche Alicante Forma normal 2
Un dato atributo (los atributos son los campos que no son calves ID)
Cliente 2 Elche Alicante
debe estar representado por un solo valor ID
Cliente 3 Lorca Murcia
Forma normal 3
Cliente 4 Cartagena Murcia 01/02/2020 FAC004 55,89 €
Un campo atributo debe estar representado por solo un campo ID.

Cliente Fecha factura Factura Importe La normalización más típica es dividir una tabla en varias tablas
Cliente 1 02/01/2020 FAC001 350,00 € temáticas manteniendo un campo ID común. El motor de base de
Tabla de datos de Power BI requiere relajar la Forma normal 2, evitando
Cliente 1 01/03/2020 FAC003 682,50 € normalizaciones que impliquen sucesivas relaciones.
hechos
Cliente 4 01/02/2020 FAC004 55,89 €
Desnormalización
Cliente Ciudad Provincia Proceso inverso a la normalización para reducir Nº de relaciones.

Cliente 1 Gandía Valencia Claves subrogadas


Cliente 2 Elche Alicante Tabla de Los campos claves en un modelo de datos deben ser numéricos y
Cliente 3 Lorca Murcia dimensión enteros. Para resolver lo que vemos en la imagen de la izquierda,
debemos realizar las transformaciones necesarias para que el campo
Cliente 4 Cartagena Murcia que une a las dos tablas sea una clave o ID numérico de tipo entero.
3.02. Tipos de tablas Power BI Cheat sheet 3. Modelado

Tablas de hechos Tablas de dimensiones

Aquello que es susceptible de controlar lo es porque con el paso del tiempo puede sufrir Las tablas de dimensiones son las encargadas que tener datos más explícitos y descriptivos
variaciones. Son esas variaciones las que interesa controlar para poder modificarlas. de lo que expresan las tablas de hechos.

Las tablas de hechos son las encargadas de recoger los datos que tienen una variación Por ejemplo, en la imagen anterior, vemos una tabla de hechos que identifica el producto que
constante y sustancial a lo largo del tiempo. Por ello, siempre tienen: se vende (el qué) y el cliente al que se vende (quién) mediante sendos códigos (campos clave
ID). Esto es así porque si, tanto el producto como el cliente, se describieran totalmente en esa
• Una o más columnas con las fechas relevantes para nuestras necesidades. Es decir, las misma tabla mediante más columnas, resultaría una tabla inmensa y muy poco eficiente:
fechas que relatan cuándo ha ocurrido el hecho que se quiere estudiar. habría múltiples valores repetidos.
• Una o más columnas con valores numéricos que cuantifican los hechos que se quieren
estudiar. En otras palabras, columnas que dicen “el cuánto”. Por ello, las descripciones largas de productos y clientes deben estar a lo largo de las filas de
• Una o más columnas con datos que identifican el qué, el quién o el cómo de los hechos tablas especializadas a tal efecto: la tabla de dimensiones Clientes y la tabla de dimensiones
que se quieren estudiar. Normalmente, los valores de estas columnas tienen forma de Productos. En cada fila de una tabla de dimensiones debe haber un código ID o valor único
código abreviado, puesto que los datos más explícitos y descriptivos están en otras tablas (campo clave) que identifique ese producto, cliente, etc. Estos códigos deben ser los mismo
que se estudiarán a continuación. utilizados en la tabla de hechos.

Tabla de dimensiones
Tabla de hechos

El campo clave de las tablas de dimensiones se llaman Primary key o clave primaria y no
puede estar repetido a lo largo de las filas (los valores de esa columna deben ser únicos).
Cada campo clave de las tablas de hechos se llama Foreign key o Clave externa y puede
estar repetido (de hecho suele ser así) a lo largo de las filas.
3.03. Tabla de fechas o Calendario (I) Power BI Cheat sheet 3. Modelado

¿Qué es la Tabla de fechas o Calendario?


3 Relación entre varias tablas de hechos.
En algunos modelos de datos cuyo tipo de esquema sea Galaxy (o tipo constelación), las
La tabla Calendario (también llamada Tabla de fechas) Es una tabla que tiene una relación
Tablas de fechas o Calendario (como tablas de dimensiones que son) pueden servir para
consecutiva de todas las fechas utilizadas en el modelo de datos existente en Power BI.
crear una relación entre las tablas de hechos existentes*.

Adicionalmente a la ventaja anteriormente comentada, una tabla de fechas podría servir


¿Para qué sirve la Tabla de fechas o Calendario? para agregar sus capos a un slicer segmentador de fechas que actuaría con todas las
tablas de hechos del modelo.

1 Formatos de fecha distintos 4 Sustituir a la alternativa “Fecha y hora automáticas de Power BI”.
La Tabla de fechas o Calendario es una tabla de dimensiones. Así, es una tabla que La alternativa a una tabla Calendario es la activación de la funcionalidad Fecha y hora
contiene descripciones o atributos del campo fecha que hay en la tabla de hechos. automáticas para archivos nuevos** (clic en ficha Archivo > Opciones y configuración >
Opciones > Sección GLOBAL > Carga de datos / marcar la opción Fecha y hora
Si bien el campo fecha de una tabla de hechos indica que algo ha ocurrido en un automáticas para archivos nuevos ).
momento (fecha), una tabla de dimensiones para las fechas (Tabla de fechas o
Calendario) sirve para tener formas distintas de escribir una misma fecha (Enero, Ene, E, Esta opción comentada antes no cumple con ninguno de los puntos 1, 2 y 3 que explican
ene-2022, Enero de 2022, 2022-01, Semana 1, etc.) y después poder ser utilizada en las ventajas y la justificación de una tabla Calendario. Además, la opción Fecha y hora
slicers y otras visualizaciones. automáticas genera internamente un gran volumen de información oculto al usuario, pero
necesario para que Power BI pueda gestionar las fechas de esta forma.
2 Uso de funciones de inteligencia de tiempo
Una tabla Calendario contiene una serie completa de fechas. De esta forma, al Fecha y hora automáticas es una opción solo recomendable para modelos muy simples y
relacionarla con la tabla de hechos, nos aseguramos de que en el modelo no existen donde no se va a hacer un uso intensivo del filtrado de fechas y de las opciones de
“huecos” temporales que puedan perjudicar o distorsionar visualizaciones. inteligencia de tiempo.

Con un modelo de datos sin huecos temporales, hay posibilidad de usar las llamadas * Aunque no son recomendables dada su complejidad y dificultad de tratamiento de los conceptos sentido de
funciones de inteligencia de tiempo o time intelligence sin errores. Las funciones de filtro y cardinalidad, los esquemas Galaxy o Constelación son los que tienen varias tablas de hechos.
inteligencia de tiempo permiten realizar cálculos avanzados, personalizados a
**Activar la funcionalidad Fecha y hora automáticas genera una jerarquía de campos asociada al campo fecha
necesidades específicas y en muchos casos adaptados a sectores profesionales (por de una tabla de hechos. Esta jerarquía es: Year (Año), Quarter (Trimestre), Month (Mes) y Day (Día).
ejemplo, el financiero).
3.04. Tabla de fechas o Calendario (II) Power BI Cheat sheet 3. Modelado

Opciones de creación de una tabla Calendario? Crear una tabla Calendario con CALENDAR

1 Mediante una tabla creada en los archivos origen de datos. 1 Clic en vista Datos > ficha Inicio > grupo Cálculos > Nueva tabla .
De esta forma, se importará como cualquier otra tabla mediante Obtener datos de Power
BI (Power Query). Esta opción tiene la ventaja de que tendremos un mayor y más fácil 2 En la barra de fórmulas, escribir:
control de nuestras fechas. Las desventajas son el espacio físico en disco (archivo) que
ocuparía la tabla, junto el hecho de que Power Query debe ocupar tiempo para conectar y
cargar esta tabla.

2 Dentro del editor de Power Query


Mediante código M. Para esta opción necesitamos conocer el código M que genera la
tabla y trabajar con Power Query no suele ser muy eficiente en cuanto a velocidad.
Donde h_tablahechos[Fecha] ese la tabla y columna donde está la tabla de hechos
3 Crear una tabla con DAX protagonista de nuestro modelo.
Esta opción es la más óptima desde varios puntos de vista. Especialmente desde la
eficiencia en el consumo de recursos. Claro esta, debemos conocer algunas funciones
como son CALENDARAUTO y CALENDAR.
Crear una tabla Calendario con CALENDARAUTO
La función CALENDARAUTO genera una tabla de fechas y no requiere ningún
argumento, puesto que detecta la fecha más antigua de todo el modelo de datos y las 1 Clic en vista Datos > ficha Inicio > grupo Cálculos > Nueva tabla .
más reciente y, a partir ello, genera la sucesión de fechas.
2 En la barra de fórmulas, escribir:
La función CALENDAR es similar a la anteriormente descrita, pero necesita que
establezcamos nosotros las fechas de inicio y final mediante argumentos. Es una opción
algo más avanzada que CALENDARAUTO, pero podremos controlar más las fechas de
inicio y final, a la vez que optimizamos recursos en nuestro modelo de datos.
3.05. Tabla de fechas o Calendario (III) Power BI Cheat sheet 3. Modelado

Creación de otras columnas en tabla Calendario


4 Columna para mes en formato mmm-yy (ene-20, feb-20, mar-20, etc.):
Igual que anterior, pero escribir:
1 Columna para mes en formato número de mes (1, 2, 3, etc.):
Clic en ficha vista Datos > ficha Inicio > grupo Cálculos > Nueva columna .

En la barra de fórmulas, escribir:

2 Columna para mes en formato número de año (2021, 2022, 2023, etc.):
Igual que anterior, pero escribir:

3 Columna para mes en formato mmm (ene, feb, mar, etc.):


Igual que anterior, pero escribir:
3.06. Role Playing Dimension Power BI Cheat sheet 3. Modelado

Role Playing Dimension (dimensión que juega varios roles)

Role Playing Dimension Tabla de hechos

Una dimensión que juega varios roles o Role Playing


Dimension es una tabla que contiene algún campo
clave que va a ser relacionado con más de un campo
clave en una tabla de hechos.

¿Por qué una Role Playing Dimension?

Lo que puede llevarnos a necesitar una dimensión de


este tipo es la existencia de varios campos clave del
mismo tipo (en la tabla de hechos) que necesitan ser
relacionados todos ellos con el mismo campo clave
(en la tabla de dimensión). Tabla calendario (Role Playing Dimension)

Ejemplo

En las imágenes vemos el caso de una dimensión


fecha (tabla de la derecha) jugando varios roles
mediante su campo clave (el campo fecha). Uno de
los roles es tener una relación con el campo Fecha No es posible tener dos relaciones activas en un
envío y otro de los roles es la relación con el campo modelo de datos. Al crear las dos relaciones, una
Fecha llegada. de ellas quedará inactiva de forma forzada (la
relación queda con la línea discontinua).
3.07. Slowly Changing Dimensions Power BI Cheat sheet 3. Modelado

SCD (Slowly Changing Dimension o Dimensión lentamente cambiante)

El cliente 1 cambia a modo de pago = Confirming SCD tipo 1: sustituir valor

SCD tipo 2: agregar fila


Slowly Changing Dimension

Una SCD es una dimensión que cambia con una frecuencia mayor a la que lo hacen
las dimensiones normales. Es decir, una dimensión donde los datos de uno o varios
atributos sufren modificaciones o se generan nuevos datos.

Ejemplo SCD tipo 3: agregar columna


En la imagen de arriba vemos una tabla en su estado original en la que asumimos el
caso de un cambio en el modo de pago de un cliente (el cliente 1 cambia a modo de
pago = Confirming). ¿Qué hacer en este caso?

Opciones

Básicamente, hay tres tipos de soluciones a los cambios en las tablas de


dimensiones:
• Sustituir el valor: Se pierde información histórica. es la más sencilla.
• Se agrega una nueva fila con un nuevo ID: hay que gestionar varias versiones.
• Agregar una columna que registra el dato cambiado: solución limitada.
3.08. Dimensiones degeneradas Power BI Cheat sheet 3. Modelado

Dimensiones degeneradas

Dimensiones degeradas

Una dimensión degenerada es un campo clave que está en una tabla de hechos (clave
externa) cuya literalidad es útil para el análisis. Es decir, una clave que, en vez de ser un
número entero sin significado concreto para las personas, es un conjunto de caracteres que
puede tener un significado relacionado con el registro que representa.

Ejemplo

En la imagen de la derecha vemos una dimensión degenerada que es un código de


expedición. Está claro que un código de expedición puede ser entendible por los
responsables de negocio. Otros ejemplos de dimensiones degeneradas pueden ser los
números de factura o los DNI o Documento Nacional de Identidad de las personas.

Las dimensiones degenaradas se cobran un alto precio en cuanto a rendimiento y espacio


ocupado en el archivo. El motivo es que el motor de base de datos que hay detrás de la
interfaz de Power BI (Vertipaq) es más eficiente cuando las columnas contienen números
enteros. Por ello, las claves o campos ID deben ser, idealmente, valores enteros. Habría que
Si las dimensiones degeneradas
valorar la diferencia de rendimiento entre el uso de una dimensión degenerada y el uso de presentan valores repetidos se
una clave subrogada. puede plantear normalizarlas en
una tabla de dimansiones
3.09. Dimensiones basura o Junk Power BI Cheat sheet 3. Modelado

Dimensiones basura o Junk dimensions

Concepto
Las dimensiones basura son aquellas que cumplen las siguientes condiciones:

• Solo tienen un atributo (una columna de datos)


• La cardinalidad es muy, muy baja (tan solo unos cuantos valores: 2, 3, 4, etc.)

Producto cartesiano de todas las


opciones

Problema - solución
El problema que surge con estas dimensiones es que, en teoría, se debería crear una tabla (con su
correspondiente relación) para cada una de esas dimensiones basura.

Para reducir complejidad y relaciones en el modelo de datos, se puede crear una tabla con todas las
junk dimensiones reflejadas mediante todas las combinaciones (producto caertesiano) de todos los
valores. Ver imagen de la derecha.

También podría gustarte