SQL Clone
SQLServerCentral is supported by Redgate
 
Log in  ::  Register  ::  Not logged in
 
 
 


"Real" copy of Codd's 12 (13) Rules for RDBMS


"Real" copy of Codd's 12 (13) Rules for RDBMS

Author
Message
Jeff Moden
Jeff Moden
SSC Guru
SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)

Group: General Forum Members
Points: 88266 Visits: 41128
I've been cruising the web on the subject of Codd's 12 rules for a long time now. I've read what amounts to about 50 articles and hundreds of posts on the subject. If you compare the rules from all those, you find large disparities in what is said so I don't trust any of them to be correct. Instead of sifting through all the manure to find out what the horse was thinking, I just want to ask the horse. ;-) Unfortunately, Mr. Codd is no longer in the land of the living (may his soul rest in peace).

The only link that I've found that may have had an actual copy of Mr. Codd's original white paper, which contained the 12 rules, is broken.

With all of that in mind, does anyone have a link or a copy of the actual white paper or, perhaps a book by Codd where he mentions the rules? I'd really like to "hear" the rules from the horse's mouth because, from what I can see, too many people have mis-copied or misinterpreted the rules.

Thanks for the help, folks.

--Jeff Moden

RBAR is pronounced ree-bar and is a Modenism for Row-By-Agonizing-Row.
First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column.
If you think its expensive to hire a professional to do the job, wait until you hire an amateur. -- Red Adair

Helpful Links:
How to post code problems
How to post performance problems
Forum FAQs
sqlvogel
sqlvogel
SSC Eights!
SSC Eights! (814 reputation)SSC Eights! (814 reputation)SSC Eights! (814 reputation)SSC Eights! (814 reputation)SSC Eights! (814 reputation)SSC Eights! (814 reputation)SSC Eights! (814 reputation)SSC Eights! (814 reputation)

Group: General Forum Members
Points: 814 Visits: 3706
It is included in the disc version of the ACM SIGMOD anthology, although I don't think the text is available online.

http://dblp.uni-trier.de/db/conf/icde/Codd86.html

That's the rebublished version of the Computerworld article.

The 13 "rules" are still useful discussion points for students I suppose. I'm not sure how important it is to be precise about the original text however. They are definitely not a formal definition of the relational model. Rather they are some potentially interesting observations about some properties of DBMSs. The article is also strong in its criticisms of SQL and the SQL standard's failure to support the relational model. Yet the rules are frequently quoted in a SQL context while Codd's remarks opposing SQL are never mentioned!

The science and understanding of the relational model has developed since 1985 and there are other texts that I think cover the same material better. Read Codd by all means, but also read David Maier, Date, Darwen and the Alice Book (Abiteboul).
Jim McLeod
Jim McLeod
Right there with Babe
Right there with Babe (795 reputation)Right there with Babe (795 reputation)Right there with Babe (795 reputation)Right there with Babe (795 reputation)Right there with Babe (795 reputation)Right there with Babe (795 reputation)Right there with Babe (795 reputation)Right there with Babe (795 reputation)

Group: General Forum Members
Points: 795 Visits: 1121
I asked a friend, who is a CS Ph.D student, if he could dig it up. Unfortunately, no luck. His reply:

It's referenced in the ACM digital library:
http://portal.acm.org/citation.cfm?id=655234

But being a paper from 1986 there is no pdf of it there (not even a scan of a hard copy as is the go with older papers).

Oddly, there is no reference to it at all in the ieee digital library.

As a paper from 1986, I'm not sure of the chances of it being in any library is. It certainly isn't in the [Swinburne University] one...

So I'm all outta ideas.

Jeff Moden
Jeff Moden
SSC Guru
SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)

Group: General Forum Members
Points: 88266 Visits: 41128
David Portas (7/12/2010)
It is included in the disc version of the ACM SIGMOD anthology, although I don't think the text is available online.

http://dblp.uni-trier.de/db/conf/icde/Codd86.html

That's the rebublished version of the Computerworld article.

The 13 "rules" are still useful discussion points for students I suppose. I'm not sure how important it is to be precise about the original text however. They are definitely not a formal definition of the relational model. Rather they are some potentially interesting observations about some properties of DBMSs. The article is also strong in its criticisms of SQL and the SQL standard's failure to support the relational model. Yet the rules are frequently quoted in a SQL context while Codd's remarks opposing SQL are never mentioned!

The science and understanding of the relational model has developed since 1985 and there are other texts that I think cover the same material better. Read Codd by all means, but also read David Maier, Date, Darwen and the Alice Book (Abiteboul).


Heh... thanks for the response, David, but it's actually not up to you as to whether I think or will think the 13 rules are "a formal definition" definition or not especially when so many people cite them to explain why SQL Server (SQL in general, really) is not truly an RDBMS. And, yes, I believe it to be very important to explore the original text just as it might be if one were exploring the "Agile Manifesto" and for the same reasons... too many people have put their own slant on things and I'd love to have the opportunity to judge for myself. The only way I can do that is to study the original wording of the original (or true facsimile of) document. And, yeah... I'd like to study the whole document and not just the 13 rules.

I appreciate your suggested reading list but those folks aren't Codd. As I said, a lot of folks use Codds rules and his supposed quotes and I'd like to see just how accurate those people are as well as having the opportunity to make up my own mind about what Codd actually stated.

{edit} Crud... the site you referenced wants to download to a CD and I won't have access to a computer that has a burnable CD or DVD for at least another week. I hope someone else can come up with a facsimile of the original document but, if they don't, I'll do the download next week. Thanks for the leg up, David.

--Jeff Moden

RBAR is pronounced ree-bar and is a Modenism for Row-By-Agonizing-Row.
First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column.
If you think its expensive to hire a professional to do the job, wait until you hire an amateur. -- Red Adair

Helpful Links:
How to post code problems
How to post performance problems
Forum FAQs
Jeff Moden
Jeff Moden
SSC Guru
SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)

Group: General Forum Members
Points: 88266 Visits: 41128
Jim McLeod (7/12/2010)
I asked a friend, who is a CS Ph.D student, if he could dig it up. Unfortunately, no luck. His reply:

It's referenced in the ACM digital library:
http://portal.acm.org/citation.cfm?id=655234

But being a paper from 1986 there is no pdf of it there (not even a scan of a hard copy as is the go with older papers).

Oddly, there is no reference to it at all in the ieee digital library.

As a paper from 1986, I'm not sure of the chances of it being in any library is. It certainly isn't in the [Swinburne University] one...

So I'm all outta ideas.



Jim,
Thank you and your friend both. I appreciate the (literally) good ol' college try. :-)

--Jeff Moden

RBAR is pronounced ree-bar and is a Modenism for Row-By-Agonizing-Row.
First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column.
If you think its expensive to hire a professional to do the job, wait until you hire an amateur. -- Red Adair

Helpful Links:
How to post code problems
How to post performance problems
Forum FAQs
Tom Thomson
Tom Thomson
SSChampion
SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)

Group: General Forum Members
Points: 14512 Visits: 12238
Jeff Moden (7/12/2010)
Crud... the site you referenced wants to download to a CD and I won't have access to a computer that has a burnable CD or DVD for at least another week. I hope someone else can come up with a facsimile of the original document but, if they don't, I'll do the download next week. Thanks for the leg up, David.

No, it's actually worse than that: the CD (or DVD) is a local file reference - in effect it wants you to insert the CD in your drive so that it can read the data from there! You may still be able to buy a copy of those conference procedings from the IEEE, but it may no longer be available and anyway if it is available it will probably cost an arm and a leg; I'm pretty sure that several university libraries in the US will have a copy, but more won't and some are not at all helpful about access anyway. Besides, as David pointed out, the ICDE paper was not the original version.

However, all is not lost: there is an accurate (as far as I can remember Crying - must be getting senile) version on the web, at http://www.cse.ohio-state.edu/~sgomori/570/coddsrules.html. (I have no idea why Gomori teaches it in his File Structure and Design course instead of in his Intro to Database Systems! I don't know the guy, so I haven't asked him.)

(edit) But watch out for rule 6: there are some problems, which Codd addressed later.

Tom

Jeff Moden
Jeff Moden
SSC Guru
SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)

Group: General Forum Members
Points: 88266 Visits: 41128
Thanks, Tom. Yep... this is one of the many versions of seen. Obviously I was hoping for the real thing but if someone like you, Barry Young, or any of the other folks that can fluently speak "Codd" endorses a particular version as the "real deal", then I'll have to go with that. Thanks, Tom

--Jeff Moden

RBAR is pronounced ree-bar and is a Modenism for Row-By-Agonizing-Row.
First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column.
If you think its expensive to hire a professional to do the job, wait until you hire an amateur. -- Red Adair

Helpful Links:
How to post code problems
How to post performance problems
Forum FAQs
Jeff Moden
Jeff Moden
SSC Guru
SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)SSC Guru (88K reputation)

Group: General Forum Members
Points: 88266 Visits: 41128
Almost forgot... thanks for the warning on Rule 6, Tom. I haven't seen anyone address the "problem" you're talking about but I suspect that the word "View" in that case is not an object in the database... correct?

--Jeff Moden

RBAR is pronounced ree-bar and is a Modenism for Row-By-Agonizing-Row.
First step towards the paradigm shift of writing Set Based code:
Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column.
If you think its expensive to hire a professional to do the job, wait until you hire an amateur. -- Red Adair

Helpful Links:
How to post code problems
How to post performance problems
Forum FAQs
Tom Thomson
Tom Thomson
SSChampion
SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)

Group: General Forum Members
Points: 14512 Visits: 12238
Jeff Moden (7/13/2010)
Almost forgot... thanks for the warning on Rule 6, Tom. I haven't seen anyone address the "problem" you're talking about but I suspect that the word "View" in that case is not an object in the database... correct?


No, a view is in the database; but there is a result for relational algebra and first order logic handling view definition and update that's a bit like the "halting problem" for Turing Machines or Gödel's "Incompleteness Theorem" for the predicate calculus. http://www.informatik.uni-trier.de/~ley/db/journals/sigmod/Buff88.html and http://www.informatik.uni-trier.de/~ley/db/journals/sigmod/Codd89.html give references to some documents on this. As I understand it the original rule 6 is a bit like saying "your programming language has to be capable of expressing all Turing Machines that halt and no others", but I'm very rusty on this stuff (the last time I worked on the semantics of logical calculi was early 1968) so that may not be exactly what the problem is.

Codd revised his rules (and revised rule 6 extensively) and published the new versions in his book "The relational model for database management: version 2" in 1990; this can be bought new (233.45 dollars) or second hand (40 USD for good quality) via Amazon, or you can create an ACM Web Account and buy a PDF download of it for $15. Chapter 17 View Updatability is about 30 pages (the whole book is 567 pages). There's a rules index as well as other indices at the end. The book's probably a better source for Codd's rules than anything else currently available - it's not the original version, but it is Codd's own words, just 5 years later than the original version.

Tom

Tom Thomson
Tom Thomson
SSChampion
SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)SSChampion (14K reputation)

Group: General Forum Members
Points: 14512 Visits: 12238
Here is rule 1 as it appears in Codd's 1990 version:-

RS-I The Information Feature
See Rule 1 in the 1985 set. The DBMS requires that all database
information seen by application programmers (AP) and interactive
users at terminals (TU) is cast explicitly in terms of values in
relations, and in no other way in the base relations. Exactly one
additional way is permitted in derived relations, namely, ordering
by values within the relation (sometimes referred to as inessential
ordering).
------------------------------------
This means, for example, that, in the database, users see no repeating
groups, no pointers, no record identifiers (other than the declared primary
keys), no essential (i.e., non-redundant) ordering, and no access paths.
Obviously this is not a complete list. Such objects may, however, be supported
for performance reasons under the covers because they are then not visible
to users, and hence impose no productivity-reducing burden on them.
-------------------------------------

Codd follows this with a long explanation of why repeating groups are a bad thing.

I'll post the other rules from the 1990 book as and when I find time.

Tom

Go


Permissions

You can't post new topics.
You can't post topic replies.
You can't post new polls.
You can't post replies to polls.
You can't edit your own topics.
You can't delete your own topics.
You can't edit other topics.
You can't delete other topics.
You can't edit your own posts.
You can't edit other posts.
You can't delete your own posts.
You can't delete other posts.
You can't post events.
You can't edit your own events.
You can't edit other events.
You can't delete your own events.
You can't delete other events.
You can't send private messages.
You can't send emails.
You can read topics.
You can't vote in polls.
You can't upload attachments.
You can download attachments.
You can't post HTML code.
You can't edit HTML code.
You can't post IFCode.
You can't post JavaScript.
You can post emoticons.
You can't post or upload images.

Select a forum

































































































































































SQLServerCentral


Search