EF
Code 12 Rules for RDBMS
Edger Frank “Ted ” code(august
1923-18 April 2003) was an English computer scientist who, while working for
IBM, invented the relational model for database management, the theoretical
basis for relational database Code proposed thirteen rules, numbered 0 to 12.
According
to him if a database meets these rules, it can be called relational database
management system. The system must qualify
as relational as a database and as a management system. For a system to qualify
as a relational database management system, that system must use its relational
facilities to manage database.
The other 12 rules derive this
rule.
All information (including
metadata) is stored to be represented as stored data in cells of table. The
rows and columns have to be strictly unordered Each unique piece of data (atomic
value) should be accessible by Table
Name + Primary key (row) + Attribute (column)NULL has several meanings,
it can mean missing data, not applicable or no value. It should be handled
consistently. Primary key must not be NULL.
Expression on NULL must give NULL. Database dictionary must have
description of Database. Catalogue
to be governed by same rule as rest of the database. The same query language to
be used on catalogue as on applicable database. One well defined language must
be there to provide all manners of access to data Eg SQL
All view that are theoretically
updatable should be updatable by the system View is a virtual table There must
be Insert, Delete, Update operations at each level of relations. Set operation
like Union, Intersection and minus should also be supported. The physical
storage of data should not matter to the system. If say some file supporting
table were renamed or moved from one disk to another, it’s should not affect
the application. If there is change in the logical structure (table structure)
of the database the user view of data should not change. Say, if a table is
split into two tables, a new view should give result as the join of the two
tables. This rule is most difficult to satisfy. The database should be able to
conforce its own integrity rather than using other programs. Key and check
constraints. Trigger etc should be stored in data Dictionary. This also make RDBMS impendent of front end. A
database should work property regardless of its distribution across a network.
This lays foundation of distributed database. If low level Access is allowed to
a system it should not be able to subvert or by pass integrity rule to change
data. This can be achieved by some sort of looking or encryption