News for hackers. Stuff that matters.
Re:The 5 Stages of NoSQL by pmontra on Tuesday September 20, 2016 @03:10PM (#12542355)
The premises of the first step are often true, but strictly speaking they are false.

Some NoSQL dbs have schema. Cassandra does https://docs.datastax.com/en/cql/3.1/cql/cql_reference/creat... and I think hbase has too.

FoundationDb was (is?) ACID.

NoSQL literally means that it doesn't have SQL.

Re:The 5 Stages of NoSQL by paulddraper on Tuesday September 20, 2016 @03:25PM (#12542501)
Literally speaking, "NoSQL" as much for databases as "NoHTTP" means for application protocols. It says literally nothing other than it's not something else.

It could be key-value database or it could be a graph database. It could have a schema or it could be schemaless. It could support one index or it could support multiple. It could have a permissions system or it could be single-user. It could have a server process or it could be embedded.

The author is thinking of the MongoDB and CouchDB variety.

Re:The 5 Stages of NoSQL by osullivj on Wednesday September 21, 2016 @11:02AM (#12548773)
RethinkDB certainly has schema. Indices have to be defined in order to get_all (=select) and join. My JSON docs are quite flat and use foreign keys heavily to facilitate queries & joins. Guideline: if you find a doc with a member list in your design you should probably separate the member list into it's own table with a foreign key back to the parent doc and use joins to re-aggregate data. So I am normalizing the data just as I would for a relational DB. But I'm getting the benefit of using the same language for queries as the rest of the code - it's all Python. No more of that prepared statement JDBC shenanigans. And I get the massive benefit of RethinkDB's change feeds. So no need to build and maintain caches in all my server components. That's a big win.
Re:The 5 Stages of NoSQL by ngrilly on Tuesday September 20, 2016 @03:46PM (#12542690)
If your database has schemas, multi-entity ACID transactions and joins, then it's almost certainly a SQL database. A NoSQL database is one that misses one of this features. For example, ArangoDB provides multi-entity ACID transactions and joins, but is schemaless.