On Apr 22, 2016, at 10:45 , Raymond Brinzer <ray.brinzer@gmail.com> wrote:
>
> Are there relational algebra expressions, or other operations
> necessary to a truly relational database, which cannot be translated
> into SQL? I'm not aware that there are, but I'd be interested to hear
> of it. If there were, there's a good chance you wouldn't be able to
> translate them into the parse tree, either.
The fundamental storage model needs to at least be a bit different. In particular, relations can't allow duplicates.
Youcould have nulls (Codd proposed two different forms of null IIRC: a single null value and two different null
values),although they should be more principled than the mess they are in SQL.
I am no expert on database optimization, but I understand that it is significantly easier to do query optimization in a
properlyrelational database, as it forms a reasonably simple algebra, which can be optimized much as you would optimize
evaluationof a numeric expression.
Major gains from a proper relational store would be:
- a better language, easier to parse, read and generate. Perhaps multiple equivalent query languages;
- other storage models (distributed and eventually consistent, say);
- simpler (in implementation and use);
We may also get some degree of faster and other good things. It also might be implemented in such a way that it can run
asa server or more like SQLite.