Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase 12345»»»

"Real" copy of Codd's 12 (13) Rules for RDBMS Expand / Collapse
Author
Message
Posted Sunday, July 11, 2010 10:46 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Today @ 12:22 AM
Points: 35,772, Visits: 32,443
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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #950555
Posted Monday, July 12, 2010 12:30 AM
SSC-Addicted

SSC-AddictedSSC-AddictedSSC-AddictedSSC-AddictedSSC-AddictedSSC-AddictedSSC-AddictedSSC-Addicted

Group: General Forum Members
Last Login: Wednesday, December 10, 2014 2:32 AM
Points: 451, Visits: 3,470
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).


David
Post #950581
Posted Monday, July 12, 2010 12:41 AM


Say Hey Kid

Say Hey KidSay Hey KidSay Hey KidSay Hey KidSay Hey KidSay Hey KidSay Hey KidSay Hey Kid

Group: General Forum Members
Last Login: Sunday, July 6, 2014 8:03 PM
Points: 683, Visits: 1,110
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.

Post #950584
Posted Monday, July 12, 2010 1:25 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Today @ 12:22 AM
Points: 35,772, Visits: 32,443
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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #950596
Posted Monday, July 12, 2010 1:27 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Today @ 12:22 AM
Points: 35,772, Visits: 32,443
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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #950598
Posted Monday, July 12, 2010 7:36 AM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: 2 days ago @ 4:21 PM
Points: 7,928, Visits: 9,653
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 - 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
Post #950747
Posted Tuesday, July 13, 2010 12:32 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Today @ 12:22 AM
Points: 35,772, Visits: 32,443
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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #951168
Posted Tuesday, July 13, 2010 12:34 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Today @ 12:22 AM
Points: 35,772, Visits: 32,443
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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #951169
Posted Tuesday, July 13, 2010 5:25 AM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: 2 days ago @ 4:21 PM
Points: 7,928, Visits: 9,653
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
Post #951318
Posted Tuesday, July 13, 2010 7:04 AM


SSCertifiable

SSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiableSSCertifiable

Group: General Forum Members
Last Login: 2 days ago @ 4:21 PM
Points: 7,928, Visits: 9,653
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
Post #951414
« Prev Topic | Next Topic »

Add to briefcase 12345»»»

Permissions Expand / Collapse