A data dictionary, or
metadata repository, 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". ''
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The word ...
'' defines it as a collection of tables with metadata. The term can have one of several closely related meanings pertaining to
database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases ...
s and
database management system
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases ...
s (DBMS):
* A
document
A document is a written, drawn, presented, or memorialized representation of thought, often the manifestation of non-fictional, as well as fictional, content. The word originates from the Latin ''Documentum'', which denotes a "teaching" o ...
describing a database or collection of databases
* An integral
component
Circuit Component may refer to:
•Are devices that perform functions when they are connected in a circuit.
In engineering, science, and technology Generic systems
* System components, an entity with discrete structure, such as an assem ...
of a
DBMS
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases ...
that is required to determine its structure
* A piece of
middleware
Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to implement ...
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
Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including:
* Descriptive metadata – the descriptive ...
, 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.
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
users
Ancient Egyptian roles
* User (ancient Egyptian official), an ancient Egyptian nomarch (governor) of the Eighth Dynasty
* Useramen, an ancient Egyptian vizier also called "User"
Other uses
* User (computing), a person (or software) using an ...
and
application
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
developers can benefit from an authoritative data dictionary document that catalogs the organization, contents, and conventions of one or more databases. This typically includes the names and descriptions of various
tables (records or Entities) and their contents (
fields) plus additional details, like the
type and length of each
data element. Another important piece of information that a data dictionary can provide is the relationship between Tables. This is sometimes referred to in Entity-Relationship diagrams, or if using Set descriptors, identifying which Sets database Tables participate in.
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.
middleware
Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to implement ...
, 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. Extensions to the data dictionary also can assist in
query optimization against
distributed databases. Additionally, DBA functions are often automated using restructuring tools that are tightly coupled to an active data dictionary.
Software framework
In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard ...
s aimed at
rapid application development
Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
sometimes include high-level data dictionary facilities, which can substantially reduce the amount of programming required to build
menus,
forms
Form is the shape, visual appearance, or configuration of an object. In a wider sense, the form is the way something happens.
Form also refers to:
*Form (document), a document (printed or electronic) with spaces in which to write or enter data
* ...
, 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 A foreign key is a set of attributes in a table that refers to the primary key of another table. The foreign key links these two tables. Another way to put it: In the context of relational databases, a foreign key is a set of attributes subject to ...
constraints
portably for multiple databases. Another PHP-based data dictionary, part of the RADICORE toolkit, automatically generates program
objects
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ai ...
,
scripts
Script may refer to:
Writing systems
* Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire
* Script (styles of handwriting)
** Script typeface, a typeface with characteristics of handw ...
, and SQL code for menus and forms with
data validation and complex
joins. 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
Application security (short AppSec) includes all tasks that introduce a secure software development life cycle to development teams. Its final goal is to improve security practices and, through that, to find, fix and preferably prevent security ...
, and extended
data type
In computer science and computer programming, a data type (or simply type) is a set of possible values and a set of allowed operations on it. A data type tells the compiler or interpreter how the programmer intends to use the data. Most progra ...
s.
Visual DataFlex
DataFlex is an object-oriented high-level programming language and a fourth generation visual tool 4GL for developing Windows, web and mobile software applications on one framework-based platform. It was introduced and developed by ''Data Access C ...
features provides the ability to use DataDictionaries as class files to form middle layer between the user interface and the underlying database. The intent is to create standardized rules to maintain data integrity and enforce business rules throughout one or more related applications.
Some industries use generalized data dictionaries as technical standards to ensure interoperability between systems. The real estate industry, for example, abides by
RESO's Data Dictionaryto which the
National Association of REALTORS mandates its
MLSs Mixed liquor suspended solids (MLSS) is the concentration of suspended solids, in an aeration tank during the activated sludge process, which occurs during the treatment of waste water. The units MLSS is primarily measured in milligram per litre ( ...
comply with through its policy handbook. 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 ''data description specification'' (''DDS'') to describe data attributes in file descriptions that are external to the application program that processes the data, in the context of an
IBM i. The ''sys.ts$'' table in Oracle stores information about every table in the database. It is part of the data dictionary that is created when the
Oracle Database is created.
Developers may also use DDS context from FOSS for structured and transactional queries in open environments.
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
RDBMS field name
* Displayed field title. May default to field name if blank.
* Field
type (string, integer, date, etc.)
* Dimension(s) 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't 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
In computer programming, event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or message passing from other programs or thr ...
.
* Format code, such as a
regular expression
A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" or ...
or COBOL-style "PIC" statements
* Description or synopsis
*
Database index
A database index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure. Indexes are used to quickly locate data without ...
characteristics or specification
See also
*
Data hierarchy Data hierarchy refers to the systematic organization of data, often in a hierarchical form. Data organization involves characters, fields, records, files and so on. This concept is a starting point when trying to see what makes up data and whether d ...
*
Data modeling
*
Database schema
The database schema is the structure of a database described in a formal language supported by the database management system (DBMS). The term "schema" refers to the organization of data as a blueprint of how the database is constructed (divide ...
*
ISO/IEC 11179
The ISO/IEC 11179 Metadata Registry (MDR) standard is an international ISO/IEC standard for representing metadata for an organization in a metadata registry. It documents the standardization and registration of metadata to make data understandabl ...
*
Metadata registry
A metadata registry is a central location in an organization where metadata definitions are stored and maintained in a controlled method.
A metadata repository is the database where metadata is stored. The registry also adds relationships with r ...
*
Semantic spectrum
The semantic spectrum (sometimes referred to as the ontology spectrum or the smart data continuum or semantic precision) is a series of increasingly precise or rather semantically expressive definitions for data elements in knowledge representat ...
*
Vocabulary OneSource OneSource is an evolving data analysis tool used internally by the Air Combat Command (ACC) Vocabulary Services Team, and made available to general data management community. It is used by the greater US Department of Defense (DoD) and NATO communi ...
*
Metadata repository
A metadata repository is a database created to store metadata. Metadata is information about the structures that contain the actual data. Metadata is often said to be "data about data", but this is misleading. Data profiles are an example of actua ...
References
External links
*Yourdon, ''Structured Analysis Wiki''
Data Dictionaries (Web archive)*Octopai
Data Dictionary vs. Business Glossary
{{DEFAULTSORT:Data Dictionary
Data management
Data modeling
Knowledge representation
Metadata