Slashdot Mirror


F/OSS Flat-File Database?

Leemeng writes "I'm looking for a simple, free, and F/OSS flat-file database program. I'm storing info about Wi-Fi access points that I come across, maybe 8-9 fields per entry. I've outgrown Notepad. This info is for my own reference only; it is not going on a Web server. Googling was unhelpful, with results skewed towards SQL, Access (MS), and Oracle, all of which would be overkill for my purposes. My criteria are: it must be simple, F/OSS, must work in Windows Vista, preferably use a portable format, must not be an online app, and must not require Java. Does such a beast exist?"

14 of 702 comments (clear)

  1. Python? by fyngyrz · · Score: 5, Informative

    Can't be Java... well, how about Python?

    Here is a completely free (PD, not GPL-style "you're free to do as we tell you") database engine that will do what you have described thus far.

    The database engine is about 19k bytes (not a typo), has no dependencies (other than Python itself), supports a useful subset of SQL so you can actually create flexible queries that produce well-sorted results from your database, and it works everywhere Python does, which is to say, it works pretty much everywhere. It's just as happy operating on a command line as it is on a web server. The results (the actual databases) are 100% portable from OS to OS. I use it on various linuxes, OS X, and Windows for tasks very similar to yours.

    Comes with tutorial examples, sample databases and extensive docs. In a 13k (not a typo) archive.

    :-)

    --
    I've fallen off your lawn, and I can't get up.
    1. Re:Python? by fyngyrz · · Score: 4, Informative

      Why not sqlite?

      • SQLite isn't present or compiled in, in all Python installations, 2.5 or otherwise
      • At 800k, it's about 50x the size of class dbtxt (executable)
      • Source is huge compared to class dbtxt, so maintainance is not easy
      • SQLite is considerably more difficult to use (it's also more capable, though)

      That's all I have for ya, offhand. ;-)

      --
      I've fallen off your lawn, and I can't get up.
    2. Re:Python? by ehrichweiss · · Score: 5, Informative

      Well that assertion was a massive FAIL. I make quite a living thanks to the GPL and I know tons of others who do the same.

      --
      0x09F911029D74E35BD84156C5635688C0
    3. Re:Python? by dixonpete · · Score: 5, Informative

      There's an add-on for Firefox that makes SQlite use fairly painless: SQLite Manager. Brilliant work.

    4. Re:Python? by smilindog2000 · · Score: 4, Informative

      Grr... some shameless link! Should have checked it: datadraw

      --
      Beer is proof that God loves us, and wants us to be happy.
  2. Err ... by Anonymous Coward · · Score: 4, Informative

    Comma Separated Variable Text Files, as exported and imported by Excel. You can get libraries to read and write these, and search these in most languages.

    Otherwise what's wrong with a simple database like MySQL or PostgreSQL on your computer?

  3. OOO? by iamhigh · · Score: 5, Informative

    it must be simple, F/OSS, must work in Windows Vista, preferably use a portable format, must not be an online app, and must not require Java. Does such a beast exist Maybe this will do? I think it meets all your needs. You can even use it with a web app if desired. Some functionality may need Java, but most doesn't. I don't know what parts of OOO are Java-driven, but I am sure somebody here does!
    --
    No comprende? Let me type that a little slower for you...
  4. sqlite by nguy · · Score: 5, Informative

    Sqlite is used in many apps (including Firefox), it's small, and it's efficient. It also has bindings to just about every imaginable language.

    I find it amazing that you didn't come across it in Googling...

    1. Re:sqlite by kingbyu · · Score: 5, Informative

      There is an add-on to Firefox called SQLite Manager that makes managing your own little database quite a bit easier than typing sql commands on a command line:
      https://addons.mozilla.org/en-US/firefox/addon/5817

  5. SQLite by kcbanner · · Score: 4, Informative

    Get it http://www.sqlite.org/ here.
    There are GUI clients that work fine for this sort of thing, SQL is simple for doing basic things. One file, one database.

    --
    Obligatory blog plug: http://www.caseybanner.ca/
  6. GDBM by jschmerge · · Score: 4, Informative
    If you're doing simple Key,Record storing, try GDBM (or one of its analogs: DBM, NDBM). IIRC, it's included as part of glibc. The interface for it is analogous to that of a hash table... In fact there's even native Perl support for tying hash tables to GDBM.

    If that doesn't satisfy your need, take a look at Berkley DB. It offers a more sophisticated interface than DBM.

  7. Re:Python comes with SQLite by spookymonster · · Score: 4, Informative

    Just get Python, and use the version of SQLite that comes with it:

    import sqlite3
    mydb = sqlite3.connect('sample.db')
    mydb.execute("create table contacts (fname text, lname text, email text)")

    mydb.execute("insert into contacts values('Spooky','Monster','spook@spammity.spam')")

    mydb.commit()
    mydb.close()


    You can then use the free and open SQLite database browser to browse, edit, and print your table.

    You may think you're keeping it simple by using a flat file, but you're really not. It may be somewhat easier to manually edit, but it's also easier to screw up, and I've never heard of one with the ability to undo changes.

    --
    - Despite popular opinion, I am not perfect.
  8. Try Metakit by kawabago · · Score: 4, Informative

    Metakit is a small footprint database that might fit your needs. Metakit

  9. Why are we trying to promote python? by tknd · · Score: 5, Informative

    He doesn't need python. He just needs a database. He can download a precompiled binary for windows that allows one to work with the database at the command line. Python is not necessary.

    And if the command line is too much, as others have noted there is already a convenient firefox extension for graphically interacting with a sqlite database.