Join Adam Wilbert for an in-depth discussion in this video Understanding the goal, part of Learning Relational Databases (2014).
Every database design project, should start with a clear understanding of what the goals of the project are. The focus should be on what the database needs to do at a very high level, and not how the database needs to do it. To this end, we're going to start the design process with a well thought through mission statement. The mission statement will be the guidepost that we can always refer back to in order to make sure that the development process is proceeding on course. It can help prevent what's referred to as scope creep, where new features and enhancements continually get added to the project and the database never seems to get finished.
The mission statement is developed in conjunction with the initiator of the project. Typically, this is the person that gives the green light to proceed after the planning phase where the need for a new database was initially requested. This could be a member of the management team or the head of the organization. It should be as focused as possible when defining the goal, but not include any specific tasks. Here is an example of a mission statement that could use some work. The purpose of the database is to organize the data of the Two Trees Olive Oil Company. Statements like this are too vague to be useful in the development process, and really, you could say the same thing about every database ever developed.
Of course it's being built to organize data. Here's a version with a little more purpose. The Two Trees Olive Oil database will provide product details and inventory information to our sales team and customers, which will allow them to make informed purchasing decisions on our variety of products. This mission statement clearly outlines the goals of the project and gives us a direction to work towards. Once the mission statement is written and agreed to, it's time to get a little more specific. Here, we're looking to identify the mission objectives. Mission objectives are short sentences that support the overarching mission statement, and describes the tasks that will need to be performed.
These objectives will mostly come from the people on the ground, so to speak, the people on the front lines of the organization, and they identify what they need to be able to do to support the overall mission. Here's a couple of mission objectives that would support the mission statement we just wrote. Maintain information on our product selection. Keep a live inventory count on product availability. Provide order details to shipping warehouse. Provide customers with order invoices and tracking information. Keep customer billing information for repeat purchases. This is just a start of the objectives that we could come up with for the Two Trees Olive Oil company, and I'm sure that you could think of a lot more.
The point is that we want to capture as many specific objectives as possible, write them out very succinctly, and provide a record of them so they can be reviewed by the individuals the database is being developed for. So at this point, you should have a good idea as to why we're developing a database. Go ahead and grab your co-workers and a whiteboard, and write out a mission statement for your project. Then list out as many mission objectives as you can come up with to support the overall goal.
- What is a database management system (DBMS)?
- Moving through the database development cycle
- Preventing duplicate, inconsistent, and conflicting data entries
- Gathering requirements
- Developing relationships
- Identifying key fields
- Following a naming convention
- Developing the actual database