There's a lot of confusion among these terms. I'd like to throw my understanding out and see if people agree. I have seen conflicting and wrong definitions all over the web.
In my mind, wide column and column family DBs are essentially the same thing. They are
- the data is organized logically by a group of key-value pairs (each one called column);
- is identified by a unique row key;
- each row can have variable length or definition of columns and
- stored on disk one row after another. So column family (wide column) table is similar to relational DB's table in that they are organized as rows still.
The main difference is they don't have fixed schema for columns and can't do table join obviously.
An example of 3 rows (column families): each row has different length and/or columns, but on disk rowkey1's entire content is a continuous line followed by other rows similar to relational DB
rowkey1 k1-v k2-v k3-v
rowkey2 k1-v k4-v
rowkey3 k2-v k4-v k5-v
On the other hand, the term columnar DB is the same as column-oriented DB. They are stored on disk one column at a time, not one row at a time. It is great for time series or any multi series analytical purpose. The fact each column has the same type of data and is stored together allows for better data compression as an added bonus.
an example:
on disk:
a:1 b:2 c:3 d:4
10:1 9:2 8:3 7:4