A data dictionary is a collection of database metadata, which is data about data. One kind of data dictionary is a human view of entities, attributes, and relationships, called a designer's data dictionary. There is usually a data dictionary that is internal to the DBMS, called a system catalog, which contains additional system-generated metadata. A designer's data dictionary can be derived from the system catalog, and the terms “data dictionary” and “system catalog” are often used interchangeably.
The purpose of a data dictionary is to make sure that all of the people who design and implement the database are on the same page in light of the entities, attributes, and relationships.
A data dictionary is sometimes called a database designer's database because it defines choices made in light of database design of entities and their characteristics.
A data dictionary, or metadata repository, as defined in the IBM Dictionary of Computing, is a "centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format". Oracle defines it as a collection of tables with metadata. The term can have one of several closely related meanings pertaining to databases and database management systems (DBMS):
- A document describing a database or collection of databases
- An integral component of a DBMS that is required to determine its structure
- A piece of middleware that extends or supplants the native data dictionary of a DBMS