Data dictionary

From Wikipedia, the free encyclopedia

A data dictionary, 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."[1] The term may 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

Contents

[edit] Data dictionary documentation

Database users and application developers can benefit from an authoritative data dictionary document that catalogs the organization, contents, and conventions of one or more databases.[2] This typically includes the names and descriptions of various tables and fields in each database, plus additional details, like the type and length of each data element. There is no universal standard as to the level of detail in such a document, but it is primarily a distillation of metadata about database structure, not the data itself. A data dictionary document also may include further information describing how data elements are encoded. One of the advantages of well-designed data dictionary documentation is that it helps to establish consistency throughout a complex database, or across a large collection of federated databases.[3]

[edit] The data dictionary component of a DBMS

Every database management system has integral software for accessing the metadata that describe a database's structure.[4] This collection of metadata and functions, the DBMS data dictionary, is needed to support symbolic query and data manipulation languages, such as SQL. In addition to using the DBMS data dictionary implicitly to process database requests, each DBMS provides explicit interfaces for passive data dictionary access, enabling programmers to generate data dictionary documentation through automated reports derived from the database. Modifications to the database structure, which are reflected as changes in the data dictionary, generally require the actions of a privileged database administrator.

The DBMS data dictionary contains information that the DBMS requires to perform its functions and support its particular implementation, which varies considerably from one product to another.[5] The programmable interfaces to data dictionaries of different DBMS products vary, because many aspects of metadata are implementation-dependent, and standards for data dictionary functions are a relatively recent development. For example, MySQL version 5.0 added support of features based on the new SQL 2003 Information and Definition Schemas extensions.[6] On the other hand, Oracle's extensive data dictionary facilities originated long before the SQL 2003 standards were defined.[7] Items typically found in a DBMS data dictionary include:

[edit] Data dictionary middleware

In the construction of database applications, it can be useful to introduce an additional layer of data dictionary software, i.e. middleware, which communicates with the underlying DBMS data dictionary. Such a "high-level" data dictionary may offer additional features and a degree of flexibility that goes beyond the limitations of the native "low-level" data dictionary, whose primary purpose is to support the basic functions of the DBMS, not the requirements of a typical application. For example, a high-level data dictionary can provide alternative entity-relationship models tailored to suit different applications that share a common database.[8] Extensions to the data dictionary also can assist in query optimization against distributed databases.[9]

Software frameworks aimed at rapid application development sometimes include high-level data dictionary facilities, which can substantially reduce the amount of programming required to build menus, forms, reports, and other components of a database application, including the database itself. For example, PHPLens includes a PHP class library to automate the creation of tables, indexes, and foreign key constraints portably for multiple databases.[10] Another PHP-based data dictionary, part of the RADICORE toolkit, automatically generates program objects, scripts, and SQL code for menus and forms with data validation and complex JOINs.[11] For the ASP.NET environment, Base One's data dictionary provides cross-DBMS facilities for automated database creation, data validation, performance enhancement (caching and index utilization), application security, and extended data types.[12]

[edit] See also

[edit] References

  1. ^ ACM, IBM Dictionary of Computing, 10th edition, 1993
  2. ^ TechTarget, SearchSOA, What is a data dictionary?
  3. ^ AHIMA Practice Brief, Guidelines for Developing a Data Dictionary, Journal of AHIMA 77, no.2 (February 2006): 64A-D.
  4. ^ Webopedia, What is a data dictionary?
  5. ^ Troels Arvin, Comparison of different SQL implementations, Command line operations / metadata
  6. ^ MySQL AB, MySQL 5.0 New Features: Data Dictionary
  7. ^ Oracle Corp., Oracle Database Concepts, 10g Release 2 (10.2), 7, The Data Dictionary
  8. ^ U.S. Patent 4774661, Database management system with active data dictionary, 11/19/1985, AT&T
  9. ^ U.S. Patent 4769772, Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases, 02/28/1985, Honeywell Bull
  10. ^ PHPLens, ADOdb Data Dictionary Library for PHP
  11. ^ RADICORE, What is a Data Dictionary?
  12. ^ Base One International Corp., Base One Data Dictionary

[edit] External links