Уровень развития современных информационных систем, расширяющийся спектр предоставляемых ими функций, повышение требований по масштабируемости, производительности и надежности обуславливают актуальность этапа выбора СУБД и формирования эффективных структур данных на их основе. В докладе рассматриваются примеры решения различных проектных задач на базе постреляционных технологий СУБД Caché.
В современных условиях глобализации бизнеса, требующего резкого снижения затрат на выполнение производственных функций, мобильности персонала, возможности доступа к требуемой информации и работы с ней в любой точке мира, повышение эффективности инвестиций в информатизацию организаций и предприятий обеспечивается многими факторами, одним из которых является сокращение затрат на проектирование, разработку, реинжениринг, внедрение и управление информационными системами (ИС).
Анализ развития методов и инструментальных средств построения ИС и их влияние на продуктивность разработок показывает, что на протяжении 15-20 лет в этой области не наблюдалось качественных изменений. Качественный скачок возник лишь в последнее время при использовании в разработках CASE-технологий принципов объектно-ориентированного и постреляционного анализа, проектирования и программирования, объектно-ориентированных баз данных, принципов модульности, типизации и клонирования.
Центральное и важное место в ИС различного класса и назначения занимают базы данных, на которые возложены функции хранения, интеграции и консолидации информационных ресурсов организации. От эффективности и качества их построения во многом зависит эффективность разрабатываемых ИС.
В настоящее время проводятся интенсивные работы по созданию и внедрению объектно-ориентированных баз данных (ООБД) и ИС на их основе. Популярность ООБД обуславливается рядом важных отличий и преимуществ, которые предоставляют ООБД в сравнение с традиционными (например, реляционными) БД. Отметим некоторые из них. ООБД обеспечивают инкапсуляцию логики и данных в одном объекте; поддерживают сложные типы данных и работу на более высоком уровне абстракции, что позволяет с одной стороны создавать сложные структуры данных, в т.ч. мультимедийные, а с другой - обеспечить простоту их сопровождения и развития.
Однако ООБД также имеют ряд недостатков и ограничений, среди которых в первую очередь следует отметить отсутствие развитых средств выборки и анализа данных и единой методологии проектирования ООБД.
Поэтому все чаще разработчики корпоративных ИС выбирают гибридные БД, которые поддерживают как реляционные, так и объектные механизмы работы с данными. Поскольку каждая отдельно взятая модель данных имеет как свои достоинства, так и недостатки, их совместное использование в рамках гибридной БД позволяет агрегировать преимущества, одновременно компенсируя недостатки каждой модели. Архитектуру гибридной (или постреляционной) СУБД можно сравнить с самолетом, состоящим из частей (моделей данных), которые по своей природе стремятся упасть на землю, но работая согласованно, преодолевают эту тенденцию.
Рассмотрим влияние типа выбранной БД на различных этапах жизненного цикла разработки ИС.
Начальным этапом проектирования ИС является этап моделирования предметных областей пользователей, системного анализа и структуризации информации. На данном этапе выявляются требования к структурам БД, разрабатываются спецификации информационных требований пользователей и бизнес-процессов, определяется состав хранимой в БД информации и ее структура. В результате решения задач данного этапа формируется модель предметной области и каноническая (концептуальная) структура БД, которая отражает наиболее характерные и устойчивые свойства и характеристики данных и взаимосвязей предметной области.
К основным проблемам, с которыми сталкиваются разработчики при проведении этапа моделирования, относятся сложность и трудоемкость данного процесса, невысокая достоверность анализа при большом числе элементов и связей, противоречивость и несогласованность требований пользователей, необходимость частого проведения реинжениринга бизнес-процессов обследуемой организации.
Обычно на этапе моделирования разработчики не задумываются о том, как построенная модель будет отражена в выбранной СУБД и стремятся построить модель, которые наиболее полно отражает закономерности предметных областей пользователей и свободна от различного рода конфликтов.
Существует несколько способов организации и проведения данного этапа. Среди них следует отметить: диаграммы декомпозиции процессов; потоковые диаграммы; IDEF - диаграммы (Integrated DEFinition - интегрированные диаграммы-описания);RADs-диаграммы (Role Activity Diagrams - диаграммы ролевых действий); стандартная системная документация; формализованные методы анализа и структуризации предметных областей пользователей, построения канонических структур БД; UML (Unified Modeling Language).
Каждый из представленных способов имеет свои достоинства и недостатки. Однако как показывает практика, объектно-ориентированная технология анализа и проектирования предоставляет разработчикам наиболее естественные и совершенные возможности для моделирования предметной области. Рассмотрим основные характеристики данного подхода.
В основе объектно-ориентированного подхода к моделированию предметных областей пользователей используется понятие объекта и свойств - инкапсуляция, наследование и полиморфизм:
- Свойство инкапсуляции означает, что объекты наделяются некоторой структурой и обладают определенным набором операций, т.е. поведением. Внутренняя структура объекта скрыта от пользователя; манипуляция объектом, изменение его состояния возможны лишь с использованием специальных методов, определяемых заданным набором операций.
- Свойство наследования обеспечивает возможность создавать из объектов новые объекты, которые наследуют структуру и поведение своих предшественников, добавляя к ним характеристики, отражающие их собственную индивидуальность.
- Свойство полиморфизма означает, что различные объекты могут получать одинаковые сообщения, но реагировать на них по-разному, в соответствии с тем, каким образом реализованы у них методы, реагирующие на сообщения.
В настоящее время существует достаточное количество инструментальных средств объектно-ориентированного анализа и моделирования, однако наиболее известным и популярным является продукт компании IBM CASE-система Rational Rose и входящих в ее состав язык моделирования UML (Unified Modeling Language).
На следующем этапе осуществляется проектирование логических структур БД. Как правило, при разработке логических структур используются эвристические методы проектирования с формальной оценкой качества принимаемых решений. Выделяются 3 группы критериев качества проекта логической структуры БД. Критерии первой группы отражают требования поддержания и сохранения в логической структуре БД структурных и семантических свойств и особенностей данных и связей, зафиксированных в канонической структуре. Критерии первой группы связаны с ограничениями целостности, защиты БД от непротиворечивости при актуализации или избыточности представления данных. Критерии второй группы связаны с вопросами производительности БД и характеризуют влияние логической структуры БД на временные параметры доступа и экономические показатели функционирования ИС. Существенную роль при оценке проекта по критериям данной группы играют количество обрабатываемых в единицу времени транзакций и запросов пользователей. Критерии третьей группы отражают требования интерпретации запросов к БД возможно меньшим числом операторов языка манипулирования данными.
Наиболее известными методами проектирования логических структур БД являются методы, основанные на формальном аппарате реляционной алгебры и функциональных зависимостях. При этом процесс проектирования логических структур БД сводится к следующей последовательности операций: анализ предметной области и выделение базовых типов сущностей (как правило, для этого используется ER-диаграммы); нормализация типов сущностей и формирование логических записей; установление связей между записями. Несмотря на формальную строгость данных методов, им присущи следующие недостатки. При построении сложных корпоративных ИС (КИС), использующих большое число информационных элементов, логические структуры БД для данных систем в виду многочисленных многозначных зависимостей между данными могут состоять из десятков и даже сотен таблиц, что делает такие БД плохо обозримыми и управляемыми. Более того, за счет разбиения объектов предметной области на плоские нормализованные отношения теряется семантика исследуемой предметной области, что усложняет сопровождение и модернизацию систем. Данные методы не позволяют также адекватно моделировать отдельные свойства данных. Для адекватного моделирования структур сложных данных пользователь должен иметь возможность определять свои типы данных, не ограничиваясь типами данных, предоставляемых определенной реляционной СУБД. Реляционная модель не позволяет также определить набор операций, связанных с данными определенного типа, что часто является естественным требованием при моделировании данных со сложной структурой. Операции приходится задавать в конкретном приложении. Использование данных методов проектирования требует высокой квалификации проектировщиков.
ООБД обеспечивают более естественный переход от концептуальной структуры БД к логической. В отличие от реляционных БД в ООБД не происходит декомпозиции объектов, выделенных на этапе моделирования, на плоские нормализованные отношения. Объекты представляются в том же виде. ООБД определяют возможность создания и использования сложных типов данных (ADT). При этом не требуется модификации ядра ООБД и для создания нового типа необходимо унаследовать характеристики любого имеющегося типа, наиболее подходящего по своему поведению и состоянию, расширить недостающие операции и атрибуты и переопределить уже имеющиеся. Полученные объектно-ориентированные структуры обладают высокой степенью модульности, что позволяет вносить в них изменения наиболее простым и безболезненным способом. При этом изменения влияют на один класс (или связанную подсистему классов) и могут эффективно управляться и проверяться.
Рассмотрим этап разработки. Можно выделить следующие основные операции, которые встречаются в большинстве современных ИС:
- Выборка и анализ данных
- Модификация данных (транзакции)
Что касается выборки данных, то здесь безусловным лидером по удобству и скорости работы является декларативный язык SQL. SQL - это наиболее простой в использовании язык, где запросы формулируются на "околочеловеческом" языке, а алгоритм поиска готовится сервером и может быть скорректирован разработчиком. Кроме того, SQL - это промышленный стандарт и он может быть эффективно использован в качестве интерфейса к другим информационным источникам. В данный момент ведутся работы по созданию языка OQL, правопреемника SQL для ООБД. Однако пока рано говорить об OQL - как о промышленном стандарте и сравнивать его с SQL.
Что касается операций обновления данных. Все множество данных операций можно разделить на два класса - операции массовой загрузки данных и транзакционные данные.
По удобству повседневной модификации данных следует отметить ООБД, которые обеспечивают возможность ввода сложных данных без привязки их к разным таблицам, развитую проверку вводимых данных, двухступенчатую фиксацию и многое другое.
При определении лидера по массовой загрузке данных следуют вспомнить иерархические базы данных. Именно они обеспечивают наиболее быстрые механизмы загрузки большого объема данных, в т.ч. в режиме реального времени.
Таким образом, для разработки действительно эффективной ИС на разных этапах требуется совместное использование разных моделей данных. При этом в большинстве систем недопустимо дублирование и синхронизация информации в различных БД и СУБД, что повлечет существенные накладные расходы на разработку и сопровождение систем. Это обуславливает актуальность развития гибридных СУБД, которые поддерживают различные модели данных в рамках единого хранилища данных и обеспечивают механизмы для работы с данными, как по объектно-ориентированному принципу, так и по реляционному и иерархическому. К такому типу СУБД относится постреляционная СУБД Caché. Рассмотрим ее основные характеристики.
Постреляционная СУБД Caché, реализует три модели данных: реляционную, объектно-ориентированную и иерархическую и предоставляет возможность их совместного использования в рамках одного проекта.
В основе архитектуры постреляционной СУБД Caché лежит высокопроизводительное иерархическое ядро, ориентированное на работу с транзакциями. Это ядро является основой М-стандарта и развивается корпорацией InterSystems с 1978 года. Основными характеристиками ядра Caché являются производительность и масштабируемость.
Все данные и программы Caché хранятся в многомерных разреженных массивах. В рамках единой архитектуры данных Caché многомерные массивы данных могут быть представлены в виде классов объектов (сервер Caché Objects) и в виде реляционных таблиц (сервер Caché SQL). При этом поддержка объектного и реляционного представлений осуществляется в полном объеме и соответствует основным требованиям международных стандартов (ODMG и SQL92).
Следует отметить, что в отличие от объектно-реляционных или реляционно-объектных СУБД, в Caché серверы объектного и реляционного представления данных находятся на одном логическом уровне, что обеспечивает высокую скорость работы с данными и расширяет стандартную объектную модель запросами SQL, а механизм SQL - объектными расширениями.
Описание структуры данных хранится централизовано и с помощью специальных механизмов преобразуется в объектную или реляционную форму представления. Причем изменить структуру можно как с использованием объектных интерфейсов, так и с использованием соответствующих конструкций языка SQL.
Сервер приложений СУБД Caché предоставляет два языка описания серверной бизнес-логики приложений - Caché Object Script (COS) и Caché Basic (язык Caché Object Script является традиционным языком СУБД Caché, язык Caché Basic появился в Caché версии 5). Оба языка располагают всеми необходимыми конструкциями для работы с тремя моделями данных сервера БД Caché и обычно используются для реализации методов классов Caché, хранимых процедур и триггеров SQL.
Сервер приложений Caché предоставляет богатый арсенал интерфейсов к внешним средствам проектирования и разработки приложений, работающих как по реляционной (ODBC, JDBC), так и по объектно-ориентированной технологии (ActiveX, XML, COM и т. д.) и по технологии прямого доступа к данным (Callin, Callout).
В сервер приложений Caché встроена развитая технология для реализации корпоративных Web-приложений Caché Server Pages (CSP). Данная технология работает во многом аналогично другим технологиям разработки Web-приложений, таким, как JSP и ASP, однако отличается тесной интеграцией с БД.