Rating:  Summary: Some nice examples, but plagued with errors Review: Some of the examples in this book were nice, especially in the early chapters. But the book is filled with errors on almost every page. Almost none of the code even compiles, and much of the later code is based on code given early in the book. This was used as a text in a major level CS college class, and we spent almost 1/2 an hour each day correcting errors. I'm sure there have to be better options out than this one.
Rating:  Summary: 5 stars for the text, 1 star for the code. Review: The book is a great introduction to file structures concepts like representation on disk, issues of record deletion, indexing with B-trees, and hashing techniques. The book is very readable and the examples make sense. (For some more advanced reading, especially in the area of hashing, check out Alan Tharpe's "File Organization and Processing".)Unfortunately, I found myself cringing numerous times at the code. There are many places where it is obvious that the authors have only basic C++ knowledge. For example, a pointer from strdup is deleting using the non-bracketed delete operator. That will produce undefined behavior according to the C++ standard. There are many issues like this in the code. Also, there are many performance issues with the code. I would have preferred that the authors use pseudocode instead and discussed object-oriented design in a language agnostic way. All that said, this is still a good book about file structures if you just ignore the shoddy code. The presentation of concepts is very readable, I breezed through the book in no time and came away with new knowledge.
Rating:  Summary: Excellent introduction Review: The book is an excellent introduction to what goes on inside databases. I used an earlier edition of this book when I was suddenly put in the position of writing database internals, and I had to modify and improve the B-tree code of a database. While the book is not advanced, it gave me an understanding of how B-trees work which helped me master this assignment. After reading this book, I was able to read more advanced articles in the database literature. The discussion in the book is extremely clear. The content is fascinating and it gives you a solid introduction to topics that are basic to modern computer systems. The book will not make you an expert (you have to have suitable mentors and suitable reading of the literature for that) but it will get you off the ground which is all you should expect from an introductory book. You have to recognize that the code and algorithms are not industry quality - they are teaching quality - they do not have all the optimizations one would expect to use in industry; the code in the book is designed to make the concepts clear.
Rating:  Summary: Down to Earth and Practical Review: This book gives you a down to earth and very practical introduction to File Structures. It contains lots of well explained C++ code in the main text. It might be a simple matter of taste. Personally I do not like the writing and the code. It is clear but somewhat uninspired and shallow. But see for yourself. Before reading this book I do highly recommend reading Alan L. Tharp "File Organization and File Processing". This is a true gem in the computer literature, but you do not find sample code.
Rating:  Summary: Plenty of great information, could have been presented bette Review: This text was used for a junior-level File Manipulation Techniques course. We skipped around quite a bit in this book and did not use any of the C++/Unix material. I think (and I'm sure my professor does) that this book could be stripped down a quite a bit to present more topics when used for the classroom. What is presented is done well. This is a well-rounded text that should appeal to students and professionals alike. However, from the student's perspective, there is a lot of superfluous material. It is still one of the best, if not then it is the best, book on file structures and algorithms. The programs for class were in Visual Basic .NET . It was not hard to adapt sections from the text when writing programs for a different language. Our class moved through the book as follows: chapters 1-4 (introduction to external storage, files of records); start of chapter 8 (cosequential processes); chapters 5 and 6 (record access, insertion and deletion); end of chapter 8 (sorting large files); chapter 11 (hashing); chapter 7 and 9 (indexing and B-trees). Once I was able to figure out what I could skip and what was important, I was able to read the chapters quickly and understand the material without a lot of re-reading. This book shed new light on an area of computer science that I didn't know much about. After taking the class/reading the book, I feel that I understand well what was being taught. I would still recommend this book to students because there is nothing else quite as up-to-date and it is quite easy to read and learn from.
Rating:  Summary: Plenty of great information, could have been presented bette Review: This text was used for a junior-level File Manipulation Techniques course. We skipped around quite a bit in this book and did not use any of the C++/Unix material. I think (and I'm sure my professor does) that this book could be stripped down a quite a bit to present more topics when used for the classroom. What is presented is done well. This is a well-rounded text that should appeal to students and professionals alike. However, from the student's perspective, there is a lot of superfluous material. It is still one of the best, if not then it is the best, book on file structures and algorithms. The programs for class were in Visual Basic .NET . It was not hard to adapt sections from the text when writing programs for a different language. Our class moved through the book as follows: chapters 1-4 (introduction to external storage, files of records); start of chapter 8 (cosequential processes); chapters 5 and 6 (record access, insertion and deletion); end of chapter 8 (sorting large files); chapter 11 (hashing); chapter 7 and 9 (indexing and B-trees). Once I was able to figure out what I could skip and what was important, I was able to read the chapters quickly and understand the material without a lot of re-reading. This book shed new light on an area of computer science that I didn't know much about. After taking the class/reading the book, I feel that I understand well what was being taught. I would still recommend this book to students because there is nothing else quite as up-to-date and it is quite easy to read and learn from.
|