Subj : Re: Polymorphism sucks [Was: Paradigms which way to go?] To : comp.programming,comp.object From : cb Date : Thu Sep 22 2005 08:19 am In article <71n3j19r9fpj6ij591a2pj7vacj2h80cau@4ax.com>, Chris Sonnack wrote: >topmind writes: > >> The term "relational" has nothing to do with keys and their >> referencing stuff. I used to think it did, but like you now, >> I was wrong. You lost this one. > >Heh, so you say, but I say Michelle Pfeiffer secretly adores me. >So, as you see, saying something has no connection with reality. > >EVERY resource I checked agrees. You have yet to produce anything >other than arm waving to support your point. If you are right and >I'm wrong, where's the proof? Should be easy enough to find. Let me quote from "An Introduction to Database Systems, Volume 1, Fifth Edition" by C. J. Date (Addison-Wesley, 1990) - this book, in its various editions (which include several ones thhat are newer than the one I own, of course), is often considered _the_ textbook on databases - on page 112, just at the beginning of section 4.2: A relational database is a database that is percieved by its users as a collection of trables (and nothing but tables) . And later on, starting at the bottom of page 115 and continuing onto page 116: At this point, the reader may be wondering why relational databases are called "relational" anyway. The answer is simple: "Relation" is just a mathematical term for a table (to be precise, a table of a cedrtain specific kind - details to follow in Chapter 11). [ ... ] In this part of the book, in fact, we will generally use the terms "relation" and "table" interchangeably, as if they were synonymoss. [ ... ] If it is true that a relation is basically just a table, then why not simply call it a table and have done with it? The answer is that (as already indicated) we very often do. However, it is worth taking a moment to understand why the term "realtion" was introducecd in the first place. briefly, the explanation is as follows. As already mentioned, relational systems are based on an underlying set of theoretical ideas knows as the relational model instance or a record type [ more examples deleted ] . The formal theory therefore does not use the term "record"at all; instead, it uses the term "tuple" (short for "n-tuple"), which was given a precise definition by Codd when he first introduced it. We do not give that definition here; for our purposes in the present part of the book, it is sufficient to say that the term "tuple" corresponds approximately to the notion of a flat record instance (just as the term "relation" corresponds approximately to the notion of a table). [ ... ] The Codd paper refered to in the quoted text is: E. F. Codd. "A Relational Model of Data for Large Shared Data Banks." CACM 13, No 6 (June 1970). Republished in 'Milestones of Research - Selected Papers 1958 - 1982' (CACM 25th Anniversary Issue), CACM 26, No 1 (January 1983). In Chapter 11, 'Relation Structure', the book introduces formal definition for each term, which I will not quite here; but I will quote form the introduction to the chapter, on page 249: [ ... ] We explain each termver informally here [ ... ] : * A _relation_ corresponds to what so far in this book we have generally been calling a table. * A _tuple_ corresponds to a row of such a table and an _attribute_ to a column. The number of tuples is called the _cardinality_ and the number of attributes is called the _degree_. [ ... ] So, without attempting to validate or invalidate anything else on any side of any argument, according to what I have quoted above, it should be fairly clear that the term 'Relational' in 'Relational Database' has _nothing_ to do with relationships between different tables: The term 'Relation' is instead a different, more precise term for the type of tables used in Relational databases. So, even a database with only a single table, is a relational database. So, can we please put this particular issue to rest? Best wishes, >-- >|_ CJSonnack _____________| How's my programming? | >|_ http://www.Sonnack.com/ ___________________| Call: 1-800-DEV-NULL | >|_____________________________________________|_______________________| // Christian Brunschen .