You are on page 1of 3

Talkin Tech

The Database Development Lifecycle

Ken McDuff, 2008

Database development is a subset of software engineering, the process of developing and maintaining software. There have been numerous attempts to subdivide the software development process into a series of manageable phases through functional decomposition, and these steps are known as the software development life cycle (SDLC). Royce (1970) rst proposed what has become known as the waterfall methodology (see Figure 1). While the

approach outlined in his paper has often been oversimplied and many have ignored that he was, in fact, arguing for an iterative approach, the waterfall methodology has served as the basis for many development efforts and subsequent development life cycle models. Other approaches include incremental methodology, which performs the waterfall in overlapping sections, a spiral model that extends the waterfall model by introducing prototyping, and agile software development, which represents several development methods that emphasize communication between project members (Boehm, 1988; Hurst, 2007; Larman & Basili, 2003). The subset of SDLC that applies to database development shares the same sort of developmental phases, although there is some variance in identifying the database development life cycle (DDLC) phases. Five main phases are often named: requirements, design, implementation, verication, and maintenance. I will adopt the more detailed

Figure 1. Royces Waterfall Approach to Software Development (1970).

stages presented by Connolly and Begg (2005). The DDLC includes all development activities from the time a development project starts to the time that the database is no longer used, and it includes the following phases: database planning, system denition, requirements collection and analysis, database design (and DBMS selection), application design, (prototyping), implementation, data conversion and loading, testing, and operational maintenance (see Figure 6). While these phases are often

presented using a waterfall methodology, most practitioners reject the notion that each phase can be completed before moving on to the next phase; iterations are the norm. A brief description of each of the phases follows. Database Planning. Planning starts by clarifying the overall goals of the organization and determining how existing or proposed information systems helps meet them. Analysis in this phase includes gathering data on existing systems and determining general requirements for new systems from the perspective of an overall IS strategy. System Denition. During this phase, the scope and boundaries of the database are considered in reference to the views of the various users (akin to the ANSI/SPARC External Level). Requirements Collection & Analysis. After determining organizational goals and user views, more detailed information must be collected regarding such issues as the kind of database needed, the volume of data transactions, the number of users who will access the system simultaneously, performance requirements, and expected growth of the database. Constraints need to be identied and design objectives, standards, and conventions determined. Database Design. Creating a database

Figure 6. The stages of the database development life cycle Note. Based on Connolly and Begg, Figure 9.1, p. 284.

design that will support the needs of the organization and satises all requirements established in the previous phase will include

The Database Development Lifecycle







regarding the usability of the database and related applications. Operational Maintenance. After installation, database administrators perform on-going administrative tasks like database back up, performance tuning, design modications, access management, usage monitoring, hardware maintenance, and upgrading of DBMS software. This nal phase reminds us that the database is never a nished product. Iterations of each phase will need to occur to address design aws, new business initiatives, company growth, and new data requirements.

conceptual, logical, and physical levels (refer to Question 1). Related to database design is the selection of an appropriate DBMS to support the database system, considering cost, features and tools, customer support and training, hardware requirements, and portability. Application Design. This phase deals with development of application programs to provide a user interface that is more elegant and user-friendly than SQL coding. Prototyping. This phase is optional and allows clarication of user needs by providing a working model that lacks the functionality of the nal system but permits feedback on the database design prior to full implementation. Implementation. In this phase, the database and application designs are put into place, utilizing DDL (or applications to execute hidden DDL statements) to create the database structure as well as security and integrity controls. Data Conversion & Loading. After creating the database, data stored in a different system must be converted and migrated to the new database. Testing. The testing phase involves identifying and correcting any errors. Tuning for performance, integrity, concurrent access, and security constraints are a signicant part of this process, along with surveying users

Boehm, Barry W. (1988, May). A spiral model of software development and enhancement [PDF]. Computer 21(5), 61-72. URL http:// Connolly, Thomas, & Begg, Carolyn (2005). Database Systems: A Practical Approach to Design, Implementation, and Management (4th Edition). Addison Wesley. Larman, Craig, & Basili, Victor R. (2003, June). Iterative and incremental development: a brief history [PDF]. Computer 36 (6) , 47-56. URL r6047.pdf. Royce, Winston W. (1970, August). Managing the development of large software systems. IEEE WESCON. URL spring2003/cmsc838p/Process/waterfall.pdf.

The Database Development Lifecycle