The first date is 1970. In about 20 pages, in the June 1970 issue of the Journal of the Association for Computing Machinery , Dr. Edgar F. Codd, an IBM researcher, presented his theory on the structure of a relational database system. He proposed that the way data is stored, manipulated, and organized should be totally transparent to the user . He went on to show the inadequacies of existing database structures, and he proposed a system based on normal forms and a universal language. That is, he believed that all existing data structures built on hierarchical (tree) structures, commonly known as parent-child relationships, were inadequate. They did not reflect the true nature of how the data is related . One side note is that Dr. Codd introduced the notion of data normalization . In brief, this means reducing something to its simplest form, and it is a familiar term for mathematicians. I will cover data normalization in more depth in Chapter 4. In 1985, Dr. Codd wrote his 12 rules for a relational database management system: Rule 1: Information . Data should be presented to the user in table form. Rule 2: Guaranteed access . Every data element should be accessible without ambiguity. Rule 3: Systematic treatment of null values . A field should be allowed to remain empty for future use. Rule 4: Dynamic online catalog based on the relational model . The description of a database should be accessible to the user. Rule 5: Comprehensive data sublanguage . A database must support a clearly defined language (SQL) to define the database, view the definition, manipulate the data, and restrict some data values to maintain integrity. Rule 6: View updating . The user should be able to change the data through any available view. Rule 7: High-level insert, update, and delete . Users must be able to add, delete, or change all data in a file ”whether it is a single row in a single table or multiple rows in multiple tables ”with a single command. Rule 8: Physical data independence . Changes in how data is stored or retrieved should not affect how the user accesses the data. Rule 9: Logical data independence . The user's view of the data should be unaffected by its actual form in files. Rule 10: Integrity independence . Constraints on user input should exist to maintain data integrity. Rule 11: Distribution independence . A database design should allow for distribution of data over several computer sites, and the user should be unaware of whether or not the database is distributed. Rule 12: Nonsubversion . The only way to modify the database structure should be through the language mentioned in rule 5 (SQL). |