A data dictionary holds data about the fields in a database, such as field definitions, meanings and allowable values that reflect how data is used within a domain or organization. It provides a standard definition of data that can be shared across different stakeholder groups so that everyone is on the same page about what each data element means.
According to the BABOK Guide, the data dictionary can be regarded as a metadata repository used to manage data to be employed by software applications. It can be maintained using spreadsheets.
Composite data elements can be built using a combination of individual/primitive data elements, which can be used to indicate sequences and repetitions. For example, a sequence can be built for the composite data “Full name” by combining “Title + First Name + Middle Name + Last Name”. Optional elements may also be defined as part of the composite data definition. For example, “Middle name” can be defined as optional.
Other pertinent pieces of information that can be stored in a data dictionary include data type (text/integer, etc), source of data, applications that require the data, relationship(s) with other fields, default values, access restrictions, length/size of data, nullability, optionality, data validation rules, and so on.
Data dictionaries are useful for communicating with users based on a common vocabulary and definitions of shared data; sharing insights into data types and controls; and mapping data fields in one system to another. The information in the data dictionary is particularly useful to those who build applications that use the data.