Abstracción

Separación entre Significado y Implementación

Definición

Abstracción es la capacidad de un modelo de datos para ocultar la complejidad técnica y exponer al usuario únicamente conceptos claros, estables y comprensibles, independientes de cómo están implementados internamente.

Un modelo abstracto permite pensar en significados,
no en tablas, columnas o fórmulas.

En Power BI, la abstracción garantiza que el usuario interactúe con:

sin necesidad de entender la estructura física del modelo.

Naturaleza

Semántica, cognitiva y arquitectónica.

La abstracción no elimina complejidad;
la encapsula.

Emerge cuando:

Función

Reducir la fricción cognitiva entre el usuario y el dato.

En la práctica, la abstracción permite que:

Consecuencia

Un modelo sin abstracción expone su mecánica;
un modelo abstracto expone su intención.

Señales de Abstracción

Señales de Falta de Abstracción

Esto no es transparencia: es exposición innecesaria.

Ejemplo Conceptual en Power BI

Sin abstracción (❌)

El usuario crea visuales usando columnas directas:

Cada visual implementa su propia lógica.

Resultado:
👉 inconsistencia y errores.

Con abstracción (✅)

El modelo expone medidas claras:

Net Sales := SUM(FactSales[Amount]) - SUM(FactSales[Discount]) + SUM(FactSales[Tax])

El usuario solo usa Net Sales.

Resultado:
👉 coherencia, estabilidad y simplicidad.

Abstracción y Capas del Modelo

La abstracción se refuerza cuando:

Cada capa cumple su rol sin filtrarse a la siguiente.

Interacciones

Sin abstracción, las demás propiedades se vuelven frágiles.

Samples

🔹 Sample 1 — Medidas como interfaz (API semántica)

Sin abstracción (❌)
El usuario arma visuales con columnas:

Cada visual decide cómo calcular.

👉 Resultado: métricas inconsistentes.

Con abstracción (✅)
El modelo expone una sola medida conceptual:

Net Sales := SUM(FactSales[Amount]) - SUM(FactSales[Discount]) + SUM(FactSales[Tax])

📌 Resultado:
El usuario trabaja con Net Sales, no con lógica interna.


🔹 Sample 2 — Ocultar columnas, exponer significado

Sin abstracción (❌)
El modelo expone:

El usuario debe “adivinar” qué usar.

Con abstracción (✅)

📌 Resultado:
El modelo se siente simple, aunque sea complejo.


🔹 Sample 3 — Abstracción de reglas de negocio

Sin abstracción (❌)
La lógica se repite en cada visual:

IF( FactSales[Status] = "Closed", FactSales[Amount], 0 )

Con abstracción (✅)
La regla vive en una medida:

Closed Sales := CALCULATE( SUM(FactSales[Amount]), FactSales[Status] = "Closed" )

📌 Resultado:
La regla es única, estable y reutilizable.


🔹 Sample 4 — Abstracción frente al cambio estructural

Hoy:

Mañana:

Sin abstracción (❌)
Todos los reportes se rompen.

Con abstracción (✅)
Solo se ajusta la medida:

Net Sales := SUM(FactInvoice[NetAmount])

📌 Resultado:
El usuario no percibe el cambio.


🔹 Sample 5 — Abstracción del contexto

Sin abstracción (❌)
El usuario aplica filtros manuales en cada visual.

Con abstracción (✅)
El contexto vive en la medida:

Active Customer Sales := CALCULATE( [Net Sales], DimCustomer[IsActive] = TRUE() )

📌 Resultado:
El significado está encapsulado, no distribuido.


🔹 Sample 6 — Antipatrón vs Patrón (Abstracción)

❌ Antipatrón — Modelo transparente en exceso

✅ Patrón — Modelo abstracto

📌 Regla práctica:
Si el usuario necesita saber cómo se calcula algo para usarlo, falta abstracción.

Síntesis

El usuario no debería pensar cómo se calcula algo.
Debería pensar qué significa.