Data Dictionary

A table of field, column, or variable definitions and related information. "Data about data". The fields may mirror database tables, screen fields, and/or report fields. Typical data dictionaries have attributes such as field name, field title, field type, maximum length, default value, and perhaps even event handlers.

Sometimes they are used merely to document parts of a system, other times they are actually processed or read by the system to generate CrudScreens. Most RDBMS have some form of basic built-in DataDictionary to define table columns.

Think about taking all the attributes of an HTML Input tag, and making a table out of those attributes. This could form the basis of a DataDictionary. Some people find that tablizing such information helps them see patterns that one could not see if the same information was in an Input tag. Plus, one can issue queries on such data to get different viewpoints for inspection and perhaps entry. (Example illustrations) [NoteAboutGeocities]

Typical fields or items found in a DataDictionary:

Event handlers can pass an associative array (dictionary) of certain stats and items of info that the handler may need. Perhaps the event handlers could be a separate table.

The DataDictionary are a step toward InformationOrientedSoftwareDevelopment?. They contain information to be used to organize something rather than a table or column for each of the things themselves. A number of different kinds of tables can be classified as an InformationOrientedTable. The next step toward InformationOrientation? is to add a rich metadata field to the list of fields above.

Note that "dictionary" here has *nothing* to do with the DictionaryDataStructure. Just a name coincidence. I would perhaps call them "field dictionaries" or "field tables" if given the choice, but the name is entrenched already.

This product claims to use data dictionaries and/or schemas to generate CrudScreens:

Way before days of GUI, OOP, SQL, SSADM, etc there were data dictionaries. Two prominent dinosaurs on the BigBlue were Data Catalog and Data Manager. They attempted to address the need of DataAdministration?, as well as Database and schema generation.

Are these in use anywhere these days? What are the most prominent product in use now?

I still use them in some custom biz apps. I've see it in commercial products, but I don't remember the vendor names.

They are also used for InformationOriented VerticalArchitecture?.

For corporate systems, the Corporate Data Dictionary is an under-used resource, always buried within sub-systems and not corporate at all. What would happen if the cdd were used as a Corporate Data Dictionary for the corporation? What form would the dictionary take?

It would probably be buried in training manuals that no one read or updated (unless turnover was extreme).
See Also: ControlTable, TableOrientedProgramming, CodeGenerationIsaDesignSmell, RelationalAlternativeToXml, MultiParadigmDatabase, QueryByExample, AttributeShufflingReduction, FormValidation
CategoryInformation, CategoryMetaprogramming
