
Database expert on why NoSQL mattered – and SQL still matters - jasondc
https://medium.com/s-c-a-l-e/database-guru-on-why-nosql-matters-and-sql-still-matters-c64239fe84fd
======
applecore
It's pretty clear that SQL won, although ideas from “NoSQL” have been
assimilated, i.e., storing and querying semi-structured or unstructured data
in an otherwise relational data model.

~~~
jamiesonbecker
SQL did win. _Sorta._

NoSQL brought a lot of new ideas. Redis might seem superficially like NDB
(MySQL Cluster), but underneath, it's extremely different. What kind of sane
person could design a single-threaded, single process database? @antirez built
something radical that delivers _unbelievable performance._

More innovation and invention has happened in data in the last decade than in
the previous thirty, and it's because people experimented and _weren 't afraid
to fail._

Most NoSQL datastores swap limitations in one area for advances in another.
Riak, Redis, DynamoDB.. S3 is probably one of the most successful examples of
NoSQL, and its very limitations are crucial to its success. Each has clearly
defined use cases.

Some people say "Big Data" or "NoSQL" when they really just mean Hadoop or
MapReduce, but NoSQL just literally means "everything that's not SQL."

SQL is still great. Awesomeness like Postgresql's supporting every data type
imaginable, Redshift and Aurora, file-based db's like SQLite...

So, yes, SQL won. _But so did NoSQL._ And all of the rest of us too.

~~~
abannin
SQL, as a language, will always win. There is no more elegant way to work with
sets, and you can't work with data without thinking about sets.

I really like his point about the original breakthrough of SQL being the
ability to abstract the way the data is stored from the application, and the
language was just a natural outgrowth.

~~~
mkozlows
SQL is actually a pretty terrible syntax, though. Relational algebra is
beautiful and elegant, but SQL is a dated, '70s-y syntax on top of that.

~~~
Aloha
how/why?

To the person who only knows SQL from feeding and care of servers, this seems
like complaining about the color of a car that gets 1000 miles per gallon.

------
woah
Why are the concepts of a query language different than SQL, loose typing,
flexible schemas, horizontal scalability, and a lack of joins all conflated as
being the same thing- "nosql".

~~~
silon7
To me, a major important thing about NoSql is the predictable behavior
(because all queries are simple and there is no "query optimizer").

If I could ensure SQL never using index/table scans and make it fail without
proper indexes it would be a major help.

~~~
ahachete
How not having a query optimizer makes queries more predictable? It makes them
slower for sure, but not more predictable.

Indeed, I find NoSQL very unpredictable. When your query hits and index, the
query goes well. When not, you usually end up doing a whole database scan.
Plus you usually cannot use more than one index for a given query, and some
NoSQL require an index just for ordering....

~~~
silon7
I want my queries to always behave the same and fail without an index.

(you can't have a reliable system with random behavior where system drops to
table scans when statistics are incomplete or something)

And yes, ordering requires an index.

~~~
amelius
> I want my queries to always behave the same and fail without an index.

So I take it you are not using any kind of cache in your memory hierarchy?

~~~
silon7
This exactly where I observe MSSQL dropping to table scans too soon. If
indexes are cached (or when using a ssd), they will be much faster for many
many records than a table scan (which will always require disk access in a
realistic scenario).

I agree that table scan will be faster if I need a large percentage of the
table (more than can be cached).

------
rjusher
I do think it matters where and how you store your data, but I really like how
he puts it simple, is not a battle between to opposing sides, simply there is
a need for a data store that is not that structured, it is much simplier to
prototype and achieve an mvp with a NoSQL Storage, but once you are in the
real world you need to provide some type of guarantee to your users, in terms
of data integrity.

In my opinion everybody needs to understand the differences and use each when
it is the most convenient, use the best tool for the right job.

But maybe we will start to see some type of mixup between this two systems,
because as he mentions in the article, OpenSource is driving the future of the
databases, and due to this, the databases of the future would be more dynamic
and more synchronized to the needs of the developer.

------
merb
It doesn't matter where you store your data, as long as you always remember
that the data you store is the value of your enterprise.

