1

A source system tracks student attendance for a school district by reporting absence events. Attendance on any particular day can be determined by examining three datasets: school calendar, student enrollment, and absence.

On any given school day, the number of enrolled students in attendance is usually much larger than the number that are absent, so this approach reduces the number of records stored to track attendance significantly.

I am trying to determine the proper way to represent daily attendance in a dimensional model. The most obvious way is to create a factless table with a grain per school day per student, and an attendance dimension that has values for both attendance and absence reasons. This is quite straightforward to work with OLAP, but the downside is the size of the fact table.

For example, for 30,000 students and 188 school days means that there are approximately 0.5 million records per year (if this doesn't seem large enough to be an issue, then consider an example in which attendance must be reported on per period rather than per day). Contrast this to a fact table that records only absences and the number is considerably smaller. However, if I do this, then I am not sure how to build cubes that aggregate daily attendance facts.

The specific OLAP technology being used is SQL Server Analysis Services 2008 R2. Any thoughts?

4

1 に答える 1

1

2 つのファクト テーブルを使用したとします。1 つは現在の期間 (たとえば先月) 用で、もう 1 つは履歴データ (欠席のみを記録する) 用です。ユーザー (たとえば、教師) は、2 番目の特定の学生の出席に関する情報を必要としないと思います。 5 か月前の日のクラスですが、最後の週/月についてはこの情報が必要になる場合があります。

于 2012-07-26T22:14:20.137 に答える