I am not good at Database. Is there anything I can take so I reach to higher level?

kheang profile image Taing Hangkheang ・1 min read


Editor guide
rhymes profile image

One of the reasons why relational databases are quite clear to me is because I paid attention during the "DB fundamentals" university course many years ago and because the book we had was gold. I think I still have it somewhere in the attic at my parents home.

I just googled and the book apparently still exists and has been kept up to date: Fundamentals of Database Systems, 7th Edition

It's a university course book and goes pretty into depth of DB design, so don't be fooled by the title, it's not a "tutorial" book.

If you want something a little bit less "theoretical" I've heard good things from this: Relational Database Design Clearly Explained

I have said in another thread that I don't buy tech books that much lately but DB design is one of those topics that are not a fad or tied to a specific language and for which a book is definitely worth it. Even if you use a multi database application (or based on a non relational DB) it's worth to have strong fundamentals on how to structure and relate data.

dmfay profile image
Dian Fay

There are a few different aspects of working with databases: architecture and design, analysis and query construction, and of course there's the entire operational side. You'll be doing some of each no matter what and there's obviously a lot of common ground, but it'll help if you know which way you want to lean. If you have the opportunity to take a discrete math course, do so. Some resources:

Database design

  • Applied Mathematics for Database Professionals, Lex de Haan and Toon Koppelaars: starts with the fundamentals of Boolean logic and set theory to build a rigorous model for representing relational data, with practical examples all the way. It's a bit dry but quite thorough.
  • databaseanswers.org/data_models/ : see how actual database architects have approached all manner of practical data modeling problems! Work out why they made the decisions they did, see if you can improve on them (for example: this model doesn't allow for a wine to be made with multiple grape varietals).


  • Mastering PostgreSQL in Application Development, Dimitri Fontaine: focuses on Postgres but one of the many nice things about SQL is that most of it's portable so there's a lot that's generally useful as well.
  • A Curious Moon, Rob Conery (I should mention I edited it): part tutorial, part scifi novel, using publicly available datasets from NASA to teach basic to fairly advanced SQL from a data analysis perspective.

Operations and tuning

  • Database Reliability Engineering, Laine Campbell and Charity Majors: covers risk management and operational practice for all manner of datastores, not just relational databases. Emphasis on distributed clusters.

Overall there's no substitute for hands-on exploration, even though databases tend to be much slower-moving than other areas (it can take a while for structural problems to become apparent, changes need to be made deliberately). In addition to being the best RDBMS available, Postgres' documentation is an excellent resource if you want to dive in yourself.