You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by Apache Wiki <wi...@apache.org> on 2006/09/02 17:14:01 UTC

[Db-derby Wiki] Update of "DataDictionary" by BryanPendleton

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Db-derby Wiki" for change notification.

The following page has been changed by BryanPendleton:
http://wiki.apache.org/db-derby/DataDictionary

The comment on the change is:
Some high level info about DataDictionary

New page:
The {{{DataDictionary}}} provides an object-oriented API to the SystemTables.

The API to the DataDictionary lives in the {{{org.apache.derby.iapi.sql.dictionary}}} package.

Additional internal implementation classes for the DataDictionary are found in the {{{org.apache.derby.impl.sql.catalog}}} package.

Classes in the DataDictionary API tend to correspond closely to the SystemTables. These classes are called "Descriptor" classes. So, for example, there is {{{TableDescriptor}}} which provides the object-oriented API to a row in SYSTABLES.

Other major classes are {{{ColumnDescriptor}}}, {{{ViewDescriptor}}}, {{{ConstraintDescriptor}}}, {{{TriggerDescriptor}}}, etc.

Classes in the compile and execute portions of the LanguageSystem gain access to the {{{DataDictionary}}} via the {{{LanguageConnectionContext}}}, which in turn is accessed via the {{{ContextManager}}}.

Factory classes in the internal implementation are responsible for constructing Descriptor classes from the SystemTables. So, for example, {{{SYSTABLESRowFactory}}} knows how to make a {{{TableDescriptor}}} from a row in the {{{SYSTABLES}}} table.

An important (and complex) part of the {{{DataDictionary}}} implementation is DataDictionaryCaching.