Лабораторная
работа №6. Создание
модели ХД на основе корпоративной модели данных.
Задачи:
·
Знать,
что такое корпоративная
модель данных;
·
Импортировать
таблицы из внешней
базы данных (файл exttable.pdm);
·
Переносить
внешние колонки в колонки таблиц модели ХД;
·
Определять
внешние ключи таблиц;
·
Определять
домены и типы данных колонок;
·
Создавать
взаимосвязи между таблицами модели ХД.
Ядром любого ХД
является его модель данных. Без модели
данных будет очень сложно организовать данные в ХД. Поэтому разработчики ХД
должны потратить время и силы на разработку такой модели. Разработка модели ХД
ложится на плечи проектировщика ХД.
По сравнению с проектированием OLTP-систем, методика
проектирования ХД имеет ряд отличительных особенностей, связанных с ориентацией
структур данных хранилища на решение задач анализа и информационной поддержки
процесса принятия решений. Модель данных ХД должна обеспечивать
эффективное решение именно этих задач.
·
Отправной
точкой в проектировании ХД может служить корпоративная модель
данных, которая создается в процессе проектирования OLTP систем
организации. При проектировании корпоративной модели данных,
обычно, предпринимается попытка создать такую структуру данных, которая бы
собрала и синтезировала в себе все информационные потребности организации.
·
На
первом этапе проектировщик ХД может начать проектирование ХД с решения задачи
преобразования корпоративной
модели данных в модель ХД.
Ядром любого ХД
является его модель данных. Без модели
данных будет очень сложно организовать данные в ХД. Поэтому разработчики ХД
должны потратить время и силы на разработку такой модели. Разработка модели ХД
ложится на плечи проектировщика ХД.
По сравнению с проектированием OLTP-систем, методика
проектирования ХД имеет ряд отличительных особенностей, связанных с ориентацией
структур данных хранилища на решение задач анализа и информационной поддержки
процесса принятия решений. Модель данных ХД должна обеспечивать
эффективное решение именно этих задач.
·
Под
корпоративной моделью данных понимают многоуровневое, структурированное
описание предметных областей и их структур данных организации, бизнес-процессов
и бизнес - процедур, потоков данных, принятых в организации, диаграмм
состояний, матриц "данные-процесс" и других модельных представлений,
которые используются в деятельности организации. Таким образом, в широком
смысле слова, корпоративная
модель данных представляет совокупность моделей различного уровня,
которые характеризуют (моделируют на некотором абстрактном уровне) деятельность
организации, т.е. содержание корпоративной модели напрямую зависит от того,
какие модельные конструкции были включены в нее в данной организации.
·
Импортировать
таблицы из внешней
базы данных (файл exttable.pdm);
·
Выбрать
данные данных корпоративной модели, которые следует хранить в ХД.
·
Исследовать
временные зависимости данных и, если необходимо, добавить элемента времени в
ключи сущностей ХД.
·
Добавить
в модель производные элементы данных.
·
Преобразовать
взаимосвязей между данными.
·
Определить
уровень структуризации (детализуемости) данных в ХД.
·
Объединить
данные из таблиц корпоративной
модели данных в таблицах выбранной схемы ХД.
Допустим, что корпоративная модель данных разработана в
организации и документирована. Какие действия должен выполнить проектировщик
ХД, чтобы преобразовать ее в модель ХД?
Как правило, на
основе корпоративной модели данных разрабатываются
ХД для информационной поддержки процесса принятия
решений, т.е. такие ХД составляют фундамент систем поддержки принятия решений (DSS).
С этой точки зрения основным вопросом, на который проектировщиков ХД для таких
систем должен дать ответ, - какие данные (атрибуты
сущностей) корпоративной модели данных следует
сохранить в модели ХД, а какие не сохранять.
После отбора данных
для модели ХД проектировщик ХД должен рассмотреть вопрос о временных
зависимостях в отобранных данных. Это связано с тем, что ХД для СППР обычно хранят временные ряды, отражающие
изменение значений атрибутов во времени.
Поскольку объемы
сохраняемых данных в ХД очень велики, то проектировщик должен решить вопрос
хранить или нет в ХД производные атрибуты
(или вычисляемые поля). Сохранение в ХД вычисленных значений позволит увеличить производительностьобработки запросов.
После того как
проектировщик ХД рассмотрел сущности и их атрибуты, он должен обратить свое
внимание на взаимосвязи между данными и решить вопрос о том, какие взаимосвязи
между данными корпоративной модели следует перенести в модель ХД.
Следующий вопрос,
который должен решить проектировщик ХД не имеет прямого отношения к
корпоративной модели, но должен быть решен до того, как проектировщик начнет
моделировать данные по одной из
типовых схем для ХД "звезда" или
"снежинка". Это вопрос об уровне структуризации (детализации) данных
или гранулированности данных (Data granularity).
Напомним, что уровень структуризации данных - это степень детализации хранимых
данных, оптимальный с точки зрения решения информационно-аналитических задач в
рамках предметной области ХД.
Теперь проектировщик
ХД может приступить к формированию схемы ХД типа "звезда"
из таблиц корпоративной
·
Создадим
новую модель ХД;
·
Выберите
пункт меню File->Open и диалоговом окне "Открыть" выберите exttable.pdm;
·
Переименуем
таблицы внешней
базы данных, добавив префикс dw1.
·
Создадимтаблицыизмерений Time, Product, Customer, Employee;
·
Создадим
таблицу фактов Sales.
·
Таким
образом мы получили эскиз схемы "звезда".
·
Теперь
проектировщик ХД может переносить колонки корпоративной модели
данных, представленной как физическая модель
данных, в таблицы модели ХД.
·
Выберем
таблицу измерений модели ХД TIME.
·
Откроем
диалоговое окно Table Properties (двойной щелчок мыши на таблице).
·
Откроем
закладку Columns.
·
Щелкнем
мышью на кнопке Add New Column. Появится диалоговое окно Selection
·
Перейдем
к колонкам таблицы DW1_FIN_DATA, выберем колонки Year
и Quarter и щелкнем мышью по кнопке ОК.
·
Закроем
открытые диалоговые окна. В таблице TIME появятся две колонки. Отметим, что тип
этих колонок такой же, как в таблице DW1_FIN_DATA.
·
Самостоятельно
добавить:
o
в
таблицу Sales колонку Amount
из таблицы DW1_FIN_DATA и колонку Quantity из
таблицы DW1_SALES_ORDER_ITEMS;
o
втаблицу CUSTOMER колонки Id, fname, lname, state, Company_name изтаблицы DW1_ CUSTOMER;
o
втаблицу PRODUCT колонки Id, name, size, unit_price изтаблицы DW1_PRODUCT;
o
втаблицу EMPLOYEE колонки emp_id, emp_fname,
emp_lname, city, state изтаблицы DW1_ EMPLOYEE.
·
Проектировщик
ХД может добавлять новые колонки, модифицировать уже добавленные, изменять типы
данных, назначать ключевые колонки.
·
В
таблицу измерений Time добавим колонку time_id, первичный ключ целочисленного типа, у колонки year изменим тип на integer.
·
Изменим
свойства представления модели, чтобы видеть ограничения not
null.
·
Самостоятельно:
o
Для
таблицы Product, изменим имя колонки id на prod_id, чтобы избежать
конфликтов имен с другими таблицами и определим ее, как первичный ключ.
o
Для таблица Customer
переименуем колонку id на Cust_id,
установим для нее признак первичного ключа, переименуем company_name
на company.
o
Для
таблицы Employee колонку Emp_id
установим как первичный ключ.
·
Проектировщик
ХД может установить взаимосвязи между таблицами модели ХД.
·
Для
этого выберите на палитре инструментов элементт reference. Щелкните мышью на Sales
и перетащите курсор на Product. Вы создали связь. При
этом первичный ключ Product автоматически мигрировал
в Sales как внешний ключ.
·
Аналогично
поступим для таблиц Time и Employee,
а связь между Customer и Sales
установим другим способом далее.
·
Мы
научились на основе корпоративной
модели данных создавать модель ХД, используя:
o
Импорт
таблиц из внешней
базы данных;
o
Перенос
внешних колонок в колонки таблиц модели ХД;
o
Изменение
свойств колонок таблиц ХД;
o
Создание
взаимосвязей между таблицами модели ХД.
Контрольные вопросы
1.
Что
такое корпоративная модель?
2.
Как
производиться импорт данных из внешней базы данных?
3.
Как
производиться изменение свойств колонок таблиц ХД?