这些数据适合存储在数据库中吗?

4

关于我之前提出的数据库建议问题,我突然意识到我甚至不知道我要存储的内容是否适合用于数据库。或者是否应该使用其他数据存储方法。

我有一些物理模型测试(比如风洞数据),对于每个模型(M-1234),我都有:

name (M-1234)  
length L  
breadth B  
height H  
L/B ratio  
L/H ratio  
...  
lot of other ratios and dimensions ...
force versus speed curve given in the form of a lot of points for x-y plotting  
...  
few other similar curves (all of them of type x-y).

现在,我想要完成的目标是以某种合理的方式进行存储,这样使用数据库的用户可以查看最接近 L/B=2.5(或类似要求)的十个模型。然后,为此,以某种方式获取所有这些模型的数据,包括曲线数据(以纯文本文件格式)。
SQL数据库(或任何其他数据库)是否适合处理这样的事情?还是我应该采取其他方法?
我需要在大约一个月内完成这个项目,并且在此期间我还需要学习足够多的关于数据库的知识,请提供建议,并请记住这一点。假设没有任何先前的知识。

1
听起来像是一个问题,需要去 http://stackoverflow.com 上问一下,对吧? - o.k.w
@o.k.w - 真的不确定。无论如何,我会把这个决定留给管理员来做,并相应地移动它。 - Rook
传统上,数据库不存储可以计算的信息,因此您对数据库的使用更多地是数据存储或仓库。尽管如此,它仍然比平面文件是一个更高效的存储机制。 - user114600
@Randolph Potter - 哦,我不是指在内部计算它(如果您指的是比率)。它们已经全部计算好了,所以没有问题。我更感兴趣的是,这样的数据库是否可以容纳“数组”(曲线点),并且通过使用它,我是否能够完成这个任务...最接近给定L的10个最近点? - Rook
3个回答

2
我认为您要找的是可以实现的。我在这里使用的是Postgresql,但任何数据库都应该可以。这是我的测试数据库。
CREATE TABLE test ( id serial primary key, ratio double precision ); COPY test (id, ratio) FROM stdin; 1 0.29999999999999999 2 0.40000000000000002 3 0.59999999999999998 4 0.69999999999999996 .
然后,要查找到特定比率最接近的值:
select id,ratio,abs(ratio-0.5) as score from test order by score asc limit 2;
在这种情况下,我正在寻找最接近0.5的2个值。
我可能会设计一个数据模型,其中您有一个主数据、比率等的表,然后第二个表保存曲线点,因为我假设曲线的大小不总是相同的。

2
是的,对于这个问题,数据库可能是最好的方法。
关系型数据库(通常使用SQL进行数据访问)适用于更或多或少结构化为表格的数据。
举个例子:
你可以有一个主表model,其中包含字段name、width等。然后再建立一个子表,用于存储任何可能出现多次的值,并将其引用回model表(查找“外键”)。
然后再建立一个子表,用于存储实际曲线数据,并再次引用回model表。
至于如何在数据库中建模曲线,我不知道,因为我不知道你是如何建模的。但如果它是大量数字,它可以放入数据库中。
看起来你对关系型数据库管理系统了解不多。考虑阅读一些维基百科上的文章,或者做一些简单的数据库管理系统教程(PostgreSQL有一些:http://www.postgresql.org/docs/8.4/interactive/tutorial.html,但还有很多其他的)。然后选择一个DBMS来尝试(PostgreSQL可能不是一个坏选择,但还有很多其他的)。
然后尝试实现一个简单的表结构,并回答我们任何详细问题(您可能会有)。
还有一件事:这些问题可能更适合在serverfault.com上提问。

@sleske - 因为你似乎对这些事情很有知识,如果可以的话,我还有一个问题。你认为另一种类型的数据库可能更合适吗?我的数据通常以每个模型有几个参数(所有标量)的方式结构化,因此一个模型,一个参数行。并且对于每个模型,我都有几张表格(另一张表格)的数据(曲线)。也许把它放在像dBase(旧的)这样的“传统”(不确定正确名称)数据库中会更合适,这些数据库与今天的sql种类不同,如果我记得正确的话。 - Rook
@Idigas:非常欢迎您提出问题。但请将它们作为问题发布,因为这就是本网站的用途 :-)。最好在stackoverflow.com上发布,因为这是一个编程问题。我通常不会推荐使用dBase,但意见可能有所不同。 - sleske
好的,谢谢!(顺便说一句,是的,我非常了解这三个网站的性质。只是有时候针对这些细节,在评论中处理起来比在一个问题中填写详细问题更容易)。 - Rook

0
这可以说是科学数据:你可能会发现针对任意科学数据的库/格式很有用:HDF5 http://www.hdfgroup.org/(请注意,我不是专家)。

是的,有测量和预测数据。但据我所知,这些数据来自一个没有文件格式的领域。 - Rook
这些工具的想法是使开发自己的格式变得容易。另一个是 Silo http://wci.llnl.gov/codes/silo/ - Norky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接