In a relational database, a column is a set of data values of a particular simple type, one value for each row of the database. A column may contain text values, numbers, or even pointers to files in the operating system. Some relational database systems allow columns to contain more complex data types; whole documents, images or even video clips are examples. A column can also be called an attribute.
Each row would provide a data value for each column and would then be understood as a single structured data value. For example, a database that represents company contact information might have the following columns: ID, Company Name, Address Line 1, Address Line 2, City, and Postal Code. More formally, each row can be interpreted as a relvar, composed of a set of tuples, with each tuple consisting of the relevant column and its value, for example, the tuple ('Address 1', '12345 West Example Street').
The word 'field' is normally used interchangeably with 'column'. However, database perfectionists tend to favor using 'field' to signify a specific cell of a given row.
Relational databases mainly use row-based data storage, but column-based storage can be more useful for many business applications. For example, a column database has faster access to which columns can read throughout the ranging process of a query. Any of the columns are known to serve as an index.
Alternatively, row-based applications process only one record at one time and normally need to access a complete record or two. Column databases have better compression as the data storage permits highly effective compression since the majority of the columns cover only a few distinct values compared to the number of rows.
Furthermore, in a column store, data is already vertically divided. This vertical organization allows operations on different columns to be processed in parallel. If multiple items need to be searched or aggregated, each of these operations can be assigned to a different processor core. Generally in a row-based database table, rows are read through and checked when retrieving data representing the desired columns. Therefore, requests on a large amount of data can take a lot of time, whereas, in column database tables, this information is kept physically next to each other, knowingly increasing the speed of certain data queries.
The main benefit of keeping data in a column database is that some queries can come really quickly. For instance, if you want to know the average age of all users, you can easily jump to the area where the 'age' data is stored and read just the data needed instead of searching up the age for each record row by row. During querying, columnar storage avoids going over non-relevant data. Therefore, aggregation queries where one only needs to look up subsets of total data develop more quickly, compared to row-oriented databases.
Also, as the data type of each column is alike, better compression occurs when running compression algorithms on each column, which will help queries churn results more quickly.
There are many situations where multiple fields from each row will be desired. Column databases are usually not the best option for these types of queries. The more fields that need reading per record, the fewer benefits there are in storing data in a column-oriented fashion. If queries are looking for user-specific values only, row-oriented databases usually perform those queries faster.
Secondly, writing new data could take more time in columnar storage. For instance, if you're inserting a new record into a row-oriented database, you can easily write that in one process. However, if you're inserting a new record into a column database, you need to write to each column one by one. This results as it will take longer time when loading new data or updating many values in a columnar database.
Some examples of popular databases include:
Manage research, learning and skills at defaultlogic.com. Create an account using LinkedIn to manage and organize your omni-channel knowledge. defaultlogic.com is like a shopping cart for information -- helping you to save, discuss and share.