views:

218

answers:

6

I need a pet opensource database to learn the principle of database design, can you suggest one for me.

+11  A: 

How about SQLite? They don't get much smaller than this.

innaM
+1 Being in the public domain, it also doesn't get more open source than this.
balpha
Don't mention this to RMS.
innaM
I said "open source", not "free" -- so I said "Jehova" anyway :-)
balpha
For teaching I would prefer a DBMS that enforces foreign keys. SQLite does not.
finnw
**if you're DB can't do FKs, you can't "learn the principle of database design"**
KM
@Manni: RMS has no objection whatsoever to public domain or BSD software. He has what I consider an irrational objection to software he considers non-free, and he would prefer it if all software developers released under GPLv3. Heck, I don't know if public domain software is Open Source according to the OSI, but if not you can always slap an OSI-compliant license on it and it will be.
David Thornley
@David: 1. I know. 2. Yes. 3. That's the point I was trying to make.
innaM
+1  A: 

I also would recommend SQLite, since you could do "EXPLAIN" on any statement and get the internal Pseudo-Code that implements the functionality.

The Pseudo-Code itself is documented and gives great example how a database could work internally. I myself learned a lot by looking at the explained statements.

Juergen
Every SQL database I've ever used has this feature, in one form or another.
anon
As Neil says, they all do this - search for "query execution plan". And it's not pseudo-code!
Peter Boughton
@Peter + Neil: Yes, all databases have "EXPLAIN", I know. What I wanted to tell is, that the Pseudo-Code (yes, I insist, it is in SQLite!) of SQLite translates so easily to what is going on under the hood, that it can be used for understanding how the DB works. I don't think, that an abstract "query execution plan" of an oracle db could tell you the same.
Juergen
Addon: I am sorry, when I hurt some of the db folks out there by badly explaining what I really mean. I try to do better next time ...
Juergen
+5  A: 

Not really pet but: PostgeSQL

  1. Not hard to install (at least at Windows)
  2. Feature reach
  3. Not too quirky
  4. Bundled with documentation (including tutorial and SQL reference) and tools (at least Windows version)
ymv
A: 

SQLite, as mentioned above. All the alternatives are a PITA to install (relatively). And if you're in a corporate setting, some uptight sysadmins frown on client/server packages. SQLite is a stand-alone program, one file per database, nice command line tools, fast. And price can't be beat. Lot's of big companies use it.

xcramps
`aptitude install postgresql-8.4` is pretty darn easy (which, yes, will get you a working database). Suggest a new distro if its hard to install on yours.
derobert
+2  A: 

Firebird http://www.firebirdsql.org/

Ray
+1  A: 

Apache Derby implemented in Java

CouchDB written in Erlang. It is document-oriented rather then rational.

Cassandra by Facebook

Artem K.