> > I've always felt that the data dictionary was one of the good ideas of the
1980s that we've
> > lost. Perhaps it's another European idea that never really caught on in the
> > States.
It caught on in the US. A lot of projects for DEC computers used the VAX Common
Data Dictionary (CDD). It worked with several programming languages and DEC's
CODASYL and SQL database products.
>> Certainly, it was the advent of the RDBMS that caused its demise.
There were several contributing influences:
1. SQL stored procedures. The data dictionary gives you uniformity because data
definitions are shared across applications. However, the data dictionary doesn't
provide consistent application behavior. The COBOL programmer might code
different logic than the PL/I programmer, even if they're working from the same
data definition.
The stored procedure gives you uniformity plus consistency. The logic moves out
of the application into the database, where it is shared across applications.
There's only one version of the logic, typically at the other end of a network
wire. The parameters to invoke it are consistent for disparate programs. That
model of consistent behavior proved successful. It was a proof-of-concept for
subsequent forms of distributed computing, including web services.
2. Object-oriented programming. Developers started moving to C++ in the early
'90s and Java in the late 90s. They used inheritance and class libraries to
provide uniformity. Like a data dictionary, a class library ensures that
multiple programs use consistent data definitions. However, class libraries also
mean apps are sharing the same behavior.
3. Better modeling tools. These operate at an even higher level of abstraction
and they provide portability. You can define objects in a conceptual model and
use the model to generate application classes and/or DDL scripts for databases.
That was true in the 90s. Now you can also generate XML schemas.
If you get everyone working from the same conceptual model, you'll have the
uniformity that data dictionaries provided.
How does this map into XML?
There's a significant competitive advantage to any XML database product or
content management system that implements the stored procedure concept. The
database is more than a passive container for documents when it's also the
container for behavior. The container includes a uniform definition of the
document, a pre-compiled access plan, common rules, and objects for validating,
inserting, updating, or deleting the documents.