3 ms·
This is correct! A relational DBMS is simply predicate logic applied to set theory[0]. The DBMS part offers logical/physical data independence, which is amazin
by MattRogish 14y ago
This is correct!
A relational DBMS is simply predicate logic applied to set theory[0]. The DBMS part offers logical/physical data independence, which is amazing, and no one has actually implemented that (NoSQL, neither!).
SQL has never been particularly awesome way to interact with relational database management systems; SQL isn't even strictly relational: SQL tables are bags (multisets), not sets[1].
The Rel project (http://dbappbuilder.sourceforge.net/ http://dbappbuilder.sourceforge.net/) is probably the closest thing to a "real" RDBMS. It also implements CJ Date & Hugh Darwin's "Tutorial D" language, a truly relational language used to work with a RDBMS.
What I find most ironic with the whole "Relational / Object" mismatch is nothing in Relational Theory prohibits objects. As a matter of fact, a RELATION[2] consists of NAMED ATTRIBUTES and DOMAINS.
Domains are basically DATATYPES and OPERATIONS that can be performed on them[3]. Although the notion of CLASSES (in OO land) wouldn't map 100%, much of what you're interested in doing with Objects can and should be directly represented in a truly relational DBMS[4].
In a traditional MVC style framework the RDBMS would consist of the entire Model layer; thus the "Object/Relational Mismatch" disappears!
--
Matt
Refs:
0. http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf
1. A bag can have duplicate rows
SQL does not require that a table have keys
NULL introduces three-valued logic
2. http://en.wikipedia.org/wiki/Relation_(database) http://en.wikipedia.org/wiki/Relation_(database)
3. http://www.dbdebunk.com/page/page/627014.htm http://www.dbdebunk.com/page/page/627014.htm
4. http://www.dbdebunk.com/page/page/1717959.htm http://www.dbdebunk.com/page/page/1717959.htm