From a general information technology technical perspective, a data dictionary is a set of metadata which contains the definition and representation of data elements. From the perspective of a database management system, a data dictionary is a set of table and views which can only be read and never altered.
When implementing a data warehouse which is management by a relational database management system, it is a requirement to have a data dictionary. The benefit of having a data dictionary is that data items will always be consistent wherever tables within the database enterprise they may be stored. For instance, several telephone numbers may be stored in different tables in different locations.
It is a known fact there telephone numbers are being written down in different ways by different people. With a data dictionary, the format of the telephone number within the whole organization will always be the same, and hence consistency is maintained.
Most data dictionaries contain different information about the data used in the enterprise. In terms of the database representation of the data, the data table defines all schema objects including views, tables, clusters, indexes, sequences, synonyms, procedures, packages, functions, triggers and many more. This will ensure that all these things follow one standard defined in the dictionary. The data dictionary also defines how much space has been allocated for and / or currently in used by all the schema objects.
Other information defined in a typical data dictionary which is related to database implementation also include default values for database columns, names of the database users, the users privileges and limitations, database integrity constraint information, and many other general information.
A data dictionary is in fact a database implementation as well as they contain data information about data. It is typically structured in tables and views just like other data in a database. Most data dictionaries are central to a database and are very important tool for kinds of users from the data consumers to application designers to database developers and administrators.
A data dictionary is used when finding information about users, objects, schema and storage structures. Every time a data definition language (DDL) statement is issued, the data dictionary becomes modified.
Organizations that are trying to develop an enterprise wide data dictionary need to have representational definition for data elements and semantics. Semantics refer to the aspects of meaning expressed in language. In the same manner, an enterprise wide data dictionary semantics component focuses on creating a precise meaning of the data elements. Representational definition, on the other hand, defines the way that data elements are being stored in the computer such as data types including string, integers, floats, double or data formats.
Glossaries are similar to data dictionaries except that glossaries are less precise and contain only terms and definitions not very detailed representations of data structures. Data dictionaries may initially start with a simple collection of data columns and definitions of the meanings of the columns content and may start to grow at a high rate.
Data dictionaries should not be confused with data models because the latter usually include more complex relationships between elements of data.
When discrete logic is added to definitions of data elements, a date dictionary could evolve into full ontology.