Based on all those constraints & needs, we propose DBMXML, for DataBase Metadata eXtensible Mark-up Language.
What benefits can we expect of it?
Offer a vision of a database. Applying a simple XSL (eXtensible Stylesheet Language) filter will give you HTML, PDF or even Word reports of what your database looks like.
Comparing two versions of the database. Going from development to production? What impacts has the new development on my production database (yes, all this should be documented, but real life is often catching on us).
Keeping track of the evolution. What is the difference between my production, testing and development database?
Improve consistency. If your customers’ last name is 32 characters long in your ERP and only 10 characters on the web, you have a consistency problem which may result in data loss or alteration at some time.
Measure the impact of changes. If the result of the comparison of 2 version of your schema reflects that a field gets from 40 to 50 characters long has different consequences that adding a column that does not allow NULL values.
- For the CIO: have a permanent, consistent and historic vision of its databases.
- For the project manager: have a consistent way to discuss and share information about database structure to his developers.
- For the developer: Developers will be more cautious and aware about changes at the database level and will adapt the source code accordingly in a safer way.
- For the DBA: increased visibility of the database, ability to build and use more consistent scripts, tools, etc.
A variety of tools can be build on top of DBMXML: code generator, documentators, graphers, productivity scripts, administration tools…
Practical applications of such a language
XML2DDL or DdlUtils uses an XML dialect to create the DDL for creating or altering a database. Awoma proposed a framework, called ThinStructure, where it dynamically used an XML repository for building records, SQL statements, checking integrity…