I must create a database for any unique atmosphere. I do not have knowledge about database design and may use everybody's knowledge.

My group is creating a database for bit of physics hardware along with a data acquisition system. We want a method which will store all of the hardware configuration parameters, and track the alterations to those parameters because they are transformed through the user.

The setup:

  • We've nearly 200 sensors and roughly 40 parameters connected with every detector. Of those 40 parameters, we expect merely a couple of to alter throughout the path of the experiment. Most parameters connected having a single detector are static.
  • We collect data with this experiment in timed runs. Throughout these runs, the parameters loaded in to the hardware mustn't change, although we ought to have the ability to edit the database anytime to organize for the following run. The present plan:

    • The database will give you the main difference between your current parameters and also the parameters used throughout last run.
    • At the beginning of a brand new run, the newest database changes be loaded into hardware.
    • The configurations employed for the approaching run should be labeled having a run number and also the current time and date. This really is essential. I want a run-by-run good reputation for the experimental setup.
  • You will see a number of different clients that both read towards the database. Although changes towards the database is going to be infrequent, I am unable to guarantee the changes will not happen at the same time.

  • Should be robust and non-corruptible. The configuration from the experimental system is dependent around the hardware. Any introduction to the database would prevent data acquisition, and our time is costly. Database backup copies?

My current plan's to implement the above mentioned needs utilizing a sqlite database, although I'm unsure whether it supports my needs. Can there be every other technology I ought to consider? Has anybody done such like? I'm prepared to learn any technology, as lengthy as it is mature.

Advice are welcome.



Update 1:

Database access:

You will find three lite programs that may write and browse towards the database and something application that may only read.

The programs with write access have the effect of setting a non-overlapping subset from the hardware parameters. To be precise, we've one application (which there might be multiple copies) which sets our prime current, one application which sets the rest of the hardware parameters which might change throughout the experiment, and something GUI which sets the rest of the parameters that are nearly static and therefore are only required for the correct renovation from the data.

This program with read access only is our data analysis software. It requires use of almost all of the parameters within the database to correctly format the incoming data into something we are able to evaluate correctly. The amount of connections towards the database ought to be >10.

Backup copies:

Another setup at our lab dumps an xml file every run. Despite the fact that I do not think xml is suitable, I had been likely to support the machine every run, just just in case.

Some fundamental reasons for the look you need to make certain you don't remove data from the tables keep an eye on the newest data (most likely best with many recent up-to-date datetime) once the data value changes, though, don't remove that old data. Whenever a run is started, tag every table combined with the Run ID (in another column) by doing this, you maintain full historic record about every setting, and may pin just what the condition used in a given run was.