Results 1 to 10 of 10
  1. #1
    Join Date
    Aug 2008
    Posts
    5

    Need a DBMS for a desktop app

    Not sure if this is the most appropriate forum but looked good so here goes...

    I've been doing some research and would like to get some opinions. This is my first time having to start a system from scratch and I'm getting nervous.

    I'm working on a legacy system for a government contract. To keep things simple I'll say it's an equipment and personnel inventory system; users keep lists of gear they have on hand and use that as their source for manifesting shipments, keeping track of where it all is and so on.

    Right now, the system is a Powerbuilder app running on Sybase SQLAnywhere 8. We've reached the point where the client has realized the system we have has been patched and duct taped to the point of no return so we were given the go for a rewrite. This time it'll be in Java, with the possibility of interfacing with a master online system, but for the first go around this is all disconnected. That is, each user has their own lists they keep track of.

    I'm going to be accountable for the DISA STIGs for at least desktop applications and databases. My problem is which DBMS to go with. My client is cheap, first and foremost. However when you mention open source to everyone you get gasps, some people cross themselves and others just pass out.

    What I would like to have is the same setup we have with SQLAnywhere which is that the database software is not installed, the proper runtimes are simply put along with the database file and you're good to go. It needs to handle localhost traffic but also have a network option as they use mobile computers that track equipment as well so a network connection is needed sometimes. I'd go right for SQLAnywhere but a few years ago when we upgraded the Powerbuilder version, it came with the newer SQLAnywhere....the client didn't want to pay for the new runtimes so we got stuck with the old engine.

    The client has an enterprise Oracle account so we looked at OracleXE, but for a 'desktop' database, the thing is huge. It takes up 1.3G just for the install, which is the next issue, it needs to be installed, it can't go into a directory with a space in the path and it can only be installed once. So if another app comes along to use it, it can't or vice versa. I tried wrapping XE inside a VM, but the boot time for the guest was over 2 minutes and now we're talking about having to STIG a whole OS on top of everything...not keen on that.

    Looked at MSSQL Express, same caveat as XE, can't install it more than once and there is already one app that we interface with that uses it so no go.

    I've looked at postgres, but I don't see a way of getting it onto a system without installing something.

    Looked at MySQL, looks good does it all but now I'm dealing with the open source issue of whether I can get it past the STIG process. Also looked at HSQL but I got turned off by the CREATE CACHED TABLE bit otherwise it keeps everything in memory then updates the create scripts on the next launch. There's a little security issue for ya.

    So what am I asking for? Suggestions. Know another DBMS that might do well in this instance? Anyone know someone that's gotten MySQL past DISA? We do store SSNs so data security (at least the data files in an encrypted or binary state so they can't be flat out read) is an obvious concern besides it being a government system.

    I'm a little overwhelmed and could use some experienced guidance.

    Thanks for your time, sorry this was so darn long.

  2. #2
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    Quote Originally Posted by TomBodet
    Looked at MSSQL Express, same caveat as XE, can't install it more than once and there is already one app that we interface with that uses it so no go.
    Express is perfectly capable of handling multiple databases and multiple applications.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

  3. #3
    Join Date
    Aug 2008
    Posts
    5
    Quote Originally Posted by blindman
    Express is perfectly capable of handling multiple databases and multiple applications.
    Okay let me try to be more clear. If I'm being obtuse, please explain in small words.

    Yes Express might handle multiples, but it is only one instance of the binaries, correct? Since we are one app out of many, trying to integrate with an existing DBMS will actually complicate the installation. There will be no sysadmin available to assist a user in the installation and if it gets more complicated than: Run setup, next, next, next, finish, they get cranky. What I'm looking for is something I can literally drop in, whole hog, and go. I don't want to get into a 'shared resource' scenario with another system. If the other app gets uninstalled and they assume no-one is using the DBMS they installed then it gets yanked and now I've got nothing.

    ...at least that's how I see it.

  4. #4
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    For a database application you follow these steps:
    1) Install the database server
    2) Create the database

    If there is already an instance of SQL Server Express running, you skip step #1.

    God forbid every vendor starts insisting that their application run on a dedicated database server. Now THAT would complicate things.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

  5. #5
    Join Date
    Aug 2008
    Posts
    5
    Okay let me try it this way:

    This is a desktop/laptop piece of software, not an enterprise system running on a server. I'm company A using Express. Company B uses Express as well. The user installs company B's software first, it puts Express on the laptop, the user moves on with life and starts working. Later the user installs company A's software, it sees Express is there so it creates a database, pushes the DDL and the user goes on with their work. A month later, company B's software gets removed (user no longer does that job, the system had a fatal error and reinstalling was the only solution, whatever...). During the uninstall, company B's installer says "Oh look I put Express on this system, let me run the uninstall."

    The user then spends the next few hours/days on the phone with company A's help desk trying to figure out what broke.

    While you may be comfortable trusting the rest of the world to do everything exactly right, I don't. My tech lead for the project is also of the same opinion, as is the project officer from the government. Based on your post count alone I can assume you've tried helping lots of others before me and I can appreciate that; however my situation and needs are specific. Until the government signs off on the above risk, we need an independent DBMS all to ourselves that I can write up and get DISA approval on any of the risks associated with its use.

  6. #6
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    12,592
    You think you can prevent another vendor's poorly written application from screwing up yours?
    You can't.

    Here's me final suggestion to you: don't put your data into a database, because you do not seem to understand or trust them. Save your data in an XML file.
    If it's not practically useful, then it's practically useless.

    blindman
    www.chess.com: "sqlblindman"
    www.LobsterShot.blogspot.com

  7. #7
    Join Date
    Aug 2008
    Posts
    5
    Quote Originally Posted by blindman
    You think you can prevent another vendor's poorly written application from screwing up yours?
    You can't.

    Here's me final suggestion to you: don't put your data into a database, because you do not seem to understand or trust them. Save your data in an XML file.

    Thanks so much. I'm glad it's your final suggestion.
    Last edited by TomBodet; 08-15-08 at 15:34.

  8. #8
    Join Date
    Jun 2004
    Location
    Arizona, USA
    Posts
    1,848
    Quote Originally Posted by TomBodet
    I've looked at postgres, but I don't see a way of getting it onto a system without installing something.
    Don't understand what you mean here. If the server isn't installed, SOMETHING will have to be installed?

    Do you mean a 'silent' install, or an install without user input? Ref post #8 in the PostgreSQL FAQ

    By default, the postgreSQL install is configured for local connections only. You would update the configuration files to allow it to accept connections from other machines.
    Lou
    使大吃一惊
    "Lisa, in this house, we obey the laws of thermodynamics!" - Homer Simpson
    "I have my standards. They may be low, but I have them!" - Bette Middler
    "It's a book about a Spanish guy named Manual. You should read it." - Dilbert


  9. #9
    Join Date
    May 2008
    Posts
    12
    VistaDB can have stand alone self managed file with no install I believe.

    I havent used it...but perhaps this is the kind of thing you are after...

  10. #10
    Join Date
    Aug 2008
    Posts
    5
    Quote Originally Posted by loquin
    Don't understand what you mean here. If the server isn't installed, SOMETHING will have to be installed?

    Do you mean a 'silent' install, or an install without user input? Ref post #8 in the PostgreSQL FAQ

    By default, the postgreSQL install is configured for local connections only. You would update the configuration files to allow it to accept connections from other machines.
    loquin, please realize I'm trying to understand multiple system's models at the same time and am getting over my head. What I mean is not having to install at all. With Postgres it looks like it needs to be run via Windows Installer whether it's silent or not. The only other thing I've seen (that I'm probably misunderstanding) is there was something I found (not sure where) that talked about using cygwin to run PG without installation or registering anything...but it looks like cygwin needs to be installed. That's sort of where I was coming from.

    I spent a few hours with our Oracle contact and some techs, and have gotten pricing on MySQL and Sybase. Right now the short list is: MySQL, Sybase SQLAny, Oracle Lite 10g and Berkeley Java. Berkeley looks VERY interesting but at the same time (coming from a relational / SQL background) it's also VERY scary.

    Once I get pricing for adding the various Oracle bits to the client's ELA I'll have to talk to the project officer about money. That'll be the biggest deciding factor.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •