ソースシステムは、欠席イベントを報告することにより、学区への生徒の出席を追跡します。特定の日の出席は、学校のカレンダー、学生の登録、欠席の3つのデータセットを調べることで判断できます。
特定の学校の日に、出席している登録済みの学生の数は通常、欠席している数よりもはるかに多いため、このアプローチでは、出席を追跡するために保存されるレコードの数が大幅に減少します。
私は、次元モデルで毎日の出席を表す適切な方法を決定しようとしています。最も明白な方法は、生徒1人あたりの学校日あたりの粒度と、出席と欠席の両方の理由の値を持つ出席ディメンションを使用して、事実のないテーブルを作成することです。これはOLAPでの作業は非常に簡単ですが、欠点はファクトテーブルのサイズです。
たとえば、30,000人の学生と188授業日については、年間約50万件のレコードがあることを意味します(これが問題になるほど大きくないと思われる場合は、出席を1回ではなく期間ごとに報告する必要がある例を検討してください。日)。これを、欠勤のみを記録し、その数がかなり少ないファクトテーブルと比較してください。ただし、これを行うと、毎日の出席の事実を集約するキューブを作成する方法がわかりません。
使用されている特定のOLAPテクノロジは、SQL Server Analysis Services 2008 R2です。何か考えはありますか?
これは人事システムの一般的な設計パターンであるため、このタイプのアプローチにはいくらかの前例があります。
SSASで使用される形式では、このタイプのデータが非常に効率的に格納されるため、データ量は大きな問題にはなりません。 AS2000を使用するかなり古いハードウェアで行数が約3億のHRキューブでこれが行われるのを見てきました。最新のハードウェア上の2008R2には、問題はないはずです。