- •Isbn 966-7982-75-0
- •Isbn 966-7982-75-0
- •Часть I, «Технологические основы бизнеса», посвящена общим вопросам использования ит на предприятии.
- •Глава 8, «Системы организации коллективной работы», описыва-
- •Глава 1 Фундамент информационной системы
- •Часть I
- •Глава 1 Фундамент информационной системы
- •Часть I
- •ЧаСть 1
- •Глава 1 Фундамент информационной системы
- •Часть I
- •Глава 1 Фундамент информационной системы
- •Часть I
- •Часть I
- •Часть I
- •Глава 3 Цифровой мир производства и интеллектуальные здания
- •Глава 3 Цифровой мир производства и интеллектуальные здания
- •Часть I
- •Часть I Технологические основы бизнеса
- •Часть I
- •Глава 7
- •Глава 7
- •Глава 7
- •Глава 7 Информационная безопасность
- •Глава 7 Информационная безопасность
- •Глава 8 Системы организации коллективной работы
- •Глава 8
- •Глава 8
- •Глава 10 Программы бухгалтерского учета и финансового анализа
- •1С: Торговля и Склад
- •Глава 14
- •Глава 16 Добыча знаний и управление ими
- •Глава 17
- •Глава 18 Системы автоматизированного проектирования и plm-системы
- •Глава 18 Системы автоматизированного проектирования и plm-системы
- •Глава 19 Программа управления проектами
- •Экспертные системы
- •Глава 22 Телефонные биллинговые и тарификационные системы
- •Глава 23 Системы видеонаблюдения и контроля доступа на предприятие
- •VideoNet
- •Глава 23 Системы видеонаблюдения и контроля доступа на предприятие
- •Глава 23 Системы видеонаблюдения и контроля доступа на предприятие
- •Глава 24
- •Глава 24
- •Часть II
- •Глава 2
- •Глава 28___ Корпоративный сайт
- •Глава28 Корпоративный сайт
- •Часть IV
- •Часть IV
- •Глава 2
- •Часть IV
- •Часть IV
- •Часть IV
- •Глава 29
- •Часть IV
- •Часть IV
- •Глава 30
- •Глава 30
- •Часть IV
- •Часть IV
- •Часть IV
- •Часть IV
- •Глава 31 Виртуальные предприятия и электронные правительства
- •Часть IV
- •Глава 31 Виртуальные предприятия и электронные правительства
- •Часть IV
- •Глава 31 Виртуальные предприятия и электронные правительства
- •Глава 31 Виртуальные предприятия и электронные правительства
- •Часть IV
- •Часть IV
- •03057, Г. Киев, пер. Полевой, 6.
Часть 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 Language), который сочетает в себе средства 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 dBase, который приобрел набор дополнительных возможностей, среди которых специальные типы полей для графических данных, поддерживаемые индексы, хранение правил ссылочной целостности внутри самой базы данных, а также возможность манипулировать данными Других форматов, в частности серверных СУБД.
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), интеграция с Microsoft 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 полностью совместимы с базами данных Microsoft 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, раз-
9» 131
Таблица 5.1. Общие сведения о реляционных и объектных базах данных
|
Реляционные базы данных |
Объектно-реляционные базы данных |
Объектные базы данных |
Примеры продуктов |
ORACLE, Informix Dynamic Server, DB2, Openlngres, Miscro-soft SQL Server, Sybase SQL |
ORACLE, Informix Universal Server, Universal Server, DB2, UniSQL, Cashe |
ObjectStore, Gemstone, РОЕТ, 02, Versant, Jasmine, ODB-Jupiter |
Модель данных |
Реляционная |
Реляционная |
Объектная |
Понимание и использование |
Табличные структуры легко воспринимаются, существует множество приложений |
Табличные структуры легко воспринимаются, существует множество приложений |
Существенно упрощается разработка прикладных программ, но пока их создано относительно немного |
Новые типы данных |
Система управления базами данных оперирует с ограниченным набором данных |
Расширение типов универсального сервера (Informix, Oracle) требует сертификации дополнительных модулей (datablades, cartridges), их специального тестирования и вставки в ядро СУБД |
Объектная база не требует модификации ядра при добавлении нового типа данных. Новый класс и его экземпляры просто поступают во внешние структуры базы данных |
Язык СУБД и запросы |
Стандартный 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 Manager (рис. 5.7) дает администраторам возможность выполнять задачи комплексного управления, используя операции типа «укажи и нажми». Сервер Oracle8i предоставляет пользователям новый уровень распределенных вычислений для рабочих групп. Системы клиент-сервер и «тонкий клиент» обладают самой высокой степенью распределенности.
Oracle8i обеспечивает единую систему управления базами данных, которая способна удовлетворить требованиям, предъявляемым новыми типами данных сейчас и в последующие годы. С помощью продукта Oracle interMedia Oracle8i может управлять текстами, изображениями, аудио и видео данными, привязкой данных к картам и схемам с той же степенью интеллектуальности, масштабируемости, защищенности и целостности, что и для структурированных данных.
134
Borland InterBase
Этот SQL-сервер баз данных (www.borland.ru) объединяет простоту использования, низкие затраты на сопровождение и мощность систем корпоративного уровня. Сервер InterBase реализует архитектуру множественных поколений записей (MGA - Multi-Generational Architecture). Механизм MGA в InterBase хорошо работает при оперативной обработке коротких транзакций (OLTP - On-Line Transaction Processing) и обеспечивает своевременные, устойчиво воспроизводимые результаты для каждого запроса без специального программирования. В результате достигается максимальная пропускная способность для всех пользовательских транзакций.
К MGA сервер InterBase добавляет многопотоковую архитектуру, улучшая производительность и оптимизируя использование системных Ресурсов, особенно при большом числе пользователей. Многопотоковая архитектура обеспечивает разделяемый кэш данных, сокращая число дисковых операций ввода-вывода для каждого запроса в приложении. Привлекательные свойства Java - простота, надежность, пере-
135
Технологические основы бизнеса
носимость и гибкость - также характерны и для InterBase. Приложения на Java получают доступ к InterBase через драйвер JDBC InterClient.
InterBase придерживается строгого соответствия индустриальным стандартам для клиент-серверных сред, таким как ANSI/SQL, Java, UNICODE и 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 Partitioned 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 - метод передачи выполненных транзакций от одной СУБД к другой - позволяет создавать распределенные приложения.
Другой метод тиражирования данных - использование Replication 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).
Если до недавнего времени для анализа имеющихся данных применялась схема: БД - Средство анализа, то в быстро развивающаяся концепция хранилищ данных (ХД) предлагает изменить эту схему: °А - объекты ХД - Средство анализа. Это и есть суть информационная система нового поколения.
Неизменный спутник хранилпш данных
Централизация и удобное структурирование данных - это далеко не все, что нужно аналитику. Традиционные отчеты, даже построенные на основе единого хранилища, лишены гибкости. Они не позволяют
10 — 4-1529
145
получать множество срезов и разрезов данных. Чем больше срезов и разрезов видит аналитик, тем больше у него идей. Для этих целей используется такой инструмент, как OLAP
Не вдаваясь в сложную теорию определяющих принципов OL.AP сформулированных Е. Коддом - «изобретателем» реляционных БД приведем следующее определение OLAP: Быстрый Анализ Разделяемой Многомерной Информации - FASMI (Fast Analysis of Shared Multidimensional Information). Fast означает, что система должна обеспечивать выдачу большинства ответов пользователям в пределах 5 секунд. Analysis означает, что система может справляться с любым логическим и статистическим анализом. Shared означает, что система осуществляет все требования конфиденциальности (возможно до уровня записи), а при доступе нескольких пользователей обеспечивает блокировку изменений на соответствующем уровне. Multidimensional - система должна обеспечить многомерное концептуальное представление данных, включая полную поддержку для иерархий и множественных иерархий данных. И, наконец, 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), Hyperion 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, Oracle 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-кубов
Для достижения максимальной производительности следует правильно выбрать режим хранения - MOLAP, HOLAP, или ROLAP. Производительность при использовании MOLAP или HOLAP примерно одинакова, а применение ROLAP в любом случае ее понизит. MOLAP требует больших объемов дискового пространства, чем HOLAP и ROLAP, хотя для HOLAP необходимо меньше оперативной памяти.
Выбирая уровень агрегирования для кубов, не рекомендуется выходить за интервал от 25 % до 60 %. Уровни агрегирования
149
Технологические основы бизнеса
выше 60 %, как правило, требуют огромных объемов дискового пространства и в большинстве случаев не приводят к существенному увеличению скорости обработки запросов.
Для достижения наивысшей производительности SQL-сервер с хранилищем или витриной данных и OLAP-сервер должны быть на разных компьютерах.
Если OLAP-кубы очень большие по размеру или часто используются, то их желательно разместить их на отдельных серверах, тем самым распределив нагрузку. Для наиболее часто используемого куба можно создать его копии на нескольких серверах.
Обновление информации в кубах желательно выполнять в периоды наименьшей загрузки сервера.
По умолчанию объем памяти, используемый OLAP-сервером, равен половине объема оперативной памяти сервера. Если сервер используется для обработки одного из нескольких кубов, то значение минимально доступной памяти должно составлять 90% памяти сервера.
Помните, что максимальное количество обрабатываемых OLAP Service нитей (процессов) равно 1000. Исходя из этого, с помощью монитора производительности можно определить нагрузку процессоров.
Проводите качественные анализ и проектирование систем. Это позволит при разработке OLAP-кубов не включать в них меры или измерения, которые не будут использоваться.
При создании OLAP-куб, используйте мастер анализа, чтобы проанализировать обрабатываемые запросы, и мастер оптимиза ции, чтобы повысить производительность.
В случае корпоративной версии SQL-сервера для повышения производительности OLAP-кубы можно поделить на партиции (отдельно управляемые элементы хранения). Каждая партиция может иметь свой режим хранения данных и уровень агрегирования. Использование партиций позволяет размещать их на разных дисках и повысить интенсивность их использования.
Чтобы уменьшить время обработки куба, необходимо отключить опцию оптимизации схемы, тем самым уменьшив количество ненужных связей и значительно снизив время обработки куба.
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) (отслеживание сетевого трафика).
Способы зашиты от компьютерных злоумышленников
Защита сети от компьютерных атак - это постоянная и нетривиальная задача, но ряд простых средств защиты сможет остановить большинство попыток проникновения в сеть. Среди таких средств можно выделить следующие:
Оперативная установка исправлений (заплаток, патчей) для программ, работающих в Интернете. Часто в прессе и Internet появляются сообщения о нахождении бреши в защите почтовых программ или Web-браузеров, а после этого их разработчики выпускают программы-заплатки. Их необходимо обязательно использовать.
Антивирусные программы по обнаружению троянских коней незаменимы для повышения безопасности в любой сети. Они наблюдают за работой компьютеров и выявляют на них вредоносные программы.
Межсетевые экраны, или брандмауэры (firewalls) - это самое важное средство защиты сети предприятия. Они контролируют сетевой трафик, входящий в сеть и выходящий из нее. Межсетевой экран может блокировать передачу в сеть какого-либо вида трафика или выполнять те или иные проверки другого вида трафика.
Программы-взломщики паролей используются хакерами, чтобы украсть файлы с зашифрованными паролями, а затем расшифровав их, проникать на компьютер пользователя. Поэтому следует принимать меры для того, чтобы пароли как можно чаще менялись и их длина была максимальной.
Атакующие часто проникают в сети с помощью прослушивания сетевого трафика в наиболее важных местах и выделения из него имен пользователей и их паролей. Поэтому соединения с удаленными машинами, защищаемые с помощью пароля, должны быть зашифрованы.
Программы-сканеры имеют большую базу данных уязвимых мест, которую они используют при проверке того или иного компьютера на наличие у него уязвимых мест. Имеются как коммерческие, так и бесплатные сканеры. Например, сканер Orge
153
Технологические основы бизнеса