Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9 сем. Эк.предприятия / ИС на предприятии / Автоматизация управления предприятием.doc
Скачиваний:
90
Добавлен:
21.02.2016
Размер:
8.15 Mб
Скачать

Часть I Технологические основы бизнеса

Реляционная модель данных

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

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

Основными понятиями реляционной модели являются (рис. 5.1):

  • отношение (таблица);

  • домен (значения столбца);

  • атрибут (столбец, поле);

  • кортеж (строка, запись);

Рис. 5.1. Определяющие компоненты реляционной базы данных

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

118

|-rtaBa5 Управление базами данных

чений данного типа. Например, домен «Фамилия» в нашем примере определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут отображать фамилию. Данные считаются сравнимыми только в том случае, когда они относят­ся к одному домену. В нашем примере значения доменов ФАМИЛИЯ и ИМЯ относятся к типу строковых данных, но не являются сравнимыми.

Тип данных в реляционной модели данных полностью соответству­ет типу данных в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых, логиче­ских данных, дат, времени, временных интервалов, МЕМО-полей и др.

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

Рис. 5.2. Графическое представление отношений в настольной базе данных Access 2000

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

119

Технологические основы бизнеса УЛСГЬ|

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

Реляционная БД

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

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

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

  • каждая таблица состоит из однотипных строк и имеет уникальное имя;

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

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

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

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

Основные Функции СУБД

Управление данными во внешней памяти. Информация из БД хранится во внешней памяти, а в некоторых СУБД используются воз-

120

-r-rj^lj Z Управление базами данных

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

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

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

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

Очевидно, что независимо от типа сбоя для восстановления БД нужно иметь некоторые дополнительные сведения, которые имеются и в журнале изменений БД. Это недоступная пользователям СУБД часть БД, в которую заносятся записи обо всех изменениях основной части БД. При занесении записей в журнал поддерживается протокол «Упреждений» (Write Ahead Log - WAL), т. е. запись об изменении лю­бого объекта БД попадает во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД.

121

Технологические основы бизнеса

МАСТЬ |

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

Поддержка языков БД. Для работы с базами данных используют­ся специальные языки, называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных языков, сре­ди которых чаще всего использовались язык определения схемы БД [SDL - Schema Definition Language) и язык манипулирования данными [DML - Data Manipulation Language).

Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Langu­age), который сочетает в себе средства SDL и DML, т. е. позволяет определять схему реляционной БД и манипулировать данными. SQL содержит специальные средства определения ограничений целост­ности БД, а его специальные операторы позволяют определять так называемые представления БД, которые фактически являются храни­мыми в БД запросами. Результатом любого запроса к реляционной БД является таблица с именованными столбцами.

Язык запросов SQL

Язык SQL (Structered Query Language - язык структурированных запросов) появился более 30 лет назад в рамках проекта экспери­ментальной реляционной СУБД под названием System R. Сначала он назвался SEQUEL (Structered English Query Language).

Практически одновременно с появлением первых его коммерче­ских реализаций SQL появился и первый его стандарт ANSI/ISO (1985 г.). Вскоре появился SQL 92, который охватывает практически все не­обходимые для реализации аспекты: манипулирование схемой БД, управление транзакциями и сессиями (последовательностью тран­закциями, в пределах которой сохраняются временные отношения), подключение к БД, динамический SQL, стандартизованы отношения-каталоги.

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

122

г>|ава"5_— Управление базами данных

пользователю при формулировании запроса возможность выбора более понятного ему варианта.

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

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

Самый общий вид запроса на языке SQL представляет выраже­ние, составленное из элементарных запросов. В SQL System R допу­скались все базовые теоретико-множественные операции (UNION, INTERSECT и MINUS).

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

В настоящее время SQL реализован практически во всех ком­мерческих реляционных СУБД в графическом виде (рис. 5.3). Если воспользоваться режимом SQL для приведенного запроса, то он будет выглядеть следующим образом:

SELECT PERSONS.PERSONA, PERSONS.FAMILIA, PERSONS.IMIA, PERS-ONS.OTCHEST, PERSONS.IDNUM, PERSONS.TABNUM FROM PERSONS WHERE (((PERSONS.IMIA)=«Сергей») AND ((PERSONS.TABNUM)>10));

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

123

Рис. 5.3. Пример использования SQL в настольной СУБД

Настольные реляционные базы аанных

Оошпе замечания

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

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

124

г^ава^5 Управление базами данных

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

На сегодняшний день известно множество настольных СУБД, од­нако наиболее популярными являются dBase, Paradox, FoxPro и Access. Особо нужно отметить Microsoft Data Engine (MSDE) - по существу серверную СУБД, представляющую собой «облегченную» версию Microsoft SQL Server (см. далее в этой главе), но предназначенную для использования главным образом в настольных системах.

Краткая характеристика настольных систем

dBase n Visual dBase

Хранение данных в dBase (www.dbase2000.com) основано на принципе «одна таблица - один файл» (эти файлы обычно имеют рас­ширение *.dbf). МЕМО-поля и BLOB-поля, как и индексы для таблиц, хранятся в отдельных файлах (обычно с расширением *.dbt). Формат данных dBase является открытым, что позволило ряду других произво­дителей заимствовать его для создания dBase-подобных СУБД, частич­но совместимых с dBase по форматам данных.

Для работы с данными формата dBase (или иных dBase-подобных СУБД) совершенно необязательно пользоваться диалектами соб­ственного языка xBase. Доступ к этим данным возможен с помощью ODBC API (и соответствующих драйверов) и некоторых других меха­низмов доступа к данным, и это позволяет создавать приложения, ис­пользующие формат данных dBase, практически с помощью любого средства разработки, поддерживающего один из этих механизмов Доступа к данным.

Дальнейшее продолжение dBase получила в продукте Visual dB­ase, который приобрел набор дополнительных возможностей, среди которых специальные типы полей для графических данных, поддер­живаемые индексы, хранение правил ссылочной целостности внутри самой базы данных, а также возможность манипулировать данными Других форматов, в частности серверных СУБД.

125

Технологические основы бизнеса

Paradox

Принцип хранения данных в Paradox (www.corel.com) сходен с принципами хранения данных в dBase - каждая таблица хранится в своем файле (расширение *.dbj, MEMO- и BLOB-поля хранятся в отдельном файле (расширение *.md), как и индексы (расширение *.рх). Однако, в отличие от dBase, формат данных Paradox не является открытым, поэтому для доступа к данным этого формата требуются специальные библиотеки.

Windows-версии СУБД Paradox позволяют манипулировать данны­ми других форматов, в частности dBase и данными, хранящимися в серверных СУБД. Такую возможность пользователи Paradox получили благодаря использованию библиотеки Borland Database Engine. Это позволило использовать Paradox в качестве универсального средства управления различными базами данных.

Microsoft FoxPro и Visual FoxPro

По сравнению с аналогичными версиями dBase, FoxBase (www.micro-soft.com) и более поздняя версия этого продукта, получившая название FoxPro, предоставляли своим пользователям несколько более широкие возможности, такие как использование деловой графики, генерация кода приложений, автоматическая генерация документации к прило­жениям и т. д.

Последняя версия этого продукта - Visual FoxPro, доступна и от­дельно, и как составная часть Microsoft Visual Studio 6.0. Ее отличитель­ной особенностью от двух рассмотренных выше является интеграция с технологиями Microsoft, в частности поддержка COM (Component Object Model - компонентная объектная модель, являющаяся основой функционирования 32-разрядных версий Windows), интеграция с Mi­crosoft SQL Server.

Microsoft Access

В отличие от СУБД Visual FoxPro, фактически превратившей­ся в средство разработки приложений, Access (www.microsoft.com) (рис. 5.4) ориентирована на пользователей Microsoft Office. В состав Access входят средства манипуляции данными Access и данными, до­ступными через ODBC, средства создания форм, отчетов и приложе­ний; при этом отчеты могут быть экспортированы в формат Microsoft Word или Microsoft Excel, а для создания приложений используется Visual Basic for Applications, общий для всех составных частей Microsoft Office и др.

126

Гпава^

Управление базами данных

Рис. 5.4. Одна из самых популярных настольных СУБД, используемых в малом бизнесе

Поддержка модели СОМ в Access выражается в возможности ис­пользовать элементы управления ActiveX в формах и Web-страницах, созданных с помощью Access. В отличие от Visual FoxPro создание СОМ-серверов с помощью Access не предполагается.

Microsoft Data Engine

MSDE (www.microsoft.com) представляет собой СУБД, базирую­щуюся на технологиях Microsoft SQL Server, но предназначенную для использования в настольных системах или в сетевых приложениях с объемом данных до 2 Гбайт и небольшим количеством пользователей. По существу MSDE является облегченной версией Microsoft SQL Server, не содержащей средств администрирования, и к настольным СУБД может быть отнесена весьма условно.

В Microsoft Access пользователь может выбрать, какой механизм доступа к данным следует применять: Microsoft Jet - стандартный на­бор библиотек доступа к данным или MSDE (в этом случае управление базой данных осуществляется с помощью отдельного процесса). Воз­можно преобразование имеющихся баз данных Access в базу данных MSDE из среды разработки Access.

Базы данных MSDE полностью совместимы с базами данных Mic­rosoft SQL Server и могут при необходимости управляться этим серве­ром. Как большинство серверных СУБД, эти базы данных поддержива-

127

Технологические основы бизнеса

ЧАСТЬ |

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

Корпоративные СУБД

Серверы баз данных

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

Доступ к базе данных от приложения или пользователя произ­водится путем обращения к клиентской части системы. В качестве основного интерфейса между клиентской и серверной частями вы­ступает язык баз данных SQL.

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

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

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

128

Управление базами данных

ется узким местом всей системы. Что собственно говоря и обусловило появление двух- и трехуровневых (звенных) систем.

два уровня или три?

Информационные системы, созданные на основе классической клиент-серверной архитектуры, называются двухзвенными система­ми или системами с «толстым» клиентом. Они состоят из сервера баз данных, содержащего сгенерированные таблицы и другие объ­екты БД, реализующие бизнес-правила, и одного или нескольких клиентских приложений, предоставляющих интерфейс пользователя и производящих проверку допустимости и обработку данных согласно содержащимся в них алгоритмам (рис. 5.5).

Рабочая станция Рис. 5.5. Структура 2-уровневой системы

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

9 —

4-1529

129

Технологические основы бизнеса

ЧАСТЫ

OLE DB и ActiveX Data Object (ADO). В клиентских приложениях для до­ступа к источникам данных используются вызовы функций прикладных программных интерфейсов клиентских частей соответствующих сер­верных СУБД.

В системах с так называемым «тонким» клиентом на клиентском компьютере отсутствует клиентская часть серверной СУБД. В этом случае функциональность, связанная с доступом к данным (а неред­ко и какие-либо иные функции), возлагается на другое приложение, называемое обычно сервером приложений, и являющееся клиентом серверной СУБД. В свою очередь, клиентские приложения обращают­ся не непосредственно к серверной СУБД, а к серверу приложений, являющемуся для них источником данных. Таким образом, сервер приложений является средним звеном в цепи «тонкий клиент - сервер приложений - сервер баз данных» (рис. 5.6) и, соответственно, отно­сится к классу программных продуктов middleware.

Рабочая станция Рис. 5.6. Клиент «утончается» за счет сервера приложений

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

130

Управление базами данных

ютерах и реляционной СУБД или унаследованной системой, непо­средственно управляющими необходимыми данными.

ОЗиектно-ориентированные СУБД

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

Каждый объект имеет состояние и поведение. Состояние объ­екта - набор значений его атрибутов. Поведение объекта - набор методов (программный код), оперирующих над состоянием объекта. Значение атрибута объекта - это тоже некоторый объект или множе­ство объектов. Состояние и поведение объекта инкапсулированы в объекте; взаимодействие объектов производится на основе передачи сообщений и выполнении соответствующих методов.

Множество объектов с одним и тем же набором атрибутов и ме­тодов образует класс объектов. Объект должен принадлежать только одному классу (если не учитывать возможности наследования).

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

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

Краткая характеристика корпоративных (промышленных) СУБД

DB2 Universal Database

Универсальный сервер баз данных DB2 Universal Database (www. SDlЈom) - это масштабируемая объектно-реляционная система Управления базами данных с интегрированной поддержкой мульти­медиа и Web, работающая под управлением OS/2, Windows NT, раз-

131

Таблица 5.1. Общие сведения о реляционных и объектных базах данных

Реляционные базы данных

Объектно-реляционные базы данных

Объектные базы данных

Примеры продуктов

ORACLE, Informix Dynamic Se­rver, DB2, Openlngres, Miscro-soft SQL Server, Sybase SQL

ORACLE, Informix Universal Serv­er, Universal Server, DB2, UniSQL, Cashe

ObjectStore, Gemstone, РОЕТ, 02, Versant, Jasmine, ODB-Jupiter

Модель данных

Реляционная

Реляционная

Объектная

Понимание и использование

Табличные структуры легко воспринимаются, существу­ет множество приложений

Табличные структуры легко вос­принимаются, существует мно­жество приложений

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

Новые типы данных

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

Расширение типов универсаль­ного сервера (Informix, Oracle) требует сертификации дополни­тельных модулей (datablades, ca­rtridges), их специального тести­рования и вставки в ядро СУБД

Объектная база не требует модификации ядра при до­бавлении нового типа данных. Новый класс и его экземпляры просто поступают во внешние структуры базы данных

Язык СУБД и запросы

Стандартный SQL2, хотя каж­дый производитель предлага­ет его диалекты

Язык манипуляции данными ОЬ-jectSQL полностью совместим с SQL2. Все приложения, исполь­зующие язык SQL для обмена с базой данных, будут работать с объектно-реляционной СУБД

Язык описания объектов и запросов унифицирован с базовым языком программи­рования, например, с C++, Smalltalk, Java. Дополнительно предоставляется язык объект­ных запросов OQL, который яв­ляется SQL-подобным, но он не полностью совместим с SQL2

Оптимизация ядра СУБД

Ядра реляционных СУБД опти­мизированы для выполнения операций над таблицами

Ядра объектно- реляционных СУБД оптимизированы для выпол­нения операций над таблицами

Ядра объектных СУБД изна­чально оптимизированы под использование объектов 1

Управление базами данных

иЧных версиях UNIX, на однопроцессорных и многопроцессорных симметричных системах.

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

типов данных; . обеспечение доступа к данным через Интернет; • сложные преобразования и анализ данных вместе с обеспечением высокой надежности, производительности и масштабируемости. Поддержка сложных типов данных, таких как изображения, видео, аудио и текст, полностью интегрирована с базой данных с помощью определяемых пользователем функций и типов данных. Она включа­ет в себя мощные функции контекстно-зависимого поиска, а также встроенные функции для поддержки систем аналитической обработ­ки в реальном времени (OLAP - On-Line Analytical Processing).

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

Centura SQLBase 7.5

Это сравнительно компактная по объему занимаемых ресурсов СУБД, используемая для создания бизнес-систем, в том числе ориен­тированных на Web-технологии. Сервер БД SQLBase (www.centura.com) совместно с информационными системами и/или Web-приложениями позволяет создавать надежные и гибкие системы обработки данных, не требующие сложного администрирования и способные удовлетво­рить большинство потребностей разработчиков и пользователей.

Centura SQLBase 7.5 имеет все необходимые средства для адми­нистрирования и проектирования БД, эффективного взаимодействия с прикладными программами.

Для обеспечения работы в сети SQLBase поддерживает все об­щепринятые коммуникационные протоколы, например, TCP/IP, IPX/SPX, NetBios, и хранимые процедуры. Для доступа к данным SQLBase может использоваться любое средство, которое поддерживает ODBC.

SQLBase 7.5 поставляется в 3 вариантах: Standard, SafeGarde и SafeGarde Max.

Oracle9i

База данных Oracle9i (www.oracle.ru) нацелена на недавно сложившийся рынок Интернет-приложений. Она обладает возмож­ностями кластеризации, мощными и экономичными средствами безопасности, исключает потери данных и позволяет интерактивно

133

Технологические основы бизнеса ЧАСТЫ

обмениваться информацией. Oracle9i Database удовлетворит все по-требности вашего электронного бизнеса в Интернете.

Модуль Oracle Real Application Clusters обеспечивает масштаби­руемость, не зависит от используемых компонентов и позволяет мас­штабировать вашу систему своими силами.

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

Модуль Oracle9i Data Warehouses обслуживает больше пользова­телей и анализирует оперативные данные быстрее, чем раньше. Мо­дуль Oracle9i Dynamic Services - это открытая система с программным доступом, централизованным управлением и средствами организа­ции многоканальных служб Интернета.

6 Oracle9i улучшена встроенная поддержка языков Java и XML.

Oracle8i Server

В состав предварительно настроенного и сконфигурированного сервера Огасіеві, называемого также ОгасІе8і Standart Edition, входит интегрированный набор простых в использовании средств управле­ния, тиражирования, репликации и работы в Web. Средства репли­кации и доступа к распределенным данным позволяют пользователям распределять реляционные данные между приложениями и сервера­ми и совместно использовать их.

Интегрированное графическое средство Oracle Enterprise Ma­nager (рис. 5.7) дает администраторам возможность выполнять задачи комплексного управления, используя операции типа «укажи и нажми». Сервер Oracle8i предоставляет пользователям новый уровень распре­деленных вычислений для рабочих групп. Системы клиент-сервер и «тон­кий клиент» обладают самой высокой степенью распределенности.

Oracle8i обеспечивает единую систему управления базами дан­ных, которая способна удовлетворить требованиям, предъявляемым новыми типами данных сейчас и в последующие годы. С помощью продукта Oracle interMedia Oracle8i может управлять текстами, изо­бражениями, аудио и видео данными, привязкой данных к картам и схемам с той же степенью интеллектуальности, масштабируемости, защищенности и целостности, что и для структурированных данных.

134

Borland InterBase

Этот SQL-сервер баз данных (www.borland.ru) объединяет просто­ту использования, низкие затраты на сопровождение и мощность си­стем корпоративного уровня. Сервер InterBase реализует архитектуру множественных поколений записей (MGA - Multi-Generational Archite­cture). Механизм MGA в InterBase хорошо работает при оперативной обработке коротких транзакций (OLTP - On-Line Transaction Processing) и обеспечивает своевременные, устойчиво воспроизводимые резуль­таты для каждого запроса без специального программирования. В результате достигается максимальная пропускная способность для всех пользовательских транзакций.

К MGA сервер InterBase добавляет многопотоковую архитектуру, улучшая производительность и оптимизируя использование системных Ресурсов, особенно при большом числе пользователей. Многопотоко­вая архитектура обеспечивает разделяемый кэш данных, сокращая число дисковых операций ввода-вывода для каждого запроса в прило­жении. Привлекательные свойства Java - простота, надежность, пере-

135

Технологические основы бизнеса

носимость и гибкость - также характерны и для InterBase. Приложения на Java получают доступ к InterBase через драйвер JDBC InterClient.

InterBase придерживается строгого соответствия индустриальным стандартам для клиент-серверных сред, таким как ANSI/SQL, Java, UN­ICODE и XDR (External Data Representation - внешнее представление данных). При этом обеспечивается работа под управлением Windows 2000 (с Service Pack l), NT 4.0 (с Service Pack 6), ME, 98, Red Hat 6.2, 7, Mandrake 7.2, SuSE 7.0, TurboLinux 6.0, Solaris 2.6, 7.

Microsoft SQL Server 2000

В сервер SQL Server 2000 (www.microsoft.com) включен поддержка языка XML и протокола HTTP, средства повышения быстродействия и доступности, позволяющие распределить нагрузку и обеспечить бес­перебойную работу, функции для улучшения управления и настройки, снижающие совокупную стоимость владения (рис. 5.8). Кроме того, SQL Server 2000 полностью использует все возможности Windows, включая поддержку до 32 процессоров.

К основным возможностям SQL Server 2000 относятся: . доступ по протоколу HTTP, который поддерживает отправку SQL-запросов к БД с применением Интернет-адресов; . полнотекстовый поиск позволяет выполнять поиск в тексте БД, а также в документах Word, таблицах Excel, PDF-файлах, что являет­ся критически важным для Web-применения; . Microsoft English Query является средством формирования запро­сов на естественном (английском) языке, применяемым в клиент­ских приложениях и при работе через Интернет;

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

  • связанные базы данных OLAP - это, в первую очередь, кубы OLAP, применяемые для реализации новых возможностей анализа дан­ных; они позволяют повысить ценность данных за счет предостав­ления возможностей анализа OLAP через Web;

  • сервер Commerce Server и средство Business Internet Analytics ис­пользуются для анализа работы пользователей на Web-узле по зарегистрированным данным о Web-трафике;

  • распределенные разделенные представления (Distributed Partiti­oned Views) обеспечивают неограниченную масштабируемость для приложений электронной коммерции;

  • выполняемая без перехода в автономный режим параллельная проверка DBCC (Database Consistency Check - проверка совме­стимости БД) обеспечивает целостность данных;

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

  • архивация с созданием «мгновенных снимков» производится в системах с зеркалированием без прерывания работы;

  • интегрированные службы анализа служат основой для обработ­ки OLAP;

динамические автоматическое управление и настройка эконо­мят время при установке и настройке;

137

Технологические основы бизнеса

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

  • диспетчер SQL Server Enterprise Manager обладает новыми воз­можностями, включая усовершенствованные средства разра­ботки схем, интеграцию репозитариев, интерактивный анализ и отладку запросов;

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

  • поддержка многих языков позволяет «на лету» менять язык поль­зовательского интерфейса.

Cache 5

Это постреляционная промышленная СУБД от компании InterS-ystems (www.intersystems.com), интегрированная с технологией раз­работки Web-приложений - Cache Server Pages. Она имеет единую архитектуру данных и поддерживает объектно-ориентированные тех­нологии. Cache поддерживает следующие ОС: все версии Windows и Linux, основные реализации Unix и Open VMS.

Данные в Cache хранятся под управлением многомерного сер­вера данных (рис. 5.9). В ее основе лежит транзакционная многомер­ная модель данных (ТММД), которая позволяет хранить и представлять данные так, как они чаще всего используются. ТММД позволяет избе­жать проблем, присущих реляционным СУБД, оптимизируя данные на уровне хранения.

В Cache реализована концепция единой архитектуры данных. К одним и тем же данным, хранящимся под управлением многомерного сервера данных Cache, существует 3 способа доступа:

  • прямой;

  • объектный;

  • реляционный.

Прямой доступ к данным обеспечивает максимальную произво­дительность и полный контроль со стороны программиста. Реляцион­ный доступ - Cache SQL обеспечивает максимальную производитель­ность реляционных приложений с использованием встроенного SQL. В Cache реализована и объектная модель. Для реализации бизнес-логики БД в Cache используется Cache Object Script - полнофункцио­нальный язык, который имеет все необходимые механизмы для работы с данными независимо от способа доступа.

Ї38

Разработчик может реализовывать приложения клиент-сервер, используя практически все средства разработки. При этом он может использовать специальные интерфейсы для прямого и объектного доступа, а стандартные (ODBC, JDBC) - для реляционного. В Cache реализована полноценная поддержка XML. Полная поддержка объ­ектной модели позволяет автоматически трансформировать сложные XML-документы в классы объектов Cache.

Sybase

Компания Sybase (www.sybase.ru) разработала базы данных, оптимизированные под требования и нужды различных бизнесов:

  • Adaptive Server Enterprise;

  • Adaptive Server Anywhere;

  • Adaptive Server IQ.

Сервер баз данных Sybase Adaptive Server IQ специально раз­работан для высокоскоростного анализа данных. Благодаря ис­пользованию технологии обработки запросов, уникальных способов

139

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

Sybase Adaptive Server IQ Multiplex использует особый, ори­ентированный на столбцы, метод хранения данных. Такой подход в сочетании с новыми индексными технологиями, преодолевающими ограничения традиционных индексов, значительно ускоряет процесс выполнения запросов и снижает требования к объему дискового про­странства. Скорость загрузки с полной индексацией составляет до 40 Гбайт/час.

Sybase Adaptive Server Enterprise (ASE) 12.5 разработан как для создания и поддержки традиционных OLTP- и распределенных при­ложений, так и для развития интернет/интранет систем. Это готовая к использованию в портальных и Интернет-решениях система, которая содержит множество новых возможностей и усовершенствований.

Adaptive Server Anywhere (ASA) 6.0 - это новая расширенная и оптимизированная версия Sybase SQL Anywhere. Отличительными чер­тами этой СУБД являются невысокие требования к ресурсам (можно начинать работать, когда в машине всего 2 Мбайт оперативной па­мяти), поддержка различных аппаратных платформ и операционных систем (Windows 3.11/95/98/NT/CE, Novell NetWare и всех основных версий UNIX), невысокая цена.

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

Другой метод тиражирования данных - использование Replicati­on Server, также поддерживаемого в ASA с помощью Replication Agent. С его помощью можно осуществлять практически мгновенную син­хронизацию данных, создавать систему «горячего» резервирования, тиражировать данные в разнородные БД.

ASA поддерживает два стандарта - Transact-SQL и Watcom SQL (включая SQL в стандарте ANSI 92), При этом Transact-SQL совместим с языком SQL СУБД Sybase Adaptive Server Enterprise, обладающей еще

140

-rc^5 Управление базами данных

более высокими возможностями в аспекте масштабируемости и про­изводительности.

В ASA 6.0 улучшен оптимизатор запросов. Теперь имеется воз­можность кэширования повторно вызываемых запросов. Кроме того, можно получить план запроса для оценки оптимизации и корректи­ровки.

MySQL

Набирающий популярность SQL-сервер - mySQL (www.mysql.com) -это компактный многопоточный сервер баз данных, который характе­ризуется большой скоростью, устойчивостью и легкостью в использо­вании. mySQL является эффективным решением для малых и средних приложений. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значи­тельный прирост производительности.

mySQL-сервер является бесплатным для некоммерческого ис­пользования. Иначе необходимо приобретение лицензии, стоимость которой составляет не более 200 долларов.

Этот SQL-сервер поддерживает язык запросов SQL в стандарте ANSI 92 и, кроме этого, имеет множество расширений к этому стан­дарту. Возможно, mySQL самый быстрый сервер из существующих, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД. Так в mySQL отсут­ствуют поддержка вложенных запросов, не реализована поддержка транзакций и внешних ключей, а это приводит к тому, что в разрабо­танных приложениях при переходе на эту СУБД могут оказаться не­работоспособными некоторые функции бизнес-логики или получение каких-то отчетов.

PostgreSQL

Это бесплатный и вместе с тем достаточно мощный SQL-сервер (www.postqresql.com), который включен в состав многих современных дистрибутивов Linux. Этот сервер баз данных относится к объектно-реляционным базам данных.

Последняя версия PostgreSQL полностью совместима с началь­ным уровнем SQL ANSI 92, она поддерживает большинство SQL-koh-стРукций, включая транзакции, подзапросы, а также типы и функции, определяемые пользователем. PostgreSQL - первая из некоммерче­ских баз данных, которая может поддерживать «экзотические» типы Данных и модели анализа, такие, как, например, вывод геометриче­ских данных в трех измерениях.

1U1

Вечное хранение данных

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

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

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

  • мета данные (данные о данных);

  • детальные данные (данные оперативных систем);

  • агрегированные данные.

142

Хранилища данных и OLAP-средства

ПОЛЕЗНО ЗНАТЬ

Важная терминология

Хранилище лонных [Data Warehouse). Предметно-ориентированный, интегрированный, неизменяемый, поддерживающий хронологию набор данных, организованный для целей поддержки принятия ре­шений (по определению основателя хранилищ данных Б. Инмона). Более просто: это база данных, хранящая данные, агрегированные по многим измерениям.

Витрина [или киоск) Аанных [Data Mart). Небольшое хранилище, а ко­нечные пользователи могут создавать собственные структуры данных в нем.

Информационная система руководителя [ИСР) (Executive Information System (EIS)). Приложения, созданные для использования руководите­лями.

Средства OLAP (On-Line Analytical Processing). Инструментарий на­вигации по многомерным данным.

MOLAP (Multidimensional OLAP). Детальные данные и агрегаты хра­нятся в многомерной БД. В этом случае получается наибольшая избыточность, так как многомерные данные полностью содержат реляционные.

ROLAP (Relational OLAP). Детальные данные остаются на своем месте (в реляционной БД), агрегаты хранятся в той же БД в специально соз­данных служебных таблицах.

HOLAP (Hybrid OLAP). Детальные данные остаются на месте (в реляци­онной БД), а агрегаты хранятся в многомерной БД.

Оперативные БД. Этот термин обозначает традиционные БД и введен для того, чтобы подчеркнуть их существенное отличие от БД, использу­емых для реализации ХД.

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

Базы и хранил пша данных

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

143

Технологические основы бизнеса ЧАСТЫ

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

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

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

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

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

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

144

Хранилища данных и OLAP-средства

нИтся в БД или файлах оперативных систем? Анализировать данные оперативных систем непосредственно невозможно или, по крайней мере, весьма затруднительно, так как данные хранятся в форматах а3личных СУБД и на разных носителях в корпоративной сети.

Пополнение ХД происходит периодически, при этом автоматиче­ски формируются новые агрегаты данных, зависящие от старых, т. е. в одном месте и в простой структуре хранится «сырье» для анализа (рис. 6.1).

Рис. 6.1. Архитектура интеллектуального извлечения данных из ХД

Если до недавнего времени для анализа имеющихся данных при­менялась схема: БД - Средство анализа, то в быстро развивающаяся концепция хранилищ данных (ХД) предлагает изменить эту схему: °А - объекты ХД - Средство анализа. Это и есть суть информацион­ная система нового поколения.

Неизменный спутник хранилпш данных

Централизация и удобное структурирование данных - это далеко не все, что нужно аналитику. Традиционные отчеты, даже построенные на основе единого хранилища, лишены гибкости. Они не позволяют

10 — 4-1529

145

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

Не вдаваясь в сложную теорию определяющих принципов OL.AP сформулированных Е. Коддом - «изобретателем» реляционных БД приведем следующее определение OLAP: Быстрый Анализ Разде­ляемой Многомерной Информации - FASMI (Fast Analysis of Shared Multidimensional Information). Fast означает, что система должна обе­спечивать выдачу большинства ответов пользователям в пределах 5 секунд. Analysis означает, что система может справляться с любым логическим и статистическим анализом. Shared означает, что систе­ма осуществляет все требования конфиденциальности (возможно до уровня записи), а при доступе нескольких пользователей обеспечи­вает блокировку изменений на соответствующем уровне. Multidime­nsional - система должна обеспечить многомерное концептуальное представление данных, включая полную поддержку для иерархий и множественных иерархий данных. И, наконец, Information - это все, с чем мы работаем каждый день и пытаемся на ее основе получить прогнозируемые результаты.

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

Некоторые аспекты хранения данных Структуры хранения данных

OLAP-серверы, или серверы многомерных БД, могут хранить свои многомерные данные по-разному. Дело в том, что в любом ХД наряду с детальными данными, извлекаемыми из оперативных систем, *Ра'

146

нятся и суммарные (агрегированные) показатели (агрегаты), такие, как суммы объемов продаж по месяцам, по категориям товаров и т. п. Агрегаты хранятся в явном виде, чтобы ускорить выполнение запросов, так как аналитиков в большинстве случаев интересуют не детальные, а обобщенные данные. К тому, если каждый раз для вычисления суммы продаж за год пришлось бы суммировать десятки и сотни тысяч про­даж, то скорость была бы абсолютно неприемлемой. Хотя при этом за скорость приходится «расплачиваться» объемом данных.

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

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

Поставщики

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

Программная реализация OLAP-решения предполагает наличие

машины вычислений (OLAP-сервера) и многомерной базы данных (МО-

лар) к которой обращаются клиентские программы с запросами на

получение данных и выполнение вычислений. Любое конечное решение

соДержит OLAP-компоненту, которая является интерфейсом пользова-

Технологические основы бизнеса

ЧАСТЫ

теля. Эти компоненты похожи друг на друга. Их визуальная часть состо­ит из элементов управления и элементов отображения данных.

Среди поставщиков этого класса программного обеспечения -прежде всего, известные поставщики серверов баз данных. К их числу относятся Oracle (со своим OLAP-продуктом Express), IBM (DB2 OLAP Server), Microsoft (OLAP Services), Informix (MetaCube).

Кроме того, достаточно интересны и решения известных игроков смежных рынков - SAS Institute (MDDB и CFO СЮ Vision), SAP (BW), Hy­perion Solutions [Essbase), CA (InfoBeacon).

Еще недавно поставщики OLAP-серверов продавали свои про­дукты по очень высоким ценам. Например, приобретение Oracle Express обошлось бы в $95 000 за рабочие места двух аналитиков и двух администраторов. Поэтому многие управленцы для решения таких аналитических задач использовали всем известное приложение Excel из состава офисного пакета от Microsoft. Хотя эта популярная программа годится только для одного пользователя, тем не менее, при правильной организации работы и интеграции с внешними приложе­ниями можно достичь хороших результатов в получении «аналитики». По сути, появление OLAP-функциональности ознаменовало появле­ние особого класса продуктов - настольных OLAP (DOLAP - Desktop OLAP).

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

  • локальные манипулируют данными таблиц MS Excel или настоль­ных СУБД, например Access, Paradox;

  • корпоративные DOLAP имеют доступ к SQL-серверам или много­мерным базам данных и, в свою очередь тоже делятся на две категории.

DOLAP-программы поставляются самими разработчиками баз данных, многомерных и реляционных. Это SAS Corporate Reporter, Ora­cle Discovery, комплекс программ MS Pivot Services и Pivot Table и дру­гие. Имеются и разработки российских компаний, например Контур Стандарт от Intersoft Lab или разработка компании ПиБи - OLAP 7.7 -инструмент оперативного анализа данных для семейства программ 1С:Предприятие 7.7. Так, применение OLAP 7.7 позволяет выявлять наилучших или наихудших поставщиков и покупателей, определять за­кономерности объемов продаж по периодам и регионам, применять его для выявления «узких» мест ведения бизнеса и учитывать это при принятии управленческих решений.

148

Достаточно интересные продукты предлагает компания Intersoft Lab (www.iso.ru). Продукты Контур представлены:

  • Платформой Хранилищ данных (Contour DataWarehouse Platform), предназначенной для создания единого информационного про­странства и поддержки корпоративного управления;

  • Аналитической платформой (Contour Analysis Platform), предна­значенной для бизнес-анализа и публикации данных.

Также необходимо упомянуть и о пакете Deductor (www.baseqr-pup.ru), который обеспечивает моделирование, прогнозирование, поиск закономерностей и другие технологии обнаружения знаний (Knowledge Discovery in Databases) и добычи данных (Data Mining). В его состав входят:

  • Cube Analyzer - настольный OLAP-модуль, реализующий техноло­гию многомерного анализа в простой и удобной форме;

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

  • Tree Analyzer - программа, позволяющая проводить анализ дан­ных на основе деревьев решений;

  • SOMap Analyzer - программа, позволяющая проводить анализ данных на основе самоорганизующихся карт Кохонена;

  • Neural Analyzer - программа, реализующая многослойные нейрон­ные и RBF-сети. При помощи них решаются задачи прогнозирова­ния, моделирования и управления динамическими системами.

Несколько советов

по повышению производительности OLAP-кубов

  1. Для достижения максимальной производительности следует пра­вильно выбрать режим хранения - MOLAP, HOLAP, или ROLAP. Про­изводительность при использовании MOLAP или HOLAP примерно одинакова, а применение ROLAP в любом случае ее понизит. MOLAP требует больших объемов дискового пространства, чем HOLAP и ROLAP, хотя для HOLAP необходимо меньше оперативной памяти.

  2. Выбирая уровень агрегирования для кубов, не рекомендуется выходить за интервал от 25 % до 60 %. Уровни агрегирования

149

Технологические основы бизнеса

выше 60 %, как правило, требуют огромных объемов дискового пространства и в большинстве случаев не приводят к существен­ному увеличению скорости обработки запросов.

  1. Для достижения наивысшей производительности SQL-сервер с хранилищем или витриной данных и OLAP-сервер должны быть на разных компьютерах.

  2. Если OLAP-кубы очень большие по размеру или часто использу­ются, то их желательно разместить их на отдельных серверах, тем самым распределив нагрузку. Для наиболее часто используемо­го куба можно создать его копии на нескольких серверах.

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

  4. По умолчанию объем памяти, используемый OLAP-сервером, равен половине объема оперативной памяти сервера. Если сер­вер используется для обработки одного из нескольких кубов, то значение минимально доступной памяти должно составлять 90% памяти сервера.

  5. Помните, что максимальное количество обрабатываемых OLAP Service нитей (процессов) равно 1000. Исходя из этого, с помо­щью монитора производительности можно определить нагрузку процессоров.

  6. Проводите качественные анализ и проектирование систем. Это позволит при разработке OLAP-кубов не включать в них меры или измерения, которые не будут использоваться.

  7. При создании OLAP-куб, используйте мастер анализа, чтобы про­анализировать обрабатываемые запросы, и мастер оптимиза ции, чтобы повысить производительность.

  8. В случае корпоративной версии SQL-сервера для повышения производительности OLAP-кубы можно поделить на партиции (отдельно управляемые элементы хранения). Каждая партиция может иметь свой режим хранения данных и уровень агреги­рования. Использование партиций позволяет размещать их на разных дисках и повысить интенсивность их использования.

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

150

Последствия атак на информацию

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

Одной из причин неуемного роста компьютерных преступлений является сумма денег, получаемая в результате таких деяний. В то вре­мя как ущерб при ограблении банка - $19 000, потери от среднего компьютерного преступления составляют почти в 30 раз больше.

Согласно информации исследовательского центра DataPro Research, основные причины повреждений электронной информа­ции распределились следующим образом: неумышленная ошибка человека - 52 % случаев, умышленные действия человека - 10 % случаев, отказ техники - 10 % случаев, повреждения в результате по­жара - 15 % случаев, повреждения водой - 10 % случаев. Как видим, каждый десятый случай повреждения электронных данных связан с компьютерными атаками.

Кто же был исполнителем этих действий: в 81 % случаев - штатные сотрудники учреждений, только в 13 % случаев - совершенно посто­ронние люди, и в 6 % случаев - бывшие работники этих же учрежде­ний. Доля атак, производимых сотрудниками компаний и предприятий, просто ошеломляет и заставляет вспомнить не только о технических, но и о психологических методах профилактики подобных действий.

«Добравшись» до информации, что же предпринимают злоумыш­ленники? В 44 % случаев взлома были произведены непосредствен­ные кражи денег с электронных счетов, в 16 % случаев выводилось из строя программное обеспечение, в 16 % случаев - производилась кража информации с различными последствиями, в 12 % случаев ин­формация была фальсифицирована, а в 10 % случаев злоумышлен­ники с помощью компьютера воспользовались либо заказали услуги, к которым, в принципе, не должны были иметь доступа.

151

Основные методы атак на информацию

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

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

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

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

Denial of Service (DoS) предполагают бомбардировку Web-сайтов непрерывными потоками нестандартно сформированных ІР-пакетов. Атакующая машина генерирует кажущиеся нормальными сообщения, например пакеты User Datagram Protocol (UDP). Эти пакеты составлены так, что они как будто исходят из того же сервера, который их прини­мает. Пытаясь отвечать на эти пакеты, бомбардируемый сервер утра­чивает способность принимать какую-либо другую информацию.

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

  • удаленное блокирование (проникновение) компьютера;

  • локальное блокирование (проникновение) компьютера

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

152

Информационная безопасность

• взломщики паролей;

. сетевые анализаторы (sniffer) (отслеживание сетевого трафика).

Способы зашиты от компьютерных злоумышленников

Защита сети от компьютерных атак - это постоянная и нетриви­альная задача, но ряд простых средств защиты сможет остановить большинство попыток проникновения в сеть. Среди таких средств можно выделить следующие:

  1. Оперативная установка исправлений (заплаток, патчей) для программ, работающих в Интернете. Часто в прессе и Internet появляются сообщения о нахождении бреши в защите почтовых программ или Web-браузеров, а после этого их разработчики выпускают программы-заплатки. Их необходимо обязательно ис­пользовать.

  2. Антивирусные программы по обнаружению троянских коней незаменимы для повышения безопасности в любой сети. Они наблюдают за работой компьютеров и выявляют на них вредо­носные программы.

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

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

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

  6. Программы-сканеры имеют большую базу данных уязвимых мест, которую они используют при проверке того или иного компьютера на наличие у него уязвимых мест. Имеются как ком­мерческие, так и бесплатные сканеры. Например, сканер Orge

153

Технологические основы бизнеса