2009-05-27 71 views
3

我必须为独特的环境开发一个数据库。我没有数据库设计经验,可以使用每个人的智慧。物理硬件的数据库设计

我的团队正在设计一个物理硬件和数据采集系统的数据库。我们需要一个存储所有硬件配置参数的系统,并跟踪这些参数在用户更改时的变化。

的设置:

  • 我们有近200检测器和与每个检测器相关联大约40的参数。在这40个参数中,我们预计在实验过程中只有少数参数会发生变化。与单个检测器相关的大多数参数都是静态的。
  • 我们在定时运行中收集本实验的数据。在这些运行期间,加载到硬件中的参数一定不能改变,尽管我们应该能够随时编辑数据库以准备下一次运行。当前计划:

    • 数据库将提供当前参数与上次运行期间使用的参数之间的差异。
    • 在新运行开始时,最新的数据库更改将加载到硬件中。
    • 用于即将到来的运行的设置必须标有运行编号和当前日期和时间。这是至关重要的。我需要运行实验设置的历史记录。
  • 会有几个不同的客户端读写数据库。尽管对数据库的更改很少,但我不能保证这些更改不会同时发生。

  • 必须是健壮的和不可腐蚀的。实验系统的配置取决于硬件。数据库的任何故障都会阻止数据采集,而且我们的时间非常昂贵。数据库备份?

我目前的计划是使用sqlite数据库实现上述要求,但我不确定它是否可以支持我所有的要求。还有其他技术我应该看看吗?有没有人做过类似的事情?我愿意学习任何技术,只要它是成熟的。

提示和建议是受欢迎的。

谢谢

肖恩


更新1

数据库访问

有可读写的数据库3个精简版应用程序和一个只能读取的应用程序。

具有写入权限的应用程序负责设置硬件参数的非重叠子集。具体来说,我们有一个应用程序(其中可能有多个副本)设置高电压,一个应用程序设置可能在实验期间改变的硬件参数的剩余部分,以及一个GUI设置参数的其余部分这几乎是静态的,并且只对数据的正确重建至关重要。

只有读取权限的程序是我们的数据分析软件。它需要访问数据库中几乎所有的参数,才能正确地将传入数据格式化为我们可以正确分析的内容。到数据库的连接数应该> 10。

备份

在我们实验室的另一个设置转储每次运行的XML文件。尽管我不认为xml是合适的,但我打算每次运行都备份系统,以防万一。

+0

你多久运行实验?它是每秒几次,每几分钟一次还是每天几次?你多久更换一次参数?每运行一次,或每运行1000次,或?这些可能会影响数据库的大小,从而影响实施。 – polyglot 2009-05-28 16:52:56

回答

1

有关设计的一些基本知识;你应该确保你不会删除任何表中的数据;跟踪最新的数据(可能是最近更新的日期时间最好的数据);但是,当数据值发生变化时,不要删除旧数据。启动运行时,标记每个使用Run ID的表(在另一列中);通过这种方式,您可以保持关于每个设置的完整历史记录,并且可以确切地确定在给定运行状态下使用的状态。

0

这并不是一个特别大的数据库。因此,您可能能够脱身使用Oracle's free database,这将为您提供各种日志记录(不确定是否是实际字词)和管理的极大灵活性。

在您说“将有几个不同的客户端读取和写入数据库”之后,您提到“不可破坏”,这对我来说是一个红旗。您是否打算创建某种具有此接口的应用程序?还是你计划通过像TOAD这样的工具直接访问数据库?

为了保持您的数据完整性,您需要严格执行您的权限。我只允许一个(和一个备份)人员具有管理权限,以便能够在GUI之外进行数据操作(这将使您的生活更轻松)。

备份?是的,一点没错!你不仅应该做每日,每周和每月备份,你应该做充分和增量。另外,经常测试备份映像以确认它们实际上正在工作。

至于数据结构,我需要在你试图存储的内容以及如何访问它的过程中有更多的细节。但是,从你放什么在这里我想说,你需要下面的表格(与开始):

Detectors 
Parameters 
Detector_Parameters 

一些其他注意事项:

因为你会做这么多的变化,我建议使用版本控制例如SVN来跟踪您所有的DDL等。我还建议使用类似bugzilla的错误跟踪(如果需要)和使用google docs进行团队文档管理。

希望有所帮助。

1

问问你的同事。

你没有说你正在做什么样的物理学,或者工作组有多大,但是在我的学科(粒子物理学)中,有一个很深的经验来建立和运行这种类型的系统(我们称之为“慢速控制”等)。与你一起工作的人很可能已经完成了这项工作,或者知道有人已经完成了工作。可能会有人详细描述上次出现在某人的论文中。

我不亲自有很多工作要做这一点,但我知道这一点:一个共同的特点是有没有删除,无覆盖的设计。您只能添加数据,从来没有将其删除。这会保留你搞清楚什么在患难


的情况真的发生了也许我应该解释一下的机会。虽然这是一项重要任务,有许多工作要做正确的,这是不是真的涉及到物理学,所以你不能看它在SpiresarXive.org。没有人撰写有关中型慢速控制数据库设计和实施的论文。但他们有时会把它放在他们的论文中。寻找指针的最简单方法是向实验室周围的一群人询问。

+0

感谢您的回复。我在核物理学。我做了一个温和的文献搜索,实际上大部分信息来自高能量社区。我碰到的问题是规模问题。我们的设备和支持的社区的复杂程度比围绕许多高能设备的军队少1-2个数量级。如果您需要进一步澄清,我可以提供。 – Sean 2009-05-27 22:59:55