Data dictionary
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." The term can have one of several closely related meanings pertaining to databases and database management systems (DBMS):
This video is targeted to blind users.
Attribution:
Article text available under CC-BY-SA
Creative Commons image source in video
Closed Caption:
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."
The term can have one of several closely related
meanings pertaining to databases and database
management systems:
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
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., data about data. 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 structure. With an active
data dictionary, the dictionary is updated
first and changes occur in the DBMS automatically
as a result.
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.
This typically includes the names and descriptions
of various tables and their contents 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, 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.
The data dictionary consists of record types
created in the database by systems generated
command files, tailored for each supported
back-end DBMS. Command files contain SQL Statements
for CREATE TABLE, CREATE UNIQUE INDEX, ALTER
TABLE, 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,
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 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.
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. For the ASP.NET environment, Base One's
data dictionary provides cross-DBMS facilities
for automated database creation, data validation,
performance enhancement, application security,
and extended data types. Visual DataFlex 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.
Platform-specific examples
Developers use a data description specification
to describe data attributes in file descriptions
that are external to the application program
that processes the data, in the context of
an IBM System i.
See also
Vocabulary OneSource
Metadata
Data modeling
ISO/IEC 11179
Metadata registry
Semantic spectrum
Data hierarchy
References
External links
Yourdon, Structured Analysis Wiki, Data Dictionaries
Video Length: 06:31
Uploaded By: Audiopedia
View Count: 5,195