_manifest: urn: urn:kora:artefacto:data-modeling type: artefacto provenance: created_by: FS created_at: '2026-04-23' source: Migracion desde artifacts/skills/_TALLER/INBOX/data-modeling/SKILL.md (legacy overlay v1, 537 lineas en ingles) a shape unified v1.2 en espanol con compresion estructural y detalle canonico movido a referencias/ version: 1.0.0 status: activo nombre: data-modeling descripcion: Modela datos con Entity-Relationship Diagrams (ERDs), data dictionaries y modelos conceptual/logico/fisico. Produce schemas documentados, ERDs en Mermaid y DDL para PostgreSQL o SQL Server. Usar al disenar bases de datos, auditar modelos o generar data dictionaries. tags:
- data-modeling
- erd
- schema
- disciplina
- bases-de-datos
lang: es
extensions:
kora:
vector_ontologico:
pi: 2
mu: 0
xi: 1
lambda: 0
phi: 1
sigma:
- 1
- 1
- 2
- 1
- 0
presentacion: estado-primario
atlas:
arnes_categorico: disciplina
forma_material: habilidad
metafora_relacional: supertool
entornos_objetivo:
- claude-code
- codex
- gemini nivel_prescripcion: medio conocimiento_permitido:
- urn:tde:kb:guia-tecnica-marco-gestion-datos
- urn:tde:kb:guia-tecnica-metadatos-documentos-expedientes
- urn:kora:kb:cat-skill-algebra componible_con:
- urn:kora:artefacto:cat-thinking artefacto: perfil: descripcion: Habilidad de modelado de datos para convertir requerimientos en ERDs, data dictionaries, modelos logicos/fisicos y DDL documentado. dominio:
- modelado conceptual de datos
- normalizacion relacional
- diseno fisico de bases de datos salidas:
- ERDs
- data dictionaries
- DDL para PostgreSQL o SQL Server interfaz: herramientas: [] permisos: allow: [] deny: []
Data Modeling
Skill para modelar datos via ERD, data dictionaries y DDL. Cubre tres niveles de abstraccion (conceptual, logico, fisico) y produce artefactos listos para consumo por equipos de desarrollo y DBAs.
Objetivo
Transformar requerimientos de negocio en modelos de datos gobernables, con preservacion explicita de semantica entre niveles y trazabilidad desde entidad a columna fisica.
Cuando Usar
- Disenar una base de datos desde cero a partir de requerimientos.
- Auditar un modelo existente contra normalizacion (1NF, 2NF, 3NF, BCNF).
- Generar data dictionary o ERD desde schema productivo.
- Planificar migracion de schema con preservacion de constraints.
- Documentar el modelo conceptual de un dominio para stakeholders no tecnicos.
Distincion con arquitecto-categorico
| data-modeling | arquitecto-categorico |
|---|---|
| QUE datos modelar (schema) | POR QUE compone (fundamento formal) |
| ERD, cardinalidad, normalizacion | Funtores, limites, adjunciones |
| Produce schema relacional | Produce la fundamentacion categorica |
| Dominio: datos | Agnostica de dominio |
arquitecto-categorico es upstream: primero se formaliza la categoria, luego se materializa como schema relacional. Para trabajo rutinario, data-modeling basta.
Workflow
Fase 1 — Entidades
- Extraer sustantivos de los requerimientos.
- Filtrar candidatos: conservar conceptos independientes con multiples instancias; descartar sinonimos, acciones y atributos.
- Clasificar por tipo:
strong(independiente),weak(depende de otra),associative(resuelve M:N). - Documentar como tabla
Entidad | Descripcion | Ejemplo.
Fase 2 — Atributos
- Listar atributos por entidad respondiendo "que necesitamos saber de esto".
- Identificar claves: PK surrogate, natural keys, composite keys.
- Clasificar tipo:
string,integer,decimal,date,timestamp,boolean,uuid. - Marcar obligatoriedad:
NOT NULLvsNULL. - Marcar derivados (calculados) y multi-valor (coleccion).
Fase 3 — Relaciones
- Identificar conexiones entre pares de entidades.
- Nombrar relacion en verbo activo (
places,contains,owns). - Declarar cardinalidad: 1:1, 1:M, M:N.
- Descomponer M:N en dos 1:M via entidad asociativa.
- Documentar como tabla
Relacion | From | To | Cardinalidad | Descripcion.
Fase 4 — Normalizacion
| Forma | Regla | Ejemplo de violacion |
|---|---|---|
| 1NF | Valores atomicos, sin grupos repetidos | phone1, phone2, phone3 |
| 2NF | Sin dependencias parciales | No-clave depende de parte de composite key |
| 3NF | Sin dependencias transitivas | No-clave depende de no-clave |
| BCNF | Todo determinante es clave candidata | Solapamiento en claves candidatas |
Denormalizar solo cuando: performance critica de lectura, reporting/analytics, data warehouse, o el trade-off esta justificado y documentado.
Fase 5 — Modelo fisico
- Mapear tipos logicos a fisicos segun motor (ver
referencias/tipos-fisicos.md). - Definir constraints: PK, FK, UNIQUE, CHECK, DEFAULT.
- Planificar indices: PK automatico, FK para joins, columnas de filtro frecuente, covering indexes.
- Declarar cascadas:
ON DELETE CASCADE,ON UPDATE CASCADE, oRESTRICTpor default. - Emitir DDL ejecutable.
Notacion
Crow's Foot (estandar industrial)
| Simbolo | Significado |
|---|---|
── |
Uno (obligatorio) |
──o |
Cero o uno (opcional) |
──< |
Muchos |
──o< |
Cero o muchos |
Cardinalidad legible
- 1:1
employee -> workstation. - 1:M
customer -> orders. - M:N
students <-> courses(requiere entidad asociativa).
Formatos de salida
Mermaid ERD
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ ORDER_LINE : contains
PRODUCT ||--o{ ORDER_LINE : includes
CUSTOMER {
int customer_id PK
string name
string email UK
date created_at
}
ORDER {
int order_id PK
int customer_id FK
date order_date
decimal total
string status
}
Data Dictionary
Tabla por entidad con Column | Type | Null | Key | Default | Description.
DDL PostgreSQL / SQL Server
Ver plantillas en referencias/ddl-postgres.sql y referencias/ddl-sqlserver.sql.
Recursos
Referencias
referencias/tipos-fisicos.md: mapeologico -> PostgreSQL | SQL Server | MySQL.referencias/patrones-denormalizacion.md: catalogo de patrones con trade-offs.referencias/ddl-postgres.sql: plantilla DDL para PostgreSQL 16+.referencias/ddl-sqlserver.sql: plantilla DDL para SQL Server 2022.
Invariantes
- Un modelo logico DEBE estar al menos en 3NF antes de denormalizacion.
- Toda denormalizacion DEBE registrar el trade-off: ganancia (read latency, reporting) vs costo (update complexity, storage).
- Un ERD DEBE ser consumible por herramienta estandar (Mermaid, dbdiagram.io, PlantUML).
- Data dictionary DEBE incluir descripcion de columna, no solo tipo.
Salida Esperada
- Modelo conceptual: entidades + relaciones sin atributos, en prosa o tabla.
- Modelo logico: entidades + atributos + claves + relaciones normalizadas.
- Modelo fisico: DDL ejecutable con constraints e indices.
- Data dictionary: tabla completa por entidad.
- ERD en Mermaid embebido en el reporte.