48 of 50 people found the following review helpful
on November 23, 2003
This is not a how-to, it is a how-to-understand. I own multiple editions of this book starting with the 3rd, when many of the examples referred to RBase. It won't tell you, with simple color diagrams and cut-and-paste examples, how to optimize your Oracle SQL queries or tune your DB/2 engine, but it will teach you the underlying principles of relational databases, from which the serious professional will be able to extrapolate. If you have the intelligence and stomach for it and you actually read it, it will serve you much better than the SQL in 24 hours picture books that some reviewers seem to be looking for -- it is a timeless and effective conceptual work on the subject that spans the evolution of commercial product implementations. Dilitantes and desperadoes, head for the Dummies aisle -- this one's not for you.
29 of 30 people found the following review helpful
on September 10, 2003
Sorry, no full-color graphics, and no included disk full of fill-in-the-blank examples and wizards to build your contact list. This is an old-fashioned academic tome, not a how-to book or thinly-disguised marketing tool for some commercial database system.
I suppose the biggest criticism I could make of this book is that it overestimates the target audience. Unfortunately, many who see the title of this book assume that it will teach them how to work with current database products such as Oracle, or maybe SQL Server and Access. No, this book doesn't show you how to create an invoicing system for your bicycle shop, or a web content management system. What it will show you is the conceptual underpinning of the relational data model, how to understand relational database systems in general (not everything is SQL, you know), and provide some heavy insight into how relational databases should be designed.
In that sense, it can be considered an "introductory" book for software engineers, who might themselves create a new database management system. It can also be considered introductory for database administrators and systems programmers who are looking to expand their knowledge beyond the product-specific practical methods they have been exposed to. In other words, if you just want to know "how things are done" in your industry, don't read this book. If you want some insights into how things COULD be done much better, you might want to read this book.
So, while I might not recommend this book to a junior programmer tasked with creating his/her first web-based ordering system, I might recommend it to the company DBA or systems architect. Even more, I would recommend this book to anyone studying C/C++, and looking to start a career in software engineering, possibly to help create new database systems. This book doesn't discuss specific implementation in C++ or anything like that but it provides an excellent target feature set and language spec for development, as well as a clarification of the formal logic behind relational database management.
20 of 22 people found the following review helpful
on April 2, 2004
I read this book for training as a senior DBA consultant and enjoyed CJ Date's excellent treatise on databases. This is the ultimate book on database theory. Like another reader commented its not how to get OCP/MCDBA whatever certifications but actually will make life better in the long run as a serious DBA pro. I now actually understand the basis of complex database topics such as cursors, data models, and concurrency/locking topics that previously are skimmed over in other books and training guides. Best book for a beginner and yeah its a bit dry and academic but CJ Date writes clearly. A MUST FOR SERIOUS COMPUTER SCIENCE STUDENTS!
19 of 21 people found the following review helpful
on January 7, 2004
Date's seminal work is critical to understanding databases - a step mostly forgotten by those who believe every concept can be taught using commercial products with brain-dead examples in under 24 hours. Date teaches the logic and theory that underlie all successful practice. You can probably buy a different book and create a mock database faster, but you will neither understand nor be able to use it well. Do yourself a favor and read this first to understand what a database is; only then can you judge the value of other books.
20 of 23 people found the following review helpful
on August 17, 2005
I suppose there are two potential audiences for an introductory database book. The first audience consists of developers who need to know the very basics about databases to design and implement a database computer application. For that group I would recommend Date's book, but only upon having sufficient "computer science maturity": i.e. having taken one year of programming, and possibly a course in discrete mathematics and/or data structures and algorithms. Without this maturity much of what Date writes will be very hard to appreciate if not comprehend. True, he gives numerous examples that are quite understandable, but he also spends many paragraphs discussing somewhat abstract issues to the novice that will make him or her want to skip ahead. A good example of this is the notion of thinking of a table as the current value of a relvar, or the importance of closure in the relational algebra. The paragraphs he spends on these subtle importances will frustrate the uninitiated reader.
For someone who does not believe that he or she has the maturity to handle this book, and simply wants to develop an application that requires a database, I would recommend buying a more "down-to-earth" book possibly covering the RDMS that will be used. For example, if it is MySQL, then one might want to purchase
Welling's "MySQL Tutorial" (ISBN: 0672325845) for a much gentler and user-friendly introduction (or better yet the PHP and MySQL web development book if a web application is desired).
The other audience for this book are the professionals who are in charge of managing a database and/or using a database server for an industrial-strength application. In this case, Date's book is mandatory reading. May be not all of it, but certainly Parts I-IV. Reading these parts will give the professional the needed perspective on all the considerations required for successfully using or managing a database system.
In the world of database systems, Chris Date is one of the few authors who understands the importance of every minute detail involved with successfully using and managing databases. He proves that in this book, in a style that is not only academic but also quite useful and practical (especially his chapters on the relational algebra and calculus).
8 of 9 people found the following review helpful
on October 29, 2010
This book is excellent and it is very clearly written. English is my second language (I live in Ecuador for crying out loud, I don't even get to practice my English that often), and I can read the book without pain or suffering of any kind. Yes it is huge. Yes, for some of you it might be too much theory. But you will understand every aspect of data base systems: Date's pedagogy and methodology is just that brilliant. Plus you'll get your hands dirty with some interesting topics that Mr. Date has decided to include, for example: Distributed Databases, Relational Calculus (not incredibly necessary as Relational Algebra, but it is nice to have a reference to go to when need arrives), Security and Object Databases.
The author may seem pretentious when he uses Latin phrases or words like: a fortiori, per se, a priori, mutatis mutandis, etc. But who doesn't really know this? And if you don't, Google it up and you'll get the result in seconds (I had to Google a fortiori). It just doesn't seem to be that much a deal, at least not to give the book a mere one star, when it is clearly a classic and an incredible demonstration of how textbooks should be written. Another reviewer said that there was little content. I just can't believe this, seriously. For a book that boast "introduction" on its title, it goes way beyond introductions in my opinion (compare this book against others that have nothing to say about the TransRelational model!). If you know Database Systems and the relational model and the theory behind it, you shouldn't be reading any introduction books on the topic (or reviewing them like they should do something else other than introducing the subject). In my opinion, any serious computer scientist or professional IT should read this book and keep it close at hand. But that is just my judgment.
*sigh* I can't believe this book has an average of 3.5 starts. I really can't.
11 of 13 people found the following review helpful
on September 29, 2003
C J. DATE is one the most important researcher about databases, and his work is dedicated to explain in simple terms, those that in other forms will be too much difficult to understand: like real methodology of normalization or the BNF Notation, very usefull when is neccesary read the ANSI/ISO Standars, or the
Boyce/Codd Normal Form.In 1990 i read Date for the first time,
i need to review his Powerfull Introduction again, but C.J Date do not write in order to "Perform a Database Design, in 24 hours" , he write to understand, first, what really are in Database World, the semantics of data, the Codd Theory, The importance of ERD of P.Chen, he doesn't write a HelpDesignBook!
To read a Date's Book is find the core of Database Theory and is the first step to have succefull in a design process.
16 of 20 people found the following review helpful
This is one of the better books on the theory of database systems design. It is not meant to be a book on applications, rather it is a commonly used textbook in upper level undergraduate and graduate classes on the subject. However, this latest edition has reorganized the material somewhat and has added to its sections on XML and SQL in an attempt to show the theory through more real-world scenarios.
The book is divided into six parts. The first section sets the scene by explaining what a database is and why database systems are generally desirable. Next a general architecture for database systems is presented that serves as a framework upon which all subsequent chapters are built. Next is a broad overview of relational systems and finally there is a chapter that introduces SQL and explains how it works and why it is not a perfect language.
The second section, on the relational model, is rather long. This reflects the fact that the relational model of database systems is the foundation that makes the field a science. The author does a good job of presenting the theory along with examples of this theory as practiced in SQL. However, remember that the SQL examples are to illuminate the theory, not vice versa. The author does an exceptional job of explaining the relational calculus.
The third section is dedicated to database design, and specifically relational database design. The database design problem can be stated very simply: Given some body of data to be presented in a database, how do we decide on a logical structure for that data? This section does an exceptional job of explaining and illustrating one of the more difficult concepts in database design, that of normalization and normal forms. Database normalization is a process that eliminates redundancy, organizes data efficiently, reduces the potential for anomalies during data operations, and improves data consistency.
The fourth section, on transaction management, will be familiar to those who are involved in operating system design. This section includes methods of protecting the database against non-deliberate threats such as a system crash in the middle of program execution that leaves the database in an unpredictable state, two programs concurrently executing that interfere with one another's operation therefore producing incorrect results, and updates that might change the database in an invalid way.
The fifth section, entitled "Further Topics", tackles a number of subjects that could be the topic of a complete book by themselves. This includes protecting databases against deliberate attacks, building optimization into databases so that they work more efficiently, handling missing database information, object-oriented concepts, and logic-based databases.
The final and sixth section of the book adds information on a subject that has been missing in past editions - that of object-oriented databases. This section includes some relevant information on the use of XML in database design.
I learned database design theory from the sixth edition of this book ten years ago with no prior database design experience. I found that edition to be a clear and adequate textbook but lacking in the discussions of alternatives to the relational model which has been corrected in this eighth edition. I highly recommend this book to students and professionals who are interested in learning about the theory of modern database design. All chapters begin with an introduction and end with a summary, exercises, and bibliography, so to prevent from being repetitive I do not show those sections in the table of contents shown below:
1. An Overview of Database Management
What is a database system?; What is a database?; Why database?; Data independence; Relational systems and others;
2. Database System Architecture
The three levels of the architecture; The external level; The conceptual level; The internal level; Mappings; The database administrator; The database management system; Data communications; Client/server architecture; Utilities; Distributed processing;
3. An Introduction to Relational Databases
An informal look at the relational model; Relations and relvars; What relations mean; Optimization; The catalog; Base relvars and views; Transactions; The suppliers-and-parts database;
4. An Introduction to SQL
Overview; The catalog; Views; Transactions; Embedded SQL; Dynamic SQL and SQL/CLI; SQL is not perfect;
II. THE RELATIONAL MODEL
Values vs Variables; Types vs Representations; Type Definition; Operators; Type generators; SQL facilities;
Tuples; Relation types; Relation values; Relation variables; SQL facilities;
7. Relational Algebra
Closure revisited; The original algebra: Syntax; The original algebra: Semantics; Examples; What is the algebra for?; Further points; Additional operators; Grouping and ungrouping;
8. Relational Calculus
Tuple calculus; Examples; Calculus vs. algebra; Computational capabilities; SQL facilities; Domain calculus; Query-By-Example;
A closer look; Predicates and propositions; Relvar predicates and database predicates; Checking the constraints; Internal vs external constraints; Correctness vs consistency; Integrity and views; A constraint classification scheme; Keys; Triggers (a digression); SQL facilities;
What are views for?; View retrievals; View updates; Snapshots (a digression); SQL facilities;
III. DATABASE DESIGN
11. Functional Dependencies
Basic definitions; Trivial and nontrivial dependencies; Closure of a set of dependencies; Closure of a set of attributes; Irreducible sets of dependencies;
12. Further Normalization I: 1NF, 2NF, 3NF, BCNF; Nonloss decomposition and functional dependencies; First, second, and third normal forms; Dependency preservation; Boyce/Codd normal form; A note on relation-valued attributes;
13. Further Normalization II: Higher Normal Form
Multi-valued dependencies and fourth normal form; Join dependencies and fifth normal form; The normalization procedure summarized; A note on denormalization; Orthogonal design (a digression); Other normal forms;
14. Semantic Modeling
The overall approach; The E/R model; E/R diagrams; Database design with the E/R model; A brief analysis;
IV. TRANSACTION MANAGEMENT
Transactions; Transaction recovery; System recovery; Media recovery; Two-phase commit; Savepoints (a digression); SQL facilities;
Three concurrency problems; Locking; The three concurrency problems revisited; Deadlock; Serializability; Recovery revisited; Isolation levels; Intent locking; ACID dropping; SQL facilities;
V. FURTHER TOPICS
Discretionary access control; Mandatory access control; Statistical databases; Data encryption; SQL facilities;
A motivating example; An overview of query processing; Expression transformation; Database statistics; A divide-and-conquer strategy; Implementing the relational operators;
19. Missing Information
An overview of the 3VL approach; Some consequences of the foregoing scheme; Nulls and keys; Outer join (a digression); Special values; SQL facilities;
20. Type Inheritance
Type hierarchies; Polymorphism and substitutability; Variables and assignments; Specialization by constraint; Comparisons; Operators, versions, and signatures; Is a circle an ellipse? Specialization by constraint revisited; SQL facilities;
21. Distributed Databases
Some preliminaries; The twelve objectives; Problems of distributed systems; Client/server systems; DBMS independence; SQL facilities;
22. Decision Support
Aspects of decision support; Database design for decision support; Data preparation; Data warehouses and data marts; Online analytical processing; Data mining; SQL facilities;
23. Temporal Databases
What is the problem?; Intervals; Packing and unpacking relations; Generalizing the relational operators; Database work design; Integrity constraints;
24. Logic-Based Databases
Overview; Propositional calculus; Predicate calculus; A proof-theoretic view of databases; Deductive database systems; Recursive query processing;
VI. OBJECTS, RELATIONS, AND XML
25. Object Databases
Objects, classes, methods, and messages; A closer look; A cradle-to-grave example; Miscellaneous issues;
26. Object / Relational Databases
The First Great Blunder; The Second Great Blunder; Implementation issues; Benefits of true rapprochement; SQL facilities;
27. The World Wide Web and XML
The Web and the Internet; An overview of XML; XML data definition; XML data manipulation; XML and databases; SQL facilities;
Appendix A: The TransRelational(tm) Model
Three levels of abstraction; The basic idea; Condensed columns; Merged columns; Implementing the relational operators;
Appendix B: SQL Expressions, Table Expressions, and Boolean Expressions
Appendix C: Abbreviations, Acronyms, and Symbol
Appendix D: Online storage structures and access methods, database access: an overview, page sets and files, indexing, hashing, pointer chains, and compression techniques
16 of 20 people found the following review helpful
on October 6, 2003
As one of E.F. Codd's closest associates Chris Date has long provided the world with some of the most insightful writings on the relational model of data management. Much to their proponents chagrin, he also writes incisively about the various "improvements" to the relational model.
Those who are looking for a cookbook approach to any specific DBMS platform will be sorely disapointed. This book will not help you obtain your MCDBA, OCP, or any other alphabet-soup certification. However, for anyone looking for a firm foundation of data management fundamentals and the practical implications of such, this is THE book to read.
Chris' style of writing tends to be a bit academic and precise. This quality does turn some folks off, but it is this quality that makes his writing so valuable. Read it, re-read it and learn this stuff! No one can seriously consider themselves a data management professional without a good grasp of the material in this book. This is the book that other authors refer to when they want to get their facts straight.
1 of 1 people found the following review helpful
on May 13, 2014
Christopher J Date is the classic text in databases. A much needed basis in conceptual data knowledge in times of NoSQL and other fads.