Dimensions of NoSQL-ness

3 views
Skip to first unread message

Johannes Ernst

unread,
Dec 9, 2009, 6:54:03 PM12/9/09
to nosql-di...@googlegroups.com
Seems there are several dimensions that people think NoSQL is different:

1. SQL-the-language vs. alternate query languages

2. A tabular model for data as opposed to one that is not (e.g. key-value, object, graph, ...)

3. ACID vs. non-ACID (lumping a bunch of subgroups into one)

4. Centralized (i.e. all your data is conceptually in the same place) vs. distributed / decentralized (e.g. you can't even iterate over it, in the other extreme)

What am I missing?

It's interesting to observe that any "NoSQL" product could be "NoSQL" in any number of these dimensions. There is no need that, say, ACID requires a tabular model, or that centralized implies SQL-the-language.

Which would also explain why so many "NoSQL" products are so dissimilar to each other.

Cheers,


Johannes Ernst.

Alex Woodhead

unread,
Dec 9, 2009, 7:36:16 PM12/9/09
to nosql-di...@googlegroups.com
Just like to share an observation when moving from Cache database development to using MS SQL.

In MS SQL the table definition cannot be isolated from the data. This is a real pain for source control. Anti-pattern?

What I mean is that I can't delete and create a table without loosing the data that it contains. I am limited to using alter statements. Stuck with exporting / importing the data between a table and flat files.

In Cache I can overlay / map many tables over arbitrary storage if I so wanted. I can create and manipulate data before even thinking about having tables.

I was wondering whether this could be used as one of the generalisations of what a "NoSQL" database is.

Maybe a "NoSQL" database is one where tables are optional? Where tables are just a view of data, not hard container / schema for storage.

Johannes Ernst

unread,
Dec 9, 2009, 7:44:24 PM12/9/09
to nosql-di...@googlegroups.com
I augment my list to include this as dimension #5 -- not sure what to call it though.

--

You received this message because you are subscribed to the Google Groups "NOSQL" group.
To post to this group, send email to nosql-di...@googlegroups.com.
To unsubscribe from this group, send email to nosql-discussi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/nosql-discussion?hl=en.

Dwight Merriman

unread,
Dec 9, 2009, 7:57:11 PM12/9/09
to nosql-di...@googlegroups.com
the way i like to think about nosql in general is that regardless of product there are:

(a) no joins
(b) no complex transactional semantics

these restrictions originated so that we can scale horizontally -- your #4.  they also lead to some corollaries, such as improved performance (sometimes), and also ease of development because no joins -> !relational -> opens up the option of more object-friendly data models and more schemaless designs.  (actually technically, one could make an RDBMS without predefined columns...)


eprpa...@gmail.com

unread,
Dec 10, 2009, 1:45:10 AM12/10/09
to nosql-di...@googlegroups.com, Dwight Merriman
I don't think "no joins" is right. In looking at my code I can see a lot
of joins, just programmed in.I take one key, leading to one value and
take that value as the search key to another value.

Now if I take your no complex transactional semantics to mean no ACID,
then I might agree.

Chance
> <mailto:nosql-di...@googlegroups.com>.
> To unsubscribe from this group, send email to
> nosql-discussi...@googlegroups.com
> <mailto:nosql-discussion%2Bunsu...@googlegroups.com>.

Jason Dusek

unread,
Dec 10, 2009, 3:33:44 AM12/10/09
to nosql-discussion, Dwight Merriman
2009/12/9 <eprpa...@gmail.com>:
> I don't think "no joins" is right. In looking at my code I can
> see a lot of joins, just programmed in.I take one key, leading
> to one value and take that value as the search key to another
> value.
>
> Now if I take your no complex transactional semantics to mean
> no ACID, then I might agree.

What do transactions have to do with relations? Referential
integrity is there to ensure the integrity of the relations;
but if we just have soft consistency with joins than don't we
still have something that is basically the relational model?

--
Jason Dusek

Johannes Ernst

unread,
Dec 10, 2009, 11:33:52 AM12/10/09
to nosql-di...@googlegroups.com
Perhaps we are talking about "no joins performed by the database itself"?

eprpa...@gmail.com

unread,
Dec 10, 2009, 12:50:31 PM12/10/09
to nosql-di...@googlegroups.com
Yes, I believe so. But "joins" can't be a way to distinguish the systems
since, in one way or another joins will be done.

Chance

Dwight Merriman

unread,
Dec 10, 2009, 1:02:17 PM12/10/09
to nosql-di...@googlegroups.com
i meant "no joins performed by the database itself" when i said "no joins". 

Paulo Gaspar

unread,
Dec 10, 2009, 2:23:33 PM12/10/09
to nosql-di...@googlegroups.com
And that is something SQL is good at making simpler and efficient (yeah, usually on single machine DBs and so on).

Have fun,
Paulo Gaspar
Reply all
Reply to author
Forward
0 new messages