Методология функционирования баз данных
Речь пойдет прежде всего о функционировании операционных БД в рамках СУБД.
Независимо от класса БД здесь приходится решать проблемы, к которым относятся обеспечение одно- и многопользовательского функционирования, защита данных, обеспечение целостности, восстановление данных после сбоя в БД.
В централизованных однопользовательских БД функционирование обеспечивается так называемыми транзакциями, в результате выполнения которых данные в БД либо обновляются (фиксация), либо остаются прежними (откат). Для операционных БД (СУБД) характерны так называемые короткие транзакции с длительностью в микро- и миллисекунды. Хранилища данных должны работать при длительных (часы) транзакциях. В случае многопользовательского режима дополнительно возникает необходимость одновременного доступа нескольких пользователей к одним и тем же данным, что чаще всего достигается блокировкой данных.
Защита данных от несанкционированного доступа осуществляется либо запретом доступа (пароль), либо разрешением на доступ, что особенно легко обеспечить с помощью языка программирования SQL. Обеспечение целостности определяется специальными программами, получившими название триггеры. Они реализуют различного рода ограничения. Например, для поля Пол программа ограничивает задание только значений "муж" и "жен". Другие значения базой данных не воспринимаются.
Восстановление данных после сбоя БД определяется характером сбоя. При кратковременных сбоях БД восстанавливается сама: используются данные БД в контрольных точках и невыполненные транзакции. При длительных сбоях восстановление БД возможно лишь на основе создаваемой и периодически обновляемой резервной копии базы.
В распределенных одноранговых БД в решении перечисленных проблем возникают дополнительные сложности. Могут быть использованы распределенные транзакции. Усложняется и процедура одновременного доступа, для обеспечения которой сформированы дополнительные методы. Их суть – та или иная схема централизации управления базой данных. Особую значимость приобретают вопросы дублирования данных.
Новые трудности возникают при интегрировании в неоднородную распределенную БД ранее построенных, действующих локальных баз данных с разными моделями данных.
Решение названных проблем несколько упрощается при использовании в распределенных БД режима клиент-сервер.
Более подробно сведения о функционировании БД приведены в гл. 4 и 5.
Методология проектирования хранилищ данных
Перейдем к методологической стороне хранилищ данных. Здесь по-прежнему можно выделить процедуру создания (проектирования) и использования ХД.
Процедура использования ХД мало отличается от аналогичной процедуры в БД, поэтому ее подробно рассматривать не будем, а отметим одну особенность. В силу высоких требований к быстродействию ХД следует особое внимание обратить на оптимизацию запросов.
При создании ХД выполняются следующие работы.
1. Формируется состав итоговой информации с предельно допустимым временем отклика и предельным сроком хранения детальной информации.
2. Определяется предполагаемый набор запросов на основе детальных данных. При этом следует найти компромисс между созданием итоговой статистической информации и ее вычислениями на основе детальных данных.
3. Выбирается способ хранения данных "время" в таблицах.
4. Осуществляется выбор СУБД, который должен учесть и потребности системы OLTP. Наиболее подходящей является ООСУБД с использованием многомерной модели данных MOLAP. Определяются размерности модели данных.
В то же время можно использовать и реляционную СУБД с применением разновидности ROLAP. Следует выбрать схему ("звезда" или "снежинка"). Тогда полезно построить таблицу фактов и сопровождающие ее справочные таблицы с минимальным изменением ключей в них. При использовании схемы "звезда" следует провести денормализацию.
5. Определяются потребности в дополнительных данных, отсутствующих в OLTP, и удаляются ненужные, лишние столбцы в детальных данных.