• Post Reply Bookmark Topic Watch Topic
  • New Topic

Suggestions for embedded databases  RSS feed

 
Dwayne Barsotta
Ranch Hand
Posts: 86
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If anyone has seen my previous post.  My project is going to incorporate an embedded data base right in the application.  Can someone suggest a good database for this?  Or even things I should look for when choosing a database.  I'm building this program in stages.  The first stage will have a complete running program where a single user can log in, and operate the program.  All data is stored locally. 

Future releases I intend to design a server that contains a database, similar to the one embedded in the client program.  On the future client server version of the program I was thinking of using log in control to control database security.  For example when a user logs into the client, the server will send data that is directly related to the user.  This is the data that is generally changed.  The server will also block any future attempts of the user logging on a different machine, until the first one is logged of.  When the user logs off then the data lat has been changed by the user will then be sent to the server to update the master.  Since the common data between all the clients is minimal I could simply use a simple request -->send and develop some sort of data quality control on the server end.  Fortunately the data I plan to use that is common between all the users is only a fraction of the total amount of data.  The majority of the data users access is not pertinent to other users.  By limiting the users to logging in on one computer at a time then I can control when and how the data being changed is done.

I added the paragraph about the future design because having as little changes needed to upgrade from a single user/computer software to the client/server model would be great and might affect someones recommendation.

Thank You in Advance!  You guys have helped me in not only the individual element problems but also in how I am approaching the operation and control of my program.  
 
Junilu Lacar
Sheriff
Posts: 11493
180
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Try searching for lightweight databases for Java -- you'll find there are a number of options to choose from.
 
Junilu Lacar
Sheriff
Posts: 11493
180
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dwayne Barsotta wrote:Future releases I intend to design a server that contains a database, similar to the one embedded in the client program.

Then it's important that you start programming to interfaces instead of implementations now so that it will be easier to replace your embedded database with a remote database. Also read up on layered application architectures and pay attention on how to design a Data Access layer and its relationship to other layers like the Application/Service layer and the Domain layer.  Many people these days favor Eric Evans' Domain Driven Development technique which defines four general layers of architecture but there are many different variations to the basically the same concept of layering. I also like ideas from Alistair Cockburn's hexagonal architecture.
 
Dwayne Barsotta
Ranch Hand
Posts: 86
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you for all the research ideas.  One thing I was thinking about the transfer from single use to client/server is that I don't really need to replace the database.  I could maintain the stand alone one on the computer. When the client opens, a thread can download data that is different on the server so they match. Then on shut down send the changed data back to the server.  Since I plan to restrict logging in on Multiple computers per account I don't need to worry about more then 2 different versions.  On client log in I can assume the server data is accurate on client log off assume client data is right.
 
Junilu Lacar
Sheriff
Posts: 11493
180
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Those ideas are fine but don't bite off more than you can chew. Henry Ford didn't start out by building a muscle car like the Mustang equipped with a 3.7L V6 with twin independent variable camshaft timing (Ti-VCT) technology, delivering 300 hp and 280 lb.-ft. of torque. He came out with the relatively way simpler and cheaper Model T. So start out simple, learn about your system and understand exactly what's good and not so good about it. Then grow it out by improving what's already good while also replacing or fixing what's not so good. Do this consistently over many iterations and you may yet get to where you imagine you will someday get.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!