The methodology presented on this site for relational (DBMSs) Database Management Systems has been tried and tested over the years in both industrial and academic environments.
It consists of three main phases:
- logical, and
The first phase starts with the production of a conceptual data model that is independent of all physical considerations.
This model is then refined in the second phase into a logical data model by removing constructs that cannot be represented in relational systems. In the third phase, the logical data model is translated into a physical design for the target DBMS.
The physical design phase considers the storage structures and access methods required for efficient and secure access to the database on secondary storage.
The methodology in each phase is presented as a series of steps.
For the inexperienced designer, it is expected that the steps will be followed in the order described,
and guidelines are provided throughout to help with this process.
For the experienced designer, the methodology can be less prescriptive, acting more as a framework or checklist.
Dr. E. F. Codd, the inventor of the relational database model, developed a list of criteria that a relational database must meet. This list is often referred to as Codd's Rules.
Chris Date's more basic definition and Codd's twelve-rule test for relational systems form a general definition described below.
To be considered fully relational, a database management system must:
- Maintain a logical definition of data separate from its physical storage characteristics
- Represent all information in the database in table form
- Use one, high-level language for structure, query, and modification of database information to handle communications with the database (most use SQL)
- Support the main relational operations, including selection of rows and columns and the join operation, and set operations, union, intersection, division, and difference
- Support views to allow the user to create other ways of looking at data using virtual tables
- Provide a means of differentiating between null or unknown values and a blank or zero
- Support mechanisms for managing integrity, permissions, transactions, and data recovery