In a relational database, data access is always by row. Changing the focus from the row to the column can improve performance when large amounts of data are aggregated in a few columns. Generally speaking, a row-orientated focus is preferable for online transaction processing (OLTP) systems and a column-oriented focus is preferable for online analytical processing (OLAP) systems. Column stores are not useful for systems with wildly varying queries or supporting ACID transactions.
CDBMSes are well-suited for use cases in which writes are uncommon and applications need to access a few columns of many rows at once. For example, column databases are well-suited for data marts that query large amounts of data aggregated for a small number of columns. The CDBMS can speed up analytical queries of the data in the data mart because it can focus just on the columns that need to be read and doesn’t need to read through thousands of rows.
Column stores are also useful when data has an expiration date because it is possible to set up a column so it will expire automatically after a certain date. Because the data stored in columns is typically similar, and the columns are stored adjacent to one another, some CDBMSes can compress data and help storage capacity to be used more efficiently.
The concept of a column store is not new and variations of the idea have been implemented as part of relational databases in the past. NoSQL and relational column stores both focus on the column as the unit of storage, but NoSQL column stores permits columns to differ across column family rows, which is not permitted in a relational database.
A CDBMS may also be called a columnar database management system, column-oriented database management system or column store database management system.