Data dictionary

A data dictionary, or
- A document describing a database or collection of databases
- An integral DBMSthat is required to determine its structure
- A piece of middleware that extends or supplants the native data dictionary of a DBMS
Documentation
The terms data dictionary and data repository indicate a more general software utility than a catalogue. A catalogue is closely coupled with the DBMS software. It provides the information stored in it to the user and the DBA, but it is mainly accessed by the various software modules of the DBMS itself, such as DDL and DML compilers, the query optimiser, the transaction processor, report generators, and the constraint enforcer. On the other hand, a data dictionary is a data structure that stores metadata, i.e., (structured) data about information. The software package for a stand-alone data dictionary or data repository may interact with the software modules of the DBMS, but it is mainly used by the designers, users and administrators of a computer system for information resource management. These systems maintain information on system hardware and software configuration, documentation, application and users as well as other information relevant to system administration.[2]
If a data dictionary system is used only by the designers, users, and administrators and not by the DBMS Software, it is called a passive data dictionary. Otherwise, it is called an active data dictionary or data dictionary. When a passive data dictionary is updated, it is done so manually and independently from any changes to a DBMS (database) structure. With an active data dictionary, the dictionary is updated first and changes occur in the DBMS automatically as a result.
Database
In an active data dictionary constraints may be placed upon the underlying data. For instance, a range may be imposed on the value of numeric data in a data element (field), or a record in a table may be forced to participate in a set relationship with another record-type. Additionally, a distributed DBMS may have certain location specifics described within its active data dictionary (e.g. where tables are physically located).
The data dictionary consists of record types (tables) created in the database by systems generated command files, tailored for each supported back-end DBMS. Oracle has a list of specific views for the "sys" user. This allows users to look up the exact information that is needed. Command files contain SQL Statements for CREATE TABLE
, CREATE UNIQUE INDEX
, ALTER TABLE
(for referential integrity), etc., using the specific statement required by that type of database.
There is no universal standard as to the level of detail in such a document.
Middleware
In the construction of database applications, it can be useful to introduce an additional layer of data dictionary software, i.e.
Some industries use generalized data dictionaries as technical standards to ensure interoperability between systems. The real estate industry, for example, abides by a RESO's Data Dictionary to which the National Association of REALTORS mandates[10] its MLSs comply with through its policy handbook.[11] This intermediate mapping layer for MLSs' native databases is supported by software companies which provide API services to MLS organizations.
Platform-specific examples
Developers use a
Typical attributes
Here is a non-exhaustive list of typical items found in a data dictionary for columns or fields:
- Entity or form name or their ID (EntityID or FormID). The group this field belongs to.
- Field name, such as RDBMSfield name
- Displayed field title. May default to field name if blank.
- Field type (string, integer, date, etc.)
- Measures such as min and max values, display width, or number of decimal places. Different field types may interpret this differently. An alternative is to have different attributes depending on field type.
- Field display order or tab order
- Coordinates on screen (if a positional or grid-based UI)
- Default value
- Prompt type, such as drop-down list, combo-box, check-boxes, range, etc.
- Is-required (Boolean) - If 'true', the value can not be blank, null, or only white-spaces
- Is-read-only (Boolean)
- Reference table name, if a foreign key. Can be used for validation or selection lists.
- Various event handlers or references to. Example: "on-click", "on-validate", etc. See event-driven programming.
- Format code, such as a regular expression or COBOL-style "PIC" statements
- Description or synopsis
- Database index characteristics or specification
See also
- Data hierarchy
- Data modeling
- Database catalog
- Database schema
- ISO/IEC 11179
- Metadata registry
- Semantic spectrum
- Vocabulary OneSource
- Metadata repository
References
- ^ ACM, IBM Dictionary of Computing, 10th edition, 1993
- ^ Ramez Elmasri, Shamkant B. Navathe: Fundamentals of Database Systems, 3rd. ed. sect. 17.5, p. 582
- ^ TechTarget, SearchSOA, What is a data dictionary? Archived 12 February 2009 at the Wayback Machine
- ^ U.S. Patent 4774661, Database management system with active data dictionary, 19 November 1985, AT&T
- ^ U.S. Patent 4769772, Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases, 28 February 1985, Honeywell Bull
- ^ PHPLens, ADOdb Data Dictionary Library for PHP Archived 7 November 2007 at the Wayback Machine
- ^ RADICORE, What is a Data Dictionary?
- ^ Base One International Corp., Base One Data Dictionary
- ^ VISUAL DATAFLEX,features Archived 5 April 2018 at the Wayback Machine
- ^ "Real Estate Transaction Standards (RETS) Web API". nar.realtor. 23 January 2015. Retrieved 11 October 2020.
- ^ "Handbook on Multiple Listing Policy". nar.realtor. January 2015. Retrieved 11 October 2020.
- ^ "DDS documentation for IBM System i V5R3".
- ^ "Oracle Concepts - Data Dictionary". dba-oracle.com. Retrieved 13 February 2017.
External links
- Yourdon, Structured Analysis Wiki, Data Dictionaries (Web archive)
- Octopai, Data Dictionary vs. Business Glossary