Most DBAs understand the value of having a data model. A data model is a visual representation of a database that contains, among other things, artifacts that represent tables, columns, and relationships. The more sophisticated the modeling software, the more things you can model: database file storage, file structures, views, functions, stored procedures, application modules and object classes, requirements, UML diagrams, data and process flows, XML models, and reports.

There are good business reasons for modeling your database. Performance is one of the top reasons. Good database design is crucial for good performance. No amount of indexing, clever programming, or beefed-up hardware can compensate for a poor design. Model first, get the database design right, and you're on your way to a database that performs well.

Another practical reason for modeling is that it's easier to understand what kind of data your database contains by looking at a visual representation than by review ing the data definition language (DDL) code's CREATE, ALTER, and DROP statements. A visual model makes life better for everyone on the IT team and for many people in other departments—a win-win situation.

An accurate, up-to-date data model is an inventory of the kind of data your company has in storage and an indication of how the company is using it. This inventory is extremely valuable when you're trying to prove compliance with any of the new standards that we're all trying to live with—HIPAA for health care, SAS-70 for accountancy, Basel II for finances, PCI for the payment card industry, and Sarbanes-Oxley for the rest of us.

Finally, a model facilitates and streamlines modifications to the database that need to happen over time. Data modeling software gives you a point-and-click, drag-and-drop interface to work with. Once you're done making changes, you can script a text file of the DDL to document the changes.