Tuesday, May 28, 2013

Database Systems: An Application Oriented Approach, 2nd Edition, Michael Kifer



I have zero complaints about the content. It was a useful, concise, well written textbook. That being said, in a class of 20 students, every single copy of this poorly glued disaster fell apart before the end of the semester. At this price, the quality of this book is near criminal. I have emailed the publisher and received zero response.

If you really need this book for a class, the introductory version is properly bound (or look for an alternate source). If you are teaching this class PLEASE PLEASE PLEASE look elsewhere.

This book is the required text for a graduate course in database systems. We covered about 80% of in the class. At well over 1000 pages, the book has a lot of information. The chapters are written well. A running case study is presented throughout this book as an example. Most of the chapters are easy to read although it does get dry at times. Some of the chapters were very complex and highly theoretical especially the one on normalization (chapter 6) which perhaps only academics will care to know enough about. Chapters on XML, database indices, query processing, distributed databases and data mining are excellent. This isn't a book you can read in a weekend. It will take a few months to read and assimilate all the concepts presented here but after you are done, you will have a very strong background in this area. Overall I enjoyed the book very much. A broad spectrum of topics with enough detail is provided. Highly recommended for novices and intermediate users alike.

There is a ton of information in this book, and the information flow from section to section is pretty decent, but I wish there were more examples or more thorough examples. I'm the kind of learner that needs to see things worked through to get a good grip on it. The book does this sometimes, but in many of the more complex examples (when really needed) the explanations and visual representations are often quite slim. In most cases, it would take an entire page or two to show the beginning information, the steps between, and the final result, but I would rather have a thicker book that I understood more thoroughly.

This book tries to be too many things to too many people. According to page xxiv of the Preface:

"In addition to an introductory database course, the book contains enough advanced material so that it can be used for the following courses:

- An undergraduate or graduate course in transaction processing for students who have had an introductory course in databases

- An advanced undergraduate or a first graduate course in databases for students who have had an introductory course in databases

- A course in electronic commerce and Web sevices."

The first half of this book is made up of the material from its "Introductory Version" brother (ASIN:0321228383). The last half is the additional material to be used for the other courses listed above.

The problem is that the book reads more like a brain dump of everything the authors know about databases instead of like a textbook tying to teach some reasonable subsection to us ignorant masses. More specifically, each section (and sometimes each chapter) should probably be an entire textbook in itself. As an example, Chapter 15 talks about XML and Web Data. It starts by talking about how data on web pages is semi-structured and how this can lead to problems getting that kind of data into a database. It then introduces XML to the reader as a possible way to overcome this difficulty. Then, the authors basically dump the entirety of the XML language's syntax and semantics on you (XML Elements and Database Objects, XML Attributes, Namespaces, Document Type Definitions, Inadequacy of DTDs as a Data Definition Language). Since that section ends with the inadequacies of XML, the authors then go on to do the same thing with a revision of XML (XML Schema: XML Schema and Namespaces, Simple Types, Complex Types, Putting It Together, Shortcuts: Anonymous Types and Element References, Integrity Constraints). Now that they've told us everything that we'd ever want to know about the data handling capabilities of XML and it's revisions, they go on to describe (in detail) the syntax and sematics of four different XML Query Languages (XPath: A Lightweight XML Query Language, XSLT: A Transformation Language for XML, XQuery: A Full-Featured Query Language for XML, SQL/XML). Mind you, this is ONE CHAPTER (almost 100 pages long). Most authors would have treated this as a textbook (and course) in its own right. But, this is just one of 26 similarly-written chapters in this book.

Also in the preface, the authors state that "rather than focusing on how to build a database management system (DBMS), our approach focuses on how to build applications that use such a system. We believe that many more students will be implementing database applications than building DMBSs." That might be true. But, since I started with only a light dusting of knowledge of the workings of DBMSs, and the first half of this book is supposed to be an "introductory database course, finding out how to build a DBMS would probably have taught me more about how they work than what the authors present.

At a more pedantic level, my next biggest gripe is with the amount, type, and degree of contextual references in the book. There are tons of backward references to absolutely vital, detailed tables in the book. Unless you have a phenomonal memory, there's no way you can get by without constantly paging back (in some cases, hundreds of pages) to see what the authors are talking about. In the authors' defense, I can see why they did this: the book is already almost 1,200 pages long. If they had copied those tables to every place they reference them, this unwieldy tome would have been even larger. But, worse than the backward references are the FORWARD references. They're not as prevalent as the backward ones, but I can't come up with any real justification for them. In many cases, the authors reference material that's several pages ahead of where they are. It's not like the paragraph ends way up there and that's the first chance they get to include the material. In several cases, they included the reference way past the end of the SECTION (not just paragraph) where they were talking about it. Very irritating.

As an aside, Florida State University (FSU) uses this book in its COP 4710 course: "Theory and Structure of Databases." With a professor available to TEACH the material in the book, this book is probably acceptable. But for the individual reader (like me), it's not very useful. I rate this book as 2 stars out of 5.

As a not-very-academic veteran software developer, I enjoyed this book immensely. In a clear and breezy manner it provides the academic underpinnings of what I've been doing in the corporate world for so long. And the breadth. In addition to the basics, topics such as ER Design, Object Databases, XML, Web Services and Data Mining are covered. Highly recommended.

Product Details :
Paperback: 1272 pages
Publisher: Addison-Wesley; 2 edition (March 26, 2005)
Language: English
ISBN-10: 0321268458
ISBN-13: 978-0321268457
Product Dimensions: 7.7 x 1.6 x 9.2 inches

More Details about Database Systems: An Application Oriented Approach, 2nd Edition

or

Download Database Systems: An Application Oriented Approach, 2nd Edition PDF Ebook

No comments:

Post a Comment