|
|
|
|
|
by jklowden
1855 days ago
|
|
IBM did not spend the money it did to replace its premier database product, IMS, with another DBMS, DB2, just to enable "simple database queries". Yes, SQL was influenced by other "4th generation languages" of the era. But IBM judged -- correctly, on the evidence -- that most programmers would not take the time to master first order predicate logic or set theory. So they came up with something that implemented the Relational Model in a simple way, one that would attract new converts. SQL has plenty of warts and defects, but its success at extinguishing every other database query language can't be denied. |
|
The relational model with unions of conjunctive queries at its core is excellent. SQL on the other hand feels like some weird COBOL dialect that gives you an incredibly verbose implementation of it.
With that said, there are a few enterprisey NoSQL databases which are relational yet provide a nicer language to work with than SQL. I mentioned datomic (which also has persistence as its key feature), but there's also TypeDB which lets you use the first class support for recursive queries to support inheritance more easily. And of course there's google's Logica language which compiles to SQL and lets you use datalog syntax and the ability to write reusable queries, though it doesn't support recursion due to the nature of its target.