Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Are Expensive RDBM Systems Worth The Money? 472

Death of Rats asks: "What are the actual advantages of high-end Relational Database Management Systems (such as Oracle) over the free or low-priced solutions? Is it worth paying the 10 to 30 thousand dollars (or more) for Oracle, when you can do (as far as I know) everything it can by using ASP with Access/MSSQL for Windows, PHP/MySQL for Linux, JSP with JDBC connections for most platforms, or any number of other free or cheap systems? Is there a considerable speed increase, or is there enough more functionality to warrant the outrageous costs? Are some of the technologies more suited to different tasks? Any time I have needed to use databases, the open-source solutions have done fine, so I am skeptical."

There is no one-solution-fits-all answer to this question, as it really depends on the requirements of the task at hand -- which will in turn determine what one needs from an RDBMS. I'm sure there are tasks out there which better suit the high-octane RDBMS systems, but what tasks do readers feel still need that kind of power? Has the distance between Enterprise RDBMS servers and the free alternatives shortened at all?

This discussion has been archived. No new comments can be posted.

Are Expensive RDBM Systems Worth The Money?

Comments Filter:
  • You pay for PERFORMANCE, STABILITY, FEATURES...

    MySQL, Msql, Sybase, MS Access and other similar
    low end DBMS's can handle no more than 1M records
    and 50 hits/second. Also you must shutdown your
    database for hours each day to backup your data
    so you can recover from the inevitable crashes.

    Oracle and MS SQL Server can do a little better
    and handle 100-300 hits per second, 100M records,
    and run 24/7 with online backups.

    If you want to handle really large databases you
    need to use a system that was designed from the
    start to handle huge databases, billions of records
    and thousands of concurrent transactions.

    The fastest database by a factor of 10 is a little
    known system called Model204. A single system with
    a single Model204 can handle:
    30000 logged in users
    5000 concurrent transactions
    5000 transactions/second
    2500 active databases/system
    10000TB of data
    4 Billion records/database
    350 Million Hits/day
  • ORACLE database tables can be accessed by SQL commands which are embedded in standard programming language programs.

    Definitely not unique. PostgreSQL, for example, has hooks in Tcl, Perl, Python, C, C++.


    They aren't talking about programming hooks. They are talking about Pro* (Pro*C/C++, Pro*COBOL, Pro*Fortran) which allows you to directly embed SQL into an application without hooks. You basically run a precompiler over your code which validates the SQL itself, allows runtime diagnostics at the client level, clean type conversion, etc. Personally I prefer OCI, but that's just me.

    Features which I believe Oracle has most of the open source competition beat in is clustering (run oracle on x machines and have it load balance), parallelization of queries across CPUs in your cluster (very nice for long running queries), resource management (you can allocate x bytes for y task if you want), the ability to index based on function (index upper(col) for instance) and runtime configuration & status (the v$ tables are scary they are so complete).

    Now, Oracle has several drawbacks. sqlplus has no readline support (quite annoying). Certain types of simple queries are not optimized (select count(*) sucks). The OCI libraries are big and there is no small client-only installation (we built our own tiny library-only install).
  • First off, MS Access is not a true multi-user database as anybody who has tried to use it as such as probably discovered. It also has mega-trouble scaling about 1 GB. I'm not familiar with free software databases so I can't comment.

    But what are the key selling points of Oracle?

    1. Highly scalable architecture. Terabytes of disk, hundreds of transactions per second. Oracle can do it.

    2. Clustering. Oracle Parallel Server provides true failover capability.

    3. Replication. Another data distribution/failover/backup approach.

    4. Tools.

    5. Large # of apps designed to run with Oracle.

    6. "Value added" add-ons such as Oracle Forms, the geospatial option, etc.

    7. All out Java integration

    8. Interfaces to most other databases, support for remote queries and dblinks.

    9. Ability to back up database while it is run.

    10. Very portable.

    11. General lack of bogosities compared to the competition.

    12. Market share --> confidence in them being there for the future.

    13. Support.

    The knocks on Oracle have always been its high price - try buying Oracle for even a basic Sun E-450. It can run upwards of $300,000 - and the relatively DBA intensive nature of it.

    For anyone who plans to develop highly scalable systems, I highly recommend studying the Oracle architecture. It is a textbook on how to do large scale computing. And for those used to the traditional Unix client/server computing paradigm, it can be quite an eye-opener.
  • Comment removed based on user account deletion
  • I broke Oracle8i on Solaris 7 (patched) and Veritas LVM 3.0.x this past summer on a Netra t1405. I can dig up the script that provoked it, maybe, if I'm lucky. I still trust Oracle pretty well, though. It may have been a Solaris issue, but that would surprise me. I've only heard of one other coredump with Oracle 8.x.x on a primary development platform (Solaris and maybe HP-UX?).

    I didn't actually break Informix; one of my friends working as a DBA for Cornell broke that in production, was corroborated, and that's good enough for me. That was on AIX. (Are they still in business? Their webpage is up but that's not really a perfect indicator of solvency.)

    Sybase was on Linux. I'll admit, I cheated a bit there. I'd be happy to try and break DB2 UDB on something like an S/390 G6 but I don't have one of those lying around...
  • The EMC was a red herring, after a fashion. It's more for the purpose of "see this pile of money? that pays for the DISKS to run a real OLTP DB.".
    I mean, this is Slashdot, not a technical forum.

    I'd rather spec a Sun StorEdge/T3 array (for Oracle) or IBM's competitor to it (for DB2 UDB, presumably running on AIX) for performance, since EMCs are legendary for being butt slow once you blow through the cache. There was an article on adaptive caching RAID arrays in Oracle Internals awhile ago; someone built a hardware solution...

    The Cheetahs now come in an X15 (15000 RPM) model, if you're rolling your own storage (ittybitty Oracle setups, PostgreSQL, or MySQL).
    They're pretty nice IMHO, I have a few of them in RAID 1+0 here. Snappy. It's also nice to rack them in a 4U so you have room to put two Adaptec UW-160 cards in there and keep each side of your mirrors on a separate channel. 72GB mirrored at 15000 RPM... yeah, it beats up the EMC "solution" for that scale of a project. Obviously I'd start reaching for Sun Storedge JBODs after that.

    But yeah, you're right, that was a spurious point.
  • Oracle is definitely more scalable, etc, but I'd like to attack it from the standpoint of a developer:

    There are some big performance features (statement caching, stored procedures, materialized views, etc) that definitely help with large web sites, and there are others that help me get my work done, like subqueries. I haven't used MySQL in about 6 months, and up until then there was no such thing as a subquery, which can be handy at times. Take the following query:

    SELECT
    a.message_id,
    a.message_text,
    b.message_count
    FROM
    messages a,
    (select message_id, count(*) from message_hits group by message_id) b
    WHERE
    a.message_id = b.message_id (+)

    Oh, and that reminds me- outer joins too. :) Sure, the above query can be done in mysql, but it would take me more time to write, and possibly mean splitting it up in to two queries. I can't use mysql now that I've gone to oracle.
  • I also have been tinkering with PostgreSQL since it was Postgres95, and I couldn't agree more. If you haven't checked out PostgreSQL for a while you owe it to yourself to download the newest 7.1 betas and try it out. PostgreSQL has gotten a lot faster. In fact, unless your application is extremely select heavy PostgreSQL will almost certainly give MySQL a run for it's money.

    It also has a great many of the nifty features that make the commercial databases so expensive, and the mailing lists are amazingly helpful. It certainly doesn't hurt to give it a try.

  • by Improv ( 2467 )
    Oracle is an SQL database....
  • HAHAHAHAHAHAHAHAHAHA

    Based on ten-year-old Sybase is more like it.

    Sybase and Microsoft parted ways at SQL Server 4. There has been a lot of programming water under the bridge since then.

  • Reliability and scalability.

    It is pointless to even compare something like Access or MySQL to something like Oracle or DB2. If you are even asking this question, it means that the above two words are foreign to you.
    ___
  • If you read the fine print you'll notice

    a) they get 30 days to tune your server
    b) after those 30 days, you have to pay for the time they took to tune your server. At Oracle consulting rates, that's a _lot_ of money

    So, they're actually trying to jip you.
  • Interestingly, SAP is releasing their DB backend under the GPL.
  • Features which I believe Oracle has most of the open source competition beat in is clustering (run oracle on x machines and have it load balance), parallelization of queries across CPUs in your cluster (very nice for long running queries), resource management (you can allocate x bytes for y task if you want), the ability to index based on function (index upper(col) for instance) and runtime configuration & status (the v$ tables are scary they are so complete).

    Also (at least to me) is replication. AFAIK, there is no compare on PostgreSQL. Dunno about Interbase/Sybase.

    Although, I discover that my needs (web backends) are met without using Oracle's bells-and-whistles -- which is why I'll never be a real DBA, just an amateur forever. While I suppose ANY application can be optimized by utilizing Oracle arcana, time-to-market keeps me from dabbling.

    But, replication is seriously cool, even for simple web stuff. I like being able to know that my dev DB actually reflects current state (or vice versa, tho that scenario turns my guts to water.. :)

  • Large quantities of data can be read and updated.

    This is not unique to Oracle, but I suppose the argument could be made that Oracle is the leader in this.

    Complex data selections from one or more tables can simply be retrieved by using SQL*PLUS, application programs or 4GL ORACLE tools (Developer/2000) e.g. FORMS, REPORTS, GRAPHICS.

    This covers mostly the completeness of an Oracle solution.

    A lot of commercial software products are based on ORACLE RDBMS.

    True.

    Users of commercial tools e.g. ACCESS, EXCEL have the possibility to access external ORACLE tables in their well known environment.

    Not as unique in these days of ODBC. The quality of the middleware tends to be higher with Oracle solutions, however.

    ORACLE database tables can be accessed by SQL commands which are embedded in standard programming language programs.

    Definitely not unique. PostgreSQL, for example, has hooks in Tcl, Perl, Python, C, C++.

    National language support enables developers to design applications with respect to the native language of the users.

    I'm not an expert here. I have no experience with I18N solutions in Oracle, but knowing what I do about Oracle as a technology and as a company, I can confidently say that Oracle has best-of-breed solutions in this area.

    But, PostgreSQL, with it's world-wide development model, is probably not as far behind as you might think.

    ORACLE applications can invoke programs written in third-generation programming languages, i.e. you can call Fortran and C from within ORACLE applications.

    No experience here, either. I know that Oracle's embedded Java is highly regarded, but haven't had much of a reason to delve into it (plus, my Java programming is pretty poor)

    Applications are portable across platforms. No matter which platform you used for application development, the application will be adapted to your working environment.

    This has the ring of untruth -- an application that talks to Oracle on Windows most certainly isn't portable to Unix or MacOS. Perhaps the SQL calls and triggers are portable? That doesn't make sense, either, as SQL is supposed to be portable, and triggers are internal to Oracle.

    Data can be shared with more users regardless whether they run their application on the same computer or not.

    I don't credit Oracle with this anymore than I credit Internet Explorer for rendering <I> tags as italics. Oracle follows E.F. Codd's RDB spec, and as such it allows for multiple users (which, really, is as much a part of it being Unix based as anything else).

    Data can be shared with other applications. Access to tables or subsets of data can be restricted for particular users depending on their defined role.

    This is not unique to Oracle, but is executed well within the environment.

    The level of data integrity and recovery in case of errors can be defined by the users requirements.

    This is a function of an ACID compliant RDBMS, specifically, the "D" of ACID, Durability. Your data should not be vulnerable to some yahoo tripping over the power cord. However, in practice, this is more dependant on the skill and talent of the DBA than the heroics of the RDBMS (i.e. spec-ing mirrored arrays, good backup policy, sane rollback partitions, and proper disk management (rollbacks on separate disk from data, etc.))

  • I agree that each database product doesn't directly compete. MySQL != Oracle. It all highly depends on what you want to do.

    MySQL is great for sites like /. where loss of data isn't a concern, but speed is.

    Postgress is great for those who want a low cost solution for a small RDBMS.

    M$ Access is cute for visually seeing the relations, but pretty much a joke for anything serious.

    SQL Server / Sybase these two are essentially the same, they were the same product a few versions ago. M$ added some neat features to it, and Sybase seems to be struggling to add useful and needed features. (Like hot backups (where you can take a snapshot of the database devices), load balancing, easier management of replication, major scalability and failover.) Sybase is working on it, but Oracle and DB2 are way ahead these two products by quite a bit. SQL Server is also hampered by only running on intel hardware. Sybase at least runs on quite a few different platforms.

    Oracle the kingpin of the RDBMS areana. Pretty much has all of the features, and a huge licensing fee.

    DB2 everything that I've read has rated DB2 quite high, it seems to be the database that people use but no one seems to know about.

    Pretty much it's all that you're wanting to do with the database, and how much $ you have to determine which database you use. But keep in mind if you write everything you can in ANSI SQL, it should be fairly portable between database vendors. Unfortunatley I've seen cases where writing something with Transact-SQL (Sybase / M$) or PL/SQL (Oracle) is needed. But supposedly both are going to have (or already have) native java support so you can just create a query in java rather than SQL. I don't know much about that other than it's supposed to exist or comming soon, and I'm not a java programmer, so I can't say for certain.
  • I think there are really three broad categories of issues.

    First of all, how important is your data? High end RDBMS systems offer a lot of administrative features that make backing up your data easier and less intrusive. To take an extreme example, Access is notorious for losing data. Everything is stored in a giant blob file, and when that gets corrupt, you can loose everything.

    Second of all, how much load do you need to support? Oracle has been running very heavily loaded DB servers for a long time; it's the safe choice. SQL Server is getting better, and MS claims that it will scale indefinitely, but it's probably trickier to run under high loads than Oracle on Solaris.

    Finally, what kinds of programming are you going to need to do? Will you have feeds of data moving in and out of the system? Lots of triggers? Integrity checks? How much procedural language programming are you going to have to do, and how closely will you need to integrate the DB into existing systems?

    You shouldn't use Access for anything serious. It's a bad system that can't handle loads, and that tends to corrupt and lose data. Think of Access as a 2nd rate front end, and stay away from its back end at all costs.

    MySQL is fast, and it's great for simple web applications, but it doesn't support big chunks of important SQL functionality and it doesn't have professional admin tools that you need to protect your data.

    MS-SQL is kind of expensive for web applications, unless you're comparing it to Oracle. And I think the development tools are weak when compared to Oracle. But it's easy to admin, it's rock solid, and it has a really respectable features set across the board. MS seems to be intent on closing the features gap with Oracle. Some big companies use SQL Server to store financial data -- it's a reliable platform.

    Admining Oracle was hard for me to learn. Setting Oracle up on Linux was painful as well, for me at least. I don't know it well, and I've only played with it, never done anything serious with it, so I'm not a good Oracle reference. But it strikes me as big and complicated and able to do absolutely everything that you'll need. You probably won't outgrow it.

    If you're going to run a message board on a web site, then use MySQL and PHP. But if you have data you have to protect, and you need to keep an offsite server that's constantly synced with your main server for safety, you really have to go with something like MS-SQL or Oracle.

  • Heheh, that's right... you probably won't be able to sue them or anything, but you can sure take out a lot of frustration on some poor minimum-wage phone-monkey's eardrum. That's worth at least 30 grand right there.

    I do not find in orthodox Christianity one redeeming feature.

  • You must be talking about the Oracle Applications suite (which is at version 11i now), not the Oracle RDBMS and tools, which are at version 8i.

    The article was asking about the RDBMS, not the Apps.
  • by PD ( 9577 )
    Oracle runs on many platforms. What platform does Oracle run best on?

    A: A 35mm slide projector.

    (I guess you would have to sit through an Oracle marketing presentation to understand.)
  • Just like that old phrase says, noone ever got fired for buying Microsoft. The same goes for Oracle.

    Please don't rewrite the history.
    The correct phrase is "Nobody ever got fired for buying IBM."
  • FedEx has successful systems using HP/UX and even AIX, but you're right in that if you give the DBAs their druthers, they'll say "Solaris".

    And so will all us SAs.


    -
  • For small to medium sized installations of a couple of hundred users Interbase 6 makes a perfectly fine server. It has all the checklist items (transactions, triggers, stored procs, solid SQL support), is a robust, debugged application, and is now completely free. It stores each database with all the users, groups, stored procs etc in a single file, which makes backup and transfer a snap. Newsgroup support is also good, and will probably only get better with time. The management GUI is no Enterprise Manager, but that's a small price to pay for what you get. In certain market segments Interbase could eat MSSQL for lunch if it were marketed half-way decently.
  • 24/7 support is only automatically meaningful for hardware support. 24/7 software support is only meaningful if the people providing the support:
    • Are more than phone drones
    • Trust your evaluation of the problem is really exposure of a bug and don't call it user error
    • Have ready access to developers and source code and can provide patches/fixes in a quick time period
    If any of the above elements are missing -- phone drones who have to run you ragged before escalating to someone with a pulse, fingerpointing about software/hardware "user error", no developer/source access -- you are fucked, and you might as well be posting on Ask Slashdot, since you'll probably get a worthwhile answer there faster than from support. In fact, I know people who will pay consultants when they have problems because the consultancies usually have better contacts and can get beyond level 2 support faster than Joe Support Contract could ever hope to.
  • I don't mean to be knitpicky, but the quote was "nobody ever got fired for buying IBM."
  • Since IBM hasn't been such a mover and shaker in 10 years, it's more appropriate to Microsoft.

    In what world is IBM NOT a mover and a shaker today?

    If you want an enterprise system, IBM is a great place to go. They have good enough stuff in enough areas, and enough people to throw at any problems that need to be solved.

    If you're talking PCs, then IBM doesn't matter, which is kinda ironic. But there's no money in PCs (besides a few companies). In Enterprise computing, it's still raining moolah.

    -jon

  • I'd agree with the idea that IBM was still a mover and a shaker if the context was still in mainframe computing, but have you ever tried websphere?

    Yes, I have used WebSphere quite a bit. And I agree; it's shite. It was chosen before I was hired due to its integration with VisualAge. Now, none of our programmers are using VisualAge (JBuilder and NetBeans have pretty much won) and I've tried to push my company into looking at other app servers. The fact that it's possible is a testament to how spiffy J2EE is.

    I didn't say that IBM products fall into the "best of breed" category. The thing is that WebSphere (like many IBM products and services) is good _enough_. IBM is so big that for enterprise customers, the IBM good enough products combined with IBM's good enough service are good enough to seal the deal.

    To the dismay of geeks worldwide, mediocrity usually wins the day. And a giant mediocre company is a mover and shaker by any measure.

    -jon

  • Since you recommended Interbase, have you used both the commercial and open source versions? Now that Interbase is open sourced, is Borland still continuing develop?

    I've also heard that there is an Interbase code fork called Firebird. Do you know anything about Firebird?

    thanks!
  • If you have a task that you know you can do with the necessary reliability with MS SQLServer and Access, or mysql, or whatever other low-end database you want... then you don't need oracale. If you have such a task, you also are not a bank doing transaction processing, and you are not doing any truly mission-critical tasks.

    Oracle can cost a lot more than the 50 thousand bucks you mention... a lot more. Oracle is extremely scalable, and extermely stable. Oracle offers 24x7x365 support and backs their product 100% (for a fee, of course).

    To put it differently, if you were aware of a situation that actually used oracle for good reasons, you probably wouldn't have asked the question in the first place.
  • I admit, i do work for Oracle, so i am a bit biased in my opinions. So with that out of the way i'll give you some input of why I believe people choose Oracle over other freely available or commercially available products.

    Scope: Oracle provides business and enterprise solutions from ground zero to the never ending support and uprgade cycle

    Support: You can't really have better support then some of the talent working support. Sure the first person you get in touch with may not have any clue what you are talking about, but the support infrastructure is there and works great! Just create your Itars and TAR's according to the guidelines and recommendations of support and they will fix your issues

    Solution: This is the biggy. For example, with Oracle 9i AS you have an incredible applications server that cannot be beat! Built on Apache, Oracle 8.1.7, and Portal 3.0 with Forms and Reports 6i. You can build your own portals running Apache, PHP3, MySQL, and Zope and a conglomerate of modperl and such, but with 9i AS you have a foundation already built that you plugin saving hundreds of millions of dollars in development.

    API's & Developer Support: Oracle does provide alot of its technology stack, open API's and such to developers. You buy Oracle Applications 11i and you can integrate that and customize to your hearts content. Most companies wouldn't imagine providing tools like that and supporting it at the same time

    Proven Technology: You use oracle software, and your database WILL work, simple as that. Need custom software and you don't want to develop it, oracle will, need an application to solve your business needs, oracle has it.

    Open source is great, but commercial software that supports and open environment is just as superb in my opinion. You buy Oracle and you can run it on any architecture available today. You can use the skills and technologies already tried and true in your business to leverage oracle software to increase whatever capacity and concepts your trying to achieve.

  • Really? This doesn't fit with what I've seen. In my experience, disk read/write performance falls off about the same from first to last sector, on all products in a line. Regardless of the number of platters in the drive.

    The fastest drives come out in small sizes first, but that's more of a sales and simplicity of manufacturing I'm sure than anything else. Toss more platters in it and you simply spread the performance curve over a much large data space.

    As a reply to the post below this...

    It's not as much "See this, it's *real* hardware which you require to run Oracle." as "You don't really need Oracle (or DB2, etc) unless you also need this kind of hardware - if you're playing with x86-level hardware, you don't need the high-end software."
  • This is where a DBA comes in. They'll know enough about how the data is stored (that stuff nobody is supposed to need to know) that they can tell if page level locking is sufficient. In most cases, I agree, it would be. If you're writing to phone records stored (for instance) in name order, page locking is okay for random access patterns. You'll get a block or two, but who cares in the long run. But if it was St. Patrick's day and you got a a run of calls from names starting with Mc, you'd be in trouble.

    This is why keys are often assigned with things like MD5, an even distribution random appearing hash will prevent too many concurrent accesses from blocking.

    Then you simply index by everything you want to look up. As long as the table doesn't block, who cares what order it's in.

    But a skilled DBA will give you an answer that's related to the actual product you use, not just general comp-sci answers.
  • Disclaimer: I used to work for Oracle.

    I think the key point here is heterogeneity: Oracle wants customer's money, that's obvious, but they do accept that they will have to work with other company's products. Microsoft do not accept that, and always seek to disable (or make suboptimal in some pernicious way) solutions involving other people's technologies.

    To take an example: Oracle Designer [slashdot.org], a product I used to be involved with, supports multiple database platforms for input and output of database schemas. Granted that the backend database for Designer must be Oracle, but the point is that Oracle as a corporate entity understands the point of interoperability.

    Further, Oracle has made an effort to contribute to standards: UML is the one I know most about, but SQL is another obvious candidate. Microsoft's contributions to such standardisation efforts can be characterised as being half-hearted at best, deliberately disruptive at worst.

    In other words, Oracle is a different kind of animal to Microsoft - dangerous to competitors yes, but not an all-consuming monster.
    --
    Dunx

  • Oracle says they saved a billion dollars by using their own software.

    Of course, they got it for free.....
  • The best summary of this is that "The Database IS the Business". It all depends on how much the integrity of the database is worth to you. It also depends on how well you want to scale up the business. And I'm not *just* talking about the database, but the level of support, and the personel who are trained and *qualified* to manage your data.

    It's kind of funny to say it this way, but I'd have to wonder what the correlation is between successful businesses, and commercial databases.

    At the big business side, an open source database isn't even a consideration. Its at the low-end of the scale that it is. And the single driver for going with an open source database doesn't *seem* to be reliability, cost, or 'openness'. (Do you want your people modifying how the database's internal code works?) Its about dollars. Businesses with dollars will (with rare exceptions) choose a commercial and well-trusted database.
  • Having a person to answer the fone and write down your question 24x7x365 is only 1% of the job. We've broken Oracle numerous times and it's taken them weeks to get back to us with something to TRY, not even a guaranteed fix.

    I think the biggest thing that Oracle really provides is tight row-level locking (Sybase only locks in 4k chunks to my knowledge) and better transactioning or whatever you wanna call it.

    Speed too I guess.
  • That means I can take advantage of best speed everywhere else, and use table-level locking on this one transaction just to be safe. These are not options in most large RDBMS', but certainly are in something like MySQL.

    You've never used a large RDBMS, have you?

    Most RDBMS' do allow you to choose between speed and ACID/atomicity/etc. DB2 supports a boggling array of options, including a MySQL-style "store with no security whatsoever" option. The latest SQL spec even provides standard terminology for some of these features. Most of the big DBs provide more speed vs. reliability reatures than the spec requires.


    --

  • Oracle is worth it based on what you are doing, I have used MySQL, PostgreSQL and Oracle. I maintain some Oracle DBS at work. MySQL will shine for a news site like slashdot, PostgreSQL would shine for ebay. Oracle on the other hand will shine for something more complex. My DBs handles 10's of millions of transactions a day, very complex transactions, with each DB being half a terabyte, it is no easy feat! MySQL and PostgreSQL will not be able to even handle a quarter of what I give to Oracle. Oracle is way way way advanced, you just don't know much about it that is why you think it is the same as the low end free DBs. Take a trip to a good computer bookstore, and take a look at Oracle books, try reading one on performance tuning and you will quickly realize how complex it is... Anyway, it all depends, on what you want to do and of course how much money you have, and amount of effort you are willing to put to get creative.

  • I've used Oracle and Sybase extensively. Sybase does not suffer from most of Oracle's speed problems, but neither one supports such features. Nice to see DB2 does, but please don't make sweeping assumptions about my experience.
  • You are absolutely right. But you expressed your opinion in a calm, objective, rational, even-handed manner, so you won't get any karma for that %-P

    A more two-fisted approach might be to note that yes, big-ass commercial databases (Oracle) have tons of features that you really, really need sometimes. That being said, the vast majority of sites don't need it. Sometimes, the real database professionals pipe up and see things all from their perspective. Fact is, I can do something the size of /. without really encountering a strong need for real database normalization.

    Boss of nothin. Big deal.
    Son, go get daddy's hard plastic eyes.

  • Most databases have some sort of an executive that runs scheduled jobs. It would be trivial to implement something which fires off an email message or beeps somebody when a disk is using 90% of it's space. I really don't see why this is such a big deal.
  • " I'm assuming that the statement "none of these databases can comete with Oracle head to head" applies to the open-source databases. I'd be most happy to put DB2 up against Oracle (and Oracle up against a wall. ;-)"

    Yes I should have clarified that. DB/2 can scale from your laptop to your mainframe. It's very nice.
  • It depends on your app.

    Lots of writes postgres is faster then mysql.
    Lots of selects with comples queries postgres is faster.
    lots of selects with no joins mysql is faster.

  • " With MSFT, there is a real risk of vendor-lock -- they aren't just selling the RDBMS, they're selling the OS and the apps. I've found it to be much more difficult to get MS-SQL to play nice in a multi-platform environment, particularly when it's not MS-SQL that's the "main" system.
    "

    When is the FCC going to go after them for that blatantly false commercial which says that their database plays nice with other databases. How come they get to get away with false advertising?
  • Check out interbase. Great GUI tools, great SP language, fast, stable, sql92 compliant and open source. It runs on windows and linux.
  • Extemely stable as in a 74 pinto is extrememly stable compared to a 72 pinto.
  • "But where do you draw the line?
    "
    Here..

    If the program is expecting to use some resource it ought to check that the resource is available. This applies for anything. A program ought not to crash because some file it expected is missing and it ought not to crash because there is no more room on the drive. Seems simple to me.
  • If you are running a DataBase containing a few meg (or even a few hundred) that can afford to come down for backups / maintenance (vacuming anyone?) then you will probably get no advantage from going to a more expensive commercial product.

    Oracle (the DBMS I use most) lets you do funky things like online backups (backing up while your database is up & serving data), interesting index options, adding terabytes of disk while the system is up and running. All things that *most* people don't care about BUT are vital for 24/7 shops.
  • People who think that Access or MSSQL is even in the same league as Oracle have never used Oracle (or don't know how to). In my opinion, even Postgres (possibly the second best RDBMS in the world) isn't in the same league as Oracle. Yes, Oracle is a big, awkward cuss, extremely difficult to configure and requiring specialist management. Oracle would not be a cheap solution even if the software was free. This doesn't mean it's not a good solution. It has stability and security to a degree that is just completely different.

    Of course, anything on an MS Windows platform has stability and security problems... but it's not only the platform that contributes to such things. If you're dealing with a database which tracks things that matter, then only a very robust database will do. Use Oracle if you can afford it, Postgres if you can't.

    And if you don't have the skills, hire someone who does - it will be cheaper in the long run.

  • National language support enables developers to design applications with respect to the native language of the users.
    I'm not an expert here. I have no experience with I18N solutions in Oracle, but knowing what I do about Oracle as a technology and as a company, I can confidently say that Oracle has best-of-breed solutions in this area. But, PostgreSQL, with it's world-wide development model, is probably not as far behind as you might think.

    Is there anything more to this than correct support of Unicode (+ maybe various other national charsets)? I'm having difficulty seeing what a Chinese user would want that an English user wouldn't, besides the ability to use Unicode/Big5/GB/etc..

    *All* modern DBs support Unicode, from MS to MySQL to Postgres to Oracle to DB2. But even if one didn't, as long as it supported ISO 8859-1 you could just use UTF-8. Sure, you'd have to multiply your field lengths by 3 to be on the safe side (or 6 if your users want to write Egyptian Hieroglyphics or Klingon), but it would work.

  • In my limited experience, MySQL is faster at doing simple things than any other database out there.

    When you're programming a web-based app, where response times are critical, MySQL may actually be a better choice than Oracle, even if you do a hybrid solution, with MySQL used for quick lookups and Oracle doing the back end transactional heavy lifting.

    Notice that the Oracle $1,000,000 speed guarantee [oracle.com] only applies to DB2, WebLogic and MS SQL Server, NOT Mysql or Postgres.

  • ...when you can do (as far as I know) everything it can by using ASP with Access/MSSQL for Windows, PHP/MySQL for Linux, JSP with JDBC connections for most platforms, or any number of other free or cheap systems?

    But you can't. And that's why the big software.

    I just came off of a large customer site where, the VP(IS) having received the personal assurances of Bill Gates, the customer spent two years replacing UNIX-hosted RDBMS with NT4-based SQLserver. Result? Transaction query times went from 2 seconds to over two minutes. The UNIX programmers are moved on, the VP is out of the computer industry entirely, and the customer is in deep kimchee.

    One of the hardest lessons for apprentice (and journeymen) programmers/analyts to learn is scalability. Just because the single-user prototype worked doesn't mean that the design will scale up to support hundreds of simultaneous users.

    One of the marks of the veteran is how fast s/he checks the specs for the marks of scalability. In the case of an RDBMS, if it doesn't have row-level locking with transaction commit/rollback, then it's a toy to be discarded immediately. This isn't because s/he wants to spend the company's money faster, it's because seeing one's software design fold in production like the Tacoma Narrows suspension bridge is a gut-wrenching experience. Those users are riding your design and if they are being hurt, it's your fault.

    I won't say that MSQL, MySQL, or Access are inappropriate for all uses; that would be silly. Ad-hoc databases, LDAP, fine. But they cannot hold up in serious, major applications.

    Look, you cannot work in the software world without ever dropping a bad design into production. But you can try to minimize the number of times you do so.

    And you have a professional obligation to your customer and your users to do so.

  • cymen wrote:
    Postgres 7.x is supposed to be dramatically faster... I haven't had a chance to do any benchmarks - has anyone else? Personally I'm hoping Postgres takes off and we can switch to it from MySQL (for triggers, transactions, etc).

    I've used PostgreSQL since it was Postgres95 and each major version seems to get much faster, (as in the same query executes in 1/3 to 1/2 the time.) However, I know nothing about running real benchmarks on database systems, so I can't quantify anything. I can only report my impressions, and I think that PostgreSQL is plenty fast enough for use in just about everything you'd use MySQL for.

    I'm known to be biased, so make of that what you will.

  • Ever wondered why people are still using 9GB 10.000 RPM disks in arrays?
    The problem with using larger drives in arrays, is that the performance will drop noticeably for the same size.


    Okay... I'll do the stupid things first, then you shy people follow.

  • I use open source (MySQL mainly) databases for about 95/100 projects for which I need database support. That last 5 projects, tho, are by far my largest, for which I use Oracle (and once SQL Server... no more).

    The first thing you get with the big boys is customer service support, which is very important, but not unavailable with Open Source stuff.

    More importantly, tho, you get third party support. Hardware, backup software, any additional software you may want, are almost certain to support the larger databases, and be efficient about it, too. You're probably relegated to ODBC or NO support for smaller database engines. That's very important for long term planning. Also, if your DBA gets hit by a 747, at the moment it's easier to find someone who knows Oracle than PostgreSQL. (At the moment... hopefully, this will change).

    Lastly, the RDBMS supports lots of exotic hardware and OSes efficiently. The difference between Oracle's HP and Sun ports exploit a lot more of the efficiencies of those systems than does a port of MySQL, because Oracle can put a handful of OS specific gurus on the project for each port. Smaller RDBMS may support additional Operating Systems/Hardware, but I'd wager that they rarely exploit them to their full potential. Support, for example, of RAW I/O is available on several platforms from Oracle, while far fewer from other engines. Over time, these sorts of things become important; especially if you ever need to migrate machines, or if performance or large scale is important.

    My recommendation would be to look at size, complexity, and lifetime. Larger, more complex (requiring more tuning/speed requirements), and projects with realistic lifetimes of 5 years or more should rely on the big guys. Single DBA projects on budjet machines that really might be replaced in the next few years as people change their minds about things can be made perfectly functional with free (Free?) RDBMS.
  • If I can take a little different angle than the other posts here, there's more to this than "my product features can beat up your product features".

    A large company picking a strategic database may be making a decision that needs to last 10 or even 20 years. Companies that standardized on DB2, dBase, FoxPro, or other older databases many years ago have had to live with that decision. In many cases, they may think they made the right decision and it worked out for them, in others, they may have regretted the decision later, but once you go down a deployment road with a database or any software product, to a certain extent you're locked in.

    So, when big companies buy Oracle, DB/2, Microsoft SQL server, Sybase, or any of the big companies, they aren't just buying a technical product, they are buying a certain level of trust in the company that they won't screw them (at least technically, they probably will get screwed financially many times (grin)); that the company will be around in 10 years to migrate the database to a new system; that support will be there when they need it; and that they will have someone's balls to squeeze if the going gets tough.

    Open source databases are very, very cool for small web shops and many other applications, but it's not a good fit for the realistic business needs of large corporations. While there is the advantage of having the source code, so you know you can always enhance or change the product yourself, it will be a long time before a typical corporate IT shop is willing to take on that task. They already have their hands full with maintaining less-ambitious in-house applications.

    As the comp.risks guys can tell you, there's a lot more to it than just the software.
  • I see their ads for a $1,000,000 guarantee that Oracle 8 will 3x be faster than your existing server.

    The challenge is at Oracle's site here [oracle.com] and it mentions only Microsoft SQL server 7.0 against Oracle 8i.

    If Oracle was to open it up to other RDBMSes such as Sybase, Informix and DB2/UDB, they would be broke paying folks (including myself) the million dollar prize.

    MS SQL server is limited by the hardware that it can run on, so it is at a severe disadvantage to other RDBMSes...

    Oracle's challenge is nothing more than a marketing ploy, albeit a good one.


    ---
    Interested in the Colorado Lottery?
  • So you really got to coredump even Informix, Oracle and DB2?

    What OS do you use?

    I've used Informix on SGI for 1 year, a 5TB transaction database. And currently Oracle 8i on Solaris, a 100GB datawarehouse full of stored procedures, triggers etc running extremely large (generated) SQL queries, some of the queries alone are 100kb text!!!

    In the 3 years intensive working with these databases, I've never seen a single crash, and could not imagine one.

    Could the coredumps you see have something to do with the operating system you are using? Such as the ever changing glibc on Linux, which will surely make some applications instable?

  • >anyway, I wouldn't recommend Access
    >for that purpose anymore

    Anymore? You mean you _ever_ would have?

    james
  • Performance (unless you are dealing with big SMP systems) is not really the issue. The original N words above are. You pay a lot of the robustness of Oracle (or Informix, another favorite of mine). You get it back in reliability. I have done extensive performance benchmarks on these things on a 40CPU Sun E-10K and they do perform. But I also have experience with using Informix for 10 years in a huge reservations systems app (now on the E10K) and what you really get is high availabillity, good recovery, and nifty features (high performance backups, and lots of stuff that was unportable enough that we didn't use it. You also get easy-to use tools. A big system doesn't use Sysadmins and programmers for database admin, it uses Database Administrators, many of whom have no programming experience). On the big databases, these folks are "off the shelf" in the job market.
  • Oracle can do many things that MySQL cannot do. A more reasonable contender against Oracle would be Interbase, which is also open-source, but even Interbase 6.x can be bought!! What you get is a license with some support. The danish banks use this and pay for Interbase 6.x clients.

    What Oracle provides is a big framework with education, client development tools etc. The closest I can imagine to that on Interbase would be Borland Delphi, which only now is being released in a Linux version. But the support behind using Delphi and Interbase has no long history and is therefore a bad choice in the eyes of many CIOs.

    Lars.


  • I see lots of comments like "you don't just pay for the database, you pay for the people behind it" etc.

    What is that supposed to mean? Does that mean that if you have problems with your database, Oracle will dress up their best monkeys in suits and jet them to your office to charette until your problems are solved? Bzzzt, wrong. That' more money - either per incident, or per service contract.

    Do you recieve uptime guarantees? Performance guarantees? "We won't muck up your accounting data" guarantees? Don't think so. Their licensing terms are so chock-a-block full of "we're not responsible, don't sue us if something goes wrong" legalese that I'd be surprised if they ever paid out a penny.

    I'm not saying that guarantees of this sort make any sense. I just can't understand what people are talking about when they say Oracle stands behind their products. Only to the extent you pay them they do. Which is fine. But how is this any different than, say, contracting with Great Bridge to support your PostgreSQL installation (to pick an example)?

    You get the name, pure and simple. Oh, and you get Larry some jet fuel so he can buzz San Jose in his $38 million Gulfstream V. Hey, it's your money.

    I mean no disrespect to the excellent staff at Oracle. But as a consumer, you need to ask yourself what you're really paying for.
  • There are some features provided by the so-called "expensive" RDBMSs that current "inexpensive", "free" and "open" source database management systems do not provide.

    Replication is a feature that allows databases to keep each other up-to-date. In some modes, replication can occur to allow offsite databases to stay synchronzied with a master. Other modes offer replication, often with only seconds of latency.

    Being able to perform transaction log dumps and incremental backups are also a feature the "expensive" databases have and others do not. This is very important to ensure minimal data loss in the event of catastrophic hardware failure.

    Clustering, to provide transparent, seamless recovery when hardware fails is also a facility that other database systems to not currently offer. This is important in installations that absolultely require 24/7 uptime.

    Some "expensive" SQL databases are becoming particularly good at caching data, query plans and even result sets, so that it need not invest large amounts of resources in oft-used queries.

    Some expensive engines are capable of analyzing past queries to determine what indexes and stored procedures should be created to optimize efficiency.

    High-end databases have been focusing on providing more than just a tabular view of the data. Many are providing complex text-based searching capabilities, which requires a far-different indexing scheme than what is used in traditional SQL databases.

    On other fronts, expensive and inexpensive databases seem to do similarly well, and the inexpensive ones are getting more sophisticated with each release. One in particular that has been making such strives is PostgreSQL.

    PostgreSQL still has some quirks, though. One in particular is the need in many situations to "vacuum" the database. Hopefully in a future release such garbage collection and optimization management will be transparent to the user.

  • The fact is that there are a lot of RDBMS Solutions out there that are a lot less costly than Oracle and offer the real power of an RDBMS. Solutions like SQL Server are far less expensive.

    What are the magical features that make RDBMS so powerful? Well things like Stored Procedures to control the input and output of data, Views to control access, powerful Optimizers to make queries more efficiently, Replication to protect critical information from hardware failure, and Transactions to keep atomic operations together. Without these featues we are back to the old days of dBase and storing data in files. It offers no way to plan or tune those operations and no way to protect the data from being used improperly.

    While mySQL is fine for simple data storage and retrieval needs it gets out of it's league real fast when you start thinking about a mission critical application running in a high volume environment.

    Is there a role for mySQL? Yes! Smaller, simpler sites that don't need to deal with complex transactions or large volumes of access. Is there a role for commercial grade RDBMS? YES! I'll bet you have bought at least one item on the internet through an Oracle or SQL Server DB and you would have been mighty upset if it had failed, or double billed you, or didn't ship you the product.

    We have learned a lot from all those years of MainFrame and Client/Server development. Protect you data, keep it safe, use it wisely. You can access it with all kinds of tools from Web Sites to Fat Clients, but never compromise on the integrity of that precious resource!

    $30,000 will seem like small potatoes if you orders DB was trashed and there is no fail-over.

  • by Anonymous Coward on Monday March 05, 2001 @03:23PM (#383164)
    This is a laughable question to anyone who knows these products. In certain situations, Access or MySQL will outperform Oracle, even when Oracle is running on a million-dollar E10000. There's no way that Oracle can match what is essentially a flat-file read in one of these little databases.

    BUT THAT'S BECAUSE ORACLE IS DOING A LOT MORE WORK!!! WORK THAT SERIOUS ENTERPRISE USERS NEED!

    I have used Access/MySQL extensively (and successfully) for many years, and I currently use Oracle. In these Oracle database, my company maintains medical records in several 250GB+ databases (almost 1000 tables each) that at any given time have hundreds of users.

    We would gladly stop transferring zillions of dollars a year to Oracle Corp. (and enriching Larry Ellison, that horrendous asshole), if you can give us a matching small-database solution. Sadly, we would be lost without Oracle. You ask what the advantages of a high-end RDBMS are - well here it comes: Does Access or MySQL...

    1) Have many different index types to facilitate different types of joins and database uses? (Star queries, bitmap indexes, etc...)

    2) Have a serious security model that is extremely fine-grained and capable (and correspondingly annoying to work with, of course)? We work with medical information, and unlike almost every other company out there today, we guard it extremely tightly.

    3) Have fine-grained locking? I know the MySQL guys are tired of being pounded on because their locking isn't row level (I do know that they are improving this). But it is important when you have hundreds of users. And just as important is analysis capability: when users get locked, Oracle can tell us (with a little bit of sweat) what exactly the problem was, so that we can maybe fix it.

    4) Have a great cost-based optimizer? Is the optimizer flexible enough to respond to hints for those rare situations when the programmer knows better than the database?

    5) Have full-featured replication?

    6) Have support for numerous production support tools that can report on time-consuming SQL statements and also do things like rebuild huge indexes without taking the database down?

    7) Are completely multithreaded so it can take advantage of multiple processors? (Yes - most databases are IO constrained, but when you have powerful disk subsystems like we do, IO can increase to the point where CPU can be a bottleneck.)

    8) Can horizontally or vertically partition huge tables so that they are spread across many different disks? This vastly increases IO.

    9) Have a flexible and intelligent constraint system that has enterprise-level features such as the ability to enforce constraints on new rows but let pre-existing rows violate the constraints. Sounds stupid - but when a table has tens of millions of rows, it might take weeks to write the program to fix bad data - but in the meantime at least you know that no new bad rows are being created.


    I don't mean to slam the smaller databases. In 95% of systems, they are probably OK. But for us in the remaining 5%, our databases are everything to us, and we'll pay almost any price for integrity and performance.
  • by mosch ( 204 ) on Monday March 05, 2001 @05:58PM (#383165) Homepage
    $30K is a lot? Only if you don't care about your company's data. First thing to do when evaluating a database, apply the ACID test.

    Atomicity. Either everything in a transaction gets committed, or everything doesn't. You make sure that no matter what happens, with anything, if you shipped one widget, that inventory is updated accordingly, etc.

    Consistency. The database goes instantly from one valid state to another. It never allows integrity constraints to be disobeyed. Never.

    Isoluation. The database gets updated in a manner such that until a transaction is complete, no other query shall see any portion of the results of that transaction.

    Durability. Once committed, the results of a transaction are permanent. If the database returns success, then 2 milliseconds later a hole in time and space sends one of the db hard drives to 5th century china, after inserting a new drive, the state will be exactly as it should be, with no information lost.

    MySQL, for example, fails every single portion of the ACID test. Yet people will tell you to run your business on it because "it's really fast!" Of course it's fast, it's the db equivalent of a honda burning nitrous, with no way to turn the nitrous off. It'll be fast as hell, but you know it's only a matter of time until it blows up.

    A lot of free databases lack basic capabilities such as sub-selects. This is where the value you're searching for is actually the result of another search. Yes, it's fully possible to write code which will do this in the client, but that's ludicrously inefficient if you're working with moderately sized datasets or larger. Instead of letting the db take care of that natively, you not only do the work yourself, in a non-standard hack, but you pass large amounts of unused data across a network stack, which uses resources.

    I'm not saying all free databases are evil, they aren't. PostgreSQL is a very reasonable database which passes 'ACI' out of 'ACID'. That might be good enough for a lot of applications. Hell, flat files are good enough for a lot of applications.

    The key here is to evaluate what you're doing. Before you look at the cost of the database, look at the cost of downtime, the cost of lost data, the costs associated with misreported data (caused by, for example, the database updating non-atomically), etc.

    If the answer to the above cost reporting questions are all 'zero', including salaried time, then use MySQL. If not, consider using a real RDBMS.

    Contrary to slashthink, businesses aren't completely stupid, they don't spend large amounts of money unless there's the benefit is expected to exceed the cost. There's a reason why most every business on the planet uses a real RDBMS.

    --
    "Don't trolls get tired?"

  • by mosch ( 204 ) on Tuesday March 06, 2001 @02:57AM (#383166) Homepage
    You see, when properly setup, most databases keep the information written across numerous drive arrays. If you follow, as an example, Oracle's recommendations on how to setup your hardware, you'll never have data which cannot be reconstructed after the loss of a single drive.

    Yes, almost all software will let you do stupid things like use files instead of raw partitions, or to use hardware which allows unrecoverable failure. The question is whether such a system is "properly configured" according to vendor documentation. In the case of commercial DBMS, such as DB2 or Oracle, they aren't.

    Personally, I'd be a little upset if somebody claimed a database passed the 'ACID' test, but had inserted a notoriously unreliable single point of failure (hard drive) into the system. Wouldn't you?

    --
    "Don't trolls get tired?"
  • by Christopher B. Brown ( 1267 ) <cbbrowne@gmail.com> on Monday March 05, 2001 @02:41PM (#383167) Homepage
    If you're paying for the high end "gold level" support, if there is a severe problem, Oracle will "put a guy on a plane" to head over and help deal with the recovery.

    That's the extreme case; in rather less extreme cases, a benefit of Paying The Bucks for Oracle is that you can do online backups while the system is running, and have the expectation that any DBA that is worth his (or her) salt can bring it back up if there is a problem.

    Those are the critical things that cause managers to be willing to pay the Big Bucks for licenses.

    The fact that there's a sizable community of DBAs from which to hire is a nice bonus; the process feeds on itself in that it is profitable for everyone (well, almost everyone...) to get involved in certification activities. That means that there's a half-reasonable lowest common denominator set of skills out there.

    Another "merit" is that there is a whole pile of third party software out there, whether in tools to help you manage databases, tools to help you build DB schemas, applications running atop Oracle ( e.g. SAP R/3 [ntlug.org]), and such, again, with financial benefits to many of those involved. It is SAP's interests to promote Oracle sales, and vice-versa... (Albeit that being an example of a situation where there are some conflicts of interest!)

  • High-end RDBMs (Oracle, MS-SQL, DB2) are beasts of a whole different nature from your regular, run-of-the-mill MySQL or Posgress installation.

    First they have a price tag attached. A very high-end price tag. The figure you give for Oracle is the barely minimum a company would expect to expend at the lowest entry-level.

    Second, they all must be baby-sited. You do not install Oracle from a CD, make it run and leave it alone. No, you musrt first pain-stakingly install it, sweat and curse for a couple of hours to make it run and them administer it forever. Leave it in the hands of the users for a couple of weeks and the meaning of the word entropy will soon be known at the upper organization levels.

    Allright, these above are a bit dramatic but true. In a sense, RDBMS makers and specialists are fighting hard to defend the last outpost of what Allan Kay once called "the high priesthoood of a low cult" (talking about the computer people of the 60's).

    Now, high-end software is for high-end jobs. First, they have a bunch of weird performance marks to show at Transaction Processing Performace Council [tpc.org] results for TPC-C, for instance. Carrefully note the kind of hardware they are talking about. They are measuring RDBMS performance in machines costing millions of dollars!!

    And then these beasts are capable of performance peaks unheard of in the free packages. Not that I do not like MySQL. I like it a lot and have used it in many enterprise systems I developed. But those were small enterprise systems. They did not had to sustain high transaction periods, nor high connection counts, nor gigabyte sized database tables. And certanly not all three together.

    I am currently working in the development of a system for a large laboratory. They process thousands of clinical exams per day, mostly in the morning. The organic material for the exams must usually be processed within two to four hours after it is collected from a patient. We will pay whatever it takes to have peace of mind. And I tell you, those will be some well expend millions of dollars.

  • by Mad Browser ( 11442 ) on Monday March 05, 2001 @01:45PM (#383169) Homepage
    One thing that is different between commercial and free solutions is support.

    I know that Oracle can offer you 24x7x365 support options if you have enough cash.

    Can mySQL do that? My experience with support on open-source solutions has been good, but not good enough to bet my business on getting a problem fixed in a few minutes instead of a few hours or days...

    Still, sites that use these databases are still prone to problems, just look at EBay!
    -Hunter
  • by cartman ( 18204 ) on Monday March 05, 2001 @04:12PM (#383170)
    With a commercial database, you pay for proven reliability, proven scalability, support, thorough documentation, and features.

    MySql is not a database in the same sense that Oracle is. The four basic criteria that need to be met by any database are summarized by the ACID acronym (Atomicity, Consistency, Isolation, Durability). MySql satisfies none of them and lacks a huge number of very basic features. It is not a database, but a simple SQL parser on top of a DBM file.

    The ACID test assures that the data will always remain in a consistent state, despite failures. Most enterprises (banks, businesses, etc) would pay any amount for this feature.

    Postgres is a real database. However, it is still _very_ slow and scales poorly. The documentation for Postgres has glaring omissions, and the database lacks some features.

    It is often worth paying for a commercial database. There is not a substantial difference between Oracle the "other" commerical databases (DB2, Informix, Sybase, etc). All of those databases are enterprise-class and offer features and performance similar to Oracle. Oracle charges 3-4x as much money because they are the market leader and market leaders always do that. Managers are extremely comfortable with market leaders, programmers are familiar with it, and DBAs are easy to find. That justifies the extra cost for most corporations.

    It is strange that this "ask slashdot" column lumped MSSQL in with Postgres and MySql. MSSQL is not free, and an enterprise license is not cheap (>$20k if I recall). I have very little experience with MSSQL but it is generally not well regarded.
  • by SheldonYoung ( 25077 ) on Monday March 05, 2001 @01:51PM (#383171)
    The most important thing is to keep things portable across databases. The biggest danger with the high end database is their vendor-specific extensions keep you locked in. Once you've gone Oracle and done all the Oracleish things, it's hard to undo that. I fell into that trap with Informix.

    Start small and keep it portable. Chances are that a solution like PostgreSQL will work quite well. If for some reason you start hitting a wall, it should be easy to move up if you were careful.

    And that's what it's all about. Stay flexible, because it's a dynamic world.

  • by Rupert ( 28001 ) on Monday March 05, 2001 @01:59PM (#383172) Homepage Journal
    Scalability & stability. If you don't care about those, use one of the free offerings.

    We will know databases are a commodity technology when the free offerings are as good or better than the commercial offerings. Right now that isn't the case.

    --
  • by ajs ( 35943 ) <ajs.ajs@com> on Tuesday March 06, 2001 @07:55AM (#383173) Homepage Journal
    More to the point, if you are willing to do the work
    of maintaining consistancy yourself where it counts,
    you can often not only do so, but your code benefits
    from it hugely. Example: my application has a few
    statements which must be atomic (everybody does this,
    AFAIK, certainly PostgreSQL, MySQL, MS, Ora, etc).

    Now, I have one piece of code that needs to execute
    a complex batch of statements with consistency and
    rollback. I can easily write a library that supports
    rolling back this one transaction. Oh, and look, this
    one transaction also does not need to complete lightning
    fast, and happens rarely. That means I can take advantage
    of best speed everywhere else, and use table-level locking on this one transaction just to be safe. These are not options in most large RDBMS', but certainly are in something like MySQL. In fact, you can swap out which back-end storage system (MySQL, Berkely DB and soon Progress) to use on a table-by-table basis for best reliability/performance characteristics.

    Bottom line is this: Oracle has it's place, but once you start
    to need high-end performance, it falls over in the price/
    performance arena. I can run the same database on
    MySQL engine for 1/10 - 1/100 the cost and get the same
    reliability.

    What most people really need out of a database is to never
    lose data. If your DB loses data, then get another
    one fast. Otherwise, you should be looking at how
    much you'll pay when you add the 4th processor....
  • by Malcontent ( 40834 ) on Monday March 05, 2001 @02:59PM (#383174)
    It's a comples question with complex answers.
    In the end you have to decide weather or not you need to scale up and when.

    Of thhe free databases three that are closest to doing what oracle does are interbase, postgres and sybase 11.03 (not open source but free). Each one of these is suitable for a small to medium size company to start with. sybase is aging but still usable and postgres has a quirky set of features but keeps getting better at a very fast rate there are also a couple of companies prioviding support for it. Interbase has been around forever, is well tested and has a large userbase. It is supported by an exrtremely knowledgabel company called ibphoenix and borland too. It also runs equally well on windows or *nix and has great third party client side tools for administration.

    The next tier up in price you have ms-sql, db/2, and informix, and sybase. MS-SQL is ok if you are willing to tie yourself to windows forever and are willing to pay extra for jdbc drivers and don't want to ever access from unix with php or perl or python (freetds is a valiant effort but it's still not 100% functional).

    DB/2 is surprisingly affordable for the workgroup edition I was quoted about 6 grand for an unlimited user license. Compare this with the 5K per processor license for sql2000 and it's a bargain. Your mileage may vary depending on the size of your company and how afraid MS is of you switching. They offer deep discounts to large clients.

    I have never used informix or sybase so maybe other people can talk about those but sybase does offer sqlanywhere studio which is a low cost alternative you can check out.

    Mysql still has a way to go catch up with these databases so I would say forget about it for now.

    In summary. The free databases do anywhere from 70-80% of what the big bucks databases do at about 70-80% of the speed. If you don't need that last 20% there is no need to spend the money.

    Allthough none of these databases can compete with oracle head to head they would make great starting points for a company just starting out.

    Of the open source databases Interbase is easiest to setup and use IMHO so it would get my final recommendation.

  • by Malcontent ( 40834 ) on Monday March 05, 2001 @07:17PM (#383175)
    OK this is just my take on the situation so do your own research OK?

    There is no significant difference between the "commercial" version and the open source version. In fact it's more accurate to say that there is no commercial version at all. There is a fork between the Borland version called Interbase and the "community" version called firebird. This is due to the fact that Borland owns the trademark "Interbase" and the open source folks did not want to run afoul of any laws.

    Right now Borland is developing the interbase fork and firebird people are develpoing theirs. I would trust the firebird fork better myself as Borland got rid of most of their interbase staff. The most experienced of the borland staffers went on to form the ibphoenix company which provides certified builds and support.

    If I was just fooling around I would go download the firebird suite ;) and some related tools and start playing. You'll find the documents are excellant and the third party tools are awsome. If I was running a business on it I'd call the ibphoenix people up first. If I couln't come to an agreement with them then I'd call Borland. Some big companies may only want to deal with Borland though so it might be an easier sell to your boss.
  • by Malcontent ( 40834 ) on Monday March 05, 2001 @10:34PM (#383176)
    There is an excellant middleware for delhi called ASTA look into it.
  • by bbeaton ( 56184 ) on Monday March 05, 2001 @06:23PM (#383177) Homepage
    In my opinion, it most definitely can be, if the business requirements are used as a primary factor in the database engine selection;

    1. Availability: how crash-proof is the RDBMS is 1 part of the equation. Another is the ability to backup and recover the db. In a 24x7x52 shop, you virtually never get the opportunity to shut down the DB. A simple file or filesystem backup will NEVER let you recover a transaction-consistent system. Also, how well does the engine support high-availability clusters, with automatic replicatin and hot-standby servers.

    2. Performance: This is the 1 area where no product is perfect, but the tier-1 products such as Oracle & DB2 particularly excel ... dynamic tuning, and those dreaded vendor-specific extensions are often used in support of this area. In a modern enterprise, expect millions of transactions (each transaction could be updating 30 tables, with several hundred rows) on an hourly or daily basis.

    Application availability: A company doesn't purchase a database just to have a database, anymore than they should purchase hardware or an OS for their own sake. There are more applications such as ERP and CRM, as well as many client-server and two-tier apps written to support the tier-1 engines.

    Scalability: Its fine to cluster servers; I wouldn't want to tailor postgres or mysql to distribute my database on many servers in a number of different geographic areas. Tier-1 vendors have addressed this in the vendor-specific tools (although ANSI 92 attempts to incorporate many of the special features). Size is another factor; can the engine process terabytes as easily as gigabytes? If you have a server with 20GB RAM, will the database take advantage by caching objects (either automatically or by administrative instruction)?

    Support: While support contracts CAN be purchased to support most anything, can you call the vendor at 8am Xmas day with an issue that has caused the database to crater? I know from personal experience that Oracle provides that level of support with reasonable expertise available.

    Features: While this is a double-edged sword, can the database support all of the required corporate data entities? I include single fields of 400MB (Seismic traces and well logs), as well as providing indexing strategies that reflect the application (i.e. spacial data ... 3+ dimensional location data). Similarly, can I distribute my data (I'm not simply referring to tuning) so that it resides where it is required? Without thee included features, what effort must I make to program around the DB engines deficiencies (usually called 'undocumented features' by the vendor).

    Cost: The support and development cost of applications for a free engine MAY actually be higher than purchase of a packaged application for an expensive db.

    Security: How does one secure transactions (not just https from the web) between the visible server and the application servers and the database servers? For example, in the petrophysical world, the most dangerous information for competitors to gain is the knowledge of the latitude and longitude that a company is querying.

    There are few clear-cut answers in a general sense, but I believe that it is fair to say that the more demanding the application, the higher the probabability that a high-priced RDBMS will be required.

    Bill
  • by andy@petdance.com ( 114827 ) <andy@petdance.com> on Monday March 05, 2001 @01:52PM (#383178) Homepage
    I know that Oracle can offer you 24x7x365 support options if you have enough cash. Can mySQL do that?

    By itself, no, but there are a number of organizations who will support mySQL for you.

    It's no different than support for any other open source software. If you want training and support, you find a third-party company that does training and support.

    They may not even really be "third party". Randal Schwartz [stonehenge.com]' Stonehenge Consulting [stonehenge.com] does Perl training [stonehenge.com]. Randal is a key developer in the Perl community. Does he count as third party?

    --

  • by burris ( 122191 ) on Monday March 05, 2001 @02:58PM (#383179)
    I don't like MS as much as the next slashdotter, but MS SQL Server is based on Sybase. So it might be a much better deal than you think.

    Also keep in mind that Sybase offers Linux x86 binaries of it's previous major release for free for any use (deployed commercial use okay!). They offer the current version free for development purposes. The previous major version is plenty good enough for most applications. There is no comparison between MySQL and a real industrial strength database like Sybase. Maybe one day MySQL will be up to snuff and then we'll all use it, but Sybase and Oracle have been working on this stuff for a long time.

    Burris

  • Along those lines, there's also GemStone/S [gemstone.com] and GemStone/J [gemstone.com], OODBMSs for Smalltalk and Java respectively. I don't know about the Java version, but the Smalltalk version is pretty cool stuff, and can interface with C and C++. A lot of people prefer not to call it an OODBMS, but an application server. It's both, more or less.
  • I know the topic was different, but most of the threads in this article [slashdot.org], from yesterday, were essentially the same thing.

    Good comments/theads pertaining to this were...

    Why do we always have to see stories in groups of 3 (that means there's one more DB story coming tomorrow)?

  • by Daemosthenes ( 199490 ) on Monday March 05, 2001 @01:47PM (#383182)
    I just came across this [www.desy.de], and it seems to address the topic quite frankly. It is, however, wuite simplistic and provides little technical detail. Perhaps someone more familiar with the field could comment...

  • by LagerFrenzy ( 302216 ) on Monday March 05, 2001 @07:50PM (#383183)
    Your information is old; MySQL does have transaction support now. http://www.mysql.com/news/article-18.html
  • by MSBob ( 307239 ) on Monday March 05, 2001 @01:53PM (#383184)
    Yet another RDBM debate cooking up! This is like asking whether there is any point to mission critical software since the mainstream works just fine for the majority of cases. See here lies the point the majority doesn't need an Oracle database just like the majority won't ever need high end servers because their requirements and constraints can be accomplished with the use of off the shelf hardware software. Specialised software fills specific niches and becasue the market for it is relatively small the sales margins have to be high to justify writing said software. If you think that Oracle licensing is steep I encourage you to look at pricetags for geoscience software products. We're talking an excess of $50000US per SEAT. Are some of the technologies more suited to different tasks? No. Not at all. EVERYTHING can be shoehorned to run on a pentuim box with Lenux preinstalled on it. You can be sceptical all you want but once you are responsible for a system where a downtime could mean lives lost or millions wasted you will realize that a meager few thousand bucks is just peanuts. How much would you be willing to spend to protect the life of your kid? Or your wife? Or your sister? (think air traffic control software etc.) Please think those things through before posting them to slashdot front page.
  • by LoCoPuff ( 1019 ) on Monday March 05, 2001 @01:46PM (#383185)
    You aren't just paying for x features, although that is part of it. You are paying for service and the name/reputation of the company behind it.

    Just like that old phrase says, noone ever got fired for buying Microsoft. The same goes for Oracle.

    There is also the faction that will say that MSSQL cannot scale up to what Oracle can. I tend to agree with this line of thinking, but to each his own. In the end, most companies that have the money will end up purchasing something like oracle, just because they know they have a billion dollar company that has proven itself again and again and again.

    Just my .02USD

  • When I first started working with Oracle (I'm a certified DBA now), I often had the same skepticism. I had worked with MySQL before, and couldn't understand what all the hype and the expense was for. What's the big deal about storing data in tables and querying them with SQL statements? No doubt there's a bit of sophisticated computer science that goes into that, but surely there's a limit to how complex it all can get. Why the hell does Oracle have to be so damn complicated (I hated trying to understand the docs, which always leave out the forest for all the trees), not to mention expensive?

    After a while, I understood that as far as representing tables and data and SQL statements is concerned, this really is true. About this part, the questioner is right: An open source solution will represent your data just fine, no reason to pay out the nose if that's all you need. And MySQL is still almost always faster than the expensive commercial RDBMS's. But tables and SQL statements are only one small part of a database application, and may not be the most important part.

    What you're getting for all that complexity and cost is all of the extra services that come with the data management, and these things really are worth it in many projects: Constraints that enforce data integrity, safe transactions according to the ACID principles, robust backup and recovery regimes that really can survive the worst catastrophe, distributed computing and clustering (for high availability and distributed load), and a lot of parameters to tune. All of this stuff seems like add-ons, if all you think about are tables and SQL statements. But for many applications, the data model is not what matters most; these things are by far the most important qualities of your RDBMS.

    Oracle RDBMS's still could stand to be less expensive and complex; but I see the justification now much better than I used to.
  • ... you've already answered your own question. When you need Oracle or DB2, believe me, you will KNOW it, or you're a moron and beyond hope anyway. At my current position I'm managing a Web team responsible for a site that lets users build complex queries that then sling around 16GB databases. We're using MS SQL Server and even with that we look covetously upon Oracle's reliability and scalability. There is no way on God's green earth I'd try to do this in MySQL. I love MySQL, but it's just not ready for prime time for these kinds of applications. Which is why I say you'll know when you need it; if there is any question in your mind, you probably either don't need it or aren't experienced enough to know what you need in the first place, so be careful that you don't put your Free Software Advocate hat on over your Responsible IT Professional hat :-)

    -- Jason A. Lefkowitz

  • One of the things that people will pay for is the fact that so much development is already done on Oracle. I worked for a company that wanted to do some work with Real Networks. They had their back-end done on Oracle. Do you think that we're going to pay them $150K to redevelop their stuff on MySql, or put out $20K for a web copy of Oracle???

    Then there's the case of the company who's DB is worth $1M/hour when it's down. Who are you going to sue if MySql goes down for a day? Disclaimers aside, Oracle actually has some money you can go after.

    Where the development has already occurred on an OS DB, there's lots of reason to keep it there (as long as it doesn't break because of an inherent design problem/bug). Similarly with a big $$ system. In either case, the cost of the database is usually small compared to the cost of redevelopment and/or breakage.
    --

  • by uncledrax ( 112438 ) on Monday March 05, 2001 @01:48PM (#383189) Homepage
    Although I love and use MySQL (with PHP and Nix), it is DEFINATELY NOT a full features RDBMS similar to Oracle. (last I saw, it didnt support Views, sub-selects, and a buncha other stuff). Interestingly enough, we are starting to use Oracle 8i here are work, and it offers some neat things like running Java Inside the DB (which makes data-processing faster, but puts the load on the DB Server). Also Oracle instance replication is neat.. you can just have a buncha boxes running Oracle with something similar to Hot-Swapable Databases (think Load Balancing, which I know the MySQL ppl where playing with at one time).. I'm no Oracle Expert, but it is definately More robust then MySQL / Access / MiniSQL, etc, but I would only consider it for Enterprise level apps.. -- Insert whitty line here
  • by /dev/zero ( 116295 ) on Monday March 05, 2001 @02:21PM (#383190) Homepage

    IMHO, Oracle is not the price/performance leader in the commercial RDBMS market, nor is it the easiest with which to develop or to administer.

    Sybase has long combined relative ease of use, development, and administration with pretty good performance. Lately, though, it seems Sybase would rather be in a different market -- not sure what market, though.

    For projects which require a commercial RDBMS, I now choose DB2 UDB v7.1. And, yes, I tend to run it on Linux. It falls between Sybase and Oracle in the ease of use, development, and administration department. Performance-wise, for the kind of work I do, it's at least as good. Price-wise, it's a better deal.

    Culturally, I rank Oracle alongside Microsoft. No, thanks!

    PostgreSQL is under active and aggressive development, which is bringing major new features, such as outer joins, to their product. Version 7.1 should be out by mid-March. For small and medium projects with limited budgets, it's almost ideal. (I'd like to see stored procedures which can return results sets.)

    There are many smaller companies and organizations who can benefit from web-based applications, but who have limited budgets. All of the commercial RDBMS products have fairly hefty licensing for Internet connectivity. That can price many of these organizations right off of the web (or force them to violate the license agreement, exposing them to costly litigation). PostgreSQL (and MySQL, I'm sure), are a viable solution for these businesses.

    When I get some time, I'm going to try implementing one of my DB2 projects in PostgreSQL 7.1, just to see how it does. I already know I have to re-write the stored procedures as queries, so there will be a labor impact. It will be an interesting experiment.

    Gordon.

  • it's quite informative (at least read the first chapter): SQL for Web Nerds [arsdigita.com] by Philip Greenspun of Philip and Alex's Guide to Web Publishing [arsdigita.com] fame.

    Seriously, go read it. It's an afternoon well spent, in that hopefully after reading it you'll understand why comparing MySQL to Oracle is comedic. You have to understand your tools before you pick which one to use (MySQL is for your MP3 id3 tags, Oracle is for your hospital's data storage or for your credit card company's data storage.)


    --
    News for geeks in Austin: www.geekaustin.org [geekaustin.org]
  • by Anonymous Coward on Monday March 05, 2001 @02:49PM (#383192)
    North Carolina is entrusting their medicare system to some dude writing one page porn sites, are they?
  • by jabbo ( 860 ) <jabbo@yahoo. c o m> on Monday March 05, 2001 @02:19PM (#383193)
    What do you pay for? Well, mostly you're paying to see your pillow more often, or at least that's what the vendor is trying to sell you -- peace of mind.

    I have (lately -- SQL 7, not just SQL 6.5) seen MS SQL databases that buy the farm every night and get rebooted, and this is referred to as "more stable than before". I've watched MySQL crumble under heavy concurrent read/write loads on large tables. I still haven't figured out an easy way to carve up PostgreSQL backend storage so it scales more like Oracle. And I've thus far managed to make every (yes, EVERY) database I've ever used core dump. I'm working on DB2 at the moment; apparently it runs across x86 Linux clusters, which of course is something I'd like to crash. I got Oracle 8i to crash (finally!) earlier this summer. That was unusually difficult; Sybase and Informix were relatively easier. So, when you go the commercial route, you're paying for features, branding, and a lot of stuff you already get from the free RDBMS packages. Plus, more people tend to know about the bugs (every last RDBMS I have seen has at least some bugs).

    BUT when you get right down to it, even Postgresql (my favorite free database) simply does not have the application support or PROVEN OLTP scalability of something like Oracle. Today someone batted around the idea that "DB2 is okay up to around 10 or 15TB, but I talked to some banks and oil companies, and they say that beyond that, it just falls apart". It may be the case that Oracle scales a little better than DB2, but up until recently, the top 10 (size-wise) OLTP databases on earth were running NCR Teradata, IBM DB2, and I think there may have been one Oracle customer in there. UPS's database, the largest active OLTP database, was only around 12TB last time I looked.

    12TB of live data is a HUGE amount. EMC's top-of-the-line Symmetrix, a piece of equipment costing a cool $3.2M, just barely fits 12TB if you're running everything mirrored. God forbid you blow out the cache on that monster. And of course there's the question of backups...

    Basically, if you're tied into a vendor's specs (eg. "We only support MS-SQL here at Affymetrix" or "ArsDigita only supports Oracle as our ACS backend") then you don't have to choose, just get out the wallet and bend over. No lube for you!

    Otherwise, in my neither limited nor hugely abundant experience, MySQL and Postgres work pretty damn well for read-only data marts and low- to mid-volume read-write backends.

    Beyond that -- if MySQL can't handle your OLAP needs, and Postgresql can't handle your OLTP needs -- then maybe you have to look at Oracle or DB2 or whatever. But by then I strongly suspect you'll know why they charge so %$@#ing much :-).
    The differences are fairly marginal, but if you need them, you need them, and that's the end of it.
  • by the red pen ( 3138 ) on Monday March 05, 2001 @01:52PM (#383194)
    1. Scalability. Open-source databases, in general, haven't endured the real-world conditions that Oracle, DB2 and MS-SQL have. If I compile Postgres for an RS-6000 it should kick ass; but will it? How much will it cost me to find out that it can't hack it? When we're talking about that kind of performance, we're talking about mission critical apps. As far as MS-SQL goes, the scalability issues are that it only runs on Intel hardware (where are you going to go today if that's not fast enough?) and it eats resources at a much higher rate than competing solutions.

    2. Compatability.Hopefully, you are not in this situation, but a lot of application only "work" with one database or another. Even APIs such as JDBC that offer cross-platform portability can't port your stored proceedures. If you are starting from scratch, you can avoid or mitigate such portability issues, but if you need to integrate with some other COTS, you will probably end up with a narrow list of DB's it "works" with. Chances are, MySQL won't be on the list.
  • by rho ( 6063 ) on Monday March 05, 2001 @01:58PM (#383195) Journal

    Like it or not, Oracle is worth every penny, assuming you can afford it. If you, or your client, cannot afford the (admittedly) big bucks for an Oracle licencse, there are plenty of free (and Free) solutions available.

    What do you get with a 10-30K (or, in my experience, a 50-80K) license? You get Oracle's years of development and expertise in managaging some of the biggest and baddest installations. Think 500-1000 gigabyte DBs in constant use for 15 years.

    You get a whole bucketful of trained and talented DBAs (who are worth every damn penny of there high 5- and 6-figure incomes) who grok Oracle syntax.

    You get Oracle Corporation's culture (at least, I hope it's still the culture). At Oracle, the technologists create cool stuff and pay the marketing department to find or create a market for said cool stuff, rather than marketing dictating what technologies are created. Thus, when you visit Oracle, you find 3 or 4 products that do nearly similar things, or overlapping technologies. (I think this is a good thing -- others may disagree)

    Finally, you get name recognition. Don't laugh this off -- it's worth a lot of money to some people. If I say "Let's do it in Oracle", people respond, "Yeah, that would be best." If I say "Let's do it in PostgreSQL", I hear "Huh?".

    It boils down to: If the money is there, spend the money on Oracle, and advertise that fact. If the money isn't there, use PostgreSQL, and just say you have a RDBMS back-end.

    (Oh, MySQL isn't a RDBMS in my humble opinion. It's a fine solution for certain problems, but don't confuse a SQL interface to a filesystem with a true ACID-compliant RDBMS. Future versions of MySQL promise to alter this perception, which may change the dynamics.)

  • by PureFiction ( 10256 ) on Monday March 05, 2001 @02:07PM (#383196)
    There are a number of reasons why you would pick any particular RDBMS, but I have seen three which come up most often and are of the most importance.

    Support

    This is a big one. And an enterprise scale RDBMS needs a lot of support. Ever wonder why some Oracle DBA's make more than skilled developers? Administration of a large database is not trivial, and these databases often run the core of a corporation. Mission critical to the extreme is common for these systems (Hence the reason Oracle can charge millions for a large Oracle Applications ERP installation)

    Performace

    These big databases are built to handle huge data sets. Oracle supports all kinds of direct interfaces to read/write directly from a SCSI/Fibre channel RAID setup. A number of the Oracle extensions, or custom application also have to be extremely fast given the amount of data they are working. PL/SQL and embeded SQL, OCI, etc, are all tools to allow maximum performace with large heaps of tables and rows.

    Add-ons

    And by this I mean extra pieces of functionality or applications that are only provided with a specific RDBMS. Oracle Applications, which is a popular ERP package, requires an Oracle database. Likewise, PL/SQL is very popular, but only available for Oracle. Add in all the other niceities that Oracle ships with 8i, and you can see why the entire package is pretty impressive.

    So, in the majority of situation a smaller opensource RDBMS like postgreSQL or mSQL will probably work just fine.

    If you are n enterprise customer which needs extreme scalability and performace, You would be hard pressed to go with anything other than Oracle or IBM.
  • by isomeme ( 177414 ) <cdberry@gmail.com> on Monday March 05, 2001 @02:01PM (#383197) Journal
    The real distinguishing characteristic of a high-quality database is rigid compliance to the "ACID properites" -- Atomicity, Consistency, Isolation, and Durability. Put very briefly, "atomicity" means that transactions either completely succeed or completely fail, with no partial changes possible; "consistency" means that rules concerning how data relates can be enforced by the db engine; "isolation" means that the db state visible to one transaction in process won't be changed by other parallel transactions; and "durability" means that changes won't disappear once they are completed successfully.

    This all sounds simple enough, but producing a db that actually implements the ACID properties reliably is very, very hard. So hard that people tend to charge tens of thousands of dollars for the result.

    Of course, in many circumstances you don't actually need a fully ACID-compliant db. In general, if your transactions don't involve strangers' money, and if data can be cross-checked and reacquired from external sources in the event of a problem, you can get by with a cheaper, non-ACID db server. But using a non-ACID db where you really need ACID-level reliability is asking for big-time trouble.

    --

  • by Elias Israel ( 182882 ) <eli@promanage-inc.com> on Monday March 05, 2001 @01:55PM (#383198)
    High-end DBMS products provide lots of features that can make coding your web site a bit more cumbersome, but maintaining it much easier.

    In particular, built-in enforcement of data constraints, triggers on data modification, and stored procedures are HUGE wins for many web sites. Using these correctly can move tremendous amounts of complication out of your PHP or ASP code and into the database where they can be more easily tracked and managed.

    The lack of transactions in MySQL is often commented upon, and its very important. A complex set of related changes can fail in the middle for many reasons, leaving your data in an unknown or even a completely corrupted state.

    Is it worth all of that to pay Oracle's fees? For a commercial web site, where dollars are at stake for every bit of downtime or lost data, then the answer is absolutely yes.

    If, on the other hand, you're working on something that uses the database as structured storage rather than a full-fledged DBMS, and especially if you don't mind babysitting it from time to time, the cheap or free options are probably OK.

  • by NineNine ( 235196 ) on Monday March 05, 2001 @02:31PM (#383199)
    Anyone who has ever been a DB developer (such as myself) or a DBA knows tha thte vast majority of enterprise-class databases (Oracle, DB2) are NOT used for web sites. Web sites are cute, but rarely are they mission critical, and rarely do they hold vast amounts of information. Think large systems. Cam you imagine, say, Visa or Matercard running MySQL to handle thousands of transactions a second? Or how about truly large databases? I recently set up North Carolina's Mediare system on Oracle. That started out as a 3 TB database, and will grow steadily for the forseeable future. Has MySQL ever been tested against something of that size? Even the largest web sites do NOT generally compare to other entreprise-class projects, in either size, ort he critcality of data.

The use of money is all the advantage there is to having money. -- B. Franklin

Working...