Data & architecture

What is a data dictionary?

A finance analyst opens a table called cust_stat_flg and cannot determine its definition. She is unsure whether it indicates an active customer, a subscription status, or another metric. After consulting colleagues, she gets three conflicting explanations and selects one. When this situation repeats for each ambiguous column in a warehouse with hundreds of tables, the resulting dashboards become unreliable. As a result, the data team spends half of their work week responding to repetitive questions about field definitions. A data dictionary is employed to prevent this guesswork.

A data dictionary is a formal document that explains the meaning of each field, table, and dataset in your systems. It contains the definition, data type, source, and owner for each item, together with any applicable business rules.

The definitions of your data are kept in a single accessible location instead of residing in individual knowledge or past email conversations.

What actually goes into a data dictionary

A useful entry answers the questions users ask when they encounter an unfamiliar field. That includes the field or table name, a plain-language definition written for a human, the data type and format, the source system it originates from, and the owner, so a question receives a real answer rather than a guess.

Most entries also contain additional details like example values and any relevant business rules. For example, a status field might be limited to three specific codes. Entries also include sensitivity or classification tags to show whether the data can be shared freely or requires permission. This information is standard. It supplies the details a new analyst needs on their first day, documented so they do not have to consult multiple people to understand the data.

Take that cust_stat_flg field from earlier.

A completed entry could contain the following information: the definition, which is the current relationship status of a customer account; the type, which is a two-character string; the valid values, which are AC for active, DM for dormant, and CH for churned; and the owner, which is the customer data team. This four-line format provides all necessary information. The structure stays the same whether the field resides in a spreadsheet or a formal data catalogue tool.

Data dictionary versus data catalogue versus data model

People often use these three terms interchangeably, yet they are distinct.

A data model describes structure: tables, columns, keys, and how they relate to each other. A data dictionary describes meaning: what a given field actually represents in the business, in plain language, together with its owner and rules.

A data catalogue provides a broader inventory of datasets across an organisation, typically created automatically and equipped with search functionality. These often include usage statistics and data lineage. In practice, the distinctions between these tools are not always clear, because many modern catalogue tools incorporate a data dictionary component. However, when choosing among them: a data model focuses on structure, a data dictionary focuses on definitions, and a data catalogue focuses on locating and evaluating data on a large scale.

Why so many data dictionaries stop being used

The usual failure mode is simple.

A person creates a dictionary during a documentation workshop or sprint, publishes it as a spreadsheet or wiki page, and then stops working on it. Six months later, the system has three new fields and two existing fields have different meanings. The document remains unchanged and only describes the state of the project as of the day it was created.

The primary issue is ownership. When a dictionary lacks a designated owner for each domain, no one is responsible for identifying changes or inaccuracies. The content degrades until a user encounters an incorrect definition during an incident, which causes them to lose confidence in the entire document.

How to build one that functions in real conditions

Begin with a narrow focus. Select a single subject area, such as customer or order data, and document it thoroughly. Use this initial work as a template for subsequent domains. Attempting to document all areas at once often causes projects to stop before they generate useful results.

Assign one owner to each domain. This person is responsible for ensuring that definitions remain accurate. Place the dictionary in a location that employees already use. A separate wiki that is rarely accessed is less effective than dbt documentation, a data catalogue tool, or a shared spreadsheet for small teams. The utility of the dictionary depends on how often people consult it rather than how polished it looks.

Usage is as important as development. Announce the location of the dictionary and include links to it in onboarding materials. When someone asks for a field definition in Slack, respond with a link to the relevant entry. Users will begin to consult the dictionary independently when they find that doing so is faster than asking for help.

Where governance fits

A data dictionary is seldom effective as a standalone tool. It functions most efficiently when integrated with data quality rules, access controls, and lineage. This arrangement ensures that a definition, its corresponding enforcement rule, and the record of the data's origin all refer to the same object.

We build this into the wider architecture when we help clients put together a governed data foundation, so definitions, ownership, and lineage sit together from the start.

Data dictionaries inside a database or DBMS

All major database systems automatically maintain their own technical data dictionaries. System tables like INFORMATION_SCHEMA, or the catalogue views used in Oracle, SQL Server, and PostgreSQL, record details such as column names, data types, constraints, and indexes as soon as a table is created.

That information is useful, but it only describes structure. It does not explain what cust_stat_flg means to the business, which is why a business-facing data dictionary is still necessary in addition to the DBMS one; the two tools work together. One indicates that the column is a two-character string, while the other explains the meaning of the codes within it.

Keeping it alive

You can prevent stale documentation by using processes instead of individual effort. Link your dictionary updates to your schema change management. This ensures that new fields or modified meanings are not released until the definitions are updated in the same pull request or ticket.

Where you can, let tooling carry the technical half automatically, column names, types, and basic lineage, so people only have to write the parts that need judgement: what a field means, who owns it, and what counts as a valid value. A short quarterly review of the domains that change most often catches the rest.

Ownership must continue when employees leave. When a domain owner changes teams or leaves the company, reassigning their dictionary entries should be a standard part of the offboarding process. This prevents situations where definitions become outdated before anyone notices the ownership gap months later.

Common errors to avoid

Attempting to document every data asset before publishing any information causes most dictionary projects to fail. A dictionary that covers a single, well-maintained domain is more effective than an ambitious plan for the entire organisation that is never completed. Writing definitions in technical engineering language that only the data team understands is also harmful, as it prevents the project from achieving its goals.

It is common to treat the dictionary as a compliance requirement rather than a functional tool. A dictionary created only to satisfy an audit and then ignored is more harmful than having no dictionary at all. This is because staff will continue to rely on the information until they discover it is incorrect.

If you are currently addressing this issue instead of reading for general information, our data consultancy specialises in this area. We begin by demonstrating the capabilities of your existing data.

Pipeline documents should reference the dictionary for business definitions rather than repeat them. This requirement is defined in our template for pipeline runbooks and documentation.

Frequently asked questions

What is a data dictionary?

A data dictionary is a reference document or a live system that lists every field, table, and dataset in an organisation. It includes the definition, data type, source, and owner for each entry. This tool provides a single location for analysts, auditors, and other staff to verify the meaning of specific data instead of relying on its name.

What is the difference between a data catalogue and a data dictionary?

A data dictionary provides definitions for specific fields, including their data types and validation rules. A data catalogue is a more comprehensive inventory of datasets that helps users locate and evaluate data across an entire organisation. These catalogues are often created through automated processes. While the two concepts overlap and many current software tools perform both functions, the dictionary serves as the layer of definitions within the broader catalogue.

How do you create a data dictionary?

Begin with a single domain instead of attempting to document everything at once. List the fields and datasets within that domain, and then create clear definitions for each, including the name of the person responsible for maintaining it. Store this information in a location your team already uses-a data catalogue, dbt documentation, or a shared spreadsheet for smaller teams-and update it whenever the underlying data structure is modified.

What does a data dictionary look like inside a database or DBMS?

Most database systems automatically maintain a technical data dictionary. These system tables, such as INFORMATION_SCHEMA, record column names, data types, and constraints. While these tables document the structure of the database, they do not explain the business meaning of the data. You still need a separate business-facing data dictionary to describe what each field represents.

What should a data dictionary example include?

A typical entry lists the field or table name, a clear definition, data type, source system, the business owner, and any rules or valid values, like the permitted codes for a status field. Useful templates also include a sensitivity or classification column to indicate what information can be shared.

Want a straight view of where AI can help your business first? Talk to us and start with a clear picture instead of a vendor demo.

Start at your core.

Tell us where your data is today and what you want AI to do. We'll come back with a straight answer on what your foundation needs and where the quickest real win is.

Talk to us