Database is a necessary evil that most software engineers have to deal with, even though they'd rather be writing elegant code that solves real problems. It's essentially a giant spreadsheet that stores all the data your application needs, which you have to cajole and manipulate to get what you want.
I was hoping to refactor the search algorithm today, but instead I spent all day debugging an obscure database query that was causing the new Facebook for Cats site to crash.
Our daily standup meeting devolved into a 30 minute argument between the senior engineers about the best way to structure the product database, while the rest of us rolled our eyes and wished we were back at our desks coding.
Martin Fowler has an insightful article on the Relational Data Model if you want to better understand the underpinnings of most modern databases.
For a look at how databases fit into the bigger application architecture picture, check out Fowler's piece on Reporting Databases.
If you're interested in some of the newer trends challenging the relational database hegemony, Fowler's post on the Database Thaw is worth a read.
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.