What is your preferred database?
Edit: I'd like to hear about all databases, relational and non-relational (bigtable, hbase).
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$10 Answers
Is the customer filthy rich and the application has to serve ten gazillion people? Oracle is the way to go. Oracle is cool because the same RDBMS runs in all kinds of big iron servers. You can start with a small Windows server, then if the business takes off, move on to big Windows, then to Unix, etc. and still run the same RDBMS. If you try to do this with SQL Server you'll be moving from Windows to bigger Windows to lots of Windows.
The one thing that always drove me nuts about Oracle: the user tools were designed by morons. This forced people to get REALLY GOOD at using the CLI. The end result is a generation of Oracle ninjas, which as a by product meant that the first generation of GUI tools that came from Oracle were, well, crap. Java-based crap. We are talking over 200MB of crap to install on a machine simply so it can be a client. I have no clue how it is now, but as of 4-5 years ago I knew Oracle DBAs that would rather use the Data Transformation Services tool in SQL Server to transfer data between two Oracle data sources, since it was less painful than doing it through the Oracle provided GUI tools.
Of course, from the bad came the good. A company called Benthic came out of nowhere with a really decent set of tools, really cheap too, that put Oracle basically on par with SQL Server 7 and 2000. God bless them.
Is the customer cheap or would rather spend money on development than on licenses? Either MySQL or PostgreSQL.
Can't argue with cheap, and you can pay for commercial support for both databases. If you are dealing with the *nix world, odds are you will probably spend more time looking at MySQL and PG than anything else.
Also, PG is object oriented, this raises all sorts of interesting possibilities.
Do I hate my customer and I want to doom him and make his life hell? Filemaker. My previous employer had ten years of business contacts, leads, follow ups, etc. on one single lousy Filemaker database, which would get corrupted every few months. What doomed the database is that Filemaker lets you do whatever you want, even if it is stupid from the point of view of database design. The end result is ten years of duct-taped programming by people that don't know a thing about database programming concepts.
I imagine that in the hands of a qualified programmer you can do magic with Filemaker, but in the hands of a d*****s it has no limits. It has more potential for mayhem than Access.
Too many years dealing with this issue.
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$If your needs are more limited, Microsoft Access is hard to beat. It is a very inexpensive yet capable relational database management system, complete with easy-to-use wizards to create databases, create forms, applications, etc. It works really well as a user-friendly front end to a SQLServer back end.
Although all of the databases you mention are SQL "standard," they all have their own flavor and idiosyncrasies. Proficiency in one does not necessarily translate easily to the others, so choose wisely.
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$Actually I should have asked about other ways to store data. Here at mahalo we use mysql-cluster and Hbase. Hbase is really interesting and works very well for what we use it for.
In the past the answer to everything seemed to be a relational database and I always felt that in some cases it was just too structured whereas a column-family oriented structure just fits better. It's great that now there seems to be more choices out there.
Oracle..no surprises..solid database..good support
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$phpMyAdmin is a great package for setting up and editing your MySQL databases and again its included with almost every hosting package you can buy online.
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$personal use
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$Postgre is just as fast as MySQL's InnoDB, even faster, and has traditionally been more densely featureful, which appeals to the Oracleists. If you require blazing fast full text search, then you should use MySQL with the MyISAM engine; however, you will be doing so at the risk of dataloss. In all other cases, postgre is superior.
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$I did put 'etc' in there, but I'm in agreement that out of the ones I named postgres is superior. @merlin, what is your favorite non-relational database?
@mshubin : I have found a lot of use for Object Oriented model and Object-Relational models; however, there are a dizzying array of database models and aside from technological superiority, like many things, it kind of comes down to popularity. Right now, Relational is the most popular model, and it may be for a while, but it wasn't always, and it certainly won't be forever.
See http://www.unixspace.com/context/databases.html for more information about various database models.
Some time ago i was playing with Google Appengine Appstore that is an api to Google big table and it is very interesing too. With datastore we don't need to create tables and schema and we're able to create new table properties on the fly and the properties are also 'smart' types like "User, Date, Category" etc...
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$http://www.amazon.com/Filemaker-Inc-TL959LL-A-Pro/dp/B000SSRASO/ref=sr_1_1?ie=UTF8&s=software&qid=1230677391&sr=1-1
http://www.filemaker.com/products/index.html?homepage=fmp_product_line
http://www.softwarebrands.co.uk/images/FileMaker%20Pro%209.jpg
http://www.youtube.com/watch?v=uRnLWPJz37Y
personal experience
Amazon.com
Youtube
Filemaker.com
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$
I tend to agree that M$ SQL has some good developer tools. Maybe I'm just saying this because I prefer unix, but my issue with anything that has to do with doing web development with microsoft tools is you have to deal with the OS. C# isn't all-in-all a terrible language, but its been my experience that doing anything in windows server is like pulling teeth when doing the same thing on linux would take a single command... But you would probably say the same thing about any unix type os.
Do you have an opinion on any non-relational databases?
Also, now that Sun Microsystems has purchased mysql the enterprise edition of mysql has support that might rival Oracle. They also give you lots and lots of choices when it comes to how you want to run it.
My main beef with SQL Server is non-data related issues. Like the machine choking whenever any of the db files is bigger than the total amount of physical RAM in the machine. Or the stupid thing keeping a huge query running even if it knows there's less room in the logs drive than the minimum amount of space needed to log the transaction.
For example: you are doing an insert with 6 million rows, and it doesn't try to predict disk usage, so what it does is it fills the stupid drive, then it sits like an idiot until somebody wonders why the job takes forever to finish.
That kind of thing.
And yes, there are certain things in Windows that just take too much work, and we take them for granted in *nix environments. I am ambidextrous, I work fine regardless of OS, but it drives me nuts when I see that every single possible *nix in the universe running Apache knows how to do url rewrites, but you can't do this straight out of the box in Windows 2000 or 2003. It's just stupid.
As for non-relational databases, no, I haven't tried unless you want to count clunkers hacked together by duct taping Access and Excel.