Book review: “Oracle Database XE 11gR2 Jump Start Guide” by Asif Momen
About a year ago Packt Publishing approached me and offered to write a book on (one of the technologies in) Oracle 11g. After careful consideration I had to decline the offer. Which was the right decision as I have hardly had any spare time in the past 12 months.
However, Packt guys have kept in touch, and last month they asked me to review a just released book called “Oracle Database XE 11gR2 Jump Start Guide” by Asif Momen which I’m happily doing in this post.
Before we get into much detail, let me say that overall the book is good. The selection of topics is excellent and it is obvious since the very beginning of the book that the author is an experienced Oracle professional who has great understanding of what is needed to efficiently start (and continue) with Oracle database.
There are just a couple of things that I would have done differently. So let’s start with critique first and then move on to praising.
Considering the audience of the book, some of the chapters are either too technical or too brief. In other words, fail to explain the concepts in plain English and/or in enough detail.
For example, when introducing the listener concept, the book simply says that you need a listener to establish a connection to the database, and then the listener takes no part in your further dealings within the established connection. Which is absolutely correct. However, let’s imagine a reader who has never dealt with Oracle (or any other database) before and now this concept is just dumped on him without much explanation.
The way I would have wanted the book to explain such fundamental concepts, is to use plain language and abstraction from the database world. I believe that it is crucially important to get the fundamentals right inside the reader’s head from the start so that they don’t haunt the reader in the future.
So when introducing the listener concept, one could compare it to the real life situation of going to a restaurant. When you get there, at the door you are greeted by the host who walks you to your table and then you only deal with the waiter. Same with the listener, it greats you at the door, walks you to a database connections (or refuses to let you in if there are no connections available), and leaves you to deal with the database directly.
In the paragraph about synonyms, it is not very clear what synonyms are actually for. Imagine that there is a guy called Jack that lives on your street, and everyone knows him and everyone calls him Jack. So the paragraph about synonyms says – let’s call him Bob. What for?
“Do you know what Bob did?” – “Which Bob?” – “That guy.” – “But that’s Jack.” – “Well, I also call him Bob.”
Instead, if there is a funny looking guy that lives five streets away and no one knows him name, you and your neighbours can call him Bob for your convenience. So instead of saying “Do you know what that funny looking fella that lives five streets away don’t-know-his-name did?”, you could say “Do you know what Bob did?” (This is not the only thing you can use synonyms for, of course.)
You can see the author use similar approach to explain what an index is, making a classic comparison to index pages of a book. I believe the book would have benefited by having more of that.
Second thing. In the beginning of this review, I said that it’s obvious that the author is an experienced Oracle professional. That’s not a bad thing. However, with experience come old habits, and sometimes they are hard to get rid of, that’s true of many people, myself included. Not very often throughout the book, but sometimes this pre-11g mindset does surface.
One last thing, to finish this section. The wording of some statements. For example, “DML statements will become expensive if we have too many indexes, and if we have too few indexes, then queries become expensive.” While generally speaking the first part is almost always true, and the second part is less-almost but still-almost always true, I would change the wording to reflect the fact that sometimes practice doesn’t agree with theory. So instead of “will become expensive” I would say “DML statements may and often do become more expensive”.
Selection of topics is great. The book manages to cover the fundamentals, as well as provide insight on many things one is likely to be exposed to in a database environment.
Installation, configuration, queries, tables, indexes, view, functions, triggers. All these things you would expect to be discussed in all (or at least most) books for beginners, and they are in this book.
Storage, memory structures, background processes, moving data (import/export), edition upgrades. Some of these things you would expect in some books for beginners, and they all are in this book.
And on top of all those things this book gives you more.
The book surprised me by mentioning APEX, Oracle’s RAD. APEX, included in every version of Oracle, is free, and is an excellent tool. While there are books, three or four times size of this book, exclusively covering APEX development, this book does a big favour to those starting with Oracle database by introducing the reader to APEX, the tool that can solve much more tasks than an average person would think, much more efficiently than an average person would imagine.
Most importantly the book has two excellent chapters on backup and recovery and performance tuning. People starting with a database don’t normally pay much attention to these two topics. This could probably be explained by the fact that the first steps deal with tiny databases that require no performance tuning and no one cares if the whole database is lost.
When databases grow, start containing lots of data, and when the data becomes business critical, only then people start running in circles screaming why all of the sudden the database is slow, or what do you mean you don’t have a single backup anywhere.
Not only the book includes these two chapters, they are by far the best two chapters in the book. They are detailed, easy to grasp, and do have great examples including recovery from a complete database loss.
Overall, the book is good. It is fast paced and it does cover a lot. It does focus on important things.
There are some good references at the end of each chapter, sometimes they just refer to Oracle Database Documentation, but sometimes they are fantastic, especially in the performance tuning chapter.
The book could have been better balanced and more beginner-friendly. If you’re an absolute beginner, you may find yourself struggling to understand some concepts.
If you do have some basic understanding already and aren’t afraid of googling and doing further research outside the scope of this book, then the book is a solid guide and should get you started just fine.
This article is purely my own opinion not influenced by anyone. I have no business or personal relationships with Packt, Oracle, or any people who worked on the book.