SQL – is there a better way?

January 23rd, 2016

Next Tuesday at 11:20 am at Oracle headquarters there will be a panel discussion on SQL. You can participate whether you are there or not as we are collecting questions ahead of time and will video the panel to be posted later. The panel’s participants will be

You can add your questions to the list of questions here on the Google spreadsheet or in the comments on this post.

Is it worth discussing webscale? Webscale seems like a joke word mainly from that infamous NoSQL is webscale video though ironically I’ve seen it in new industry announcements even this week.

General areas of interest are what is the future of SQL? Will there always be SQL or will there be something to replace SQL? How can we improve SQL?  Where is the industry headed with SQL, No SQL and other ways of storing and retrieving data.

Currently the questions are:

  1. Why is SQL getting a bad rap?
    • Isn’t SQL slow? Why is it so slow?
    • Aren’t alternatives to SQL (XQuery, JSON find()) easier to use?
    • If SQL is so great, how do you explain the rise of NoSQL databases?
    • How much of the problem with Oracle SQL is it’s divergence of from  Codd’s relational algebra? (allowing duplicate rows, NULL, etc)
    • Chris Date, Pascal Fabien and others have expressed dismay at the differences in industry SQL vs relational algebra as set down by Codd. How much of a problem are these differences really?
  2. Is SQL hard to learn?
    • Is SQL a *real* programming language? Is it a functional language?
    • I’ve heard that I need to know relational algebra in order to be effective with SQL, is that true?
    • I’m an object-oriented developer, what’s an easy way for me to learn and use SQL? ***
    • How do I write loops in SQL?
    • Joins look painful — isn’t there an easier way?
    • I don’t want to filter entire tables; why doesn’t SQL let me look at the first few rows?
    • I’ve heard of JDBC, but it sounds really low level, like C; is there a easier way for me to interact with SQL?
    • How do I represent sparse data in SQL?
    • Is there a good IDE I can use for SQL? Anything other than SQL Developer?
  3. Why does Oracle have a NoSQL product?
    • Oracle seems to have flip flopped on NoSQL? Why? Is it because Oracle EE and SE have too much overhead for OLTP and ACID compliance?
      1. in May 2011 Oracle recommended not using NoSQL in a white paper titled “Debunking the NoSQL Hype,” the final advice being  “Go for the tried and true path. Don’t be risking your data on NoSQL databases.” *
      2. In Sept 2011 Oracle releases Oracle NoSQL database **
    • Is Oracle No SQL webscale What is webscale ?
    • NoSQL can do 5.6 million queries per second. Can Oracle do the same?
    • Why is Hadoop so popular even though Oracle SQL can run circles around HBase, Hive, Pig, Impala, etc
  4. What’s the difference between PL/SQL and SQL?
    • What does PL/SQL bring to the performance table? (question for Bryn and Steven)
  5. 12c Release 2 performance and reliability features e.g. Sharding
  6. Oracle Developer Advocate program (question for Steven)
  7. There was a time when Oracle only had “declarative referential integrity” which still live on as DISABLE RELY NOVALIDATE. When will Oracle implement SQL-92 ASSERT for arbitrary constraints. There is a rumor that Oracle is thinking about it.

 

* https://www.google.com/#q=%2B%22Debunking+the+NoSQL+Hype%22

**http://www.oracle.com/technetwork/products/nosqldb/learnmore/nosql-wp-1436762.pdf

Oracle suggested that the NoSQL approach was well-suited for certain use-cases:
“The Oracle NoSQL Database, with its ‘No Single Point of Failure’ architecture,
is the right solution when data access is “simple” in nature and application demands exceed the volume or latency capability of traditional data management solutions.  For example, click-stream data from high volume web sites, high-throughput event processing and social networking communications all represent application domains that produce extraordinary volumes of simple keyed data. Monitoring online retail behavior, accessing customer profiles, pulling up appropriate customer ads and storing and forwarding real-time communication are examples of domains requiring the ultimate in low-latency access. Highly distributed applications such as real-time sensor aggregation and scalable authentication also represent domains well-suited to Oracle NoSQL Database.”

*** “Using tables to store objects is like driving your car home and then disassembling it to put it in the garage. It can be assembled again in the morning, but one eventually asks whether this is the most efficient way to park a car.” (incorrectly attributed to Esther Dyson, the editor of Release 1.0).

Thoughts

The big questions for me are

  • Will there ever be an alternative to SQL?
  • Are there ways to improve SQL significantly?
  • Have we learned anything from No SQL? Has No SQL shown up any major flaws in SQL and relational?

The questions wanting to know if there are alternatives to doing joins struck me as strange when I first saw it. Now with some reflection it brings up the old argument of whether to normalize or de-normalize. In the de-normalized model we can often access all the data we want without a join but we loose the flexibility of the normalized model.

 

 


Uncategorized

  1. Trackbacks

  2. No trackbacks yet.
  1. Comments

  2. John
    | #1

    I would certainly be interested in the panel’s thoughts as to the impact of the differences between commercial SQL and relational algebra. Having a data language that followed the theory would make life simpler for both the companies creating SQL-DBMS/RDBMS and the users of these systems.

    I would like to see the ability to implement all data integrity declaratively within the DBMS; and would be interested in whether the panel can indicate if this is on the road-map and, if so, the possible timescales for implementation.

    I would be interested in the new physical models that may be supported in the future – or the greater publication of the existing physical models – in order to address the performance benefits that other DBMS technologies seem to offer. One of the great advantages of relational theory is the separation of the logical and physical models which does not appear to have been fully realized in commercial SQL-DBMS.

    Does the panel agree that the lack of data theory education among IT professionals – and many database professionals in particular – mean that we are in danger of stepping back 50 years to a pre-relational world? And that a lack of a truly relational commercial DBMS makes this more likely?

  3. khailey
    | #2

    HI John,

    Thanks for the question and this is a great question:

    >> I would certainly be interested in the panel’s thoughts as to the impact of the differences between commercial SQL and relational

    Will try and get some feedback on this at the panel discussion

  4. Paul Muller
    | #3

    I only just saw this and apparently it already happened!
    I doubt I could have come up with any better questions anyway.

    How did it go? I expect it descended into multiple small arguments with people espousing their particular view. Very few people are well versed enough with both “traditional” relational model and the “modern” noSQL alternative to be able to speak intelligently about the differences between them, their relative strengths and weaknesses, and where to go from here!
    Hopefully I’m wrong and it went well.

  5. khailey
    | #4

    all went well. It was filmed by Oracle, so if all goes well, it will be available for viewing soon.
    NoCOUG also plans to publish the good parts in the next NoCOUG journal as long Oracle approves.
    It was fun to have such a group of experts, especially Andy Mendelsohn, together to share their insights.
    It was a good start.
    On the other hand I want to go in to much more pragmatic detail for example
    * what NoSQL database is good to use when and what are the drawbacks.
    * how much unneeded problems are caused by the fact no databases follow the relational algebra as laid out by Codd
    * could SQL ever be replaced by another data language. The answer has to be yes, it’s just a question of when and how. When seems far off, so how might be more of the question.
    There was some discussion of logical vs physical implementation and how they map.
    All these areas could use much longer discussions. Look forward t this happening.


seven + 7 =