At Tech Ed this summer, Microsoft talked about a new product that brings application lifecycle management to database development.
Application lifecycle management has been around for years allowing application developers to check code out from a central repository and enjoy the luxury of knowing that they are the only developer working on that particular section of the code.
Of course, they have also known that any errors they introduce into the code can, ultimately, be tracked back to them - but hey, no gain without pain.
We poor database developers on the other hand, have largely been ignored. True, there are some tools around - for Embarcadero's see here - but what we have lacked, particularly in the Microsoft world, is true source control for the language we use to build databases (that language is actually the Data Definition Language [DDL] component of SQL).
Enter Data Dude (DD), the new kid on the block. Actually, he's so new he's still in CTP (Community Technology Preview) which can be downloaded here.
DD's real name is "Visual Studio 2005 Team Edition for Database Professionals"; hence the widespread use of the nickname. DD was partially the brainchild of Ewan Garden and Gert Drapers, so it has parents with very respectable database backgrounds.
DD does all of the usual source code control stuff and just a little more. For a start, you can reverse engineer existing database schemas from both SQL Server 2000 and 2005. This is decomposed into SQL fragments, each of which describes a single object (table, view, index etc). These are all stored separately but are logically bound together by what is essentially an object model.
In fact, DD stores everything, as you might expect given its provenance, as rows in tables in a relational database. This means that all changes to the source code are tracked as transactions and can be rolled back if required.
The object model also ensures that DD can track the dependencies between the different components. So if you, for example, change a table name in the schema, DD can find every component that references that table and update the name throughout the entire code base if you so desire. Microsoft refers to this process as refactoring for databases (see Figure 1); it works for all the DDL code but not for procedural code written in other languages such as VB and C#.
DD can also do other tricks. Imagine that you import a schema from an existing database and modify it. Given that the original database is full of operational data, you don't want to blow it away and replace it with the new; instead, you want a "change schema", an SQL script that will modify the structure of the existing database into the new. DD can produce such "change schemas".
It also has the ability to generate relatively sophisticated sets of test data – from random to sets of data with particular characteristics (see figures two and three).
The seed values used to generate the data can be stored so that you can later generate exactly the same set of data.
The importance of Data Dude for the Microsoft database developer community is difficult to over-emphasise. If Microsoft gets the product right, and the early indications are very good, it will be a winner. ®