DM-SAR-DATA-001
Apendice para investigadores
Equipo de Datos México
Febrero 2026
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.
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).
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 |
Primera Forma Normal (1NF)
Una relacion esta en 1NF si y solo si:
- Todos los atributos contienen valores atomicos (no hay conjuntos, listas ni estructuras anidadas).
- No hay grupos repetitivos.
- 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).
Segunda Forma Normal (2NF)
Una relacion esta en 2NF si y solo si:
- Esta en 1NF.
- 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.
Tercera Forma Normal (3NF)
Una relacion esta en 3NF si y solo si:
- Esta en 2NF.
- 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.
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. |
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.
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.
Referencias
- Codd, E. F. (1970). A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 13(6), 377-387.
- Codd, E. F. (1974). Recent Investigations into Relational Data Base Systems. IBM Research Report RJ1385.
- Boyce, R. F. y Chamberlin, D. D. (1974). SEQUEL: A Structured English Query Language. Proceedings of the 1974 ACM SIGFIDET Workshop.
- Date, C. J. (2004). An Introduction to Database Systems. 8a edicion. Addison-Wesley.
- Elmasri, R. y Navathe, S. B. (2016). Fundamentals of Database Systems. 7a edicion. Pearson.
- 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.