In my experience, SQLite3 works great. It's benefit is that it is self-contained, and you don't need a giant db server going, like MySql or Postgres SQL. If you already are running MySQL or Postgres, you may as well make use of it. As mentioned above, with DBD, you can write the same code for any of those, and just make minor adjustments. I do this in
ztkdb-sql. Right at the start of the script, it tests for which db you use, and adjusts accordingly; then let DBD take care of it.. So for ease of development, you can use SQLite3, and adjust for other dbs later.
(P.S. I'm not a db guru, so take my code for what it is, NOT perfect code. :-) )