Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm not really an expert on the field. But, have you considered that maybe SQL is massive for good reasons?

The subset of SQL that covers majority of use cases is actually small and probably mostly covered by the standard.

All the rest of SQL which makes it a massive beast is for all those cases where adding the logic to the database would've been the most efficient for all those who need that extra bit of efficiency.



I think SQL is massive because of two major reasons:

1. It has a highly inconsistent, non-generalized syntax

2. It tries to reuse the language for everything -- from schema specification, to querying, to administration, to query engine hints, to procedural language definitions

The RDBMS in total is a highly complex system, but SQL adds a lot of accidental complexity on top of it.

Also for a new DB, you hardly need to support the whole suite of features to produce a useful system -- you just need to constrain the recommended usecases. See SQLite for the quintessential example -- they dropped MVCC and a lot of management/multi-tenancy features as they targetted a surprisingly large niche.

As it turns out, there's a wide variety of data management needs -- SQL is often a beast because most RDBMS's have a goal of targetting all of them.


It's slightly more likely that modern SQL is the byproduct of several query language specifications accelerated to ludicrous speeds and set to collide with each other. Out one end of the apparatus, SQL-86 emerged.

A little known fact about this experiment: the residue splattered along the interior of the apparatus was recovered and named LDAP.


LDAP is a stripped down version of the X.500 directory, but I wasn’t aware that had anything to do with SQL. X.500 is hierarchical, not relational, and it doesn’t have a query language as such - http://sec.cs.kent.ac.uk/x500book/Chapter.5/Chapter5b.htm#5.... - neither did the original version of LDAP (RFC 1487 https://tools.ietf.org/html/rfc1487 RFC 1488 https://tools.ietf.org/html/rfc1488). The text representation of filters didn’t turn up until RFC 1960 https://www.rfc-editor.org/rfc/rfc1960.html (1996) and it’s just a rendering of the ASN.1 structure.

I thought SQL descended relatively straightforwardly from SEQUEL.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: