Хранилище данных
Храни́лище да́нных () — предметно-ориентированная информационная база данных, специально разработанная и предназначенная для подготовки отчётов и бизнес-анализа с целью поддержки принятия решений в организации. Строится на базе систем управления базами данных и систем поддержки принятия решений. Данные, поступающие в хранилище данных, как правило, доступны только для чтения.

Данные из OLTP-системы копируются в хранилище данных таким образом, чтобы при построении отчётов и OLAP-анализе не использовались ресурсы транзакционной системы и не нарушалась её стабильность. Есть два варианта обновления данных в хранилище:
 полное обновление данных в хранилище. Сначала старые данные удаляются, потом происходит загрузка новых данных. Процесс происходит с определённой периодичностью, при этом актуальность данных может несколько отставать от OLTP-системы;
 инкрементальное обновление — обновляются только те данные, которые изменились в OLTP-системе.

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

Дизайн хранилищ данных 
Существуют два основных архитектурных направления — нормализованные хранилища данных и хранилища с измерениями.

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

Хранилища с измерениями используют схему «звезда» или схему «снежинка». При этом в центре «звезды» находятся данные (таблица фактов), а измерения образуют лучи звезды. Различные таблицы фактов совместно используют таблицы измерений, что значительно облегчает операции объединения данных из нескольких предметных таблиц фактов (пример — факты продаж и поставок товара). Таблицы данных и соответствующие измерения образуют архитектуру «шина». Измерения часто создаются в третьей нормальной форме, в том числе, для протоколирования изменения в измерениях. Основным достоинством хранилищ с измерениями является простота и понятность для разработчиков и пользователей, также, благодаря более эффективному хранению данных и формализованным измерениям, облегчается и ускоряется доступ к данным, особенно при сложных анализах. Основным недостатком является более сложные процедуры подготовки и загрузки данных, а также управление и изменение измерений данных.

При достаточно большом объеме данных схемы «звезда» и «снежинка» также дают снижение производительности при соединениях с измерениями.

Процессы работы с данными 
Источниками данных могут быть:
 Традиционные системы регистрации операций
 Отдельные документы
 Наборы данных

Операции с данными:
 Извлечение — перемещение информации от источников данных в отдельную БД, приведение их к единому формату.
 Преобразование — подготовка информации к хранению в оптимальной форме для реализации запроса, необходимого для принятия решений.
 Загрузка — помещение данных в хранилище, производится атомарно, путём добавления новых фактов или корректировкой существующих.
 Анализ — OLAP, Data Mining, сводные отчёты.
 Представление результатов анализа.

Вся эта информация используется в словаре метаданных. В словарь метаданных автоматически включаются словари источников данных. Здесь же описаны форматы данных для их последующего согласования, периодичность пополнения данных, согласованность во времени. Задача словаря метаданных состоит в том, чтобы освободить разработчика от необходимости стандартизировать источники данных. Создание хранилищ данных не должно противоречить действующим системам сбора и обработки информации. Специальные компоненты словарей должны обеспечивать своевременное извлечение данных из них и обеспечить преобразование данных к единому формату на основе словаря метаданных.

Логическая структура данных хранилища данных существенно отличается от структуры данных источников данных. Для разработки эффективного процесса преобразования необходима хорошо проработанная модель корпоративных данных и модель технологии принятия решений. Данные для пользователя удобно представлять в многоразмерных БД, где в качестве измерений могут выступать время, цена или географический регион.

Кроме извлечения данных из БД, для принятия решений важен процесс извлечения знаний, в соответствии с информационными потребностями пользователя. С точки зрения пользователя в процессе извлечения знаний из БД должны решаться следующие преобразования: данные → информация → знания → полученные решения.

См. также 
 Business Intelligence
 Реляционная база данных
 Витрина данных
 OLAP
 ETL

Хранилище данных