{
  "id": "COMP-DM-001",
  "slug": "data-model",
  "status": "Informative Comparison",
  "subject": "OCOM",
  "target": "Data Model",
  "targetShort": "DM",
  "summary": "A data model (entity-relationship diagram or relational schema) describes how data is structured and stored: tables, columns, keys and the relationships between records. OCOM describes the governed operational objects an organization manages, their identity, ownership, lifecycle, policy and evidence, independent of any storage. A data model answers 'how is the data stored and related'; OCOM answers 'what operational things exist and how are they governed'. An OCOM model can be persisted in a data model, but a data model does not, by itself, carry ownership, lifecycle or governance.",
  "scope": {
    "compared": [
      "How each represents entities, relationships and keys",
      "Storage structure versus operating model",
      "What each is fundamentally for"
    ],
    "notCompared": [
      "Specific database engines or SQL/DDL dialects",
      "Normalization and denormalization choices",
      "Physical storage and indexing"
    ]
  },
  "mappings": [
    {
      "ocom": "Object",
      "target": "Entity / Table",
      "equivalent": "Partial"
    },
    {
      "ocom": "Identity",
      "target": "Primary key",
      "equivalent": "Similar"
    },
    {
      "ocom": "Relationship",
      "target": "Foreign key / Association",
      "equivalent": "Similar"
    },
    {
      "ocom": "Reference",
      "target": "Foreign key",
      "equivalent": "Similar"
    },
    {
      "ocom": "Metadata",
      "target": "Column / Attribute",
      "equivalent": "Similar"
    },
    {
      "ocom": "Classification",
      "target": "Type / Subtype table",
      "equivalent": "Partial"
    },
    {
      "ocom": "Constraint",
      "target": "Constraint / Check",
      "equivalent": "Similar"
    },
    {
      "ocom": "Ownership",
      "target": "—",
      "equivalent": "None"
    },
    {
      "ocom": "Lifecycle",
      "target": "—",
      "equivalent": "None"
    },
    {
      "ocom": "Evidence",
      "target": "—",
      "equivalent": "None"
    }
  ],
  "differences": [
    {
      "aspect": "Purpose",
      "ocom": "Governs operational objects and their reality",
      "target": "Structures data for storage and query"
    },
    {
      "aspect": "Nature",
      "ocom": "An operating model with rules and conformance",
      "target": "A schema for a database"
    },
    {
      "aspect": "Level",
      "ocom": "Implementation-independent",
      "target": "Tied to a storage paradigm"
    },
    {
      "aspect": "Governance",
      "ocom": "First-class: ownership, policy, contract",
      "target": "Not defined by the model"
    },
    {
      "aspect": "Lifecycle",
      "ocom": "First-class: objects have states over time",
      "target": "Ad hoc row status at best"
    }
  ],
  "capabilities": [
    {
      "capability": "Identity",
      "ocom": "Covered",
      "target": "Covered"
    },
    {
      "capability": "Relationships",
      "ocom": "Covered",
      "target": "Covered"
    },
    {
      "capability": "Metadata",
      "ocom": "Covered",
      "target": "Covered"
    },
    {
      "capability": "Constraints",
      "ocom": "Covered",
      "target": "Covered"
    },
    {
      "capability": "Persistence",
      "ocom": "Partial",
      "target": "Covered"
    },
    {
      "capability": "Lifecycle",
      "ocom": "Covered",
      "target": "Out of scope"
    },
    {
      "capability": "Governance",
      "ocom": "Partial",
      "target": "Out of scope"
    },
    {
      "capability": "Ownership",
      "ocom": "Covered",
      "target": "Out of scope"
    },
    {
      "capability": "Provenance / Evidence",
      "ocom": "Partial",
      "target": "Out of scope"
    }
  ],
  "interoperability": [
    "An OCOM model may be persisted in a relational or other data model; the data model is one storage projection of the objects OCOM governs.",
    "A data model may store OCOM objects and relationships, but does not itself provide governance, lifecycle or ownership.",
    "The recommended composition is to design the governed objects in OCOM and persist them in a data model, not to treat the schema as the operating model."
  ],
  "references": [
    {
      "label": "OCOM Object",
      "url": "/vocabulary/object"
    },
    {
      "label": "OCOM Identity",
      "url": "/vocabulary/identity"
    },
    {
      "label": "OCOM Relationship",
      "url": "/vocabulary/relationship"
    },
    {
      "label": "Entity-relationship and relational data models",
      "url": null
    }
  ],
  "canonical": "https://ocom.uno/comparisons/data-model",
  "url": "https://ocom.uno/comparisons/data-model",
  "coverageScale": [
    "Covered",
    "Partial",
    "Out of scope"
  ],
  "coverageNote": "Covered: the model defines the concept explicitly. Partial: the concept appears indirectly or by convention. Out of scope: the model does not set out to describe it; a boundary, not a deficiency. Three OCOM cells read Partial rather than Covered because the specification's own register records the gap: Evidence (AO-021), Governance (AO-023) and AI retrieval (AO-048). Workflow and Event are defined normatively at the Models tier without a Core Vocabulary term record."
}
