存储可更新科学数据的更好方法?

时间:2011-08-30 08:44:10

标签: database

我使用的是由已发布的科学数据组成的文件。我正在使用这个文件,该程序读入前5个空格分隔的数据字段,之后的所有内容都被程序视为注释。

2个示例行(数千个):

FeII 1608.4511 0.521 55.36 -1300 M03 Journal of Physics
FeII 1611.23045 0.0321 55.36 1100 01J AJ

该程序将其读作:

FeII 1608.4511 0.521 55.36 -1300 
FeII 1611.23045 0.0321 55.36 1100 

这些数字是每次测量,大多数(不要让我开始)都有相关的错误,这些错误未在此文件中列出。我想以有用且可更新的方式存储此信息。也就是说,第一个条目FeII 1608.4511的误差为正/负0.002。考虑何时进行新测量并将其更改为:FeII 1608.45034加/减0.0005。我想更新值,错误,并记录有关它来自的出版物的一些信息。

使用此文件的程序是遗留代码,并且既重要又不灵活:它在读入时需要文件看起来像上面的输出。我真的希望有一种方法来更新输入文件包括值的错误和注释中的发布超链接。我还想要一种版本控制功能来返回今天这个大文件的状态;或者在使用新值更新20行之后的5个月内。

有关如何最好地完成此任务的任何建议?我应该将所有内容存储在某种数据库中吗?

3 个答案:

答案 0 :(得分:2)

数据库与身份密切相关。如果数据库无法通过其中的数据识别行,则数据库无法帮助您。

如果我是你,我首先将基本文件存储在版本控制系统中,而不是数据库中。每5个月更改20次,我可能会手动进行这些更改并提交每批更改。 (我不知道什么可能构成你的批次。每次都可能是一次改变。)

由于现有文件的格式既重要又脆弱,我不确定是否修改它是个好主意。我认为将错误范围和发布超链接存储在一个单独的文件中,并使用脚本将各个部分放在一起,以便可以使用错误范围和超链接的应用程序,我感觉更好。

答案 1 :(得分:1)

数据库听起来很合理,SQL Server Express是免费且广泛使用的。

您可以读取包含所有注释的文本文件,并以相同的格式输出编辑的数据。你可以使用一些前端,包括Access,快速开发,或者你自己在VB.Net,甚至是Excel中创建的东西。

您需要考虑表格的结构,但这不应该太困难,您可以在这里获得帮助。

答案 2 :(得分:0)

为了更新文件中引入错误和链接的信息,您不需要任何数据库;只需打开文件,遍历各行并更新每一行。

如果您希望能够恢复线状态,则需要定义一些数据库。例如,您可以在Sql Server或Firebird中创建一个数据库,并为每个行历史状态存储一行(创建日期偏离过程);您的文件本身将是当前值的存储库,您可以使用日期和一些简单的数据库信息获取来恢复文件。

如果您不能使用像Firebird或SQL Server这样的数据库,您可以将历史数据存储在一个简单的文本文件中,这取决于您。请记住,就像@CatCall所评论的那样,你需要一种识别每一行的方法,以便在文件中的行与存储在存储库中的历史数据之间建立关系。