私はリレーショナル データベース設計の分野にかなり慣れていないので、9x9 の共分散行列をテーブルに格納しようとしています。行と列は、位置、速度、および加速度の x、y、z 項です。そのようです:
PosX PosY PosZ . . . AccZ
-------------------------
PosX | XX XY XZ . . .
PosY | YX YY YZ . . .
PosZ | ZX ZY ZZ . . .
. | . . .
. | . . .
. | . . .
AccZ |
たとえば、左上の要素は PosXPosX (上記の XX に短縮) であり、右側の要素は PosXPosY などです。行列は対角線に沿って対称です (つまり、PosXPosY == PosYPosX)。この同じテーブルに位置と速度のみを含む 6x6 マトリックスを保存することもできます。
私の研究から、行番号、列番号、および値のフィールドを持つテーブルを作成する正規化されたテーブル設計を見つけました (データベースで 2-D データ マトリックスを表す方法)。行数と列数を可変にできるため、この利点は柔軟性にあることがわかります。行と列の数 (9x9 および/または 6x6) を設定していますが、これが最善の方法ですか? 行と列の一意の組み合わせ (PosXPosX、PosXPosY など) ごとにフィールドを持つテーブルを作成することも考えられます。それは私にとってより直感的に思えますが、私が言ったように、私はこれが初めてです。
私の質問は、私のデータをリレーショナル データベースでどのように表現することをお勧めしますか? 考えられる 2 つの方法を概説しましたが、どちらが最善の方法かはわかりません。私の場合の「最良」とは、効率的に保存および取得することを意味します。私が作成しているのは実際にはデータリポジトリであるため、データベース内のデータは追加されると変更されず、numpy 配列などに読み込まれるだけです。
もう少し背景:
テストデータを分析しています。さまざまな構成で複数のテストを実行しており、それぞれにさまざまな種類のデータを含む複数のデータ ポイントがあります。保存して分析したいデータ ポイントの 1 つは共分散です。私が扱っているデータの量は非常に膨大なので、データベースを使用することで物事を整理してアクセスできるようになることを願っています。目標は、このすべてのデータを保存し、データから引き出すデータ分析および視覚化ツールを作成することです。共分散の場合、マハラノビス距離、トレース、時間伝搬固有値などを計算しています。私はすでにこれらのツールをたくさん持っていますが、現在それらは多くの異なるログ ファイルから取得しており、一般的に混乱しています。