n the last several years, I have built and expanded my career based on my knowledge of Microsoft SQL Server. I’ve used the product as both a database developer and as a database administrator, going so far as to become certified to teach courses on them (MCT) in addition to obtaining the MCSE certification. Each version that comes out provides additional improvements and features that make it an even more powerful and user-friendly tool.
However, notwithstanding my feeling towards SQL Server, I am in the process of embarking on a somewhat heretical approach to further my career. I am in the process of learning more about the flagship product of that archenemy of Microsoft: Oracle. Over the next year I hope to become an Oracle Certified Administrator.
In this series of articles, I will attempt to convince you of the soundness of my decision and perhaps get some of you to join me in this endeavor. These articles will document my progress and point out what, to me, are some significant issues involved in understanding Oracle. I will also provide reviews of the books and other resources I use in this journey.
Now let’s see if I can convince you that I’m not totally insane.
Microsoft and Oracle Are Not Mutually Exclusive
Reading the literature that Microsoft and Oracle put out about each other, I find that one common theme is evident. Both companies would like to convince you that there is absolutely no need ever to know or even contemplate using the competitor’s product. However, I believe reality is a little more complicated.
It is pretty clear to me that Unix is not disappearing anytime soon. In some cases, just the opposite has occurred; witness the increasing popularity of Linux. Microsoft SQL Server will never run on Unix. Therefore, shops with Unix as their OS are more than likely to choose Oracle as their database of choice. Similarly, it is hard to argue with the smooth integration of SQL Server and Windows (NT or 2000). SQL Server will continue to be popular in Microsoft shops, especially when ease of use is a priority.
Now that you hopefully agree that both products will stick around for a while, I’d like you to consider the following clich?:
Problems Don’t Have Just One Solution
Knowing more than one tool deepens my understanding of both. All database engines face common challenges such as supporting the ACID (atomic, consistent, isolated, durable) properties of a relational database. Knowing more than one tool, and seeing the different ways that each vendor has tackled the same problems, provides me with a deeper understanding than I could gain by just knowing a single product.
For example, users of SQL Server might be convinced that the only way to handle multiple users accessing the same data is to use read locks. Oracle users might be convinced that the only practical method is to use a redo buffer to keep a copy of the data as it looked before a user changed it. I find myself better able to appreciate the consequences of the architectural decisions of either method by contrasting the different solutions chosen by each vendor.
As I Learn More, I Can Earn More
Lastly, but not least, knowing more than one tool makes me that much more marketable. I haven’t done an exhaustive survey of salaries and the number of jobs available for each database package. However, I have checked with friends and headhunters in the business and looked through the help-wanted pages.
Oracle is both popular and in short supply. The combination of the two makes for a nice premium paid to Oracle-skilled people. I saw that myself this year in a situation where I helped a client of mine search for a SQL Server and an Oracle DBA in the New York metropolitan area. It was hard to find competent candidates for either position. However, the client was able to fill the SQL Server position within several months. The Oracle position took between three to six months longer and cost over 30 percent more than the SQL Server position.
Of course, there are other database products out there besides Oracle and SQL Server. For some people, the situation they find themselves in might make a product like IBM’s DB2 more attractive?for example, someone with heavy mainframe experience. (DB2 is very popular in mainframe shops.) However, for myself, I feel confident that learning Oracle will prove a significant addition to my arsenal of tools and my marketability.
What You Can Expect
If you are with me this far, it means you are actually considering learning Oracle, or are at least curious to see how I do it. In that case, I’d like to share with you some of my initial impressions in order to make your own entry into this arena somewhat easier.
It is very important to realize that Oracle is a complex and sophisticated product. It is also much different than SQL Server. Expect a large learning curve?especially to begin with. It might take a while before you feel that you are getting somewhere. (It did for me.)
You should be prepared to use client tools that are more text-oriented and in some ways less powerful than those that come with SQL Server. A good example is SQL*Plus?the tool used to enter SQL commands (the equivalent of Query Analyzer). Instead of graphical show plans, color-coded syntax, and a tree view of all your objects?those of you that haven’t seen the new Query Analyzer in SQL 2000 should run out and get a copy right away!?you get a tool that in many ways is no better than Notepad. (There are a number of third-party tools that fill the gap.)
However, if you make it past this hump, you will begin to learn and appreciate the advanced features of Oracle. In fact, many features that I’m excited about in SQL Server 2000?such as multiple instances on one machine, user-defined functions, and cascading referential integrity?have been in Oracle for a while already.
Windows or Unix? Unix or Windows?
Before taking the plunge to learning Oracle, you have a major decision to make. Most Oracle installations are done on some version of Unix. If you are serious about learning Oracle, at some point you will have to learn it on Unix. However, if you’ve never used Unix before you might want to concentrate first on learning Oracle on Windows in order to avoid getting hit with too much at once. Once you are comfortable with Oracle on Windows you can pick up Unix separately.
Where to Start
There are a couple of ways to get started. First of all, I advise you to become a member of the Oracle Technology Network (OTN). It’s free and provides a great resource of white papers and the like. (Even so, I find that I have to do a little more digging and poking around to find helpful information there than I do to find equally helpful information on Microsoft’s MSDN site.)
You can download fully functional versions of Oracle software from OTN. If you don’t have a fast connection, you have several more choices to obtain a copy of Oracle to play with. Oracle sells technology packs that consist of all their software for a particular platform for the relatively cheap price of $200. You can find out more about these packs from OTN’s download page.
You can also buy one of the many books that come with an evaluation copy of Oracle. I received my first version of Oracle by purchasing Oracle8i for Windows NT Starter Kit by Steve Bobrowski (Osborne/McGraw-Hill).
Oracle Essentials by Rick Greenwald et al. (O’Reilly) provided me with a terrific overview of the Oracle database universe. The book focuses on showing what the forest looks like and leaves the details for other books.
Oracle also provides a series of instructor-led classes if you prefer to learn that way. You can learn more about the various classes and schedules at Oracle University, in addition to getting information about online learning and other educational offerings from Oracle.
As I’ve said, this is a learning experience for me too. I don’t know beforehand where my explorations will take me. However, I intend to continue learning and writing (no doubt with some complaining, ranting, and raving thrown in for good measure) as I continue to make my way through the Oracle universe. If you are on the same trail yourself, I’d love to hear about your experiences. You can get in touch with me at [email protected].