4 ms·
So it's not in first normal form. http://en.wikipedia.org/wiki/First_normal_form http://en.wikipedia.org/wiki/First_normal_form What's old is new again, and I w
by StrawberryFrog 17y ago
So it's not in first normal form. http://en.wikipedia.org/wiki/First_normal_form http://en.wikipedia.org/wiki/First_normal_form
What's old is new again, and I wonder if they even know it.
What's not addressed is that this may not be an advance over Relational databases. In fact, when relational databases were first designed, databases like this were all-to-common, and RDBMS rejected this kind of data model explicitly, for good design reasons. For instance, how do you select from or join to parts of the complex values inside a column?
- seiji 17y agoI believe the answer is http://browsertoolkit.com/fault-tolerance.png http://browsertoolkit.com/fault-tolerance.png People are just trying to store data in the most efficient system possible. Using RDBMS software to store data only queried by primary key that you know will never need to be aggregated or dynamically queried can be overkill.
- bhousel 17y agoYou have some catching up to do... :) They are not at all concerned about normal form or joins - it's just not that kind of a database. Here are some good blog posts that elaborate on the current non-RDBMS fad: http://www.readwriteweb.com/enterprise/2009/02/is-the-relational-database-doomed.php http://www.readwriteweb.com/enterprise/2009/02/is-the-relati... http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/ http://www.metabrew.com/article/anti-rdbms-a-list-of-distrib... http://randomfoo.net/2009/04/20/some-notes-on-distributed-key-stores http://randomfoo.net/2009/04/20/some-notes-on-distributed-ke... http://bcbio.wordpress.com/2009/05/10/evaluating-key-value-and-document-stores-for-short-read-data/ http://bcbio.wordpress.com/2009/05/10/evaluating-key-value-a... http://blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/ http://blog.boxedice.com/2009/07/25/choosing-a-non-relationa...
- th0ma5 17y agoThe guy that invented the normal forms also went on to invent analytical forms, which are the exact opposite. For example, the Entity Attribute Value (EAV) model, used by many including the W3C Semantic Web.
- blasdel 17y agoIt's too bad that RDF has been tainted by the W3C's pipe -dreams and been bludgeoned with a terrible XML serialization. EAV is by far my favorite data model.
- jbellis 17y ago> What's not addressed is that this may not be an advance over Relational databases It's not. The relational model is much better, for many applications. BUT. The missing context is, the relational model cannot be sanely scaled out across multiple machines. Replication mostly works with some pain, but scaling writes is just a nightmare -- and what you have to do to partition your data across multiple rdbms nodes means giving up all that relational goodness. So what you end up with is neither of {easily scaled, relational}. So if you can't have a scalable rdbms, the next best thing is a scalable key/columnfamily dbms. Something like Cassandra. Which, as a bonus, gives you significantly better per-node performance on modern hardware.
- gruseom 17y agoWhich, as a bonus, gives you significantly better per-node performance on modern hardware Could you expand on that last bit? i.e. what is it about modern hardware (and about Cassandra) that makes this true?
- jbellis 17y agoSummarized here: http://news.ycombinator.com/item?id=813894 http://news.ycombinator.com/item?id=813894
- Maro 17y agoCan you explain what the major advantage (and disadvantage) of the data model of Cassandra over a flat key-value store is?
- jbellis 17y agoYou can update at the column granularity, so having a row of 100k columns is fine since you don't have to rewrite the whole thing to update a small part. (Cassandra rows have a sparse list of columns, so you can treat a row as a sorted set, not just a fixed-size vector. The model Digg describes in another article uses this: http://blog.digg.com/?p=966 http://blog.digg.com/?p=966) Columns are also indexed so you can retrieve from large rows efficiently too. Finally Cassandra also adds the concept of a SuperColumn, which is a column that contains other columns.