Lecture
Dr. Edgar F. Codd, after extensive research into the relational model of database systems in 1985 developed twelve rules of his own that, in his view, a database must obey in order to be considered a true relational database.
These rules can be applied to any database system that manages stored data using only its relational capabilities. This is the foundational rule that serves as the basis for all the other rules.
Also known as the «Golden Twelve Laws».
A relational DBMS must be able to fully manage the database using the relationships between data. To be a relational database management system (DBMS), a system must use exclusively its relational capabilities to manage the database.
Data stored in the database, whether user data or metadata, must be a value in some table cell. Everything in the database must be stored in the form of a table.
Every single data item (value) is guaranteed to be logically accessible using a combination of the table name, primary key (row value), and attribute name (column value). No other means, such as pointers, may be used to access the data.
NULL values in the database must be handled systematically and consistently. This is a very important rule, because NULL can be interpreted as one of the following: the data is missing, the data is unknown, or the data is not applicable.
A description of the structure of the entire database must be stored in an online catalog, known as the data dictionary, which authorized users can access. Users can use the same query language to access the catalog that they use to access the database itself.
A relational database management system must support at least one relational language that
(a) has a linear syntax,
(b) can be used both interactively and in application programs,
(c) supports data definition operations, view definition, data manipulation (interactive and programmatic), integrity constraints, access control, and transaction management operations (begin, commit, and rollback).
The database can be accessed only through a language with a linear syntax that supports data definition, data manipulation, and transaction management operations. This language can be used directly or via some application. If the database permits access to data without the aid of this language, that is considered a violation.
All views of the database that are theoretically updatable must also be updatable by the system.
The database must support high-level insertion, update, and deletion. This should not be limited to a single row — it must also support union, intersection, and subtraction operations to obtain sets of data records.
Data stored in the database must not depend on the applications that access the database. Any change to the physical structure of the database must not affect how external applications access the data.
The logical data in the database must not depend on the user's (application's) representation. Any change to the logical data must not affect the applications that use it. For example, if two tables are merged or one is split into two different tables, this must not affect the user application or require changes to it. This is one of the most difficult rules to satisfy.
The database must be independent of the application using it. All of its integrity constraints can be changed independently without any changes to the application. This rule makes the database independent of the external application and its interface.
The end user must not be able to tell that the data is distributed across different locations. Users should always have the impression that the data resides at a single site only. This rule is considered the foundation of distributed database systems.
If a system has an interface that provides access to low-level records, that interface must not be able to subvert the system or bypass its security and integrity constraints.
If a low-level data access mechanism is used, it must not ignore the security rules and integrity rules enforced by the higher-level language.

Comments