1. Column Oriented Database
A column-oriented DBMS is a database
management system (DBMS) that stores data
tables as sections of columns of data rather than
as rows of data.
The goal of a columnar database is to efficiently
write and read data to and from hard disk storage
in order to speed up the time it takes to return a
query.
Column Oriented Database has advantages
for data warehouses, customer relationship
management (CRM) systems, and library card
catalogs, and other adhoc inquiry systems where
aggregates are computed over large numbers of
similar data items.
2. Advantages of Column Database
One of the main benefits of a columnar database
is that data can be highly compressed. The
compression permits columnar operations — like
MIN, MAX, SUM, COUNT and AVG— to be
performed very rapidly.
Another benefit is that because a column-based
DBMSs is self-indexing, it uses less disk space
than a relational database management system
(RDBMS) containing the same data.
Column architecture doesn’t read unnecessary
columns.
Avoids decompression costs and perform
operations faster.
Use compression schemes allow us to lower our
3. Disadvantages of Column
Database
Increased Disk Seek Time
Increased cost of Inserts
Load time: Converting the data source into
columnar format can be unbearably slow where
tens or hundreds of gigabytes of data are
involved.
Incremental loads: Incremental loads can be
performance problematic.
Data compression: Some columnar systems
greatly compress the source data. However,
uncompressing the data to read it can slow
performance.
4. Row Oriented Database
In the context of a relational database, a row—
also called a record or tuple—represents a single,
implicitly structured data item in a table.
In simple terms, a database table can be thought
of as consisting of rows and columns or fields.
Each row in a table represents a set of related
data, and every row in the table has the same
structure.
5. Advantages and Disadvantages
Advantages:
Row-oriented organizations are more efficient when many
columns of a single row are required at the same time, and
when row-size is relatively small, as the entire row can be
retrieved with a single disk seek.
Row-oriented organizations are more efficient when writing
a new row if all of the column data is supplied at the same
time as the entire row can be written with a single disk
seek.
Disadvantages:
In a RDBMS, data values are collected and managed as
individual rows and events containing related rows.
A row-oriented database must read the entire record or
“row” in order to access the needed attributes or column
data.
Queries most often end up reading significantly more data
than is needed to satisfy the request and it creates very
large I/O burdens.
6. Comparison of Columnar
Database and Row Database
Column-oriented organizations are more efficient when an
aggregate needs to be computed over many rows but only
for a notably smaller subset of all columns of data,
because reading that smaller subset of data can be faster
than reading all data.
Column-oriented organizations are more efficient when
new values of a column are supplied for all rows at once,
because that column data can be written efficiently and
replace old column data without touching any other
columns for the rows.
Row-oriented organizations are more efficient when many
columns of a single row are required at the same time, and
when row-size is relatively small, as the entire row can be
retrieved with a single disk seek.
Row-oriented organizations are more efficient when writing
a new row if all of the column data is supplied at the same
time, as the entire row can be written with a single disk
7. Example
Here is an example of a simple database table with 4
columns and 3 rows [2].
ID Last First Bonus
1 Doe John 8000
2 Smith Jane 4000
3 Beck Sam 1000
In a column-oriented database management system,
the data would be stored like
this: 1,2,3;Doe,Smith,Beck;John,Jane,Sam;8000,400
0,1000;
In a row-oriented database management system, the
data would be stored like
this: 1,Doe,John,8000;2,Smith,Jane,4000;3,Beck,Sa
m,1000;
Editor's Notes
In a columnar database, all the column 1 values are physically together followed by all the column 2 values, etc. The data is stored in record order, so the 100th entry for column 1 and the 100th entry for column 2 belong to the same input record. This allows individual data elements, such as customer name for instance, to be accessed in columns as a group, rather than individually row-by-row.