Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which database should I use for home project use?

Tags:

database

I've looked through all the "related questions" with two or three different titles and didn't see anything, so here goes.

I've used SQL Server and Oracle in the recent past at work. I want to futz around at home, mostly with Java, perhaps with Ruby on Rails or Python. I'm running Windows 7. I usually make web applications, might like to host this remotely eventually, and beyond that, have no specific requirements upfront.

In this case, I'm not interested in learning the ins and outs of SQL further; I'll probably use ORM to abstract this out, so that it's automatically dialect agnostic. I'm also going to work with a few nonrelational data stores, but I have specific ones in mind there.

What databases should I consider?

  1. I installed SQL Server Express, and it seems fairly limited to just working with .NET, plus the SQL Server Express install doesn't even seem to be integrated properly with the Visual Studio C# Express edition that it came with. (I can't create a database automatically, for example.)
  2. I'm considering Oracle XE, except if I ever wanted to make any project code of mine publicly available, finding hosting for Oracle at a reasonable price seems a stumbling block.
  3. SQLite seems the way to go for fast and quick, if I don't need much concurrency.
  4. MySQL seems to be the way to go for something that's easily hosted, and may be the overall winner. Here's to hoping the GUI isn't still awful.
like image 288
Dean J Avatar asked Dec 03 '09 15:12

Dean J


2 Answers

SQLite is a very good option. It is just a single file, and fast. No configuration, transactions are atomic, supports terabyte-sized databases. There are language-bindings for Ada, C#, Lisp, Fortran, Java, Lua, PHP, Perl, Python, Ruby, Tcl, etc...

It has good GUI admin options:

  1. SQLite Admin for Windows
  2. SQLite Browser for Linux, Mac, and Windows screenshots
  3. Even a Firefox plugin for viewing/editing data
  4. Many more

It is used in industry:

  1. It's the base database the Firefox uses internally for bookmarks and history. It can also be used by plugins for them to store internal data. link
  2. The iPhone also uses it internally to store data, and can be used by apps themselves for their own data storage. Here is a series of tutorials on using it within your own apps. link
  3. Adobe uses it as the file format for Lightroom. Apple uses it for Mail and Aperture. Skype uses it in their clients for Mac and Windows. Lastly, it seems to be an integral part of Symbian, Nokia's phone OS. users page
like image 82
Steven Hepting Avatar answered Nov 12 '22 21:11

Steven Hepting


I've enjoyed working with SQLite3-- the Python interface is very simple and the whole database is just one file!

like image 38
momeara Avatar answered Nov 12 '22 21:11

momeara