Sunday, September 23, 2018

Top 5 Database design and Modelling Books for Programmers and DBAs of All level

The database design and modeling are one of those topics which rarely gets the attention they deserve, especially at the start of the project, but once things have gone out of hand then everybody talks about that. Comments like - this database are designed poorly, it is not performing well, you cannot add a new column easily etc becomes very common. The most problem with database design is that it is mainly done by application developers e.g. Java or C++ developer who knows SQL but they are not the expert of how to design tables and schema. The Database admins or DBAs know database and SQL better than application programmers but they focus on the admin part of the database rather on application part e.g. designing tables and relations between them, which is left to the application developer.

This leads to the creation of a poorly designed database which crumbled with exposure to the real world in production.

The first hit comes when performances start going down once real data is inserted and second and final blow comes when requirement evolves and you find it hard to cope with that.

You suddenly found that just adding one or more columns has required you modification in a lot of places and its breaking constraints etc.

In this article, I'll share some of the best books to learn database design and some free courses e.g. Why Physical Database Design Matters from Pluralsight to teach you the basics of database design. Some of the books focus on a particular database vendor e.g. SQL Server but you can still learn some important lessons there, which is applicable to other databases as well.

5 Books to Learn Database Design and Modelling

The database design and modeling are very important for programmers of all levels and languages to understand this core piece of information because no matter where are you working, you will more or less work with the relational database.

Here is my list of books which will help you to both learn and master this topic for once and for all.

Database Design for Mere Mortals
Database Design for Mere Mortals is the perfect introduction to relational database design for the novice and anyone needing a refresher. With his many years of real-world experience designing relational databases, Michael J. Hernandez, the author of the book, shows you how to analyze and improve existing databases, implement keys, define table relationships and business rules, and create data views,

- real-world examples
- easy to read

- didn't go deep on indexing, applying primary/foreign key and applying constraints to the prevent integrity of data
- not enough discussion of the various normal form and when they should be used

best book to learn database design and modelling for programmers and dbas

In short, Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design 3rd Edition by Michael J. Hernandez is a good book to learn database modeling and design from scratch.

Beginning Database Design Solutions
This is another excellent and one of the best books to learn data modeling and database design. This book explains database design which is very important because a poorly design database can be a headache in long term.

It tells how to plan a database’s structure so that the database will be robust, resistant to errors, and flexible enough to accommodate a reasonable amount of future change.

It also explains how to discover database requirements, build data models, and refine those models to improve the database's effectiveness.

Top 5 Books to learn Database design for DBAs

The Beginning Database Design Solutions by Rod Stephens is full of examples and exercises which not only teach you how to do stuff but also challenge you to apply your knowledge and solve problems.

The exercises will push you to think through scenarios, which eventually help you to get better at designing a database.

The Beginning Database Design Solutions by Rod Stephens has the best advice on normalization, common database design patterns and common design pitfalls you need to avoid.

The book also covers both MySQL and Microsoft Access, but even if you are using a different database, no need to worry much, concepts discussed in this book apply to all major database.

Six-Step Relational Database Design
This is another good book to learn relational database design. The best part of the book is that it has some case studies which teaches you from start i.e. client's requirement to design a relational database.

It covers essential design theory, database modeling and follow-up with implementation. The book is also quite readable so you don't need to read one chapter many times to understand it.

 Books to learn Database design and Modelling for programmers

As the name (Six-Step Relational Database Design: A step by step approach to relational database design and development Second Edition by Fidel A Captain) suggests, it teaches you to go from requirement to a fully functional database in just 6 steps.

SQL Antipatterns: Avoiding the Pitfalls of Database Programming
It's not just enough to learn best practices, it's equally important not to repeat the "bad practices" or antipatterns which cause problems.

If you don't avoid those bad practices you will end up with nothing even if you are doing good with other design stuff.

 Books to learn Database design and Modelling

The book contains several practical pieces of advice on common patterns which many of us use without knowing how much harm they do.

No matter, whatever platform or programming language you use, whether you're a junior programmer or a Ph.D., The SQL Antipatterns: Avoiding the Pitfalls of Database Programming by Bill Karwin  will show you how to design and build databases, how to write better database queries, and how to integrate SQL programming with your application like an expert.

Pro SQL Server 2008 Relational Database Design and Implementation
One of the fantastic book to learn how to design databases which perform well. This book is a must-read for any SQL Server developer or anyone who just wants to learn how to design database.

It covers all important topics including normalization, security, and how to protect the integrity of data using constraints and triggers.

It also provides tips and tricks to solve many business problems and each chapter ends with a best practices summary.

SQL Server Database design and Modelling books

The most important thing about this book is this book is fun to read. Unlike other books on database design and implementation, you don't need to read a chapter multiple times to digest the concepts.

The only drawback of Pro SQL Server 2008 Relational Database Design and Implementation by Louis Davidson, Kevin Kline, Scott Klein, and  Kurt Windisch is that it is centered around SQL Server, So, if you have been using Oracle or MySQL you might find some discussion irrelevant, but in general, you will love this book, irrespective of which database you are working on.

That's all about some of the best books to learn Database design and modeling. A good database design goes a long way in keeping your data safe and then retrieving it easy. If you want to learn how database design and modeling is important, I suggest you read Why Physical Database Design Matters, the course is focused on SQL Server but the advice given is applicable to all database in general.

My other book recommendations and resources for further learning:
The Complete SQL Bootcamp
5 Best Books to Learn and Master SQL
5 Free SQL Books For Beginners and Experienced
Top 5 SQL and Database Courses for Programmers
Top 4 Books to learn Oracle PL/SQL Programming
5 Free Oracle and SQL Server Online Courses
Top 5 Advanced SQL Books for Experienced Programmers
10 Books to Prepare Technical Programming/Coding Job Interviews

Thanks for reading this article so far, if you like these books then please share with your friends and colleagues. If you have any questions for feedback then please drop a note. 

1 comment :

Unknown said...

WOW..well said. As a Java developer ,Ive written a lot of stored procedures but what strikes me is I still dont know database design. Ask me to create a table for something new and I will struggle. Like how to I decide which really become the entities , which relations become table etc. Hopefully the books you suggested will be there on safari and make me better on this one.

Post a Comment