Database Design – Alternate Names for Data Dictionary

database-design

What is the alternate name of Data Dictionary?
► Index
► Metadata
► Data
► System Catalog

What I know already is, data dictionaries store all the various schema and file specifications and their locations. They also contain information about which programs use which data and which users are interested in which reports. But what is the alternative name of data dictionary?

Best Answer

In his seminal paper A Relational Model for Large Shared Data Banks, Dr. E.F. Codd mentiones a system catalog. In his famous Twelve Rules he stipulates an (online) catalog.

Then, in his book entitled The Relational Model for Database Management, Version 2, he defines catalog and meta-data as follows:

The catalog is […] a relational database itself—one that is dynamic and active and that represents the meta-data. Meta-data consists of data that describes all of the data in the database, as well as the contents of the catalog itself.

In chapter 15 of the same book, he makes a distinction between the terms catalog and dictionary that I consider quite relevant regarding your question:

In the relational model, the catalog holds the database description. In some relational DBMS products this description is also called the catalog, while in others it is called the directory. Whatever it is called, it should be carefully distinguished from a dictionary, which normally includes all of the information found in the catalog, but also contains a large amount of information concerning the application programs that operate on a scheduled or non-scheduled basis upon various parts of the database.

Which confirms your description of a data dictionary.

After that, in the same book and chapter, he makes a comment that relates a catalog and a dictionary very closely:

[…] authorized users can easily extend the catalog so that it becomes a full-fledged, active, relational data dictionary, whenever the DBMS vendor fails to do so.

So, one can say that a data dictionary is an enhanced catalog.

In practice, of course, specific SQL platforms can use the same terms or establish their own names to refer to these elements. For instance, Oracle provides, precisely, a data dictionary that, according to this link from the online documentation, is…

[…] a read-only set of tables that provides information about the database.

A data dictionary contains:

  • The definitions of all schema objects in the database (tables, views, indexes, clusters, synonyms, sequences, procedures, functions, packages, triggers, and so on)
  • How much space has been allocated for, and is currently used by, the schema objects
  • Default values for columns
  • Integrity constraint information
  • The names of Oracle users
  • Privileges and roles each user has been granted
  • Auditing information, such as who has accessed or updated various schema objects
  • Other general database information

So, in this case, the data dictionary includes the catalogue.

Each alternative name will depend on the particular platform of choice.