Re: non relational extensions
I believe it was Ted Codd who said "No real application runs in third normal form".
The relational model is great, and it's important to remember that the things that make it great are that it is simple, dynamic, easy to understand and helps ensure you get correct results. IMO the two most common mistakes people make are being overly worried about breaking the model where necessary, and conversely, not realizing the benefits of things like human readable keys.
Relational databases became popular because the declarative high level query language was less time consuming to write queries in than earlier non-relational database.
SQL is far from the perfect query language though. It's syntax is often bizarre and confounding, and has many non relational extensions (column ordering, duplicate tuples in a relation).