A metadata (also called the data dictionary) is the data about the data. It is the self describing nature of the database that provides program-data independence. It is also called as the System Catalog. It holds the following information about each data element in the databases.
The data dictionary contains the bookkeeping information about the database so that it can manage the data. It does not contain the information of the actual data of the database. Without the presence of a data dictionary, a database management system cannot access the data from the database. Database administrators handle the data dictionary, and users don’t interact with it.
The data dictionary contains the following information:
• It contains the names of all the tables and schemas present in the database.
• It contains the details about the tables which are present in the database like when the tables were created, owner information about the tables, etc.
• It contains the information about the constraints of the tables like primary key attribute.
• It also contains the information about the views of the database.
• It also contains the physical information of the table like about their storage, about their alteration, etc.
Data dictionary is used to actually control the database operation, data integrity and accuracy. Metadata is used by developers to develop the programs, queries, controls and procedures to manage and manipulate the data. Metadata is available to database administrators (DBAs), designers and authorized user as on-line system documentation. This improves the control of database administrators (DBAs) over the information system and the user's understanding and use of the system.
Types of a data Dictionary
The data dictionary is of two types: active and passive.
Active and Passive Data Dictionaries
Data dictionary may be either active or passive. An active data dictionary (also called integrated data dictionary) is managed automatically by the database management software. Consistent with the current structure and definition of the database. Most of the relational database management systems contain active data dictionaries that can be derived from their system catalog.
When any alteration is done in the database by the database management system, then the data dictionary also gets updated. It is known as the active data dictionary. You can also say that if the structure of the database or any other thing get altered, then data dictionary of that database also get changed. It is the task of the database management system.
The passive data dictionary (also called non-integrated data dictionary) is the one used only for documentation purposes. Data about fields, files, people and so on, in the data processing environment are. Entered into the dictionary and cross-referenced. Passive dictionary is simply a self-contained application. It is managed by the users of the system and is modified whenever the structure of the database is changed. Since this modification must be performed manually by the user, it is possible that the data dictionary will not be current with the current structure of the database. However, the passive data dictionaries may be maintained as a separate database. Thus, it allows developers to remain independent from using a particular relational database management system. It may be extended to contain information about organizational data that is not computerized.
In passive data dictionary, the contents of the dictionary do not get automatically updated, every time the changes are made in the database by the database management system. So, we have to update it manually from time to time. It is maintained separately to the database. The handling of the passive data dictionary is not as easy as the active data dictionary. We have to maintain it carefully so that the sync between the data dictionary and database does not break.
Importance of Data Dictionary
Data dictionary is essential in DBMS because of the following reasons:
• Data dictionary provides the name of a data element, its description and data structure in which it may be found.
• Data dictionary provides great assistance in producing a report of where a data element is used in all programs that mention it.
• It is also possible to search for a data name, given keywords that describe the name. For example, one might want to determine the name of a variable that stands for net pay. Entering keywords would produce a list of possible identifiers and their definitions. Using keywords one can search the dictionary to locate the proper identifier to use in a program.
These days, commercial data dictionary packages are available to facilitate entry, editing and to use the data elements.
Functions of the data dictionary
Its function is as follows:
• It defines the data objects of each user in the database. As we know, we cannot remember all the tables, views, constraints, etc., so the user can easily search them when any Data Definition Language (DDL) fired, then the database searches for the data dictionary. The DBMS software updates the object.
• It gives us the report about the data and the resources which the objects are using.
• It allows seeing the tables and views to those users who have the proper rights to access the database. Thus, it controls the access of the database.
Advantages of the data dictionary
• The data dictionary used so that we can remove the duplicacy in the data definition.
• As it provides documentation. So it is a valuable reference for any organization.
• It helps the analysts in simplifying the structure so that it can meet the requirement of the data of the system.
• It helps in improving the communication between the user and the system analyst.
• Maximum of the database management system contains the data dictionary as a standard feature.
• Through this, new database administrators can easily understand the database of the system.
• The database administrator can easily track any problem in the database.
Disadvantages of the data dictionary
• The data dictionary does not provide functional details.
• It seems to be costly.
• Technical users easily understand it. Non-technical users cannot handle it.
• It should be well designed in such a way so that we can take advantage of it.
• The creation of a new data dictionary is a difficult task. It takes many years to create.