In 1970, Edgar F. Codd, an Oxford-educated mathematician working at the IBM San Jose Research Lab, published a paper showing how information stored in large databases could be accessed without knowing how the information was structured or where it resided in the database.
Until then, retrieving information required relatively sophisticated computer knowledge, or even the services of specialists who knew how to write programs to fetch specific information-a time-consuming and expensive task.
Codd changed this substantially. His relational model decoupled the form of data from the physical storage of that data.
Relational algebra, first created by Edgar F. Codd while at IBM, is a family of algebras with a well-founded semantics used for modelling the data stored in relational databases, and defining queries on it.
The main application of relational algebra is providing a theoretical foundation for relational databases, particularly query languages for such databases.
Codd’s Rules for RDBMS
- All data should be presented in table form.
- Data should be accessible without any ambiguity. This can be accomplished through a combination of the table name, column name and primary key. Ability to directly access data via Pointer is a violation of this rule.
- A field should be allowed to remain empty. This involves the support of NULL value.
- A RDBMS must provide access to the table structures.
- The database must support at least one clearly defined language that includes functionality for data definitions, data manipulations, data integrity and database transaction control.
- Data can be presented in different logical structures called Views. Each view should support the full range of data manipulation that has direct access to a table available.
- There must be Insert, Update and Delete operations at each level of relations rather than just for a single row in a single table.
- Physical Data Independency – The user is isolated from the physical method of storing and retrieving information from the database. Changes can be made to the underlying architecture (hardware, disk storage methods) without affecting how the user accesses it.
- Logical Data Independency – How data is viewed should not change when logical structure (table’s structure) of the database changes. This rule is difficult to satisfy as most databases rely on strong ties between data viewed and the actual structure of the underlying tables.