views:

182

answers:

7

If one of relational databases paradigms is to be tuple oriented we have the biggest limitation here.

If one could design column oriented db, that would improve performance a lot. Vector operations would perform out of the box, indexing, hashing for simple symbol columns lookups, linked lists behind the scenes as engine.

Memory mapping: dumps in huge chunks in microseconds as well as loading those disk images.
And still have use well understood and standard language (SQL) that multiple vendors support.
Imagine how many tools could be designed for interfacing that thing, because of its simplicity.
Wouldn't it be more robust (and KISS at the same time)?

UPDATE
Thanks to all contributors.
Question has been unjustly closed, though i've found your all answers very informative.

+1  A: 

Google's proprietary database is already column-based. That's one of the reasons your searches and other Googly things happen so quickly. See this wiki article which also includes links and references to other implementations.

As far as why this type of db is not in use? There are several reasons, one of which is that it's not necessary for all implementations. For example, you have a desktop computer at home running some desktop databases and not a mainframe running a massively scalable data repository. You could have the latter but using it to store your data would be akin to using a chain saw to cut your butter.

Besides, there are several other database types such as object oriented and ontological. No one kind will be right for everything, but for now, the tried and true row-based is in place and working for a lot of people.

Paul Sasik
Why the downvote?!?
Paul Sasik
@Paul: I didn't vote your answer down but I don't think it answers the question. The question is about column and tuple oriented storage models for SQL DBMSs / RDBMSs. The term "column store" may be useful to describe Google's database but that has nothing to do with the storage for an RDBMS because Bigtable is not an RDBMS.
dportas
@Paul: *"A Bigtable is a sparse, distributed, persistent multi-dimensional **sorted map**. The map is indexed by a **row key**, **column key**, and a timestamp; each value in the map is an uninterpreted array of bytes."* – Bigtable: A Distributed Storage System for Structured Data (Google, Inc.)
Bakkal
+1  A: 

There are several column-oriented databases commercially available, for example Vertica. I worked on a specialized high insert rate, write-mostly store with fixed schema. While the optimized indexing was important, more important to us was the improved compression ratios achieved on columns with sparse value distributions.

unhillbilly
+1  A: 

You mean like this?

Vector Database

You might be interested in OLAP as well.

OLAP

JustBoo
A: 

If you look for "nosql" you'll find a whole bunch of recent databases which aren't row-oriented, eg couchdb

Nicolas78
+3  A: 

Are all modern RDBMS row oriented?

No. They're designed for specific tasks, say OLTP vs OLAP. Even the popular ones like MySQL have column-store engines (ex: Infobright). And there are DBMS's that are built as a column-oriented DB from the ground up as well.

Here's a potentially interesting read for you: C-Store: A Column-oriented DBMS (PDF format)

LucidDB is a popular column-oriented database for data warehousing and BI:

LucidDB is the first and only open-source RDBMS purpose-built entirely for data warehousing and business intelligence. It is based on architectural cornerstones such as column-store, bitmap indexing, hash join/aggregation, and page-level multiversioning. Most database systems (both proprietary and open-source) start life with a focus on transaction processing capabilities, then get analytical capabilities bolted on as an afterthought (if at all). By contrast, every component of LucidDB was designed with the requirements of flexible, high-performance data integration and sophisticated query processing in mind. Moreover, comprehensiveness within the focused scope of its architecture means simplicity for the user: no DBA required.

See its list of features for those that overlap with your interests here: LucidDB Features

And still have use well understood and standard language (SQL) that multiple vendors support.

You can use SQL with LucidDB.

Bakkal
Thanks for the link to LucidDB, C-store - I knew it already though very informative post.
bua
A: 

"If one could design column oriented db..."

Amoeba
+1  A: 

There are several column oriented SQL DBMSs and they have been around for years. Sybase IQ and Vertica being two well known examples. These are columnn stores in the sense that they use column based storage internally - they still use exactly the same SQL table-based data model as any other SQL DBMS.

Unfortunately the term "column oriented" or "column store" has much more recently been appropriated by some NOSQL databases to refer to an entirely different concept. Bigtable for instance. In this context column oriented means a different data model (not relational or SQL). This new definition of a decades-old term has lead to a deal of confusion - especially for people who hadn't heard the term until this newer wave of products came along.

http://dbmsmusings.blogspot.com/2010/03/distinguishing-two-major-types-of_29.html

dportas
+1 thanks for the link and historical image, very informative.
bua