Every database, warehouse and analytics product rests on decisions about what the data means and how its pieces connect. Data modeling is the practice of making those decisions on purpose, in a form people can review, before the structure is locked into tables, collections and pipelines. When it is skipped, the decisions still get made, just implicitly, by whoever writes the first migration script.
So, what is data modeling in practical terms? It is the work of describing the things a business cares about (customers, orders, shipments, policies), the facts recorded about them, and the rules that link them, then translating that description into a structure a specific database can store and query efficiently. The output is usually a set of diagrams plus definitions, and eventually the DDL or schema code that creates the real objects.
This guide covers the three levels of a model, the main modeling techniques (relational, dimensional, Data Vault and document or NoSQL), a step-by-step process, the mistakes that cause the most rework, and the categories of tools teams use to do the job.
A model is a contract between the people who understand the business and the people who build the systems. Product managers, analysts and engineers can argue over a diagram in an afternoon; arguing over a production schema with millions of rows takes months and a migration plan.
Good models pay off in a few concrete ways. Queries are simpler because related data is where people expect it. Data quality improves because constraints (keys, required fields, valid relationships) are designed in rather than patched later. Reporting is more consistent because “customer” and “active subscription” mean the same thing in every dashboard. And onboarding is faster because new team members can read the model instead of reverse engineering it from code.
Modeling also feeds governance. Definitions, owners and lineage captured in a model are the raw material for a data catalog. If your organization is building that discipline, our roundup of the top data governance and metadata management tools covers platforms that pick up model metadata and keep it current.
Most methods describe a conceptual, logical and physical data model as three passes over the same subject, each adding detail and each aimed at a different audience.
The conceptual model names the main business entities and how they relate, with almost no technical detail. “A customer places many orders. An order contains one or more products. A product belongs to one category.” It is written for business stakeholders, and its job is to confirm scope and vocabulary. Attributes are optional at this level, and there are no data types or keys.
The logical model adds attributes, identifiers, relationship cardinality and business rules, while staying independent of any specific database product. This is where you decide that an order has an order date, a status and a shipping address, that an order line references exactly one product, and that a customer can exist without any orders. In relational work, the logical model is usually normalized so each fact is stored once.
The physical model maps the logical design onto a real platform: PostgreSQL, SQL Server, Snowflake, MongoDB and so on. It specifies table and column names, data types, primary and foreign keys, indexes, partitioning, and sometimes deliberate denormalization for performance. Two physical models built from the same logical model can look quite different if one targets a transactional database and the other a columnar warehouse.
| Level | Main audience | What it contains | Platform specific? |
|---|---|---|---|
| Conceptual | Business stakeholders | Core entities and relationships, shared vocabulary | No |
| Logical | Analysts, architects | Attributes, keys, cardinality, business rules, normalization | No |
| Physical | Engineers, DBAs | Tables or collections, data types, indexes, partitions, constraints | Yes |
The levels describe how much detail a model has. Techniques describe the shape the model takes, and the right shape depends on the workload.
Relational modeling organizes data into tables of rows and columns linked by keys, usually designed with an entity-relationship diagram. The goal for transactional systems is normalization: remove redundancy so that each fact lives in one place, which keeps inserts and updates consistent. Third normal form is the common target for operational databases. The trade-off is that analytical questions often require joining many tables, which is one reason warehouses use other techniques.
Dimensional modeling, popularized by Ralph Kimball, is built for analytics. It splits data into fact tables, which hold measurable events such as sales, clicks or payments, and dimension tables, which hold the descriptive context used to filter and group those events (date, customer, product, region).
In a star schema, each dimension is a single, denormalized table joined directly to the fact table, so the diagram looks like a star. Queries are short and BI tools handle them well. A snowflake schema normalizes some dimensions into sub-tables (product to category to department, for example). That saves some storage and keeps hierarchies tidy, but it adds joins and can make the model harder for report authors to navigate.
The most important decision in dimensional work is the grain: exactly what one row in a fact table represents. “One row per order line per day” and “one row per order” support very different questions, and mixing grains in one fact table is a classic source of double-counted numbers. Dimensional design also has to handle changing attributes, such as a customer who moves regions, which is where slowly changing dimension patterns come in.
If you are deciding which BI layer will sit on top of a star schema, our Power BI vs Tableau comparison looks at how each tool works with dimensional models.
Data Vault, created by Dan Linstedt, is a technique for the integration layer of an enterprise warehouse, where data from many source systems lands and has to be kept with full history. It uses three core structures:
Because new sources usually mean adding new satellites or links rather than changing existing tables, Data Vault absorbs change well and keeps an auditable record of what each source said and when. The cost is complexity: a Data Vault has many more tables than an equivalent star schema, and it is rarely queried directly by analysts. Most teams build dimensional information marts on top of it for reporting. The pattern is also repetitive enough that many teams generate it with automation tools; see our list of top data warehouse automation tools for platforms that do this.
NoSQL data modeling starts from a different question. Instead of “what are the entities and how do I avoid redundancy,” it asks “what will the application read and write, and how can each of those operations touch as little data as possible?”
In a document database such as MongoDB, the main choice is between embedding related data inside a parent document (an order with its line items nested inside) and referencing it in a separate collection. Embedding makes reads fast and atomic but can produce large, duplicated documents. Referencing keeps documents small and shared data consistent but needs extra lookups. Wide-column stores like Cassandra push this further: tables are often designed one per query pattern, with the partition key chosen to spread load and keep each read on a single partition.
| Technique | Best suited to | Main strength | Main limitation |
|---|---|---|---|
| Relational (normalized) | Transactional applications | Consistency, minimal redundancy | Many joins for analytical queries |
| Star schema | BI and reporting | Simple, fast analytical queries | Redundant dimension data, rework when grain changes |
| Snowflake schema | BI with deep hierarchies | Tidier dimensions, less duplication | More joins, harder for report authors |
| Data Vault | Enterprise integration layer with many sources | Auditability, absorbs new sources | Many tables, needs marts for reporting |
| Document or wide-column | High-scale apps with known access patterns | Fast reads for designed queries | Ad hoc queries and changing patterns are harder |
Many organizations use several at once: normalized models in the operational databases, a Data Vault or staging layer in the warehouse, and star schemas in the marts that feed dashboards.
Copying an ERP’s table structure into a warehouse feels efficient, but it imports the vendor’s quirks and naming into every report. Model the business concepts, then map sources to them.
Fact tables without a declared grain end up mixing daily snapshots with individual transactions, and totals stop adding up. State the grain in one sentence before adding any measures.
A fully normalized model forces analysts through long join chains. A heavily denormalized operational schema invites update anomalies where one copy of a value changes and the others do not. Match the structure to the workload.
Columns named flag1, status2 or amt push the burden onto every future reader. Agree on a naming convention and record a business definition for each entity and important attribute.
Customers move, products get reclassified, prices change. If the model only stores current values, historical reports silently restate the past. Decide early which attributes need history.
An outdated diagram is worse than none, because people trust it. Keep the model in sync with the database.
Splitting every concept into its own collection and joining in application code gives you the drawbacks of both approaches. Start from access patterns.
Data modeling tools range from free diagramming apps to enterprise suites. The useful distinction is less about brand and more about what the tool does beyond drawing boxes.
Long-established desktop and server products such as erwin Data Modeler (now part of Quest) and ER/Studio Data Architect support conceptual, logical and physical models in one place, forward engineering (generating DDL from a model), reverse engineering (building a model from an existing database), model comparison, naming standards and shared repositories for team collaboration. They suit organizations with many databases, formal architecture teams and governance requirements.
Browser-based tools such as SqlDBM focus on modern cloud warehouses like Snowflake and Databricks, with collaboration, version history and Git integration built in. They are usually quicker to adopt and a better fit for analytics engineering teams that already work in version control.
Hackolade is built for document, wide-column, graph and other NoSQL targets, and for modeling schemas that span several platforms. Tools in this group represent nested structures and arrays directly, which classic ER tools handle poorly.
Many database IDEs include ER diagram views and basic reverse engineering, and general diagramming apps can sketch conceptual models. These are fine for small projects or early whiteboarding, but they typically lack model-to-database comparison and change management. Our guide to top database IDEs and SQL clients notes which ones include diagramming.
For a ranked comparison with features and fit by team size, see our list of the top data modeling tools.
It is the process of deciding what data an organization stores, what each piece means, and how the pieces relate, then turning those decisions into a structure a database can use. Think of it as the blueprint drawn before a database is built.
A logical model describes entities, attributes, keys and rules without reference to any specific database. A physical model applies that design to a particular platform with real data types, indexes, partitions and naming.
Star schemas are usually preferred for reporting because they need fewer joins and are easier for BI users to understand. Snowflake schemas make sense when dimensions have deep hierarchies or when reducing duplicated dimension data matters more than query simplicity.
Data Vault fits enterprise warehouses that integrate many changing sources and need full history and auditability. For a single source or a small analytics stack, a well-designed staging layer plus star schemas is usually simpler.
Yes. The schema is more flexible, but performance depends heavily on designing documents or tables around access patterns. Without a model, collections drift and queries become slow and inconsistent.
Data modeling is the step where an organization decides what its data means before that meaning gets scattered across code, pipelines and reports. Working through conceptual, logical and physical levels keeps business and technical teams aligned. Choosing the right technique (normalized for transactions, dimensional for analytics, Data Vault for multi-source integration, access-pattern design for NoSQL) keeps systems fast and maintainable. And treating the model as a living, versioned asset, supported by tools that can compare it to the real database, is what keeps it useful after launch.