当前位置: 首页 > 面试题库 >

SQL数据库中的维度和单位分析

詹甫
2023-03-14
问题内容

问题:

关系数据库(Postgres),用于存储各种测量值的时间序列数据。每个测量值可以具有特定的“测量类型”(例如,温度,溶解氧等),并且可以具有特定的“测量单位”(例如,华氏/摄氏度/开尔文,百分数/毫克/升等)。

问题:

有没有人建立过类似的数据库以保持尺寸完整性? 有什么建议吗?

我正在考虑建立一个measurement_type和一个measurement_unit表,这两个表都具有文本两列,即ID和文本。然后,我将在measured_value表中创建这些表的外键。文字让我有些担心,因为存在非唯一重复的可能性(例如,每升微克为“ug / l”与“μg/ l”)。

这样做的目的是使我既可以转换查询的单位,也可以通过外部编程来验证单位。理想情况下,我以后可以进行严格的尺寸分析(例如,将μg / l链接到值“ M /
V”(质量除以体积))。

有没有更优雅的方法可以做到这一点?


问题答案:

我在很久以前就制作了一个用于处理单位的数据库子模式(好的,我有点夸张;不过大约是20年前)。幸运的是,它只需要处理简单的质量,长度,时间尺寸-
而不是温度,电流或发光度等。游戏的货币方面要简单得多-
在一种货币之间进行转换有多种不同的方法。另一个取决于转换率有效的日期,货币和期限。这是与物理单元分开处理的。

从根本上讲,我创建了一个带有“ id”列,单位名称,缩写和一组尺寸指数的表格“
measures”,每个尺寸指数代表质量,长度,时间。这填充了诸如“体积”(长度= 3,质量= 0,时间= 0),“密度”(长度= 3,质量= -1,时间=
0)之类的名称。

还有第二个单位表,它确定一个度量,然后确定一个特定度量使用的实际单位。例如,有桶,立方米和各种其他相关单位。

第三个表格定义了特定单位之间的转换系数。它由两个单位和将单位1转换为单位2的乘性转换因子组成。这里最大的问题是转换因子的动态范围。如果从U1到U2的转换是1.234E
+ 10,则倒数是一个相当小的数字(8.103727714749e-11)。

S.Lott关于温度的评论很有趣-我们不必处理这些问题。存储过程将解决这个问题-尽管将一个存储过程集成到系统中可能很棘手。

我所描述的方案允许对大多数转换进行一次描述(包括假设单位,例如每两周的弗隆,或者更少的假设但同样晦涩难懂的单位-
在美国以外,例如英亩英尺),并且转换可以得到验证(例如,转换因子表中的单位必须具有相同的度量)。它可以扩展为处理大多数其他单位-
尽管诸如角度(或立体角)之类的无量纲单位存在一些有趣的问题。有支持的代码可以处理任意转换-
或在不支持转换的情况下生成错误。使用该系统的原因之一是,各个国际关联公司会在其本地方便的单位中报告其数据



 类似资料:
  • 问题内容: 我想从下面的数据库表中找到最近的位置 我已经从Google地图中获取了所有数据。在这里,我必须找到一个地方最近的位置。假设我在Surkhet地方,其纬度为28.6,经度为81.6,如何找到距Surkhet地方最近的地方。 问题答案: 这是最好的查询

  • 我有一个Firebase实时数据库项目,最初是在central1服务器(美国)上创建的。 问题是使用这个数据库的应用和相关的云功能都是在欧洲使用的(主要是法国)。有同样情况的人把服务器改成了“europe-west1 ”,并注意到云功能的速度有了很大的提高。 所以我有几个问题:它真的会影响速度吗?此外,我是否必须同时更改数据库和云功能位置以使其顺利工作? 更改云函数位置很容易,但一旦创建实时数据库

  • 本文向大家介绍多维数据库,包括了多维数据库的使用技巧和注意事项,需要的朋友参考一下 多维数据库主要用于OLAP(在线分析处理)和数据仓库。它们可用于向用户显示多维数据。 多维数据库是从多个关系数据库创建的。关系数据库允许用户以查询形式访问数据,而多维数据库则允许用户提出与业务或市场趋势有关的分析性问题。 多维数据库使用MOLAP(多维在线分析处理)来访问其数据。它们允许用户通过相当快地生成和分析数

  •   数据库是数据的集合,它由一个或多个表组成。每一个表中都存储了对一类对象的数据描述,一个典型的表如表10.1所示。表的每一列描述了对象的一个属性,如姓名、出生年月等,而表的每一行则是对一个对象的具体描述。一般将表中的一行称作记录(record)或行(row),将表的每一列称作字段(field)或列(column)。数据库通常还包括一些附加结构用来维护数据。 表10.1 学 号 姓 名 出生年月

  • 问题内容: 我有一个非常简单的表,像这样: 它包含来自不同传感器的数千条日志。 我希望所有传感器都具有Q1和Q3。 我可以对每个数据执行一次查询,但对所有传感器执行一次查询会更好(从一次查询中获取Q1和Q3) 尽管这将是一个相当简单的操作,因为四分位数被广泛使用,并且是频率计算中的主要统计变量之一。事实是,我发现了很多过于复杂的解决方案,而我却希望找到一些简洁明了的东西。 有人可以给我提示吗? 编

  • 我想使用中值滤波器来平滑图像。我找到了位于此处的库:http://librow.com/articles/article-1我的问题依赖于算法是否期望一维或二维数组(从我所了解的中值滤波器读取当前算法中3x3的“窗口”中的值,然后选择它们的中值并用它替换窗口中的所有像素)。