Теперь появилась хорошая поддержка в решении этой задачи - своеобразный "справочник для руководителя" по наиболее существенным промышленным технологиям в области баз данных (БД): Simon A. R. Strategic Database Technology: Management for the Year 2000. Morgan Kaufmann Publishers, 1995 (имеется перевод Саймон А. Р. Стратегические технологии баз данных: менеджмент на 2000 год. М.: Финансы и статистика, 1998).
Книга представляет собой объемный (479 страниц) и достаточно детальный обзор важнейших технологий баз данных, ориентированный на тех, кто отвечает за планирование и принятие решений по использованию информационных технологий на предприятиях. Такое сочетание ориентации на предмет и на аудиторию выделяет именно эту книгу из прочей литературы по базам данных.
Известно, что на многих предприятиях часто срабатывает соблазн связать свою дальнейшую жизнь с какой-нибудь одной СУБД. Если вы имеете дело с "системным интегратором", то он легко докажет, что предлагаемая им СУБД весьма хороша (часто так оно и есть) и что иметь дело с одним поставщиком и одним генпроектировщиком БД лучше, чем с несколькими (а вам и самим так кажется). Выглядит разумно, но все-таки ограничиваться такими простыми выводами очень опасно. Как руководитель, вы конечно же заинтересованы в том, чтобы через один-два года необходимость существенной структурной и функциональной модернизации информационной системы (ИС) не повергла производство в нокаут. Самый подходящий способ минимизировать этот риск заключен в правиле, по которому именно "покупатель", а не "продавец" должен быть хозяином принимаемых информационно-технологических решений. Но чтобы такое было возможно, руководитель информационной службы на предприятии должен представлять себе все многообразие существующих технологий и возможностей СУБД, их влияние на архитектуру проектируемых БД, их ограничения и перспективы.
Помощь руководителю в этом деле и есть "сверхзадача" монографии Саймона. В ней описываются практически все насущные и многие перспективные направления в технологии БД.
Покажем, как "сверхзадача" решается на примере очень важной темы, под которую отведено несколько глав: построение распределенной БД. Вообще-то автор рассматривает вопрос и шире, говоря о технологиях и моделях управления информационной системой и об общей задаче таких технологий и моделей - организовать "мосты" между "информационными островами", сложившимися на предприятии (или на группе предприятий). Эта задача не исчерпывается простым техническим решением типа передачи таблиц с сервера на сервер, ее многоаспектность демонстрирует перечень того, что желательно при этом обеспечивать. А именно:
- возвести над существующей информационной средой "зонтик управления информацией", который бы позволил устранить избыточность и улучшить согласованность и целостность данных. Приложения должны работать с удаленными данными так, как это требуется в соответствии с пользовательскими привилегиями;
- обеспечить "правильное" выполнение задач из предыдущего пункта с соблюдением принципов осуществления транзакций и одновременной работы пользователей, с управлением секретностью и доступом, с координированным восстановлением после нештатных ситуаций и т. д.;
- дать средства разработки новых приложений исходя из некоторой общей картины наличных данных и не до, а после этого заниматься проектированием мест расположения данных;
- обеспечить вновь создаваемым приложениям возможность работать как со старыми, так и с новыми данными, заведенными по "новым правилам";
- дать возможность использовать в разных компонентах приложения, наиболее подходящие для этого модели управления информацией (объектная, гипертекстовая и т. д.), причем так, чтобы результатами работы одного приложения могло пользоваться и другое, несмотря на разницу в моделях.
В развитии концепций баз данных вопрос распределенности тесно связан с 1987 годом, когда Крис Дейт опубликовал свои "12 правил" распределенной системы БД. Суть этих правил заключается в обеспечении прозрачного доступа к базам данных, распределенных по компьютерной сети. Саймон отмечает, что, несмотря на всю привлекательность этих правил и на давность их возникновения, степень реализации их в современных коммерческих СУБД очень низка. В связи с этим в книге приводится целый ряд вариантов воплощения идеи распределенной базы данных - с прозрачным доступом или без.
Отмечается, что классифицировать такие решения трудно ввиду многообразия и сложности предмета. Например, в конкретных ситуациях можно говорить об однородных или неоднородных системах - по способу использования в системе конкретных СУБД. Независимо от этого системы могут различаться по характеру проектирования: "сверху вниз" или "снизу вверх". Первый случай идеален с точки зрения формальной методологии и напоминает проектирование централизованной БД, однако не всегда достижим: на практике часто приходится строить распределенную систему "снизу вверх" из уже имеющихся "кусочков". В системах, построенных "сверху вниз", большое значение имеет техника распределения данных (секционирование таблиц, вертикальное или горизонтальное, и реплицирование).
Частым атрибутом систем, спроектированных "сверху вниз", является глобальная схема данных, однако, как указывается в книге, ее использование может быть сопряжено с неприятностями и неприемлемо для конкретных случаев. Глобальная схема может отсутствовать, но могут иметься частичные схемы для разных узлов, что соответствует технологии федеративной системы баз данных. Наконец, общность схемы может отсутствовать в любых проявлениях, и тогда можно говорить о взаимодействующих системах баз данных.
Как отмечается в книге, разные архитектурные решения для распределенной системы БД со временем подвергаются переосмыслению, но всякий раз они вынуждены "противостоять" целому ряду проблем.
- Смысловые несоответствия. Информация одного и того же вида, поступающая из разных мест, может иметь разный смысл в разных локальных узлах. Если эту проблему не решать, функционирование распределенной системы будет некорректно.
- Выборка. Чтобы избежать ресурсозатратных глобальных запросов, пользователь может обращаться к агрегированным данным. Но тогда он должен уметь понимать смысл агрегации, то есть иметь средства уточнения структуры исходных данных и процедур агрегирования.
- Безопасность. Обеспечение в распределенной системе безопасности передачи информации разного уровня доступа - отдельная большая область специальных технологий.
- Масштабируемость. При использовании техники глобальной схемы может случиться, что алгоритмы обработки запросов, эффективно работающие для небольшого числа узлов, окажутся неработоспособными при росте числа подключенных пользователей.
- Обработка транзакций. В среде разных СУБД вероятно столкновение разных схем управления одновременным доступом, принятых разными поставщиками. В неоднородной среде возможно к тому же одновременное наличие классических линейных или вложенных транзакций при обращении к табличным данным и "долгих" транзакций при обращении к объектным данным. Одним из решений могло бы стать использование стандартного монитора транзакций.
- Распределенное проектирование. Для большой распределенной системы это само по себе большая проблема.
- Распределенная обработка запросов. Проблема планирования выполнения разноплановых запросов в распределенной среде также непроста.
А вот пример другой темы: построение временных (ударение на последнем слоге) баз данных. Так же как и предыдущая тема, она не сводится к универсальным простым решениям. Саймон показывает неудовлетворительность простого "навешивания" на записи БД дополнительного поля типа "дата", то есть желания, рефлекторно возникающего у иных скорых на руку проектировщиков. Автор знакомит читателя с проблемой во всей ее полноте и с несколькими наиболее продвинутыми подходами к ее решению (TempSQL, TSQL, HSQL).
Из других тем в книге затрагиваются объектные БД, языки баз данных и управления информацией, иные (кроме временных) перспективные модели БД и управления информацией, функции поддержки БД.
Книга Саймона написана в духе здорового практицизма: в ней не делается особого упора на оценку теоретической правильности решений, предлагаемых рынком СУБД (хотя разговоры на эту тему и не избегаются), зато предпринимается попытка объективного описания существа сложившейся ситуации во всей ее, порой противоречивой, полноте. Этим книга отличается от классического труда Дейта "Введение в системы баз данных", русский перевод шестого издания которой увидел свет также в 1998 году. Представляется, что такой подход оценит любой руководитель, занимающийся конкретной производственной деятельностью.
В заключение несколько слов о русском переводе книги. Для его редактирования был приглашен М. Р. Когаловский, написавший также большое предисловие. Выбор редактора сделан очень удачно. М. Р. Когаловский известен своей многолетней деятельностью в области баз данных. Он следит за этой тематикой более двадцати лет, разбирается в ней, как мало кто другой в нашей стране, и способен судить о технологиях БД на равных с ведущими зарубежными специалистами. Поэтому большое число точных, квалифицированных и уместных редакторских замечаний существенно обогатило перевод.
Владимир Викторович Пржиялковский - независимый консультант, координатор ЕАГПО (www.ccas.ru/~prz). С ним можно связаться по адресу prz@deneg.net.