Tech Notes Note: This is the current edition (2004). However, the 7th edition is still available at substantially reduced cost! Click here for details!
Best theoretical book on Database design ever!
"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!" (amazon.com customer review)
|
[ ^Top ]
Product Description Continuing in the eighth edition, An Introduction to Database Systems provides a comprehensive introduction to the now very large field of database systems by providing a solid grounding in the foundations of database technology while shedding some light on how the field is likely to develop in the future. This new edition has been rewritten and expanded to stay current with database system trends. Amazon.com Review The newest edition of the classic An Introduction to Database Systems incorporates the latest developments in relational databases, including semantic modeling, decision support, and temporal modeling. There's better information on distributed databases, security, and the mathematics of relational databases too. With the same strong coverage of fundamental theory that made its predecessors stand out, this book ranks as the definitive textbook for those studying database systems. This is an extraordinarily academic book. In his preface, C.J. Date goes so far as to lament having to use Structured Query Language (SQL) in some of his examples because it's "so far from being a true embodiment of relational principles." What's more, he writes in a very academic style, peppering his heavily footnoted prose with mathematical expressions and words like relevar and tuple. The academic style and highbrow language isn't a bad thing, since this book deals with complicated, largely abstract phenomena in depth. Be aware that An Introduction to Database Systems is a far cry from the highly graphical, problem-focused books that target the community of commercial database developers, and as such requires more careful study. This book is about theories, concepts, and ideals rather than problems, solutions, and specific implementations. Per se, it will enable you to become a better database programmer--but only if you supplement it with practical guides and hands-on experience. --David Wall [ ^Top ]
A great introduction to the theory and practice of database design
Rating: 
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:
I. PRELIMINARIES
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
5. Types
Values vs Variables; Types vs Representations; Type Definition; Operators; Type generators; SQL facilities;
6. Relations
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;
9. Integrity
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;
10. Views
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
15. Recovery
Transactions; Transaction recovery; System recovery; Media recovery; Two-phase commit; Savepoints (a digression); SQL facilities;
16. Concurrency
Three concurrency problems; Locking; The three concurrency problems revisited; Deadlock; Serializability; Recovery revisited; Isolation levels; Intent locking; ACID dropping; SQL facilities;
V. FURTHER TOPICS
17. Security
Discretionary access control; Mandatory access control; Statistical databases; Data encryption; SQL facilities;
18. Optimization
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;
APPENDIXES.
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
the database practitioner's bible
Rating: 
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).
Best theoretical book on Database design ever!
Rating: 
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!
A classic, to be read by any serious developer
Rating: 
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.
[ ^Top ] |