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?"

24 of 702 comments (clear)

  1. No Java? by jawtheshark · · Score: 5, Insightful

    I would have recommended HSQL, but you don't want Java. Frankly, usually, when we're talking databases I won't say "use a spreadsheet", but with 10 fields, you might as well use a spreadsheet. Of course OpenOffice.org Base is out, because it uses HSQL.

    Something like CSQL might fit, but I have no experience with it.

    --
    Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    1. Re:No Java? by geekboy642 · · Score: 5, Insightful

      Mod parent up.
      This guy wants a spreadsheet, he just doesn't know it. Excel--or the free alternative from OpenOffice.org--will do everything he could possibly want, and although it saves as its own infernal file format, it exports competently into a tab or comma-delimited format.

      All the extra "requirements" are just pseudo-intellectual mumbo-jumbo that have no bearing on reality.

      --
      Just another "DOJ fascist authoritarian totalitarian bootlicker" -- Zeio
  2. how about... by ramirez · · Score: 4, Insightful

    a comma delimited file?

    Umm... just write a few one-liner perl scripts to get info out.

  3. Flat file is useless by bluefoxlucid · · Score: 5, Insightful

    Trying to solve such an issue as a flat file is a poor design characteristic. This says "I don't want to learn SQL" or "I want the output human readable." If you just want to store information for programmatic use, use SQLite and quit worrying about data storage format. If you want it human readable, grab libxml2 (works on Windows too) and store it as XML. Decide which problem you are solving because if you don't need (i.e. it's not helpful) it human-readable and/or want the ability to search it quickly without loading the whole thing into memory, then SQLite is probably a better solution.

    1. Re:Flat file is useless by blippo · · Score: 4, Insightful


      Well... XML is human readable in the same way as a sand is edible.

      If the OP wants to use a tool better than notepad for editing, he probably should try Open Office.

  4. Re:sqlite by MBGMorden · · Score: 3, Insightful

    Was going to suggest this myself but looks like you and many others beat me to it. Yes SQLite is "SQL", but I can't think of an actual program where I'd consider it's use overkill. It's made precisely for small little projects that don't want or need to use something like MySQL or PostgreSQL.

    --
    "People who think they know everything are very annoying to those of us who do."-Mark Twain
  5. Re:Python? by maxume · · Score: 5, Insightful

    Why not sqlite? Comes with Python 2.5 on Windows. It adds a relatively weighty 800k or so to my python installation on Windows, but the installation is dozens of megabytes overall, so it doesn't really matter.

    --
    Nerd rage is the funniest rage.
  6. Re:OOO? by ADRA · · Score: 4, Insightful

    OpenOffice uses Java for its database tool. I'm fine with it, and its probably the best choice for anyone actually wanting something simple / usefull / free, but obviously the OP is a trolling wanker, so it has to be san-Java.

    --
    Bye!
  7. For your reference only by holophrastic · · Score: 4, Insightful

    If it's just for your reference, you don't need a database at all. Databases don't become technically worth-while until you get to indexing. And until you have fifty-thousand records, or complex queries, you don't need indexing.

    So why not simply write out a tab-delimited file? Retrieval is as simple as reading every line, splitting by the delimeter, and regexp'ing whichever field you're examining. 15'000 records takes about two seconds on a modern machine. Of course, for anything more complicated, that same file gets easily imported into your favourite spreadsheet application.

    You don't need to worry about locking because you're the only one using it. And otherwise, your application simply locks the file handle, or creates & destroys a traditional lock-file.

    It's a thirty-line perl script (of legible perl). You can do it in JScript as a local HTA if you want the benefit of html etc. interfaces.

  8. Re:Python? by fyngyrz · · Score: 5, Insightful

    Care to tell me exactly what the user of GPL software is not free to do? Otherwise maybe you'd like to retract your casual FUD-spreading aside.

    I can't legally utilize GPL'd source code within a commercial application without doing some very specific (and not always possible) things that the GPL license instructs me I must do. Any other ways I can help with your basic F/OSS education? I'll be here all day.

    --
    I've fallen off your lawn, and I can't get up.
  9. Re:Python? by Anonymous Coward · · Score: 3, Insightful

    Hooray, falsehoods!
    You're more than welcome to use with any other software, you just can't distribute.

  10. Re:Python? by aweraw · · Score: 5, Insightful

    Mod parent up.

    IMO, the people who still, after all these years, haven't figured out how to make money with GPL software are the failures, not the GPL.

    Its just a software license; it doesn't preclude you from charing money for your work, and it doesn't mandate you make your work avaiable to the general public. I can't fathom why some seemingly intelligent people have such a hard time grasping this concept.

    --
    5468652047616D65
  11. Sounds like he wants an APPLICATION not a framewrk by wernst · · Score: 3, Insightful

    I'm guessing he wants a FOSS version of FileMaker Pro; something that is an application with a GUI. All you guys are suggesting various frameworks he can use to program his own. No, I don't have an answer either, other than to suggest the spreadsheet in OpenOffice.

  12. Re:Python? by fyngyrz · · Score: 3, Insightful

    But you can do this with non-free software's source? I'm missing your point I believe.

    Yes, you missed the point. You can do it with PD software, specifically with the software in the post that this thread depends from (class dbtxt.) PD source allows you more freedom(s) at the user end. GPL source allows you (a lot) more control at the author end.

    --
    I've fallen off your lawn, and I can't get up.
  13. Re:Err ... by DAldredge · · Score: 5, Insightful

    Just tired that on Excel 2007 - it imported correctly. The three fields all imported correctly.

  14. use a spreadsheet by crevistontj · · Score: 3, Insightful

    Why one earth would you use a database to store one table on information? Save youself some trouble and use a spreadsheet.

  15. Re:Python? by morgan_greywolf · · Score: 5, Insightful

    He said he wanted a flat-file database. Why, on this Earth, would he ever need "standard SQL including joins." SQL is designed for relational databases and, in particular, joins are only EVER used in a multi-table, relational database. In fact, the guy even said "SQL is overkill".

    IOW, SQLite, as "lite" as it is compared to Oracle, MySQL, PostgreSQL, etc. is still overkill.

    I'm with the GP -- dbtxt looks really cool. Although, I do gotta say that OpenOffice.org would fit the bill just fine for what his requirements are: Calc can be used as a flat-file database, and I think there is support for simple CSV databases in Base.

  16. Re:Python? by QuantumG · · Score: 3, Insightful

    Uhh.. is that an honest question?

    Proprietary licensing is specifically designed to make the licensee dependent on the licenser. If there's bugs in the software then the licensee can't fix it and there is only one place the licensee can go to get the bugs fixed, the licenser, who is free to refuse to fix the bugs or demand exhorbinate fees to do so. Same with new features or support.

    If you wouldn't do this to someone directly then giving code to someone else so they can do it is unethical.

    --
    How we know is more important than what we know.
  17. Re:Python? by fyngyrz · · Score: 4, Insightful

    ...the licenser, who is free to refuse to fix the bugs or demand exhorbinate fees to do so. Same with new features or support.

    To be fair, a proprietary licenser is also free to fix the bugs ASAP and well, provide such fixes for free, also to provide new features for free if they like. I do this all the time with a commercial application. A PD author also retains such freedom. These are not benefits that exclusively arrive via the GPL. And it is well to consider that with a GPL, PD or commercial application, one is free to demand money to fix something, to add features to it, to explain or teach its use, or even to simply use it. Doesn't mean you'll get it, but it doesn't mean you won't, either.

    If you wouldn't do this to someone directly then giving code to someone else so they can do it is unethical.

    I don't think you've really analyzed this far enough. Giving someone something, and then telling them what they can and cannot do with it, carries ethical problems in the form of imposing your will on someone else (and it also devalues the gift, in my personal opinion.)

    "Here's a gift of a book; but you can only read it if you use LED lights." "Here's a gift of a cat; but you can only have it if you'll eat it." "Here's a gift of a some money, but you must spend it upon me."

    You see? This is why the term "freedom" has always seemed to go so poorly with the coercive requirements that the GPL applies to the various recipients in the chain of "gifts."

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

    I can only imagine you are being dense on purpose

    Your imagination, not to put too fine a point on it, has failed you.

    You are going around saying that the GPL has restrictions on use. It does not

    Yes, in fact, it does.

    I have come across a snippet of GPL'd source code. I want to use it in my gigabyte of source code commercial app, which, prior to such inclusion, is legally mine to distribute, which is a use I make of this object, that is, my application. However, as quite common in commercial efforts, I cannot legally distribute the source code of my application. So, one day I use the GPL'd source code by compiling said GPL source into the commercial app. I mod it to better suit my use of it. My app is suddenly subject to a change in usability, imposed by the GPL, such that I no longer have the option of using the same way (which act can also be characterized as distribution) to earn money, and my customers no longer have the option to use my altered application. This viral alteration of the usability of my application is entirely courtesy of the GPL. In order to reverse this alteration and keep the code snippet in use in the application, I must perform actions that I actually do not have the option of choosing due to previously existing obligations (essentially source code distribution.) The end result is that the GPL'd code cannot be used if the commercial application is to remain usable.

    To be blunt, the word "use", (as well as all of its natural permutations) which you depend upon so heavily in your flawed analysis, doesn't have the limited meaning you wish it had — nor has it ever, or will it ever, have such a limited meaning. This is why your argument is specious.

    --
    I've fallen off your lawn, and I can't get up.
  19. Re:Python comes with SQLite by spookymonster · · Score: 3, Insightful

    1) My example was done to show how quick and easy it would be to set up and populate a table in Python.

    2) He's explicitly mentioned several times that this is for his own private non-web use.

    3) Your fly is open.

    --
    - Despite popular opinion, I am not perfect.
  20. Re:Python? by Jason+Earl · · Score: 4, Insightful

    Why should the GPL hackers share with you if you aren't willing to share with them?

    You don't like their license. That's fine, they don't like your license either.

  21. Re:Python? by fyngyrz · · Score: 3, Insightful

    I honestly believe that if you put your code out there for someone to use you should try to get something for it. Your life, the time you spend writing the code, is valuable. Make it worth something.

    It's my code; I chose to make it PD; and I do get something for it, I get to add a shoulder to the wheel, as it were, if anyone will accept my contribution... and I enjoy the idea that the time I spent saves someone else some of theirs, hopefully such that they can create something above and beyond what I already did. Sometimes that's enough. I've gotten lots of help off the net, no strings at all -- so I don't find it at all peculiar to offer something back likewise sans strings.

    Some works we contribute; some things we ask a return for. I'm ok with both approaches, really, it is the ones in the middle (supposedly "free", but with substantial strings) that don't attract me either as a user or a contributor. That's just me. What seems to rile people up is if I talk about the reality of those strings. That's when we get these threadfests.

    --
    I've fallen off your lawn, and I can't get up.
  22. Re:Python? by XNormal · · Score: 3, Insightful

    How is this moderated as "informative" when it contains blatantly incorrect information? SQLite is most definitely present in all Python 2.5 installations. It's part of the Python source tree. It's as much a part of the Python distribution as the regular expressions library you use in your code. And if you insist on using an older version of Python SQLite is just one apt-get away.

    In what specific ways does the supposed "bloat" of SQLite affect the user, exactly?

    What kind of "maintenance" does the user need to do on the SQLite source code? It's maintained well enough for some some pretty big users. Who maintains your code and why should I trust you with my data?

    How can SQLite be "difficult to use" when it's just standard SQL with a standard Python DBAPI interface?

    It's really nice that you wrote a cute little datastore. But there's no need to badmouth what you perceive as the competition.

    --
    Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.