introduction to nosql column-oriented database traditional relational databases are row-orientedwith each row having row id and each field within the row stored together in table let' sayfor example' sakethat no extra data about hobbies is stored and you have only single table to describe peopleas shown in figure notice how in this scenario you have slight denormalization because hobbies could be repeated if the hobby information is nice extra but not essential to your use caseadding it as list within the hobbies column is an acceptable approach but if the information isn' important enough for separate tableshould it be stored at allname birthday hobbies jos the boss archeryconquering the world fritz von braun freddy stark delphine thewiseone row id building thingssurfing swordplaylollygaggingarchery figure row-oriented database layout every entity (personis represented by single rowspread over multiple columns every time you look up something in row-oriented databaseevery row is scannedregardless of which columns you require let' say you only want list of birthdays in september the database will scan the table from top to bottom and left to rightas shown in figure eventually returning the list of birthdays name birthday hobbies jos the boss archeryconquering the world fritz von braun freddy stark delphine thewiseone row id building thingssurfing swordplaylollygaggingarchery figure row-oriented lookupfrom top to bottom and for every entryall columns are taken into memory indexing the data on certain columns can significantly improve lookup speedbut indexing every column brings extra overhead and the database is still scanning all the columns