Who was Edgar "Ted" Codd?
Edgar Frank "Ted" Codd (August 23, 1923- April 18, 2003) was a British mathematician and computer scientist, considered by many to be the father of the modern relational database management system. After serving as a pilot in the Royal Air Force during World War II, he began his career in New York as a mathematical programmer. He subsequently relocated to Canada only to return to the United States in the 1960's where he embarked on his doctorate at the University of Michigan, Ann Arbor, sponsored by an IBM scholarship.
Having completed his Ph.D. in computer science in 1967, he continued his career with IBM at the Almaden Research Center in San Jose, California. It was here where he began to ponder the question of how to better manage data in existing computer systems.
In June of 1970, he proposed his landmark paper pivotally defining a relational database management system entitled "A Relational Model of Data for Large Shared Data Banks."
Codd continued to publish papers expanding upon this relational concept of data, thereby laying the theoretical foundations of modern database design. His ideas shaped and revolutionized how computers and information systems store and process data into the 21rst century. His long time IBM colleague, Chris Date remarked,
"Codd's biggest overall achievement was to make database management into a science. He put the field on a solid scientific footing by providing a theoretical framework - the relational model - within which a variety of important problems could be attacked in a scientific manner."
In 1976 he was awarded a Fellowship at IBM. In 1981, he received the most prestigious award in computer science, the A. M. Turing Award, for his contributions to relational database theory.
Codd continued at IBM until 1983 when he retired. At this time, along with his former IBM colleague Chris Date, formed the Codd and Date Consulting Group. An additional member of this group, IBM mathematician Sharon Weinberg, later became his second wife.
In 1985 Codd proposed a set of "12 Rules" (there are actually 13, numbered 0-12) defining what is required from a database management system for it to be considered relational. Codd passionately maintained his convictions.
"Codd produced these rules as part of a personal campaign to prevent his vision of the relational database being diluted, as database vendors scrambled in the early 1980s to repackage existing products with a relational veneer. Rule 12 was particularly designed to counter such a positioning. In fact, however, the rules are so strict that even systems whose only interface is the SQL language fail on some of the criteria."
Evidence of compliance with the majority of these twelve rules can be seen in most RDBMS implementations of today.
An additional rule, Rule 0, adds a layer of generalization to all of the above rules:
Rule 0: 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 (RDBMS), that system must use its relational facilities (exclusively) to manage the database.
c‑treeSQL allows your database management system to be as restrictive within these rules as possible, or violate selected rules. For instance, using our available ISAM interface while concurrently operating on your c‑treeSQL data can be in direct opposition to Rule 12. c‑treeSQL gives the application developer as much control over adherence to relational concepts as they need to efficiently implement their system.
While Codd's ideas were remarkable for the time, IBM decided against implementing them immediately. Then existing product revenue streams are assumed reasons. Other groups, however, did notice Codd's published contributions and began in earnest to bring products to market embracing these new ground-breaking ideas. Ingres was the first non-commercial relational database to be released in 1974 by a group at the University of California, Berkeley. Ingres was based on `low end' machines of the time, namely, Unix.
In 1979 the first commercial RDBS was released by a company then known as Relational Software. The product was Oracle V2. Relational Software was later renamed Oracle Corporation in 1983. Founder Larry Ellison remains in charge of this highly successful company.
Within weeks of the Oracle V2 release, IBM followed with its first offering, System R using a new query language called SEQUEL developed by IBM. This was followed by SQL/DS in 1981, and finally DB2 1983, which remains IBM's flagship RDMS product to this day.
Through the years, the Ingres code base found its way into many other products, including Postgres (Post Ingres) SQL. A small group from Berkeley, known as Britton-Lee, formed a company and product called Sybase, which became the number 2 database product throughout much of the 1980's and early 1990's.
In 1992, Microsoft licensed the Sybase technology and developed the Microsoft SQL Server for the Windows operating system. This partnership dissolved in the late 1990's, where since Microsoft SQL has dominated the SQL market.
c‑treeSQL was introduced in 2002 as the c‑treeSQL Server V7.12, and has undergone significant enhancements since. c‑treeSQL Server V8.14 has become FairCom's flagship database technology product. c- treeSQL allows developers extensive high performance record level data access, while allowing high level relational SQL queries and updates on that same data. The best of performance AND industry- standard data access!
Modern SQL Standards
Today, the relational market is huge, with experts placing its value between $12 - $18 billion. Banks, airlines, governments, schools, and many, many other organizations, large and small, all benefit from the solid relational database theory Codd published. Codd's ideas led to the development of several query languages. While perhaps not judged to be the best choice of standards to enact Codd's rules of relational data management, SQL has emerged as the de facto standard. The influence of Codd's rules are certainly evident in the SQL language of today.
SQL was first standardized by the American National Standards Institute (ANSI) in 1986 as X3.135. The International Standards Organization (ISO) followed suit in 1987. This was adopted by the United States in 1989 via FIPS (Federal Information Processing Standard). These standards were revised in 1989, under the working term of SQL1, and became published as SQL89.
SQL89 was strengthened in 1992 and SQL92 (SQL2) was published. This revision addressed many of the implementation issues of the time, and proposed many new conceptual features. To assist implementers with this new voluminous work, three levels of conformance were defined: Entry-level (SQL89 plus basic improvements), intermediate- level (core functionality), and full conformance (complete SQL92 feature set).
Continuing standardization resulted in SQL99 (SQL3) published in 1999. This brought forth even more advanced features such as object- relational database concepts and integrity management. Two degrees of conformance replace the SQL92 conformance levels, Core SQL99 and Enhanced SQL99.
This process has been continued with the latest incarnation being the SQL:2003 standard. This massive collection can now be purchased from the ANSI/ISO organization.
c‑treeSQL Server Version 8.14 strictly adheres to SQL-92 standards, with many Enhanced SQL99 features, including triggers, and user defined functions. Future versions of c‑treeSQL will continue to adopt additional feature sets specified in the latest SQL standards. Contact your nearest FairCom office with any c‑treeSQL features you would like to see!
Selected Web References
http://www.itworld.com/nl/db_mgr/05072001 (link no longer valid)
http://www.itworld.com/nl/db_mgr/05072001/ (link no longer valid)
http://www.provue.com/proVUE/Fact_SQLServer.html (link no longer valid)
http://www.vbip.com/books/1861001800/chapter_1800_02.asp (link no longer valid)
In the news...
In this article, Randal Hoff, VP of Engineering Services, FairCom, explains that SQL and NoSQL can—and should—be able to co-exist in mission-critical applications:
"To NoSQL or not to NoSQL?"