Physical Data Model
The physical data model translates a logical model into the specific DDL and configuration for a target DBMS. It addresses how data is stored — data types, indexes, partitions, tablespaces, and storage parameters.
What It Specifies
| Aspect | Example |
|---|---|
| SQL Data Types | VARCHAR(255), INTEGER, TIMESTAMP WITH TIME ZONE |
| Indexes | B-Tree on foreign keys, GIN on tsvector columns |
| Database Constraints | NOT NULL, CHECK, UNIQUE, FOREIGN KEY with referential actions |
| Partitioning | Range partition by date, hash partition by tenant_id |
| Storage | Tablespace allocation, fill factor, compression |
| DBMS-specific features | PostgreSQL SERIAL, SQLite WITHOUT ROWID, MySQL ENGINE=InnoDB |
Design Workflow Position
graph LR A["[[Conceptual Data Modeling|Conceptual]]"] --> B["[[Logical Data Modeling|Logical]]"] B --> C["Physical"] C --> D["Implementation<br/>(CREATE TABLE)"] D --> E["Tuning<br/>([[Explain Analyze]])"]