views:

261

answers:

11

Which database would you use for an Open Source Project?

I am looking for something that has little or no setup required by the end-user.

Update: Database size will be relatively small (less than 100,000 records). Application will be written in C#.

+3  A: 

If it's a web app with PHP then MySQL ... it's installed pretty much everywhere that has PHP installed (which is almost every host).

If it's not... consult the other answers :)

alex
+13  A: 

If you're looking for embedded database (I guess you do if you ask for something easy for end-user), then SQLite is the most widely deployed SQL database in the world.

Depends on what language you're using, you might need appropriate wrapper for SQLite library.

Update: For .NET, the best wrapper for SQLite is System.Data.SQLite.dll from phxsoftware.

lubos hasko
+7  A: 

SQLite is nice if you want an SQL-queryable DB:

http://www.sqlite.org/

It doesn't require a server; you just need to include and use the appropriate API libraries in your project. Your database gets stored as a single file on disk.

mikeh
+3  A: 

It depends so very much on how much heavy-lifting that database has to do, but I think it's worth looking into SQLite. It's an amazing little piece of C/C++ code, it's distributed under a public domain license (meaning you can literally do anything you want with it, including resell it).

If you do not need atomic transactions, or very intense type-checking, then there probably isn't a better database. You add the library to your application and it works like a SQL database. Most programming languages have bindings for it. It would be hard for you to describe a case where some other database would be needed.

danieltalsky
+2  A: 

Go with SQLite. It does not need any kind of installation by the end user. It just works.

Pablo Santa Cruz
+2  A: 

What about an object database like db4o.net?

Si
A: 

Have you looked at SQL Server Express It isn't open source but it is free. I'm a big fan of SQLite but if your in the .net world and want to use a microsoft stack it may be a better choice. It provides some things like T-SQL and a strong type system that SQLite doesn't provide. It does have performance and db size limits not found in the full SQL Server versions but this probably doesn't matter for your application.

Jared
A: 

I'd second the comments regarding SQLite. It's great for what it is - and for most small, no install DBs, it works very well.

There are a couple of other options, though.

Firebird is one option. It has a pretty impressive feature list, and also includes a .net provider (albeit in beta still).

Another option, though not open source, is VistaDB. It's a 100% managed option, unlike SQLite and Firebird (and most other DBs out there), and has a lot of advantages because of that. It's fairly consistent with MS SQL syntax, supports stored procedures, and many other nice features. They have an "Express Edition" that's free, and can be used in open source projects.

Reed Copsey
A: 

You can also find some interesting alternatives in the answers to this question:

http://stackoverflow.com/questions/29044/good-free-alternative-to-ms-access

Onorio Catenacci
A: 

It would depend on what you mean by "end-user" As others have said SQLite is a great choice if you are looking for something embeddable or for a desktop use. If you are thinking of some sort of web app, I'd say either MySQL or PostgreSQL as these will provide better performance and be able to handle a large data set more naturally.

docgnome
A: 

If it's windows only Sql Server Compact Edition is a good choice for small apps. It is freely redistributable.

Daniel Auger