I’ve been thinking about what would be the most essential skills when working with relational databases. I’d probably break it down into two key capabilities, when it comes to developing performant code.
I’d start with a good understanding of relational design. It’s important to know the different forms of normalization, and understand when it is best to apply the more restrictive forms. Database design can make or break the performance of an application if it doesn’t match the purpose and activity of the application.
A second skill would be how to write sql code. There are so many different ways to do the same thing. Some perform better than others, and the performance isn’t the same from one database engine to the next.
A third skill that is essential is an understanding of relational algebra, or at least how to work with sets. Set logic is essential for a well running application. The better you understand set logic, and how it is implemented in the SQL language, the more powerful you become as a database developer.
Finally, let’s face it, ORMs are here. If you write your own from scratch, use a framework, or develop your ORM by convention, it is essential to understand how they work when it gets to talking to the database. Even then there are things you can do as a developer that make a difference in how your database performs.
So, in summary, learn relational database design, SQL Syntax, Set Operations, and ORM tuning.
There’s plenty of other skills. But these four apply to any relational database engine, and are transferable concepts…
something that stays with you for a career.
Cheers,
Ben