Most upvoted comment
Most popular programming book on Reddit. rank no. 54
How to waste CPU and kill your disk by scaling 100 million inefficiently(r/programming)
First don’t think of this as “DBA” stuff – you’re a developer, you need to know database technology, period. Read this rant by Dennis Forbes in response to Digg’s CTO’s complaints about databases it’s very reminiscent of TFA.
Read Data and Reality by the late William Kent (here’s a free copy) and get a fundamental understanding of “information” vs. “data”. Then read Information Modeling and Relational Databases to pickup a couple practical approaches to modeling (ER & OR). Now read The Datawarehouse Toolkit to learn dimensional modeling and when to use it. Practice designing effective models, build some production databases from scratch, inherit some, revisit your old designs, learn from your mistakes, write lots and lots and lots of SQL (if you want to get tricky with SQL I suggest to pickup Celko’s SQL for smarties – it’s like the Hacker’s Delight for SQL).
Many strange models you may encounter in the wild are actually optimizations. Some are premature, some outright stupid, and some brilliant, if you want to be able to tell one from the other then you’re going to dive deep into internals. Do this generically with Modern Information Retrieval and Managing Gigabytes then for specific RDBMSs Pro SQL Server Internals, PostgreSQL Internals, Oracle CORE, etc.
Reflect on how awesome practically every modern RDBMS is as a great technological achievement for mankind and how wonderful it is to be standing on the shoulders of giants. Roll your eyes a little bit whenever you overhear another twenty-something millenial fresh CS graduate who skipped every RDBMS elective bleat about NoSQL, Mongo, whatever. Try not to fly into murderous rage when another loud-mouthed know-nothing writes at length about how bad RDBMS technology is when they couldn’t be bothered to learn the most basic requisite skills and knowledge to use one competently.