Схема оперативной базы данных до схемы витрины данных, сокращение таблицы? - PullRequest
0 голосов
/ 15 мая 2011

Я начинаю изучать службы SQL Server Analysis Services и прохожу учебный курс , а также Developer Training Kit . В обоих случаях я нахожу предположения о том, что количество таблиц, используемых в базе данных OLAP (в идеале, звездообразная схема), значительно меньше, чем в рабочей базе данных OLTP.

Из учебного комплекта:

Мы использовали методологию измерения данных для разработки схемы витрины данных. Из примерно 200 таблиц в оперативной базе данных схема витрины данных содержала около 10 таблиц измерений и 2 таблицы фактов.

Из того, что я понимаю, операционные базы данных обычно (несколько) нормализованы, а схемы витрин данных сильно денормализованы. Я также считаю, что денормализация данных обычно включает добавление большего количества таблиц, а не меньше.

Я не вижу, как вы можете перейти от 200 таблиц к 12, если только вам не нужно отчитываться только по подмножеству данных. И если вам нужно только сообщать о подмножестве данных, почему вы не можете просто использовать соответствующие таблицы в оперативной базе данных (если нет значительного прироста производительности при использовании денормализованной звездообразной схемы)?

1 Ответ

5 голосов
/ 15 мая 2011

Денормализация является полной противоположностью нормализации базы данных. В нормализованной базе данных все разбивается на разные таблицы для поддержки одновременной записи данных. Это также имеет побочный эффект генерации любого заданного подмножества данных ровно один раз (в идеальной структуре данных третьей нормальной формы). Недостатком нормализации является то, что чтение занимает намного больше времени из-за того факта, что данные разбросаны, и нам нужно снова объединить таблицы, чтобы разобраться в этом (объединения - довольно дорогие операции).

Когда мы денормализуем, мы берем данные из нескольких таблиц и объединяем их в одну таблицу. Итак, теперь у нас есть повторяющиеся данные в этих таблицах. Повторяющиеся данные полезны, потому что нам больше не нужно объединяться с какой-либо другой таблицей, чтобы получить их. Запись в хранилище данных, как правило, является плохой идеей, потому что это будет означать много записей для изменения всех данных в таблице, тогда как в нормализованной базе данных потребуется только одна запись.

OLTP означает «Транзакционная обработка онлайн», обратите внимание на слово «Транзакционный». Транзакции являются операциями записи, и модель OLTP оптимизирована для этого. OLAP означает «Аналитическая обработка в Интернете», ключевое слово «Анализ» означает большое количество операций чтения.

Переход от 200 таблиц к 12 в процессе OLTP-OLAP удивительным образом сохранит почти все данные в базе данных OLTP, а также многое другое. OLTP не может записывать все изменения с течением времени, но OLAP специализируется на этом, поэтому вы получаете все свои исторические данные, а также текущие данные.

Схема «звезда», вероятно, наиболее распространена для хранилищ данных OLAP, схема «снежинка» также довольно распространена. Вы должны узнать об обоих и о том, как правильно их использовать. Это просто еще один замечательный инструмент в вашем арсенале.

Эти две книги от IBM ответят на ваши вопросы гораздо более подробно, и они являются бесплатными PDF-файлами.

http://www.redbooks.ibm.com/abstracts/sg247138.html
http://www.redbooks.ibm.com/abstracts/sg242238.html

...