Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm looking for a database which meets the following criteria:

  • Free (so, Oracle and MS SQL are not the answer).
  • Powerful transactional support (I've tried MySQL without success).
  • Easily scalable
  • Compatible with Apache2 + PHP.
  • Secure structure (I could be responsible of the encryption, of course).
  • At least as fast as MySQL.

Thanks, people!

share|improve this question
3  
This is off topic under the same clause as "what language should I learn next questions" – ChrisF Apr 16 '11 at 12:49
1  
I disagree. The question clearly states the requirements and asks for an RDBMS that fulfills them. Why should that be off-topic? – Timwi Apr 16 '11 at 13:17
3  
MySQL fits your criteria, in what way did point 2 not work for you? – Buhake Sindi Apr 16 '11 at 13:25
2  
Remember the engineer's pyramid: Good, fast, cheap, pick two. It applies to databases too. Once you've limited your options to "free" then you are going to have to give up either fast ("scalable") or good ("powerful") in a big way. – Aaronaught Apr 16 '11 at 14:56
1  
@Timwi because it may lead to another question like "ok, now from these 10 databases, which is the coolest?", something that would look like "what language should I learn next?", and back to the beginning. Question solved, no more needs to split hairs in that point. :/ Let's keep it calm – Korcholis Apr 17 '11 at 14:43
show 10 more comments

6 Answers

up vote 4 down vote accepted

Firebird. It meets all of the requirements you've listed.

Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981.

The Firebird Project is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) on 25 July, 2000.

FREE LIKE A BIRD. Anyone can build a custom version of Firebird, as long as the modifications are made available, under the same IDPL licensing, for others to use and build on.

FREE LIKE FREE BEER. No fees for download, registration, licensing or deployment, even you distribute Firebird as part of your commercial software package.

Firebird's development depends on voluntary funding by people who benefit from using it. Funding options range from donations, through Firebird Foundation memberships to sponsorship commitments.

share|improve this answer
1  
Hmmm looks like perfect to me, despite I've never heard about it until now xD. However, there's something I'm a bit worried, and it is the distinction between DSQL and ESQL they do here. What do you know about it? Thanks! – Korcholis Apr 16 '11 at 13:01
2  
@Kor Firebird's indeed the best RDBMS that nobody's heard of :) Just to clarify - I mean that as a good thing. – Elad Apr 16 '11 at 16:13
How quick are the answers available on Stack OverFlow and communities? MySQL, SQL Server and Oracle answers are fast because of strong user base. – RPK Sep 25 '11 at 16:59

Postgres could be the answer.

It's free, it's scalable, it works with PHP and Apache, and I've heard it's more secure than MySQL.

share|improve this answer
Right and on top of those reasons he eliminated majority of the big name players aside from postgres. (No oracle, mssql, mysql; there's only a few more big name DB players I can think of.) – Chris Apr 16 '11 at 13:32
@Chris there's a big bunch of them (see (this)[en.wikipedia.org/wiki/…), but, because of this big list, I'm not sure which ones accomplish al the requirements :/ – Korcholis Apr 16 '11 at 14:05
I understand there are a lot of databases, I was suggesting the more popular ones considering his requirement for apache/php support. That constraint alone eliminates a lot from that list I suspect. – Chris Apr 16 '11 at 14:24
@Kor you can actually manage PostgreSQL with phpPgAdmin, I think that's more than sufficient when it comes to PHP support, as for speed, Postgres might be slower than MySQL, but that's because it has better security, everything needs to be checked before it goes into the database, or so I've heard. – Mahmoud Hossam Apr 16 '11 at 15:14

SQL Server Express is free to use. The only drawback would be if you need to store more than 10 GB of data.

http://www.microsoft.com/sqlserver/2008/en/us/express.aspx

share|improve this answer

You might want to look at sqlite ( http://sqlite.org/features.html ). In a real distributed system, you would look at having not one but several (dozens, hundreds, thousands?) of databases, and you would want them to be able to come online and go offline without impacting the rest. It's taking sharding to the extreme, but it can be a potent db for some needs.

Also, it's open source, public domain, reputedly faster than mysql, and does have transaction support.

Both Google Android and the iPhone use it internally:

http://developer.apple.com/technologies/ios/data-management.html

http://developer.android.com/reference/android/database/sqlite/package-summary.html

More here: http://sqlite.org/famous.html

Granted it would be a little more complicated to set up, but I think the reward would be great. Also, database backup is greatly simplified (copy files).

share|improve this answer

I agree with PostgreSQL and FireBird. But you should also take a look at IBM DB2 Express-C. It is not a scaled-down version, but a powerful full featured product. It limits itself with the RAM. The conditions might have changed, but you should definitely look at it.

share|improve this answer

If your application were going to migrate to Oracle at some point, another option is Oracle XE. It has some limitations (single CPU, 4 GB data, etc) but an awful lot of projects never hit those limits.

More info at:

Oracle XE

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.