Objectives of Good Relational Database Design:
There are many distinct objectives that you must achieve
in order to design a good, sound, structured database. You can avoid
many of the problems you may encounter by keeping the following objectives
in mind and constantly focus on these whilst designing your database.
- The database supports both required and ad hoc (unplanned)
information retrieval. The database must be designed to store
the data necessary to support information requirements defined during
the design process and any possible ad hoc queries that may be posed
by the users.
- The tables are constructed properly and efficiently.
Each table in the database must represent a single subject only
and should be composed of relatively distinct fields which keep
redundant data to an absolute minimum and should be identified throughout
the database by a field with unique values.
- Data integrity is imposed at the field, table and relationship
levels. These levels of integrity help guarantee that the data
structures and their values will be valid and as accurate as possible
at all times.
- The database should support business rules relevant to the
organization it is designed for. The data must provide accurate
information that is always meaningful to the business.
- The database should lend itself to future growth and development.
The database structure should be easily modifiable and expendable
as the information requirements of the business continue to change
and grow.
You may find it difficult at times to fulfill all of these objectives,
but you'll certainly be pleased with your final database design structure
once you've met them.
Benefits of Good Database Design:
The time that you invest in designing a sound, well structured database
is time well spent. Good database design saves you
time in the long run because you do not have to spend time constantly
revamping a quickly and poorly designed structure. You gain the following
benefits when you apply good design techniques:
- The database structure is easy to modify and maintain.
Modifications you make to a table or field will not adversely affect
other tables or fields in the database.
- The data is easy to modify. Changes that you make to
the value of a given field will not adversely affect the values
of other fields within the table. Furthermore, a well-designed database
keeps duplicate fields to an absolute minimum, so you typically
modify a particular data value in one field only.
- Information is easy to retrieve. You should be able to
create queries easily due to well constructed tables and the relationships
between them are correctly established.
- End-User applications are easy to develop and build.
You can spend more time on programming and addressing the data manipulation
tasks at hand, instead of working around the inevitable problems
that will arise when you work with a poorly designed
database.