Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>SQL in general has some serious deficiencies as a database language. Just a few of the problems are:</p> <ul> <li><p>Duplicate rows (multi-set rather than set-based model)</p></li> <li><p>Nulls and three value logic add complexity, ambiguity and inconsistent results without adding any expressive power to the language</p></li> <li><p>SELECT statement syntax is much more verbose and complex than the relational algebra </p></li> <li><p>Lack of support for multiple assignment means that referential integrity support and support for constraints in general is severely limited</p></li> </ul> <p>Two examples of more specific query problems that are hard in SQL:</p> <ul> <li><p>No simple equivalent for transitive closure in SQL. Selection from adjacency relation structures therefore requires the use of either procedural code, cursors or the non-intuitive and hard to optimise recursive query syntax.</p></li> <li><p>Lack of key inheritence means that SQL query interfaces invariably return simple two dimensional tables, which is a major drawback for decision support (OLAP) type of queries that are intrinsically n-dimensional.</p></li> </ul> <p>Improvements? I don't believe there are any useful improvements that would make sense because fixing the above would change the language so radically that there wouldn't be much point in even pretending it was SQL any more. The best way forward I believe is to develop entirely new, truly relational languages. Date and Darwen's D model being the most obvious successor to SQL has already lead to a number of new implementations of relational languages.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload