Oracle 10g for MacOS X
Oracle has, for years, been the best known enterprise relational database management system (RDBMS). Now at version 10, the product keeps growing and adding new features with the main leap for version 10g being into grid-centric computing.
Although it's been available for a variety of platforms over the years with the various Unix flavours being the most popular the beginning of 2005 saw the first release for Mac OS X. The advent of 10g for Mac OS gave me a smug feeling because a year or so ago I was stood at the Macworld conference telling my audience that Apple's new Xserve server platform would only be taken seriously if the likes of Oracle were to start producing proper, commercial applications.
The Mac version of Oracle is, in reality, little different from the other versions or, at least, the other non-Windows versions. The company basically has two build environments: Linux (from which the various other Unix implementations derive) and Windows. Given that Mac OS X is a fairly straightforward Unix-style derivative, the development of a Mac-specific version wasn't all that hard. The company's been thrown a bit of a bouncer now that Apple has proclaimed its desire to start using Intel processors instead of the PowerPC, but according to Oracle's product chaps it's no big deal because Mac OS on Intel is that much closer to the core Linux build structure than Mac OS on PowerPC. Although there's a bit of a hiatus in Oracle's Mac OS development department at present, the company insists that as well as producing Intel-based applications, the PowerPC version will be supported for as long as Apple supports it.
Installation of Oracle is via the Universal Installer well, kind of. Before you can get going, you have to set up some Unix user/group combinations, and create the various directories the product will live in. Once this is done you run the installer, which is GUI-based and fairly straightforward - though a complete computing novice will have no chance of understanding everything. The installation process took about half an hour on our G5-based Mac, though at a couple of stages the GUI paused and asked us to run scripts by hand from the command line. Although the result of our installation was a working system, the half-meg log file the installer produced wouldn't have made it much fun to try to figure out what went wrong in the event of a problem.
Once you're up and running, you manage the Oracle universe via the Enterprise Manager (EM). This is a Web-based interface onto Oracle, and a single installation is able to manage any number of servers. Given the correct access permissions you can even install Oracle from scratch on a remote server via EM and although we weren't feeling quite masochistic enough, Oracle even claims that you can install an entire server, including the OS, onto a bare machine if you so wish. As well as installing Oracle, EM manages your patches and alerts it combines what it knows about what version's running on what machine with the contents of Oracle's MetaLink (support) Web site and can both tell you what needs updating and manage the rollout (and rollback) when you say "Yes, I want to apply the patch".
Aside from grid computing, the other big thing Oracle is making a big deal of with 10g is automation the idea that you can do stuff yourself that would previously have required a trained DBA. Perhaps scarily, you can let the system manage its own filestore requirements which includes doing its own mirroring and filesystem partition reallocation (it builds an extra layer of abstraction on whatever filesystems you point it at). As well as EM telling you about what you might consider the standard, noddy issues with your servers (e.g. excessive privileges for certain accounts, insecure system passwords and the like) it also has some new, cleverer-than-before low-level analysis tools that watch what you're doing and let you know if something's not particularly efficient (e.g. if you've forgotten to index a table and it's doing a lot of full table scans instead of using indexes). The aim of all these automated tools is to help you represent your collection of Oracle servers as a single "blob" of computing that knows the most efficient way to combine your processing requirements with your data and your I/O needs, without the need for a brain-the-size-of-a-planet administrator to hold it all together.
So does 10g do the job? Of course it does. Oracle's always been tremendously scaleable, and the programmer tools are there (both for Oracle's native application-building suites and for third-party systems such as the .NET Framework and Microsoft Visual Studio) to allow you to build screamingly fast client-server applications without having to resort to the high-level abomination that is ODBC.
Is it idiot-proof, and usable by the average computer user without specialist help? Nah. EM is of course a tremendous boon, and the low-level optimisation tools let the average user do an order of magnitude more on their own than in previous versions. To make the most of Oracle, though, you'll still need a DBA to come and strut their stuff for you; the nice bit is, though, that you can do all the basic crap (and some of the less basic crap) yourself instead oomeone in the company ought to acknowledge the existence of the CREATE INDEX command.
Oracle is a serious piece of kit. It's no accident that the low-end price compares with Microsoft SQL Server, and to be fair to Oracle the effort and skills requirement of implementing an entry-level 10g installation is not dissimilar to that with SQL Server. If your installation warrants the Enterprise version, though, you wouldn't expect to spend the best part of 100 grand on your DBMS without also spending a few quid on a trained person who can milk the best performance out of it.