Enterprise class systems. I prefer to call them unnecessarily ridiculously complicated, bloated, and just generally overly restrictive applications.
Well, I have to deal with Oracle for one of my courses. It’s a wonderful database, I mean, the basic free edition only requires 2GB of disk space to install, and only consumes around 880MB of RAM whilst running, with no connections or databases (beyond what the installer puts there) or anything. I can’t being to imagine the “true enterprise edition” and how much resources it needs. Contrast it with MySQL, which has far more modest requirements of like 40MB install and uses under 30MB here.
I admit, I have not bothered trying to configure Oracle. I don’t really want to, to be honest. But one would imagine that the free non-commercial version is probably aimed at students or similar, and thus would be configured towards such setups (as opposed to a dedicated database server).
I haven’t used it much, but already, one of my beefs with it are auto-incrementing fields. It’s a common thing to do, so crappy systems like MS Access include an easy to select AutoNumber type, and MySQL allows you to specify auto_increment in the CREATE TABLE statement. Being an enterprise class DBMS, Oracle chooses to use a far superior method – you need to make a sequence, attach it to the table or whatever, and then use a trigger to update the sequence when a new record is inserted. The fact that it requires more work means that the DBA can charge more hours for configuring an Oracle database, so it’s obviously better (except to the firm (aka suckers) paying for all this).
Though I guess Oracle at least has triggers, whereas MySQL doesn’t (or I haven’t seen them at least).
Oh, and if the above isn’t enough, their wonderful license agreements with free products are wonderful too. I’m currently writing this because I’m waiting for some 20MB component to download over this 6KB/sec internet connection, because other applications couldn’t include this Oracle component. They make it easy to grab the component too, well, I mean, it’s free, so I guess the people getting it can suffer right? Need to register (or use BugMeNot) and download won’t go in download manager cause it needs cookie based authentication. Urgh, how lovely.
I had someone ask me a bit about a query in Teradata (another enterprise class DBMS). For MySQL, a simple
SELECT GROUP_CONCAT(name) FROM people query would’ve done the job. Obviously this enterprise class system doesn’t have that cheap GROUP_CONCAT function. It does have a POSITION function for finding the first instance of something in a string, however, but it doesn’t have some sort of REVERSE_POSITION (InStrRev?) type function, for finding the last instance. I guess if it had a string reverse function, it wouldn’t be so much of an issue, but it doesn’t even have that. Hooray for the huge selection of available string functions there…