DEV Community

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

Collapse
 
dmfay profile image
Dian Fay • Edited

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).

Usage

  • 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.