Link to home page; Picture of house Link to Strategic IT page; Picture of a bull's eye Link to Services page; Picture of a computer accessing the world Mantos Logo Link to examples page; Picture of glowing light bulb Link to About Us page; Picture of two people Link to Contact Us page; picture of telephone (505) 291-1047

The Art of
Business
Management
Mantos Consulting, Inc.
The Science of
Information
Technology


Database and software design

Database design

Your database is the heart of your information system. Careful consideration is needed in the design of your database to ensure that it efficiently stores relevant information and retrieves it quickly. We are familiar with many types of databases including those built on flat files, indexed files, hierarchical, and relational databases built using database software such as Oracle, SQL, Access, and RdBMS.

Poor database design Good database design
Duplicate data (results in larger files and the need to update many records). Unique instances of each item (results in less disk space used, and is easier to maintain).
Poor or wrong indexes (results in slow retrieval for most common uses Good indexes (answers queries quickly by sorting records before you even ask).
Inconsistent (for example, an address, but no associated name). Consistent (all data items have their associated records intact
No archive, purge, or backup mechanism. Able to purge obsolete records from central database, but retrieve them for history.

The process we use for relational database design is:

  1. Interview the users of the database to find out how the data will be used.
  2. Agree upon the needs: what to store, what questions to answer, what transactions to support, and what reports to generate.
  3. Define the entities to be stored, such as customer, inventor, and results.
  4. Define the relationships between the entities.
  5. Normalize the database to "fifth normal form" (no duplicates, no computed fields, proper indices, and other requirements).
  6. Determine storage and performance requirements and constraints.
  7. Reintroduce controlled redundancy into the design where needed to improve performance.
  8. Document the database design and test criteria.

Software design

Any application will do what it is coded to do, not necessarily what you wanted it to do. Good software design practices help to ensure that your applications do both. Studies show that the higher percentage of time spent on a design, the shorter the software development project, primarily because there is less rework, and such rework occurs earlier in the process, where it is cheaper to perform.

Good, documented software design:

  • Can be understood by both users and programmers.
  • Bridges the gap between the requirements and the computer code.
  • Can be evaluated by peers for improvement and easily changed.
  • Exposes programmers to efficient, common data structures.
  • Documents the architecture, making future enhancements easier.
  • Exposes misunderstandings and errors earlier (read "cheaper").
  • Increases the quality of the component interfaces (read "better").
  • Decreases the time to code and debug (read "faster").

If you are considering doing a software or IT project in-house, consider having it professionally designed or at least have your design professionally reviewed. It is much cheaper and easier to change the design than it is to reprogram the system and retest the interfaces. We are familiar with many different software design techniques, including the object-oriented design principles of Grady Booch, and the structured design principles of Yourdon and DeMarco.


Home Strategic IT Services Examples About us Contact us Feedback Site map
P.O. Box 90564 • Albuquerque, NM USA 87199-0564 • Phone: (505) 291-1047 •  sales@mantos.com
Copyright © 2002 Mantos Consulting, Inc., revised 16 Oct 2002 (webmaster)