(Note this review applies to the sixth edition of this book).
If you wish to quickly jump into database design without a full and rigorous knowledge of database theory (by no means a bad thing) then this book is not for you. If, however, you want a thorough grounding in the principles and practice of database theory considered from an academic standpoint, then this book is highly recommended.
Date is one of the giant figures of relational database theory, and this masterful work covers, in exhaustive detail, all the elementary principles of the subject. The book commences with an overview of database systems and management, before moving on to introduce the relational model. Part II of the book covers in great detail the relational model, introducing the relational algebra and the relational calculus (and then showing the formal equivalence of the two). The SQL language is introduced.
Part III discusses database design, with special emphasis on the vital topics of nonloss decomposition, functional dependencies and normalisation. For practical database designers this is perhaps the most valuable part of the book. Part IV covers data protection from the standpoints of integrity and implementation in practical systems.
Part V gathers a miscellany of related topics such as optimization of queries, a discussion of the 'NULL' problem and an introduction to ditributed (i.e. client/server) database systems. Part VI is an introduction to object-oriented database systems, with an examination of the problems faced by traditional relational systems when faced with object-oriented problems.
It is important to note the target audience for this book. This book is first and foremost academic by nature. Rigour is not sacrificed for conciseness or simplicity. It is textually dense, especially parts II and III (far and away the most important parts). The reader will have to put in a lot of work to fully grasp the details of the concepts. For example, Date's definition of third normal form (3NF): "A relation is in 3NF if and only if it is in 2NF and every nonkey attribute is nontransitively dependent on the primary key". To appreciate in detail the significance of this definition requires substantial effort. However, this effort will pay dividends when the time comes to actually design a real-world system. Failure to understand the principles of database theory at this level of rigour lies behind many failed implementation attempts. Not every database designer needs this knowledge, but a manager of a large database project certainly does. I would not recommend this book as an introductory text for an undergraduate course in database design, due to the large quantity of material covered and its highly theoretical exposition. I would, however, strongly recommend it for students at a higher level, professional database designers and implementors of database management systems.