0

これは、大量のデータをデータベースに保存することについてのパズルです。

それぞれが複数の量の時系列を測定する、機械でいっぱいの施設があるとします。おもちゃの例で説明しようと思います。

MachineA4つの温度と湿度を測定します。MachineB1つの温度と5つの電圧を測定します。MachineC風速と風向を測定します。測定は常に自動的に行われます。

各マシンはすべての独自の測定を同時に行いますが、時間間隔とオフセットはマシンによって異なります。つまり、行には、1つのタイムスタンプで取得された1台のマシンからの測定値のみを含めることができます。

実際には2000台のマシンがあります。つまり、マシンまたはマシンのタイプごとに個別のテーブルを使用することは実用的ではありません。

常にさまざまなマシンが追加されています。可能なすべての測定値にまたがる列のセットは実用的ではありませんMachineD。塩分測定値を追加すると、事前に塩分について考える必要がなくなり、そのためだけに非常に大きなテーブルに新しい列を追加する必要があるためです。使用する1台のマシン。

典型的なクエリ:

  • MachineA過去90日間の最高気温は?
  • MachineB過去7日間のすべての測定値は何でしたか?
  • 温度測定を行っているすべての機械の中で、昨日測定された最低温度は何でしたか?
  • 温度測定を行った各マシンについて、昨日測定された最低温度はどれくらいでしたか?
  • 塩分検出器を備えたどのマシンでも、昨年中に測定が行われましたか?
  • MachineCの風速と気温に基づく風冷えは何MachineBですか?

これらの制約内でこれをどのように整理できますか?

4

1 に答える 1

0

このデータにはいくつかの次元があります

  • 機械(場所?):測定を行ったもの
  • 「検体」:測定されているもの
  • (明らかに) 時間: 測定の時間。

これら 3 つの項目は、何らかの形で主キーの一部である必要があります。機能に依存する唯一の属性は、*測定": 測定プロセスの実際の結果です。その単位は重要ではありません (機能的には 3 つのキーフィールドにも依存するためです。ただし、追加の疑似次元 "装置タイプ"がある場合もあります)。場所にもよるかもしれませんし、時間にもよるかもしれません(はぁ…)。

このような現実の問題では、常に隠れた依存関係があります。場所 Xは {温度、風速、湿度}のみを測定し、常に測定装置 Y を使用します。

そこでBCNFの出番です。あなたのデータがわからないので、わかりません。あなたのデータを知ってたとしても、3..4 の主要な要素間の依存関係は時間の経過とともに変化する可能性があります。

于 2012-12-14T00:36:27.567 に答える