Noons |
Oracle in its current form does not violate any of Codd’s 12 rules. It used to violate a few until 9i and the fully updatable views and the instead-of triggers. Not anymore.
No: ROWID and other similar constructs have NOTHING to do with Codd’s 12 rules.
But you’ll find plenty of “Stonebreakers” claiming it does. Never mind their “pet” product was never capable of holding its data for longer than a power failure…
There are however other sets of rules that it violates, along with DB2, MySQL, Postgres and just about any other “relational” database. The domain concept is one of those.
Does it really matter? Not in the least, nowadays. And I doubt I’ve ever seen a pure, fully relational database implementation, Oracle, DB2, Ingres or whatever.
koshal |
Oracle has a proven record of 25 years and as long as it caters to current and fututre business needs I dont think anybody will give a damn whethere is a relational or not or whether it meets the codd rule.
As far as I know the only code rule that oracle does not meet is systematic treatment of not null values.
Sajjan |
Hi Tim, let’s get the basics clear first. You are advocating Oracle is not a real RDBMS. Fine, can you please prove your points by citing examples where it does not fall in the category and which version of Oracle you are aiming at.
The discussions obviously do not throw much light because your observations does not clearly specify why you think Oracle right now is not an RDBMS. Let’s start from you at this point - then we can discuss further on the subject.
Tim DiChiara |
Hi Sajjan: You said “You are advocating Oracle is not a real RDBMS. Fine, can you please prove your points by citing examples where it does not fall in the category and which version of Oracle you are aiming at.”
That’s not necessarily my contention — it’s something that has been written about by, for example, Fabian Pascal:
“The implementation of keys via indexes in SQL products [eg, Oracle] is a well known violation of physical data independence. A key is a logical feature to uniquely identify a tuple. An index is a physical feature to improve performance. They have nothing to do with one another, but SQL products makes keys dependent on this specific physical implementation feature. This means that you can’t drop the index if it supports a key — you must lose the key too.”
He also doesn’t like Oracle’s treatment of NULLs: <a href="http://www.dbdebunk.com/page/page/1396241.htm" title="http://www.dbdebunk.com/page/page/1396241.htm" target="_blank">http://www.dbdebunk.com/page/page/139624…</a>
See also: <a href="http://www.dbdebunk.com/page/page/3278346.htm" title="http://www.dbdebunk.com/page/page/3278346.htm" target="_blank">http://www.dbdebunk.com/page/page/327834…</a>
Hope that helps,
Tim
David |
SQL:
Uses a multi-set model rather than a set-based model
Breaks the Information Rule in multiple ways (duplicate rows, duplicate columns, nulls)
Lacks true projection and relational closure
Does not deliver guaranteed access
Lacks relational comparison
Lacks relational assignment
Lacks key derivation
Does not support keys on views or derived tables
Uses three-value logic
Has poor support for data independence
Therefore it cannot be relational
PS The above is not intended to be a complete list by any means
Tim DiChiara |
David raises some excellent limitations/violations of SQL. Here is some more food for thought (from <a href="http://www.alphora.com/tiern.asp?ID=HIGHLEVEL" title="http://www.alphora.com/tiern.asp?ID=HIGHLEVEL" target="_blank">http://www.alphora.com/tiern.asp?ID=HIGH…</a>):
“Most people seem to think that SQL is synonymous with relational and that SQL’s problems are therefore problems with the Relational Model.
“Because of this, some have even attempted to devise alternative ‘models’ of data. [However,] the problems are with SQL and not with the Relational Model so nobody has been able to present another actual model. Such a task is roughly like trying to find a new, ’simpler’ way of doing arithmetic. The Relational Model is the ‘mathematics of data’ and SQL is simply a poor calculator.
“[We are suggesting that] if the Relational Model is implemented correctly and completely, then most of today’s software tools, systems, and frameworks can be drastically simplified and many eliminated.”
–Tim
Michael Moore |
Actually, it’s not true that “Oracle is known as the first enterprise-level commercial product based on Ted Codd’s relational model of data. ” That honor belongs to Magnum, a commercial relational database created by a company named Tymshare, in the mid 70’s. Now if you had said ” … first surviving …”, then it might be true.
<a href="http://www.warthman.com/projects-tymshare-b.htm" title="http://www.warthman.com/projects-tymshare-b.htm" target="_blank">http://www.warthman.com/projects-tymshar…</a>
Regards,
Mike
George Basahm |
I think a more relevant question these days is how well does Oracle support objects in the database, and what enhancements will there be in the future to fully support objects, not just as data containers (i.e the behavior aspect of objects in the DB, not just the state).
Waseem |
Well Oracle is not relational.Considering this it must have been a miracle to be the premier DB in the world.Dont think almost everyone is loose in the head.(Here i am assuming the Oracle customers.
Every DB rival IBM,MS,MySQL,PostGre,Sybase etc talk about features they provide in comparision to Oracle.Suppose they are idiots too.
To be relational or not…the easiest way to resolve this is to proudly say Oracle is not a RDBMS,lets get one.Please could the predenters stand up….IBM,MySQL..MS..anyone!
NO ONE! well suppose Oracle is the best relational or not
David |
Does it matter? A big YES. The benefits of real RDBMS compared to SQL are plenty.
The mismatch of incompatible OLAP tools, associated storage models and the expense of integrating them with operational systems are a direct legacy of SQL’s failure to implement the relational model.
Another example is the pernicious paradox of denormalization. Again, SQL doesn’t implement the model therefore it fails to achieve better data independence and makes necessary some messy and expensive compromises.
A final example, what is the cost of dealing with duplicate data in SQL operations? Date and others have demonstrated convincingly how inferior SQL’s multi-set model can be from an optimization perspective.
Praveen |
Neverthless oracle is RDBMS, it caters for a functional database requirements rather than any prevailing softwares.No scope for any other “pets” for atleast another 30 years.
Sajjan |
Hi Tim,
You said “you can’t drop the index if it supports a key — you must lose the key too.”
I understand you can disable to index if you do not wish to use this index.
Anyways, if you want Oracle to be RDBMS by removing this constraints, then you go 90 to 0 in 100 scale as you have data inconsistency all around which falls into the category of non DBMS further?
There are some other views on relational model also - Like:
Uses a multi-set model rather than a set-based model: ??
Breaks the Information Rule in multiple ways (duplicate rows, duplicate columns, nulls) : Why you want to have duplicate columns in a table? nulls? I thought it addresses to RDBMS concept
Lacks true projection and relational closure: ??
Does not deliver guaranteed access: how
Lacks relational comparison: how
Lacks relational assignment: how
Lacks key derivation: wow ! how?
Does not support keys on views or derived tables: Materialized views
Uses three-value logic: what is this now?
Has poor support for data independence: I like “Poor” and pls define what is independence
I do not know how David could prove these and if he proves this then he is pointing towards very disorganized database systems for which oracle already has provisions.
My point is let’s not talk theory and be practical. What Oracle as an RDBMS has achieved has not been achieved by any other players and we cannot ride on a bus towards San Antonio if we want to go to Virginia simply because that bus is well equipped!
Thanks,
Sajjan
David |
Sajjan,
Do some reading. A good place to start is: <a href="http://www.amazon.com/Database-Depth-Relational-Theory-Practitioners/dp/0596100124" title="http://www.amazon.com/Database-Depth-Relational-Theory-Practitioners/dp/0596100124" target="_blank">http://www.amazon.com/Database-Depth-Rel…</a>
You must be logged-in to post a comment. Log-in/Register