Jump to ratings and reviews
Rate this book

Database Systems: The Complete Book

Rate this book
This introduction to database systems offers a readable comprehensive approach with engaging, real-world examples—users will learn how to successfully plan a database application before building it. The first half of the book provides in-depth coverage of databases from the point of view of the database designer, user, and application programmer, while the second half of the book provides in-depth coverage of databases from the point of view of the DBMS implementor. The first half of the book focuses on database design, database use, and implementation of database applications and database management systems—it covers the latest database standards SQL/PSM, SQL/CLI, JDBC, ODL, and XML, with broader coverage of SQL than most other books. The second half of the book focuses on storage structures, query processing, and transaction management—it covers the main techniques in these areas with broader coverage of query optimization than most other books, along with advanced topics including multidimensional and bitmap indexes, distributed transactions, and information integration techniques. A professional reference for database designers, users, and application programmers.

1119 pages, Hardcover

First published January 1, 1999

26 people are currently reading
522 people want to read

About the author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
50 (26%)
4 stars
81 (42%)
3 stars
39 (20%)
2 stars
16 (8%)
1 star
6 (3%)
Displaying 1 - 14 of 14 reviews
6 reviews
January 29, 2010
I've read all kinds of negative reviews about this book.
Most of them refer to it as boring; poorly written; too teoretical, so
I was skeptical about reading the book, but I had to as it is the book used in my university course in database systems.

The way I see it here are the strong and weak sides of the book.
(I've only read it half through).

Strong sides:
1) The best thing in the book is that the information in structured in small sections and it is easy to find information on a certain subject. (That being said, though, the book is not good for a reference material - it's more of a textbook.)

2) My point of view is that the book is actually not poorly written. The explanations are clear and their only downside is they are too exhaustive and detailed sometimes.

3) There's a summary after every chapter which really helps in the learning process (and you don't have to read it if you don't need to).

4) Although examples are frequently kind of stupid, at least they are simple and you get the idea.

5) The book teaches you what are some different ways to model data in a very accessible fashion. It also teaches the design process, and there is a section on good design principles (which are mostly obvious, but not always) and the design process.

Weak sides:
1) References throughout the book - for example you are reading on a certain topic and then the author gives an example which involves a figure that is tens of pages back in the book; and the figure turns out to be a 4-line CREATE TABLE clause. I guess they really got into the idea that they need to avoid repeating themselves (but hey, this is a programming/design principle, plus this is the book that repeats all kinds of other stuff throught the book).

2) Some technical inaccuracies may occur. I'm not giving proof, beacause I am too lazy, but I have the feeling that the authors see most things as black and white - like there's no other option or opinion. Again, this is not a completely valid point of mine.

EDIT: an example: in the Datalog chapter, there's a recursive rule that searches for all pairs of cities that are reachable through airflights. But the author fails to point out that this would only work if the graph of reachability has no cycles. Otherwise, all the rules in the sections on recursion would go down in infinite recursion.

3) Other inaccuracies like for example in the diagram labeled "Components of the database system" contains buffer manager and storage manager as obviously two seperate components, but later in the same chapter, the author refers to the buffer manager as a component of the storage manager. Stuff like that.

4) Really too exhaustive explanations. Instead of reading them, try to figure out the examples on your own first.

5) Somewhat poor design of the pages and figure/boxes placement.

Although not a great book, I really feel I have learned a lot about databases.
But if you have choice I would recommend finding another book.
Profile Image for Lee.
59 reviews
May 31, 2022
Selective reading, maybe only looked at 20% that interested me. I picked this up to get an overview of the relational model and look for a second treatment of normalization after my frustration with Elmasri's Fundamentals of Database Systems textbook. This is the superior textbook, both deeper and broader, and the writing is clearer with none of the frustrations I mentioned in my review of Elmasri. Indeed this textbook lowers my opinion of Elmasri's further because Ullman exercises severe editorial judgment in coverage, eg confining the first and second normal forms to a handful of sentences in a small side box since they have meager theoretical, expositional, or practical interest to a reader who is trying to get a grip on the matter. Essentially they are arbitrary waypoints on the path to meeting obvious desiderate for our schema. With such a large subject matter, it is nice to have a confident guide ushering you forward, not pausing for historical curios that in his judgment are not worth bothering over.

Multivalued dependencies and the fourth normal form are treated as a generalization of functional dependencies and Boyce-Cobb normal form, which I found clarifying. The example of actor addresses and films clearly illustration the concerns and data-organizational solutions. That example is used throughout, which is truly impressive. Tableau-chasing method is nicely explained.

Authors of texts on databases theory face a difficult tradeoff. Some (like me) are looking for a high-level theory discussion that can organize a jumble of intuitions I've developed from practical experience in databases; others are impatient with the theory talk because there is already a multi-decade, widely adopted international standard (SQL) that closely approximates the conceptual ideal of high theory, so why not just discuss that? Ullman uses SQL generously to illustrate concepts, but never fails to remind the reader that "selection" is not truly "projection," tables are not relations, multisets/bags (unordered collections of possibly duplicate elements) are not the sets (unordered collections of distinct elements) as theory would have it. He explains why this compromise was made, what the consequences are, and flags every point in the text where this distinction makes a difference.

Other topics that caught my interest: object-relational model, recursion, dependency graphs for determining if two relations are mutually recursive, nested relations, user-defined types (though I'd have liked more discussion of how much these are used in practice?).

Some topics I find off-putting but might one day need to care about: query processing, logical/physical planning, compiling, estimating costs of operations and sizes of intermediate relations, pipelining versus materializing.

Overall this is nice textbook I'll come back to.
Profile Image for Toto.
12 reviews1 follower
January 9, 2022
Feels way too theoretical and detached. Nonsense "relatable" examples that do the opposite of being relatable, and just obscure what's being said even more. However, it does go through all the basics really well, and you can find examples with deep explanations on just about everything. So in that regard its quite good. Feels more like a lexicon on databases than an actual learning tool but I guess that's what course literature is supposed to be. So in that sense it earns a 4 despite having uptight pompous douchebag vibes.
Profile Image for Tom Quast.
27 reviews3 followers
February 4, 2023
The book promises to be complete and it delivers on that. However, this book drowns in the sheer amount of pages. I have yet to meet one who has read the book from start to end, and thus the book fails to live up to its potential. It is useful as a reference point for specific topics and certainly very detailed, but there is just to much content to read it as a (study) book.

The Good
- Very detailed
- Includes exercises, summaries and references

The Bad
- Too long
- Reference-structure hard to follow / use
- Some sections too theoretical

Conclusion
This book makes me wonder if something can be too complete. It is filled with information, so much that it becomes hard to find what you are looking for. It feels like there has not been put much thought into how the reader consumes the book, so you have to work for getting something out of reading this book. This is why I cannot recommend it, there are better alternatives.
Profile Image for Zeyuan Hu.
15 reviews2 followers
June 5, 2019
This book is by far the best database book I have ever read. It gives detailed explanation in a top-down approach in every part of database system. However, it is not perfect because the book focuses on theoretical perspective but lack of practical implementation pointer. But, I like this book better than the cow book, which filled with typos and ill-printed pages.
151 reviews
June 17, 2021
Thorough, theoretical, but now quite old.
2 reviews
March 5, 2023
Very poorly written.
The authors frequently refer to figures that lie multiple subchapters back, which they could've very easily copied onto the current page.
Get another book unless you're following a course that, unfortunately, uses this one.
Profile Image for Jeffrey Milloy.
45 reviews1 follower
September 16, 2008
databases are boring. that's a huge reason the book got few stars from me, so keep that in mind. in its favor are a few key features. it certainly is complete. the theoretical aspects of database design, sql and the practice of implementing a database schema, concurrency control, and the more general task of large information management - all of these are included and more. and in fact, the chapters and sections are divided into adequately (although maybe overly) small bite size pieces made for easy reading. examples are provided as necessary, but nearly never cover many of the more frequent cases.

in general, i find it overshot its attempt at readability and at the same time remained difficult to understand at times. certainly NOT a good reference book, unless after having read large portions beforehand.
2 reviews1 follower
June 18, 2013
This is a good reference book for database.
Profile Image for Timothy Culp.
118 reviews3 followers
July 9, 2013
After reading this book, I never want to ever see boyce codd normal form again. But important concepts, even today.
17 reviews3 followers
March 20, 2014
A great book. Some of the things are outdated or could be taken away, but most of the content is very relevant and explained well. I wish there were more exercises and the solutions were available.
Profile Image for Samantha.
11 reviews8 followers
August 19, 2014
I found this book the most helpful when reading it and then looking over the Stanford videos that one of the authors did online. The videos make the book clearer.
Displaying 1 - 14 of 14 reviews

Can't find what you're looking for?

Get help and learn more about the design.