Eye on Oracle

Jun 5 2007   11:18PM GMT

Is Oracle relational? Redux

Ken Cline Profile: Clinek

My post a few weeks ago, Thirty years of Oracle innovation — but is it really a RDBMS?, generated quite a bit of feedback. Actually, there was a lot of heat but not much light, as they say.

Here is a representative sampling of your comments:

  • “Of course Oracle started basing its DBMS on the relational model. Oracle falls far short of being a true RDBMS, though. This is not overly negative though as there is no DBMS that I am aware of that is truly relational according to the relational model.”
  • “Calling Oracle’s DBMS a ‘SQL DBMS’ — why bother? Who cares? Mr. Codd’s model was just a model, a paradigm upon which others can build.”
  • “Hats off to Codd and Date for developing relational theory. Sadly, they lacked a company with the vision to turn it into market dominance. Oracle provided that business vision. Credit is due for that. As for the academic question, which would you rather be, right or rich?”
  • “One thing to remember is that if databases in the ’80s were actually fully relationally-compliant, they would have used so many resources that the actual benefit would be negligible, because it would have eaten almost all available computing resources . . . “
  • “The work of Codd and Date deals with a theoretical mathematical model that would be great in an ideal world. Oracle built a product based on that theory embracing the limitations we have in the real world.”
  • “It’s about more than just a name. The marketing efforts of IBM, Oracle, et al have obscured the benefits of real RDBMS compared to its SQL imitations. After 30 years, hopefully the time is right for a new generation of truly relational systems. Certainly the technology is in place today to make that possible.”

You get the idea. The majority opinion is roughly that no, Oracle is not a relational DBMS but it’s close enough, given practical limitations. Of course, the majority is not always right.

Codd’s 12 rules for relational compliance are well-known. Which ones exactly does Oracle violate? What if the company, for some reason, decided that 11g should be a true RDBMS. What would change? Would it really affect DBAs or developers in the trenches? I’d be interested to know your thoughts.

Cheers, Tim

12  Comments on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
  • Clinek
    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.
    0 pointsBadges:
    report
  • Clinek
    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.
    0 pointsBadges:
    report
  • Clinek
    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.
    0 pointsBadges:
    report
  • Clinek
    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: http://www.dbdebunk.com/page/page/1396241.htm See also: http://www.dbdebunk.com/page/page/3278346.htm Hope that helps, Tim
    0 pointsBadges:
    report
  • 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
    0 pointsBadges:
    report
  • Clinek
    David raises some excellent limitations/violations of SQL. Here is some more food for thought (from http://www.alphora.com/tiern.asp?ID=HIGHLEVEL): "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
    0 pointsBadges:
    report
  • Clinek
    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. http://www.warthman.com/projects-tymshare-b.htm Regards, Mike
    0 pointsBadges:
    report
  • Clinek
    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).
    0 pointsBadges:
    report
  • Clinek
    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
    0 pointsBadges:
    report
  • 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.
    0 pointsBadges:
    report
  • Clinek
    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.
    0 pointsBadges:
    report
  • Clinek
    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
    0 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: