---
title: "What Is a Data Model? Definition and Example"
canonical: "https://www.owox.com/glossary/data-model"
updated: "2026-10-12"
---

# What Is a Data Model?

A data model is a description of your business in data: which things exist (customers, orders, products), how they connect, and what each number means. The database stores the rows; the data model gives you the same definitions behind every answer, and a calculation you can open.

**9 min** read · Updated October 11, 2026 · [Data Analytics](/blog/topics/data-analytics)

People ask what a data model is because two reports on the same warehouse show two different numbers for the same month, and both queries are correct. A data model is what settles which one is right before the meeting.

This page is the short answer; the longer guides are linked where they go deeper. If you are the person who asked, [the last section](#for-the-person-who-asked) is for you.

## Key Components of a Data Model

Every data model answers three questions about the business.

**What exists.** These are the **entities**, the nouns of the business. An online store has customers, orders, line items and products. Each entity has **attributes**, the facts you keep about it: an order has a date, a status and a total.

**How things connect.** **Relationships** say how entities relate and how many of one belong to another (the **cardinality**). One customer places many orders. One order contains many line items. Each line item refers to one product.

Join orders to their line items and then sum the order total, and an order with three line items is counted three times. Nothing errors. The number is simply too big.

The word for this is **grain**: what one row stands for. The orders table has one row per order; the line items table has one row per product on an order. Sum a per-order number at line-item grain and you count it more than once.

We ran it on the OWOX demo e-commerce dataset in Google BigQuery on 11 October 2026. The demo orders table has no total column, so the query builds one per order, then makes the mistake on purpose:

```
WITH order_totals AS (
  SELECT order_id,
    SUM(line_revenue) AS order_total
  FROM `owox-demo.ecommerce.purchases`
  GROUP BY order_id
)
SELECT COUNT(*) AS row_count,
  ROUND(SUM(t.order_total), 2) AS total
FROM `owox-demo.ecommerce.orders` o
JOIN order_totals t USING (order_id)
-- the trap: one more join, to line items
JOIN `owox-demo.ecommerce.purchases` p
  USING (order_id)
WHERE o.order_date
  BETWEEN '2026-04-01' AND '2026-06-30'
```

| Orders placed in Q2 2026 | Rows | Summed order total |
| --- | --- | --- |
| Without the last join (order grain) | 1,921 | $941,162.88 |
| With it (line-item grain) | 3,384 | $2,159,805.17 |

Both run without an error. The second total is about 2.3 times the first, and nothing in the result says which is right. The demo data is small and clean; on real data the gap depends on how many lines your orders have.

**What each number means.** The model is where a metric is defined once: is order value gross or net of refunds, with or without shipping and tax? Who counts as an active customer? Order value is not revenue: what counts as revenue is finance’s definition, and the model is where it gets written down so nobody re-derives it in a dashboard. The definitions are agreed as part of the model: what each number means, and at which grain. A semantic layer, if you have one, stores and computes them for the tools that ask; a BI tool’s own model, such as Power BI measures or LookML, can play the same role.

## One Example at Three Levels: Conceptual, Logical, Physical

A model is described at three levels of detail: the same model, more specific at each step from the business to the warehouse. Here is one e-commerce model at all three.

![The same e-commerce data model shown at conceptual, logical and physical level: customer, order, line item and product, with keys at the logical level and column types at the physical level](https://cdn.owox.ai/www/content-marketing-glossary-term/data-model/body/2.png/public)

**[Conceptual](/glossary/conceptual-data-model): what the business agrees on.** The four entities and how they connect, with no columns. Its job is agreement: if the head of finance and the head of growth disagree about what an order is, no SQL further down will fix it. The business owns this level ([more conceptual examples](/blog/articles/conceptual-data-modeling-with-examples)).

**[Logical](/glossary/logical-data-model): keys and attributes, no database yet.** Each entity gets its attributes and a **[primary key](/glossary/primary-key)**, the field that identifies one row (`order_id`). A **[foreign key](/glossary/foreign-key)** is how a row points at a row in another table: Cardinality and the grain of each table are written down here. The analyst owns this level.

**[Physical](/glossary/physical-data-model): how it is built in your warehouse.** Tables, column types, partitioning or clustering (how a large table is split or sorted so a query reads less of it), and table or view (materialization). The diagram uses Google BigQuery’s type names; other warehouses spell some differently. The analyst or data engineer owns this level. [Logical vs physical data models](/blog/articles/logical-vs-physical-data-models) goes deeper.

## The Turning Point

OWOX Data Marts

See your first report built in real time. _15 minutes._

1.  Connect your data warehouse
2.  Pick your metrics
3.  Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

[Book a Demo](/book-a-call)

We'll use your actual use case

## Data Model vs Database, Schema and Data Warehouse

| Term | What it is | The question it answers |
| --- | --- | --- |
| Data model | The design: entities, relationships, metric definitions | What does this data mean? |
| [Database schema](/glossary/database-schema) | The tables, columns and types in one database | How is it stored here? |
| [Database](/glossary/database) | The software that stores and returns rows | Where are the rows? |
| [Data warehouse](/glossary/what-is-data-warehouse) | A database built for analysis across many sources | Where is all the data together? |

The schema is the closest of the three to the model. It is the physical level of a model, without the business meaning behind it. In some warehouses, Snowflake for one, “schema” also means a namespace that groups tables. You can have a clean warehouse with a tidy schema and still three versions of order value, because the warehouse stores the data and the model is what decides what it means.

A semantic layer is a different thing: a service between the warehouse and the tools, which stores metric definitions and calculates them when a tool asks. It is built on a data model, not instead of one ([semantic data models](/blog/articles/semantic-data-models)). Models also come in shapes, such as relational and dimensional (the star schema: a fact table of events joined to dimension tables that describe them); [types of data models](/blog/articles/types-of-data-models-and-benefits) covers each.

## How to Tell Whether You Need One

The threshold is not company size but whether more than one person needs the same number.

1.  Two dashboards disagree on the same metric for the same period, and nobody can say quickly which is right.
2.  “Active customer” means one thing to marketing, another to finance and a third to product, and nobody can say which is official.
3.  Every new question goes through one person, because only they know which table is the real one.
4.  A report breaks when a source renames a field, and you find out in a meeting.
5.  Someone wants to point an AI assistant at the warehouse.

If you recognise one, you can live with it. If you recognise three, you are already paying for a model, in reconciliation time instead of design time.

## Why AI Makes the Model Matter More

An analyst brings context the tables do not hold: which table includes test orders, which join double-counts. An AI assistant has only what is written down. A wrong number looks exactly like a right one.

We tested how much that matters on the same demo data, on 11 October 2026, with one question: “What was our total order value in Q2 2026, and how many orders was that?”

**Three runs with only the table and column names.** Three fresh Claude sessions each got the bare schema of four tables and no tools, and wrote one query. All three wrote the join correctly. This is one of them, as written:

```
SELECT
  ROUND(SUM(p.line_revenue), 2)
    AS total_order_value,
  COUNT(DISTINCT o.order_id)
    AS orders_count
FROM `owox-demo.ecommerce.orders` AS o
LEFT JOIN
  `owox-demo.ecommerce.purchases` AS p
  ON p.order_id = o.order_id
WHERE o.order_date BETWEEN
  DATE '2026-04-01' AND DATE '2026-06-30'
```

We ran all three: $941,162.88 from 1,921 orders each time, no double count. On a question this simple the join was not the problem. The definition was. Each run had to pick `line_revenue` over `line_net_revenue` and said it had included every order “regardless of status”, because the status values were unknown to it. The other reading, completed orders at net revenue, returns $789,011.69 from 1,617 orders on the same tables. Both are valid SQL, $152,151.19 apart, and the schema does not say which one the head of sales meant.

**One run through a written model.** The same question through the OWOX Data Marts MCP server, on the demo project, where an analyst has defined the Data Marts (here, Orders) and their relationships:

```
{ "tool": "query_data_mart",
  "data_mart_id":
    "d565c4cb-5f68-480e-917d-c1709b59ae02",
  "fields": ["orders_total",
    "purchases_e_commerce__line_revenue"],
  "aggregations": [{ "function": "SUM",
    "field":
     "purchases_e_commerce__line_revenue" }],
  "filters": [{ "field": "order_date",
    "operator": "between",
    "value": { "from": "2026-04-01",
               "to": "2026-06-30" } }] }
```

It returned $941,162.88 and 1,921 orders: the same figures, joined to line items without inflating the order count. The difference is what came back with them. The analyst’s field descriptions say “Gross revenue for this order line = Item Sale Price × Quantity. Sum across lines for total gross revenue (all order statuses)” and “Distinct orders in the selected rows, every status”. The choice each bare run made alone is written down here, next to a separate field for net revenue on completed orders.

That is one question, four runs, one AI model and clean demo data: it shows the mechanism, not a rate. A written model narrows the guessing. It does not make the answer automatically right. It makes the answer checkable.

In OWOX Data Marts the [data model](/product/data-modeling) is the Data Marts an analyst defines in SQL plus the relationships between them; given correctly declared relationships, the product writes the join SQL so a joined row is not counted twice ([Joinable Data Marts](https://docs.owox.com/docs/getting-started/setup-guide/joinable-data-marts/)). An assistant connects through the MCP server ([setup docs](https://docs.owox.com/docs/getting-started/setup-guide/mcp/)). It is part of OWOX Data Marts Cloud, and the assistant receives the query results to write its answer, so whoever owns data protection or IT should confirm that data may go to your AI provider.

## Where to Start: A Short List, Then a Full Model

There are two deliverables, and it helps to ask for them separately.

**First, the short list.** Write down the three to five metrics your leadership argues about most (revenue, ROAS or cost per order, say), agree one definition for each with the people who own them, and put each in one shared definition every report reads: a shared view in the warehouse, or a shared measure in the BI tool’s model. Your analyst builds it. That short list is the first piece of the model, not all of it (it has no entities, keys or grain yet), and it does not wait for the second deliverable.

**Then, the full model.** It takes longer because the work is different: mapping every source that feeds those metrics, agreeing which key identifies a customer or an order in each system, settling the grain of every table, testing that the joins return the right row counts, and documenting it so the next person can maintain it. Its size depends on how many sources feed the metrics and how many definitions are contested, so an estimate should list both.

Or start from the [free data model templates](/blog/articles/data-model-templates), including [e-commerce](/blog/articles/ecommerce-data-model), [SaaS](/blog/articles/saas-data-model) and [forex and CFD brokers](/blog/articles/forex-broker-data-model).

## For the Person Who Asked

If you lead a team or a company and asked your analyst what a data model is, here is the version to keep.

**Your part is the definitions.** Pick the three to five numbers your leadership meeting argues about most, such as revenue, ROAS or cost per order. For each one, make one decision with your finance lead about what it means, and make it official. Your analyst can write the definitions down; only you can decide which one counts.

A data model is the agreed list of what your business counts and how: customers, orders, products, and what “revenue” or “active customer” means. It is not software you buy, and having a data warehouse does not mean you have one. Without it, every report quietly makes its own choices, and that is why two people bring you two numbers for the same month.

It matters more once AI is involved. An AI assistant without agreed definitions picks one, and a wrong number looks exactly like a right one. Skipping the model does not save the work; it moves it to reconciliation time every month, and to decisions taken on a confident wrong answer.

When your team proposes a plan, ask for both deliverables: the short list of agreed definitions first, and the full model, with every source mapped and every join tested, as the second.

## Topics

[Glossary](/glossary)

[Data Analytics](/blog/topics/data-analytics)

## Related terms

[Data Modeling](/glossary/data-modeling)

[Data Model Types](/glossary/data-model-types)

[Database Schema](/glossary/database-schema)

[Conceptual Data Model](/glossary/conceptual-data-model)

[What Is a Logical Data Model? Definition & Guide](/glossary/logical-data-model)

[What Is a Physical Data Model? Definition & Guide](/glossary/physical-data-model)

## Related articles

## Learn more about analytics

[data modeling · Types of data models and data modeling techniques in DBMS · Oct 7, 2026](/blog/articles/types-of-data-models-and-benefits)

[data modeling · What is data modeling? The full guide · Feb 27, 2025](/blog/articles/what-is-data-modeling)

[data modeling · Logical vs physical data models: the main differences explained · Oct 7, 2026](/blog/articles/logical-vs-physical-data-models)

## Customer stories

## Learn how teams ship analytics faster

Organizations that scaled analytics without scaling headcount

[All case studies →](/blog/success-stories)

[Pürblack · "For 10 years I was blind." The day Pürblack® founder stopped guessing · Seconds · to get reports across six channels · Read the story](/blog/success-stories/purblack)

[Reformation · How OWOX Reports Helped Reformation Make Data-Backed Decisions · Minutes · from data request to business decision · Read the story](/blog/success-stories/reformation)

[WorkSimpli · How OWOX Reports Streamlined Operations for WorkSimpli, Saving Over 10 Hours Weekly · 10hrs+ · saved per week on manual reporting · Read the story](/blog/success-stories/worksimpli)

## What users are saying

## Not testimonials. Comment threads.

Real things real customers said — each quote pinned to a specific claim, straight from the quotes database.

A3 · re: trusting AI

![Nodari Rizun](https://cdn.owox.ai/www/webflow/6a7b298b2ca5055443187566_nodari-headshot.png/public) Nodari Rizun · Founder & CEO, Pürblack®

> _“AI, by the nature of the models, will hallucinate. And because of that, you need something which will create guardrails to ensure that there are no hallucinations, that you can trust your data.”_

C5 · re: opened eyes

![Nodari Rizun](https://cdn.owox.ai/www/webflow/6a7b298b2ca5055443187566_nodari-headshot.png/public) Nodari Rizun · Founder & CEO, Pürblack®

> _“I was blind, now I can see. OWOX opened our eyes.”_

E9 · re: results and support

PandaDoc · Analytics team

> _“We are extremely satisfied with the results achieved through our partnership with OWOX. I'm also impressed by quick and effective support we get from OWOX”_

## Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

*   No AI hallucinations
*   Analyst-governed definitions
*   Every number traces to SQL

[Get started free](https://www.owox.com/app-signup)

## Book a call

You are booked. The invitation is on its way to , with the calendar invite and the meeting link.

[Reschedule](#)

[Cancel](#)

## Links

Pages this page links to, on this site and on docs.owox.com. Where the page has a Markdown twin, its address follows the link.

- [Data Analytics](https://www.owox.com/blog/topics/data-analytics) — /blog/topics/data-analytics.md
- [Conceptual](https://www.owox.com/glossary/conceptual-data-model) — /glossary/conceptual-data-model.md
- [more conceptual examples](https://www.owox.com/blog/articles/conceptual-data-modeling-with-examples) — /blog/articles/conceptual-data-modeling-with-examples.md
- [Logical](https://www.owox.com/glossary/logical-data-model) — /glossary/logical-data-model.md
- [primary key](https://www.owox.com/glossary/primary-key) — /glossary/primary-key.md
- [foreign key](https://www.owox.com/glossary/foreign-key) — /glossary/foreign-key.md
- [Physical](https://www.owox.com/glossary/physical-data-model) — /glossary/physical-data-model.md
- [Logical vs physical data models](https://www.owox.com/blog/articles/logical-vs-physical-data-models) — /blog/articles/logical-vs-physical-data-models.md
- [Book a Demo](https://www.owox.com/book-a-call) — /book-a-call.md
- [Database schema](https://www.owox.com/glossary/database-schema) — /glossary/database-schema.md
- [Database](https://www.owox.com/glossary/database) — /glossary/database.md
- [Data warehouse](https://www.owox.com/glossary/what-is-data-warehouse) — /glossary/what-is-data-warehouse.md
- [semantic data models](https://www.owox.com/blog/articles/semantic-data-models) — /blog/articles/semantic-data-models.md
- [types of data models](https://www.owox.com/blog/articles/types-of-data-models-and-benefits) — /blog/articles/types-of-data-models-and-benefits.md
- [data model](https://www.owox.com/product/data-modeling) — /product/data-modeling.md
- [Joinable Data Marts](https://docs.owox.com/docs/getting-started/setup-guide/joinable-data-marts)
- [setup docs](https://docs.owox.com/docs/getting-started/setup-guide/mcp)
- [free data model templates](https://www.owox.com/blog/articles/data-model-templates) — /blog/articles/data-model-templates.md
- [e-commerce](https://www.owox.com/blog/articles/ecommerce-data-model) — /blog/articles/ecommerce-data-model.md
- [SaaS](https://www.owox.com/blog/articles/saas-data-model) — /blog/articles/saas-data-model.md
- [forex and CFD brokers](https://www.owox.com/blog/articles/forex-broker-data-model) — /blog/articles/forex-broker-data-model.md
- [Glossary](https://www.owox.com/glossary) — /glossary.md
- [Data Modeling](https://www.owox.com/glossary/data-modeling) — /glossary/data-modeling.md
- [Data Model Types](https://www.owox.com/glossary/data-model-types) — /glossary/data-model-types.md
- [data modeling · What is data modeling? The full guide · Feb 27, 2025](https://www.owox.com/blog/articles/what-is-data-modeling) — /blog/articles/what-is-data-modeling.md
- [All case studies →](https://www.owox.com/blog/success-stories) — /blog/success-stories.md
- [Pürblack · "For 10 years I was blind." The day Pürblack® founder stopped guessing · Seconds · to get…](https://www.owox.com/blog/success-stories/purblack) — /blog/success-stories/purblack.md
- [Reformation · How OWOX Reports Helped Reformation Make Data-Backed Decisions · Minutes · from data…](https://www.owox.com/blog/success-stories/reformation) — /blog/success-stories/reformation.md
- [WorkSimpli · How OWOX Reports Streamlined Operations for WorkSimpli, Saving Over 10 Hours Weekly ·…](https://www.owox.com/blog/success-stories/worksimpli) — /blog/success-stories/worksimpli.md
- [Get started free](https://www.owox.com/app-signup)
