Каждый раз, когда нужно выбрать структуру базы данных, возникает вопрос, какой же самый оптимальный под те или иные задачи. Я не эксперт по базам данных, но хочу сегодня рассмотреть два самых популярных метода организации БД.
Все СУБД можно разделить на две группы: OLAP (аналитическая обработка в реальном времени) и OLTP (обработка транзакций в реальном времени).
OLAP и OLTP: в чем разница?
Хорошим тоном будет сначала рассмотреть каждую структуру по отдельности.
Термин "OLAP" неразрывно связан с термином "хранилище данных" (Data Warehouse). Приведем определение, сформулированное "отцом-основателем" хранилищ данных Биллом Инмоном: "Хранилище данных - это предметно-ориентированное, привязанное ко времени и неизменяемое собрание данных для поддержки процесса принятия управляющих решений".
OLAP (OnLine Analytical Processing) переводится как обработка данных в реальном времени. Это широкий термин, который можно рассмотреть с двух сторон: с технической и с точки зрения бизнеса. Для самого общего понимания можно просто прочитать его с конца:
3. Processing Обрабатываются некие исходные данные…
2. Analytical : … чтобы получить какие-то аналитические отчеты или новые знания…
1. OnLine : … в реальном времени, практически без задержек на обработку.
На практике это выглядит так:
OLAP предоставляет удобные быстродействующие средства доступа, просмотра и анализа деловой информации. Пользователь получает естественную, интуитивно понятную модель данных, организуя их в виде многомерных кубов (Cubes). Осями многомерной системы координат служат основные атрибуты анализируемого бизнес-процесса. Например, для продаж это могут быть товар, регион, тип покупателя. В качестве одного из измерений используется время. На пересечениях осей - измерений (Dimensions) - находятся данные, количественно характеризующие процесс - меры (Measures). Это могут быть объемы продаж в штуках или в денежном выражении, остатки на складе, издержки и т. п. Пользователь, анализирующий информацию, может "разрезать" куб по разным направлениям, получать сводные (например, по годам) или, наоборот, детальные (по неделям) сведения и осуществлять прочие манипуляции, которые ему придут в голову в процессе анализа.
Термин "OLTP" (On-line Transaction Processing) - это информационные системы, которые управляют работой транзакционно-ориентированных приложений.
Термин «транзакция» может иметь два разных значения, оба из которых могут применяться:
В сфере IT — обозначает "атомарную операцию", изменение состояния транзакционной базы данных;
В сфере бизнеса или финансов — обозначает элементарные бизнес-события (например, снятие денег клиентом в банкомате).
Одно из главных свойств OLTP-систем — немедленная реакция на запросы пользователей. Онлайн-приложения для обработки транзакций должны обладать высокой пропускной способностью и интенсивно использоваться одновременно сотнями клиентов.
Основными целевыми характеристиками приложений OLTP являются скорость, управление доступом и возможность восстановления. Сокращение бумажного оборота и более быстрый и точный прогноз доходов и расходов, являются примерами того, как OLTP-системы упрощает работу предприятий.
Типичными примерами приложений OLTP является ввод заказов (например, на железнодорожные или авиа- билеты), розничные продажи, системы финансовых транзакций (self service).
Если кратко...
OLTP (On-line Transaction Processing) участвует в работе той или иной системы. OLTP характеризуется большим количеством коротких on-line транзакций (INSERT, UPDATE, DELETE). Основной упор для OLTP систем ставится на очень быструю обработку запросов, поддержание целостности данных в мульти-доступных средах и эффективность, измеряемую количеством транзакций в секунду. В OLTP базе данных есть подробные и актуальные данные, а схема, используемая для хранения транзакционных баз данных - это модель сущности (обычно 3NF).
OLAP (On-line Analytical Processing) занимается историческими данными или Archival Data. OLAP характеризуется относительно небольшим объемом транзакций. Запросы часто бывают очень сложными и предполагают агрегации. Для OLAP систем время отклика является мерой эффективности. OLAP приложения широко используются приемы Data Mining.Некоторым запросом необходимо получить доступ к большому объему данных в записях Management наподобие того, какой была прибыль вашей компании в прошлом году.
Я не эксперт по базам данных, но если делать итоговый вывод, то получается:
- если вы делаете аналитику данных - используйте OLAP
- если вы делаете транзакции (например: e-commerce) используйте OLTP