Volver a datos
Apendice

DM-SAR-DATA-001

Apendice para investigadores

Equipo de Datos México

Febrero 2026

Sello Datos México DM-SAR-DATA-001
Seccion 1

Introduccion

El dataset DM-SAR-DATA-001 se distribuye como un archivo CSV plano (flat file) de 2,932 registros y 18 columnas. Esta estructura, conocida en teoria de bases de datos como relacion universal, es conveniente para la distribucion y portabilidad de datos, pero presenta redundancias y dependencias que el investigador debe comprender antes de utilizarlo en un sistema relacional o en analisis que requieran integridad referencial.

Este apendice presenta un analisis formal de normalizacion del dataset hasta la Tercera Forma Normal (3NF), siguiendo la teoria relacional de Codd (1970) y sus extensiones por Boyce y Codd (1974). El objetivo es que el investigador pueda:

  • Identificar las dependencias funcionales presentes en los datos.
  • Comprender las redundancias inherentes a la estructura plana.
  • Disenar un esquema relacional normalizado si requiere almacenar los datos en una base de datos.
  • Evitar anomalias de insercion, actualizacion y eliminacion al manipular los datos.
Seccion 2

La relacion universal

El dataset se distribuye como una unica relacion R con el siguiente esquema:

R(fecha, afore, comision_sobre_saldo_pct, total_cuentas, trabajadores_registrados, trabajadores_asignados, trabajadores_imss, trabajadores_issste, rcv_imss_mdp, rcv_issste_mdp, ahorro_voluntario_mdp, recursos_administrados_mdp, recursos_registrados_mdp, vivienda_mdp, entradas_mdp, salidas_mdp, traspasos_cedidos, traspasos_recibidos)

La clave candidata de esta relacion es el par compuesto:

K = {fecha, afore}

Es decir, la combinacion de mes y administradora identifica de forma unica cada registro. No existe un solo atributo que por si mismo sea suficiente para distinguir cada tupla: hay multiples registros por fecha (uno por cada AFORE) y multiples registros por AFORE (uno por cada mes).

Cardinalidad observada:

  • |fecha| = 331 valores distintos (diciembre 1997 a junio 2025).
  • |afore| = 10 valores distintos.
  • |R| = 2,932 tuplas (no todos los meses tienen las 10 AFOREs, ya que algunas iniciaron operaciones despues de 1997).
Seccion 3

Dependencias funcionales

Una dependencia funcional X → Y establece que para todo par de tuplas t1 y t2 en R, si t1[X] = t2[X], entonces t1[Y] = t2[Y]. A continuacion se identifican las dependencias funcionales presentes en el dataset.

3.1 Dependencias funcionales completas (de la clave)

Las siguientes dependencias son completas respecto a la clave K = {fecha, afore}, es decir, ningun subconjunto propio de K las determina:

{fecha, afore} → comision_sobre_saldo_pct
{fecha, afore} → total_cuentas
{fecha, afore} → trabajadores_registrados
{fecha, afore} → trabajadores_asignados
{fecha, afore} → trabajadores_imss
{fecha, afore} → trabajadores_issste
{fecha, afore} → rcv_imss_mdp
{fecha, afore} → rcv_issste_mdp
{fecha, afore} → ahorro_voluntario_mdp
{fecha, afore} → recursos_administrados_mdp
{fecha, afore} → recursos_registrados_mdp
{fecha, afore} → vivienda_mdp
{fecha, afore} → entradas_mdp
{fecha, afore} → salidas_mdp
{fecha, afore} → traspasos_cedidos
{fecha, afore} → traspasos_recibidos

Nota sobre comisiones: A primera vista, las comisiones de las AFOREs parecerian depender solo del ano y la AFORE, ya que CONSAR las autoriza anualmente. Sin embargo, el analisis empirico del dataset revela que en 10 casos las comisiones cambian dentro del mismo ano calendario (por ejemplo, Coppel paso de 3.30% a 1.94% durante 2009). Por tanto, la dependencia funcional completa {fecha, afore} → comision es correcta; un atributo derivado como {ano, afore} no seria suficiente.

3.2 Dependencias transitivas

Se identifican las siguientes dependencias transitivas dentro de la relacion, es decir, dependencias de la forma K → A → B donde A no es clave:

3.2.1 Cuentas totales como atributo derivado

Se observa empiricamente que:

total_cuentas = trabajadores_registrados + trabajadores_asignados

Esto constituye una dependencia funcional transitiva:

  • {fecha, afore} → {trabajadores_registrados, trabajadores_asignados}
  • {trabajadores_registrados, trabajadores_asignados} → total_cuentas

El atributo total_cuentas es derivable a partir de otros atributos no clave. Su presencia en la relacion introduce redundancia: si se modifica trabajadores_registrados sin actualizar total_cuentas, se genera una inconsistencia. Esta es la anomalia de actualizacion clasica que la normalizacion busca eliminar.

3.2.2 Recursos registrados como atributo derivado

De forma analoga, los recursos registrados en el SAR son una composicion de otros campos:

recursos_registrados_mdp ≈ recursos_administrados_mdp + vivienda_mdp + [bono ISSSTE] + [recursos en Banxico]

La relacion no es exacta porque dos componentes (bono de pension ISSSTE y recursos depositados en Banco de Mexico) no estan presentes como columnas individuales en el dataset. Esto representa una dependencia transitiva parcialmente observable: el investigador puede verificar que recursos_registrados ≥ recursos_administrados + vivienda, pero la diferencia corresponde a componentes no incluidos en el archivo plano.

3.3 Resumen de dependencias

Tabla 1. Dependencias funcionales identificadas

Tipo Determinante Dependiente Implicacion
Completa {fecha, afore} comision_sobre_saldo_pct Cumple 2NF
Completa {fecha, afore} trabajadores_registrados Cumple 2NF
Completa {fecha, afore} trabajadores_asignados Cumple 2NF
Completa {fecha, afore} recursos_administrados_mdp Cumple 2NF
Transitiva {trab_reg, trab_asig} total_cuentas Viola 3NF
Transitiva parcial {rec_admin, vivienda, ...} recursos_registrados_mdp Viola 3NF
Seccion 4

Primera Forma Normal (1NF)

Una relacion esta en 1NF si y solo si:

  1. Todos los atributos contienen valores atomicos (no hay conjuntos, listas ni estructuras anidadas).
  2. No hay grupos repetitivos.
  3. Existe una clave primaria que identifica de forma unica cada tupla.

Evaluacion del dataset

Tabla 2. Evaluacion de 1NF

Criterio Resultado Observacion
Valores atomicos Cumple Cada celda contiene un unico valor numerico o texto. No hay listas ni valores compuestos.
Sin grupos repetitivos Cumple No hay columnas como recurso_1, recurso_2, ..., recurso_n. Cada tipo de recurso tiene su propia columna con semantica distinta.
Clave primaria definida Cumple K = {fecha, afore} identifica de forma unica cada registro. No se observan duplicados.

Conclusion: El dataset DM-SAR-DATA-001 cumple con la Primera Forma Normal (1NF).

Seccion 5

Segunda Forma Normal (2NF)

Una relacion esta en 2NF si y solo si:

  1. Esta en 1NF.
  2. Todo atributo no clave depende funcionalmente de toda la clave primaria, no de un subconjunto propio de ella (no hay dependencias parciales).

La 2NF es relevante unicamente cuando la clave primaria es compuesta, como en nuestro caso donde K = {fecha, afore}.

Analisis de dependencias parciales

Para que exista una violacion de 2NF, deberiamos encontrar algun atributo no clave que dependa solamente de fecha o solamente de afore.

Tabla 3. Analisis de dependencias parciales

Posible dependencia parcial Resultado Justificacion
{afore} → comision? No La comision de cada AFORE cambia a lo largo del tiempo. Una misma AFORE tiene distintas comisiones en distintas fechas.
{fecha} → comision? No En una misma fecha, cada AFORE tiene una comision distinta.
{afore} → recursos? No Los recursos de cada AFORE cambian mes a mes.
{fecha} → recursos? No En una misma fecha, cada AFORE administra montos distintos.

Ningun atributo no clave depende de un subconjunto propio de la clave. Todos los atributos requieren conocer tanto la fecha como la AFORE para ser determinados.

Conclusion: El dataset cumple con la Segunda Forma Normal (2NF). No existen dependencias parciales.

Nota academica: el caso de las comisiones

Un analisis superficial podria sugerir que la comision depende de {ano, afore} en lugar de {fecha, afore}, dado que CONSAR las autoriza con periodicidad anual. Sin embargo, el examen empirico del dataset revela que en al menos 10 combinaciones (ano, afore) la comision varia dentro del mismo ano. Esto ocurrio principalmente en 2008-2009, durante la transicion del regimen de comision sobre flujo al regimen sobre saldo. Por ejemplo:

  • Coppel 2009: inicio el ano en 3.30% y lo cerro en 1.94%.
  • Invercap 2009: inicio en 2.48% y cerro en 1.93%.
  • Banamex 2009: inicio en 1.84% y cerro en 1.75%.

Este hallazgo empirico confirma que la granularidad mensual de la clave es necesaria y que una clave {ano, afore} introduciria una violacion de la definicion de dependencia funcional.

Seccion 6

Tercera Forma Normal (3NF)

Una relacion esta en 3NF si y solo si:

  1. Esta en 2NF.
  2. Ningun atributo no clave depende transitivamente de la clave primaria. Es decir, no existe un atributo no clave A tal que K → A y A → B, donde B es otro atributo no clave.

Dicho de otra forma: todo atributo no clave debe depender de la clave, toda la clave y nada mas que la clave.

6.1 Violacion identificada: total_cuentas

Como se demostro en la Seccion 3, el atributo total_cuentas es la suma de trabajadores_registrados y trabajadores_asignados. Formalmente:

{fecha, afore} → {trabajadores_registrados, trabajadores_asignados} → total_cuentas

Esto es una dependencia transitiva. El atributo total_cuentas no depende directamente de la clave sino a traves de otros atributos no clave. Para alcanzar 3NF, este atributo derivado deberia eliminarse de la relacion (o calcularse dinamicamente en consultas).

6.2 Violacion identificada: recursos_registrados_mdp

El atributo recursos_registrados_mdp es una composicion que incluye recursos_administrados_mdp, vivienda_mdp y otros componentes no presentes en el dataset (bono de pension ISSSTE, recursos en Banco de Mexico). Esto constituye una dependencia transitiva parcialmente observable:

{fecha, afore} → {recursos_administrados_mdp, vivienda_mdp, ...} → recursos_registrados_mdp

6.3 Anomalias resultantes

Las dependencias transitivas generan tres tipos de anomalias:

Tabla 4. Anomalias por violacion de 3NF

Anomalia Ejemplo en el dataset
Actualizacion Si se corrige trabajadores_registrados para una tupla pero no se actualiza total_cuentas, el registro se vuelve internamente inconsistente.
Insercion Al insertar una nueva tupla, se debe calcular total_cuentas correctamente o se introduce un dato erroneo. No hay restriccion estructural que lo impida.
Eliminacion No aplica de forma critica en este caso, dado que el valor derivado no almacena informacion independiente que se perderia al eliminar la tupla.

Conclusion: El dataset no cumple con la Tercera Forma Normal (3NF) debido a la presencia de al menos dos atributos derivados que constituyen dependencias transitivas: total_cuentas y recursos_registrados_mdp.

Seccion 7

Descomposicion a 3NF

Para llevar el dataset a 3NF, se propone la siguiente descomposicion sin perdida (lossless-join decomposition) que preserva todas las dependencias funcionales:

R1: observacion_mensual (relacion principal)

R1(fecha, afore, comision_sobre_saldo_pct, trabajadores_registrados, trabajadores_asignados, trabajadores_imss, trabajadores_issste, rcv_imss_mdp, rcv_issste_mdp, ahorro_voluntario_mdp, recursos_administrados_mdp, vivienda_mdp, entradas_mdp, salidas_mdp, traspasos_cedidos, traspasos_recibidos)

Clave primaria: {fecha, afore}

Se eliminan los dos atributos derivados:

  • total_cuentas se obtiene como: trabajadores_registrados + trabajadores_asignados
  • recursos_registrados_mdp se omite (contiene componentes no presentes en el dataset).

Vistas derivadas (views)

Los atributos eliminados pueden reconstruirse en tiempo de consulta. En SQL:

SELECT fecha, afore,
  trabajadores_registrados + trabajadores_asignados AS total_cuentas
FROM observacion_mensual;

Verificacion de la descomposicion

Tabla 5. Verificacion de propiedades de la descomposicion

Propiedad Resultado Justificacion
Sin perdida (lossless join) Cumple La descomposicion no separa la relacion en multiples tablas, solo elimina columnas derivables. La reunion natural reconstruye el dataset original.
Preservacion de dependencias Cumple Todas las dependencias funcionales no transitivas se mantienen en R1.
3NF Cumple No quedan dependencias transitivas. Todo atributo no clave depende directamente de K.
BCNF Cumple Todo determinante es superclave. No hay dependencias funcionales donde el determinante no sea clave candidata.
Seccion 8

Esquema relacional extendido

Para un sistema de base de datos completo, el investigador podria considerar una descomposicion mas granular que separe las dimensiones del dominio. A continuacion se presenta un esquema de referencia que, si bien va mas alla de lo estrictamente necesario para alcanzar 3NF, sigue principios de modelado dimensional utiles para analisis:

Tabla de dimension: afore

dim_afore(afore_id PK, nombre, nombre_anterior, fecha_inicio_operaciones, fecha_fin_operaciones, status, absorbida_por, tipo)

Ejemplo: (7, 'principal', NULL, '1997-07-01', NULL, 'activa', NULL, 'privada')
Ejemplo: (18, 'metlife', NULL, '2005-02-24', '2018-05-07', 'fusionada', 'principal', 'privada')

Tabla de hechos: observacion_mensual

fact_observacion(fecha, afore_id FK, comision_sobre_saldo_pct, trabajadores_registrados, trabajadores_asignados, trabajadores_imss, trabajadores_issste, rcv_imss_mdp, rcv_issste_mdp, ahorro_voluntario_mdp, recursos_administrados_mdp, vivienda_mdp, entradas_mdp, salidas_mdp, traspasos_cedidos, traspasos_recibidos)

Clave primaria: {fecha, afore_id}

Este esquema permite:

  • Consultar el historial de fusiones y adquisiciones sin redundancia.
  • Agregar atributos a la dimension AFORE (grupo financiero, pais de origen, regulador) sin modificar la tabla de hechos.
  • Mantener integridad referencial mediante la clave foranea afore_id.
Seccion 9

Consideraciones practicas

9.1 Por que se distribuye desnormalizado

El dataset se distribuye intencionalmente como un archivo plano (CSV) y no como un esquema normalizado por las siguientes razones:

  • Portabilidad: Un archivo CSV es legible por cualquier herramienta (Excel, R, Python, Stata, SPSS) sin necesidad de un motor de base de datos.
  • Reproducibilidad: El archivo plano corresponde directamente a las fuentes originales de CONSAR en datos.gob.mx, facilitando la verificacion.
  • Convencion del dominio: Los datasets abiertos de organismos publicos (CONSAR, INEGI, Banxico, FRED, Eurostat) se distribuyen universalmente como archivos planos.

9.2 Recomendaciones para el investigador

  • Si utiliza los datos en un sistema relacional (PostgreSQL, MySQL, SQLite), implemente la descomposicion a 3NF descrita en la Seccion 7.
  • Si trabaja en un entorno analitico (R, Python/pandas, Stata), el archivo plano es directamente utilizable. Los atributos derivados (total_cuentas, recursos_registrados_mdp) pueden servir como checksum para validar la integridad de los datos.
  • Si realiza series de tiempo, considere que los valores estan en pesos nominales. El ajuste por inflacion debe realizarse por separado utilizando el INPC publicado por INEGI.

9.3 Valores nulos

Los valores vacios en el CSV representan datos no disponibles para ese periodo, no ceros. Las principales causas de valores nulos son:

  • comision_sobre_saldo_pct: Nulo antes de marzo 2008 (regimen de comision sobre flujo).
  • trabajadores_issste: Nulo antes de diciembre 2008 (PensionISSSTE no existia).
  • entradas_mdp, salidas_mdp: Nulo antes de enero 2009 (serie no disponible).
  • Registros de AFOREs inexistentes: Azteca, Coppel, Invercap y PensionISSSTE tienen registros con valores nulos en los anos anteriores a su fecha de inicio de operaciones.
Seccion 10

Referencias

  1. Codd, E. F. (1970). A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 13(6), 377-387.
  2. Codd, E. F. (1974). Recent Investigations into Relational Data Base Systems. IBM Research Report RJ1385.
  3. Boyce, R. F. y Chamberlin, D. D. (1974). SEQUEL: A Structured English Query Language. Proceedings of the 1974 ACM SIGFIDET Workshop.
  4. Date, C. J. (2004). An Introduction to Database Systems. 8a edicion. Addison-Wesley.
  5. Elmasri, R. y Navathe, S. B. (2016). Fundamentals of Database Systems. 7a edicion. Pearson.
  6. CONSAR. Datos abiertos del Sistema de Ahorro para el Retiro. datos.gob.mx. Consultado en febrero de 2026.

Declaraciones

Conflictos de interes: El observatorio Datos México declara la ausencia de conflictos de interes. Datos México no tiene relacion comercial, financiera ni institucional con ninguna AFORE, entidad financiera o regulador mencionado en este documento.

Fuentes de datos: El dataset DM-SAR-DATA-001 fue construido integramente a partir de los datos abiertos publicados por CONSAR en datos.gob.mx.

Alcance: Este documento tiene caracter informativo y no constituye asesoria financiera, legal ni recomendacion alguna.