Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

(OT) "Desktop Database" options

by dimar (Curate)
on Oct 06, 2004 at 17:14 UTC ( [id://397100]=perlquestion: print w/replies, xml ) Need Help??

dimar has asked for the wisdom of the Perl Monks concerning the following question:

the background

There are some 'workhorse' utility perl scripts that need to be converted (or retro-fitted) to work with a "desktop database" style application. The question is, what are the options and what do perlmonks prefer?

the specification

If you are familiar with MSFT Access, or FileMaker Pro, you have an idea of what I am talking about. The application is data-centric, and needs to have a flexible, but intuitive front end (GUI) for 'non-techies'.

the candidates

The first thought was MySQL, but this is more 'client-server' and may be overkill, plus I'm not aware of GUI front-end options. Access and FileMaker are options, but they are not open-source, which is preferred. Something that works with Perl would be a plus, to ease the burden of retro-fitting. You might have guessed this is targeting Windows, but cross-platform is not a bad thing either.

the question

Is there anything out there that meets the spec? Do any of the perlmonks out there use something that matches these or similar requirements? What is the 'state of the art' these days as far as 'desktop' databases go?

20041009 Edit by castaway: Changed title from 'slightly OT "Desktop Database" options'

Replies are listed 'Best First'.
Re: slightly OT "Desktop Database" options
by jfroebe (Parson) on Oct 06, 2004 at 17:43 UTC

    Hi,

    For a desktop database, I would go for dBase files. Before everyone starts screaming for SQLite, let me explain my reasoning:

    it is an open format - just about every spreadsheet can read/write to it.
    no cumbersome SQL to learn for end users.. nearly plug an play
    reasonable performance
    small number of files : 1 for the table and 1 for each index
    tiny memory/resource requirements
    no need to run a daemon

    hope this helps

    Jason L. Froebe

    No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1

Re: slightly OT "Desktop Database" options
by jdtoronto (Prior) on Oct 06, 2004 at 19:14 UTC
    Well, I will put my hand up for MySQL also.

    YOU should be providing the add-edit-delete functionality in your own front end! Man, it isn't difficult. I can do it so can you!

    MySQL is so easy to install - it isn't a hog either, it is fast and you can hide it very easilly. So easilly that my end users generally don't realise that their is something running on their machines! I used the Nullsoft Installer package and in less than a day figured out how to have it install MySQL and my application, set up MySQL as a service and start it the first time.

    Just for the sake of cleanliness I start and stop MySQL as a service from within my application.

    This application replaces an earlier one based on Access and written in VBA. It was a dog of a thing. Hard to maintain, rather flaky and oh, did I mention all the limitations of Access? Oh and speed? Did I mention speed? To be honest I am glad to see the back of it. The new one is written all in Perl, uses Tk and, of course MySQL.

    jdtoronto

      Hats off to you, and thanks very much for the response ... I agree with your "it isn't difficult" remark, and to be completely blunt, it is so 'not difficult' that I was sorta fishing for leads on stuff that is already done. This is a low-priority project that I am not getting paid for ... and this kind of work was old-hat for me over ten years ago ... so perhaps you can understand the question is less 'proof of concept' and more 'anybody got some spare code'.

      As far as the "MSFT Access hell" all I can say is "I feel your pain (been there done that)" In fact, memories of this past anguish is partially what prompted my question.

      It seems as though there is an "unmet market niche" out there ... small(ish) desktop database with the elegance and power that only a perlmonk could love, but with the pointy-clicky approachability that is the strong-suit of the (otherwise inelegant) MSFT Access category (which is what basic users need). Perhaps those two realms are just too distant, like finding someone who is fluent in both English and Mandarin Chinese?

      So for now, it looks like a coin-toss between MySQL-Perl-Tk and (hold my nose) MSFT Access or Spreadsheet. Not to bash MSFT but their scripting and performance leaves a *lot* to be desired.

      BTW I am suprised no one mentioned Open Office ... I'm still wondering if there's *anything* else out there

Re: slightly OT "Desktop Database" options
by Ovid (Cardinal) on Oct 06, 2004 at 20:23 UTC

    I am a huge fan of SQLite and it does have a GUI front-end, though I confess I haven't used it. Still, I'm not sure if this is appropriate for your "non-techies" needs. It depends upon whether or not "non" is in ALL CAPS.

    On the other hand, I probably wouldn't let non-techies touch the database directly. Give them a gui or command line interface so everything that goes into the database is controlled by your code.

    Cheers,
    Ovid

    New address of my CGI Course.

Re: slightly OT "Desktop Database" options
by dragonchild (Archbishop) on Oct 06, 2004 at 18:16 UTC
    MySQL 4.1 and the new DBD::mysql under development allow for an embedded RDBMS, similar to SQLite. That would be the choice I would use for new development.

    Otherwise, I would use MySQL which has several excellent GUI front-ends. However, why do you need a GUI front-end? Why aren't you providing all access to the DB through the app?

    Being right, does not endow the right to be rude; politeness costs nothing.
    Being unknowing, is not the same as being stupid.
    Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
    Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

      The GUI requirement is barebones and simplistic. There needs to be a way for 'average joe/jane user' to add/edit/delete records without them having to know diddly squat about the database, or even what a database is. The idea is we need a simple 'grid view' style applet widget that can be searched, sorted, edited as brain-dead easily as opening up your email inbox on hotmail or outlook.

      This is a simple scenario like 'manage my cd collection'. No user login, concurrency or admin-console requirements... very barebones, single user desktop type stuff.

        Use Access. That's what it was designed to do. Otherwise, use a spreadsheet. If you don't want fancy, then don't get fancy.

        Being right, does not endow the right to be rude; politeness costs nothing.
        Being unknowing, is not the same as being stupid.
        Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
        Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

        I'm with dragonchild on this one.

        Access seems to meet your requirements, except for the fact that it isn't open source. If it just needs to be bare-bones simple, and Access will do everything you describe, why do you care if it is open source?

Re: slightly OT "Desktop Database" options
by bpphillips (Friar) on Oct 06, 2004 at 19:41 UTC
    MySQL AB does provide a couple different GUI applications that I use frequently (they might be a little bit more fully featured than what you need but I thought they were worth mentioning). The first option listed below is no longer actively developed as they are transitioning to the second option listed (which is currently in beta):

    Copied from mysql.com
    MySQL Control Center
    MySQL Control Center (or MySQLCC) is a GUI client that works alongside the MySQL database server. Built using Trolltech's Qt application toolkit, MySQLCC makes it easy to create databases and tables, write and execute SQL queries (in a syntax-highlighting editor), examine the contents of your tables directly, and back up or fine-tune your server setup. It supports both local and remote servers, and all table types.

    MySQL Query Browser
    The MySQL Query Browser is a graphical tool provided by MySQL AB for creating, executing, and optimizing queries in a graphical environment. Where the MySQL Administrator is designed to administer a MySQL server, the MySQL Query Browser is designed to help you query and analyze data stored within your MySQL database. While all queries executed in the MySQL Query Browser could also be performed in the mysql command-line utility, the MySQL Query Browser allows for the querying and editing of data in a more intuitive, graphical manner.
Re: slightly OT "Desktop Database" options
by hmerrill (Friar) on Oct 06, 2004 at 17:55 UTC
    As you were already considering MySQL, you might also consider PostgreSQL. And there are a number of projects on "www.sourceforge.net" that offer gui front-end's to either MySQL or PostgreSQL.
Re: slightly OT "Desktop Database" options
by bart (Canon) on Oct 06, 2004 at 19:36 UTC
    I really like this webserver+CGI/PHP frontend approach, even for just on your own little PC. So, use a minimal webserver and one of the web frontends. For Mysql, phpMyAdmin is well received among users, and there is the (now probably abandoned &mdash unfortunately) Perl frontend mysqltool. I've used both, and they do the job well.

    For PostGres I have been playing with phpPgAdmin. It seems fine.

    And I'm sure there are more alternatives, for both.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://397100]
Approved by Joost
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (8)
As of 2024-03-29 15:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found