1.1.1 Desirable properties of a database
As you will see, there are many possible choices that can be made during the design and many rules to guide this work. When trying to decide if some choices are better than others, you need to consider the key desirable properties of a database. The table here outlines some of them:
Completeness | Ensures that users can access the data they want. Note that this includes ad hoc queries, which would not be explicitly given as part of a statement of data requirements. |
Integrity | Ensures that data is both consistent (no contradictory data) and correct (no invalid data), and ensures that users trust the database. |
Flexibility | Ensures that a database can evolve (without requiring excessive effort) to satisfy changing user requirements. |
Efficiency | Ensures that users do not have unduly long response times when accessing data. |
Usability (ease of use) | Ensures that data can be accessed and manipulated in ways which match user requirements. |
Developing a ‘good’ database with these desirable properties isn't easy. Indeed, it is quite possible to develop a database that appears to contain all the relevant data but does not have these properties: as you will see, this has unfortunate consequences.
Exercise 2
Using the given desirable database properties above, very briefly summarise the characteristics that may be expected with a ‘bad’ database.
Answer
A bad database would: not satisfy all user requirements; would contain inconsistent and invalid data; would require excessive effort to change; would be slow and clumsy to use for achieving a desired outcome.
The importance of good database development is found simply in terms of preventing the problems outlined in Solution 2. Database development is not just a matter of creating tables that seem to match the way you see data on forms or reports, but requires a detailed understanding of the meaning of the data and their relationships to ensure that a database has the right properties. This understanding comes from data analysis, which is concerned with representing the meaning of data as a conceptual data model. Getting a conceptual data model right is crucial to the development of a good database.