Most helpful positive review
61 of 66 people found the following review helpful
Fundamental, though not overly friendly
on May 4, 2004
I used FUNDAMENTALS OF DATABASE SYSTEMS (Third Edition) in a graduate class I took on databases, and I've kept referring to the book since then. As a student, I'll admit that it was tough to get through this book at times. It's dense and almost impenetrable, but it packs a huge amount of information and is amazingly comprehensive.
It puts theory well ahead of practical matters, which gives the novice a good foundation from which to really get a firm handle on how all these pieces fit together. The assumption is that the student knows nothing, even B-trees are devoted several pages of explanation. The student who does know nothing will doubtless find this wealth of data to be overwhelming at first (as I did). But stick at it. This textbook is not for people looking at how to simply plug things into Microsoft Access. It's for programmers seriously looking to gain a strong background in what the fundamental elements of database components and systems are.
The text starts off simply, merely explaining in general terms what databases are and who will use them. Then we quickly move into modeling how relational databases work. Data Modeling and Entity-Relationship Models are described in-depth, and the book comes back to ER modeling and mapping repeatedly. Object Models are covered, as well as the best ways of sorting records and the best way to index tables. The authors offer a wealth of information concerning the SQL language -- so much so, that there's much that I simply haven't used since reading about it, although I'm sure that more advanced database programmers in the audience will find it very enlightening.
It continues on with Object-Oriented Database technologies, functional dependencies, and normal forms (first, second, third and Boyce-Codd normal form). Higher system views of database architecture are also discussed, giving us an understanding of how different parts are working together. Optimization, recovery, maintenance and security are naturally touched on, as are distributed databases and the basic client/server architecture relationship. As you can see, this is all very theoretical, although some real-life explanations and examples are brought in. But it is by building up a solid knowledge base that will allow the reader to truly understand systems when encountered in the classroom or in the workplace.
I've only touched on a handful of things that the book details in its 1000+ pages. It's packed with mathematical formulas, computer science algorithms, schema design, and the minutua of every database operation. Its approach doesn't make things easy, but it does contain everything you'd want to know about a given item. I had to read various sections multiple times for my coursework, obviously, but every time I studied a passage, I would uncover details and concepts that I had missed the last time. Even now as reference material, I always find myself learning (or relearning) something when consulting this book.
Although in my current job I don't require a massive amount of database knowledge, I still find this an extremely useful reference guide. To be perfectly honest, I don't know if I would find this text helpful if I hadn't taken a course that taught from it. It's certainly intimidating to a beginner. But if you're a moderate to intermediate database programmer, you'll find this an invaluable guide to filling in the gaps in your knowledge. It may be a bit too dense and scary to serve as your only teacher, but you'll probably find it an important one.