我必须为独特的环境开发一个数据库。我没有数据库设计经验,可以利用每个人的智慧。
我的小组正在为一块物理硬件和一个数据采集系统设计一个数据库。我们需要一个系统来存储所有硬件配置参数,并在用户更改这些参数时跟踪它们的变化。
设置:
- 我们有近 200 个检测器和大约 40 个与每个检测器相关的参数。在这 40 个参数中,我们预计只有少数会在实验过程中发生变化。大多数与单个检测器相关的参数都是静态的。
我们在定时运行中收集此实验的数据。在这些运行期间,加载到硬件中的参数不得更改,尽管我们应该能够随时编辑数据库以准备下一次运行。目前的计划:
- 数据库将提供当前参数与上次运行期间使用的参数之间的差异。
- 在新的运行开始时,最新的数据库更改被加载到硬件中。
- 用于即将运行的设置必须标有运行编号和当前日期和时间。这是必不可少的。我需要实验设置的运行历史。
将有几个不同的客户端读取和写入数据库。尽管对数据库的更改并不频繁,但我不能保证这些更改不会同时发生。
- 必须是健壮且不可损坏的。实验系统的配置取决于硬件。数据库的任何故障都会阻止数据采集,而且我们的时间很昂贵。数据库备份?
我目前的计划是使用 sqlite 数据库来实现上述要求,尽管我不确定它是否可以支持我的所有要求。还有其他我应该研究的技术吗?有没有人做过类似的事情?我愿意学习任何技术,只要它成熟。
欢迎提示和建议。
谢谢,
肖恩
更新 1:
数据库访问:
三个轻量级应用程序可以写入和读取数据库,一个应用程序只能读取。
具有写访问权限的应用程序负责设置硬件参数的非重叠子集。具体来说,我们有一个应用程序(其中可能有多个副本)设置高电压,一个应用程序设置其余硬件参数,这些参数可能在实验期间发生变化,一个 GUI 设置其余参数它们几乎是静态的,仅对正确重建数据至关重要。
只读访问的程序是我们的数据分析软件。它需要访问数据库中几乎所有的参数,才能将传入的数据正确格式化为我们可以正确分析的内容。与数据库的连接数应大于 10。
备份:
我们实验室的另一个设置每次运行都会转储一个 xml 文件。尽管我认为 xml 不合适,但我计划每次运行都备份系统,以防万一。