Q: What is the difference, in layman's terms, between a relational database and a columnar database?
A: I have a great analogy for you.
Imagine that you are at a football stadium. There are 100,000 fans in the seats. Obviously today is somebody's birthday. So if you asked everybody whose birthday is today, about 1/366 people will stand up. Go through the calendar, and you'll eventually get everyone to stand up.
In a relational database, you use the entire stadium to 'store' the actual people by birthday. Everybody has their own seat. In a column database, you only have 366 actual people 'stored' and then you have 100,000 pointers to the other seats where those people would be stored.
In this analogy, you are the end user standing in the parking lot asking for all of the people born today. That is your query. When your answer for today is 273, you will see 273 people come out of the stadium with the birthday attribute of today. What you don't know is that the columnar database has only one person stored in the whole stadium that represents all of those 273, whereas the relational database is actually using 273 seats. So that makes the columnar database 273x as efficient as the relational database.
And guess what, the larger the number of total people 'stored' the greater the relative efficiency of the columnar store.