Logical Data Modeling

Logical data modeling is the second phase of database design, translating a conceptual model into a detailed, DBMS-independent blueprint of the data structure. It defines entities, attributes, keys, relationships, and normal forms without specifying physical storage details.

What It Defines

ElementDescription
Entities / TablesNamed objects with defined attributes
Attributes / ColumnsProperties with [[SQL Data Types
[[Primary KeyPrimary keys]]
[[Foreign KeyForeign keys]]
NormalizationDecomposition to eliminate redundancy (typically to 3NF/BCNF)
Database ConstraintsNOT NULL, UNIQUE, CHECK, referential actions

Expressed Through

  • Entity-Relationship Diagram (ERD) — Crow’s Foot / IE notation is the standard for logical models
  • SQL DDL — CREATE TABLE statements (though this overlaps with physical modeling)
  • Data modeling tools — MySQL Workbench, pgModeler, LucidChart, ERDPlus

Conceptual → Logical Translation

The same conceptual model maps differently depending on the target database paradigm:

Conceptual ElementRelational LogicalDocument LogicalGraph Logical
EntityTableCollectionNode
RelationshipForeign Key / Junction TableEmbedded doc or referenceEdge
AttributeColumnFieldProperty
GeneralizationDiscriminator column or table-per-typeType fieldLabel

Position in Design Workflow

graph LR
    A["[[Conceptual Data Modeling|Conceptual]]<br/>(UML / domain model)"] --> B["Logical<br/>(ERD / normalized schema)"]
    B --> C["[[Physical Data Model|Physical]]<br/>(DDL / indexes / partitions)"]