In the last exciting episode, dananrg@xxxxxxxxx wrote: > I'm reading, and enjoying immensely, Fabial Pascal's book "Practical > Issues in Database Management." > > Though I've just gotten started with the book, he seems to be saying > that modern RDBMSs aren't as faithful to relational theory as they > ought to be, and that this has many *practical* consequences, e.g. lack > of functionality. > > Given that PostgreSQL is open source, it seems a more likely candidate > for addressing Pascal's concerns. At least the potential is there. > > Some questions: > > 1) Is PostgreSQL more faithful to relational theory? If so, do you find > yourself using the additional functionality afforded by this? e.g. does > it really matter to what you do in your daily work. PostgreSQL's fidelity is more to the SQL standards than to relational theory, per se, but there are places where it does "play better" than some of its competitors with regard to relational behaviour. Oracle, for instance, has the trouble that it does not generally perceive NULL as being distinct from empty strings. > 2) If PostgreSQL is *not* significantly more faithful to relational > theory than commercial RDBMSs, is it at least on the road to > becoming more faithful? It's probably fairer to say that it isn't on any road to become "less faithful." The tendancy for products like Oracle and DB2 has been to hearken down roads with XML on the signs, and to lose rational behaviour on that basis. > 3) If PostgreSQL is not on the road to becoming more faithful to > relational theory and purity, why not? Is it due to the fact that > various SQL standards are themselves not fully faithful to relational > theory, and most RDBMSs have as a primary design goal to be faithful to > standards (which Pascal implies *are* relationally deficient)? There are two big bits of trouble to SQL: 1. NULL is a problem (where there isn't any choice of implementation strategies that *won't* lead to considerable pain), which is why the would-be relational successor, Tutorial D, rejects having NULL altogether. 2. Features get added to SQL standards without much regard to fidelity to a relational model. Often, features get added because they seem cool, and because Microsoft or IBM figure the features can get them some sales. That doesn't guarantee fidelity to much of anything :-(. > 4) Which database, commercial or non-commercial, is most faithful to > relational theory itself, or is headed in that direction the > quickest? The product that appears to have greatest fidelity to SQL standards is Mimer SQL. That's not quite the same thing as fidelity to relational theory, of course. One of the interesting edges, with PostgreSQL, is the whole "object/relational" side of it. Darwen and Date were highly critical of O/R; they felt that "doing relational right" was generally a better thing. I'd argue that with the extensible type system, PostgreSQL does parts of this quite right. The place where there is controversy is in how PostgreSQL should deal with things like inheritance, when inheriting attributes from a table, and the lack of agreement seems to me to demonstrate that there's not any particular will to continue down the "O/R dogma" road... -- let name="cbbrowne" and tld="gmail.com" in name ^ "@" ^ tld;; http://linuxdatabases.info/info/nonrdbms.html "I will not send lard through the mail" ^ 100 -- Bart Simpson