Design reviews are an important facet of the system development lifecycle for database applications. It is during the design review that all aspects of the database and application code are reviewed for efficiency, effectiveness, and accuracy. It is imperative that all database applications, regardless of their size, are reviewed to assure that the application was design properly, efficient coding techniques were used, and the database is accessed and modified correctly and efficiently. The design review is an important process for checking the validity of design decisions and correcting errors before applications and databases are promoted to production status.
Multiple design reviews should be conducted over the course of an application's life. There are seven basic design review phases for a database application:
- Conceptual Design Review - to validate the concept of the data and proposed application;
- Logical Design Review - a thorough review of all data elements, descriptions, and relationships, as well as comparison to and possibly remediation ofthe corporate data model;
- Physical Design Review - the database is reviewed in detail to ensure that all of the proper database parameter settings and other physical design choices were made, that a proper translation from logical model to physical database was made and that all denormalization decisions were formally documented;
- Organizational Design Review - to examine the impact of the new application/database upon the organization from a business and technological perspective
- SQL and Application Code Review - a rigorous statement-by-statement review of every SQL statement in the application with an eye toward accuracy and performance;
- Pre-Implementation Design Review - an overall appraisal of the system components prior to implementation;
- Post-Implementation Design Review - formally review the application and database once it has run in production for awhile to determine if the application is meeting its objectives.
For database applications, the DBA must participate in every design review, at every stage. It is imperative that the application be reviewed before, during, and after implementation. Design reviews are critical for ensuring that an application is properly designed to achieve its purpose.
There are many aspects of the development process and its resulting application that are addressed by design reviews. The underlying intent of imposing the design review process on an application is to expose it to a thorough review of every underlying component, structure and nuance of the application. Some of the areas that can be addressed by a design review include:
- A validation of the intent and purpose of the application
- An assessment of the logical data model
- An assessment of the physical data model
- A review and analysis of the physical DBMS parameters
- A prediction of SQL performance
- A judgment on the practicality of the programming language techniques deployed
- An analysis of overall performance after production implementation
A group consisting of subject matter experts and the developer's peers and co-workers should conduct each design review. The DBA usually must act as the focal point for organizing and conducting design reviews. Frankly, if the DBA does not organize design reviews it is unlikely that any design review will be conducted. And if design reviews are not conducted, the application is more apt to suffer performance and availability problems in a production environment.
Formal design review roles should include the leader, the scribe, the mediator, and the participants. The leader can change from one design review to the next, but within the scope of a single design review a single leader must be assigned. The primary role of the leader is to act as a master of ceremonies to keep the review process moving along. Other duties include creating an agenda and ensuring that the agenda is followed, engaging all participants of the design review to solicit everyone's input, ensuring that all participants maintain proper decorum, working with the proper participants before the meeting to ensure that all required documentation will be made available for the design review, and any other tasks necessary to ensure a successful design review. Though it is not mandatory, the DBA typically acts as the leader of design reviews for applications using a database.
By establishing and following a systematic approach to database application design reviews, the likelihood of implementing optimal applications increases. Database development can be very complex. Only by managing and documenting the implementation process can you ensure the creation of successful and useful database applications and systems. The design review process is an efficient way to encourage a rigorous and systematic pre and post-implementation review of database applications.