Корпоративная модель данных. Корпоративные базы данных. Корпоративная модель данных включает в себя. Реляционная модель данных. Корпоративные информационные системы. офисные информационные системы Принципы создания единого корпоративного хранилища

22.04.2021 Новости

В этой статье речь пойдет об архитектуре хранилищ данных. Чем руководствоваться при ее построении, какие подходы работают – и почему.

«Сказка ложь – да в ней намек…»

Посадил дед… хранилище. И выросло хранилище большое-пребольшое. Вот только толком не знал, как оно устроено. И затеял дед ревью. Позвал дед бабку, внучку, кота и мышку на семейный совет. И молвит такую тему: «Выросло у нас хранилище. Данные со всех систем стекаются, таблиц видимо-невидимо. Пользователи отчеты свои стряпают. Вроде бы все хорошо – жить да жить. Да только одна печаль – никто не знает, как оно устроено. Дисков требует видимо-невидимо – не напасешься! А тут еще пользователи ко мне ходить повадились с жалобами разными: то отчет зависает, то данные устаревшие. А то и совсем беда – приходим мы с отчетами к царю-батюшке, а цифры-то между собой не сходятся. Не ровен час – разгневается царь – не сносить тогда головы – ни мне, ни вам. Вот решил я вас собрать и посоветоваться: что делать-то будем?».

Окинул он своим взором собрание и спрашивает:
- Вот ты, бабка знаешь, как оно устроено наше хранилище?
- Нет, дед, не знаю. Да и откуда мне знать-то? Вон там какие бравые хлопцы его охраняют! Одни усищи какие! Не подступишься. Я зашла как-то их проведать, пирожков напекла. А они пирожки-то съели, усы вытерли и говорят: «Да чего ты пришла, бабка? Какое тебе хранилище? Ты скажи – какой тебе отчет нужен – мы тебе и сделаем! Ты главное пирожки почаще приноси! Уж больно они у тебя вкусные.»
- А ты, внученька любимая, знаешь ли как устроено наше хранилище?
- Нет, деда, не знаю. Дали мне как-то доступ к нему. Подключилась я, гляжу - а там таблиц – видимо-невидимо. И в схемы разные упрятаны. Глаза разбегаются…. Я сперва растерялась. А потом пригляделась – какие-то из них пустые, другие заполнены, да лишь наполовину. А еще данные-то, похоже, повторяются. Немудрено, что дисков не напасешься, с такой избыточностью-то!
- Ну а ты, кот, что скажешь про хранилище-то наше? Есть в нем что-то хорошее?
- Да как не сказать, дед – скажу. Я по внучкиной просьбе пытался в отдельной схемке пилотик смастырить – витринку маленькую. Дабы понять, какая торговля для нашего государства выгодна – какие продукты хорошо у купцов идут, те дань платят – казну пополняют. А какие – из рук вон плохо. И стал я из хранилища сего данные себе подбирать. Фактов насобирал. И стал пытаться сопоставить их супротив продуктов. И что же, дед, я увидел – продукты-то они вроде бы и одинаковые, а смотришь в таблички – разные! Принялся я их тогда гребешком внучкиным причесывать. Чесал-чесал – и привел к некому единообразию, глаз ласкающему. Но рано я возрадовался – на другой день запустил я свои скриптики чудесные данные в витринке обновить – а у меня все и разъехалось! «Как так?» - думаю, - внучка-то поди расстроится – сегодня надо было бы наш пилотик министру показывать. Как же мы пойдем-то – с такими данными?
- Да, печальные сказки, кот, рассказываешь. Ну а ты, мышка-норушка, неужто не пыталась разузнать про хранилище? Ты у нас девушка бойкая, юркая, общительная! Что ты нам поведаешь?
- Да как, дедушка, не пытаться – конечно, я мышка тихая, да проворная. Попросила как-то внучка кота модель данных нашего государственного хранилища раздобыть. А кот, конечно, ко мне пришел – на тебя, говорит, мышка, вся надежда! Ну что доброе дело хорошим людям (и котам) не сделать? Пошла я в замок, где начальник хранилища модель данных в сейфе прячет. И затаилась. Дождалась, когда он ту модель из сейфа-то вынет. Только он за кофе вышел – я прыг на стол. Гляжу на модель – ничего понять не могу! Как так? Не узнаю наше хранилище! У нас таблиц тысячи несметные, данных – потоки неуемные! А тут – все стройно да красиво… Посмотрел он на сию модель – и обратно в сейф убрал.
- Да, уж совсем странные вещи, ты нам, мышка, поведала.
Задумался крепко дед.
- Что делать-то будем, други мои? Ведь с таким-то хранилищем долго не проживешь… Пользователи вон скоро – совсем терпение потеряют.

Что бы ни решил наш дед из сказки – строить новое хранилище или пытаться реанимировать существующее – надо сделать выводы, прежде чем снова «засучивать рукава».
Отложим в сторону организационные аспекты – такие как опасность сосредоточения экспертизы в некой узкой закрытой группе, отсутствие процессов контроля и обеспечения прозрачности архитектуры систем, использующихся на предприятии и т.п.
Сегодня хотелось бы сосредоточиться на построении архитектуры конкретной системы (или группы систем) - хранилищ данных. Что нужно держать в фокусе внимания в первую очередь, когда в организации затевается построение такой сложной и недешевой системы как хранилище.

Разбор полетов

Никто из нас, работая над созданием и развитием какой-либо системы, не хочет, чтобы это оказалась «времянка», либо решение, которое «отомрет» через год или два, т.к. окажется не в силах отвечать требованиям и ожиданиям со стороны Заказчиков и Бизнеса. Какой бы сильный крен в сторону «гибких методологий» не наблюдался нынче, человеку гораздо приятнее чувствовать себя «мастером», который делает скрипки, нежели ремесленником, который строгает палочки для одноразовых барабанов.
Наше намерение звучит естественно: делать системы, добротные и качественные, которые не потребуют от нас регулярных «ночных бдений с напильником», за которые нам не будет стыдно перед конечными пользователями и которые не будут выглядеть «черным ящиком» для всех «непосвященных» последователей.

Для начала накидаем список типичных проблем, c которыми мы регулярно сталкиваемся, работая с хранилищами. Просто запишем то, что есть – пока без попытки упорядочить и формализовать.

  1. В принципе, у нас неплохое хранилище: если не трогать – то все работает. Правда, как только требуется внести изменение – начинаются «локальные обвалы».
  2. Данные загружаются ежедневно, по регламенту, в рамках одного большого процесса, в течение 8ч. И нас это устраивает. Но если вдруг возникает сбой – это требует ручного вмешательства. И дальше все может работать непредсказуемо долго, т.к. потребуются участие человека в процессе.
  3. Накатили релиз – жди проблем.
  4. Какой-то один источник не смог вовремя отдать данные – ждут все процессы.
  5. Целостность данных контролирует база данных – поэтому наши процессы падают с ошибкой, когда она нарушается.
  6. У нас очень большое хранилище – 2000 таблиц в одной общей схеме. И еще 3000 в множестве других схем. Мы уже слабо представляем, как они устроены и по какому поводу появились. Поэтому, нам бывает сложно что-то переиспользовать. И приходится многие задачи решать заново. Поскольку, так проще и быстрее (чем разбираться «в чужом коде»). В итоге имеем расхождения и дублирующийся функционал.
  7. Мы ожидаем, что источник будет давать качественные данные. Но оказывается, что это не так. В итоге мы много времени тратим на выверку своих финальных отчетов. И весьма в этом преуспели. У нас даже есть отлаженный процесс. Правда, это занимает время. Но пользователи привыкли…
  8. Пользователь не всегда доверяет нашим отчетам и требует обоснования той или иной цифры. В каких-то случаях он прав, а в каких-то нет. Но нам очень сложно их обосновывать, т.к. у нас не предусмотрено средств «сквозного анализа» (или data lineage).
  9. Мы могли бы привлечь дополнительных разработчиков. Но у нас проблема – как нам включить их в работу? Как наиболее эффективно распараллелить работы?
  10. Как развивать систему постепенно, не уходя в разработку «ядра системы» на целый год?
  11. Хранилище данных ассоциируется с корпоративной моделью. Но мы точно знаем (видели в банке XYZ), что строить модель можно бесконечно долго (в банке XYZ шесть месяцев ходили и обсуждали бизнес-сущности, без какого-либо движения). А зачем она вообще? Или может, лучше без нее, если с ней столько проблем? Может, ее вообще как-то сгенерировать?
  12. Мы решили вести модель. Но как системно развивать модель данных хранилища? Нужны ли нам «правила игры» и какие они могут быть? Что нам это даст? А что, если мы ошибемся с моделью?
  13. Должны ли мы сохранять данные, или историю их изменений, если «бизнесу они не нужны»? Не хотелось бы «хранить мусор» и усложнять использование этих данных для реальных задач. Должно ли хранилище сохранят историю? Какая она бывает? Как хранилище работает со временем?
  14. Нужно ли пытаться унифицировать данные на хранилище, если у нас есть система управления НСИ? Если есть МДМ, означает ли это, что теперь вся проблема с мастер-данными решена?
  15. У нас скоро ожидается замена ключевых учетных систем. Должно ли хранилище данных быть готовым к смене источника? Как этого достичь?
  16. Нужны ли нам метаданные? Что под этим будем понимать? Где именно они могут быть использованы? Как можно реализовать? Нужно ли их хранить «в одном месте»?
  17. Наши Заказчики крайне не стабильны в своих требованиях и желаниях – постоянно что-то меняется. У нас вообще бизнес- очень динамичный. Пока мы что-то делаем – это уже становится ненужным. Как нам сделать так, чтобы выдавать результат максимально быстро – как горячие пирожки?
  18. Пользователи требуют оперативности. Но мы не можем наши основные процессы загрузки запускать часто, т.к. это нагружает системы-источники (плохо сказывается на производительности) – поэтому, мы вешаем дополнительные потоки данных – которые будут забирать точечно – то, что нам нужно. Правда, получается много потоков. И часть данных мы потом выкинем. К тому же будет проблема сходимости. Но по-другому никак…
Уже получилось достаточно много. Но это не полный список – его легко дополнить и развить. Мы не будем его прятать в стол, а повесим на видном месте – держа эти вопросы в фокусе своего внимания в процессе работы.
Наша задача - выработать в итоге комплексное решение.

Антихрупкость

Глядя на наш список, можно сделать один вывод. Не сложно создать некую «базу данных для отчетности», накидать туда данных или даже построить некие регламентные процессы обновления данных. Система начинает как-то жить, появляются пользователи, а с ними обязательства и SLA, возникают новые требования, подключаются дополнительные источники, происходит изменение методологий – все это надо учитывать в процессе развития.

Через какое-то время картина следующая:
«Вот хранилище. И оно работает, если его не трогать. Проблемы возникают тогда, когда мы должны что-то менять».

К нам прилетает изменение, влияние которого мы не в силах оценить и осмыслить (поскольку не заложили таких инструментов в систему изначально) – и дабы не рисковать, мы не трогаем то, что есть, а делаем еще одну пристройку сбоку, и еще одну, и еще - превращая наше решение в трущобы, или как говорят в Латинской Америке, «фавелы», куда даже полицейские заходить боятся.
Возникает ощущение потери контроля над собственной системой, хаоса. Требуется все больше рук, чтобы поддерживать существующие процессы и решать проблемы. И изменения вносить все сложнее. Иными словами, система становится неустойчивой к стрессам, неадаптивной к изменениям. И кроме того, появляется сильная зависимость от персонажей, которые «знают фарватер», поскольку «карты» ни у кого нет.

Такое свойство объекта – разрушаться под воздействием хаоса, случайных событий и потрясений - Нассим Николас Талеб называет хрупкостью . А также вводит противоположное понятие: антихрупкость когда предмет не разрушается от стресса и случайностей, а получает от него прямую выгоду . («Антихрупкость. Как извлечь выгоду из хаоса»)
Иначе это можно назвать адаптивность или устойчивость к изменениям .

Что это означает в данном контексте? Какие есть «источники хаоса» для ИТ-систем? И что значит «извлечь выгоду из хаоса» с точки зрения ИТ архитектуры?
Первая мысль, которая приходит в голову – изменения, которые приходят извне. Что является внешним миром для системы? Для хранилища в частности. Конечно, прежде всего – изменения со стороны источников данных для хранилища:

  • изменение форматов поступающих данных;
  • замена одних систем-источников данных на другие;
  • изменение правил/платформ интеграции систем;
  • изменение трактовок данных (форматы сохраняются, меняется логика работы с данными);
  • изменение модели данных, если интеграция сделана на уровне данных (разбор журнальных файлов транзакций базы данных);
  • рост объемов данных - пока данных в системе-источнике было немного, и нагрузка была невелика – можно было забирать их когда угодно, сколь угодно тяжелым запросом, данные и нагрузка выросли – теперь есть строгие ограничения;
  • и т.д.
Изменяться могут сами системы-источники, состав информации и ее структура, тип интеграционного взаимодействия, а также сама логика работы с данными. Каждая система реализует свою модель данных и подходы работы с ними, которые отвечают целям и задачам системы. И как бы не стремились унифицировать отраслевые модели и референсные практики – все равно нюансы неизбежно будут всплывать. (Да и к тому же сам процесс отраслевой унификации, по разным причинам не сильно продвигается.)
Культура работы с корпоративными данными – наличие и контроль информационной архитектуры, единая семантическая модель, системы управления мастер-данными (МДМ) несколько облегчают задачу консолидации данных в хранилище, но не исключают ее необходимость.

Не менее критичные изменения инициируются со стороны потребителей хранилища (изменение требований):

  • ранее для построения отчета данных хватало – теперь потребовалось подключить дополнительные поля либо новый источник данных;
  • ранее реализованные методики обработки данных устарели – нужно переработать алгоритмы и все, на что это влияет;
  • ранее всех устраивало текущее значение атрибута справочника на информационной панели – теперь требуется значение, актуальное на момент возникновения анализируемого факта/ события;
  • возникло требование к глубине истории хранения данных, которого раньше не было – хранить данные не за 2 года, а за 10 лет;
  • ранее было достаточно данных по состоянию «на конец дня/ периода» - теперь нужно состояние данных «внутри дня», либо на момент определенного события (например, принятия решения по кредитной заявке – для Basel II);
  • ранее нас устраивала отчетность по данным на вчера (T-1) или позже, сейчас нам нужен T0;
  • и т.д.
И интеграционные взаимодействия с системами-источниками, и требования со стороны потребителей данных хранилища – это внешние факторы для хранилища данных: одни системы-источники сменяют другие, объемы данных растут, форматы поступающих данных меняются, пользовательские требования меняются и т.п. И все это – типовые внешние изменения, к которым наша система – наше хранилище – должно быть готово. При правильной архитектуре они не должны убить систему.

Но это еще не все.
Говоря об изменчивости, мы, прежде всего, вспоминаем внешние факторы. Ведь внутри мы можем все контролировать, нам так кажется, верно? И да, и нет. Да, большинство факторов, которые вне зоны влияния - внешние. Но есть и “внутренняя энтропия”. И именно в силу ее наличия нам иногда нужно вернуться “в точку 0”. Начать игру сначала.
В жизни мы часто склонны начинать с нуля. Почему нам это свойственно? И так ли это плохо?
Применительно к ИТ. Для самой системы – это может оказаться очень хорошо – возможность пересмотреть отдельные решения. Особенно, когда мы можем сделать это локально. Рефакторинг - процесс распутывания той «паутины», которая периодически возникает в процессе развития системы. Возврат «к началу” может быть полезен. Но имеет цену.
При грамотном управлении архитектурой эта цена снижается - и сам процесс развития системы становится более контролируемым и прозрачным. Простой пример: если соблюдается принцип модульности – можно переписать отдельный модуль, не затронув внешние интерфейсы. И этого нельзя сделать при монолитной конструкции.

Антихрупкость системы определяется архитектурой, которая в нее заложена. И именно это свойство делает ее адаптивной.
Когда мы говорим об адаптивной архитектуре – мы подразумеваем, что система способна адаптироваться к изменениям, а вовсе не то, что мы саму архитектуру постоянно изменяем. Наоборот, чем более устойчива и стабильна архитектура, чем меньше требований, которые влекут за собой ее пересмотр – тем более адаптивна система.

Гораздо более высокую цену будут иметь решения, предполагающие пересмотр всей архитектуры целиком. И для их принятия нужно иметь очень веские основания. Например, таким основанием может служить требование, которое нельзя реализовать в рамках существующей архитектуры. Тогда говорят – появилось требование, влияющее на архитектуру.
Таким образом, мы также должны знать свои «границы антихрупкости». Архитектура не разрабатывается «в вакууме» - она опирается на текущие требования, ожидания. И если ситуация принципиально меняется – мы должны понимать, что вышли за пределы текущей архитектуры – и нам нужно пересмотреть ее, выработать иное решение – и продумать пути перехода.
Например, мы заложились на то, что в хранилище нам нужны будут данные всегда на конец дня, забор данных мы будем делать ежедневно по стандартным интерфейсам систем (через набор представлений). Потом от подразделения управления рисками пришли требования о необходимости получать данные не в конце дня, а на момент принятия решения о кредитовании. Не нужно пытаться «натягивать не натягиваемое» - нужно просто признать этот факт – чем скорее, тем лучше. И начать прорабатывать подход, который позволит нам решить задачу.
Тут возникает весьма тонкая грань – если мы будем принимать во внимание только «требования в моменте» и не будем смотреть на несколько шагов вперед (и на несколько лет вперед), то мы увеличиваем риск столкнуться с влияющим на архитектуру требованием слишком поздно – и цена наших изменений будет очень высока. Смотреть чуть вперед – в границах нашего горизонта – еще никому не вредило.

Пример системы из «сказки про хранилище» - это как раз пример весьма шаткой системы, построенной на хрупких подходах к проектированию. И если так происходит – разрушение наступает довольно быстро, именно для этого класса систем.
Почему я могу так утверждать? Тема хранилищ не нова. Подходы и инженерные практики, которые были за это время выработаны, были направлены именно на это – сохранение жизнеспособности системы.
Простой пример: одна из наиболее частых причин провала проектов хранилищ «на взлете» - это попытка построить хранилище над системами-источниками, находящимися в стадии разработки, без согласования интеграционных интерфейсов – попытка забрать данные напрямую из таблиц. В итоге ушли в разработку – за это время база данных источника поменялась – и потоки загрузки в хранилище стали неработоспособны. Переделывать что-то поздно. А если еще и не подстраховались, сделав несколько слоев таблиц внутри хранилища – то все можно выкинуть и начинать заново. Это лишь один из примеров, причем один из простых.

Критерий хрупкого и антихрупкого по Талебу прост. Главный судья – время. Если система выдерживает проверку временем, и показывает свою «живучесть» и «неубиваемость» - она обладает свойством антихрупкости.
Если при проектировании системы мы будем учитывать антихрупкость как требование – то это сподвигнет нас использовать такие подходы к построению ее архитектуры, которые сделают систему более адаптивной и к «хаосу извне», и к «хаосу изнутри». И в конечном счете система будет иметь более долгий срок жизни.
Никому из нас не хочется делать «времянки». И не надо себя обманывать, что по-другому нынче нельзя. Смотреть на несколько шагов вперед – это нормально для человека в любое время, тем более в кризисное.

Что такое хранилище данных и зачем мы его строим

Статья, посвященная архитектуре хранилищ, предполагает, что читатель не только осведомлен, что это такое, но также и имеет некоторый опыт работы с подобными системами. Тем не менее я посчитала нужным это сделать – вернуться к истокам, к началу пути, т.к. именно там находится «точка опоры» развития.

Как вообще люди пришли к тому, что необходимы хранилища данных? И чем они отличаются от просто «очень большой базы данных»?
Давным-давно, когда на свете жили просто «системы обработки бизнес-данных», не было разделения ИТ-систем на такие классы как фронтальные oltp-системы, бэк-офисные dss, системы обработки текстовых данных, хранилища данных и т.д.
Это было то время, когда Майклом Стоунбрейкером была создана первая реляционная СУБД Ingres.
И это было время, когда эра персональных компьютеров вихрем ворвалась в компьютерную индустрию и навсегда перевернула все представления ИТ сообщества того времени.

Тогда можно было легко встретить корпоративные приложения, написанные на базе СУБД класса desktop – таких как Clipper, dBase и FoxPro. А рынок клиент-серверных приложений и СУБД только набирал обороты. Одна за другой появлялись сервера баз данных, которые надолго займут свою нишу в ИТ-пространстве – Oracle, DB2 и т.д.
И был распространен термин «приложение баз данных». Что включало в себя такое приложение? Упрощенно - некие формы ввода, через которые пользователи могли одновременно вводить информацию, некие расчеты, которые запускались «по кнопке» или «по расписанию», а также какие-то отчеты, которые можно было увидеть на экране либо сохранить в виде файлов и отправить на печать.
«Ничего особенного – обычное приложение, только есть база данных,» - так заметил один из моих наставников на раннем этапе трудового пути. «Так ли ничего особенного?» - подумала тогда я.

Если приглядеться – то особенности-то все же есть. По мере роста пользователей, объема поступающей информации, по мере возрастания нагрузки на систему – ее разработчики-проектировщики, чтобы сохранить быстродействие на приемлемом уровне идут на некие «ухищрения». Самое первое – это разделение монолитной «системы обработки бизнес-данных» на приложение учета, которое поддерживает работу пользователей в режиме on-line, и отдельно выделяют приложение для batch-обработки данных и отчетности. Каждое из этих приложений имеет свою базу данных и даже размещается на отдельном экземпляре сервера БД, с разными настройками под разный характер нагрузки – OLTP и DSS. И между ними выстраиваются потоки данных.

Это все? Казалось бы – проблема решена. Что же происходит далее?
А далее компании растут, их информационные потребности множатся. Растет и число взаимодействий с внешним миром. И в итоге есть не одно большое приложение, которое полностью автоматизирует все процессы, а несколько разных, от разных производителей. Число систем, порождающих информацию – систем-источников данных в компании увеличивается. И рано или поздно, возникнет потребность увидеть и сопоставить между собой информацию, полученную из разных систем. Так в компании появляется Хранилища данных – новый класс систем.
Общепринятое определение данного класса систем звучит так.

Хранилище данных (или Data Warehouse) – предметно-ориентированная информационная база данных, специально разработанная и предназначенная для подготовки отчётов и бизнес-анализа с целью поддержки принятия решений в организации
Таким образом, консолидация данных из разных систем, возможность посмотреть на них неким «единым» (унифицированным) образом – это одно из ключевых свойство систем класса хранилищ данных. Это причина, по которой появились хранилища в ходе эволюции ИТ-систем.

Ключевые особенности хранилищ данных

Давайте посмотрим подробнее. Какие ключевые особенности есть у данных систем? Что отличает хранилища данных от прочих ИТ-систем предприятия?

Во-первых, это большие объемы. Очень большие. VLDB – так именуют такие системы ведущие вендоры, когда дают свои рекомендации по использованию своих продуктов. Со всех систем компании данные стекаются в эту большую базу данных и хранятся там «вечно и неизменно», как пишут в учебниках (на практике жизнь оказывается сложнее).

Во-вторых, это исторические данные – “Corporate memory” – так называют хранилища данных. По части работы со временем в хранилищах все совсем интересно. В учетных системах данные актуальные в моменте. Потом пользователь совершает некую операцию – и данные обновляются. При этом история изменений может и не сохраниться – это зависит от практики учета. Возьмем, например, остаток на банковском счете. Нас может интересовать актуальный остаток на «сейчас», на конец дня или на момент некого события (например, в момент расчета скорингового балла). Если первые два решаются довольно просто, то для последнего, скорее всего, потребуется специальные усилия. Пользователь, работая с хранилищем, может обращаться к прошлым периодам, осуществлять их сравнение с текущим и т.д. Именно подобные возможности, связанные со временем, существенным образом отличают хранилища данных от систем учета – получение состояния данных в различных точках оси времени – на определенную глубину в прошлом.

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

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

Архитектурная концепция

Каждый, кто сталкивался с хранилищем, скорее всего наблюдал некую «слоистую структуру» - т.к. именно эта архитектурная парадигма прижилась для систем данного класса. И не случайно. Слои хранилища можно воспринимать как отдельные компоненты системы – со своими задачами, зоной ответственности, «правилами игры».
Уровневая архитектура – это средство борьбы со сложностью системы – каждый последующий уровень абстрагирован от сложностей внутренней реализации предыдущего. Такой подход позволяет выделять однотипные задачи и решать их единообразным образом, не изобретая каждый раз «велосипед» с нуля.
Схематично концептуальная архитектурная схема представлена на рисунке. Это упрощенная схема, которая отражает лишь ключевую идею – концепцию, но без «анатомических подробностей», которые будут возникать при более глубокой проработке деталей.

Как показано на схеме, концептуально выделяем следующие слои. Три основных слоя, которые содержат область хранения данных (обозначено закрашенным прямоугольником) и ПО загрузки данных (условно показано стрелками того же цвета). А также вспомогательный – сервисный слой, который однако играет весьма важную связующую роль – управления загрузкой данных и контроля качества.

Primary Data Layer - слой первичных данных (или стейджинг , или операционный слой ) – предназначен для загрузки из систем-источников и сохранения первичной информации, без трансформаций – в исходном качестве и поддержкой полной истории изменений.
Задача данного слоя – абстрагировать последующие слои хранилища от физического устройства источников данных, способов забора данных и методов выделения дельты изменений.

Core Data Layer - ядро хранилища – центральный компонент системы, который отличает хранилище от просто «платформы batch-интеграции», либо «большой свалки данных», поскольку его основная роль – это консолидация данных из разных источников, приведение к единым структурам, ключам. Именно при загрузке в ядро осуществляется основная работа с качеством данных и общие трансформации, которые могут быть достаточно сложны.
Задача данного слоя – абстрагировать своих потребителей от особенностей логического устройства источников данных и необходимости сопоставлять данные из различных систем, обеспечить целостность и качество данных.

Data Mart Layer - аналитические витрины – компонент, основная функция которого – преобразование данных к структурам, удобным для анализа (если с витринами работает BI – то это, как правило, dimensional model), либо согласно требованиям системы-потребителя.
Как правило, витрины берут данные из ядра – как надежного и выверенного источника – т.е. пользуются сервисом этого компонента по приведению данных к единому виду. Будем называть такие витрины регулярными . В отдельных случаях витрины могут брать данные непосредственно из стейджинга – оперируя первичными данными (в ключах источника). Такой подход, как правило, используется для локальных задач, где не требуется консолидация данных из разных систем и где нужна оперативность более, чем качество данных. Такие витрины называют операционными . Некоторые аналитические показатели могут иметь весьма сложные методики расчетов. Поэтому, для таких нетривиальных расчетов и трансформаций создают так называемые вторичные витрины .
Задача слоя витрин – подготовка данных согласно требований конкретного потребителя – BI-платформы, группы пользователей, либо внешней системы.

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

Также выделяют специальный компонент (или набор компонентов), который оказывает сервисные функции для всех слоев. Одна из ключевых его задач – управляющая функция - обеспечить «единые правила игры» для всей системы в целом, оставляя право на использование различных вариантов реализации каждого из описанных выше слоев – в т.ч. использовать разные технологии загрузки и обработки данных, разные платформы хранения и т.п. Будем называть его сервисным слоем (Service Layer) . Он не содержит бизнес-данных, но имеет свои структуры хранения – содержит область метаданных, а также область для работы с качеством данных (и возможно, другие структуры – в зависимости от возложенных на него функций).

Такое четкое разделение системы на отдельные компоненты существенно повышает управляемость развития системы:

  • снижается сложность задачи, которая ставится разработчику функционала того, или иного компонента (он не должен одновременно решать и вопросы интеграции с внешними системами, и продумывать процедуры очистки данных, и думать об оптимальном представлении данных для потребителей) – задачу проще декомпозировать, оценить и выполнить небольшой delivery;
  • можно подключать к работе различных исполнителей (и даже команд, или подрядчиков) – т.к. такой подход позволяет эффективно распараллеливать задачи, снижая их взаимное влияние друг на друга;
  • наличие персистентного стейджинга позволяет быстро подключить источники данных, не проектируя целиком ядро, либо витрины для всей предметной области, а далее постепенно достраивать остальные слои согласно приоритетам (причем данные будут уже в хранилище – доступные системным аналитикам, что существенно облегчит задачи последующего развития хранилища);
  • наличие ядра позволяет всю работу с качеством данных (а также, возможные промахи и ошибки) скрыть от витрин и от конечного пользователя, а главное – используя этот компонент как единый источник данных для витрин, можно избежать проблем со сходимостью данных в силу реализации общих алгоритмов в одном месте;
  • выделение витрин позволяет учесть различия и специфику понимания данных, которые могут быть у пользователей разных подразделений, а их проектирование под требования BI позволяет не только выдавать агрегированные цифры, а обеспечить проверку достоверности данных путем предоставления возможностей drill down до первичных показателей;
  • наличие сервисного слоя позволяет выполнять сквозной анализ данных (data lineage), использовать унифицированные средства аудита данных, общие подходы к выделению дельты изменений, работе с качеством данных, управления загрузкой, средства мониторинга и диагностики ошибок, ускоряет разрешение проблем.
Такой подход к декомпозиции также делает систему более устойчивой к изменением (по сравнению с «монолитной конструкцией») - обеспечивает ее антихрупкость:
  • изменения со стороны систем-источников отрабатываются на стейджинге - в ядре при этом модифицируются только те потоки, на которые оказывают влияние эти стейджинговые таблицы, на витрины влияние минимально либо отсутствует;
  • изменения требований со стороны потребителей отрабатываются по большей части на витринах (если при этом не требуется дополнительная информация, которой еще нет в хранилище).
Далее мы пройдемся по каждому из представленных выше компонентов и посмотрим на них чуть подробнее.

Ядро системы

Начнем «с середины» - ядро системы или средний слой. На обозначен как Core Layer. Ядро выполняет роль консолидации данных - приведение к единым структурам, справочникам, ключам. Здесь осуществляется основная работа с качеством данных – очистка, трансформация, унификация.

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

Модель ядра хранилища и корпоративная модель данных

Основная задача среднего слоя хранилища – стабильность. Именно поэтому основной акцент здесь делается на модели данных. Ее принято называть «корпоративной моделью данных». К сожалению, вокруг нее сложился некий ореол мифов и несуразностей, которые порой приводят к отказу от ее построения вовсе, а зря.

Миф 1. Корпоративная модель данных – это огромная модель, состоящая из тысяч сущностей (таблиц).
На самом деле. В любой предметной области, в любом бизнес-домене, в данных любой компании, даже самой сложной, основных сущностей немного – 20-30.

Миф 2. Не нужно разрабатывать никакую «свою модель» - покупаем отраслевую референсную модель – и делаем все по ней. Тратим деньги – зато получаем гарантированный результат.
На самом деле. Референсные модели действительно могут быть очень полезны, т.к. содержат отраслевой опыт моделирования данной области. Из них можно почерпнуть идеи, подходы, практики именования. Проверить «глубину охвата» области, чтобы не упустить из внимания что-то важное. Но мы вряд ли сможем использовать такую модель «из коробки» - как есть. Это такой же миф, как например – покупка ERP-системы (или CRM) и ее внедрение без какого-либо «докручивания под себя». Ценность таких моделей рождается в их адаптации к реалиям именно этого бизнеса, именно этой компании.

Миф 3. Разработка модели ядра хранилища может занять многие месяцы, и на это время проект фактически будет заморожен. Кроме того, это требует безумное количество встреч и участия множества людей.
На самом деле. Модель хранилища может разрабатываться вместе с хранилищем итеративно, по частям. Для неохваченных областей ставятся «точки расширения» или «заглушки» - т.е. применяются некоторые «универсальные конструкции». При этом нужно знать меру, чтобы не получилось супер-универсальная штука из 4х таблиц, в которую сложно как «положить данные», так и (еще более сложно) достать. И которая крайне не оптимально работает с точки зрения производительности.

Время на разработку модели действительно потребуется. Но это не время, потраченное на «рисование сущностей» - это время, необходимое для анализа предметной области, вникание в то, как устроены данные. Именно поэтому, в этом процессе очень плотно участвуют аналитики, а также привлекаются различные бизнес-эксперты. И делается это точечно, выборочно. А не путем организации встреч с участием безумного количества людей, рассылок огромных анкет и т.п.
Качественный бизнес и системный анализ – вот, что является ключевым при построении модели ядра хранилища. Нужно много чего понять: где (в каких системах) порождаются данные, как они устроены, в каких бизнес-процессах они циркулируют и т.д. Качественный анализ еще ни одной системе не вредил. Скорее, наоборот – проблемы возникают из «белых пятен» в нашем понимании.

Разработка модели данных – это не процесс изобретения и придумывания чего-то нового. Фактически, модель данных в компании уже существует. И процесс ее проектирования скорее похож на «раскопки». Модель аккуратно и тщательно извлекается на свет из «грунта» корпоративных данных и облекается в структурированную форму.

Миф 4. У нас в компании бизнес настолько динамичный, и все так быстро меняется, что бесполезно нам делать модель – она устареет раньше, чем мы введем эту часть системы в эксплуатацию.
На самом деле. Вспомним, что ключевой фактор ядра – это стабильность. И прежде всего, топологии модели. Почему? Потому что именно этот компонент является центральным и оказывает влияние на все остальное. Стабильность - это требование и к модели ядра. Если модель слишком быстро устаревает – значит она неверно спроектирована. Для ее разработки выбраны не те подходы и «правила игры». И также это вопрос качественного анализа. Ключевые сущности корпоративной модели меняются крайне редко.
Но если нам придет в голову сделать для компании, торгующих скажем, кондитерскими изделиями, вместо справочника «Продукты» сделать «Конфеты», «Торты» и «Пироги». То когда появится пицца в перечне товаров – да, потребуется вводить множество новых таблиц. И это как раз вопрос подхода.

Миф 5. Создание корпоративной модели – это очень серьезное, сложное и ответственное дело. И страшно совершить ошибку.
На самом деле. Модель ядра хоть и должна быть стабильной, но все же не «отлита в металле». Как и любые другие проектные решения, ее структуру можно пересматривать и видоизменять. Просто не нужно забывать об этом ее качестве. Но это совсем не значит, что на нее «нельзя дышать». И это не значит, что недопустимы временные решения и «заглушки», которые должны быть запланированы к переработке.

Миф 6. Если у нас источник данных – это например, система НСИ (или система управления мастер-данными – МДМ), то она уже по-хорошему должна соответствовать корпоративной модели (особенно, если она недавно спроектирована, и не успела обрасти «побочкой», «традициями» и времянками). Выходит, что для этого случая – нам модель ядра не нужна?
На самом деле. Да, в этом случае построение модели ядра хранилище сильно облегчается – т.к. мы следуем готовой концептуальной модели верхнего уровня. Но не исключается вовсе. Почему? Потому что при построении модели определенной системы действуют некие свои правила – какие типы таблиц использовать (для каждой сущности), как версионировать данные, с какой гранулярностью вести историю, какие метаатрибуты (технические поля использовать) и т.п.

Кроме того, какая бы замечательная и всеохватывающая система НСИ и МДМ у нас не была – как правило, возникнут нюансы, связанные с существованием локальных справочников «про то же самое» в других учетных системах. И эту проблему, хотим мы этого, или нет – придется решать на хранилище – ведь отчетность и аналитику собирать здесь.

Слой первичных данных (или историзируемый staging или операционный слой)

На он обозначен как Primary Data Layer. Роль этого компонента: интеграция с системами-источниками, загрузка и хранение первичных данных, а также предварительная очистка данных - проверка на соответствия правилам форматно-логического контроля, зафиксированных в «соглашении об интерфейсе взаимодействия» с источником.
Кроме того, данный компонент решает очень важную для хранилища задачу – выделения «истинной дельты изменений» - не зависимо от того, позволяет ли источник отслеживать изменения в данных или нет и каким образом (по какому критерию их можно «поймать»). Как только данные попали в стейджинг – для всех остальных слоев вопрос выделения дельты уже понятен – благодаря маркировке мета-атрибутами.

Данные в этом слое хранятся в структурах, максимально близких к системе-источнику – чтобы сохранить первичные данные как можно ближе к их первозданному виду. Еще одно название этого компонента - «операционный слой».
Почему бы просто не использовать устоявшийся термин “staging”? Дело в том, что ранее, до «эпохи больших данных и VLDB», дисковое пространство было очень дорого – и часто первичные данные если и сохранялись, то ограниченный интервал времени. И часто именем “staging” называют очищаемый буфер.
Теперь же технологии шагнули вперед – и мы можем позволить себе не только хранить все первичные данные, но историзировать их с той степенью гранулярности, которая только возможна. Это не означает, что мы не должны контролировать рост данных и не отменяет необходимость управлять жизненным циклом информации, оптимизируя стоимость хранения данных, в зависимости от «температуры» использования – т.е. уводя «холодные данные», которые менее востребованы, на более дешевые носители и платформы хранения.

Что нам дает наличие «историзируемого стейджинга»:

  • возможность ошибиться (в структурах, в алгоритмах трансформации, в гранулярности ведения истории) – имея полностью историзируемые первичные данные в зоне доступности для хранилища, мы всегда можем сделать перезагрузку наших таблиц;
  • возможность подумать – мы можем не торопиться с проработкой большого фрагмента ядра именно в этой итерации развития хранилища, т.к. в нашем стейджинге в любом случае будут, причем с ровным временным горизонтом (точка «отсчета истории» будет одна);
  • возможность анализа – мы сохраним даже те данные, которых уже нет в источнике – они могли там затереться, уехать в архив и т.д. – у нас же они остаются доступными для анализа;
  • возможность информационного аудита – благодаря максимально подробной первичной информации мы сможем потом разбираться – как у нас работала загрузка, что мы в итоге получили такие цифры (для этого нужно еще иметь маркировку мета-атрибутами и соответствующие метаданные, по которым работает загрузка – это решается на сервисном слое).
Какие могут возникнуть сложности при построении «историзируемого стейджинга»:
  • было бы удобно выставить требования к транзакционной целостности этого слоя, но практика показывает, что это трудно достижимо (это означает то, что в этой области мы не гарантируем ссылочную целостность родительских и дочерних таблиц) – выравнивание целостности происходит на последующих слоях;
  • данный слой содержит очень большие объемы (самый объемный на хранилище - несмотря на всю избыточность аналитических структур) – и надо уметь обращаться с такими объемами – как с точки зрения загрузки, так и с точки зрения запросов (иначе можно серьезно деградировать производительность всего хранилища).
Что еще интересного можно сказать про этот слой.
Во-первых, если мы отходим от парадигмы «сквозных процессов загрузки» - то для нас больше не работает правило «караван идет со скоростью последнего верблюда», точнее мы отказываемся от принципа «каравана» и переходим на принцип «конвейера»: взял данные из источника – положил в свой слой – готов брать следующую порцию. Это означает, что
1) мы не ждем, пока случиться обработка на других слоях;
2) мы не зависим от графика предоставления данных другими системами.
Проще говоря, мы ставим на расписание процесс загрузки, который берет данные из одного источника через определенный способ подключения к нему, проверяет, выделяет дельту – и помещает данные в целевые таблицы стейджинга. И все.

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

Слой аналитических витрин

Слой Витрин (Data Mart Layer ) отвечает за подготовку и предоставление данных конечным потребителям – людям или системам. На этом уровне максимально учитываются требования потребителя – как логические (понятийные), так и физические. Сервис должен предоставлять ровно то, что необходимо – не больше, не меньше.

Если потребителем является внешняя система, то как правило, она диктует те структуры данных, которые ей необходимы и регламенты забора информации. Хорошим подходом считается такой, при котором за корректный забор данных отвечает сам потребитель. Хранилище данные подготовило, сформировало витрину, обеспечило возможность инкрементального забора данных (маркировка мета-атрибутами для последующего выделения дельты изменений), а система-потребитель далее сама управляет и отвечает за то, как она этой витриной пользуется. Но бывают особенности: когда система не имеет активного компонента для забора данных – нужен либо внешний компонент, который выполнит интегрирующую функцию, либо хранилище выступит в роли «платформы интеграции» - и обеспечит корректную инкрементальную отгрузку данных далее – за пределы хранилища. Здесь всплывает много нюансов, и правила интерфейсного взаимодействия должны быть продуманы и понятны обеим сторонам (впрочем, как всегда – когда дело касается интеграции). К подобным витринам, как правило, применяется регламентное очищение/ архивирование данных (редко нужно, чтобы эти «транзитные данные» хранились длительное время).

Наибольшее значение с точки зрения аналитических задач представляют собой витрины «для людей» - точнее для инструментов BI, с которыми они работают.
Впрочем, есть категория «особо продвинутых пользователей» - аналитики, исследователи данных - которым не нужны ни BI-инструменты, ни регламентные процессы наполнения внешних специализированных систем. Им требуются некие «общие витрины» и «своя песочница», где они могут создавать таблицы и трансформации по своему усмотрению. В этом случае ответственность хранилища заключается в обеспечении наполнения данными этих общих витрин в соответствие с регламентом.
Отдельно можно выделить таких потребителей как средства Data Mining – глубокого анализа данных. Такие инструменты имеют свои требования к преподготовке данных, и с ними также работают эксперты по исследованию данных. Для хранилища задача сводится – опять же к поддержке сервиса по загрузке неких витрин согласованного формата.

Однако, вернемся к аналитическим витринам. Именно они представляют собой интерес с точки зрения разработчиков-проектировщиков хранилища в этом слое данных.
На мой взгляд, лучший подход к проектированию витрин данных, проверенный временем, на который сейчас «заточены» практически все платформы BI – это подход Ральфа Кимбалла . Он известен под названием dimensional modeling – многомерное моделирование. Существует великое множество публикаций на эту тему. Например, с основными правилами можно ознакомиться в публикации Марги Росс . И конечно же, можно рекомендовать от гуру многомерного моделирования. Другой полезный ресурс – «Советы Кимбалла»
Многомерный подход к созданию витрин описан и проработан столь хорошо – как со стороны «евангелистов метода», так и со стороны ведущих вендоров ПО, что нет смысла здесь как-то подробно на нем останавливаться – первоисточник всегда предпочтительнее.

Хотелось бы сделать лишь один акцент. «Отчетность и аналитика» бывает разной. Есть «тяжелый reporting» - предзаказанные отчеты, которые формируются в виде файлов и доставляются пользователям по предусмотренным каналам доставки. А есть информационные панели – BI dashboards. По своей сути это web-приложения. И к времени отклика этих приложений предъявляются такие же требования, как и для любого другого web-приложения. Это означает, что нормальное время обновления BI-панели – это секунды, а не минуты. Важно это помнить при разработке решения. Как этого достичь? Стандартный метод оптимизации: смотрим, из чего складывается время отклика и на что мы можем влиять. На что больше всего тратиться время? На физические (дисковые) чтения БД, на передачу данных по сети. Как уменьшить объем считываемых и передаваемых данных за один запрос? Ответ очевиден и прост: нужно данные либо агрегировать, либо наложить фильтр на большие таблицы фактовые таблицы, участвующие в запросе, и исключить соединение больших таблиц (обращения к фактовым таблицам должны идти только через измерения).

Для чего нужен BI? Чем он удобен? Почему эффективна многомерная модель?
BI позволяет пользователю выполнять так называемые «нерегламентированные запросы». Что это значит? Это значит, что мы запрос заранее в точности не знаем, но мы знаем какие показатели в каких разрезах пользователь может запросить. Пользователь формирует такой запрос путем выбора соответствующих фильтров BI. И задача разработчика BI и проектировщика витрин – обеспечить такую логику работы приложения, чтобы данные либо фильтровались, либо агрегировались, не допуская ситуации, когда данных запрашивается слишком много – и приложение «повисало». Обычно начинают с агрегированных цифр, далее углубляясь к более детальным данным, но попутно устанавливая нужные фильтры.

Не всегда достаточно просто построить «правильную звезду» - и получить удобную структуру для BI. Иногда потребуется где-то применить денормализацию (оглядываясь при этом, как это повлияет на загрузку), а где-то сделать вторичные витрины и агрегаты. Где-то добавить индексы или проекции (в зависимости от СУБД).

Таким образом, путем “проб и ошибок” можно получить структуру, оптимальную для BI – которая учтет особенности как СУБД, так и BI-платформы, а также требования пользователя по представлению данных.
Если мы данные мы берем из «ядра», то такая переработка витрин будет носить локальный характер, никак не влияя на сложную обработку первичных данных, полученных непосредственно из систем-источников – мы лишь «перекладываем» данные в удобный для BI формат. И можем себе позволить сделать это множество раз, различными способами, в соответствие с различными требованиями. На данных ядра делать это гораздо проще и быстрее, чем собирать из «первички» (структура и правила которой, как мы знаем, к тому же может «поплыть»).

Сервисный слой

Сервисный слой ( - Service Layer) отвечает за реализацию общих (сервисных) функций, которые могут использоваться для обработки данных в различных слоях хранилища – управление загрузкой, управление качеством данных, диагностика проблем и средства мониторинга и т.п.
Наличие данного уровня обеспечивает прозрачность и структурированность потоков данных в хранилище.

К этому слою относят две области хранения данных:

  • область метаданных – используется для механизма управления загрузкой данных;
  • область качества данных – для реализации офф-лайн проверок качества данных (т.е. тех, что не встроены непосредственно в ETL-процессы).
Можно по-разному выстроить процесс управления загрузкой. Один из возможных подходов такой: разбиваем все множество таблиц хранилища на модули. В модуль могут быть включены таблицы только одного слоя. Таблицы, входящие в состав каждого модуля загружаем в рамках отдельного процесса. Назовем его управляющий процесс . Запуск управляющего процесса ставится на свое расписание. Управляющий процесс оркеструет вызовы атомарных процессов, каждый из которых загружает одну целевую таблицу, а также содержит некие общие шаги.
Очевидно, что достаточно просто разделить таблицы staging на модули – по системам-источникам, точнее их точкам подключения. Но для ядра это сделать уже сложнее – т.к. там нам необходимо обеспечить целостность данных, а значит нужно учитывать зависимости. Т.е. будут возникать коллизии, которые необходимо разрешать. И есть разные методы их разрешения.

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

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

Не ставлю задачу здесь полностью осветить эту тему – организации загрузки – лишь расставляю акценты, на которые стоит обратить внимание.
Приведенный подход – это лишь один из вариантов. Он довольно адаптивен. И его «концептуальным прототипом» послужил конвейер Toyota и система «точно во время» (just-in-time). Т.е. мы здесь отходим от широко распространенной парадигмы исключительно «ночной загрузки данных», а загружаем небольшими порциями в течение дня – по мере готовности данных в различных источниках: что пришло – то и загрузили. При этом у нас работают множество параллельных процессов. А «горячий хвост» свежих данных будет постоянно «моргать» - и через какое-то время выравниваться. Мы должны учесть такую особенность. И в случае необходимости формировать пользовательские витринами «срезами», где все уже целостно. Т.е. нельзя одновременно достичь и оперативности, и консистентности (целостности). Нужен баланс – где-то важно одно, где-то другое.

Крайне важно предусмотреть средства журналирования и мониторинга. Хорошей практикой является использование типизированных событий, где можно задать разные параметры и настроить систему уведомлений – подписку на определенные события. Т.к. очень важно, чтобы когда потребуется вмешательство администратора системы – он узнал бы об этом как можно раньше и получил всю необходимую диагностическую информацию. Журналы также могут использоваться для анализа проблем «пост-фактум», а также для расследования инцидентов нарушений работоспособности системы, в т.ч. качества данных.

Проектирование и ведение моделей данных хранилища

Почему при разработке любой системы, где задействована база данных (а в хранилище – особенно), важно уделять внимание проектированию моделей данных? Почему бы просто не накидать набор таблиц, где угодно – хоть в текстовом редакторе? Зачем нам «эти картинки»?
Как ни странно, подобные вопросы ставят даже опытные разработчики.
Вообще-то да, ничто не мешает набросать таблицы - и начать их использовать. Если… если при этом в голове (!) у разработчика есть стройная общая картина той структуры, которую он ваяет. А что, если разработчиков несколько? А что, если эти таблицы будет использовать кто-то еще? А что если пройдет время – человек оставит эту область, а потом к ней опять вернется?

Можно ли разобраться без модели? В принципе, можно. И разобраться, и «прикинуть картинки на бумажке», и «пошерстить - поселектить» данные. Но гораздо проще, понятнее и быстрее воспользоваться готовым артефактом – моделью данных. А также понимать «логику ее устройства» - т.е. хорошо бы иметь общие правила игры.

А самое главное даже не это. Самое главное, что при проектировании модели мы вынуждены (просто без вариантов!) более плотно и глубоко изучить предметную область, особенности устройства данных и их использования в различных бизнес-кейсах. И те вопросы, которые бы мы с легкостью «отодвинули» как сложные, «замылили», накидывая наши таблички, не пытаясь при этом именно проектировать модель - мы будем вынуждены поставить и решать сейчас, при анализе и проектировании, а не потом – когда будем строить отчеты и думать о том, «как свести несовместимое» и каждый раз «изобретать велосипед».

Такой подход является одной из тех инженерных практик, которые позволяют создавать антихрупкие системы. Поскольку они понятно устроены, прозрачны, удобны для развития, а также сразу видны их «границы хрупкости» - можно более точно оценить «масштабы бедствия» при появлении новых требований и время, необходимое для редизайна (если он понадобится).
Таким образом, модель данных – один из основных артефактов, который должен поддерживаться в процессе развития системы. По-хорошему, она должна быть «на столе» у каждого аналитика, разработчика и т.д. – всех, кто участвует в проектах развития системы.

Проектирование моделей данных – это отдельная, весьма обширная тема. При проектировании хранилищ используются два основных подхода.
Для ядра хорошо подходит подход «сущность-связь» - когда строится нормализованная (3NF) модель на основе именно исследования предметной области, точнее выделенной ее области. Здесь играет та самая «корпоративная модель», о которой шла речь выше.

При проектировании аналитических витрин подходит многомерная модель . Этот подход хорошо ложится на понимание бизнес-пользователей – т.к. это модель, простая и удобная для человеческого восприятия – люди оперируют понятными и привычными понятиями метрик (показателей) и разрезов, по которым они анализируются. И это позволяет просто и четко выстроить процесс сбора требований – мы рисуем набор «матриц разрезов и показателей», общаясь с представителями различных подразделений. А потом сводим в одну структуру – «модель анализа»: формируем «шину измерений» и определяем факты, которые на них определены. Попутно прорабатываем иерархии и правила агрегации.

Далее очень просто перейти к физической модели, добавив элементы оптимизации с учетом особенностей СУБД. Например, для Oracle это будет секционирование, набор индексов и т.д. Для Vertica будут использованы другие приемы – сортировка, сегментация, секционирование.
Также может потребоваться специальная денормализация - когда мы сознательно вносим избыточность в данные, благодаря которым улучшаем быстродействие запросов, но при этом усложняем обновление данных (т.к. избыточность нужно будет учитывать и поддерживать в процессе загрузки данных). Возможно, в целях улучшения быстродействия, нам также придется создать дополнительные таблицы-агрегаты, либо использовать такие дополнительные возможности СУБД как проекции в Vertica.

Итак, при моделировании данных хранилища мы фактически решаем несколько задач:

  • задача построение концептуальной (логической) модели ядра - системный и бизнес анализ - исследование предметной области, углубление в детали и учет нюансов «живых данных» и их использования в бизнесе;
  • задача построения модели анализа – и далее концептуальной (логической) модели витрин;
  • задача построения физических моделей – управление избыточностью данных, оптимизация с учетом особенностей СУБД под запросы и загрузку данных.
При разработке концептуальных моделей, мы можем не учитывать особенности конкретной СУБД, для которой мы проектируем структуру БД. Более того, мы можем использовать одну концептуальную модель для создания нескольких физических – под разные СУБД.

Резюмируем.

  • Модель данных – это не набор «красивых картинок», а процесс ее проектирования – это не процесс их рисования. Модель отражает наше понимание предметной области. А процесс ее составления – это процесс ее изучения и исследования. Вот на это тратится время. А вовсе не на то, чтобы «нарисовать и раскрасить».
  • Модель данных – это проектный артефакт, способ обмена информацией в структурированном виде между участниками команды. Для этого она должна быть всем понятна (это обеспечивается нотацией и пояснением) и доступна (опубликована).
  • Модель данных не создается единожды и замораживается, а создается и развивается в процессе развития системы. Мы сами задаем правила ее развития. И можем их менять, если видим – как сделать лучше, проще, эффективнее.
  • Модель данных (физическая) позволяет консолидировать и использовать набор лучших практик, направленных на оптимизацию – т.е. использовать те приемы, которые уже сработали для данной СУБД.

Особенности проектов хранилищ данных


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

Хранилище данных – это заказное ПО

Хранилище данных – это всегда «заказная разработка», а не коробочное решение. Да, существуют отраслевые BI-приложения, включающие в себя референсную модель данных, преднастроенные ETL-процессы из распространенных источников (например, ERP систем), набор типовых панелей BI и отчетов. Но на практике хранилище крайне редко внедряется – как «коробка». Я работаю с хранилищами около 10 лет, и ни разу не видела такой истории. Всегда всплывают свои нюансы, связанные с уникальными особенностями компании – как бизнеса, так и ИТ-ландшафта. Поэтому, надеяться, что архитектуру предоставит «вендор», поставляющий решение несколько опрометчиво. Архитектура таких систем часто «вызревает» внутри самой организации. Либо ее формируют специалисты компании-подрядчика, являющегося основным исполнителем по проекту.

Хранилище данных – это интеграционный проект

Хранилище данных загружает и обрабатывает информацию из многих систем-источников. И чтобы сохранить с ними «дружеские отношения» нужно быть крайне бережными к ним. В том числе, необходимо минимизировать нагрузку на системы-источники, учесть окна «доступности и недоступности», выбрать интерфейсы взаимодействия с учетом их архитектуры и т.д. Тогда у хранилища будет возможность забирать данные максимально рано и с нужной частотой. Иначе вас «пересадят» на резервный контур, который обновляется не с самой оперативной периодичностью.
Кроме того, надо учесть «человеческий фактор». Интеграция – это не только взаимодействие машин. Это еще и коммуникации между людьми.

Хранилище данных – это коллективный проект


В крупной компании такую систему редко можно сделать силами исключительно одной команды. Как правило, здесь работают несколько коллективов, каждый из которых решает определенную задачу.

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

Кроме того, когда в процесс развития системы вовлечено такое множество людей и команд, часто разрозненных – то неизбежно встают вопрос: как выстроить коммуникации и информационное взаимодействие между ними. Чем более стандартные и понятные подходы и практики используются – тем проще, удобнее и эффективнее можно наладить такую работу. И в том числе стоит подумать о составе «рабочих артефактов», среди которых для хранилищ данных №1 – это модели данных (см. предыдущий раздел).

Хранилище данных имеет более длительный срок жизни по сравнению с другими системами

Уточню – утверждение справедливо для «живого», работающего хранилища, интегрированного с ключевыми источниками, обладающего историческими данными и обеспечивающего информационно-аналитическими сервисами многие подразделения компании.

Какие у меня основания так полагать?
Во-первых, построение хранилища – это очень ресурсо-затратный процесс: помимо собственно затрат на оборудование, лицензии на необходимое технологическое ПО и на разработку, в это также вовлечены практически все системы и подразделения компании. Повторить весь этот процесс с нуля еще раз – это очень смелая затея.

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

Постепенное итеративное развитие

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

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

Грамотные архитектурные подходы позволяют развивать систему итеративно, наращивая функционал постепенно, не уходя в «разработку» на несколько лет, прежде чем начинать давать результат.

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

Хранилища данных – «мульти-проектная история»

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

Баланс инноваций и проверенных решений

Несмотря на то, что тема хранилищ – очень «древняя» (если такое слово применимо для такой молодой отрасли как ИТ) и достаточно консервативна. Тем не менее, прогресс не стоит на месте – и те ограничения, которые ранее существовали в силу дорогих и медленных дисков, дорогой памяти и т.п. – теперь сняты. А вместе с тем, пришла пора пересмотреть некоторые архитектурные подходы. Причем это относится как к технологическим платформам, так и к архитектуре прикладных систем, которые на них базируются.

Тут важно соблюсти баланс – и сохранить достаточно «экологичный» подход как к ресурсам, так и к хранимой информации. Иначе можно очень быстро превратить хранилище в слабоструктурированную «помойку», в которой если и можно будет разобраться, то путем довольно больших усилий.
Да, у нас появилось больше возможностей, но это не значит, что нужно отрицать все наработанные и проверенные временем практики, которые понятно как и зачем использовать, и «пускаться во все тяжкие» лишь ведомые туманным призраком «инноваций».
Соблюдать баланс – значит использовать новые методы и подходы там, где они открывают новые возможности, но вместе с тем использовать старые проверенные – для решения насущных задач, которые никто не отменял.
Что можем сделать мы как разработчики и проектировщики прикладных решений? Прежде всего, знать и понимать технологические изменения платформ, на которых мы работаем, их возможности, особенности и границы применения.

Посмотрим на СУБД – как наиболее критичную и важную для хранилищ технологическую платформу.
Последнее время явно наметился дрейф реляционных баз данных, созданных изначально как «универсальных», в сторону специализации. Уже давно ведущие вендоры выпускают различные опции – для приложений разного класса (OLTP, DSS & DWH). Кроме того, появляются дополнительные возможности для работы с текстом, гео-данными и т.д.

Но этим дело не ограничилось - стали появляться продукты, которые изначально ориентированы на определенный класс задач – т.е. специализированные СУБД. Они могут использовать реляционную модель, а могут и нет. Важно то, что они изначально «заточены» не просто на хранение и обработку «бизнес информации» в целом, а под определенные задачи.

Видимо, централизация и специализация – это два взаимодополняющих тренда, которые периодически сменяют друг друга, обеспечивая развитие и баланс. Также как и эволюционное (постепенное) постепенное развитие и кардинальные перемены. Так, в 90-х годах Майкл Стоунбрейкер был одним из авторов Манифеста баз данных III поколения , в котором четко звучала мысль, что миру не нужна еще одна революция в мире баз данных. Однако спустя 10 лет он публикует работы , в которых анонсирует предпосылки начала новой эры в мире СУБД – именно исходя из их специализации.
Он акцентирует внимание на том, что распространенные универсальные СУБД построены на «безразмерной» (one-size-fits-all) архитектуре, которая не учитывает ни изменений аппаратных платформ, ни разделения приложений на классы, для которых можно придумать более оптимальное решение, нежели реализуя универсальные требования.
И начинает развивать ряд проектов в соответствие с этой идеей. Один из которых – C-Store – колоночная СУБД, спроектированная в архитектуре shared nothing (SN) , изначально созданная специально для систем класса хранилищ данных. Далее этот продукт получил коммерческое развитие как HP Vertica .

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

Эпилог

При подготовке данной статьи я постаралась ориентироваться прежде всего на архитекторов, аналитиков и разработчиков, которые непосредственно работают с хранилищами данных. Но получилось, что неизбежно «брала тему чуть шире» - и поле зрения попадали другие категории читателей. Какие-то моменты покажутся спорны, какие-то не понятны, какие-то очевидны. Люди разные – с разным опытом, бэкграундом и позицией.
Например, типичные вопросы менеджеров - «когда привлекать архитекторов?», «когда надо заниматься архитектурой?», «архитектура – не будет ли это слишком дорого?» звучат для нас (разработчиков, проектировщиков) довольно странно, потому что для нас архитектура системы появляется с ее рождением – не важно, осознаем мы это, или нет. И даже если формально роли архитектора в проекте нет, нормальный разработчик всегда «включает своего внутреннего архитектора».

По большом счету, не важно – кто именно выполняет роль архитектора – важно, что кто-то ставит подобные вопросы и исследует на них ответы. Если архитектор явно выделен – это лишь означает, что ответственность за систему и ее развитие несет, прежде всего, он.
Почему мне показалась тема «антихрупкости» релевантной относительно данного предмета?

“Уникальность антихрупкости состоит в том, что она позволяет нам работать с неизвестностью, делать что-то в условиях, когда мы не понимаем, что именно делаем, – и добиваться успеха” /Нассим Н.Талеб/
Поэтому, кризис и высокая степень неопределенности – это не оправдание в пользу отсутствия архитектуры, а факторы, усиливающие ее необходимость.

Отраслевые модели данных

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

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

Модель данных однозначно определяет значение данных, которые в данном случае представляют собой структурированные данные (в противоположность неструктурированным данным, таким как, например, изображение, бинарный файл или текст, где значение может быть неоднозначным).

Как правило, выделяются модели более высокого уровня (и более общие по содержанию) и более низкого (соответственно, более детальные). Верхний уровень моделирования – это так называемые концептуальные модели данных (conceptual data models), которые дают самую общую картину функционирования предприятия или организации. Концептуальная модель включает основные концепции или предметные области, критичные для функционирования организации; обычно их количество не превышает 12-15. Такая модель описывает классы сущностей, важных для организации (бизнес-объекты), их характеристики (атрибуты) и ассоциации между парами этих классов (т.е. связи). Поскольку в бизнес-моделировании терминология еще окончательно не устоялась, в различных англоязычных источниках концептуальные модели данных могут также носить название subject area model (что можно перевести как модели предметных областей) или subject enterprise data model (предметные корпоративные модели данных).

Следующий иерархический уровень – это логические модели данных (logical data models). Они также могут называться корпоративными моделями данных или бизнес-моделями. Эти модели содержат структуры данных, их атрибуты и бизнес-правила и представляют информацию, используемую предприятием, с точки зрения бизнес-перспективы. В такой модели данные организованы в виде сущностей и связей между ними. Логическая модель представляет данные таким образом, что они легко воспринимаются бизнес-пользователями. В логической модели может быть выделен словарь данных – перечень всех сущностей с их точными определениями, что позволяет различным категориям пользователей иметь общее понимание всех входных и информационных выходных потоков модели. Следующий, более низкий уровень моделирования – это уже физическая реализация логической модели с помощью конкретных программных средств и технических платформ.

Логическая модель содержит детальное корпоративное бизнес-решение, которое обычно принимает форму нормализованной модели. Нормализация – это процесс, который гарантирует, что каждый элемент данных в модели имеет только одно значение и полностью и однозначно зависит от первичного ключа. Элементы данных организуются в группы согласно их уникальной идентификации. Бизнес-правила, управляющие элементами данных, должны быть полностью включены в нормализованную модель с предварительной проверкой их достоверности и корректности. Например, такой элемент данных, как Имя клиента, скорее всего, будет разделен на Имя и Фамилию и сгруппирован с другими соответствующими элементами данных в сущность Клиент с первичным ключом Идентификатор клиента.

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

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

У компании может быть два пути создания корпоративной логической модели данных: строить ее самостоятельно или воспользоваться готовой отраслевой моделью (industry logical data model). В данном случае различия в терминах отражают лишь разные подходы к построению одной и той же логической модели. В том случае, если компания самостоятельно разрабатывает и внедряет собственную логическую модель данных, то такая модель, как правило, носит название просто корпоративной логической модели. Если же организация решает воспользоваться готовым продуктом профессионального поставщика, то тогда можно говорить об отраслевой логической модели данных. Последняя представляет собой готовую логическую модель данных, с высокой степенью точности отражающую функционирование определенной отрасли. Отраслевая логическая модель – это предметно-ориентированный и интегрированный вид всей информации, которая должна находиться в корпоративном Хранилище данных для получения ответов как на стратегические, так и на тактические бизнес-вопросы. Как и любая другая логическая модель данных, отраслевая модель не зависит от прикладных решений. Она также не включает производные данные или другие вычисления для более быстрого извлечения данных. Как правило, большинство логических структур такой модели находят хорошее воплощение в ее эффективной физической реализации. Такие модели разрабатываются многими поставщиками для самых различных областей деятельности: финансовой сферы, производства, туризма, здравоохранения, страхования и т.д.

Отраслевая логическая модель данных содержит информацию, общую для отрасли, и поэтому не может быть исчерпывающим решением для компании. Большинству компаний приходится увеличивать модель в среднем на 25% за счет добавления элементов данных и расширения определений. Готовые модели содержат только ключевые элементы данных, а остальные элементы должны быть добавлены к соответствующим бизнес-объектам в процессе установки модели в компании.

Отраслевые логические модели данных содержат значительное количество абстракций. Под абстракциями имеется в виду объединение аналогичных понятий под общими названиями, такими как Событие или Участник. Это добавляет отраслевым моделям гибкости и делает их более унифицированными. Так, понятие События применимо ко всем отраслям.

Специалист в области бизнес-аналитики (Business Intelligence) Стив Хобермэн (Steve Hoberman) выделяет пять факторов, которые необходимо принимать во внимание при решении вопроса о приобретении отраслевой модель данных. Первый – это время и средства, необходимые для построения модели. Если организации необходимо быстро добиться результатов, то отраслевая модель даст преимущество. Использование отраслевой модели не может немедленно обеспечить картину всей организации, но способно сэкономить значительное количество времени. Вместо собственно моделирования время будет потрачено на связывание существующих структур с отраслевой моделью, а также на обсуждение того, как лучше ее настроить под нужды организации (например, какие определения должны быть изменены, а какие элементы данных – добавлены).

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

Третий фактор – опыт в оценке рисков и моделировании. Создание корпоративной модели данных требует квалифицированных ресурсов как со стороны бизнеса, так и IT-персонала. Как правило, менеджеры хорошо знают либо работу организации в целом, либо деятельность конкретного отдела. Лишь немногие их них обладают как широкими (в масштабах всей компании), так и глубокими (в рамках подразделений) знаниями о своем бизнесе. Большинство менеджеров обычно хорошо знают только одну область. Поэтому, для того чтобы получить общекорпоративную картину, требуются существенные бизнес-ресурсы. Это увеличивает и требования к IT-персоналу. Чем больше бизнес-ресурсов требуется для создания и тестирования модели, тем более опытными должны быть аналитики. Они должны не только знать, как получить информацию от бизнес-персонала, но также уметь находить общую точку зрения в спорных областях и быть способными представлять всю эту информацию в интегрированном виде. Тот, кто занимается созданием модели (во многих случаях это тот же аналитик), должен обладать хорошими навыками моделирования. Создание корпоративных логических моделей требует моделирования «для будущего» и способности конвертировать сложный бизнес в буквальном смысле «в квадраты и линии».

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

Четвертый фактор – существующая инфраструктура приложений и связи с поставщиками. Если организация уже использует много инструментов одного и того же поставщика и имеет налаженные связи с ним, то имеет смысл и отраслевую модель заказывать у него же. Такая модель сможет свободно работать с другими продуктами этого же поставщика.

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

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

Отраслевые модели данных обеспечивают компаниям единое интегрированное представление их бизнес-информации. Многим компаниям бывает непросто осуществить интеграцию своих данных, хотя это является необходимым условием для большинства общекорпоративных проектов. По данным исследования Института Хранилищ данных (The Data Warehousing Institute, TDWI), более 69% опрошенных организаций обнаружили, что интеграция является существенным барьером при внедрении новых приложений. Напротив, осуществление интеграции данных приносит компании ощутимый доход.

Отраслевая модель данных, помимо связей с уже существующими системами, дает большие преимущества при осуществлении общекорпоративных проектов, таких как планирование ресурсов предприятия (Enterprise Resource Planning, ERP), управление основными данными, бизнес-аналитика, повышение качества данных и повышение квалификации сотрудников.

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

Публикации

  1. Стив Хобермэн (Steve Hoberman). Использование отраслевой логической модели данных в качестве корпоративной модели (Leveraging the Industry Logical Data Model as Your Enterprise Data Model).
  2. Клодиа Имхоф (Claudia Imhoff). Оперативное создание Хранилищ данных и выполнение проектов Business Intelligence с помощью моделирования данных (Fast-Tracking Data Warehousing & Business Intelligence Projects via Intelligent Data Modeling)

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

Эпилог

При подготовке данной статьи я постаралась ориентироваться прежде всего на архитекторов, аналитиков и разработчиков, которые непосредственно работают с хранилищами данных. Но получилось, что неизбежно «брала тему чуть шире» - и поле зрения попадали другие категории читателей. Какие-то моменты покажутся спорны, какие-то не понятны, какие-то очевидны. Люди разные – с разным опытом, бэкграундом и позицией.
Например, типичные вопросы менеджеров - «когда привлекать архитекторов?», «когда надо заниматься архитектурой?», «архитектура – не будет ли это слишком дорого?» звучат для нас (разработчиков, проектировщиков) довольно странно, потому что для нас архитектура системы появляется с ее рождением – не важно, осознаем мы это, или нет. И даже если формально роли архитектора в проекте нет, нормальный разработчик всегда «включает своего внутреннего архитектора».

По большом счету, не важно – кто именно выполняет роль архитектора – важно, что кто-то ставит подобные вопросы и исследует на них ответы. Если архитектор явно выделен – это лишь означает, что ответственность за систему и ее развитие несет, прежде всего, он.
Почему мне показалась тема «антихрупкости» релевантной относительно данного предмета?

“Уникальность антихрупкости состоит в том, что она позволяет нам работать с неизвестностью, делать что-то в условиях, когда мы не понимаем, что именно делаем, – и добиваться успеха” /Нассим Н.Талеб/
Поэтому, кризис и высокая степень неопределенности – это не оправдание в пользу отсутствия архитектуры, а факторы, усиливающие ее необходимость.

Теги: Добавить метки

5.1. Организация данных в корпоративных информационных системах.

Рассматривая КИС на самом упрощенном уровне можно сказать, что она содержит в себе корпоративную компьютерную (вычислительную) сеть и специализированный пакет прикладных программ (ППП) для решения задач предметной области. В свою очередь как ППП, так и компьютерная сеть предполагают в своей основе использование информационных данных о состоянии и развитии, контролируемых и управляемых ими систем. Исторически сложилось так, что КИС состоит из отдельных разветвленных подсистем отдельных предприятий, взаимосвязанных между собой и зачастую представляющих собой иерархическую систему. Естественно предположить, что подобные подсистемы имеют как собственные источники, так и собственные места хранения сопутствующих данных. Объединяясь в единую систему, возникают вопросы совместного корректного использования данных, территориально находящихся в различных местах их хранения. Следовательно, для успешного управления производственным объединением, оснащенным КИС, ему необходима надежная система сбора, хранения и обработки данных. Иными словами необходима единая информационная инфраструктура, удовлетворяющая стратегическим проектам BI (Business Intelligence) или интегрированная база для хранения и использования данных. Главной целью интеграции данных является получение единой и цельной картины состояния корпоративных бизнес - данных. Сама по себе интеграция представляет собой сложный процесс, в основе которого целесообразно выделить:

Технологии,

Продукты,

Приложения.

Методы – это подходы к интеграции данных.

Технологии – это процессы, реализующие те или иные методы интеграции данных.

Продукты – это коммерческие решения, поддерживающие ту или иную технологию интеграции данных.

Приложения – это готовые технические решения, поставляемые разработчиками в соответствии с пожеланиями клиентов – заказчиков.

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

5.2. Корпоративные базы данных и требования, предъявляемые к ним

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

· Простой и понятный пользователю ввод данных в базу,

· Хранение данных в виде, который не приведет к чрезмерному разрастанию данных,

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

· Быстрое нахождение и выборка требуемой информации,

· Сортировку и фильтрацию необходимых данных,

· Группировку одноименных данных,

· Промежуточные и итоговые вычисления над полями,

· Преобразование и наглядность выводимых данных,

· Масштабируемость,

· Защищенность от случайных сбоев, безвозвратной потери данных и несанкционированного доступа.

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

Создание интегрированной корпоративной базы данных возможно различными методами, основными из которых являются:

· Консолидация,

· Федерализация,

· Распространение.

5.3. Характеристика интеграционных решений корпоративных баз данных

Консолидация. Под консолидацией обычно понимается сложение одноименных данных. Подобный термин широко используется в банковской сфере, где формируется ежегодный консолидированный баланс, который позволяет представить все активы и пассивы головного банка совместно с его филиалами.

Применительно к корпорации при использовании этого метода данные копируются и собираются из первичных баз (БД – Slave) путем интеграции в единое место хранения (БД –Master). Как правило, таким местом хранения выбирается сервер центрального (головного) офиса (рис.5.1).

Рис.5.1. Метод консолидации данных

Данные в БД – Master используются для подготовки отчетности, проведения анализа, выработки и принятия решения, а также как источник данных для других филиалов корпорации.

Наиболее распространенными технологиями поддержки таких решений при консолидации являются технологии:

· Извлечение, преобразование и загрузка - ETL (Extract Transform Load);

· Управление содержанием корпорации - ECM (Enterprise Content Management).

Достоинствами метода консолидации являются:

1. Возможность осуществлять трансформацию (реструктуризацию, согласование, очистку и/или агрегирование) значительных объемов данных в процессе их передачи от первичных систем к конечным местам хранения за счет технологии ETL,

2. Возможность управления неструктурированными данными , такими как документы, отчеты и страницы благодаря технологическим решениям ECM.

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

Недостатком интеграции посредством консолидации является невозможность обновления консолидированных данных в интегрированном месте хранения синхронно с обновлениями данных в первичных системах из-за возникающих конфликтов при синхронизации.

Наличие задержки времени между моментами обновления данных в первичных системах и в конечном месте хранения.

Такое отставание может составлять от нескольких секунд до нескольких часов или даже дней.

Федерализация. Под федерализацией обычно понимается объединение. Подобный термин часто используется в политике при обустройстве границ государства (например, ФРГ, РФ, США).

Процесс федерализации данных в корпоративной базе представляет собой создание виртуальной (кажущейся) картины, объединяющей в единое виртуальное целое несколько первичных файлов данных (см.рис.5.2). Собственно федерализация данных заключается в извлечении данных из первичных систем на основании внешних требований. Управление работой корпоративной БД интегрированной по федеральному методу осуществляет процессор федерализации.

Рис.2. Метод федерализации данных

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

Поддержку федеративного подхода к интеграции данных обеспечивает технология Enterprise information integration (E I I), что в переводе означает – Интеграция корпоративной информации.

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

Основными достоинствами федеративного подхода являются:

· возможность доступа к текущим данным без создания дополнительной новой базы данных,

· целесообразность применения после приобретения или слияния компаний,

· незаменимость в тех случаях, когда по соображениям безопасности существуют лицензионные ограничения на копирование данных первичных систем,

· использование при необходимости высокой автономии местных подразделений корпорации и гибкости централизованного контроля их деятельности,

· высокая степень полезности для крупных транснациональных корпораций.

К недостаткам подхода следует отнести:

· Снижение производительности из-за дополнительных затрат на доступ к многочисленным источникам данных,

· федерализация наиболее приемлема для извлечения небольших массивов данных,

· высокие требования к качеству первичных данных.

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

Примерами технологий, поддерживающих реализацию метода распространения данных, являются:

· Интеграция корпоративных приложений EAI – Enterprise Application Integration,

· Тиражирование корпоративных данных EDR – Enterprise Data Replication.

Обобщенная структура реализации метода распространения данных имеет вид рис.5.3.

Рис.5.3. Метод распространения данных

Отличительным признаком метода распространения данных является гарантированная доставка данных в систему назначения с минимальной задержкой, близкой к реальному режиму времени.

Сочетание в методе технологий интеграции (EAI) и тиражирования (EDR) дает множественные преимущества, в виде следующих достоинств:

· Высокая производительность,

· Возможность реструктуризации и очистки данных,

· Уравновешивание нагрузки за счет создания резервных копий и восстановления данных.

Гибридный подход. Реалии экономической деятельности таковы, что не существует двух одинаковых предприятий, тем более двух одинаковых корпораций. Данное обстоятельство накладывает свой отпечаток на процесс создания и наполнения КИС. Это всецело относится и к методам интеграции данных в базах. По этой причине многие КИС используют в своих приложениях интеграции данных так называемый гибридный подход, который одновременно включает несколько методов интеграции.Примерами такого подхода служат технологии, обеспечивающие согласованную картину информации о клиентах:

· Интеграция данных о клиентах в системахCDI – Customer Data Integration,

· Интеграция данных о клиентах в модуляхCRM – Customer Relations Management.

В частности, подход к реализации CDI может быть выполнен различными путями.

Наиболее простой способ – это создание консолидированной базы данных о клиентах, которая содержит данные от первичных систем. При этом отставание информации может регулироваться использованием различных режимов консолидации: оперативного или пакетного в зависимости от частоты обновления этой информации.

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

Таким образом, общие (например, реквизиты) данные о клиентах могут быть консолидированы, как наиболее статические данные. А более динамичные данные (например, сведения о заказах) можно подвергнуть федерализации.

Более того, гибридный подход может быть расширен использованием метода распространения данных. Например, клиент, пользующийся услугами Интернет – магазина, во время обслуживания изменяет свои реквизиты. Эти изменения могут быть отправлены в консолидированную часть БД, а оттуда распространены во все первичные системы, содержащие данные о клиентах магазина.

Памятуя о достоинствах и недостатках каждого из методов целесообразно творчески подходить к их применению и совместному использованию.

Так, например, федерализацию данных целесообразно использовать в тех случаях, когда затраты на консолидацию данных превышают выгоды бизнес – преимуществ, которые консолидация предоставляет. В частности, оперативная обработка запросов и подготовка отчетов именно такая ситуация.

Практическое применение метода распространения данных отличается большим разнообразием, как в плане производительности, так и в отношении возможностей по реструктуризации и очистки данных.

5.4. Понятие и структурные решения хранилищ данных

Хранилище данных – это предметно-ориентированный интегрированный накопитель информации, аккумулирующий в себе внешние и оперативные данные, а также данные из других систем, на основе которых строятся процессы принятия решений и анализа данных.

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

В основе концепции хранилищ данных положены две основные идеи:

1. Интеграция разъединенных детализированных данных (описывающих конкретные факты, свойства, события и т.д.) в едином хранилище.

2. Разделение наборов данных и приложений, используемых для обработки и анализа.

Хранилище данных организуется в тех случаях, когда необходимо получить:

· Интеграцию текущих и исторических значений данных,

· Объединение данных из разрозненных источников,

· Создание надежной платформы данных для аналитических целей,

· Обеспечение однородности данных в организации,

· Облегчение внедрения корпоративных стандартов данных без изменения существующих операционных систем,

· Обеспечение широкой исторической картины и возможностей для анализа тенденций развития.

Исторически хранилища данных строились по одно- двух и трехуровневой схеме.

Одноуровневые схемы изначально предназначались для наиболее простых архитектур, к которым относятся функциональные СППР, с недостаточно развитой информационной инфраструктурой, когда анализ осуществляется с использованием данных из оперативных систем, по принципу: данные - формы представления.

Достоинствами таких схем являются:

· Быстрая передача данных из оперативных систем в специализированную систему без промежуточных звеньев,

· Минимум затрат за счет использования единой платформы.

Недостатки:

· Узкий круг решаемых вопросов из-за единственного источника данных,

· Низкое качество данных ввиду отсутствия этапа очистки.

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

Достоинства:

· Используемые витрины проектируются для ответов на конкретный ряд вопросов,

· Имеется возможность оптимизировать данные в витринах, что способствует повышению производительности.

Недостатки:

· Сложность обеспечения непротиворечивости данных из-за многократного их повторения в витринах,

· Потенциальная сложность наполнения витрин при большом числе источников данных,

· В виду отсутствия консолидации данных на уровне корпорации нет единой картины бизнеса.

Эволюция развития привела к тому, что построение полноценного хранилища данных для современных корпоративных систем стало выполняться по трехуровневой архитектуре (см. рис.5.4).

На первом уровне расположены разнообразные регистрирующие системы, являющиеся источниками данных. Такими системами могут быть системы планирования ресурсов предприятия (ERP – Enterprise Resource Planning), справочные (оперативные) системы, внешние источники или системы, поставляющие данные от информационных агентств и др.

На втором уровне содержится центральное хранилище, куда стекаются данные от всех источников первого уровня, а также оперативный склад данных, который предназначен для выполнения двух функций:

· Склад является источником аналитической информации, используемой для оперативного управления,

· В оперативном складе подготавливаются данные для последующей загрузки в центральное хранилище. Под подготовкой данных подразумевается проведение проверок и преобразование данных в связи с различным регламентом поступления данных от первого уровня.

Третий уровень представляет собой совокупность предметно-ориентированных витрин данных.

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

Рис.5.4. Архитектура хранилища данных

Основными технологическими операциями подобным образом организованных хранилищ данных являются:

· Извлечение данных – это процесс переноса данных из неоднородных источников в оперативный склад,

· Преобразование данных – это модификация данных на основе специальных правил с последующей передачей их в центральное хранилище,

· Очистка данных – это исключение дублирования данных, поступающих от разных источников,

· Обновление данных – это распространение обновления данных на исходные данные базовых таблиц и производные данные, размещенные в хранилище.

Достоинства:

· Наполнение витрин упрощено ввиду использования единого источника очищенных данных,

· Витрины данных синхронизированы с корпоративной бизнес – картиной, что позволяет легко расширить центральное хранилище и добавить витрины данных,

· Гарантированная производительность.

Недостатки:

· Наличие избыточности данных, ведущее к росту требований к технологии хранения данных,

5. 5.Системы управления базами данных и технологии доступа к данным в КИС

Система управления базой данных (СУБД) – это комплекс языковых и программных средств, предназначенных для создания, ведения и совместного использования базы данных одним или многими пользователями.

В настоящее время наиболее широкое распространение получили СУБД, построенные на основе реляционной модели данных, описываемой строгим математическим аппаратом теории отношений.

Особенностью СУБД работающих в КИС является тот факт, что им приходится управлять базами данных, размещенными на носителях, распределенных в пространстве.

В интересах исключения дополнительного дублирования или копирования данных в КИС основной упор делается на принцип удаленной обработки данных. Базы данных в КИС содержат данные, необходимые многим пользователям. Получение одновременного доступа нескольких пользователей к базе данных возможно при установке в локальной компьютерной сети СУБД, работающих с пользователями и с единой базой данных.

Основными технологическими решениями при многопользовательской работе с базами данных являются файл/серверные и клиент/серверные технологии. Взяв наиболее приемлемый вариант из этих технологий, клиент/сервер в КИС организуются специализированные системы обработки распределенных баз данных. При этом управление распределенными базами данных осуществляется таким образом, что данные распределяются не на логическом, а на физическом уровне и сама база данных рассматривается как единая "суперсхема". В распределенной базе данных функции администратора распределяются между администратором интегрированной базы данных и администраторами локальных баз данных. Администратор интегрированной базы данных следит за разграничением доступа разных пользователей к базе данных и обеспечивает целостность и сохранность данных, а также защиту данных от одновременной их корректировки несколькими пользователями. Разграничение доступа осуществляется в соответствии с правами, предоставляемыми отдельным пользователям в сетевой операционной системе.

Характерной особенностью созданных с помощью СУБД программ для работы с удаленными и распределенными корпоративными базами данных является использование открытого интерфейса доступа к данным – ODBC (Open Data Base Connectivity). Все функции по передаче данных возлагаются на интерфейс ODBC, который является связующим мостом между СУБД интегрированной базы и СУБД клиентских приложений. При этом СУБД клиента могут взаимодействовать не только со своими локальными базами, но и с данными, расположенными в интегрированной базе. Клиент имеет возможность посылать запросы на СУБД интегрированной базы, получать по ним данные и пересылать собственные обновленные данные.

Отраслевые модели данных

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

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

Модель данных однозначно определяет значение данных, которые в данном случае представляют собой структурированные данные (в противоположность неструктурированным данным, таким как, например, изображение, бинарный файл или текст, где значение может быть неоднозначным).

Как правило, выделяются модели более высокого уровня (и более общие по содержанию) и более низкого (соответственно, более детальные). Верхний уровень моделирования – это так называемые концептуальные модели данных (conceptual data models), которые дают самую общую картину функционирования предприятия или организации. Концептуальная модель включает основные концепции или предметные области, критичные для функционирования организации; обычно их количество не превышает 12-15. Такая модель описывает классы сущностей, важных для организации (бизнес-объекты), их характеристики (атрибуты) и ассоциации между парами этих классов (т.е. связи). Поскольку в бизнес-моделировании терминология еще окончательно не устоялась, в различных англоязычных источниках концептуальные модели данных могут также носить название subject area model (что можно перевести как модели предметных областей) или subject enterprise data model (предметные корпоративные модели данных).

Следующий иерархический уровень – это логические модели данных (logical data models). Они также могут называться корпоративными моделями данных или бизнес-моделями. Эти модели содержат структуры данных, их атрибуты и бизнес-правила и представляют информацию, используемую предприятием, с точки зрения бизнес-перспективы. В такой модели данные организованы в виде сущностей и связей между ними. Логическая модель представляет данные таким образом, что они легко воспринимаются бизнес-пользователями. В логической модели может быть выделен словарь данных – перечень всех сущностей с их точными определениями, что позволяет различным категориям пользователей иметь общее понимание всех входных и информационных выходных потоков модели. Следующий, более низкий уровень моделирования – это уже физическая реализация логической модели с помощью конкретных программных средств и технических платформ.

Логическая модель содержит детальное корпоративное бизнес-решение, которое обычно принимает форму нормализованной модели. Нормализация – это процесс, который гарантирует, что каждый элемент данных в модели имеет только одно значение и полностью и однозначно зависит от первичного ключа. Элементы данных организуются в группы согласно их уникальной идентификации. Бизнес-правила, управляющие элементами данных, должны быть полностью включены в нормализованную модель с предварительной проверкой их достоверности и корректности. Например, такой элемент данных, как Имя клиента, скорее всего, будет разделен на Имя и Фамилию и сгруппирован с другими соответствующими элементами данных в сущность Клиент с первичным ключом Идентификатор клиента.

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

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

У компании может быть два пути создания корпоративной логической модели данных: строить ее самостоятельно или воспользоваться готовой отраслевой моделью (industry logical data model). В данном случае различия в терминах отражают лишь разные подходы к построению одной и той же логической модели. В том случае, если компания самостоятельно разрабатывает и внедряет собственную логическую модель данных, то такая модель, как правило, носит название просто корпоративной логической модели. Если же организация решает воспользоваться готовым продуктом профессионального поставщика, то тогда можно говорить об отраслевой логической модели данных. Последняя представляет собой готовую логическую модель данных, с высокой степенью точности отражающую функционирование определенной отрасли. Отраслевая логическая модель – это предметно-ориентированный и интегрированный вид всей информации, которая должна находиться в корпоративном Хранилище данных для получения ответов как на стратегические, так и на тактические бизнес-вопросы. Как и любая другая логическая модель данных, отраслевая модель не зависит от прикладных решений. Она также не включает производные данные или другие вычисления для более быстрого извлечения данных. Как правило, большинство логических структур такой модели находят хорошее воплощение в ее эффективной физической реализации. Такие модели разрабатываются многими поставщиками для самых различных областей деятельности: финансовой сферы, производства, туризма, здравоохранения, страхования и т.д.

Отраслевая логическая модель данных содержит информацию, общую для отрасли, и поэтому не может быть исчерпывающим решением для компании. Большинству компаний приходится увеличивать модель в среднем на 25% за счет добавления элементов данных и расширения определений. Готовые модели содержат только ключевые элементы данных, а остальные элементы должны быть добавлены к соответствующим бизнес-объектам в процессе установки модели в компании.

Отраслевые логические модели данных содержат значительное количество абстракций. Под абстракциями имеется в виду объединение аналогичных понятий под общими названиями, такими как Событие или Участник. Это добавляет отраслевым моделям гибкости и делает их более унифицированными. Так, понятие События применимо ко всем отраслям.

Специалист в области бизнес-аналитики (Business Intelligence) Стив Хобермэн (Steve Hoberman) выделяет пять факторов, которые необходимо принимать во внимание при решении вопроса о приобретении отраслевой модель данных. Первый – это время и средства, необходимые для построения модели. Если организации необходимо быстро добиться результатов, то отраслевая модель даст преимущество. Использование отраслевой модели не может немедленно обеспечить картину всей организации, но способно сэкономить значительное количество времени. Вместо собственно моделирования время будет потрачено на связывание существующих структур с отраслевой моделью, а также на обсуждение того, как лучше ее настроить под нужды организации (например, какие определения должны быть изменены, а какие элементы данных – добавлены).

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

Третий фактор – опыт в оценке рисков и моделировании. Создание корпоративной модели данных требует квалифицированных ресурсов как со стороны бизнеса, так и IT-персонала. Как правило, менеджеры хорошо знают либо работу организации в целом, либо деятельность конкретного отдела. Лишь немногие их них обладают как широкими (в масштабах всей компании), так и глубокими (в рамках подразделений) знаниями о своем бизнесе. Большинство менеджеров обычно хорошо знают только одну область. Поэтому, для того чтобы получить общекорпоративную картину, требуются существенные бизнес-ресурсы. Это увеличивает и требования к IT-персоналу. Чем больше бизнес-ресурсов требуется для создания и тестирования модели, тем более опытными должны быть аналитики. Они должны не только знать, как получить информацию от бизнес-персонала, но также уметь находить общую точку зрения в спорных областях и быть способными представлять всю эту информацию в интегрированном виде. Тот, кто занимается созданием модели (во многих случаях это тот же аналитик), должен обладать хорошими навыками моделирования. Создание корпоративных логических моделей требует моделирования «для будущего» и способности конвертировать сложный бизнес в буквальном смысле «в квадраты и линии».

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

Четвертый фактор – существующая инфраструктура приложений и связи с поставщиками. Если организация уже использует много инструментов одного и того же поставщика и имеет налаженные связи с ним, то имеет смысл и отраслевую модель заказывать у него же. Такая модель сможет свободно работать с другими продуктами этого же поставщика.

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

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

Отраслевые модели данных обеспечивают компаниям единое интегрированное представление их бизнес-информации. Многим компаниям бывает непросто осуществить интеграцию своих данных, хотя это является необходимым условием для большинства общекорпоративных проектов. По данным исследования Института Хранилищ данных (The Data Warehousing Institute, TDWI), более 69% опрошенных организаций обнаружили, что интеграция является существенным барьером при внедрении новых приложений. Напротив, осуществление интеграции данных приносит компании ощутимый доход.

Отраслевая модель данных, помимо связей с уже существующими системами, дает большие преимущества при осуществлении общекорпоративных проектов, таких как планирование ресурсов предприятия (Enterprise Resource Planning, ERP), управление основными данными, бизнес-аналитика, повышение качества данных и повышение квалификации сотрудников.

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

Публикации

  1. Стив Хобермэн (Steve Hoberman). Использование отраслевой логической модели данных в качестве корпоративной модели (Leveraging the Industry Logical Data Model as Your Enterprise Data Model).
  2. Клодиа Имхоф (Claudia Imhoff). Оперативное создание Хранилищ данных и выполнение проектов Business Intelligence с помощью моделирования данных (Fast-Tracking Data Warehousing & Business Intelligence Projects via Intelligent Data Modeling)

Корпоративная база данных является центральным звеном корпоративной информационной системы и позволяет создать единое информационное пространство корпорации. Корпоративные базы данных


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск

ТЕМА V. КОРПОРАТИВНЫЕ БАЗЫ ДАННЫХ

V .1. Организация данных в корпоративных системах. Корпоративные базы данных.

V .2. СУБД и структурные решения в корпоративных системах.

V .3. Технологии Internet / Intranet и корпоративные решения по доступу к базам данных.

V .1. ОРГАНИЗАЦИЯ ДАННЫХ В КОРПОРАТИВНЫХ СИСТЕМАХ. КОРПОРАТИВНЫЕ БАЗЫ ДАННЫХ

Корпоративная база данных является центральным звеном корпоративной информационной системы и позволяет создать единое информационное пространство корпорации. Корпоративные базы данных (рис.1.1).

Существуют различные определения баз данных.

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

Можно термин база данных кратко сформулировать как совокупность логически связанных данных, предназначенных для совместного использования.

Под базой данных понимается совокупность хранящихся вместе данных при наличии такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений.

Цель создания баз данных как формы хранения данных построение системы данных, не зависящих от принятых алгоритмов (программного обеспечения), применяемых технических средств, физического расположения данных в ЭВМ. База данных предполагает многоцелевое использование (несколько пользователей, множество форм документов и запросов одного пользователя).

Основные требования к базам данных:

  • Полнота представления данных. Данные в базе должны адекватно представлять всю информацию об объекте и их должно быть достаточно для СОД.
  • Целостность базы данных. Данные должны сохранятся при обработке их СОД и в любых ситуациях, возникающих в процессе работы.
  • Гибкость структуры данных. База данных должна позволять изменять структуры данных, не нарушая своей целостности и полноты при изменении внешних условий.
  • Реализуемость. Это значит, что должно быть объективное представление разнообразных объектов, их свойств и отношений.
  • Доступность. Необходимо обеспечить разграничение доступа к данным.
  • Избыточность. База данных должна иметь минимальную избыточность представления данных о каком-либо объекте.

Под знаниями понимают совокупность фактов, закономерностей и эвристических правил, с помощью которых можно решать поставленную задачу.

База знаний (БЗ)  совокупность баз данных и используемых правил, полученных от лиц, принимающих решения. База знаний является элементом экспертных систем.

Следует различать различные способы представления данных .

Физические данные – это данные, хранящиеся в памяти ЭВМ.

Логическое представление данных соответствует пользовательскому представлению физических данных. Различие между физическим и соответствующим логическим представлением данных состоит в том, что последнее отражает некоторые важные взаимосвязи между физическими данными.

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

Рис. 1.1. Структура взаимодействия подразделений с информационными ресурсами корпорации.

Корпоративные базы данных бывают сосредоточенные (централизованные ) и распределенные.

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

Рис.1.2. Схема гетерогенной централизованной базы данных

Централизация обработки информации позволила устранить такие недостатки традиционных файловых систем, как несвязность, несогласованность и избыточность данных. Однако, по мере роста баз данных и, особенно при их использовании в территориально разделенных организациях, появляются проблемы. Например, для сосредоточенных баз данных, находящейся в узле телекоммуникационной сети, с помощью которой различные подразделения организации получают доступ к данным, с ростом объема информации и количества транзакций возникают следующие трудности:

  • Большой поток обмена данными;
  • Высокий трафик в сети;
  • Низкая надежность;
  • Низкая общая производительность.

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

  • Более высокая степень одновременности обработки вследствие распределения нагрузки;
  • Улучшение использования данных на местах при выполнении удаленных (дистанционных) запросов;
  • Меньшие затраты;
  • Простота управления локальными базами.

Затраты на создание сети, в узлах которой находятся рабочие станции (малые ЭВМ), гораздо ниже, чем затраты на создание аналогичной системы с использованием большой ЭВМ. На Рис.1.3 приведена логическая схема распределенной базы данных.

Рис.1.3. Распределенная база данных корпорации.

Дадим следующее определение распределенной базы данных.

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

Важнейшие требования к характеристикам распределенной базы данных таковы:

  • Масштабируемость;
  • Совместимость;
  • Поддержка различных моделей данных;
  • Переносимость;
  • Прозрачность расположения;
  • Автономность узлов распределенной базы данных (Site Autonomy);
  • Обработка распределенных запросов;
  • Выполнение распределенных транзакций.
  • Поддержка однородной системы безопасности.

Прозрачность расположения позволяет пользователям работать с базами данных, не зная ничего об их расположении. Автономность узлов распределенной базы данных означает, что ведение каждой базы может происходить независимо от других. Распределенный запрос - это такой запрос (SQL-предложение), в ходе выполнения которого происходит доступ к объектам (таблицам или представлениям) разных баз данных. При выполнении распределенных транзакций осуществляется согласованное управление (concurrency control) всеми вовлеченными базами данных. Oracle7 использует технологию двухфазной передачи информации для выполнения распределенных транзакций.

Базы данных, составляющие распределенную базу данных, не обязательно должны быть однородными (т.е. вестись одной СУБД) или обрабатываться в среде одной и той же операционной системы и/или на компьютерах одного и того же типа. Например, одна база данных может быть базой Oracle на компьютере SUN с операционной системой SUN OS(UNIX), вторая база данных может вестись СУБД DB2 на мейнфрейме IBM 3090 с операционной системой MVS, а для ведения третьей базы может использоваться СУБД SQL/DS также на мейнфрейме IBM, но с операционной системой VM. Обязательно только одно условие - все машины с базами данных должны быть доступны по сети, в которую они входят.

Основная задача распределенной базы данных – распределение данных по сети и обеспечения доступа к ней. Существуют следующие способы решения этой задачи:

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

При создании распределенной базы данных на концептуальном уровне приходится решать следующие задачи:

  • Необходимо иметь единую концептуальную схему всей сети. Это обеспечит логическую прозрачность данных для пользователя, в результате чего он сможет сформировать запрос ко всей базе, находясь за отдельным терминалом (он как бы работает с централизованной базой данных).
  • Необходима схема, определяющая местонахождение данных в сети. Это обеспечит прозрачность размещения данных, благодаря которой пользователь может не указывать, куда переслать запрос, чтобы получить требуемые данные.
  • Необходимо решить проблему неоднородности распределенных баз данных. Распределенные базы могут быть однородными и неоднородными в смысле аппаратных и программных средств. Проблема неоднородности сравнительно легко решается, если распределенная база данных является неоднородной в смысле аппаратных средств, но однородной в смысле программных средств (одинаковые СУБД в узлах). Если же в узлах распределенной системы используются разные СУБД, необходимы средства преобразования структур данных и языков. Это должно обеспечить прозрачность преобразования в узлах распределенной базы данных.
  • Необходимо решить проблему управления словарями. Для обеспечения всех видов прозрачности в распределенной базе данных нужны программы, управляющие многочисленными словарями и справочниками.
  • Необходимо определить методы выполнения запросов в распределенной базе данных. Методы выполнения запросов в распределенной базе данных отличаются от аналогичных методов в централизованных базах, так как отдельные части запросов нужно выполнять на месте расположения соответствующих данных и передавать частичные результаты на другие узлы; при этом должна быть обеспечена координация всех процессов.
  • Необходимо решить проблему параллельного выполнения запросов. В распределенной базе нужен сложный механизм управления одновременной обработкой, который, в частности, должен обеспечить синхронизацию при обновлениях информации, что гарантирует непротиворечивость данных.
  • Необходима развитая методология распределения и размещения данных, включая расщепление, является одним из основных требований к распределенной базе данных.

К одному из активно развивающихся новых направлений архитектуры вычислительных систем, представляющее собой мощное средство нечисловой обработки информации, являются машины баз данных . Машины баз данных используются для решения нечисловых задач, таких как хранение, поиск и преобразование документов и фактов, работа с объектами. Следуя определению данных как цифровые и графические сведения об объектах окружающего мира, в понятие данные при числовой и нечисловой обработке вкладывается различное содержание. При числовой обработке используются такие объекты, как переменные, векторы, матрицы, многомерные массивы, константы и так далее, в то время, как при нечисловой обработке объектами могут быть файлы, записи, поля, иерархии, сети, отношения и т. д. При нечисловой обработке интересуют непосредственно сведения об объектах (например, конкретный служащий или группа служащих), а не файл служащих как таковой. Здесь не индексируется файл служащих для выбора конкретного человека; здесь больше интересует содержание искомой записи. Нечисловой обработке обычно подвергаются огромные объемы информации. В различных приложениях над этими данными можно выполнить, например, такие операции:

  • повысить зарплату всем служащим компании;
  • вычислить банковский процент по счетам всех клиентов;
  • внести изменения в список всех товаров, имеющихся на складе;
  • найти требуемый реферат из всех текстов, хранимых в библиотеке или в библиографической информационно-поисковой системе;
  • найти описание нужного контракта в файле, содержащем юридические документы;
  • просмотреть все файлы, содержащие описание патентов, и найти патент (если он есть), аналогичный предлагаемому вновь.

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

Машины баз данных приобретают важное значение в связи с исследованием и применением концепций искусственного интеллекта, таких, как представление знаний, экспертные системы, логический вывод, распознавание образов и т. д.

Информационные хранилища. Сегодня многие признают, что уже сейчас в большинстве компаний эксплуатируется несколько БД и, для успешной работы с информацией, требуются не просто разнотипные базы данных, а разные поколения СУБД. Согласно статистике, в каждой организации используется в среднем 2,5 различных СУБД. Стала очевидной необходимость "изолировать" бизнес компаний, вернее, людей, занимающихся этим бизнесом, от технологических особенностей баз данных, предоставить пользователям единый взгляд на корпоративную информацию независимо от того, где она физически хранится. Это стимулировало появление технологии информационных хранилищ ( Data Warehousing, DW).

Основная цель DW - создание единого логического представления данных, содержащихся в разнотипных БД, или, другими словами, единой модели корпоративных данных.

Новый виток развития DW стал возможным благодаря совершенствованию информационных технологий в целом, в частности появлению новых типов баз данных на основе параллельной обработки запросов, которые в свою очередь опирались на достижения в области параллельных компьютеров. Были созданы программы-конструкторы запросов с интуитивным графическим интерфейсом, позволившие легко строить сложные запросы к БД. Разнообразное ПО промежуточного слоя (midleware) обеспечило связь между разнотипными базами данных , и, наконец, резко подешевели устройства хранения информации .

В структуре корпорации может присутствовать банк данных.

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

Банк данных рассматривают как информационно-справочную систему, основное назначение которой состоит:

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

Таким образом, современный банк данных представляет собой сложный программно-технический комплекс, в состав которого входят технические, системные и сетевые средства, базы данных и СУБД, информационно-поисковые системы различного назначения.

V .2. СУБД И СТРУКТУРНЫЕ РЕШЕНИЯ В КОРПОРАТИВНЫХ СИСТЕМАХ

Системы управления базами данных и знаний

Важной составляющей современных информационных систем являются системы управления базами данных (СУБД).

СУБД – комплекс программных и языковых средств, предназначенных для создания, ведения и использования баз данных.

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

Основная особенность современных СУБД - это то, что современные СУБД поддерживают такие технологии как:

  • Технологию клиент/сервер.
  • Поддержка языков БД. Это язык определения схемы БД (SDL - Schema Definition Language), язык манипулирования данными (DML - Data Manipulation Language), интегрированные языки SQL (Structured Queue Language), QDB (Query - By - Example) и QMF (Query Management Facility ) – развитое периферийное средство спецификации запросов и генерации отчетов для DB 2 и т. д.;
  • Непосредственное управление данными во внешней памяти.
  • Управление буферами оперативной памяти.
  • Управление транзакциями. OLTP – технология (On -Line Transaction Processing), OLAP – технология (On -Line Analysis Processing) для DW.
  • Обеспечить защиту и целостность данных. Использование системы разрешается лишь пользователям, имеющим право доступа к данным. При выполнении пользователями операций над данными поддерживается согласованность хранящихся данных (целостность). Это важно в корпоративных многопользовательских информационных системах.
  • Журнализация.

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

  • Независимость данных.
  • Универсальность. СУБД должна обладать мощными средствами поддержки концептуальной модели данных для отображения пользовательских логических представлений.
  • Совместимость. СУБД должна сохранять работоспособность при развитии программного и аппаратного обеспечения.
  • Неизбыточность данных. В отличие от файловых систем база данных должна представлять собой единую совокупность интегрированных данных.
  • Защита данных. СУБД должна обеспечивать защиту от несанкционированного доступа.
  • Целостность данных. СУБД должна предотвращать нарушение базы данных пользователями.
  • Управление одновременной работой. СУБД должна предохранять базу данных от рассогласований в режиме коллективного доступа. Для обеспечения согласованного состояния базы все запросы пользователей (транзакции) должны выполняться в определенном порядке.
  • СУБД должна быть универсальной. Она должна поддерживать разные модели данных на единой логической и физической основе.
  • СУБД должна поддерживать как централизованные, так и распределенные базы данных и, таким образом, стать важным звеном вычислительных сетей.

Рассматривая СУБД как класс программных продуктов, ориентированных на поддержание в автоматизированных системах баз данных, можно выделить два наиболее существенных признака, определяющих типы СУБД. Согласно им, СУБД можно рассматривать с двух точек зрения:

  • их возможностей по отношению к распределенным (корпоративным) базам;
  • их отношения к типу реализуемой в СУБД модели данных.

По отношению к корпоративным (распределенным) базам данных условно можно выделить следующие типы СУБД:

  • СУБД «рабочего стола». Эти продукты, в первую очередь ориентированы на работу с персональными данными (данные "рабочего стола"). Они имеют наборы команд для совместного использования общих БД, но небольшого размера (типа малого офиса). Прежде всего, это СУБД типа Ассеss, dВАSЕ, Рагаdох, ЕохРго. Почему Ассеss, dВАSЕ, Рагаdох, ЕохРго имеют неудовлетворительный доступ к корпоративным данным. Дело в том, что не существует простого способа преодолеть барьер между персональными и корпоративными данными. И суть даже не в том, что механизм СУБД персональных данных (или малого офиса) ориентирован на доступ к данным через многие шлюзы, межсетевые продукты и т.д. Проблема состоит в том, что эти механизмы обычно связаны с полной передачей файлов и отсутствием разветвленной поддержки индексов, в результате чего очереди к серверу практически останавливают работу в больших системах.
  • Специализированные высокопроизводительные многопользовательские СУБД. Такие СУБД характеризуются наличием многопользовательского ядра системы, языка манипулирования данными и следующими функциями, характерными для развитых многопользовательских СУБД:
  • организацией буферного пула;
  • наличием системы обработки очередей транзакций;
  • наличием механизмов многопользовательской блокировки данных;
  • ведением журнала транзакций;
  • наличием механизмов разграничения доступа.

Это СУБД типа Oracle, DВ2, SQL/Server, Informix, Sybase, ADABAS, Titanium и другие предоставляют широкий сервис для обработки корпоративных БД.

При работе с базами данных используется механизм транзакций.

Транзакция – это логическая единица работы.

Транзакция - это последовательность операторов манипулирования данными, выполняющаяся как единое целое (все или ничего) и переводящая базу данных из одного целостного состояния в другое целостное состояние .

Транзакция обладает четырьмя важными свойствами, известными как свойства АСИД:

  • (А) Атомарность . Транзакция выполняется как атомарная операция - либо выполняется вся транзакция целиком, либо она целиком не выполняется.
  • (С) Согласованность . Транзакция переводит базу данных из одного согласованного (целостного) состояния в другое согласованное (целостное) состояние. Внутри транзакции согласованность базы данных может нарушаться.
  • (И) Изоляция . Транзакции разных пользователей не должны мешать друг другу (например, как если бы они выполнялись строго по очереди).
  • (Д) Долговечность . Если транзакция выполнена, то результаты ее работы должны сохраниться в базе данных, даже если в следующий момент произойдет сбой системы.

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

  • Подана команда COMMIT WORK (зафиксировать транзакцию).
  • Подана команда ROLLBACK WORK (откатить транзакцию).
  • Произошло отсоединение пользователя от СУБД.
  • Произошел сбой системы.

Для пользователя она носит, как правило, атомарный характер . На самом деле это сложный механизм взаимодействия пользователь (приложение) – база данных. Программное обеспечение корпоративных систем используют механизм обработки транзакций в реальном времени (On-lineTransaction Processing Systems, OLTP ), в частности программы бухгалтерского учета, программное обеспечение приема и обработки клиентских заявок, финансовые приложения, производят массу информации. Эти системы рассчитаны (и соответствующим образом оптимизированы) на обработку больших объемов данных, выполнение сложных транзакций и интенсивных операций чтения/записи.

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

Доставкой информации конечному пользователю - занимаются системы аналитической обработки данных в реальном времени (On-line Analytical Processing, OLAP) , которые обеспечивают исключительно простой доступ к данным за счет удобных средств генерации запросов и анализа результатов. В OLAP-системах ценность информационного товара увеличивается благодаря применению разнообразных методов анализа и статистической обработки. Кроме того, эти системы оптимизированы с точки зрения скорости извлечения данных, сбора обобщенной информации и ориентированы на рядовых пользователей (имеют интуитивно понятный интерфейс). Если OLTP-система выдает ответы на простые вопросы типа "каков был уровень продаж товара N в регионе M в январе 199х г.?", то OLAP- системы готовы к более сложным запросам пользователей, например: "Дать анализ продаж товара N по всем регионам по плану на второй квартал в сравнении с двумя предыдущими годами".

Архитектура клиент/сервер

В современных системах распределенной обработки информации , центральное место занимают технологии клиент/сервер. В системе архитектуры клиент-сервер обработка данных разделена между компьютером-клиентом и компьютером-сервером, связь между которыми происходит по сети. Это разделение процессов обработки данных основано на группировании функций. Как правило, компьютер-сервер баз данных выделяется для выполнения операций с базами данных, а компьютер-клиент выполняет прикладные программы. На рисунке 2.1 показана простая система архитектуры клиент-сервер, в состав которой входят компьютер, действующий как сервер, и другой компьютер, действующий как его клиент. Каждая машина выполняет различные функции и имеет свои собственные ресурсы.

База данных

Компьютер-сервер

Сеть

IBM-совместимый ПК

IBM-совместимый ПК

IBM-совместимый ПК

Приложения

Рис. 2.1. Система архитектуры клиент-сервер

Основная функция компьютера-клиента состоит в выполнении приложения (интерфейса с пользователем и логики представления) и осуществлении связи с сервером, когда этого требует приложение.

Сервер (Server) – это объект (ЭВМ), предоставляющий услуги другим объектам по их запросам.

Как следует уже из самого термина, главная функция компьютера-сервера заключается в обслуживании потребностей клиента. Термин "Сервер" используется для обозначения двух различных групп функций: файл-сервер и сервер баз данных (далее эти термины означают в зависимости от контекста либо программное обеспечение, реализующее указанные группы функций, либо компьютеры с этим программным обеспечением). Файл-серверы не предназначены для выполнения операций с базами данных, их основная функция - разделение файлов между несколькими пользователями, т.е. обеспечение одновременного доступа многих пользователей к файлам на компьютере - файл-сервере. Примером файл-сервера является операционная система NetWare компании Novell. Сервер баз данных можно установить и привести в действие на компьютере -- файл-сервере. СУБД Oracle в виде NLM (Network Loadable Module) выполняется в среде NetWare на файл-сервере.

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

Одно из важных требований к серверу - это то, что операционная система, в среде которой размещен сервер баз данных, должна быть многозадачной (и, желательно, но не обязательно, многопользовательской). Например, СУБД Oracle, установленная на персональном компьютере с операционной системой MS-DOS (или PC-DOS), не удовлетворяющей требованию многозадачности, не может использоваться как сервер баз данных. И та же СУБД Oracle, установленная на компьютере с многозадачной (хотя и не многопользовательской) операционной системой OS/2, может быть сервером баз данных. Многие разновидности систем UNIX, MVS, VM и некоторые другие операционные системы являются и многозадачными, и многопользовательными.

Распределенные вычисления

Термин "распределенные вычисления" часто используется для обозначения двух различных, хотя и взаимодополнительных концепций:

  • Распределенная база данных;
  • Распределенная обработка данных.

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

Существует много типов серверов:

  • Сервер баз данных;
  • Сервер печати;
  • Сервер удаленного доступа;
  • Факс-сервер;
  • Web -сервер и т.д.

В основе базовой технологии Клиент/сервер лежат такие базовые технологии, как:

  • Технологии операционных систем, концепция взаимодействия открытых систем, создание объектно-ориентированных сред функционирования программ;
  • Телекоммуникационные технологии;
  • Сетевые технологии;
  • Технологии графического пользовательского интерфейса ( GUI);
  • И т.д.

Преимущества технологии клиент-сервер:

  • Технология клиент/сервер позволяет производить вычисления на неоднородных вычислительных средах. Независимость от платформ: доступ к разнородным сетевым средам, в состав которых входят компьютеры разных типов с различными операционными системами.
  • Независимость от источников данных: доступ к информации разнородных баз данных. Примеры таких систем -- DB2, SQL/DS, Oracle, Sybase.
  • Баланс загрузки клиента и сервера.
  • Выполнение вычислений там, где это происходит наиболее эффективно;
  • Предоставляют возможность эффективного масштабирования;
  • Межплатформные вычисления . Межплатформные вычисления определяются просто как реализация технологий в неоднородных вычислительных средах. Здесь должны быть обеспечены следующие возможности:
  • Приложение должно выполняться на нескольких платформах;
  • На всех платформах оно должно иметь один и тот же интерфейс и логику работы;
  • Приложение должно интегрироваться с родной операционной средой;
  • Оно должно одинаково вести себя на всех платформах;
  • Для него должна предусматриваться простая и согласованная поддержка.

Распределенные вычисления. Распределенные вычисления предусматривают распределение работ между несколькими вычислительными машинами (правда, распределенные вычисления более широкое понятие).

Разукрупнение. Разукрупнение – перенос приложений для больших ЭВМ на малые компьютерные платформы.

  • Снижение затрат на инфраструктуру и аппаратные средства. Экономичность: доступность недорогого компьютерного оборудования и все большее распространение локальных сетей делают технологию клиент-сервер экономичнее других технологий обработки данных. Оборудование может быть модернизировано, как только возникнет необходимость.

Сокращение общего времени выполнения приложения;

Уменьшение использования клиентом памяти;

Сокращение сетевого трафика.

  • Возможность работы с мультимедиа: к настоящему времени создано немало программ работы с мультимедиа для ПК. Подобных программ для конфигурации терминал-хост либо нет, либо они очень дороги.
  • Возможность привлечения больших вычислительных ресурсов для операций с базами данных: поскольку приложения выполняются на компьютерах-клиентах, на компьютере-сервере для операций с базами данных высвобождаются дополнительные (по сравнению с конфигурацией терминал-хост) ресурсы, такие, как вычислительные ресурсы центрального процессора и оперативная память.
  • Более высокая продуктивность работы программистов: производительность труда программистов возрастает благодаря использованию таких средств, как SQL*Forms и CASE: они позволяют разрабатывать приложения быстрее, чем такие языки программирования, как C, PL1 или COBOL.
  • Повышение продуктивности работы конечных пользователей: в настоящее время многие конечные пользователи освоили такие системы, как Lotus, Paradox, Word Perfect, Harvard Graphics и т.д.

Интерфейс серверной части определен и фиксирован. Поэтому возможно создание новых клиентских частей существующей системы (пример интероперабельности на системном уровне).

Рис. 2.2. Иллюстрация доступа клиентов к общему ресурсу сервера.

Как внедрить технологию клиент-сервер

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

  • компьютер-сервер базы данных;
  • компьютеры-клиентов;
  • коммуникационная сеть;
  • сетевое программное обеспечение;
  • прикладное программное обеспечение.

Язык SQL . Язык запросов высокого уровня - SQL (Structured Query Language ) служит для реализации запросов к базам данных, таких как ЯМД, ЯОД и ПЯД и принят в качестве стандарта. Язык SQL первоначально был принят в качестве языка данных программных изделий фирмы IBM и ЯМД реляционной СУБД SYSTEM R фирмы IBM . Важной особенностью языка SQL заключается в том, что один и тот же язык представляется через два различных интерфейса, а именно: через интерактивный интерфейс и через интерфейс прикладного программирования (динамический SQL). Динамический SQL состоит из множества возможностей встроенного языка SQL , предусмотренных специально для конструирования интерактивных приложений, где под интерактивным приложением понимается программа, которая написана для поддержки обращения к базе данных конечного пользователя, работающего на интерактивном терминале. Язык SQL обеспечивает выполнение функций определения, манипулирования и управления данными баз данных и является прозрачным для пользователя с точки зрения реализуемой СУБД.

Рис. 2.3. Схема выполнения запросов пользователя к распределенным базам данных.

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

Модель данных состоит из трех компонент:

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

Одной из важнейших характеристик работы СУБД является возможность связывать объекты.

Существуют следующие виды связей между объектами:

  • Один-к-Одному (1:1) . Один объект одного множества может быть связан с одним объектом другого множества.
  • Один-ко-Многим (1:M) . Один объект одного множества может быть связан со многими объектами другого множества.
  • Многие-ко-Многим (M:N) . Один объект одного множества может быть связан со многими объектами другого множества, но при этом один объект другого множества может быть связан со многими объектами первого множества.
  • Разветвленная . Один объект одного множества может быть связан с объектами многих множеств.
  • Рекурсивная . Один объект данного множества может быть связан объектом этого же множества.

Существуют следующие основные модели данных:

  • Реляционная модель данных.
  • Иерархическая модель данных.
  • Неполная сетевая модель данных.
  • Модель данных CODASYL.
  • Расширенная сетевая модель данных.

V .3. ТЕХНОЛОГИИ INTERNET / INTRANET И КОРПОРАТИВНЫЕ РЕШЕНИЯ ПО ДОСТУПУ К БАЗАМ ДАННЫХ

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

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

Общим решением проблемы мобильности систем, основанных на архитектуре "клиент-сервер" является опора на программные пакеты, реализующие протоколы удаленного вызова процедур (RPC - Remote Procedure Call). При использовании таких средств обращение к сервису в удаленном узле выглядит как обычный вызов процедуры. Средства RPC, в которых, естественно, содержится вся информация о специфике аппаратуры локальной сети и сетевых протоколов, переводит вызов в последовательность сетевых взаимодействий. Тем самым, специфика сетевой среды и протоколов скрыта от прикладного программиста.

При вызове удаленной процедуры программы RPC производят преобразование форматов данных клиента в промежуточные машинно-независимые форматы и затем преобразование в форматы данных сервера. При передаче ответных параметров производятся аналогичные преобразования.

Другие похожие работы, которые могут вас заинтересовать.вшм>

6914. Понятие базы данных 11.56 KB
Базой данных является представленная в объективной форме совокупность самостоятельных материалов статей расчетов нормативных актов судебных решений и иных подобных материалов систематизированных таким образом чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины Гражданский кодекс РФ ст. База данных организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных характеризующая актуальное состояние некоторой...
8064. Распределенные базы данных 43.66 KB
Распределенные базы данных Под распределенной базой данных РБД понимается набор логически связанных между собой разделяемых данных которые физически распределены по разных узлам компьютерной сети. Доступ к данным не должен зависеть от наличия или отсутствия реплик данных. Система должна автоматически определять методы выполнения соединения объединения данных сетевой канал способный справиться с объёмом передаваемой информации и узел имеющий достаточную вычислительную мощность для соединения таблиц. СУРБД должна быть способной...
20319. БАЗЫ ДАННЫХ И ИХ ЗАЩИТА 102.86 KB
Оперативные сетевые базы данных появились в середине 1960-х. Операции над оперативными базами данных обрабатывались в интерактивном режиме с помощью терминалов. Простые индексно-последовательные организации записей быстро развились к более мощной модели записей, ориентированной на наборы. За руководство работой Data Base Task Group (DBTG), разработавшей стандартный язык описания данных и манипулирования данными, Чарльз Бахман получил Тьюринговскую премию.
5031. Разработка базы данных Библиотека 11.72 MB
Технология проектирования баз данных. Определение взаимосвязей между сущностями и создание модели данных. Основные идеи современной информационной технологии базируются на концепции согласно которой данные должны быть организованы в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов называемых системами управления базами данных СУБД.
13815. ИЕРАРХИЧЕСКАЯ МОДЕЛЬ БАЗЫ ДАННЫХ 81.62 KB
Основные идеи современной информационной технологии базируются на концепции баз данных согласно которой основой информационной технологии являются данные организованные в базах данных адекватно отражающие состояние той или иной предметной области и обеспечивающие пользователя актуальной информацией в этой предметной области. Необходимо признать тот факт что данные являются...
14095. Разработка базы данных библиотеки 11.72 MB
Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных (табличных) СУБД.
5061. Создание базы данных поликлиники 2.4 MB
Развитие средств вычислительной техники и информационных технологий обеспечило возможности для создания и широкого применения автоматизированных информационных систем (АИС) разнообразного назначения. Разрабатываются и внедряются информационные системы управления хозяйственными и техническими объектами
13542. Базы данных геологической информации 20.73 KB
В последнее время широкими темпами происходит внедрение компьютерных технологий и, в частности баз данных, в научную сферу. Этот процесс не обходит стороной и геологию, так как именно в естественных науках имеется необходимость для хранения и обработки больших объемов информации.
9100. Базы данных. Основные понятия 26.28 KB
База данных – это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области экономика менеджмент химия и т. Целью информационной системы является не просто хранение данных об объектах но и манипулирование этими данными учитывая связи между объектами. Каждый объект характеризуется каким-либо набором данных свойств которые в БД называются атрибутами.
5240. Создание базы данных «Деканат ВУЗа» 1.57 MB
База данных (БД) - это совокупность взаимосвязанных, хранящихся вместе на внешних носителях памяти компьютера данных, при наличии такой организации и минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений

Цель лекции

Изучив материал настоящей лекции, вы будете знать:

  • что такое корпоративная модель данных ;
  • как преобразовать корпоративную модель данных в модель хранилища данных;
  • основные элементы корпоративной модели данных ;
  • уровни представления корпоративной модели данных ;
  • алгоритм преобразования корпоративной модели данных в многомерную модель хранилища данных ;

и научитесь:

  • разрабатывать модели хранилища данных на основе корпоративной модели данных организации;
  • разрабатывать схему "звезда" с помощью CASE-средств;
  • секционировать таблицы многомерной модели с помощью CASE-средств.

Корпоративная модель данных

Введение

Ядром любого ХД является его модель данных. Без модели данных будет очень сложно организовать данные в ХД. Поэтому разработчики ХД должны потратить время и силы на разработку такой модели. Разработка модели ХД ложится на плечи проектировщика ХД.

По сравнению с проектированием OLTP-систем, методика проектирования ХД имеет ряд отличительных особенностей, связанных с ориентацией структур данных хранилища на решение задач анализа и информационной поддержки процесса принятия решений. Модель данных ХД должна обеспечивать эффективное решение именно этих задач.

Отправной точкой в проектировании ХД может служить так называемая корпоративная модель данных (corporate data model или enterprise data model, EDM), которая создается в процессе проектирования OLTP-систем организации. При проектировании корпоративной модели данных обычно предпринимается попытка создать на основе бизнес-операций такую структуру данных, которая бы собрала и синтезировала в себе все информационные потребности организации.

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

Корпоративная модель данных

Как решить задачу преобразования корпоративной модели данных в модель ХД? Чтобы решить эту задачу, нужно иметь эту модель, т.е. корпоративная модели данных должна быть построена и документирована . И нужно понять, что из этой модели и как должно трансформироваться в модель ХД.

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

Основными элементами корпоративной модели данных являются:

  • описание предметных областей организации (определение сфер деятельности);
  • взаимоотношения между определенными выше предметными областями;
  • информационная модель данных (ERD -модель или модель "сущность-связь");
  • для каждой предметной области описание:
    • ключей сущностей;
    • атрибутов сущностей ;
    • подтипов и супертипов;
    • связей между сущностями;
    • группировки атрибутов;
    • взаимосвязей между предметными областями;
  • функциональная модель или модель бизнес-процессов;
  • диаграммы потоков данных;
  • диаграммы состояний;
  • другие модели.

Таким образом, корпоративная модель данных содержит сущности, атрибуты и отношения, которые представляют информационные потребности организации. На рис. 16.1 изображены основные элементы корпоративной модели данных .

Уровни представления корпоративной модели данных

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

Каждая логическая модель должна соответствовать существующей предметной области корпоративной модели данных . Если логическая модель не соответствует данному требованию, в нее должна быть добавлена модель, определяющая предметную область.

Корпоративная модель данных обычно имеет несколько уровней представления. На самом высоком уровне (high level) корпоративной модели данных располагается описание основных предметных областей организации и их взаимосвязей на уровне сущностей. На рис. 16.2 приведен фрагмент корпоративной модели данных верхнего уровня.

Рис. 16.2.

На схеме, приведенной на рисунке, представлено четыре предметных области: "Покупатель" (Customer ), "Счет" (account ), "Заказ" (Order ) и "Товар" (Product ). Как правило, на верхнем уровне представления модели указываются только прямые связи между предметными областями, которые, например, фиксируют следующий факт: покупатель оплачивает счет на заказ товаров. Подробная информация и косвенные взаимосвязи на этом уровне корпоративной модели не приводятся.

На следующем, среднем уровне (mid level) корпоративной модели данных показывается подробная информация об объектах предметных областей, т. е. ключи и атрибуты сущностей , их взаимосвязи, подтипы и супертипы и т.д. Для каждой предметной области модели верхнего уровня существует одна модель среднего уровня. На рис. 16.3 изображен средний уровень представления корпоративной модели для фрагмента предметной области "Заказ".

Из рис. 16.3 видно, что предметная область "Заказ" (Order ) включает в себя несколько сущностей, определенных через их атрибуты, и взаимосвязей между ними. Представленная модель позволяет ответить на такие вопросы, как дата заказа, кто сделал заказ, кто отправил заказ, кто получает заказ и ряд других. Из приведенной схемы видно, что в данной организации выделяют два типа заказов – заказы по рекламной акции (Commersial ) и заказы по розничной торговле (Retail ).

Заметим, что корпоративная модель данных может представлять различные аспекты деятельности организации и с различной степенью детализации и завершенности. Если корпоративная модель представляет все аспекты деятельности организации, она еще называется моделью данных организации (enterprise data model).

С точки зрения проектирования ХД важным фактором в принятии решения создания модели ХД из корпоративной модели данных является состояние завершенности корпоративной модели данных .

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

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

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

Всё чаще IT-специалисты обращают своё внимание на решения по управлению данными, основанные на стандартных отраслевых моделях данных и шаблонах бизнес-решений. Готовые к загрузке комплексные модели физических данных и отчёты бизнес-аналитики для конкретных сфер деятельности позволяют унифицировать информационную составляющую деятельности предприятия и значительно ускорить выполнение бизнес-процессов. Шаблоны решений позволяют поставщикам услуг использовать возможности нестандартной информации, скрытой в существующих системах, сокращая тем самым сроки выполнения проектов, затраты и риски. Например, реальные проекты показывают, что модель данных и шаблоны бизнес-решений могут сократить объём трудозатрат на разработку на 50%.

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

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


Пример модели “ГИС для органов власти и местного самоуправления”.

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

Помочь в облегчении и оптимизации этого процесса, в переводе ИТ-подхода на современный уровень как раз и призваны отраслевые модели данных.

Отраслевые модели данных от компании Esri

Модели данных под платформу Esri ArcGIS представляют собой рабочие шаблоны для применения в ГИС-проектах и создания структур данных для разных прикладных областей. Формирование модели данных включает создание концептуального дизайна, логической и физической структуры, которые затем можно использовать для построения персональной или корпоративной базы геоданных. ArcGIS предоставляет инструменты для создания и управления схемой базы данных, а шаблоны модели данных используются для быстрого запуска ГИС-проекта по разным сферам применения и отраслям. Специалисты Esri вместе с сообществом пользователей потратили значительное количество времени на разработку ряда шаблонов, которые могут обеспечить возможность быстрого начала проектирования базы геоданных предприятия. Эти проекты описаны и задокументированы на веб-сайте support.esri.com/datamodels . Ниже, в порядке их упоминания на этом сайте, представлен смысловой перевод названий отраслевых моделей Esri:

  • Адресный реестр
  • Сельское хозяйство
  • Метеорология
  • Базовые пространственные данные
  • Биоразнообразие
  • Внутреннее пространство зданий
  • Учет парниковых газов
  • Ведение административных границ
  • Вооружённые силы. Разведка
  • Энергетика (включая новый протокол ArcGIS MultiSpeak)
  • Экологические сооружения
  • МЧС. Пожарная охрана
  • Лесной кадастр
  • Лесное хозяйство
  • Геология
  • ГИС национального уровня (e-gov)
  • Подземные и сточные воды
  • Здравоохранение
  • Археология и охрана памятных мест
  • Национальная безопасность
  • Гидрология
  • Международная гидрографическая организация (IHO). Формат S-57 для ENC
  • Ирригация
  • Земельный кадастр
  • Муниципальное правительство
  • Морская навигация
  • Государственный кадастр
  • Нефтегазовые структуры
  • Трубопроводы
  • Растровые хранилища
  • Батиметрия, рельеф морского дна
  • Телекоммуникации
  • Транспорт
  • Водопровод, канализация, ЖКХ

Эти модели содержат все необходимые признаки отраслевого стандарта, а именно:

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

Специалисты Esri входят в экспертную группу независимых органов, которые рекомендуют к использованию различные отраслевые модели, например PODS (Pipeline Open Data Standards - открытый стандарт для нефтегазовой отрасли; в настоящее время имеется реализация PODS в качестве базы геоданных Esri PODS Esri Spatial 5.1.1) или база геоданных (БГД) из ArcGIS for Aviation, которая учитывает рекомендации ICAO и FAA, а также стандарт обмена навигационными данными AIXM 5.0. Кроме того, существуют рекомендованные модели, строго соответствующие существующим отраслевым стандартам, например S-57 и ArcGIS for Maritime (морские и прибрежные объекты), а также модели, созданные по результатам выполненных работ Esri Professional Services и являющиеся «де-факто» стандартами в соответствующей области. Например, GIS for the Nation и Local Government ("ГИС для органов государственной власти и местного самоуправления") оказали влияние на стандарты NSDI и INSPIRE, а Hydro и Groundwater (гидрология и грунтовые воды) активно используются в свободно доступном профессиональном пакете ArcHydro и коммерческих продуктах третьих фирм. Нужно отметить, что Esri поддерживает и стандарты "de-facto", например NHDI. Все предлагаемые модели данных документированы и готовы к использованию в IT-процессах предприятия. Сопроводительные материалы к моделям включают:

  • UML-диаграммы связей сущностей;
  • структуры данных, домены, справочники;
  • готовые шаблоны баз геоданных в формате ArcGIS GDB;
  • примеры данных и примеры приложений;
  • примеры скриптов загрузки данных, примеры утилит анализа;
  • справочники по предлагаемой структуре данных.

Компания Esri обобщает свой опыт построения отраслевых моделей в виде книг и локализует публикуемые материалы. Компанией Esri CIS локализованы и изданы следующие книги:

  • Геопространственная сервис-ориентированная архитектура (СОА);
  • Проектирование баз геоданных для транспорта;
  • Корпоративные геоинформационные системы;
  • ГИС: новая энергия электрических и газовых предприятий;
  • Нефть и газ на цифровой карте;
  • Моделирование нашего мира. Руководство Esri по проектированию базы геоданных;
  • Думая о ГИС. Планирование ГИС: руководство для менеджеров;
  • Географические информационные системы. Основы;
  • ГИС для административно-хозяйственного управления;
  • Веб-ГИС. Принципы и применение;
  • Стратегии проектирования систем, 26-е издание;
  • 68 выпусков журнала ArcReview с публикациями компаний и пользователей ГИС-систем;
  • ... и множество других тематических заметок и публикаций.

Например, книга "Моделирование нашего мира… " (перевод) - это всестороннее руководство и справочник по моделированию данных в ГИС вообще, и по модели данных базы геоданных в частности. Книга показывает, как вырабатывать правильные решения по моделированию данных, решения, которые участвуют в каждом аспекте проекта ГИС: от проектирования базы данных и сбора данных до пространственного анализа и визуального представления. Подробно описывается, как спроектировать географическую БД, соответствующую проекту, настроить функциональность базы данных без программирования, управлять потоком работ в сложных проектах, моделировать разнообразные сетевые структуры, такие как речные, транспортные или электрические сети, внедрять данные космосъёмки в процесс географического анализа и отображения, а также создавать 3D-модели данных ГИС. Книга "Проектирование баз геоданных для транспорта " содержит методологические подходы, опробованные на большом количестве проектов и полностью соответствующие законодательным требованиям Европы и США, а также международным стандартам. А в книге "ГИС: новая энергия электрических и газовых предприятий " с использованием реальных примеров показаны преимущества, которые корпоративная ГИС может дать компании-поставщику энергии, включая такие аспекты как обслуживание клиентов, эксплуатация сетей и другие бизнес-процессы.


Некоторые из книг, переводных и оригинальных, изданных на русском языке компаниями Esri CIS и DATA+. В них затрагиваются как концептуальные вопросы, связанные с технологией ГИС, так и многие прикладные аспекты моделирования и развертывания ГИС разного масштаба и назначения.

Применение отраслевых моделей рассмотрим на примере модели данных BISDM (Building Interior Space Data Model, информационная модель внутреннего пространства здания) версии 3.0. BISDM является развитием более общей модели BIM (Building Information Model, информационная модель здания) и предназначена к использованию в задачах проектирования, строительства, эксплуатации и вывода из эксплуатации зданий и сооружений. Используется в ПО ГИС, позволяет эффективно обмениваться геоданными с другими платформами и взаимодействовать с ними. Относится к общей группе задач FM (управление инфраструктурой организации). Перечислим основные преимущества модели BISDM, применение которой позволяет:

  • организовать обмен информацией в гетерогенной среде по единым правилам;
  • получить «физическое» воплощение концепции BIM и рекомендуемых правил управление проектом строительства;
  • поддерживать средствами ГИС единое хранилище на всем жизненном цикле здания (от проекта до вывода из эксплуатации);
  • координировать работу различных специалистов в проекте;
  • визуализировать заложенный календарный план и этапы строительства для всех участников;
  • давать предварительную оценку стоимости и сроков возведения (4D- и 5D-данные);
  • контролировать ход реализации проекта;
  • обеспечить качественную эксплуатацию здания, включая обслуживание и ремонты;
  • стать частью системы управления активами, включая функции анализа эффективности использования площадей (сдача в аренду, складские помещения, менеджмент сотрудников);
  • проводить расчёт и осуществлять управление задачами энергоэффективности здания;
  • моделировать перемещения людских потоков.

BISDM определяет правила работы с пространственными данными на уровне внутренних помещений в здании, в том числе предназначение и виды использования, проложенные коммуникации, установленное оборудование, учёт ремонтов и обслуживание, протоколирование инцидентов, взаимосвязи с другими активами компании. Модель помогает создавать единое хранилище географических и негеографических данных. Был использован опыт ведущих мировых компаний для выделения сущностей и моделирования на уровне БГД (базы геоданных) пространственных и логических взаимосвязей всех физических элементов, формирующих как само здание, так и его внутренние помещения. Следование принципам BISDM позволяет существенно упростить задачи интеграции с другими системами. На первом этапе это, как правило, интеграция с CAD. Затем, при эксплуатации здания, используется обмен данными с ERP и EAM-системами (SAP, TRIRIGA, Maximo и др.).


Визуализация структурных элементов BISDM средствами ArcGIS.

В случае использования BISDM заказчик/владелец объекта получает сквозной обмен информацией от идеи создания объекта до разработки полного проекта, контроль строительства с получением актуальной информации к моменту ввода объекта в эксплуатацию, контроль параметров во время эксплуатации, и даже при реконструкции или выводе объекта из эксплуатации. Следуя парадигме BISDM, ГИС и создаваемая с её помощью БГД становятся общим хранилищем данных для связанных систем. Часто в БГД оказываются данные, созданные и эксплуатируемые сторонними системами. Это нужно учитывать при проектировании архитектуры создаваемой системы.

На определённом этапе накопленная «критическая масса» информации позволяет перейти на новый качественный уровень. К примеру, по завершению этапа проектирования нового здания, в ГИС возможно автоматически визуализировать обзорные 3D-модели, составить перечень устанавливаемого оборудования, подсчитать километраж прокладываемых инженерных сетей, выполнить ряд поверок и даже дать предварительную финансовую оценку стоимости проекта.

Ещё раз отметим, что при совместном использовании BISDM и ArcGIS появляется возможность автоматического построения 3D-моделей по накопленным данным, поскольку БГД содержит полное описание объекта, включая z-координаты, принадлежность к этажу, виды соединений элементов, способы установки оборудования, материал, доступные пути перемещения персонала, функциональное назначение каждого элемента и т.д. и т.п. Нужно учесть, что после выполнения первоначального импорта всех проектных материалов в BISDM БГД возникает потребность дополнительного информационного наполнения для:

  • простановки на обозначенных местах 3D-моделей объектов и оборудования;
  • сбора сведений о стоимости материалов и порядка их укладки и монтажа;
  • контроля проходимости по габаритам устанавливаемого нестандартного оборудования.

За счёт применения ArcGIS упрощается импорт дополнительных 3D-объектов и справочников из внешних источников, т.к. модуль ArcGIS Data Interoperability позволяет создавать процедуры по импорту подобных данных и корректному их размещению внутри модели. Поддерживаются все используемые в данной отрасли форматы, в том числе IFC, AutoCAD Revit, Bentlye Microstation.

Отраслевые модели данных от компании IBM

IBM предоставляет набор инструментов и моделей управления хранением данных для различных областей деятельности:

  • IBM Banking and Financial Markets Data Warehouse (финансы)
  • IBM Banking Data Warehouse
  • IBM Banking Process and Service Models
  • IBM Health Plan Data Model (здравоохранение)
  • IBM Insurance Information Warehouse (страхование)
  • IBM Insurance Process and Service Models
  • IBM Retail Data Warehouse (розничная торговля)
  • IBM Telecommunications Data Warehouse (телекоммуникации)
  • InfoSphere Warehouse Pack:
    - for Customer Insight (для понимания клиентов)
    - for Market and Campaign Insight (для понимания компании и рынка)
    - for Supply Chain Insight (для понимания поставщиков).

Например, модель IBM Banking and Financial Markets Data Warehouse предназначена для решения специфических проблем банковской отрасли с точки зрения данных, а IBM Banking Process and Service Models - с точки зрения процессов и СОА (сервис-ориентированной архитектуры). Для телекоммуникационной отрасли представлены модели IBM Information FrameWork (IFW) и IBM Telecommunications Data Warehouse (TDW) . Они помогают существенно ускорить процесс создания аналитических систем, а также снизить риски, связанные с разработкой приложений бизнес-анализа, управлением корпоративными данными и организацией хранилищ данных с учётом специфики телекоммуникационной отрасли. Возможности IBM TDW охватывают весь спектр рынка телекоммуникационных услуг - от интернет-провайдеров и операторов кабельных сетей, предлагающих услуги проводной и беспроводной телефонии, передачи данных и мультимедийного контента, до транснациональных компаний, предоставляющих услуги телефонной, спутниковой, междугородней и международной связи, а также организации глобальных сетей. На сегодняшний день TDW используется крупными и мелкими поставщиками услуг проводной и беспроводной связи по всему миру.

Инструмент под названием InfoSphere Warehouse Pack for Customer Insight представляет собой структурированное и легко внедряемое бизнес-содержимое для всё большего числа бизнес-проектов и отраслей, среди которых банковское дело, страхование, финансы, программы медицинского страхования, телекоммуникации, розничная торговля и дистрибуция. Для бизнес-пользователей InfoSphere Warehouse Pack for Market and Campaign Insight помогает максимально повысить эффективность мероприятий по анализу рынка и маркетинговых кампаний благодаря пошаговому процессу разработки и учёта специфики бизнеса. С помощью InfoSphere Warehouse Pack for Supply Chain Insight организации имеют возможность получать текущую информацию по операциям цепочек поставок.


Позиция Esri внутри архитектуры решений IBM.

Особого внимания заслуживает подход IBM для электроэнергетических компаний и предприятий ЖКХ. Для того чтобы удовлетворить растущие запросы потребителей, энергоснабжающим предприятиям необходима более гибкая архитектура по сравнению с используемой сегодня, а также стандартная отраслевая объектная модель, что упростит свободный обмен информацией. Это повысит коммуникативные возможности энергетических компаний, обеспечивая взаимодействие в более экономичном режиме, и предоставит новым системам лучшую видимость всех необходимых ресурсов независимо от того, где они располагаются в пределах организации. Базой для такого подхода служит СОА (сервис-ориентированная архитектура), компонентная модель, устанавливающая соответствие между функциями подразделений и сервисами различных приложений, которые можно многократно использовать. «Службы» таких компонентов обмениваются данными посредством интерфейсов без жёсткой привязки, скрывая от пользователя всю сложность стоящих за ними систем. В таком режиме предприятия могут легко добавлять новые приложения независимо от поставщика программного обеспечения, операционной системы, языка программирования или иных внутренних характеристик ПО. На основе СОА реализуется концепция SAFE ( Solution Architecture for Energy), она позволяет компании электроэнергетической отрасли получить основанное на стандартах целостное представление своей инфраструктуры.

Esri ArcGIS ® - признанная во всём мире программная платформа для геоинформационных систем (ГИС), обеспечивающая создание и управление цифровыми активами электроэнергетических, газотранспортных, распределительных, а также телекоммуникационных сетей. ArcGIS позволяет провести наиболее полную инвентаризацию компонентов электрической распределительной сети с учётом их пространственного расположения. ArcGIS существенно расширяет архитектуру IBM SAFE, предоставляя инструменты, приложения, рабочие процессы, аналитику и информационно-интеграционные возможности, необходимые для управления интеллектуальным энергопредприятием. ArcGIS в рамках IBM SAFE позволяет получать из различных источников информацию об объектах инфраструктуры, активах, клиентах и сотрудниках с точными данными об их местоположении, а также создавать, хранить и обрабатывать геопривязанную информацию об активах предприятия (опоры, трубопроводы, провода, трансформаторы, кабельная канализация и т.д.). ArcGIS внутри инфраструктуры SAFE позволяет динамически объединить основные бизнес-приложения, комбинируя данные из ГИС, SCADA и систем обслуживания клиентов с внешней информацией, например об интенсивности трафика, погодных условиях или спутниковыми снимками. Энергопредприятия используют такую комбинированную информацию для различных целей, от С.О.Р. (общей картины оперативной обстановки) до инспектирования объектов, технического обслуживания, анализа и планирования сетей.

Информационные компоненты энергоснабжающего предприятия можно смоделировать с помощью нескольких уровней, которые ранжируются от самого низкого - физического - до верхнего, наиболее сложного уровня логики бизнес-процессов. Эти уровни можно интегрировать, чтобы обеспечить соответствие типичным отраслевым требованиям, например, при автоматизированной регистрации измерений и управлении системой диспетчерского контроля и сбора данных (SCADA). Выстраивая архитектуру SAFE, энергоснабжающие компании делают значительные шаги в продвижении общеотраслевой открытой объектной модели под названием «Общая информационная модель для энергетических компаний» (Common Information Model (CIM) for Energy and Utilities). Эта модель обеспечивает необходимую базу для продвижения множества предприятий к сервис-ориентированной архитектуре, поскольку она поощряет использование открытых стандартов для структуризации данных и объектов. За счёт того, что все системы используют одни и те же объекты, путаница и неэластичность, связанные с различными реализациями одинаковых объектов, будут сокращены до минимума. Таким образом, определение объекта «клиент» и прочих важных бизнес-объектов будет унифицировано во всех системах энергоснабжающего предприятия. Теперь с помощью CIM поставщики и потребители услуг могут использовать общую структуру данных, облегчая вывод дорогостоящих компонентов бизнеса на аутсорсинг, так как CIM устанавливает общую базу, на которой можно построить обмен информацией.

Заключение

Комплексные отраслевые модели данных обеспечивают компаниям единое интегрированное представление их бизнес-информации. Многим компаниям бывает непросто осуществить интеграцию своих данных, хотя это является необходимым условием для большинства общекорпоративных проектов. По данным исследования Института Хранилищ данных (The Data Warehousing Institute, TDWI), более 69% опрошенных организаций обнаружили, что интеграция является существенным барьером при внедрении новых приложений. Напротив, осуществление интеграции данных приносит компании ощутимый доход и рост эффективности.

Правильно построенная модель однозначно определяет значение данных, которые в данном случае представляют собой структурированные данные (в противоположность неструктурированным данным, таким как, например, изображение, бинарный файл или текст, где значение может быть неоднозначным). Наиболее эффективны отраслевые модели, предлагаемые профессиональными поставщиками (вендорами), в число которых входят Esri и IBM. Высокая отдача от использования их моделей достигается благодаря значительному уровню их детальности и точности. Они обычно содержат много атрибутов данных. Кроме того, специалисты компаний Esri и IBM не только обладают большим опытом моделирования, но и хорошо разбираются в построении моделей для определенной отрасли.