이 책은 『Database in Depth: Relational Theory for Practitioners』(O'Reilly, 2005)라는 책에서 비교적 짧은 장으로 처음 시작했다. 이후 『SQL and Relational Theory: How to Write Accurate SQL Code』(O'Reilly, 2009)라는 책으로 내용을 보강해 다시 출간됐다. 책의 주요 주제에서 다소 벗어나고 너무 길어지므로, 디자인 자료는 부록으로 옮겼다. 이후 이 책의 두 번째 판에 대한 작업을 시작했다. 2판 작업을 하는 동안, 일반적으로 데이터베이스 디자인이라는 주제에 대해 이야기할 내용이 너무 많다는 것을 알게 됐고, 부록은 책의 나머지 부분과 전혀 어울리지 않게 많았다. 부록이 책의 주제와 다소 맞지 않는 것이므로 과감하게 잘라내서 그 자료를 독자적인 책, 즉 지금 보고 있는 책으로 나누기로 결정했다.
지금은 데이터베이스 디자인에 관한 책이 부족하지는 않은데, 다른 점은 무엇일까? 디자인 실습에 관한 책은 많지만, 대개 기초 이론을 이해하는 데 그다지 도움이 되지 않는다. 그리고 디자인 이론에 관한 책도 몇 권 있지만, 실무자가 아닌 이론가를 대상으로 하는 경향이 있고, 학문적인 경향이 있다. 나는 그 간극을 메우고 싶어 이 책을 쓰게 됐다. 이론을 실무자가 이해할 수 있는 방식으로 설명하고 그 이론의 실제적인 중요성을 보여주고 싶었다. 모든 것을 다루려는 것은 아니다. 그 모든 이론을 마지막 세부 사항까지 논하고 싶지는 않다. 내가 다루는 부분은 어디까지나 정확하고 정밀하게 하기 위한 것이다. 또한 형식과 격식을 현명하게 혼합한 것을 목표로 하고 있다. 다시 말하면, 이론을 부드럽게 소개하고자 하는 것이다. 가독성을 위해 일부러 짧은 책을 썼고, 각 장도 짧게 만들었다. 또한 모든 장에는 일련의 연습이 포함돼 있다. 전부는 아닐지라도 연습의 일부를 풀어볼 것을 권한다. 그중 일부는 이론적 사상을 실제에 적용하는 방법을 보여주기 위한 것이다. 다른 일부는 주제 문제에 대한 추가 정보를 텍스트 본문에 수록된 내용보다 더 많이 제공하고, 다른 것들은 예를 들어 간단한 이론적 결과를 증명해보라고 요구한다. 여러분이 '이론가처럼 생각하는 것'을 이해했으면 한다. 전반적으로는 디자인 이론이 무엇이고, 왜 그것이 그 방식인지에 대한 통찰력을 주려고 노력했다.