Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

These days computers usually have 2GB or 4GB memory.

I like to use some secure client server model, and well an sql database is likely candidate.

On the other hand I only have about 8000 records, who will not frequently be read or written in total they would consume less then 16 Megabyte.

And it made me wonder what would be good secure options in a windows environment to store the data work with it multi-client single server model, without using SQL or mysql?

Would for well such a small amount of data maybe other ideas better?

Because I like to keep maintenance as simple as possible (no administrators would need to know sql maintenance, as they dont know databases in my target environment).

Maybe storing in xml files or.. something else.

How others would go if ease of administration is the main goal?

Oh and it should be secure to, the client server data must be a bit secure (maybe NTLM files shares https or...etc)

Maybe I should say something of the use, it would be like client ask for a single record and retrieves an answer a single byte is returned those clients won't launch complex questions, only the maintenance server side might require record editing, clients will only ask not change records. And clients wont perform advanced queries.

share|improve this question

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

closed as not constructive by Robert Harvey, Yusubov, Walter, Glenn Nelson, gnat Dec 13 '12 at 6:39

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Why are you trying to re-invent a perfect wheel, just because of a small amount of data? MySQL or PostgreSQL or SQLExpress take very little knowledge or maintenance to run, and fit your requirements perfectly (client/server). – gahooa Dec 12 '12 at 23:00

Very first thing that comes to mind is SQLite. Have you considered giving that a shot? Very light weight and ubiquitous. Easy to use too.

SQLite (in addition to the comments below) is easily backed up and transportable across systems, mobile devices, client machines, embedded systems, servers all because it is a file. It does behave like a SQL system and often is used like a very lite one.

In our corporation we use them as mini databases from major ERP systems were we replicate this data down to mobile devices for offline access. This allows the same logic in our apps on mobile devices regardless of whether they are connected to a beefy server or in some remote location with no network access.

This data can also be encrypted and secure as you would like it to be. Again everything is securely encrypted on the mobile devices and in transmission.

Maintenance on the SQLite db file is very easy. There are many functions that you can use to keep the database light and optimize. I refer to this FAQ often. One command that has helped us in the mobile and embedded world to transfer our database faster is vacuum command for instance. SQLite makes it easy.

One other use of SQLite that I recently saw online (but can't find the link btu will include it once I do) is that it can be used as a portable filesystem for various computers. It is easy to store and pack searchable data and then easily move it. I gather from your question this might also be of benefit.

I hope this gives a clearer answer and of some of the possibilities for SQLite.

share|improve this answer
is the connection between client server secure ? – user613326 Dec 12 '12 at 21:41
@user613326, there is no connection, sqlite3 just uses a file and you usually access it through library functions. – miku Dec 12 '12 at 22:12
That technically is SQL and relational, only embedded. – m3th0dman Dec 12 '12 at 22:43

If your data model is a simple one or if you do not want to use SQL, you can use Berkeley DB. It basically is an optimized map, which is to be embedded directly in your application; it has APIs for many programming languages, it supports very well multithreaded access and scales to large amounts of data (not distributed like NoSQL key-value databases).

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.