I am trying to design software with Java that will have a database running on a network connected to a single offline server system (the server is not necessarily connected to the internet)
The network with the server system is already existing, but I need ideas on how best to achieve a solution.
I am quite familiar with embedded databases using SQLite. However, it appears SQLite is not a good fit for client-server databases. There might be concurrent update operations which I think will lock up an SQLite database.
Now my questions are:
- What are the steps involved in achieving this goal?
- How do I know which RDBMS system is best to use in this scenario? I have read about PostgreSQL, Microsoft SQL, Microsoft Access and MySQL. I would love something a bit similar to SQLite.
- Must the software be web based or can I make it a desktop app? (I am quite comfortable with the latter).
- The previous software stored its database in a Microsoft Access file located on a shared folder on the server system. How effective is this method? How does it work?
- How is it possible to write software without worrying about the database end? (using something like "abstraction")
I have seen this and this but they didn't mention anything about RDBMS. I also checked SQLite over a network out because its a bit related to what I want to achieve... but nothing much there. I also saw Use of sqlite on network share which was quite enlightening too... but I need more info.