Как создать таблицу фактов истории?

У меня есть несколько сущностей в моем хранилище данных:

  1. Person - с атрибутами personId, dateFrom, dateTo и другими их можно изменить, например фамилия, дата рождения и так далее - медленно меняющееся измерение

  2. Документ - documentId, number, type

  3. Address - addressId, city, street, house, flat

Отношения между (Person и документ) - "один ко многим" и (человек и адрес) - "многие ко многим".

Моя цель - создать таблицу фактов истории, которая может ответить нам на следующие вопросы:

  1. Какие люди с какими документами жили по определенному адресу в определенную дату?

2, Какую историю жителей имеет определенный адрес в определенный интервал времени?

Это не только то, что разработано DW, но я думаю, что это самая сложная вещь в дизайне DW.

Например, мисс Браун с personId = 1, документы с documentId = 1 и documentId = 2 находились по адресу с addressId = 1 с 01.01.2005 по 02.02.2010, а затем перемещены на addressId = 2. где проживал с 02.03.2010 по текущую дату (NULL?). Но она сменила фамилию на миссис Грин с 04.05.2006 и свой первый документ с documentId = 1 на documentId = 3 с 06.07.2007. Г-н Блэк с personId = 2, documentId = 4 проживал по адресу addressId = 1 с 02.03.2010 г. по настоящее время.

Ожидаемый результат по нашему запросу для вопроса 2, где addressId = 1, а временной интервал с 01.01.2000 по настоящее время, должен быть таким:

Строки:

last_name="Brown", documentId=1, dateFrom=01/01/2005, dateTo=04/04/2006

last_name="Brown", documentId=2, dateFrom=01/01/2005, dateTo=04/04/2006

last_name="Green", documentId=1, dateFrom=04/05/2006, dateTo=06/06/2007

last_name="Green", documentId=2, dateFrom=04/05/2006, dateTo=06/06/2007

last_name="Green", documentId=2, dateFrom=06/07/2007, dateTo=02/01/2010

last_name="Green", documentId=3, dateFrom=06/07/2007, dateTo=02/01/2010

last_name="Black", documentId=4, dateFrom=02/03/2010, dateTo=NULL

У меня возникла идея создать таблицу фактов с составным ключом (personId, documentId, addressId, dateFrom), но я понятия не имею, как загрузить эту таблицу, а затем получить ожидаемый результат с этой структурой.

Буду рад любой помощи!

11
задан Sathyajith Bhat 22 May 2011 в 06:07
поделиться