Glossary Entry

What is a Data Dictionary?

A data dictionary is technical documentation of each table and column in a database, with data types, constraints, and relations, unlike a business glossary.

Written by Alex Merced

What is a Data Dictionary?

A Data Dictionary is a technical reference designed to catalog and define the physical structure, constraints, and relationships of the tables and columns within a database or Data Lakehouse. It serves as a “Rosetta Stone” for data engineers, software developers, and database administrators navigating large, complex database architectures.

While a Business Glossary focuses on high-level human definitions (e.g., explaining the concept of “Gross Margin” to a CEO), a Data Dictionary is technical. It focuses on database mechanics rather than business concepts. Without a maintained Data Dictionary, knowledge about an enterprise database becomes “Tribal Knowledge,” where only the original engineer who built the database ten years ago understands what the cryptic CUST_IND_X2 column actually means.

The Anatomy of the Dictionary

A thorough Data Dictionary defines several structural parameters for each element in the data ecosystem.

Column-Level Specifications

For every column in a table, the dictionary records:

  • The Exact Name: e.g., customer_account_balance.
  • The Data Type: Is it a VARCHAR(50), an INT, or a DECIMAL(10,2)? This determines what values the column can hold and affects how much storage it consumes.
  • Constraints: Is the column allowed to be NULL? Is there a DEFAULT value if a pipeline drops a record?
  • Allowed Values (Enums): If the column is Order_Status, the dictionary lists the acceptable strings: ['Pending', 'Shipped', 'Delivered', 'Cancelled']. If a pipeline tries to write “Returned”, the dictionary shows it is an invalid record.

Table-Level Relationships

At the table level, the Data Dictionary maps the structure of the database.

  • Primary Keys: It defines which column (or columns) uniquely identifies each row.
  • Foreign Keys: It documents the links between tables. It shows that the user_id column in the Orders table maps to the id column in the Users table, so new data analysts understand how to write a SQL JOIN statement without guessing.

Active vs. Passive Dictionaries

Historically, Data Dictionaries were passive. A data engineer would spend weeks building a large Excel spreadsheet documenting the database. Soon after they finished, the spreadsheet became obsolete because a software engineer added a new column to the live database without telling anyone.

Modern data engineering utilizes Active Data Dictionaries. Integrated directly into the Enterprise Data Catalog (like Alation) or managed via “Data as Code” frameworks (like dbt), Active Dictionaries crawl the live Data Lakehouse metadata on a schedule. If a new column appears in the Apache Iceberg tables, the Active Dictionary detects it and flags the data engineering team to provide the documentation, keeping the dictionary in step with the physical infrastructure.

Summary of Technical Value

A Data Dictionary is foundational documentation for maintaining architectural integrity in a large data ecosystem. By defining the physical data types, null constraints, and relational mappings of the underlying infrastructure, it reduces risky assumptions, speeds up the onboarding of new technical staff, and provides the structural blueprint required to build reliable data pipelines.

Learn More

To learn more about the Data Lakehouse, read The Lakehouse Built for Everyone by Alex Merced. You can find this and other books by Alex Merced at books.alexmerced.com.

Work with Alex