Author: C.J. Date
Audience: SQL Developers
Reviewer: Kay Ewbank
This book tells you what relational databases are all about in terms of the underlying relational theory, how that works and why it matters. Despite the academic material, it’s a good and easy read.
Chris Date is one of the big hitters of the database world, and various of his books are standards of the topic. The subtitle of this book is ‘what relational databases are really all about’, and it’s worth saying at the outset that this is not a book that’s attempting to teach you SQL or turn you into someone who can program or administer databases. Instead, Date has set out to help you gain an in-depth understanding of the relational model, how it works and what it means.
There are other titles by Date that take a different route through the material; for example Jo Celko reviewed Database Design and Relational Theory, in which Date starts with the database rather than the relational theory, but in this book he takes the approach of first getting the theory straight in your head.
As with other books written by Date, he illustrates his examples using his own programming language (Tutorial D), which he developed to provide a better fit for the relational model than SQL.
As he points out in the introduction, SQL and the relational model aren’t the same thing, and a lot of SQL databases that are called ‘relational’ aren’t actually that relational. The exercises at the end of each chapter are an excellent element throughout the book, and the answers are provided so you’re not left baffled if you can’t work it out.
Date gives formal definitions of the concepts he introduces, and the book is content heavy – you can’t skip a page or two and expect to keep up later on. If this is putting you off, don’t worry; Chris Date is an excellent communicator who writes in a very accessible way. What this means is that the majority of the text is a really easy read, and it’s just the formal definitions where you’re going to have to think hard.
The book is divided into three main parts and a collection of appendices. Part one introduces the relational model with the theory that underpins relational database technology. Part two looks at transactions and database design, and part three covers SQL, showing how the concepts from part one have been interpreted in the SQL language as used today.
The chapters in part one start with basic database concepts (what’s a database, what’s a relational DBMS); then go on to look at relations and relvars. Relvars, relation variables, are one of the key concepts used to define relational theory; essentially a relation is what we usually call a table, and as a table can contain different values it’s a variable. Read the chapter to get a more accurate description! Part one continues with chapters on keys and foreign keys, two excellent chapters on relational operators, a great chapter on constraints and predicates, and finishes with a chapter defining the relational model.
Having been in the esoteric realm of tuples and relvars, part two descends to topics database users would find more recognizable – transactions and database design. The chapter on database design discusses the different normal forms, including the Boyce/Codd normal form, which is the most important one in practice.
The final part of the book gets more practical, with good discussions of how SQL fits with relational theory. Date discusses SQL tables, then has two really good chapters on SQL operators. He then looks at SQL constraints before finishing with a comparison of SQL versus the relational model.
The appendices are as interesting as the rest of the book, with two in particular – set theory and relational calculus – being packed with information. A book on relational theory might sound as though it’s of purely academic use, but knowing the theory underpinning databases does make you design your databases differently. If nothing else, at least when someone starts pontificating about whether your schema conforms to third normal form you’ll have the ultimate put down of being able to tell them you’re using the Boyce/Codd normal form which is much better!
The material is well written and the explanations are concise and straightforward. Date isn’t just a database star, he’s a good writer too.
Database Design & Relational Theory Joe Celko's 5-star review of companion volume