close

Вход

Забыли?

вход по аккаунту

- Библиотечно-информационный комплекс

код для вставкиСкачать
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Ухтинский государственный технический университет»
(УГТУ)
Г. Н. Гатин
Информационные системы
Учебное пособие
Ухта, УГТУ, 2014
Учебное издание
Гатин Герман Николаевич
Информационные системы
Учебное пособие
УДК 004.03 (075.8)
ББК 32.81 я7
Г 23
Г 23
Гатин, Г. Н.
Информационные системы [Текст] : учеб. пособие / Г. Н. Гатин. – Ухта : УГТУ,
2014. – 88 с.
ISBN 978-5-88179-793-5
Учебное пособие предназначено для студентов, обучающихся по магистерской программе подготовки «Нефтегазовое дело», и преследует две цели. Первая: ознакомить с информационными системами, применяемыми в нефтегазовой сфере. Вторая: показать
будущим магистрам основы постановки задач для программирования на компьютере.
УДК 004.03 (075.8)
ББК 32.81 я7
Учебное пособие рекомендовано к изданию Редакционно-издательским советом
Ухтинского государственного технического университета.
Рецензенты: А. В. Назаров, начальник отдела разработки и эксплуатации газовых и
нефтегазовых месторождений филиала ООО «Газпром ВНИИГАЗ» в г. Ухта, доцент, к.т.н.;
Т. Г. Ксёнз, ведущий научный сотрудник филиала ООО «Газпром ВНИИГАЗ» в г. Ухта, к.т.н.;
А. Н. Щукин, начальник лаборатории филиала ООО «Газпром ВНИИГАЗ» в г. Ухта, доцент, к.т.н.
Редактор: К. В. Коптяева.
Технический редактор: Л. П. Коровкина.
© Ухтинский государственный технический университет, 2014
© Гатин Г. Н., 2014
ISBN 978-5-88179-793-5
План 2013 г., позиция 24. Подписано в печать 31.01.2014.
Компьютерный набор. Гарнитура Times New Roman.
Формат 60х84 1/16. Бумага офсетная. Печать трафаретная.
Усл. печ. л. 5,1. Уч.-изд. л. 4,6. Тираж 120 экз. Заказ №281.
Ухтинский государственный технический университет.
169300, Республика Коми, г. Ухта, ул. Первомайская, д. 13.
Типография УГТУ.
169300, Республика Коми, г. Ухта, ул. Октябрьская, д. 13.
Оглавление
Введение................................................................................................................... 4
Глава 1. Согласование понятий ............................................................................. 6
Глава 2. Информационные системы.................................................................... 23
Глава 3. Виды информационных систем ............................................................ 48
Глава 4. Геоинформационные системы .............................................................. 61
Глава 5. Экспертные системы .............................................................................. 78
Заключение............................................................................................................. 87
Список литературы................................................................................................ 88
3
Введение
Курс «Информационные системы» читается будущим магистрам специальности «Нефтегазовое дело» и преследует две цели.
Первая: ознакомить магистров с собственно информационными системами, а также конкретно с информационными системами, применяемыми в нефтегазовой сфере. Вторая: показать будущим магистрам основы постановки
задач для программирования на компьютере.
Несмотря на широкое использование компьютерных понятий в быту, точное содержание этих понятий для неспециалистов неизвестно, а иной раз и непонятно. В результате, когда специалист выполняет постановку задачи для
программирования на компьютере, программист (подрядчик) и специалист (заказчик) разговаривают друг с другом на разных языках. Надо ли говорить, что
при этом результат реализации постановки будет отличен от ожидаемого. Конечно, можно сослаться на стандартные положения технологии программирования (в частности «эффект второй системы»), но заказчику нужен результат, а
не объяснение причин его отсутствия.
Один из путей достижения результата – в согласовании понятий. Когда
заказчик и подрядчик (программист) общаются на одном языке и единообразно
понимают используемые термины, вероятность получить результат отличный
от желаемого существенно снижается. Именно поэтому вся первая глава посвящена объяснению «давно известных, набивших оскомину» терминов. Кроме
того, в первой главе кратко показываются причины появления некоторых явлений в программировании. «В программировании» для неспециалиста можно
перевести как «в реализации ваших задач на компьютере».
С собственно информационными системами не легче. Обзор литературы
показал, что нет общепринятого определения информационной системы. Разброс предлагаемых определений столь широк, что размывается само понятие
информационной системы. В этих условиях студент хватается за первое попавшее определение и пытается, не думая, его использовать. Возможно, «не
думать» – самое плохое, что может сделать обучаемый, поскольку совсем простые рассуждения приводят нас к истине. Во второй главе мы подробно разбираем определение информационной системы и многократно, уточняя
определение, приходим к пониманию изучаемого объекта. Весьма неожиданно,
что существенную роль при этом играет разбор непрограммных информационных систем. Как это ни грустно, но большинство определений информационных систем отождествляется с программным обеспечением.
4
Затем предлагается классификация информационных систем и в соответствии с предлагаемой классификацией разбираются особенности конкретных
информационных систем.
В заключение введения хотелось бы сказать, что чуть ли не главная цель
курса научить магистра общаться с программистом. Что значит общаться или говорить на одном языке – это означает в некотором смысле одинаковое мышление. То есть преследуется цель научить основам программистского мышления.
5
Глава 1. Согласование понятий
Прежде чем начать описывать информационные системы, хотелось бы согласовать понятия. Дело в том, что слова, обозначающие компьютерные понятия достаточно «затасканы», у всех на слуху, и неспециалисты (а им
простительно) не задумываются, что стоит за тем или иным определением. В
результате этого и появляются потом фразы типа «банк данных – экономическая информационная система». При этом неспециалист не задумывается, почему же существуют как теория банков данных, так и теория информационных
систем?
Мы предполагаем, что читатель знаком с компьютером на уровне достаточном для отличия принтера от системного блока. Поэтому мы не будем описывать устройство компьютера. Тем не менее, сделаем следующее замечание:
любой алгоритм может быть реализован как аппаратно, так и программно.
Аппаратная реализация алгоритма работает быстрее программной, но
трудно модифицируема и плохо адаптируема по сравнению с программной.
Аппаратная реализация чаще всего дешевле программной, но модификация аппаратной реализации в процессе эксплуатации сложнее и дороже модификации
программной. То есть эксплуатация аппаратной реализации дороже эксплуатации программной.
Только что сделанные замечания объясняют, почему большинство систем
сегодня реализуются программно. Каждая истина, однако, конкретна. Существуют программно-аппаратные системы и просто аппаратные системы. Сегодня
чисто аппаратные системы встречаются исключительно редко. Практически все
системы имеют как аппаратную часть, так и программную. Поэтому заявление
«аппаратная система» свидетельствует о том, что в реализации системы превалирует аппаратная часть, а программная часть не существенна. Кроме того, заявление «аппаратная система» свидетельствует о том, что система использует
особенности аппаратуры в том смысле, что при отключении или неисправности
аппаратных частей система перестаёт функционировать. Программную же
часть в этом случае нередко можно просто отключить/удалить/заменить и т. п.
без существенного ущерба для функционирования системы.
В этой трактовке компьютер – аппаратная реализация универсального алгоритма повторения других алгоритмов. Мы легко можем сменить на компьютере
операционную систему (Windows на Linux, например), но сменить процессор гораздо сложнее. Более того, заменить процессор клона Intel на процессор клона Sun
просто нереально. С другой стороны, каждый программист знает, что такое вирту6
альная машина: это программное моделирование другого компьютера на вашем
компьютере. В нашей терминологии: программная реализация другого технического устройства. Реализуемое/моделируемое устройство необязательно компьютер. Это может быть мобильный телефон, например. После запуска виртуальной
машины у пользователя появляется впечатление, что он работает сразу на двух
компьютерах, но работают эти компьютеры медленно.
Несмотря на то, что мы смело используем термин программный, необходимо определить или описать, что такое программа для компьютера. В самом
общем случае программа для компьютера – список специальных команд, которые могут быть выполнены компьютером. Определение совершенно непонятное неспециалисту, почему мы приведём другое: программа для
компьютера – список действий, выполняемых компьютером для достижения
определённой цели. Целью может быть решение некоторой задачи, получение
какого-либо отчёта, получение ответа на произвольный запрос и т. д. Программа для компьютера является техническим объектом, математическим объектом,
уникальным объектом, а также объектом купли-продажи. Текст программы защищён авторскими правами, то есть в общем случае текст программы не может
быть изменён без согласия автора – программиста написавшего программу. На
программу распространяются имущественные права, то есть в большинстве
случаев вы должны купить программу, если хотите пользоваться ею. Текст программы, как правило, неизвестен пользователю. Покупая программу, вы соглашаетесь с лицензией на программное обеспечение (ПО). Тем не менее
существует открытое ПО, которое распространяется с открытыми текстами по
цене носителя, на котором записано ПО.
Не всё так просто, как мы написали. Проблема в том, что компьютер не понимает «список действий», которые он должен выполнить. Вторая проблема в
том, что «список действий» составляет человек, который всё время ошибается.
Компьютер не понимает «список действий» (программу) потому, что он
не понимает человеческого языка. Компьютер «общается» на своём языке.
Принципиально можно составить программу на языке компьютера, но это достаточно неудобно для человека. Кроме того, составление программ для компьютера таким образом – чрезвычайно трудоёмкое занятие. Поэтому программа
составляется на некотором промежуточном языке, который достаточно легко
понимает человек и который можно научить понимать компьютер. Такой язык
или такое средство называется алгоритмический язык. Алгоритмический
язык можно определить как искусственный язык, для составления программ
для компьютера. Основное отличие алгоритмического языка от естественного –
однозначность трактовки его фраз. Фраза алгоритмического языка имеет только
7
один смысл и не может быть истолкована двояким образом. Но программу с алгоритмического языка ещё нужно перевести на язык компьютера. Выполняется
это специальной программой, которая называется транслятор. Таким образом,
программа, переводящая фразы алгоритмического языка на язык компьютера,
называется транслятор. Вам может встретиться термин компилятор, что обозначает то же самое.
Алгоритмических языков много. Они бывают универсальные и специализированные. Первый алгоритмический язык был создан в 1958 г. и назывался
FORTRAN. Этот язык существует и сегодня. На нём написано очень много программ. Конечно, FORTRAN-99 отличается от FORTRANa 1958 г., но всё-таки
это один и тот же язык. Наиболее известные языки – COBOL, PL/1, Lisp, Algol,
Pascal, «C» (си), «C++» (си плюс плюс), Java (джава), «C#» (си шарп), Basic,
HTML и т. п. Когда мы пишем, что «язык» существует и сегодня, это значит,
что существует и распространяется промышленная версия транслятора с языка.
Мы пишем программа, подразумевая под этим некую единую целостность. Такие программы сегодня встречаются только в процессе обучения. Программа сегодня – всегда совокупность/комплекс программ. Безусловно, сборка
программ в единое целое – достаточно нудное и неприятное занятие. Человеку
нельзя это поручать ещё и потому, что человек работает с ошибками. Поэтому
программу собирает в рабочее целое специальная программа, называемая редактор. Редактор связей, линковщик (англ. link), компоновщик – другие имена
этой программы.
Отсюда мы видим, что программа проходит следующие этапы: написание
программы или кодировка выполняется программистом. Трансляция программы – транслятором. Сборка программы – редактором. Запуск программы на исполнение выполняется человеком. Почему мы написали человеком, а не
программистом или инженером по сопровождению программы. Дело в том, что
человек часто ошибается. Программа пишется с ошибками. Процесс ликвидации ошибок в программе называется отладкой и выполняется программистом.
Программа при этом транслируется, редактируется, запускается на выполнение,
после чего корректируется текст программы. Этот процесс повторяется многократно, до ликвидации ошибок. Как только программа начинает выдавать ожидаемые пользователем результаты, отладка считается законченной и программа
передаётся в эксплуатацию. В общем случае в процессе эксплуатации программа только запускается на выполнение. Запуск программы делает пользователь,
который в большинстве случаев отнюдь не программист.
Сегодня программист редко работает непосредственно с транслятором
или редактором. Чаще всего он работает в некоторой среде программирования, которая автоматизирует многие ручные процессы. Например среда визу8
ального программирования ADO.NET фирмы Microsoft или CodeGear фирмы
Embarcadero. Впрочем, это потомок известных сред Delphi и C++builder фирмы Borland.
Среды программирования, также как и трансляторы, редакторы и другие программы запускаются не непосредственно на компьютере, а в программной среде,
которая называется «операционная система». Операционная система – это комплекс программ, управляющий работой компьютера. Таким образом, пользователь
общается не с компьютером, он общается с операционной системой. Сегодня наиболее распространены две операционные системы: Windows и клоны Unix.
Windows – операционная система, ориентированная на работу с пользователем не
программистом. Windows широко использует графический интерфейс, который
достаточно быстро осваивается безграмотным пользователем. Основная идея
Windows – ткни в иконку и работай. Unix – операционная система, ориентированная на работу серьёзного грамотного программиста или достаточно грамотного
пользователя. В связи с этим Unix на персональном компьютере встречается гораздо реже. В последнее время широкое распространение получил Linux – открытый
клон Unix созданный свободным некоммерческим объединением программистов.
Распространяется Linux бесплатно, точнее, по цене носителей, на которые он записан. Существуют, однако, и коммерческие версии Linux.
Операционная система хранится на жёстком диске или винчестере, но
может быть записана на CD-rom или DVD. Более того, возможна работа операционной системы с CD или DVD. Это возможно потому, что сама операционная система, как и любая другая информация на компьютере, хранится в
виде совокупности файлов. То есть любая информация на компьютере хранится в виде файла. Файл – любая логически единая совокупность информации. Книга или картотека – типичные файлы. Для компьютера файл
последовательность байт (напоминаем, что байт – минимальная по размеру
часть оперативной памяти компьютера, имеющая свой адрес; размер байта –
8 бит; байт может быть в 256 состояниях). Система ввода/вывода операционной системы может либо читать файл последовательно байт за байтом, либо
иметь прямой доступ к байтам файла, либо манипулировать сразу всем файлом как единым объектом. Информация в файле, сам файл не зависят от устройства хранения файла. Файл один и тот же, где бы он ни хранился – на
винчестере, CD ROMe, DVD, флэшке и т. п. Очень важно, что где бы файл ни
хранился, программа доступа к файлу не изменяется.
Файлы имеют множество самых разнообразных свойств: дата создания, размер файла в байтах, имя файла, дескриптор безопасности и т. д. Большинство
9
свойств файла среднему пользователю без надобности. Среднему пользователю
важны следующие свойства файлов: размер файла в байтах, время хранения файла,
имя файла с расширением и, очень желательно, расположение файла.
Операционная система различает файлы по имени. Имя файла состоит из
собственно имени и расширения. Имя файла может быть достаточно длинным.
Желательно, чтобы оно начиналось с буквы, после которой могут идти цифры
или буквы. На самом деле требования к имени файла зависят от операционной
системы. Например ранее под Windows длина имени файла не могла быть более
восьми символов, и все буквы могли быть только буквами латинского алфавита. Сегодня имя файла может состоять из букв любого алфавита и даже специальных символов (некоторые символы, например кавычки, не могут входить в
имя файла). Это удобно для пользователя, так как он может именовать свои
файлы в привычном ему алфавите, допустим: «методичка по Информационным
системам». Однако следует знать, что некоторые программы сохраняют устаревшие требования к имени файлов. Такие программы не «видят» файлы, имена
которых набраны кириллицей. В этом случае рекомендуется переименовать
файл, набрав его имя латиницей.
Таким образом, имя файла – то же самое, что имя человека. Для поиска файла в системе достаточно указать его имя. Но если бы файлы хранились на диске
беспорядочно, то поиск каждого файла занимал бы неоправданно много времени.
Более того, время поиска бы лавинно возрастало с увеличением количества файлов на диске. Поэтому файлы при хранении на диске или любом другом устройстве объединяются в группы, называемые директориями (в Windows для
пользователя принят термин папка). На любом диске/устройстве существует корневая директория. Она обозначается просто: «идентификатор устройства в системе: «\», например: «C:\» – корневая директория диска «C». Корневая директория
может содержать как файлы, так и директории. Внутри любой другой директории
могут быть как файлы, так и директории. Каждая директория имеет собственной
имя, которое составляется по правилам принятым для имён файлов (предполагается, что имена директорий не содержат расширений).
Отсюда, чтобы указать, где находится файл, мы должны последовательно
перечислить
все
директории,
начиная
с
корневой.
Например:
«C:\ Programm files\Borland\C++Builder \имя файла»: этот файл находится на
диске «C» в директории «Programm files», внутри которой есть директория
«Borland», внутри которой – директория «C++Builder», в которой и находится
файл «имя файла». Такое перечисление директорий называется путь к файлу.
Путь к файлу – это его адрес на устройстве. Принимая такое хранение файлов
10
на устройстве, мы понимаем, что путь к файлу должен быть уникальным в пределах устройства. Имя директории уникально в пределах директории хранения.
Имя файла уникально в пределах директории. Таким образом, файлы с одинаковыми именами могут быть, но в пределах разных директорий.
Обычно имя файла указывается вместе с расширением. Расширение отделяется от имени файла точкой и чаще всего состоит из трёх букв. Файл не обязан именоваться с расширением – встречаются имена файлов без расширения.
Кроме того, расширение может состоять всего из одной буквы, из двух, а иногда более чем из трёх. Расширением указывается формат файла. Формат файла –
это его внутренняя структура и, косвенно, информация, содержащаяся в файле.
Внутренняя структура файла – описание последовательности байт файла: в каком порядке следуют объекты файла, какого они размера, что это за объекты.
Указание расширения позволяет однозначно интерпретировать содержание
файла. Косвенно указывается информация, точнее, тип информации, содержащейся в файле. Расширение *.txt указывается для текстовых файлов, содержащих только символы текста и ничего более. Расширения *.jpg; *.jpeg
свидетельствуют, что файл содержит фотографию или рисунок. Но, в общем
случае, вы не обязаны именовать файлы, используя расширение, или приписывать к имени файла правильное расширение. Поступая так, вы лишаетесь определённого сервиса операционной системы так, как скрываете формат файла, его
внутреннюю структуру от операционной системы. Тем не менее, это ваше дело:
как хотите – так и именуйте.
Формат файла, однако, очень важное понятие. Указывая формат файла,
вы рекомендуете программу его интерпретации/обработки. Форматов файла великое множество. В Интернете можно найти соответствие расширений и форматов или найти, что означает конкретное расширение. Среднему пользователю
необходимо различать три основные группы форматов файлов:
- текстовые файлы (ASCI-файлы): файлы, в основном содержащие текст:
*.txt – только текст;
*.rtf – текст с элементами форматирования текста при выводе на экран
или принтер;
*.doc; *.docx – файлы, раскрываемые текстовым процессором Microsoft
Word;
*.pdf – файлы, раскрываемые программой Adobe Acrobat Reader.
Файлы с расширениями *.doc; *.docx; *.pdf традиционно относят к текстовым, но они могут содержать любую информацию, особенно файлы *.pdf;
11
- графические файлы: файлы, содержащие изображение. Это могут быть
рисунки, фотографии, сфотографированный текст – текст, рассматриваемый
как изображение. Форматов графических файлов очень много: *.gif; *.pcx;
*.tiff; *.bmp; *.jpg и т. д. В каком-то смысле всё равно, в каком формате хранится ваша фотография. Но следует выделить форматы типа *.jpg. Дело в том, что
при сохранении графики в формате *.jpg выполняется «сжатие» файла. При
этом часть информации, изначально хранившейся в файле, безвозвратно теряется. Это не сказывается на восприятии изображения человеком и значительно
уменьшает размеры файла. Меньшие размеры файла позволяют обрабатывать
его быстрее, используя меньшее количество ресурсов. Однако восстановить
удалённую информацию невозможно. То есть *.jpg – формат с потерей информации. Если вам необходимо сохранение изображения один к одному, то необходимо пользоваться другими форматами.
Графические файлы в среднем больше текстовых. В среднем страница
текста А4 формата в текстовом файле будет 3000-4000 байт. Та же страница в
графическом формате – 300 000-400 000 байт, или в 1000 раз больше. Страница
текста при сканировании превращается в изображение текста. Для текстового
представления страницы мы должны либо набрать текст на клавиатуре, либо
распознать текст из графики, используя программу распознавания текста (одна
из лучших программ распознавания – FineReader);
- все остальные файлы, в том числе *.mp3; *.avi и т. д. и т. п., относим к
бинарным файлам. В общем случае, бинарный файл – файл, структура которого интерпретируется специальной программой. Бинарные файлы не обязательно содержат цифровую информацию, например аудиотреки. При работе с
бинарными файлами следует либо работать программой, для которой они и
создавались, либо использовать специальные средства. Опять-таки, аудиотреки
не копируются обычными средствами Windows, хотя запросто воспроизводятся
медиа-плейером.
Как было указано выше, путь к файлу вместе с именем однозначно идентифицирует файл. Хотелось бы обратить внимание пользователя на расположение файла. Дело в том, что Windows устроен так, что если пользователь создаёт
файл, но не указывает его расположения, то операционная система сама его
размещает. Чаще всего на рабочем столе. Причём иконка созданного файла будет отображаться на экране. Когда таких файлов много, да с одинаковыми именами («новая папка», «новая папка(2)» и т. д.), то найти необходимый файл
достаточно затруднительно. Кроме того, вид экрана становится неопрятным: на
вашем рабочем столе беспорядок. Вы наводите порядок, и вот, «лишние» иконки удалены, а вместе с ними и та единственная, которая указывает на необхо12
димый файл. И где теперь искать ваш файл? Средний пользователь чаще всего
не знает, где система располагает его файлы. Поэтому!
Создайте сами (!) свою рабочую директорию и все свои файлы всегда (!)
располагайте только внутри этой рабочей директории. Рабочую директорию
можно разбить на поддиректории (создать внутри рабочей директории другие
директории), в которых будут располагаться файлы, группируемые по видам
работ. Ваша совокупность файлов сразу становится управляемой. Вы всегда теперь знаете, где расположены ваши файлы. Это поможет ещё при одной весьма
необходимой работе. Вы знаете, что время от времени технические устройства
дают сбои, ломаются, операционная система «падает», файлы, причём самые
нужные, загадочно пропадают. Чтобы не кусать локти в случае непонятных явлений, рекомендуется делать страховочные копии файлов. Любой созданный
файл следует копировать. А для того чтобы не вспоминать, какой файл в процессе работы изменён более всех других, лучше всего копировать всю вашу рабочую директорию.
Копия выполняется обычно на CD ROM или DVD. Сегодня часто копируют
на флэшку или выносной винчестер. Важно копировать ваши файлы на носитель,
который вы можете всегда перенести в другое место и с которого было бы затруднительно удалить файлы. Если вы работали с файлами и внесли много изменений,
то сразу следует скопировать изменённые файлы (всю вашу директорию). Обычно
рекомендуют хранить несколько дневных копий, недельную копию и месячную, но
сколько копий хранить и как часто копировать файлы, вы решаете в рабочем порядке. Важно, чтобы у вас всегда были копии файлов. Тогда, в случае непредвиденных обстоятельств, вы всегда можете восстановиться.
Если же, как это часто сегодня бывает, на вашем предприятии нет возможности сделать копии самостоятельно по причине отсутствия на вашем компьютере необходимых технических устройств, копии файлов должна делать
соответствующая служба. Либо же вам должны предоставить место в сети для
страховочных копий.
Вообще, каждый файл имеет срок хранения. Windows же, по истечении срока
хранения файла, может удалить файлы с истёкшим сроком хранения, не спрашивая
разрешения пользователя. Чаще всего система запрашивает разрешение пользователя. Пользователь всё-таки может забыть про файл и случайно разрешить системе
его удалить. Некоторые файлы считаются временными: *.tmp. Такие файлы система может удалить, не спрашивая разрешения пользователя.
Размер файла также имеет значение. Размер файла просто посмотреть в
проводнике. Копируя файл с носителя на носитель, необходимо убедиться, что
13
под файл хватит места. Если места под файл не хватает, его можно сжать. Это
выполняется специальной программой, одной из лучших − WinRAR. После обработки программой сжатия файл становится меньше по размеру, но для использования файл необходимо будет восстановить. Многие из программ сжатия
могут разбить файл на заданные порции, что позволяет скопировать файл по
частям на несколько носителей.
Пользователь может сделать файл видимым или невидимым, если он хочет, чтобы его файлы были видны при простом просмотре директорий. Однако
это слабое средство. Увидеть скрытые файлы очень просто. Если же пользователь всё-таки хочет сделать свои файлы недоступными для других пользователей, то лучше файлы закодировать криптографическими средствами. Обойти
криптографические средства значительно сложнее.
Мы указали основные особенности работы с файлами. Но работа с файлами зависит от операционной системы. Молчаливо полагалось, что пользователь работает под Windows. Всё то, что мы перечислили, имеет смысл и под
Linux (Unix), но там есть свои особенности, так как файловая система Linux отличается от файловой системы Windows. Файловая система: совокупность положений и законов ведения файла (создание, хранение, удаление,
редактирование) в операционной системе при размещении файла на носителе.
Описывая директории и способы именования файлов, мы фактически описывали файловую систему Windows. Файловые системы различных операционных
систем могут быть внешне очень похожи, тем не менее внутри они почти всегда
различаются. Это приводит к тому, что файлы, созданные в Windows, вы не
сможете прочитать в Linux: внутренние структуры различны. Такие файлы могут быть прочитаны, но только специальной программой.
Файловая система – неотъемлемая часть операционной системы. Большинство программ работают с некоторой совокупностью файлов. Эту совокупность файлов также можно назвать файловой системой программы. Это может быть в
каждый конкретный момент времени всего один файл. Тогда важен его формат.
Word, например, работает с файлами форматов *.doc; *.docх. Если объём входных
данных программы велик, то естественно хранить эти данные в файле/файлах.
Таким образом, для каждой задачи/программы программист создавал свою
уникальную систему файлов. В большинстве случаев эта система файлов состояла
из множества различных файлов. Допустим, программа, автоматизирующая бухучёт на предприятии: файловая система состоит из списка сотрудников, штатного
расписания, списка основного оборудования, списка счетов, списка входных накладных, списка выходных накладных и т. д. и т. п. Несмотря на то, что большин14
ство файлов называются «список» и де-факто списками являются, формат этих
файлов разный. Если формат этих файлов разный, то они «ведутся» разными, но
очень похожими программами. Для каждого файла пишутся программы создания
файла, ввода данных в файл, вывода данных из файла, редактирования данных в
файле, удаления файла из системы, копирования/восстановления файла. Иногда
добавлялись и программы кодирования файла и многие другие. Если в файловой
системе был десяток файлов, то программисты писали десяток групп очень похожих программ. Каждую программу необходимо было написать, отладить, сдать в
эксплуатацию. Потом выяснялось, что в структурах данных обнаружена ошибка.
Это приводило к корректировке файловой системы, и весь процесс разработки
файловой системы повторялся.
Так было ранее. Сегодня уникальная файловая система к программе иногда используется, но в большинстве случаев используются базы данных, СУБД
или банки данных.
При работе с файловой системой важно наличие программ, выполняющих
функции создания, удаления, копирования файлов; ввода, вывода, редактирования данных, поиска данных. Было замечено, что если структуру и типы данных, хранившихся в файлах, описать специальным образом, то программы,
реализующие функции работы с файлами, можно реализовать так, что они не
зависели от формата файла. Объём программирования резко снизился. Более
того, сменив описание структур и типов данных, вы могли реализованную
группу программ настроить на работу с «другими» файлами.
Пришло понимание, что для решения задачи важны не форматы файлов, а
структуры и типы данных, необходимых для решения задачи. Произошло отделение описания структур и типов данных от описания форматов файлов. Давайте уточним понятия структуры данных и типа данных.
Тип данных – вид, характер информации, представимый данными. Тип
данных характеризуется размером и видом информации. Размер типа – максимальное число байт, который может занимать данное. Вид информации: что
собственно хранится в данном; однозначно определяет операции, которые
можно выполнять с данными. Типов данных много, но для простого пользователя достаточно знать всего четыре:
Число – число в обычном понимании пользователя. Над числами можно
выполнять арифметические операции, числа можно сравнивать между собой.
Размер числа указывается в количестве десятичных цифр до и после запятой.
Например: глубина скважины – число от 0 до 9999.9 цифр, что означает, что
глубина скважины не может быть более 10 000 м и измеряется с точностью до
десятков сантиметров.
15
Строка – любой набор символов. Под символом понимаются буквы, цифры, специальные знаки («-», «+», «!», «?» и т. п.). Размер, обычно, указывается в
символах. Если декларируется строка длиной 100 символов, то это значит, что
длина данной строки может быть от одного до 100 символов. Строки можно
сцеплять между собой и сравнивать. Важно, что над строками нельзя (!) выполнять арифметических операций.
Дата/время – данные, содержащие даты и время. Даты и время состоят из
трёх частей: дата – день, месяц, год; время – секунды, минуты, часы. С этими
данными возможны арифметические операции, но выполняются они особым
образом. Кроме того, формат даты и времени зависит от культурных традиций.
В России дата – день, месяц, год; в США – год, месяц, день. Размер этих данных обычно не указывается, поскольку всегда фиксирован.
Свободный текст – любой произвольный текст или произвольная совокупность строк. Размер этого типа не указывается. Теоретически текст может быть от
одного символа до 106 символов и более. Молчаливо полагается, что текст – средний абзац, где-то до 1000 символов. «Строка» и «свободный текст» – очень похожие типы данных, но всё-таки различные. «Свободный текст» – совокупность
строк. Строка может содержать не отображаемые на письме символы и быть совершенно бессмысленной. Предполагается, что «свободный текст» – некое короткое и не очень описание чего-либо, что подразумевает осмысленность текста.
Размеры и строк, и текста указываются в символах, а не в байтах. Это связано с тем, что сегодня существует как однобайтовая кодировка строк, так и
двухбайтовая.
Структура данных отражает взаимосвязь данных между собой. Данные,
чаще всего, разбиваются на некие логические группы. Если попытаться привести данные к стандартному «бухгалтерскому виду», то мы придём к набору двумерных таблиц, отображающих наши данные. При этом логическая группа
данных будет соответствовать таблице, а имена данных, составляющих группу,
будут наименованием столбцов таблицы. Строка таблицы будет набором данных, относящихся к одному объекту.
Именно отделение описания структуры данных от файловой системы
привело к понятию базы данных. База данных – описание структур данных необходимых для решения задачи. В современном представлении база данных состоит из совокупности таблиц, отображаемых на файловую структуру. База
данных может быть реализована непосредственно файловой системой. Важно,
что любая база данных может быть реализована множеством различных файловых систем, хотя чаще всего в простой файловой системе одной таблице соответствует один файл.
16
Приведённое определение базы данных достаточно узко и отождествляет
описание базы данных с собственно базой данных. На практике за базу данных часто принимается совокупность данных, используемых для решения некоторой задачи. Тем не менее, вводя понятие пустой базы данных, мы можем опираться на
приведённое определение. На самом деле вопрос не так прост, как кажется. Большое значение имеет объём данных в базе и её локализация в пространстве.
Локализация в пространстве: база данных может физически находиться на
одном компьютере, где она расположена на одном или более физических носителях. Компьютер с базой данных может быть именно ваш, и вы в любой момент можете подключиться к базе данных – это локальная база данных.
Компьютер с базой данных может находиться в сети, и любой пользователь сети может подключиться к базе данных – это сетевая база данных. База данных
может находиться на множестве компьютеров, подключённых в сети, – это распределённая база данных.
Объём данных базы сильно влияет на алгоритмы доступа к данным. Различают малые базы данных – до 100 000 записей. Средние базы данных – до 10 миллионов записей. Большие базы данных – до нескольких десятков терабайт.
Сверхбольшие базы данных – объём данных более сотен терабайт.
Локализация в пространстве и объём данных влияет на «описание структур данных, необходимых для решения задачи», то есть меняет базу данных.
Вопрос, включать ли структуры описания локализации базы в пространстве в
понятие базы данных или нет, не так прост как хотелось бы. Объём данных
влияет на алгоритмы доступа к базе, но как это отражается на описании базы
данных, также не совсем ясно.
Исходя из этих замечаний, мы вынуждены в узком смысле принять вышеприведённое определение базы данных. В широком смысле необходимо
как-то учитывать, прежде всего, объём данных, а затем физическую конфигурацию/реализацию базы. Таким образом, мы принимаем за базу данных
описание базы данных совместно с данными и их файловой структурой, понимая под файловой структурой не только множество файлов, но и СУБД и
банки данных.
Так чем же отличается СУБД от простой базы данных? СУБД – система
управление базами данных. Идея СУБД простая: реализация множества разнохарактерных баз данных с помощью одного средства. Оказалось, что для реализации
этой идеи мало одного единого описания данных. Требовалась единая файловая
среда и единое средство работы внутри этой файловой среды. Единым средством
работы естественным образом стал собственный язык программирования внутри
17
СУБД. Таким образом, СУБД – система управления базами данных это единое
средство описания данных и их структур, единая файловая среда и язык программирования, ориентированный на работу внутри этой файловой среды.
База данных не зависит от файловой среды. Наоборот, файловая среда подстраивается под описание данных, чтобы оптимальным образом выполнять операции с данными. СУБД же включает в определение файловую среду, она не зависит
от данных и использует свою файловую среду для решения любой задачи, реализуемой в СУБД. Возможно её файловая среда не самая оптимальная (так как не
подстраивается под данные) в каждом конкретном случае, но в общем множестве
случаев подход СУБД даёт значительный выигрыш в трудоёмкости как программирования прикладных задач и сопровождения программного обеспечения.
Обратите внимание, что в определении СУБД отсутствует понятие
данных, она абстрагируется, предлагая общий подход ко всем данным. Это
возможно потому, что определение СУБД – это определение программного
обеспечения. Другими словами: система управления базами данных – это
программное обеспечение со своей файловой системой и языком программирования, предназначенное для управления данными.
Несмотря на то, что понятия база данных и СУБД рассматриваются почти
всегда вместе, – это разные понятия. СУБД, прежде всего, – программное обеспечение. База данных – описание данных и их структур, существенно зависящее от
объёма данных. База данных может быть реализована в различных СУБД, а может
быть реализована и уникальным собственным программным обеспечением.
Тем не менее, у СУБД и базы данных есть одна общая черта: открытая
структура файловой системой. Файлы базы данных и файлы СУБД «живут» сами по себе: они находятся в пространстве операционной системы. Это один из
недостатков обоих подходов. Любой пользователь может удалить файл СУБД
или базы данных, и при этом они (база данных или СУБД) не «узнают» об удалении файла. Точнее, эти системы обнаружат исчезновение файла только тогда,
когда этот файл им понадобится. В общем случае для работы с базой данных,
где бы она ни было реализована – в СУБД или своей файловой системе, пользователь должен знать не только описание данных, но и где, в каких файлах
хранятся данные.
Последнее весьма неприятный недостаток. Программное обеспечение,
реализующее работу с базой данных, становится зависимым от файловой среды. Желание избавиться от этой зависимости приводит к идее банка данных. В
этом месте мы можем определить банк данных, как программное обеспечение
со скрытой структурой файловой системы и языком программирования. Или:
18
банк данных это СУБД со скрытой структурой файловой системы. Такое простое определение не показывает, что между СУБД и БД (банками данных) различий больше, чем сходства.
Идея скрытия структуры файловой системы позволяет по-другому решать
вопросы целостности и безопасности данных. Конечно, в СУБД как-то решались
эти вопросы. Однако открытая файловая структура фактически сводила на нет усилия по сохранению целостности данных – любой мог удалить файл СУБД. Любой
мог скопировать файл СУБД и на своём компьютере получить доступ к конфиденциальным данным. Дыра в защите обусловлена открытостью файловой структуры.
В БД этой «дыры» нет. Злоумышленник не «знает», где находятся данные.
Отличия БД от СУБД не только в этом. В общем, основная идея БД – управление данными; а СУБД – управление описаниями данных (базами данных). С этой
точки зрения СУБД – составная часть БД. Желающих более плотно познакомиться
с БД отсылаем к любому курсу по банкам данных. Наши цели несколько другие.
БД также могут быть локальными, сетевыми и распределёнными. По объёму данных также выделяют малые, средние и крупные или большие БД. Их основные различия идут из внутренней организации данных.
По внутренней организации данных различают иерархические, сетевые и
реляционные БД.
Первые БД были иерархические: внутренние структуры данных копировали иерархическую структуру данных. Описание данных отображалось деревом, где ветки соответствовали связям между данными, а листья – самим
данным. В общем случае поиск данных всегда начинался с некоторого базового
понятия, которое было корнем дерева поиска. Реализация БД была достаточно
сложной, а скорость поиска данных сильно зависела от отображаемой иерархии. Фактически было некоторое множество запросов, обрабатываемых очень
быстро. Остальные запросы обрабатывались медленно. Был долгий поиск отсутствующих в БД данных, прежде чем система сообщала, что таких данных не
найдено. Другими словами, иерархический БД был настроен на вполне определённое множество запросов. Добавление запроса в БД приводило к перестройке
отображаемой иерархии, к перестройке внутренних структур или перестройке
базы данных. С точки зрения теории, иерархический БД есть отображение отношения один ко многим.
Отображение отношения многие ко многим привело к построению сетевого БД. Здесь термин сетевой отражает не нахождение данных в сети, а похожесть структур данных БД на рыбацкую сеть. Структуры данных состояли из
связей и узлов. Данные находились в узлах. Любой узел мог быть связан с лю19
бым количеством других узлов. Прямое отображение сетевой структуры данных привело к ведению множества связей. Это сильно усложнило реализацию
сетевых БД. Наличие в графе данных циклов могло привести к тривиальному
зацикливанию при поиске данных. Поиск данных резко замедлялся при увеличении объёма данных выше некоторого предела.
Основной недостаток, только что приведённых организаций БД – отсутствие теории построения таких БД.
Теория построения БД появилась в 1970 г., когда Эдгар Кодд опубликовал
свою статью «Реляционная модель данных для больших совместно используемых банков данных». Э. Кодд предложил строгую математическую теорию построения БД. Основная идея Кодда – отказаться от прямого отображения
структур данных во внутренние структуры БД. Внутренние структуры данных
представлять в виде двумерных бухгалтерских таблиц, состоящих из столбцов
и строк. Другими словами, мы пытаемся любые (!) данные представить в виде
бухгалтерских таблиц. БД, строящиеся на этих принципах, стали называться
реляционными. Первый реляционный БД появился в 1981 г.
Наличие теории построения реляционных БД привело к тому, что почти
все коммерческие БД стали строиться на реляционных принципах.
Надо понимать, что здесь есть небольшая скрытая проблема: можно ли
весь мир отобразить в виде набора бухгалтерских таблиц? Существуют данные, которые неудобно отображать в реляционных таблицах. Тем не менее,
существует строго доказанная математическая теорема, которая утверждает,
что с точки зрения математики иерархические, сетевые и реляционные БД
изоморфны, то есть это одно и то же. Поскольку мы сегодня не знаем других
организаций БД, то приведённый вопрос звучит так: «Можно ли весь мир
отобразить в компьютере?»
Для окончательного знакомства с БД необходимо знать хотя бы наименования некоторых из них.
Oracle – один из старейших реляционных БД. Может обрабатывать
сверхбольшие базы данных. Может работать с распределёнными базами данных. Принят в качестве стандарта в Газпроме. Работает практически на всех
вычислительных платформах.
InterBase (FireBird) – реляционный БД, рассчитанный на средние объёмы
данных. Работает под Windows и Linux. В самом простом варианте распространяется бесплатно, что делает его доступным.
Access – реляционный БД, ориентированный на небольшие базы данных и
безграмотного пользователя. Поставляется с Microsoft Office, а следовательно,
20
работает под Windows. К достоинствам Access следует отнести графический
интерфейс, что позволяет работать с Access пользователю, практически не знакомому с БД.
FoxPro позиционируется как реляционный БД, но фактически это СУБД,
ориентированная на средние объёмы данных. Работает под Windows. Работа с
FoxPro предполагает образование программиста. Поставляется с ADO.NET
(Microsoft Visual Studio).
БД очень много. Почти все коммерческие БД реляционные. Мы, однако,
все пользуемся иерархическим БД, когда работаем под Windows XP: реестр
Windows – иерархический БД.
Хотелось бы обратить внимание читателя на идею скрытия структуры
файловой системы. Кроме несомненных достоинств, она несёт в себе серьёзную
проблему. Дело в том, что структура файловой системы скрывается не только
от пользователя, но и от программиста. Возникает вопрос получения данных
неизвестно откуда: как написать программу работы с данными, если вы не
знаете, где их получить?
Решение этой проблемы привело к появлению SQL – Structured Query
Language – «язык структурированных запросов». SQL – искусственный язык,
используемый для управления данными в банках данных. Идея SQL в том, что
простыми по возможности фразами, приближёнными к естественному языку,
указать, какие данные вам требуются из банка данных. Фразы строятся на основе английского языка. Нечто вроде: «selected * from my_table». Эта фраза переводится как «выбрать все данные из таблицы my_table». Фраза транслируется
транслятором SQL. Надеюсь, читатель понимает, что фразы искусственного
языка необходимо «перевести» в конкретные действия банка данных. В результате трансляции либо запускаются все необходимые действии, либо во фразе
находится ошибка. Если ошибок нет, то пользователю может вернуться таблица
как результат поиска данных в БД (банке данных), либо одна запись, либо ни
одной записи, если запрашиваемых данных не нашлось.
Идея универсального языка запросов оказалась очень плодотворной. Сегодня запросы SQL могут выполнять и СУБД, и даже многие базы данных.
Многие БД имеют свои диалекты SQL. Существует стандарт SQL. Из простой
приведённой фразы SQL ясно, что можно не знать физическое расположение
данных, но описание данных знать надо. Пользователь должен знать таблицы, в
которых находятся данные. Пользователь должен знать имена данных (!). Другими словами, пользователь должен знать описание базы данных.
Если мы захотим пойти дальше – захотим «НЕ знать описание базы данных»,
то придём к совершенно другим системам программного обеспечения. Что значит
21
«НЕ знать описание базы данных»? Это значит, что от нас (и от программиста)
скрывается описание базы данных, но мы всё-таки неким образом получаем данные
или информацию.
Если мы не хотим знать описание базы данных, то приходим к совершенно
другим системам программного обеспечения. Среда, в которой мы можем запрашивать и получать информацию, ничего не зная про её физическую локализацию,
ничего не зная про описание запрашиваемых данных (информации), будет называться информационной системой. Обратите внимание: скрытие файловой структуры приводит нас от баз данных и СУБД к банкам данных, существенно другим
программным системам. Скрытие описания данных также приводит нас от банков
данных к существенно другим системам, которые и называются информационнопоисковыми системами.
Что такое информационно-поисковая система, подробно разбирается во
второй главе. Здесь хотелось бы обратить внимание на два новых момента.
Первое, мы начали параллельно с термином «данные» использовать термин
«информация». Чем данные отличаются от информации, мы узнаем во второй
главе. Сейчас только заметим, что «данные» – это экстракт, вытяжка из информации. То есть понятие «информация» гораздо шире, объёмнее понятия «данные». Сегодня БД могут хранить информацию, хотя правильнее было бы
сказать «отображение информации в объекты, хранимые в БД». Второй интересный момент, что мы стали говорить об информационно-поисковых системах, упуская термин «программный». Всё очень просто, если термин «банки
данных» применяется только к программным средам, то информационные системы могут быть не только программными. Человечество широко использует
непрограммные информационные системы, называемые «энциклопедия». Другими словами, скрытие описания базы данных выводит нас из области программных сред или, в общем случае, информационно-поисковая система совсем
не обязательно программная среда.
22
Глава 2. Информационные системы
После того как мы согласовали основные понятия (операционная система,
программа, транслятор, алгоритмический язык, файл, файловая система, база
данных, СУБД, банк данных и некоторые другие), можно переходить к информационным системам.
Изучение любого объекта начинается с его определения. Поиск определения
«информационная система» приводит к неожиданному выводу: любое программное обеспечение совместно с его окружением (технические средства, технологии,
персонал, данные) может рассматриваться как информационная система.
Например, Федеральный закон Российской Федерации от 27 июля 2006 г.
№149-ФЗ «Об информации, информационных технологиях и о защите информации» понятие «информационная система» трактует следующим образом:
«информационная система – совокупность содержащейся в базах данных информации и обеспечивающих её обработку информационных технологий и
технических средств». Юристов понять можно, они описывают не информационные системы, а защищаемое законом пространство, отсюда такое широкое
понимание ИС. Наши цели другие: мы стремимся понять, что такое ИС по сути,
поэтому наше определение ИС, скорее всего, будет отлично от юридического.
В юридическом определении также не всё в порядке. Здесь есть привязка к базам данных, что заведомо оставляет без юридической защиты файловые и
файл-серверные информационные системы.
Википедия даёт очень широкое определение: «информационная система
есть совокупность технического, программного и организационного обеспечения, а также персонала, предназначенная для того, чтобы своевременно обеспечивать надлежащих людей надлежащей информацией». Новое здесь то, что
обращено внимание на организационную составляющую и безопасность/конфиденциальность информации (иначе как понимать «надлежащих
людей надлежащей информацией»), но в остальном это определение любого
программного обеспечения.
М. Р. Когаловский в книге «Перспективные технологии информационных
систем» (М. : ДМК Пресс; Компания АйТи, 2003) приводит такое определение:
«информационной системой называется комплекс, включающий вычислительное
и коммуникационное оборудование, программное обеспечение, лингвистические
средства и информационные ресурсы, а также системный персонал и обеспечивающий поддержку динамической информационной модели некоторой части реального
мира
для
удовлетворения
информационных
потребностей
23
пользователей». Это по-прежнему определение любого сетевого ПО. Среднему
пользователю оно просто непонятно (что такое «динамическая информационная
модель»). Включение же в определение «коммуникационного оборудования» оставляет открытым вопрос о локальных информационных системах. Основная беда
этого определения в том, что ИС определяются через другое, но также, как ИС,
неопределённое понятие: «динамическая информационная модель».
В. Н. Петров в учебнике «Информационные системы» (Санкт-Петербург,
ПИТЕР, 2002) вообще не определяет изучаемого понятия. Это учебник для студентов, специализирующихся на работе с базами данных. Обычно этот предмет
даётся примерно на третьем курсе. Видимо, предполагается, что ранее читатели
уже получили все необходимые определения.
Нам всё-таки придётся привести определение ИС («информационной системы»), так как курс читается не программистам и надо указать на отличие
«информационной системы» от другого ПО.
Что дают нам приведённые выше определения, что понятие «информационной системы» тесно связано с понятиями «программное обеспечение», «банк
данных». Кроме того, везде отмечается тесная связь «информационной системы» с её окружением. Современные ИС (информационные системы) не мыслимы без банка данных, но всё же сохраняется маргинальная ниша файловых ИС.
Современные ИС чаще всего работают в сети, но существуют локальные ИС.
Включение персонала и коммуникационного оборудования в определение ИС
достаточно спорно, но, к сожалению, некоторые ИС работают только под
управлением конкретных личностей и на заданном техническом оборудовании.
Таким образом, мы склонны дать следующее определение ИС:
Информационная система: совокупность программного обеспечения основное назначение, которого – обработка определённого класса запросов, ориентированных на поиск, ввод/вывод, хранение и, возможно, обработку
информации из заданной понятийной области. Основное назначение такого ПО
предоставление в распоряжение пользователя необходимой информации.
Почти всё программное обеспечение также отвечает этому определению.
Обратите внимание, что банки данных более всего подходят под это определение. Нам бы хотелось выделить во множестве ПО именно информационные
системы. Для этого мы должны более точно определить класс запросов, цели и
функции ПО и что такое «предоставление в распоряжение пользователя необходимой информации». Ниже мы подробно разберём определение, но прежде
чем это делать, следует рассмотреть историю ИС. Реально об ИС как программном комплексе заговорили лишь в 90-х годах XX века, но не на пустом
же месте они появились.
24
Прежде всего, ИС – программное обеспечение. Существуют ли непрограммные ИС? Ранее, когда не было ПЭВМ, существовали. В каком-то смысле
непрограммные ИС существуют и сегодня.
Существовали так называемые перфокарточные ИС. Информация печаталась
на специальных перфокартах. Со всех четырёх сторон перфокарт был один или два
ряда отверстий, всё зависело от глубины иерархии отображаемой информации. Сама ИС находилась в одном или нескольких ящиках. Перфокарты не обязательно
могли находиться в заданном порядке, но ориентация перфокарт имела значение.
Каждое отверстие отвечало за определённое понятие.
Когда надо было найти перфокарты, на которых была искомая информация, бралась длинная спица и просовывалась в отверстие, отвечающее за искомое понятие. После чего спица поднималась прямо вверх. Отверстия были
сделаны так, что спица цепляла только перфокарты с искомой информацией.
Если не было искомой информации, то спица вообще ничего не цепляла. Такая
вот зацепочная перфокарто-спицевая ИС.
На перфокарте, впрочем, много информации не поместишь. Однако такие
ИС были ценны тем, что на перфокартах было множество ссылок на литературу. Основная сложность – разработка системы отверстий, согласуемой с некоторой наперёд заданной иерархией понятий. Предполагалось, что некоторая
наперёд заданная иерархия понятий уже разработана. Внимание!!! Такие ИС
были ориентированы только на вполне определённый круг понятий, точнее, на
определённую заранее понятийную область. Поскольку в несколько рядов отверстий много понятий не включить, то и список выполняемых запросов был
достаточно сильно ограничен. Тем не менее, понятийная область, класс выполняемых запросов и предоставление информации имеются.
Прообразом ИС можно считать любые упорядоченные списки чего-либо.
Наиболее ярким представителем таких ИС, существующих и поныне, можно
считать любые библиотечные каталоги. Обратите внимание, что библиотечные
каталоги в хорошей библиотеке были в нескольких вариантах. Основной каталог – упорядоченный по алфавиту список книг библиотеки. Список литературы
сортировался обычно по авторам, а внутри списка ещё и по названиям книг (как
тут не вспомнить два ряда отверстий по краям перфокарт). Однако был и предметный каталог, где список сортировался в порядке задаваемой специально
разработанной иерархии понятий. В солидных библиотеках таких предметных
каталогов могло быть несколько.
Основная проблема такого подхода – специально разработанная иерархия
понятий. В предметный каталог по математике не вписывалась литература по ку25
линарии и т. п. Кроме того, при множестве каталогов возникала проблема согласования списков. При появлении книги было необходимо занести изменения во
все каталоги. Более глубокие проблемы: существовали понятия, которые легко
можно отнести к нескольким рубрикам иерархии, например: «золото» – можно
отнести к рубрикам «металлы», «финансы». То есть такое построение каталогов
обязательно приводило к избыточности в описании информации. Тем не менее,
понятийная область, класс выполняемых запросов, предоставление «адреса» информации, а иногда и части самой информации присущи любому каталогу.
Но есть серьёзное отличие каталожной ИС от собственно ИС. Каталожная
ИС предоставляет адреса информации, а не саму информацию. Когда информация находится на материальном носителе, который трудно тиражировать, то вы
можете столкнуться с отсутствием материального носителя информации, они
могут быть разобраны. Каталог, безусловно, составная часть любой ИС. Становясь на такую точку зрения, мы понимаем, что собственно ИС будет библиотека, в то время как каталог − её навигационная составляющая. Тогда
информационным системам как таковым более 2000 лет. Тем не менее, никто
не рассматривал библиотеки как ИС.
Информационная система как понятие появилось не так давно. Где-то в
шестидесятых годах прошлого века. Тогда, когда поняли, что на ЭВМ можно не
только считать, но использовать ЭВМ в целях поиска и хранения, использования информации. В связи с тем, что тогда ЭВМ были несколько других размеров, то и само понятие было известно лишь в профессиональных сферах.
Однако в конце восьмидесятых прошлого века на сцену вышли ПЭВМ, а затем
широко внедрились сети. Вот теперь об ИС заговорили все. Любому захотелось
при нажатии кнопочки иметь справку по любому запросу. Это, собственно, и
есть назначение универсальной ИС: выдать информацию в ответ на запрос.
Более пристальное изучение вопроса показало, что дело не так просто. Основная проблема в том, что для получения правильного ответа необходимо правильно задать вопрос. Косвенно это означает: вы должны знать окружение
правильного ответа или сам правильный ответ на задаваемый вопрос. Только
тогда можно сформировать правильный запрос. Конечно же, если вы знаете ответ, то вряд ли вам понадобится формировать запрос.
Вернёмся, всё-таки, к ИС. Более 2000 лет существования ИС не прошли
бесследно. За время существования человечество разработало принципы построения библиотечных каталогов, и мы знаем, что сегодня это целая наука.
Принципы построения каталогов, это законы построения ручных упорядоченных списков. Эти законы достаточно универсальны и применимы к любым
26
упорядоченным спискам. Каталог материалов, находящихся на складе, строится
по тем же самым законам, но в его основание закладывается иерархия материалов. Грамотные кладовщики, вели не менее двух каталогов: по материалам и по
строению склада: нередко надо было быстро определить, что находится на полке №35.7482 ниша 87. Это отражение ещё одной стороны любого поиска – скорость выполнения поиска или запроса. Как правило, информация нужна сейчас,
сиюминутно, а не через несколько дней в результате последовательного просмотра каталога.
Построение иерархии понятий также далеко не простое дело. Самое удивительное, что именно этим занимается школа. Что такое школа, как не ознакомлению школьников со специально разработанной универсальной иерархией
понятий. Эта иерархия или разбиение общей картины мира на понятийные области или классы понятий сложилась достаточно стихийно и в процессе становления неоднократно менялась и перестраивалась. Существует точка зрения,
что человеческий разум способен понять только то, что можно разложить иерархически, или то, что можно отобразить некоторой иерархией. Так это или
нет, мы не знаем, но один очень важный вывод сделаем. В основе любой ИС
лежит специально построенная иерархия. В основе универсальной ИС (ИС отображающая любую информацию) лежит иерархия знаний, выстроенная человечеством за время своего существования.
Хотелось бы заметить, что хотя мы и написали универсальная иерархия
понятий, это не совсем так. Иерархия универсальна в некотором контексте.
Пусть иерархия обычное дерево, как это понимается в теории графов. Но листья дерева могут содержать разные понятия. Более того, разные культуры
именно так и делают. Сами же понятия, будучи одинаковыми по названию, воспринимаются совершенно по-разному в разных культурах. Например, йога европейцами в XIX веке воспринималась как одна из религий, но не один индиец
не считал йогу религией. Другими словами, мы не можем выделить понятие из
его окружения или мы не можем освободиться от контекста, если хотим сохранить содержательность понятия.
Таким образом, специально построенная одна или несколько иерархий –
базовая часть любой ИС. Этими иерархиями определяется, какую информацию
вы можете найти в ИС. Эти же иерархии определяют запросы, которые может
быстро выполнить ИС. Запросы, результатом выполнения которых будет информация, находящаяся в ИС, но противоречащие структуре иерархии будут
выполняться значительно дольше. Интуитивно ясно, что величина и структура
иерархии, а также количество информации в ИС влияют на скорость выполне27
ния запроса. Отсюда в специализированной ИС запросы будут выполняться быстрее, чем те же запросы в универсальной ИС, что объясняет большое количество именно специализированных ИС.
Необходимо рассмотреть вопрос существования непрограммных (доисторических) универсальных ИС. Такие универсальные ИС были и существуют
поныне: это энциклопедии. Более того, способы построения энциклопедий
оказали большое влияние на способы построения иерархий и самих универсальных ИС на ЭВМ.
Термин «энциклопедия» широко распространяется в XVI веке, но уже в
древности выполнялись энциклопедические труды. Терминологические словари
составлялись уже в Древнем Египте в период Среднего царства (2 тысячелетие до
н. э.). Отсюда, кстати: ИС более 4000 лет. Своды знаний составлялись и в Древнем
Китае (XII-X века до н. э.). Именно в Китае была создана «11095-томная «Юнлэ
дадянь» – самая большая бумажная энциклопедия в истории». Ориентировочное время создания – XV век; на сегодня сохранилось около 400 томов. «Энциклопедия в том виде, в каком мы её знаем сейчас, появилась в XVIII веке.
Образцом для неё послужил словарь. Словарь содержит только слова и их определения, давая читателю минимум информации и нередко не позволяя ему
понять значение и применимость термина или как данный термин относится
к более широкому кругу знаний» [Internet – Википедия].
В том виде, в каком мы привыкли видеть энциклопедию, она появилась в
XVIII веке. «Циклопедия или универсальный словарь наук и искусств»
Э. Чемберса (1728 г.), «Энциклопедия» Дидро и д’Аламбера (начало выпуска с
1751 г.). Статьи в этих энциклопедиях были одновременно доступными по стилю изложения и глубокими по содержанию, систематически расположенными в
предсказуемом порядке. В этих энциклопедиях появились ссылки статей друг
на друга. Создатели энциклопедий понимали, что даже энциклопедия не в состоянии отразить весь объём знаний на время её создания. Тогда меняются
приоритеты. Дидро считал, что энциклопедия должна устанавливать связи между понятиями, если нельзя отобразить все знания, то хотя бы показать взаимозависимость между ними.
Мы видим, что во главу угла ставится именно структура иерархии, способ
её построения. На сегодня есть два основных способа построения иерархии:
алфавитный, или алфавитно-словарный, и системный, или логическитематический. Иногда используется смешанный способ построения иерархии.
Хотелось, тем не менее, подчеркнуть, что наиболее сложная и важная часть построения этих иерархий – перекрёстные ссылки статей на другие статьи, или
структура иерархии.
28
С другой стороны, уже тогда появляется новое: информация может быть
данными или фактами, набором данных или фактов, а может быть знанием.
Главное отличие знаний от данных состоит в их структурности, установлении
связей между данными.
Знания, базы знаний рассмотрим ниже в главе «экспертные системы», но
уже сейчас мы должны понимать, что ИС может содержать как данные, так и
нечто другое. Термин «информация» весьма широк (обратите внимание, что мы
его не определили). Под информацию подпадает множество понятий, а это в
свою очередь накладывает определённые требования на способы построения
иерархии, отображающей информацию.
Энциклопедии как книги будут существовать и использоваться до тех
пор, пока существуют и используются книги. Способы построения книжных
энциклопедий оказали большое влияние на способы построения электронных
энциклопедий. Мы, всё-таки, понимаем, что способы построения электронных
ИС базируются на способах построения непрограммных ИС, но содержат и
много нового. Очень любопытен опыт построения «Википедии», но мы рассмотрим его в соответствующей главе.
Таким образом, кратко рассмотрев непрограммные ИС, предшественников электронных ИС, мы нашли:
• ИС могут быть универсальными и специализированными.
• ИС могут хранить данные, а могут хранить нечто отличное от данных –
информацию или знания.
В основе ИС лежит некоторая иерархия, которая определяет отображаемую информацию ИС и накладывает ограничения на быстро выполняемые в
ИС запросы.
Основное назначение ИС – предоставлять информацию.
Теперь мы можем уточнить: не просто предоставлять информацию, а предоставлять информацию в заданное время или более правильно: предоставлять
информацию, укладываясь в некоторые ресурсы и ограничения. Чаще всего
здесь подразумевается время поиска данных или, более грамотно, время выполнения запроса, так как запрос не обязательно ориентирован на поиск данных. Выше мы много говорили об иерархии, структуре иерархии данных и
ничего о структуре выполняемых запросов. Это связано с тем, что непрограммные ИС, явно не содержат в себе как запросов, так и аппарата выполнения запросов. Выполняемые запросы можно составить, они присутствуют, но только
косвенно. Выполняемые запросы находятся в голове пользователя. Пока существовали только непрограммные ИС, запросы, способы их построения можно
было не рассматривать. Тем не менее, обратите внимание на существование ка29
талога, упорядоченного по авторам, и тематического каталога: разные каталоги
отвечают разным запросам. Ситуация существенно меняется при появлении
электронных ИС. Запрос, правильное построение запроса, как оказалось, зависит не только от запрашиваемых данных и правильного ответа, но и от способа
хранения данных. Если же принимать во внимание ограничения на ресурсы и
время выполнения запроса, то способ хранения данных накладывает ограничения на объём информации отображаемой в ИС. Если мы хотим получить ответ
на запрос в заданное время, то, начиная с некоторого объёма данных, мы не будем укладываться в это ограничение. (Более подробно см. ниже.)
Возвращаясь к определению ИС, вспоминаем, что сегодня ИС – это программное обеспечение. Тогда всё, что касается ПО, применимо к ИС.
Следовательно, любое ПО работает на заданном техническом окружении.
Существует список минимальных технических требований, при соблюдении
которых ПО работает. Такой же список требований существует у ИС, и незачем
включать аппаратное окружение в определение ИС. Техническое окружение
ИС, можно назвать технической составляющей. Надо ясно представлять, что
это именно минимальные технические требования. При расширении технической платформы, а нередко и при смене технической платформы ИС всё равно
работает. (Любая ИС, базирующая на БД Oracle, может работать там, где работает Oracle. Последний в свою очередь работает на всех сегодня известных
платформах, кроме мобильников, конечно.)
Мы не относим техническую часть ИС непосредственно к ИС и тем более
не вносим техническую часть в определение ИС. Многие сегодня не помнят,
что одно время было модно реляционные СУБД реализовывать аппаратно. В
связи со значительной негибкостью аппаратно реализованных СУБД, а также
сложностью их перепрограммирования эти опыты были прекращены. Существует, тем не менее, вероятность, что некоторую ИС построят аппаратно полностью или частично, тогда мы не сможем не включить эту аппаратуру в
определение ИС. Но это будет определение конкретной уникальной ИС, а не
ИС вообще. Другими словами, если аппаратура выполняет некоторую существенную функцию ИС, без которой ИС перестаёт быть информационной системой, то такая аппаратура обязательно включается в определение конкретной
ИС. Любителям аппаратуры напоминаем, что вышеупомянутая перфокарточная
ИС как раз такой аппаратно-реализованной ИС и является: спица – неотъемлемая часть этой ИС, так как без неё в перфокарточной ИС не реализуется поиск.
Любое ПО работает при надлежащей организации эксплуатации/сопровождения ПО. (Более подробно мы рассмотрим это ниже.) ИС не исключение. Должна быть группа сопровождения ИС. Никто не гарантирует вам
30
даже сохранности ИС, если нет грамотного сопровождения/эксплуатации.
Можно назвать это организационной составляющей ИС. Опять-таки это вытекает из того, что ИС – программное обеспечение. Никто не оспаривает, что к
составу группы сопровождения ИС предъявляются дополнительные требования, но, тем не менее, частично состав этой группы зависит от величины предприятия и организации работ на предприятии, но мы же не включаем
предприятие в состав ИС.
ИС – это ПО. Всё, относящееся к ПО, применимо к ИС. Именно поэтому
многие авторы рассматривают такой вопрос как «жизненный цикл информационной системы». Но «жизненный цикл информационной системы» и «жизненный цикл программного обеспечения» – это одно и то же. Ниже мы кратко
рассмотрим «жизненный цикл программного обеспечения».
Итак, выделяем:
Программная часть ИС;
Техническая часть ИС;
Организационная часть ИС.
Но наиболее важной частью будет именно то, что делает ПО информационной системой:
Информационная часть ИС;
где выделяем
Понятийная часть;
Иерархическая часть;
Запросная часть.
Прежде чем более подробно рассмотреть составные части ИС, сделаем
обзор классификаций ИС, чтобы ознакомить читателей с терминологией.
ИС бывают локальными и сетевыми. Локальная ИС работает на одной машине. Сетевая работает в сети. Предполагается, что собственно сетевая ИС находится на сервере и одновременно обслуживает (отвечает на запросы) множества
клиентских машин. Сегодня нетрудно представить локальную ИС, работающей на
ПЭВМ в сети и отвечающей на запросы множества других пользователей. То есть
деление ИС на локальные и сетевые достаточно условно, тем более, что работу с
сетью выполняет не ИС, а банк данных и операционная система. Но зерно истины
здесь есть, если мы сменим приоритеты: ИС бывает локальной и распределённой.
Локальная ИС физически расположена на одной машине. Это может быть сервер,
а может быть клиентская сетевая ПЭВМ. Распределённая ИС − это ИС, данные
которой (информация) реально размещены на разных машинах сети. Таким образом, распределённая ИС функционирует в полном объёме только тогда, когда все
машины, на которых размещены информационные части ИС, работают в сети.
Отключение одной или нескольких машин такой ИС не приводит к краху ИС, но,
31
возможно, часть запросов ИС перестанет выполняться успешно. В большинстве
случаев отключение машины распределённой ИС основная масса пользователей
ИС не заметит совсем. Распределённость ИС предъявляет дополнительные требования к банку данных, обслуживающему ИС, и диагностической части программного обеспечения ИС.
По реализации ИС могут быть файловыми (сегодня не так часто) и клиент-серверными. Следует помнить, что клиент-серверная архитектура может
быть реализована физически на одной машине, даже не находящейся в сети.
Важно то, что клиент-серверная архитектура может быть двухзвенной (клиент –
сервер баз данных) и многозвенной (клиент – сервер приложений – сервер баз
данных; больше трёх уровней бывает редко). Почему необходимо помнить, какой архитектуры реализация ИС: каждое лишнее звено снижает надёжность ИС
и увеличивает время выполнения запроса.
По степени автоматизации ИС делятся на:
− автоматизированные: информационные системы, в которых автоматизация
может быть неполной, то есть требуется постоянное вмешательство персонала;
− автоматические: информационные системы, в которых автоматизация
является полной, то есть вмешательство персонала не требуется или требуется
только эпизодически.
Выше мы уже отметили, что группа сопровождения должна быть у любой
ИС, как у любого ПО. Здесь следует понимать, что автоматизированная ИС без
вмешательства персонала, может не выполнять определённые функции ИС или
не выполнять часть запросов. Сегодня все ИС автоматические.
Существует любопытная классификация на персональные, групповые и корпоративные ИС. В Internet-e эта классификация даётся как классификация по охвату задач (масштабности). Достаточно условная классификация, так как
персональная ИС по охвату задач может быть не слабее корпоративной. Предполагается, что корпоративная ИС, это универсальная ИС обслуживающая корпорацию, все запросы сотрудников корпорации. Чисто теоретическое понятие. Да,
такую ИС хотелось бы иметь, но до сих пор такой ИС не создано. Следует задуматься, что ни в одной корпорации нет универсального специалиста, одинаково
легко и правильно выполняющего функции любого сотрудника корпорации. Как
раз наоборот, определённая специализация, разделение труда и параллельное выполнений множества функций лежит в основе успешной работы корпорации.
Кроме того, отдельному сотруднику не нужна «вся» информация, поскольку его
функции конкретны. В этом смысле универсальная корпоративная ИС теоретический миф. Такой ИС не только не существует, но такая ИС и не нужна.
32
Однако, можно представить множество ИС, реализованных на одних и тех же
программных средствах, одинаковых по архитектуре и могущих обмениваться сообщениями между собой так, что запрос не выполненный одной из таких ИС, передаётся на выполнение другой ИС до тех пор пока запрос либо не будет выполнен,
либо не будет отказа от всех ИС. Эту совокупность можно объединить в единое целое под названием корпоративная ИС. Практика показывает, что не всё так просто.
Например, представим предприятие, занимающееся интерпретацией сейсморазведочных работ. Интерпретация сейсмики ведётся на современных программных
комплексах. А мощность этих комплексов такова, что обработать кубик данных в
300 гигабайт для него не проблема. Но такая мощь совершенно излишняя и не нужна бухгалтерской информационной системе. Отсюда, скорее всего, не надо требовать одинаковости программных средств и архитектуры, оставляя только обмен
сообщений между ИС. Тогда встречный вопрос: а нужно ли бухгалтерской и геологической ИС обмениваться между собой сообщениями?
Тем не менее, понятие корпоративной ИС прижилось, хотя за этим термином
не стоит некой особенной ИС. Чаще всего корпоративной ИС называют некую ИС,
обслуживающую (а значит и доступную) всю корпорацию и отвечающую на некие
наиболее общие вопросы. Любую ИС отдела кадров можно назвать корпоративной,
также, как и любую информационную часть ПО бухучёта. Более интересно, что в
свете новых технологий, а именно инженерии знаний (см. главу №5), понятие корпоративная ИС начинает снова приобретать смысл.
Рассмотрим «классификация по характеру обработки данных».
Выделяются две большие группы ИС.
Информационно-поисковые системы: ИС только поставляющие информацию (хранение информации, безусловно, входит в их функции). Такие ИС
НЕ обрабатывают информацию. Цель системы – поиск и выдача информации.
Информационные системы, обрабатывающие данные: такие ИС могут
обрабатывать данные. Существенное отличие ИС, обрабатывающих данные, –
наличие алгоритмов обработки данных. Цели создания этих ИС, не выдача информации, а именно обработка данных.
В связи с рассмотрением последней классификации возникает не менее
двух вопросов:
1. Обратите внимание на незаметную смену терминов. Выдача информации,
но обработка данных. То есть исходные данные, хранящиеся в этих ИС, несколько
различны по характеру. Выше мы уже поняли, что храниться может информация, а
могут и знания. Но и сама информация также неоднородна и может храниться в
различных формах. Рассмотрим хранение статей в энциклопедии. Статью в энцик33
лопедии можно назвать произвольным текстом, поскольку нет никаких ограничений на формат статьи и её содержание. Статья представляет собой законченный
объект. Этот объект мы можем переносить из энциклопедии в энциклопедию (из
одной ИС в другую). Мы можем «перемешивать» объекты при смене формы организации энциклопедии (смена иерархии). Мы можем увеличить объект по объёму,
добавив текста в объект, и до некоторой степени уменьшать объём, удаляя текст из
статьи. Уменьшать, впрочем, можно лишь до некоторого предела, перейдя который, мы лишаем статью содержательности.
При отсутствии ссылок такую статью можно рассмотреть как некий лист
на дереве. Статья содержит некоторую информацию. Обработать такую статью
на ЭВМ пока не представляется возможным, но для человека статья может
представлять интерес (человек умеет обрабатывать такую информацию). Статью можно назвать документом. Прижился именно этот термин. ИС, хранящие
документы, называются документальными.
Для нас важно, что не оговаривается ни структура документа, ни его форма, ни содержание документа. Для ЭВМ документ представляет собой произвольный текст, который ЭВМ не «понимает». Более точно – ПО не обрабатывает
документ внутри. Этот документ для ПО представляется необрабатываемым
атомом. Термин атом всё же не совсем удачен, поэтому для информации, хранящейся в виде статей, будем использовать либо термин документ, либо термин
объект (документ – термин пользователя, объект – термин программиста).
Хранение информации в документальной форме даже для человека может
быть достаточно неудобным способом. Основной недостаток подобного подхода: информацию в документальной форме нельзя обработать просто. Пока человечество не знает простых алгоритмов обработки информации, хранимой в
документальной форме. Но, кроме документальной формы хранения, существуют и другие способы представления информации. Наиболее известный – табличный. То есть мы можем хранить информацию в виде таблицы.
Что такое хранить информацию в виде таблицы? Значит, мы заранее оговариваем форму хранения информации. Так, однако, говорить не принято. Правильно: формат хранения данных. Информация, предполагаемая к хранению в
табличной форме, должна быть определённым образом обработана при её помещении в таблицу. Вы должны разделить поток информации/произвольный
текст на строки и столбцы таблицы или преобразовать информацию в данные.
Таблица не содержит информации, таблица содержит данные. В доказательство
этого можно заметить, что выводы, которые может сделать специалист при
просмотре таблицы, почти всегда излагаются в виде произвольного текста и не
могут быть преобразованы обратно в таблицу.
34
Результат подготовки информации к заданному формату или к некоторой, заранее оговорённой, обработке называется данными. В теории информационных
систем прижился термин факт. ИС, хранящая факты, называется факторграфической. Основное отличие факторграфической ИС от документальной – наличие алгоритмов преобразования информации. Хотелось бы подчеркнуть: информации, а
не данных. Информация может быть идентична данным, но в общем случае это более широкое и более богатое понятие. Процесс преобразования информации в данные – это процесс с потерей информации. Данные выделяются из потока
информации. При преобразовании информации в данные что-то отбрасывается и не
попадает в ИС. Более того, это что-то потом по данным не восстановить.
Большинство ИС, обрабатывающих данные, факторграфические. Тем не
менее, утверждать, что все ИС, обрабатывающие данные, факторграфические,
было бы ошибкой. Например, любая филологическая ИС, обрабатывающая
данные, скорее всего, будет документальной, поскольку филологи работают с
текстами.
Многие современные ИС удачно совмещают в себе положительные свойства как документальных, так и факторграфических ИС. Другими словами, часто нельзя утверждать, что ИС факторграфическая или документальная, но
можно сказать, какая сторона, документальная или факторграфическая, превалирует в ИС.
2. Второй вопрос, появляющийся в рассматриваемой выше классификации ИС, звучит так: «Где кончается ПО и начинается ИС?» Можно более просто: «Какое ПО можно рассматривать как ИС?»
Выше мы привели несколько определений ИС и отметили, что практически любое ПО попадает под эти определения. Потом мы дали собственное определение ИС. Отметив, что наше определение грешит тем же недостатком, мы
принялись уточнять и рассматривать определение. Теперь, как нам кажется, мы
можем провести некую разделительную линию между ИС и ПО. Следует понимать, что это не будет чёткая разделительная линия. Это будет «широкая размытая полоса», тем не менее разделяющая ИС и ПО.
Хотелось бы обратить внимание на два факта. Банки данных не рассматриваются как ИС. Банк данных – это программное обеспечение. ИС базируется
на БД, но не тождественна БД. БД – составная часть современной ИС. Конечно,
существует подход, в котором термины «информационная система» и «банк
данных» рассматриваются как синонимы. В этом подходе понятие ИС обедняется, а понятие БД неоправданно расширяется, вся теория ИС сводится к хорошо разработанной теории реляционных БД. Мы не сторонники этого подхода.
35
Надеюсь, что далее удастся показать, что можно и необходимо рассматривать
ИС как самостоятельный объект, одной из составных частей которого будет БД.
Второй факт очевиден: большинство современных программ содержит в
себе информационную часть. А мы ранее утверждали, что это неотъемлемая
часть ИС. Часть, а не признак. Если у ПО есть информационная часть, то это
ещё не значит, что это ПО – информационная система. Рассмотрим этот вопрос
более подробно.
Сначала самый простой случай. Возьмём всем известную программу Microsoft Word. Microsoft позиционирует эту программу как «текстовый процессор». Как любая коробочная программа, Word имеет Help. Что такое Help, как
не гипертекстовая информационная система. Это небольшая ИС, но всё-таки
ИС. Но на функционирование Word эта ИС (Help) не оказывает никакого влияния. Word может прекрасно функционировать и без Help. Help нужен пользователю, но не программе. Функции, которые выполняет Word, не являются
функциями ИС. Мы, конечно, не рассматривали функции ИС, но одну точно
знаем: предоставлять пользователю информацию согласно его запросу.
Далее ситуация чуть более запутана, но потихоньку и здесь можно разобраться. Рассмотрим программное обеспечение отдела кадров любого предприятия. Я
ещё ни разу не слышал, чтобы ПО отдела кадров создавалось как ИС, но чем оно,
по сути, и является. Если рассмотреть выходные формы ПО отдела кадров, то видно, что почти все они отвечают на стандартные запросы простой ИС: «Вывести
список сотрудников», то же, но по различным группировкам (по отделам, по направлениям и т. п.); например, вывести список сотрудников, у которых сегодня
день рождения; найти сотрудников, знающих китайский язык, и т. д. и т. п. При
внимательном рассмотрении ПО отдела кадров мы обнаружим все составные части
ИС. Таким образом, с ПО отдела кадров обратная ситуация: по сути это ПО и есть
информационная система, но позиционируется как неинформационное ПО.
Теперь пришло время такой программной среды, как ПО бухучёта. Рассмотрим для примера часть ПО бухучёта, связанного с расчётом заработной
платы. Для расчёта заработной платы необходимы данные по сотрудникам. Эти
данные уже используются в ИС отдела кадров. Поэтому при грамотной постановке вопроса ПО бухучёта и ПО отдела кадров проектируются так, что либо
могут обмениваться данными, либо используют одну базу данных. Более точно
будет: ПО бухучёта обращается к ИС отдела кадров с необходимыми запросами
или ПО бухучёта использует ИС отдела кадров.
Почему мы не хотим рассматривать ПО бухучёта как ИС. Цели создания
этого ПО не совпадают с целями создания ИС. Можно так реализовать ПО бу36
хучёта, что оно не будет обращаться с ИС отдела кадров, но при этом будет
прекрасно функционировать. Расчёт заработной платы принципиально можно
запустить вообще без базы данных по сотрудникам: список (именно список)
необходимых данных можно вводить непосредственно при расчёте, и при этом
никакой базы данных не требуется.
Другими словами, ПО бухучёта не является ИС, обрабатывающей данные,
это программа, использующая базы данных. Современная ИС обязательно использует базу данных или банк данных, но не всякая программа, использующая
базу данных или банк данных, будет информационной системой. Во многих программах мы можем выделить информационную часть, но от этого программа не
становится информационной системой. Основное отличие – результаты работы
программы. Ожидаемые пользователем результаты отличаются от результатов работы информационной системы. Цели создания программы отличаются от целей
создания информационной системы. Но если это разграничительная линия, то нам
необходимо её как-то обозначить: назвать цели создания ИС, перечислить основные результаты работы ИС, перечислить функции ИС.
Итак, цели создания ИС: создание среды хранения и систематизации информации. Хранение информации для ИС предполагает ввод/вывод информации, редактирование, ведение архива информации. При этом здесь два важных
процесса: собственно хранение информации и её поиск. Если мы исключим
«систематизацию информации», то получим определение банка данных. Тогда,
что мы понимаем под «систематизацией информации»?
Под систематизацией информации мы понимаем процесс подготовки
информации к хранению в ИС с учётом контекста. При этом здесь три аспекта.
Во-первых, необходимо сохранить или добавить все связи, скажем так, блока
информации с другими блоками информации. Во-вторых, блок информации
должен быть адекватен среде восприятия, прежде всего культурной среде.
В-третьих, желательно сохранить вариативность информации (см. ниже).
То есть при подготовке информации к хранению в ИС необходимо максимально сохранить контекст или окружение информации. Именно окружение
информации, её контекст отличает информацию от данных.
При подготовке информации к хранению в ИС чаще всего информация
усложняется: мы вставляем в информацию ссылки и взаимосвязи. Обратим
внимание на то, что при подготовке данных к хранению в БД прежде всего избавляются именно от зависимости данных друг от друга (нормальные формы),
но в БД хранится не информация, а данные.
37
Ещё раз подчеркнём: при подготовке данных к хранению в БД информация препарируется, обедняется, преобразуется в данные; при подготовке информации к хранению в ИС информация усложняется, дополняясь не только
ссылками на другие блоки информации, но и элементами окружения или контекста. Контекст сохраняется хотя бы потому, что информация выражается естественным языком, почему китайская энциклопедия существенно отличается
от английской, но построены эти энциклопедии на одних принципах! Данные
выражаются либо сухими цифрами, либо специальными терминами, смысл которых одинаков на всех языках, более того, часто эти термины не переводятся,
кочуя из одного языка в другой.
Возможно возражение, связанное с рассмотрением ПО отдела кадров как
ИС. Чаще всего в базе данных отдела кадров всё-таки хранятся данные (такой
документ, как «автобиография», может и не хранится в электронном виде). Более того, внешне цели создания ПО отдела кадров не совпадают с целями ИС.
Мы можем ответить, что, кроме целей, существуют и функции, которые мы
рассмотрим ниже. Кроме того, можно рассмотреть некоторые наборы данных
как предельный случай информации, что позволяет многим программам выполнять, кроме своих основных функций, информативные функции.
Существует замечание, что если БД основа ИС, и в БД хранится информация, то почему мы не можем считать БД синонимом ИС? На это отвечаем,
что данные в БД хранятся в виде таблиц. Манипуляция данными в БД выполняется средствами БД. Информация же в БД хранится в виде BLOB (большой логический объект) или в подобном виде. БД может только вводить, копировать,
хранить BLOB, но не может его обрабатывать. БД рассматривает BLOB как последовательный поток байт. Даже адекватное отображение BLOB должно выполняться программой пользователя.
Наконец, насчёт вариативности. На один и тот же запрос в БД всегда возвращается один и тот же ответ. Ответ же на запрос в ИС зависит от культурной
среды и времени постановки запроса. В разных культурных средах мы на один
и тот же запрос можем получить разные ответы, нередко противоречащих друг
другу. Время постановки запроса косвенно отражает уровень знаний человечества и опять-таки культурную среду. Например, ответ на вопрос о форме Земли
совершенно по разному звучит 3000 лет назад и сегодня. Важно, что ИС должна
сохранить варианты ответа на запрос. Задающий вопрос имеет право знать, как
звучал ранее ответ на запрос и как он звучит сегодня.
Сегодня вариативность в ИС, чаще всего не сохраняется. На запрос в китайской ИС и английской ИС мы, скорее всего, получим разные ответы. То есть, если
38
мы хотим иметь вариативность ответов, то ИС необходимо «знать», кто задаёт ей
вопросы и культурную среду задающего (вопросы сохранения культурной среды
остро встали при аутсорсинге: когда индийский специалист отвечал на вопросы
американского пользователя!). Даже профессия пользователя накладывает определённые требования на ответ ИС. Опять-таки простой вопрос о форме Земли: для
среднего пользователя правильный ответ – шар, но для географа или физика правильный ответ – эллипсоид; а вот для геодезиста – геоид (!).
Именно наличие «ИС – обрабатывающих данные» ставит нас на скользкую
двусмысленную тропу, не различающую ИС и ПО. Мы видим, что значительная
часть современного ПО обладает информационной составляющей. Но определить
ИС как ПО с преобладанием информационной составляющей было бы неправильно. В большинстве случаев достаточно трудно определить, какая составляющая
преобладает в ПО. Именно поэтому многие не отличают БД от ИС. Частично линия
разграничения проходит по разделу информация – данные, то есть ИС хранят информацию, но фактографические ИС нередко также хранят и данные. Из всего вышесказанного нам понятно, что не существует простого разграничительного
признака ИС – ПО. Частично линия разграничения проходит по выполняемым
функциям. Из ПО мы можем удалить информационную составляющую без ущерба
для основных выполняемых функций (Word). Из ИС нельзя удалить информационной составляющей в принципе: попробуйте удалить информационную составляющую из ПО отдела кадров. Типичной ИС являются словари: попробуйте удалить из
словаря информационную составляющую. Весьма показателен пример с системами
принятия решений (далее мы приведём классификацию ИС, где будет видно, что
«системы принятия решений» относят к ИС). Системе принятия решений по определению требуется весь доступный объём информации. Только на полном объёме
информации рекомендации, выдаваемые такой системой, будут правильными. При
уменьшении объёма доступной информации качество выдаваемых рекомендаций
(если они всё-таки ещё есть) постепенно ухудшается, переходя в разряд неверных
решений. Начиная с некоторого объёма, система вообще перестанет выдавать рекомендации в связи с отсутствием необходимой информации.
Таким образом, удаление информационной составляющей из ИС приводит информационную систему к неверному функционированию, а затем к полному прекращению работы. ИС не может адекватно функционировать при
отсутствии информационной составляющей.
Отсюда следующее определение информационной системы:
Информационная система – это система управления информацией, состоящая из собственно информационной части и способа хранения информации.
39
Откуда в определении управление информацией? Но что такое, по сути,
систематизация и хранение информации? Это и есть управление информацией.
Переходя на термин «управление», нам не надо подробно разбирать понятие
«хранение» информации. Управление подразумевает систематизацию и все
функции хранения. Кроме того, «управление» органично включает вопросы
безопасности и конфиденциальности информации, иначе как «обеспечивать
надлежащих людей надлежащей информацией».
Таким образом, говоря выше о систематизации, хранении, предоставлении
информации, мы, в общем, разбирали термин «управление информацией». Однако не надо забывать, что под информацией в этом определении понимается собственно информация, данные и знания. О знаниях мы ещё поговорим в
соответствующей главе, а чем отличается информация от данных, мы уже знаем
(более строгое обоснование приведённого определения см. статью Г. Н. Гатина
«К вопросу об определении «информационной системы», там же обозначен подход к содержательному определению информации).
К информационной части относится понятийная область или собственно
информация, хранимая в ИС, структура информации и класс запросов обрабатываемых ИС.
К способам хранения относим форму хранения информации, которых на
сегодня два основных: книжный и электронный. Перфокарточный способ хранения рассматриваем как предельный случай книжного, когда одна книга представляет собой четвертинку страницы. В Советском Союзе было
микрофильмирование, что является также частным случаем книжного способа
хранения информации: микрофильм – небумажная форма книги.
История, однако, знает ещё и мегалитический способ хранения информации,
когда информация «кодировалась» в характеристики мегалитического сооружения.
Из определения видно, что из ИС нельзя удалить информационную часть.
Определение хорошо ещё и тем, все известные на сегодня ИС, в том
числе и непрограммные, попадают под определение. ПО при этом никак сюда
не попадает.
Способ хранения информации существенен, но одна и та же ИС может
быть реализована различными способами хранения информации.
Термин «электронный» способ хранения информации хотя и корректен,
но недостаточен. Принципиально такой способ хранения может быть реализован аппаратно. Такие аппаратно реализованные ИС существует и всем известны: GPS и «ГЛОНАСС». Однако GPS, с точки зрения обывателя, –
обыкновенный измерительный прибор. В связи с этим всё-таки следует рас40
смотреть вопрос: нельзя ли измерительный прибор считать предельным случаем ИС, обрабатывающим всего один запрос и хранящим всего одно значение
запрашиваемого данного? Естественный ответ нет. Измерительный прибор не
хранит данные и уж тем более не систематизирует их. На самом деле, значение
величины, показываемой прибором, постоянно изменяется. Показывается некоторое приближение к истинному значению величины. Рассмотрение измерительных приборов с памятью, где может храниться некоторое количество
последних измерений, не меняет существа дела, так как отсутствует систематизация информации. Не надо забывать, что прибор вообще не работает с информацией, прибор работает с данными. Большинство систем GPS обладает
памятью, куда может вводиться электронная карта. После ввода электронной
карты GPS может отвечать на многие стандартные вопросы, решаемые в любой
ГИС – геоинформационной системе. Обратите внимание, ввод электронной
карты усложняет «данные» GPS. Теперь вы получаете не только координаты
точки, но и расположение этой точки на местности. То есть вы стали получать
не данные, а информацию. Отсутствие в вашем GPS карты, вроде бы, сводит
GPS к простому измерительному прибору. Но в систему GPS заложена масса
информации о форме и размерах Земли и не только.
Тем не менее, на сегодня основной электронный способ хранения реализован программно, почему мы везде далее будем использовать термин «программный» способ хранения информации. Более того, далее мы будем
рассматривать программные ИС.
Теперь, возвращаясь к предыдущему определению ИС, как «совокупности
программного обеспечения, основное назначение которого – обработка определённого класса запросов, ориентированных на поиск, ввод/вывод, хранение и,
возможно, обработку информации. Основное назначение такого ПО – хранение
и поиск информации или данных», мы понимаем, что таким образом мы определили не ИС, а программную составляющую ИС. Даже такое определение ИС
приносит пользу. Оно позволяет нам понять, что не имеет смысла в определение
ИС включать аппаратуру (надеемся, читатель понимает, что речь идёт о программно реализованных способах хранения информации) и обслуживающий
персонал, а жизненный цикл ИС и жизненный цикл ПО одно и то же.
Важно, что, в общем случае, ПО не зависит от информационной составляющей ИС. На одном ПО могут быть реализованы различные ИС, и наоборот,
одна и та же ИС может быть реализована в различном ПО.
В самом программном обеспечении, кроме технической и организационной частей, выделим программную часть, которая состоит из совокупности
41
программ и файлового обеспечения. Файловое обеспечение может состоять из
простой файловой системы, базы данных, СУБД или БД.
На простой файловой системе сегодня часто реализуются словари. При
простой файловой системе связь информационной и программной составляющих ИС достаточно жёсткая, вплоть до встраивания иерархической части ИС и
некоторых объектов понятийной области в программное обеспечение. Сменить
понятия или изменить иерархию без перепрограммирования ПО в этом случае
нереально. Но такие ИС компактны, легко переносимы и работают очень быстро. Кроме того, они, как правило, дёшевы. Сопровождение же ПО может выполнять пользователь. Это позволяет таким ИС существовать параллельно с
ИС, реализованными на базах данных и БД.
Нам важно, что на простой файловой системе может быть реализована
только одна ИС. В чуть более сложных случаях – группа одинаковых ИС, например словарей.
В среднем же ИС реализуются на базах данных, СУБД или БД.
На базах данных выполняются небольшие ИС типа «отдела кадров» или
же ИС используют базу данных другой программы. На базе данных можно реализовать несколько родственных ИС. Обычно эти ИС имеют одну понятийную
область. Попытка на одной базе данных построить информационные системы,
использующие разные понятийные области, вообще говоря, реализуема. Но такая реализация достаточно неудобна при сопровождении и нередко медленно и
даже плохо работает.
Когда необходимо реализовать небольшую «домашнюю» ИС, выбор базы
данных в качестве файлового обеспечения не так уж плох. Вряд ли обоснованно
реализовывать телефонный справочник предприятия в БД масштаба Oracle. Выбор базы данных в этом случае более разумен. Вот поэтому ИС на базах данных
существуют и неплохо работают. База данных при этом реализуется либо непосредственно разработчиками программного обеспечения ИС, либо используется
уже готовая родственная база данных другого программного обеспечения. Такой
подход удешевляет разработку ИС, но для сопровождения базы данных необходим администратор базы данных. В любом случае, как только мы заявили «база
данных» или СУБД или БД, необходим администратор.
Средние и большие ИС, конечно же, реализуются в СУБД или БД. Нам
важно, что на одном программном средстве может быть реализовано множество совершенно разных ИС. При реализации ИС на СУБД или БД программисты
реализуют только информационную часть ИС. СУБД или БД выбираются из
уже реализованных. Подход совершенно оправданный, но следует иметь в ви42
ду, что теперь вам для запуска ИС необходимо приобрести СУБД или БД, распространяемые отдельно. Обычно это достаточно дорогие программные средства. Кроме того, они «живут» своей собственной отдельной от ИС жизнью.
Грамотно реализованную в БД ИС достаточно легко можно перенести в другой
БД. Другими словами, грамотно реализованная ИС не использует особенностей
БД и ПО. Перенести ИС, реализованную в СУБД, в другую СУБД или БД несколько сложнее, но тоже возможно (файловая структура СУБД может осложнить такой перенос).
Файловое обеспечение, как видим, может осложнить сопровождение и модификацию ИС. Однако даже ПО может быть реализовано так, что из текстов программ не будет видно, на чём собственно (СУБД, БД и т. п.) программа работает.
Наличие SQL делает ПО практически не зависящим от файлового обеспечения.
Грамотно реализованная ИС не зависит от файлового обеспечения и слабо зависит
от ПО в том смысле, что структуры и данные ИС не встраиваются в ПО.
Теперь мы понимаем, что такое ИС, и чем ИС отличается от ПО. Правильное
определение даёт очень много. В частности, мы видим, что теория ИС несводима к
теории ПО (часто теорию БД рассматривают как теорию ИС). Если теория ПО достаточно развита, то теория информационной части ИС практически отсутствует.
Отсюда же следует, что теория ИС должна рассматривать сущность понятийной
области и как понятийная область влияет на строение ИС.
Теория ИС должна рассматривать:
1) что такое иерархия, какие иерархии бывают, способы построения
иерархий;
2) что такое запрос, какие классы запросов существуют, какие запросы существуют, на какие запросы отвечает изучаемая ИС;
3) как эти три сущности, понятийная область, иерархия, запросы – связаны
между собой, и как они влияют друг на друга.
4) как взаимодействуют между собой информационная часть и способ хранения информации;
5) что такое информация, и чем она отличается от данных.
Однако это стратегические вопросы, которые должны интересовать специалистов по ИС. Неспециалистам же необходимо знать, какие ИС существуют, основные функции и особенности. В свете этого можно, наконец-то,
рассмотреть реальную классификацию ИС. Пример такой классификации можно найти в учебнике В. Н. Петрова [13], но эта классификация ориентирована
на программиста и скорее классифицирует ПО, реализующее ИС. Мы будем
опираться на следующую классификацию ИС:
43
информационные системы
информационно-поисковые системы
гипертекстовые системы
системы поддержки принятия решений
геоинформационные системы
экспертные системы
Internet как информационно-поисковая система
Хотелось бы обратить внимание читателя на последнее: никто не отрицает, что Internet не является информационной системой. В какой мере Internet
можно рассматривать как ИС и какие в связи с этим особенности выявляются,
мы рассмотрим в соответствующей главе.
Системы поддержки принятия решений, геоинформационные системы,
экспертные системы можно отнести к информационным системам, обрабатывающим данные, но теперь добавим к данным информацию. Остальное, собственно, информационно-поисковые системы.
Прежде чем мы отдельно рассмотрим каждый вид ИС, вернёмся к двум
общим вопросам, постоянно откладываемым нами: жизненный цикл ИС и
функции ИС.
Выше мы утверждали, что жизненный цикл ИС и жизненный цикл ПО по
сути одно и то же. Однако появляются некоторые моменты, привносимые информационной составляющей ИС. Это также, как жизненный цикл БД, обладает некоторыми особенностями по отношению к жизненному циклу ПО, но всётаки это тот же жизненный цикл ПО.
В связи с этим кратко рассмотрим жизненный цикл ИС как частный случай
жизненного цикла ПО. Желающих ознакомиться с жизненным циклом ПО более
подробно отсылаем к любому курсу технологии программирования, например [3].
В жизненном цикле ИС мы также выделяем три большие фазы: постановка, разработка, эксплуатация (сопровождение). Нам важно выяснить, что выполняется или
что должно выполняться на каждой фазе и какие требуются для этого ресурсы. Под
ресурсами мы понимаем трудоёмкость фазы, что определяет время и стоимость
реализации фазы, а также технические и человеческие ресурсы.
Заметим, что в США завершающую часть постановки называют внешнее
проектирование. Термин проектирование в России используется не совсем так, как
в США, почему при рассмотрении жизненного цикла ПО в России используется
термин постановка. Основное отличие в сути: проектирование – использование для
разработки или решения задачи уже известных алгоритмов и методов. Основная
44
цель – достичь заданных параметров разрабатываемой системы; оптимальное использование и применение уже известных решений. Постановка, в широком смысле, – решение ещё нерешенной задачи. Разработчику указывается путь, но
конкретный выбор шагов нередко оставляется на разработчика. В этом смысле в
разработку может быть передана задача, решение которой неизвестно или труднодостижимо. При проектировании же всегда известно решение задачи.
Безусловно, перед началом работы заказчику и исполнителю необходимо определиться с целями, достигаемыми выполнением работы. В исследованиях, тем не
менее, допускаются разработки с неясными или плохо определёнными целями. В
любом случае необходимо описать последовательность шагов, которые должен будет выполнить разработчик. Описание этой последовательности шагов и есть постановка. Основная цель постановки описать, определить, объяснить
разработчикам системы, как, каким образом следует создавать систему; какие алгоритмы использовать для решения задач и проблем, возникающих при реализации
системы. Результатом постановки будет документ, называемый «постановка задачи». Из «постановки задачи» должна быть ясна трудоёмкость разработки. Косвенно
определяется и стоимость разработки. Особенность постановки ИС в том, что «постановка ИС», скорее, проектирование, чем постановка. Кроме того, помимо определения трудоёмкости разработки, при «постановке ИС» следует оценить
трудоёмкость заполнения ИС информацией, так как «пустая» ИС чаще всего неработоспособна. Оценка трудоёмкости заполнения ИС информацией требует определения минимального количества информации, начиная с которого ИС становится
работоспособной или хотя бы приемлемой. Необходимо помнить, что ввод информации в ИС идёт на протяжении всего этапа эксплуатации ИС.
Руководит всей работой, как правило, администратор. В условиях России работой может руководить и специалист, непосредственно выполняющий постановку, или представитель заказчика. Важно, чтобы руководитель работы имел
достаточные административные полномочия для решения административноорганизационных проблем возникающих в процессе выполнения работы. Сама же
постановка выполняется группой специалистов. Состав группы может варьироваться в широких пределах. Однако в группу обязательно должен входить специалист в выбранной понятийной области. Именно он и делает постановку. Кроме
того, желательно, чтобы в группе работал будущий непосредственный пользователь разрабатываемой системой: никто лучше него не перечислит наиболее часто
возникающие запросы к разрабатываемой ИС; никто лучше него не определит желательную форму ответа, реакции ИС на запросы. В группу может входить программист, будущий разработчик, подрядчик. Постановки, выполняемые в
отсутствии программиста, содержат большее число ошибок и могут предлагать
трудно реализуемые (более трудоёмкие) алгоритмы или методики.
45
Документ «постановка задачи» утверждается заказчиком и передаётся
подрядчику для реализации. С этого момента начинается фаза разработки. В
нашем случае фаза разработки предполагает программирование и выполняется
коллективом программистов. Желательно участие специалиста-постановщика в
разработке. Основная особенность фазы «разработка ИС» в сравнении с фазой
«разработка ПО» – отсутствие контрольного примера. Часто, однако, контрольным примером могут служить аналогичные ИС с книжным способом хранения
информации. Вторая особенность «разработки ИС» – этап ввода информации
(это фаза эксплуатации, сопровождения) нередко выполняется совместно с разработкой. Более точно, ввод информации в ИС начинается сразу после того, как
отлажено ПО, отвечающее за ввод информации в ИС.
Разработанная система сдаётся в опытно-промышленную эксплуатацию, а
затем в эксплуатацию/сопровождение. Как уже понял читатель, что хотя мы не
выделяем этап ввода информации в отдельную фазу, этот этап чрезвычайно важен
для успеха всей разработки системы. Начинается он уже на этапе разработки и
может продолжаться всё время существования ИС. Более того, именно количество
и качество введённой информации определяет успешность и затребованность ИС.
Обращаем внимание читателя, что в группу ввода информации обязательно должен входить специалист в выбранной понятийной области – только он может определить правильность вводимой информации, порядок ввода информации, а
именно, что необходимо ввести обязательно и сразу, а что можно отложить на потом. Очень интересной особенностью систем ИС является то, что групп ввода информации может быть несколько, и все они могут работать одновременно. В [4]
показано, что должен быть разработан план ввода информации.
В общем случае должен быть администратор ИС – специалист, отвечающий
за целостность, непротиворечивость, актуальность и правильность информации в
ИС. Администратор ИС управляет информацией ИС. На сегодня, такой должности
не существует, и обязанности администратора ИС чётко не прописаны.
Фазы достаточно ясно отделяются друг от друга. Существует ступенчатая
схема разработки системы, при которой после начала следующей фазы нет возврата к предыдущей. На практике более оптимальной является циклическая
схема разработки, при которой все три фазы могут быть циклически повторены
несколько раз при разработке одной системы. Практика такова, что нередко все
три фазы выполняются одновременно и одним и тем же коллективом. Таким
образом, важно не само разделение фаз между собой, а понимание, что выполняется в каждой из фаз, понимание необходимости каждой из фаз. Упуская или
урезая любую из фаз, мы перегружаем её функции в другую. Функции фазы всё
46
равно должны быть выполнены, но в этом случае они выполняются в урезанном варианте, в ущерб функциям выполняемой фазы и в общем случае весьма
коряво. Обычное в ПО соотношение фаз постановка – разработка 2 : 3, но в
жизненном цикле ИС можно несколько изменить как 2 : 2 : 1, где единица отводится на ввод информации в процессе разработки.
При переходе к функциям ИС хотелось бы сделать одно небольшое замечание. Прежде всего, ИС следует рассматривать как системы управления
информацией.
Отсюда существенная функция ИС – систематизация информации. Следующая функция ИС – предоставление информации пользователю. И, наконец,
третья, необходимая, но не основная функция ИС – хранение информации.
То есть, мы выстраиваем функции в следующем порядке:
- систематизация информации;
- предоставление информации;
- хранение информации.
Однако исторически ИС зародились с целью «хранение информации». При
создании ИС выяснилось, что информацию необходимо систематизировать, и последней функцией ИС стало «предоставление информации», причём именно в форме «своевременно обеспечивать надлежащих людей надлежащей информацией».
Лишь значительно позднее ИС стали доступны большинству пользователей. Отсюда делаем вывод, что одной из функций ИС должно быть обеспечение безопасности, конфиденциальности информации. При создании ИС выяснилось, что для
надлежащего обеспечения функции безопасности все три вышеперечисленные
функции необходимо выполнять с учётом функции безопасности.
Среди функций ИС нет «интерпретации информации». Если у нас чисто информационно-поисковая система, то «интерпретация информации» не входит в
функции ИС. Но, у ИС, обрабатывающих данные, появляется функция «обработка
информации». Что понимается под обработкой информации, зависит от вида ИС. В
некотором смысле «предоставление информации» уже обработка информации, так
как связано с оптимальной визуализацией информации пользователю.
Здесь мы перечислили функции ИС, которыми обладают все ИС, независимо от вида ИС. При рассмотрении конкретных видов ИС будут дополнительно рассмотрены функции, присущие именно этим ИС. Информационнопоисковые системы как таковые рассматривать не будем, полагая, что большинству пользователей интуитивно понятно, что это такое.
47
Глава 3. Виды информационных систем
В предыдущей главе дано определение информационной системе, рассмотрен жизненный цикл ИС, приведена классификация ИС, указаны основные
свойства любой ИС, но по сути ИС не рассмотрены. В этой главе кратко пробежимся по конкретным видам ИС. Два типа ИС, а именно геоинформационные системы и экспертные системы, рассматриваются в главах 4 и 5.
Мы полагаем, что читатель понял, что такое ИС. С нашей точки зрения,
это словари, энциклопедии, справочники. Важно отличать ИС от программы,
имеющей в своём составе информационную составляющую. Важно понимать,
что иногда программное обеспечение выглядит как ИС, но де-факто им не является (Internet). Безусловно, необходимо понимать отличие банка данных от
информационной системы.
В основу построения большинства простых ИС заложена алфавитная иерархия – информация упорядочена по алфавиту. Это не значит, что не существует других иерархий. Телефонный справочник может быть упорядочен по
номерам телефонов. Справочник шахматных дебютов (начал шахматных партий) упорядочен по простоте и частоте употребления шахматных дебютов. Это
между прочим приводит к тому, что дебютные справочники XIX, XX и XXI веков выглядят существенно по-разному. Со временем меняется частота употребления того или иного дебюта, да и сложность дебюта в разное время
оценивается по-разному. Очень интересно упорядочивание картографических
материалов (см. главу 4). В любом случае в ИС информация упорядочивается
некоторым образом. Это отражает фундаментальное свойство имён блоков информации – упорядочиваться. (Сегодня совершенно не ясно, как упорядочить
собственно информацию, но «имена» блоков информации могут упорядочиваться по алфавиту). Тем не менее, насколько принятый порядок букв в алфавите закономерен, никто сказать не может. В некотором смысле, порядок букв
случаен. Что приводит нас к грустному выводу, что в основе большинства ИС
лежит случайное упорядочивание имён блоков информации.
В основном ИС отвечают на вопрос: «Что это?», и косвенно на вопрос:
«Есть ли…? Существует ли ….?». Косвенно потому, что отсутствие понятия в
источнике не означает его реального несуществования, возможно, информацию
о понятии просто не поместили в источник. Принятый порядок публикации позволяет часто получить ответ на запрос «когда…?» Однако, прямо задавая этот
вопрос энциклопедии (программной, конечно), вы не получите ответа. Существует принятая историческая хронологическая шкала (многими оспаривается не
48
только порядок дат, но и само наличие дат). Вы можете обратиться к ней и получить ответ на вопрос: «Что случилось в такой-то период?» Упорядочена эта
шкала по датам, потому получить ответ: «Когда это случилось?»− в общем случае нереально.
В простых ИС поиск осуществляется посимвольно. При поиске понятия
«скважина» ищется не само понятие, а совокупность символов «с-к-в-а-ж-и-н-а».
(По-научному, осуществляется дескрипторный поиск). Причём при этом ИС не
найдёт «скважины», «скважину», «скважиной» и т. п. (Впрочем, в последнее
время ИС начинают опознавать существительные независимо от падежа.) Вы
можете набрать фразу. Будет выполняться поиск фразы. Сам поиск выполняется среди «имён» блоков информации, но существует множество ИС, выполняющих поиск в текстах информации. Последнее чаще всего выполняется
очень долго, так как требует последовательного просмотра всех текстов.
Большинство словарей и справочников приводят все значения слов. Причём чаще всего эти значения упорядочены по частоте употребления. В специальных словарях этот порядок может быть изменён. Важно, что для ИС все эти
значения в каком-то смысле равноценны. Большинство сегодняшних ИС не интеллектуальны, они не понимают смысла сообщения, выводимого по запросу
пользователя, или, другими словами, современные ИС не могут работать с семантикой сообщения. Как мы уже показывали, трактовка сообщения существенно зависит от пользователя. Тем не менее уже сегодня наметились пути
интеллектуализации ИС – см. главу 5.
Какая реализация ИС лучше: книжная или программная? Если рассматривать этот вопрос с точки зрения полноты и достоверности информации, то
книжная реализация ИС всё-таки лучше. Программные ИС чаще всего наполняют сканированием страниц книжной. Но нельзя просто скопировать книжную статью в программную ИС. Что делать со ссылками (см. стр. такую-то)?
Поэтому все статьи корректируются. Если бы при этом просто корректировались ссылки, но нередко «корректировщики», в целях экономии памяти, корректируют тексты статей, удаляя часть текста. Надо ли замечать, что иногда
при этом смысл текста не просто искажается, а искажается до неузнаваемости.
Какая реализация ИС предпочтительней: книжная или программная? Правильный ответ: «Это зависит от ваших предпочтений». Если вы умеете работать
с литературой и энциклопедия у вас под рукой, то, возможно, вы предпочтёте
пользоваться книгой. Нередко это ничуть не медленнее машинного поиска описания понятия. Если же вы работаете с Internet, то опять-таки книга, как первоисточник информации, предпочтительней. Всё же у программных ИС есть одно
49
неоспоримое преимущество. Понятия в программной ИС могут быть упорядочены самыми различными способами. Более того, при правильной реализации
ИС вы можете упорядочить информацию в ИС своим собственным способом.
Вы не можете переупорядочить информацию в книжной энциклопедии, а в программной ИС можно получить несколько разных сортировок хранимой в ИС
информации.
Много интересного начинается при работе со ссылками. Вспоминаем, что
при помещении в ИС информация усложняется: чаще всего добавляются ссылки на другие блоки информации. При копировании информации из книг в программную ИС можно поступить тремя различными способами:
− просто удалить ссылки, предполагая, что пользователь сам разберётся с
текстом и ссылками;
− подкорректировать ссылки, заменяя тексты типа «см. стр. такую-то» на
«см. статью такую-то» и т. п.;
− автоматизировать ссылки: сделать так, что ссылки выделялись бы в тексте, а при клике на ссылке выполнялось бы открытие окна с текстом, на который ссылался предыдущий текст.
Просто выделить ссылки нельзя, так как разнообразные выделения текста используются авторами статей для подчёркивания идей и нюансов статьи. Однако
можно вставить в текст статьи некие условные символы, неотображаемые на экране
и специальным образом интерпретируемые программой вывода текста на экран.
Если вы можете вставить в текст неотображаемые символы, которые интерпретируются системой визуализации текста, то можно вставить и адреса переходов/ссылок по текстам или «имена» адресов переходов. Однако теперь ваш текст
приобретёт совершенно новые свойства, основное из которых – нелинейность. Вы
можете обрабатывать текст в нужном вам порядке, а не последовательно.
Текст, в который вставлены неотображаемые при визуализации символы,
управляющие как отображением текста на экран, так и возможностями перехода по тексту, называется гипертекстом.
ИС, работающая с гипертекстами и позволяющая выполнять переходы по
тексту с помощью скрытых символов, называется гипертекстовой информационной системой.
Вставляемые управляющие символы чаще всего называют тэгами. Принципиально текст, набранный в Microsoft Word, является типичным гипертекстом.
Здесь символы, вставляемые текстовым процессором, называются символами
форматирования. Тем не менее до полноценного гипертекста Word-тексты не
дотягивают: отсутствует управление переходами. Макросами и другими сред50
ствами можно сделать из Word-текстов полноценные гипертексты и построить
гипертекстовую ИС на основе документов Word. Скорее всего, такая ИС будет
работать достаточно медленно. При разработке Word не предполагалось его использование как основной составляющей ИС.
Однако HELP в Word и многих других программных средах – типичная
гипертекстовая информационная система.
Термин гипертекст был предложен Тэдом Нильсоном в 1965 г. для обозначения «текста ветвящегося или выполняющего действия по запросу» [5]. В
компьютерной терминологии: гипертекст − текст, сформированный с помощью языка разметки, потенциально содержащий в себе гиперссылки. Сами
идеи «гипертекстовости» восходят к 1945 г. в работе Буша. Поэтому впервые
понятие «гипертекст» имело использование в литературе: «Гипертекст − это
форма организации текстового материала, при которой его единицы представлены не в линейной последовательности, а как система явно указанных возможных переходов, связей между ними» [12]. Существуют реальные
литературные произведения, построенные так, что, следуя ассоциативным связям, можно читать материал в любом порядке, образуя разные линейные тексты. Несколько неожиданно, что часть исследователей считает, что Библия
построена типичным гипертекстовым способом. Это утверждение, безусловно,
требует доказательства и более пристального изучения. Тем не менее существует неоспоримый факт, что все религиозные первоисточники построены из отрывков текстов, нередко «выдернутых» из других контекстов («стихи» в
Библии, «суры» в Коране, высказывания Заратустры). Такую литературу действительно можно читать в любом порядке, составляя для себя собственный вариант религиозного первоисточника, акцентируя внимание на том, что удобно
именно для предлагаемой точки зрения. Этим и пользуются все религиозные
проповедники, а нередко и шарлатаны.
Нам же интересно компьютерное определение гипертекста. Появилось
новое понятие – язык разметки. Наиболее известный язык разметки – банальный HTML – Hypertext Markup Language. Всё очень просто: программа визуализации текста или браузинг управляется некоторым образом этой самой
разметкой текста. Если вы попытаетесь отобразить на экран гипертекст редактором, который «не знаком» с символами разметки (языком разметки), то вы
увидите на экране весь текст вместе с символами разметки. Никаких выделений
текста или переходов между блоками текста вы не получите. Почему совокупность символов разметки гипертекста – нечто большее, чем символы форматирования в Word? Потому что при разметке текста употребляются не только
51
символы, но и гипертекстовые операторы управления. Сами символы не могут
размещаться абы как. Существует набор правил написания и размещения разметки. Всё это в совокупности и образует язык разметки гипертекста. Этот язык
напоминает языки программирования (более того, он им и является), но в связи
со своим назначением он гораздо проще.
Из вышесказанного видно, что гипертекстовая ИС состоит как минимум
из трёх вещей: гипертекстовой базы знаний, используемого языка разметки и
браузинга, или программы вывода гипертекста на экран.
Что такое база знаний, лучше всего посмотреть в главе №5. В данном случае подчёркивается, что гипертекстовая ИС использует всё же не базу данных,
хотя использование базы данных не исключается, а нечто большее. В данном
случае можно считать, что используется совокупность специальным образом
структурированных текстов, банк данных работает с этими текстами как с необрабатываемой последовательностью байт (!).
Разметка текста может выполняться либо вручную, либо автоматически. При
помещении новых блоков текста разметка может корректироваться. Чисто автоматическая разметка, впрочем, как и ручная, должна быть проверена, отлажена. Процесс разметки текста должен выполняться специалистом, который разбирается в
тематике текста. К счастью, языки разметки достаточно просты, что при их освоении позволяет обойтись без знания программирования. Браузинг, безусловно, разрабатывается и доводится до эксплуатации программистом.
Первые гипертекстовые информационные системы [12] были построены
ещё в конце 1960-х на больших компьютерах. Центральной идеей являлась реализация механизма ассоциативной индексации – способность создавать управляемые переходы между текстами, связанными структурно или семантически. Это
позволяло пользователям интерактивно записывать и просматривать информацию, представленную в виде обычных текстов. В декабре 1968 г., в США, на Объединённой осенней конференции по вычислительной технике [Engelbard, 1968]
была продемонстрирована многотерминальная гипертекстовая информационная
система NLS (oN Line System), разработанная Д. Энгельбартом [Engelbard, 1963],
созданная в Центре аугментации Стенфордского университета.
В систему NLS можно было загружать спецификации, планы, проекты,
отчёты, памятные записки и т. п. материалы, необходимые для повседневной
совместной работы групп проектировщиков и исследователей. Эти материалы
представлялись в виде электронных документов с преимущественно иерархическими связями, характерными для технической документации. Специальными средствами можно было устанавливать ссылочные связи между уровнями и
52
файлами. Система поддерживала одновременную работу нескольких пользователей над одним документом; каждый пользователь имел в своём распоряжении манипулятор, которым мог пользоваться как электронным карандашом, и
указателем точек, подлежащих совместному обсуждению.
Более интересно, что при разработке NLS Д. Энгельбард сделал ряд выдающихся технических изобретений. К их числу относятся: манипулятор
«мышь», многооконный интерфейс, функциональная клавиатура, контекстночувствительная поддержка. Все эти изобретения хорошо известны сегодня
пользователям персональных компьютеров, работающим с программными пакетами, построенными по принципу манипулирования внешними символами,
который получил название WIMP (Windows, Icons, Mouse, Pointer-окна, пиктограммы, меню, указатель).
Гипертекстовые ИС получили широкое распространение в связи с простотой реализации, нередко не требующей специалистов в области программирования. Сегодня фактически все HELPы в программах являются гипертекстовыми ИС. Обучить специалиста языку разметки «HELP» можно в
течение часа, а стандартный браузинг поставляется с Microsoft Office и практически с любой системой программирования. Это привело к широкому распространению гипертекстовых ИС.
В настоящее время гипертекстовые ИС используются при разработке энциклопедий, словарей, каталогов, справочников, оперативных руководств и инструкций, при разработке интерактивных систем технической документации.
Гипертекстовые ИС применяются в системах обучения, обработки идей и мозговой атаки, групповой работы, поддержки процессов принятия решений, разработки программного обеспечения и во множестве других направлениях.
Основная идея гипертекстовых информационных систем задействовать
ассоциативное мышление человека, дать возможность пользователю выполнять
исследования, используя гипертекстовую ИС в порядке возникаемых в процессе работы с ИС ассоциаций. Реальность сыграла с человечеством злую шутку. В
основу гипертекстовой ИС закладывается иерархия, заранее построенная разработчиком. Такая иерархия существенно зависит от предыдущего опыта разработчика, его менталитета и специальности. Например, такой документ как
«паспорт скважины». Специалиста по бурению интересует, прежде всего, конструкция скважины, предполагаемый/фактический стратиграфический разрез,
наличие осложнений и аварий при бурении, наличие АВПД. Специалиста разработчика – давления, наличие продуктивности, пористость, проницаемость
нефтегазоносной части разреза, наличие покрышки и др. Какая же иерархия
должна быть заложена в гипертекстовый «паспорт скважины»?
53
Беда гипертекстовых систем в том, что однажды заложенную иерархию
очень трудно в дальнейшем поменять или перестроить. Поиск в таких системах
всегда начинается с одной и той же точки, а ссылки уже заложены согласно мировоззрению разработчика – какая уж тут ассоциативность. Соответственно
схеме и запросы, на которые вы хотите получить ответ, должны быть явным
образом заложены в систему при разработке. То есть гипертекстовая ИС не
может явно ответить на запрос, который не был в неё заложен. Фактически разработчик должен предугадать, какие вопросы будут задаваться разрабатываемой ИС. Сегодня несложно построить динамически «траекторию»
ассоциативности пользователя, но в ИС может не оказаться требуемой информации, то есть разработчик должен предугадать ассоциации пользователя и заранее заложить в ИС необходимую информацию.
Выше мы определили, что в состав гипертекстовой ИС прежде всего входит
гипертекстовая база знаний. В большинстве случаев в основе реальной гипертекстовой ИС лежит совокупность специальным образом структурированных текстов.
Эта совокупность – слабое подобие базы знаний. Основное её отличие от базы знаний – невозможность автоматически сделать новый вывод на основе того, что заложено в текстах. Дело не в отсутствии ПО, реализующем механизм вывода, дело в
структуре текста. С одной стороны, эти тексты ничем не регламентируются, и
структура этих текстов может быть любой. С другой стороны, в них встраивается
достаточно жёсткая структура «ассоциативных» ссылок.
Внимательный читатель может возразить: «Но Internet, ведь, тоже гипертекстовая информационная система, не зря, ведь, HTML – язык разметки
WEB-страниц». Теперь самое время разобраться, является ли Internet гипертекстовой ИС и, вообще, является ли Internet информационной системой.
HTML разработан Тимом Бернерсом-Ли около 1990 г. Разработка велась в
стенах CERN – Европейский совет по ядерным исследованиям. HTML создавался
как язык для обмена научной и технической документацией. HTML использовался
как удобный инструмент для работы с большими объёмами научной информации,
как средство для предоставления доступа к ресурсам HEPnet внешним пользователям (протоколы HEPnet не совместимы с IP; собственно, как мы его понимаем сегодня, тогда Internet ещё не существовал). Везде отмечается, что HTML является
подмножеством SGML – языка описания документов, являющимся стандартом
ISO. Основное дополнение HTML – поддержка гипертекста. В идеале текст с разметкой HTML должен был без стилистических и структурных искажений воспроизводиться на оборудовании с различной технической оснащённостью. Однако,
визуализация документа зависит как от технического оборудования, так и от про54
граммного обеспечения. Чрезвычайно трудно обеспечить одинаковый вид документа, отображаемый как на LCD – мониторе, так и на мобильном телефоне, да и
различных браузеров оказалось не мало.
Обратим ваше внимание на то, что HTML создавался для работы в достаточно консервативной среде, где важна была идентификация личности (анонимность не требовалась), где важна была достоверность информации, где,
вообще говоря, не требовались мультимедийные средства. Сеть, в которой работал тогдашний HTML, была небольшой и весьма ограничена по числу пользователей сети (не так уж много в мире учёных).
Использование HTML показало мощность идеи. HTML стали применять в
общедоступной сети Internet. HTML сделало общение в сети простым и удобным. Основное достоинство HTML, между прочим, в его простоте. Любого
пользователя сети можно было часа за три обучить HTML, после чего этот
пользователь мог «создавать» собственные страницы для публикации в сети.
Более того, если разработчик страницы предусмотрел, то читатели страницы
могли вставить в страницу как свои замечания, так и свои публикации. Использование HTML в общедоступной сети потребовало дополнения HTML средствами поддержки графики и мультимедиа. Кроме того, остро встали вопросы
защиты информации и идентификации пользователя.
Практика показала, что если средства безопасности добавляются в уже
готовое ПО, то работают эти средства безопасности плохо, а нередко сами служат бесчисленным источником дыр в системе безопасности. С другой стороны,
создание безопасности в общедоступной среде (сети) – задача весьма противоречивая. По сути, сеть предполагает свободный доступ ко всему, но система
безопасности призвана сделать как раз обратное.
Браузер взаимодействует с гипертекстом. В гипертекст, как мы помним,
могут быть вставлены операторы. «Оператору вызова другого ПО» легко подсунуть вирус. Это, в общем, и наблюдается в Internet. Удивляться следует не
наличию вирусов в сети, а тому, что их так мало. Сама сетевая технология создаёт условия и ниши для размножения вирусов.
Что, собственно, произошло? Произошло то, что средство, предназначенное для использования в узкой специализированной среде и с чётко определёнными целями и задачами, стали широко использовать в общедоступной
неконтролируемой среде с неясно определёнными целями. Более точно – с совершенно другими целями! Первоначальная цель создания HTML – предоставление удобного доступа к ресурсам небольшой сети. Цели провайдеров Internet:
получить прибыль, используя как средство HTML для предоставления глобаль55
ного доступа к любому ресурсу, даже необязательно сетевому. Нельзя сказать,
что HTML не справляется с возложенными на него задачами, но основные беды
проистекают из вышеизложенных противоречий.
Автор не в курсе ситуации в CERN-e: скорее всего, там получили полноценную гипертекстовую информационную систему. Нам надо разобраться с тем, что
получилось в Internet. Простые пользователи воспринимают Internet именно как
информационную систему. Мы же теперь, поскольку весьма грамотны, можем
добавить гипертекстовую. Во многих источниках Internet так и позиционируется.
Начнём с того, что вы получаете, выполнив запрос в Internet. Сам запрос
выполняется в свободной форме на человеческом языке. Начинающий пользователь так и задаёт, например: «Как получить открытый огонь?» Результаты
впечатляют: примерно за 0,18 с. Находятся около 1 300 000 источников. Вот
только прямого ответа на ваш запрос может и не оказаться среди предлагаемых
«ответов». Вот на этот вопрос при поиске в Google найдено: «огонь – Википедия», «Форум Lovemix.RU > Как сделать мангал?», «Как добыть огонь, не имея
практически ничего», «Ъ – Приложение Дом (679994) – Огонь в большом городе». Надо отметить, что вам повезло, среди предлагаемого мусора на первойвторой странице нашлась статья с ответом на ваш вопрос. Стоит немного перефразировать вопрос – «Каким образом получить открытый огонь?» и результаты будут совершенно другие. Кроме того, результаты зависят и от сайта,
например на Mail.ru уже совершенно другие ответы.
Интуитивно понятно: разные сайты − разные ИС, если там ИС. То есть в
Internet мы имеем дело сразу со многими ИС (опять-таки: если там ИС). Поскольку запрос никак не ограничен, то это универсальные ИС. Так как результат ищется на многих сайтах, то это распределённые ИС. Вот качество ответа,
безусловно, ниже всяческой критики. К чему нам эти 1 300 000 ответов, если на
нескольких первых страницах нет прямого ответа на поставленный вопрос. В
своё время мне, например, рекомендовали правильно формулировать вопрос.
Для начала попытайтесь просто указать существительное, как вы это делаете
при поиске в обыкновенном словаре.
Тут вас ожидают другие «тараканы». Будем искать «аппликация» – есть такая операция в алгебре программ. Конечно, вы догадались, что Internet подсунет
нам «аппликация» – поделки из бумаги (4 700 000 ; 0,38с). Найти в этом сборище
поделок искомое нами значение – абсолютно бесполезное дело. Тогда (мы уже
грамотные) наберём: «аппликация – операция в алгебре программ». Результат теперь лучше, но прямого ответа на вопрос нет. Как поступить? Да очень просто,
взять обыкновенный специализированный словарь и там найти ответ.
56
Вышеприведённые «беды» наводят на мысль, что мы имеем дело отнюдь
не с информационными системами. Что мы получаем в ответ на запрос? Мы
получаем перечисление статей, опубликованных в Internet, в которых встречаются слова из текста запроса. Другими словами, Internet осуществляет тот
самый посимвольный поиск некоторых слов, не вникая в смысл вопроса. Это,
между прочим, означает, что отсутствует иерархическая управляющая структура. Выше мы показали, что наличие иерархии – необходимость для превращения совокупности информации и программного обеспечения в
полноценную ИС. Информация в Internet свалена в кучу. Не выполняется основная функция ИС – управление информацией.
С чем же работает пользователь Internet? Это интересно, хотя бы потому,
что скорость поиска впечатляет. Ну как получить за 0,18 секунды в ответ
1 300 000 документов? Грамотный пользователь Internet ответит: вы работаете с
поисковиком. Ну что ж? Набираем в Google «поисковик» и получаем: «поисковая система – Википедия»:
«Поиско́вая систе́ма – программно-аппаратный комплекс с вебинтерфейсом, предоставляющий возможность поиска информации в Интернете.
Под поисковой системой обычно подразумевается сайт, на котором размещён
интерфейс (фронт-энд) системы. Программной частью поисковой системы является поисковая машина (поисковый движок) – комплекс программ, обеспечивающий функциональность поисковой системы и обычно являющийся
коммерческой тайной компании-разработчика поисковой системы. Большинство поисковых систем ищут информацию на сайтах Всемирной паутины, но существуют также системы, способные искать файлы на FTP-серверах, товары в
Интернет-магазинах, а также информацию в группах новостей Usenet.»
«По данным компании Net Applications, в ноябре 2011 года использование
поисковых систем распределялось следующим образом:
Google – 83,87%;
Yahoo! – 6,20%;
Baidu – 4,22%;
Bing – 3,69%;
Yandex – 1,7%;
Ask – 0,57%;
AOL – 0,36%.»
Теперь понятно: в Internet нет полноценной ИС. В Internet реализована
только часть ИС, обеспечивающая поиск слов. Не информации, а слов. Причём
подчёркивается, что это программно-аппаратный комплекс (который к тому же
57
коммерческая тайна компании разработчика). Этим обеспечивается невероятная скорость поиска слов. Но, конечно, не только наличием в поисковике аппаратной части. Любая статья, помещаемая в Internet, индексируется. Именно при
помещении на сайт по статье автоматически составляются гиперссылки, используемые в дальнейшем для поиска. Поскольку, провайдер не знает будущих
запросов на поиск, то индексирование статей составляется по всем имеющимся
в статье существительным, глаголам, оборотам и т. п. В дальнейшем поисковик
не работает со статьями, он работает с индексами, объём которых в миллионы
раз меньше. Такая система, обеспечивает практически мгновенный поиск, но
абсолютно «тупа». Кроме того, она работает со словами, точнее, символами, из
которых состоят слова.
Автоматическая индексация в неизменном виде также не совсем подходит
для использования в Internet. В каждый конкретный момент некоторые статьи запрашиваются чаще других. Индексация статей корректируется по частоте запросов так, что часто запрашиваемые статьи находятся «ближе», чем реже
запрашиваемые статьи. Вот мы и получаем «аппликация – поделка…», а отнюдь
не логическая операция. Трудно оценить, насколько это правильно (корректировка индексации). С одной стороны, вроде бы так и надо, с другой стороны – это
сознательное направление пользователя в необходимом провайдеру направлении.
Индексация создаётся с целью не выполнять при ответе на запрос просмотр статей. С другой стороны, индексация заменяет отсутствующую глобальную иерархию, поскольку сама представляет определённую иерархию.
Однако, это не иерархия текстов и понятий, а иерархия их адресов. То есть индексы – это каталог статей, понятий. Тогда можем ли мы сказать, что Internet
каталожная ИС? В конце концов, что нам поставляет Internet в ответ на наши
запросы: список найденных статей с их адресами. Да, именно так и есть. Определение Internet, как каталожной ИС, сразу объясняет нам все казусы с ответами на наши запросы. Спрашиваем то мы: «Что это?» Но получаем ответ на
вопрос: «Где это может находиться?»
Таким образом, Internet – это каталог информации, причём весьма приблизительный и постоянно перестраиваемый. Это не значит, что в Internet нельзя получить доступ к реальным ИС. В Internet подключены как самые разные ИС, так и
банки данных, с которыми можно работать с помощью SQL. Для подключения к
реальной полноценной ИС или БД необходимо получить допуск на вход в систему.
В большинстве случаев вход в систему разрешается за небольшую плату. Но серьёзная информация стоит серьёзных денег. Кроме того, все допуски разрешаются
после идентификации пользователя – анонимность исключается.
58
Если вы работаете с серьёзной ИС, подключённой к Internet, то можете
предполагать достоверность, полноту и качество информации. К свободно распространяемой в Internet информации такие требования предъявить уже нельзя:
любой провайдер скажет, что он не проверяет помещаемой статьи, но только
индексирует её содержимое. Информация, помещённая в серьёзных ИС, не обнаруживается при поиске по Internet. Она не индексируется. Объёмы этой информации оценить трудно, но считается, что объём не индексируемой в Internet
информации значительно превышает объём открытой информации. Существует
понятие «глубокая паутина», обозначающее множество WEB-страниц, не связанных гиперссылками. Наконец, в сети можно найти информацию, которая
получается немного не так, как это принято в Internet. Существуют файлы на
FTP-серверах и ещё некоторые другие сервисы.
Internet привлекает своей открытостью и доступностью. Любой может
поместить в Internet что угодно. Поэтому другая сторона этой медали: Internet –
громадная свалка, где на байт полезной информации приходятся гигабайты
мусора. С этой точки зрения весьма любопытен проект «Википедия». По замыслу создателя любой в свободном доступе может поместить в Википедию
статью. В общем проект удался, но вы, зайдя в Википедию, можете увидеть –
«Эта статья должна быть переписана» или «Эту статью необходимо дополнить» и т. д. Иногда удаётся найти первоисточник статьи, помещённой в Википедию, и он нередко существенно отличается от текста в Википедии. Тем не
менее, как предварительный источник информации эту Internet-энциклопедию
использовать можно.
В последнее время широко ведутся работы по повышению интеллектуальности поисковиков. Очень интересен поисковик «Нигма». «Нигма.РФ − российская
интеллектуальная метапоисковая система, первая кластеризующая поисковая система в Рунете. Проект создан при поддержке факультетов ВМК и психологии МГУ,
а также Стэнфордского университета [9]. Только «Нигма» на запрос «аппликация»
вывела все предполагаемые группы значений этого слова (!).
Этим можно заканчивать наш краткий обзор особенностей информационных систем. Геоинформационные и экспертные системы весьма кратко рассмотрены в главах 4 и 5 этого учебного пособия. У нас остаются
присутствующие на схеме классификации информационных систем (см.
главу 2) «Системы поддержки принятия решений» (СППР). Традиционно
СППР относят к информационным системам. Подробное же рассмотрение архитектуры СППР в свете вышеизложенной теории ИС приводят нас к мысли,
что это программное обеспечение, использующее нечто, подобное ИС. Безус59
ловно, может быть, СППР, использующая реальную ИС. Однако в общей
структуре СППР [10] мы видим «информационные хранилища данных».
Архитектура СППР очень уж разнообразна и достаточно размыта, например [10] даёт понятия: «Функциональные СППР», «СППР, использующие независимые витрины данных», «СППР на основе двухуровневого хранилища
данных», «СППР на основе трёхуровневого хранилища данных». Де-факто
«Функциональные СППР» и «СППР, использующие независимые витрины
данных» вообще обходятся без ИС. С другой стороны, чуть ниже упоминаются
ССПР, использующие динамическое моделирование. «Особый класс систем
стратегического управления и поддержки принятия решений представляют собой системы, позволяющие осуществлять динамическое моделирование процессов», а эти системы, как это ни удивительно, достаточно далеки от ИС.
Под СППР объединяется ПО, общей чертой которого является «помощь и
влияние на процесс принятия решения». В каком-то смысле это общая черта
любого программного обеспечения. Например, анализ годового бухгалтерского
отчёта предприятия определяет действия руководства на ближайший период,
но никто не относит программы бухотчётности к СППР.
60
Глава 4. Геоинформационные системы
Самое простое определение геоинформационной системы ГИС – это система управления электронными картами. Совершенно правильное определение,
требующее дальнейшего раскрытия.
Перед подробным рассмотрением сути ГИС следует вспомнить, что такое карта. Карта – отображение земной поверхности на плоскость. Проблема в
том, что Земля имеет форму эллипсоида, поверхность которого не отображается на плоскость без искажений и разрывов. Решением проблем, возникающих при таких отображениях, занимается математическая картография. В
математической картографии вводится понятие картографической проекции,
показываются основные способы проектирования поверхности эллипсоида на
плоскость (надеюсь, читатель понимает, что таких способов великое множество). Изучение даже одной картографической проекции – достаточно трудоёмкое занятие, безусловно, не входящее в наши задачи. Нам важно, что для
любого отдельного участка земной поверхности существует своя уникальная
проекция, наилучшим образом отображающая этот участок на плоскость. Поэтому в своё время развитые государства строили карты своих стран, каждая в
своей проекции. Такая страна, как Россия, в силу своей протяжённости, вынуждена были использовать в некотором смысле универсальную проекцию. В
основе лежат исследования Гаусса, уточнённые его учеником Крюгером. Эта
проекция называется проекцией Гаусса-Крюгера. В США использовались несколько другие проекции. (Почему указывается именно США, а не другая
страна, станет ясно в дальнейшем).
Таким образом, каждое государство строило свои карты в своих проекциях. Это приводит к тому, что карты, построенные, например, в Германии, не
стыкуются с российскими. В связи с глобализацией мир медленно переходит на
единую картографическую основу (а как иначе выполнять международные перелёты?). Так как США первые внедрили в быт глобальную систему позиционирования – GPS, то весь мир, де-факто, перешёл на модель земной
поверхности принятой в США. В частности, эта модель базируется на математической модели Земли, называемой WSG84.
В России, однако, использовалась и используется модель Земли на основе
эллипсоида Красовского. Все существующие карты России выполнены именно
на основе этой модели. Надо ли говорить, что одна и та же точка имеет разные
координаты в обеих системах. Реальная разница может достигать более 300 м
на местности. С появлением и активным продвижением на рынок системы GPS
61
Россия встала перед неприятным выбором: либо полностью построить новое
картографическое покрытие собственной территории, либо запустить свою систему глобального позиционирования. Таким образом, появляется система
ГЛОНАСС (безусловно, существует и множество других причин появления
российской системы глобального позиционирования).
Системы электронных карт обязательно отражают состояние с уже существующими бумажными картами. Исторически сложилось так, что первые ГИС
появились в США. Поскольку эти ГИС решали, прежде всего, вопросы картографического обеспечения США, то и работают они, прежде всего, в проекциях, принятых в США. Позже, когда ГИС стали экспортироваться в другие
страны, сначала западные страны, в ГИС стали добавляться самые разные проекции, но опять-таки прежде всего западные. В последнюю очередь вставлены
и проекции, используемые в России. То, что вставлено в последнюю очередь,
часто работает совсем не так хорошо, как хотелось бы.
Пользователь, не просвещённый в картографии, выбирает то, что «ближе
лежит». Чаще всего под руку попадается западная ГИС (MapInfo, ArcVeiw и
т. п.). Выбирает карту из Internet и с удивлением обнаруживает реальные расхождения с нашими бумажными аналогами. Для удаления искажений необходимо сменить проекцию, и во многих ГИС это сделать достаточно просто.
Однако во многих ГИС отсутствовали наши проекции. Сегодня ситуация полегче: большинство распространённых ГИС имеют в своём наборе и проекции,
используемые в России. Тем не менее по умолчанию все зарубежные ГИС работают в проекциях, не используемых или малоиспользуемых в России.
Обращаем ваше внимание на то, что грамотное использование средства
предполагает определённый уровень знания материалов, обрабатываемых выбираемым средством. Вроде бы совсем простой вопрос – выбор ГИС. Мы ведь
все знаем, что такое карта. Но неожиданно видим, что случайный выбор ГИС
может привести к невозможности работы с российскими картами.
Существует ещё одно любопытное заблуждение. Большинство уверено,
что всё западное намного лучше любого российского. Так вот с картами всё как
раз наоборот. Как заметил один хороший топограф: «Наши карты самые топографические в мире». Другими словами, в России с XIX века вкладывали в карты гораздо больше информации, чем на Западе. Кроме того, российские
требования к картам строже западных. Конечно, это касается бумажных карт.
Однако качество бумажных карт неявным образом переносится на электронные, хотя бы потому, что нередко электронные карты получают простым копированием бумажных.
62
Вот здесь-то мы и подходим к сакраментальному вопросу: а зачем вообще
переводить бумажные карты в электронный вид? Вопрос, на самом деле, подразумевает и другое: а каким образом это делать наилучшим образом? Ответ на
подразумеваемый вопрос зависит от ваших целей: каким образом вы собираетесь использовать карты вообще и электронные в частности? Постановка целей,
в свою очередь, ставит вопрос о необходимости ГИС: а зачем эти ГИС? Ведь
обходилось человечество без ГИС, так на кой ляд они нужны?
Сначала о самом необходимом: любое автоматизированное управление
любым летательным аппаратом подразумевает цифровую модель местности,
над которой этот аппарат пролетает, иначе просто невозможно позиционирование летательного аппарата в пространстве.
На самом деле необходимость гораздо более прозаична. Любой город, населённый пункт обслуживают несколько независимых служб: водоснабжение,
электроснабжение, связь, газоснабжение, канализация и т. п. Каждая из служб
прокладывает свои коммуникации. Эти коммуникации время от времени ремонтируются, реорганизуются, меняют собственника. Вот тут-то и начинается:
до сих пор не существует единой карты всех городских коммуникаций (и не
только в России). Никакие бумажные карты вас в этом случае не спасут. В общем случае бумажные карты городских коммуникаций строились, но каждой
службой отдельно и независимо от других служб. Другими словами, эти карты
не были согласованы между собой.
Существует ещё и проектирование. Проектирование любого сооружения
предполагает карту местности. С появлением компьютеров проектирование стало
автоматизироваться, что опять-таки потребовало цифровых моделей местности.
Существует такое понятие, как землеустройство, и специальность – землеустроитель. Землеустройство предполагает ведение кадастров местности, которые в свою очередь стали выполняться на компьютерах. В кадастр любой
местности входит карта/план этой самой местности.
Следует заметить, что не появление персонального компьютера привело к
появлению ГИС. ГИС появились в результате потребности адекватно решать определённый круг задач, также как и персональные компьютеры появились как ответ
на потребность обрабатывать информацию и данные непосредственно на рабочем
месте. История ГИС начинается где-то с 1967 г., когда о персональных компьютерах никто и помыслить не мог. Именно потребности в выводе цифровых карт на
печать привели к появлению таких устройств, как графопостроители.
Мы, однако, вернёмся к нашим целям: прежде чем решать, какую ГИС
использовать, надо определить, какие задачи вы решаете, используя карты.
63
Самое простое применение карт – чисто демонстрационное. Причём в
этом случае необходимы именно «бумажные» карты очень крупных форматов,
обычно более формата А0. Такие карты служат демонстрационным материалом
на докладах, презентациях и т. п. Нередко подобные карты вывешивают на
стенки в холлах фирм (территории работы нашей фирмы), в кабинетах начальников служб и т. д. В этом случае фактически карта выполняет функции декоративного панно. Мы привыкли такие материалы называть картами, но на
самом деле это обычные рисунки, картины. Они и выполняют декоративные
функции. На этих картах не решаются обычные задачи: не определяются расстояния, площади. Основная цель этих карт – дать обзор ситуации, показать,
где находится тот или иной объект, выполнить обзор ситуации вокруг объекта.
Но если эти карты – рисунки, то для обработки их на компьютере достаточно любого графического редактора (чаще всего, в этом случае используется
CorelDraw, но это может быть и Photoshop и любой другой графический редактор). Причём схема работы предельно проста: первый экземпляр карты в любом
случае выполняется на бумаге. Затем он сканируется и импортируется в CorelDraw (пусть будет CorelDraw). В CorelDraw результат сканирования редактируется, и результат может быть многократно выведен на цветном принтере.
Принципиально можно и первый экземпляр карты нарисовать в CorelDraw, но
это несколько более трудоёмко, чем первичное изображение на бумаге.
Только что описанная технология существует и даже реально используется. Другой разговор, что результат производства этой технологии – рисунки, а
не карты. Важно понять, что во многих случаях не нужны реальные карты, а
требуются именно подобные рисунки: туристические схемы и планы городов;
картографические материалы в популярную литературу. Даже в серьёзную литературу нередко не требуются карты, а де-факто нужны именно рисунки:
«карта ареалов распространения….»
Таким образом, необходимо ясно определить, чем карта отличается от
рисунка.
Неотъемлемые атрибуты любой карты – масштаб и координаты её углов.
Масштаб показывает, какое реальное расстояние на местности соответствует
одному сантиметру на карте и указывается как 1 : 1 000 000, например. Это означает, что 1 см карты соответствует 10 км на местности. Предельное разрешение бумажной карты считается 0,1 мм. Легко вычислить, что при таком
масштабе это 100 м.
Координаты углов могут быть географическими (широта, долгота) или
плановыми (расстояния от левого нижнего угла карты по X и по Y). Существу64
ет стандартный ряд карт стандартных масштабов и размеров листов. Один лист
миллионки (масштаб 1 : 1 000 000) имеет размеры 4° по широте (вертикали) и
6° по долготе (горизонтали). Координаты углов по-другому можно назвать привязкой карты. Для привязки карты необходимо не менее трёх точек, не лежащих на одной прямой (на самом деле необходимо шесть точек).
К рисунку же не предъявляются требования по масштабу и привязке.
Карта вся целиком состоит из условных знаков, причём состав и вид условных знаков зависит от масштаба карты. Даже «цвет фона» на карте что-то означает.
Например, на физической карте цветом показывается высота местности от уровня
моря. Важно, что в общем случае любой условный знак имеет координатную привязку. То есть карту можно рассмотреть как множество взаимоувязанных между
собой объектов, имеющих координатную привязку. Взаимоувязка и взаиморасположение объектов между собой называются топологией.
Рисунок в общем случае не имеет выделенных объектов. Вся поверхность
рисунка неразделима, хотя человек и может выделять на рисунке некоторые
объекты. То есть рисунок не имеет топологии.
Таким образом, для того чтобы сканированный лист бумажной карты стал
картой, а не остался рисунком, необходимо восстановить топологию карты, выделить объекты карты, выполнить координатную привязку любого выделенного
объекта и задать реальные атрибуты объектов.
Кроме того, надо обеспечить масштабирование карты. Это означает, что в
определённых пределах карта может растягиваться или сжиматься. Часть объектов карты масштабируется точно так же, как и весь лист, но часть объектов
карты не масштабируется, сохраняя свою координатную привязку.
Безусловно, ни один графический редактор не может обеспечить выполнение перечисленных требований. Графические редакторы не для этого предназначены. Они не могут построить топологию карты; обеспечить правильное
масштабирование карты.
С масштабированием связана ещё одна проблема. Пусть у нас есть на некоторую территорию лист масштаба 1 : 1 000 000 (миллионка; в 1 см – 10 км).
Как мы уже заметили, 0,1 мм при таком масштабе на местности соответствует
100 м. Значит, объекты размером менее 100 м на такой карте невозможно отобразить. Сечение горизонталей при таких масштабах обычно 50 м (расстояние
между горизонталями по вертикали). Представим, что мы растянули такой лист
в пять раз. Вроде бы теперь у нас лист масштаба 1 : 200 000. Беда в том, что при
простом растягивании листа у нас на карте не появляется объектов, которые
могут быть отображены при масштабе 1 : 200 000. Сечение горизонталей не из65
менится и промежуточных горизонталей не появится. На листе масштаба
1 : 1 000 000 просто нет объектов, отображаемых при масштабе 1 : 200 000.
Обращаем ваше внимание на то, что при переходе в более крупный масштаб появляются новые объекты, меняются очертания уже проявленных объектов (например горизонталей), меняется характер объектов. Возьмём реку
шириной 50 м. На листе миллионного масштаба такая речка отображается тонкой линией и представляет собой внемасштабный объект. Но на листе масштаба 1 : 200 000, где 0,1 мм соответствует 20 м, такая речка будет отображена
двумя линиями с расстоянием между ними 2,5 мм. Раньше речка отображалась
линией (дугой), а теперь речка стала площадным объектом (полигоном).
В свете последней проблемы в России существует стандартный ряд масштабов карт: 1 : 1 000 000 (миллионка), 1 : 500 000 (пятисотка), 1 : 200 000
(двухсотка), 1 : 100 000 (сотка), 1 : 50 000 (пятидесятитысячный), 1 : 25 000
(двадцатипятитысячный), 1 : 10 000 (десятитысячный). Всё, что крупнее (от
масштаба 1 : 5 000), вообще говоря, относится ни к картам, а к планам, так как
может быть построено без учёта кривизны земной поверхности. Съёмкой масштаба 1 : 200 000 покрыта вся территория Советского Союза. Листы более
крупных масштабов существуют только на часть территорий. Более того, в России до сих пор листы пятидесятитысячного масштаба и крупнее считаются секретными, а сотка – конфиденциальным материалом.
Из этого краткого обзора проблем электронных карт видно, что никакой
графический редактор не может их решить. Откуда же появились все эти проблемы? В конце концов, мы ведь ничего не сделали – только захотели перевести бумажный лист карты в электронный (или вульгарно – ввести карту в компьютер)?
На самом деле, мы неявно предполагали, что после «ввода карты в компьютер»
мы сможем решать на компьютере множество задач, обычно решаемых на карте:
построить профиль местности по заданной линии; определить площадь затопления при подъёме уровня воды на два метра и т. д. и т. п. Однако решение этого
обычного круга задач требует не просто сканированного листа карты, а цифровой
модели местности (цифровая модель земной поверхности).
Произнеся эти магические слова, мы понимаем, что для построения, ведения, обработки, использования цифровой модели местности требуются специальные программные средства.
Следует понимать, что не всякая карта имеет под собой в качестве основы
цифровую модель местности. Политические карты, карты административного
деления, карты фактического материала и т. п. достаточно далеки от цифровых
моделей. Тем не менее эти карты могут быть легко построены на уже имею66
щейся цифровой модели. То есть, если мы имеем цифровую модель территории, то можем построить любую карту. С другой стороны, цифровая модель
местности может использоваться не только с целью построения карт.
С этой точки зрения ГИС можно рассматривать как программное средство
отображения цифровой модели местности на плоскость и как средство управления этими отображениями. Такой подход означает, что ГИС включает в себя
цифровую модель местности.
Исторически, однако, ГИС появились из нашего простого желания ввести
карту в компьютер. С этой точки зрения ГИС определяют как «система сбора,
хранения, анализа и представления координатно-привязанной информации».
Это определение не предполагает какого-либо структурирования информации.
Кроме того, обычно ГИС хранят данные, а не информацию.
Работы по вводу карты в компьютер начались сразу же, как появились
ЭВМ (электронно-вычислительные машины). Тогда не было устройств вывода
графики, и карта выводилась на печатающем устройстве буквами и символами.
См. рис. 1, заимствовано из [1]. Реальные результаты по цифровым картам появились в конце шестидесятых годов в США, когда образовалась первая ГИСкомпания: компания ESRI (www.esri.com) была основана в 1969 г. Джеком и
Лаурой Данжермонд (Jack и Laura Dangermond). Первый коммерческий продукт
ESRI – ARC/INFO вышел в 1981 г. В то же время основалась и начала работать
компания Intergraph (основана в 1969 г.), выпустившая свой первый коммерческий продукт в 1974 г. Интересно, что эти две крупнейшие в сфере ГИС компании первоначально занимались отнюдь не ГИС.
В 1986 г. основана компания MapInfoCorporation, выпускающая одну из
распространённых ГИС – MapInfo.
В Европе успехи ГИС менее впечатляющи, хотя существуют и европейские ГИС.
В России, в связи с особенностями российской картографии, существует
множество российских ГИС. Одна из наиболее интересных ГИС Института географии – «Географ». Тем не менее, широко используются ГИС MapInfo и ArcView –
результат развития ГИС ArcInfo и собственно ARC/INFO.
Какую бы ГИС вы не использовали, существуют особенности, в равной мере присущие всем ГИС. Цель этой главы – рассмотреть эти особенности. Как вы могли заметить, рассмотрение общих черт ГИС предполагает
определённые знания в картографии и определённые знания в подходах к
построению электронных карт. Мы постарались показать эти знания, хотя
бы и поверхностно.
67
Рисунок 1 – Одна из первых карт, полученных системой SYMAP
Пример взят из [1], «карта» выведена на АЦПУ (алфавитно-цифровое печатающее
устройство). Набор символов АЦПУ состоял из букв латинского и национального
алфавитов, цифр и знаков препинаний. Символов псевдографики не было.
Рисовать это устройство не могло. Карта растровая
В среднем обычный пользователь воспринимает карту интегрально: целиком, не разделяя карту на объекты. Для компьютера такой подход невозможен.
Вводя карту в компьютер, мы должны выполнить разделение карты на объекты.
Мы должны выделить на карте объекты, так как компьютер не умеет выделять
объекты. С другой стороны, мы должны выделить объекты так, чтобы сделать
поиск близлежащих объектов максимально быстрым. Необходимость быстрого
поиска предъявляет жёсткие требования к внутренним, бинарным структурам
цифровых карт.
Основы для поиска объектов на карте две: имена объектов (групп объектов) и координаты. Поиск по именам просто реализуется в БД реляционным
подходом. Координаты, однако, весьма неудобно хранить в реляционных БД.
68
Поэтому для хранения координатно-привязанных данных используются подходы, отличные от реляционного. Таким образом, для хранения данных в ГИС
используются не банки данных.
Это ещё раз показывает, что БД не тождественны информационным системам. Подчеркнём, что любой объект карты координатно привязан, почему в
первую очередь для поиска объектов в ГИС реализуется поиск по координатам.
К одной точке на карте может быть привязано множество объектов, которые к тому же могут иметь одинаковые имена. Чтобы хоть как-то оптимизировать поиск объектов, карта в ГИС делится на слои. Слой – совокупность
логически однородных данных/объектов или множество объектов, входящих в
одну группу. Например, слой «растительность», «рельеф» (точнее, горизонтали
рельефа), «гидрография», «инфраструктура» и т. д. Нередко надписи на карте
выделяют в слой «надписи», что позволяет гибко управлять надписями на карте. Однако это зависит как от конкретной ГИС, так и от автора карты (в общем
случае надписи удобно привязывать к объектам). Деление карты на слои не
регламентировано. Пользователь сам может завести собственные слои на карте,
всё зависит от целей построения карты. Безусловно, если строится группа «одинаковых» карт, то деление этих карт на слои должно быть единообразным.
Исторически сложилось так, что первые электронные карты были растровыми.
Лист бумажной карты, или фотография земной поверхности, или космический снимок сканировались, и результат сканирования вводился в компьютер. Принципиально ГИС может просто отображать на экране растровый
рисунок. Слой, содержащий растровый рисунок, называется растровым. Растровый слой пользователь может увеличивать/уменьшать или передвигать его
по экрану, отображая тот или иной участок слоя на экране. Изменять растровый
слой нельзя. При таком подходе растровый слой играет чисто иллюстративные
функции. Обычно пользователю разрешается создать над растровым слоем так
называемый косметический слой, где пользователь может помещать любые
свои рисунки, надписи, заметки и т. п. В зависимости от ГИС косметических
слоёв может быть либо только один, либо произвольное число.
Обратите внимание, что пока ГИС полностью идентична графическому
редактору. Такой подход не предлагает функций, отсутствующих в графических редакторах, нет координатной системы, хотя бы напоминающей географическую, на растровой карте невозможно решать общепринятые в картографии
задачи. Рисунок становится картой, как только на нём задаются координаты:
растр координатно привязывается.
69
Большинство современных ГИС (MapInfo, например) при вводе растра
предлагают выполнить координатную привязку растра. В этом случае пользователь должен указать на растре не менее трёх точек, не лежащих на одной прямой (желательно больше), и задать их координаты и проекцию. ГИС
пересчитывает (деформирует) растр согласно этим координатам. Теперь любая
точка растра имеет координаты согласно заданной проекции. Слои карты, не
имеющие координатной системы, приобретают координатную систему, заданную пользователем. Слои карты, имеющие координатную систему, согласуются
по координатным системам (передвигаются относительно друг друга). Пользователь должен понимать, что невозможно согласовать между собой слои с разными проекциями. В этом случае один из слоёв становится невидимым. Слой
может пропасть из видимости и в случае обычного согласования, когда слои
отображают неперекрывающиеся между собой области земной поверхности.
Это можно обнаружить при сильном уменьшении слоя, тогда в «разных углах
экрана» будут обнаружены объекты слоёв.
Возможности чисто растровых ГИС ограничены, хотя в своё время это
было значительным достижением. Почти все современные ГИС векторные
(растрово-векторные).
В векторной ГИС пользователь после ввода растра может его оцифровать.
Оцифровку растра можно сделать как после, так и до задания системы координат.
(зависит от ГИС; в российской ГИС «Географ» допустимо, но обычно строятся все
слои, а затем они все переводятся в одну систему координат). При оцифровке пользователь создаёт векторный слой и, работая в этом векторном слое, обводит, повторяет контуры объектов, видимые на растре. Для этого в ГИС существуют
специальные функции (набор функций зависит от ГИС): начать дугу, продолжить
дугу, завершить дугу, присоединиться в точке дуги, замкнуть дугу и т. д. Дуга – некоторая ломаная построенная в слое. Дугами отображаются любые линейные объекты растра. Кроме того, существует возможность нанести точки, а замкнутые дуги
преобразовать в полигоны – площадные объекты. Желательно разделить слои по
объектам ГИС: один слой может содержать либо только точки, либо только дуги,
либо только полигоны. Таким образом, единый с точки зрения пользователя слой
реально в ГИС может состоять из трёх и более слоёв. Например «рельеф»: точечный слой – отметки высот; слой дуг – горизонтали; полигональный слой – окраска
высот; косметический слой – условно отображаемые детали рельефа (обрывы,
карст и т. п.); слой дуг – промежуточные горизонтали.
Отсюда видно, что современная электронная карта представляет собой
набор слоёв, накладывающихся друг на друга. Порядок слоёв имеет значение.
70
Как правило, ГИС отображают слои снизу вверх: первым рисуется на экране
самый нижний слой, затем тот, который над ним. Каждый слой при отображении рисуется независимо от предыдущего. Тогда от нижнего слоя останется
только то, что не затрётся более высоко расположенными слоями. Пользователь
имеет возможность управлять слоями, меняя их порядок. Кроме того, любой
слой можно сделать невидимым, тогда он не будет отображаться ни на экране,
ни на принтере.
ГИС автоматически предоставляет набор таких функций, как «расстояние
между двумя точками», «площадь полигона», «длина дуги» и множество других.
Но, что очень важно, любому объекту пользователь может сопоставить,
задать набор атрибутов, которые могут отображаться совместно с объектом.
Пользователь имеет возможность управлять отображением атрибутов. Вопрос,
какие атрибуты задавать, решает пользователь, например для горизонталей чаще всего задаются: идентификатор, высота, минимальный и максимальный
масштабы отображения. Атрибуты, задаваемые пользователем, хранятся в базе
данных ГИС.
Сегодня большинство ГИС имеют возможность соединения с банками
данных (Oracle, например). Имеется возможность синхронизировать идентификаторы объектов ГИС и объектов БД. Тогда пользователь имеет возможность
отображать в ГИС не только данные по объекту из базы ГИС, но и данные по
этому объекту из БД. Обратное (поиск объекта в ГИС по заданию БД) требует
серьёзной настройки как в БД, так и в ГИС. Тем не менее множество банков
данных имеют сегодня ГИС, составляющую собственную систему ГИС. То есть
пользователь имеет возможность в БД (Oracle) хранить карты и работать с ними, решая обычные задачи ГИС.
Надо заметить, что каждая ГИС хранит карты в своём собственном формате или своей собственной файловой системе. Стандартная возникающая при
этом задача – передать карту из одной ГИС в другую. Тут возможны несколько
ситуаций. Некоторые ГИС могут непосредственно читать форматы некоторых
других ГИС и напрямую работать с файлами другой ГИС. Впрочем, чаще всего
при этом ГИС работает значительно медленнее или имеет ограничения по
функциональности.
Лучше всего выполнить конвертирование файлов: перевод файлов из одного формата в другой. Опять-таки часть ГИС умеет конвертировать некоторые
форматы других ГИС.
Многие ГИС имеют так называемый обменный формат данных. Данные
ГИС выводятся в файл в открытом и документированном формате. Чаще всего
71
это обычный текстовый файл. Если используемая ГИС не умеет «читать» обменный формат другой ГИС, то рекомендуется пригласить программиста, который, как правило, может написать программу конвертирования форматов или
перевести непонимаемый формат в понимаемый.
Тем не менее, в общем виде задача конвертирования данных из одной
ГИС в другую не решена. Дело не только в разных форматах файлов. Основная
проблема – в семантике карты. Используя ту или иную ГИС, вы неявным образом используете идеи и соглашения создателей используемой ГИС. Существует
стандартный список объектов, но этот список в каждой ГИС свой. Существует
стандартный кодификатор объектов ГИС. Опять-таки этот кодификатор действует в пределах страны поставщика ГИС, а иногда разработчик ГИС использует
и свой собственный кодификатор. Это просто отражает разные подходы в картографии России, Западной Европы и США. Вы не сможете по умолчанию конвертировать данные из одной ГИС в другую просто потому, что в одной из ГИС
может не существовать передаваемых объектов.
Если мы пишем о невозможности конвертации, то это означает, что невозможно автоматическое конвертирование данных. «Ручное» конвертирование
чаще всего возможно, но представьте, что вам предстоит вручную построить
несколько сот или тысяч передаваемых объектов. В любом случае в этой ситуации рекомендуется привлечь программиста, часто программист может решить
возникающие проблемы.
Выполнив этот сверхкраткий обзор структуры ГИС, мы должны задуматься. Мы явно не рассматривали никакой иерархии, а как мы помним, это неотъемлемая часть любой информационной системы. Мы не рассматривали
запросы, на которые отвечают ГИС. На какие запросы может отвечать ГИС, мы
поймём, прочитав ниже несколько примеров использования ГИС. С иерархией
несколько сложнее.
На самом деле ГИС глубоко иерархичны. В основе иерархии карт лежит
стандартная идея: сверху-вниз.
Картографический фонд любой страны строится по строгому иерархическому правилу: обзорная карта всей страны и её место на земном шаре; более
подробные различные карты всей страны; карты деления страны на подтерритории; карты подтерриторий и т. д. Обратите внимание, что обзор территории,
полностью находящейся на листе, выполняется очень быстро, но обзор территории, находящейся на границе листов, выполнить сложнее (приходится привлекать сразу два соседних листа), ещё сложнее выполнить обзор территории,
попадающей на перекрестие листов (привлекается не менее четырёх листов).
72
Это не что иное как поиск от корня дерева, по двум соседним веткам дерева,
одновременно по четырём веткам дерева. Иерархия карт легко отображается
деревом. Любой лист карты состоит из множества других иерархий: река, притоки первого порядка, притоки второго порядка и т. д. Фактически, строение
тематического слоя также иерархично: полигоны – объекты, отображаемые в
масштабе карты, дуги – линейные внемасштабные объекты, точки – линейные
пропадающие объекты.
Таким образом, ГИС можно рассмотреть как систему управления сложными неявными иерархиями. Неявное отображение иерархии даже построение
географических координат: градусы, минуты, секунды.
Кстати, о системах координат. Первые ГИС в США нередко разрабатывались по заказу почтового ведомства. Но почтовые ведомства имеют дела с почтовыми адресами. Поэтому в некоторых ГИС до сих пор невозможно ввести
систему географических или плановых координат. Объекты этих ГИС координируются по почтовым адресам. Почтовые адреса обладают явной иерархией:
страна, область, район, населённый пункт, улица, дом, квартира.
Существует такая система, как AutoCad. Родилась эта система как ПО,
автоматизирующее машиностроительное черчение. В процессе развития
AutoCad стал широко использоваться в проектировании в строительном черчении. При проектировании важна привязка проектируемого объекта на местности. Как правило, при этом используются плановые координаты. Область
применений AutoCad постепенно расширялась, и пользователи AutoCad настаивали на разработке ГИС, встроенной в AutoCad. Примерно с AutoCad 14
фирма Autodesk разработала собственную ГИС, но координатная система там
только плановая.
Таким образом, выбирая ГИС, поинтересуйтесь историей, возможностями
ГИС и основной областью применения.
Область применения ГИС чрезвычайно широка. Нельзя объять необъятное. Мы кратко обрисуем основные и яркие применения ГИС.
Прежде всего, простое цифровое картирование территорий. Оказывается,
даже простое цифровое картирование территории может принести немалые
прибыли и выгоды как частным, так и государственным фирмам. Не следует
забывать, что за использование территорий теперь предприятия платят налоги,
пропорциональные используемым площадям. Одна из тюменских нефтяных
компаний построила цифровые карты территорий, на которых работала. Разработали программное обеспечение, вычисляющее выплачиваемые налоги на основе построенных цифровых карт. Так вот, объём выплачиваемых налогов
73
снизился на 15%, что с лихвой окупило оцифровку территорий работы. Это без
учёта дополнительного использования цифровых карт.
Цифровое картирование выявляет массу неточностей и недосказанностей
в правовых актах.
Вроде бы простая задача: построение цифровой карты районирования
территории. Такую карту и начали строить в Коми ГИС-центре и столкнулись с
неожиданной проблемой: как проводить границу? Учтите, что границы задаются на законодательном уровне и их не так просто передвинуть. В законе сказано: «…граница проходит по железной дороге…» Но в каком районе находится
железная дорога?
При оцифровке выявляются ошибки, а иногда и сознательные «накладки».
Лесничества Республики Коми начали оцифровывать свои подведомственные территории. Бюджет лесничества существенно зависит от обслуживаемой площади. Вот тут-то и выяснилось, что заявляемые площади не просто
завышены, но и часто перекрываются – часть площадей заявлены как обслуживаемые двумя соседними лесничествами.
ГИС стали незаменимы при ведении государственных, региональных и
местных кадастров. Кадастр – список, реестр чего-либо или кого-либо, ведущийся с определённой целью. Так вот, «первые сведения о кадастре в России
относятся к X в. и связаны со сбором поземельного налога и оценкой земель»
[6]. Уже тогда производился обмер и учёт земель, которые, в свою очередь, делились на добрую, среднюю и худую. Тогда кадастр составлялся на основе натурных измерений. Сегодня, «в рамках Федерального агентства геодезии и
картографии определяются границы субъектов, населённых пунктов посредством ведения федерального и региональных картографогеодезических фондов
РФ, Государственного каталога географических названий, а также географических информационных систем (ГИС) федерального и регионального назначения» [8]. Любой объект недвижимости должен быть координатно привязан и
внесён в списки системы технического учёта сооружений. Отсюда видно, что
кадастр – это, прежде всего, карта/схема/план учитываемого объекта, причём
учитываемый объект обязан иметь координатную привязку. Каждый объект
имеет свой набор атрибутов. Выполняя это краткое описание кадастра, мы фактически описываем требования к некой ГИС.
Какие существуют кадастры, показано на рис. 2.
Чтобы такая система кадастров была согласована между собой и можно
было просто обмениваться данными, требуется, чтобы все ГИС, используемые
под кадастр, могли иметь понимаемые друг другом обменные форматы, а кар74
ты, построенные в любой из этих ГИС, должны быть в единой координатной
системе и проекции.
Кроме того, такая система кадастров требует иерархической структуры
предприятий.
Рисунок 2 – Основные виды кадастров РФ [8]
Федеральное агентство геодезии и картографии ведёт кадастры верхних
уровней, а его региональные отделения или их аналоги ведут кадастры областных и республиканских уровней и т. д. Кадастры реально заполняются и ведутся на местах, результаты передаются на верхний уровень.
Именно с появлением ГИС такие карты, как «карта автомобильных дорог», «карта г. Москвы», перестали быть дефицитом.
Несколько неожиданно использование ГИС в риэлторских агентствах (сведения по г. Москва). Проблема в том, что стоимость жилплощади зависит от множества таких факторов, как удобство подъезда, экология территории, наличие
обслуживающих предприятий и т. д. Риэлторские агентства стали использовать
ГИС карты Москвы, чтобы клиент мог в любой момент посмотреть как и где расположена приобретаемая площадь. Выполнялось фотографирование здания, в ко75
тором находилась предлагаемая площадь, фотографирование окружающего пространства. Фотографии «привязывались» к точкам съёмки, и клиент в любой момент мог посмотреть окрестности интересующей его площади. Дополнялось это
нередко и видеосъёмкой. Фактически, клиент мог виртуально совершить прогулку
близ интересуемой его площади. Выезжать на место с целью осмотра стало не нужно. Вся эта работа сопровождалась программным обеспечением, которое быстро
вычисляло стоимость 1 м2. На основе задаваемых критериев мог осуществляться
поиск в базе предлагаемых площадей. Таким образом, клиенту сразу предоставлялся определённый выбор: не надо было «вручную лазить по базе».
Очень эффективно использование ГИС в экологии. Нефтяная компания
выполнила аэрофотосъёмку территорий, на которых работала, и участков с нефтепроводами, по которым подключалась к магистральным нефтепроводам.
Снимки были оцифрованы, были построены ГИС-карты необходимых территорий. Это стало эталонными снимками. Потом случилось ЧП – прорыв нефтепровода и разлив нефти. Предприятие не стало тратить время и силы на
переговоры с экологами о величине нанесённого ущерба. Была выполнена аэрофотосъёмка участков разлива нефти. Участки разлива нефти легко отбивались на снимках. При совмещении новых фотоснимков с эталонными легко
определялась площадь разлива, а значит, и величина нанесённого ущерба.
В военном деле. Картирование некоторой погранзаставы на Северном Кавказе с последующей постройкой её трёхмерной модели выявило наиболее удобные
пути нападения на заставу, оптимальных точек её обстрела и пути отхода нападающих. Надо ли говорить, что нападения на эту заставу прекратились.
Использование ГЛОНАСС (GPS) явно предполагает ГИС-технологии. Вопервых, многие ГИС-карты могут быть непосредственно «закачаны» в прибор.
Во-вторых, прибор даёт только координаты местонахождения используемой
техники (чаще всего это автомобиль). Где и как реально находится техника,
можно видеть только на ГИС-карте.
Способы и примеры использования ГИС можно продолжать. Например,
очень интересна технология построения геологических карт, предлагаемая
ВСЕГЕИ в ГИС ArcView.
В завершении главы следует заметить, что ГИС, как любая информационная система, могут быть универсальными и специализированными. Соответственно этому ГИС могут отвечать на любые запросы, связанные с
данными, касающимися объектов, хранимых в ГИС. Большинство современных ГИС могут обрабатывать SQL-запросы, что вроде бы ставит их в один ряд
с информационными системами, в основе которых лежит поиск по тексту. В
76
принципе, это правильно, но ГИС очень хорошо и быстро выполняют поиск и
обработку координатно-привязанных данных. Это их основное назначение.
Выполнение SQL-запросов всё-таки вторичная функций ГИС, почему работы,
связанные с внутренней базой данных, выполняются более медленно и не так
хорошо, как в БД. Основная незадача: внутренние базы данных ГИС не рассчитаны на значительные объёмы данных. Безусловно, такая система, как Intergraph, выполнена достаточно ровно: прекрасный банк данных,
рассчитанный на большие объёмы данных, и ГИС, интегрированная с этим
БД. Но и стоимость этой системы немаленькая.
В России большое распространение получили ГИС ARC/INFO и её усечённый вариант ArcView. Эти ГИС прекрасно справляются с интегрированием
большого числа карт. Однако наибольшее распространение в регионах России
получила скромная, рассчитанная на средние объёмы карта MapInfo, по всей
видимости, в связи с её относительной дешевизной. Всё большее распространение стали получать ГИС-приложения, встроенные в Oracle и другие БД.
Не следует сбрасывать со счетов и российские разработки – наши ГИС
нередко не только не хуже зарубежных, но ещё и дешевле. Одна из лучших
российских ГИС – Географ, например – имеет гораздо более дружественный
интерфейс, чем ГИС MapInfo и быстрее MapInfo обрабатывает запросы.
Из последних замечаний становится ясно, что использовать ГИС как чисто информационную систему нежелательно. Каждый инструмент хорош на своём месте. ГИС прекрасно справляется с задачами типа «показать на карте все
объекты обладающие следующими свойствами…». Причём результат выполнения этого запроса может быть отображён на карте, а может быть визуализирован в таблице на экране. Какую форму лучше использовать, зависит как от
ваших предпочтений, так и от ваших целей.
Однако наиболее интересные использования ГИС выявляются тогда, когда вы используете карту не как плоскую проекцию земной поверхности, а как
цифровую модель местности. Тогда и появляются возможности решения многих типичных задач:
1) построить линии водоразделов;
2) построить карту стоков водных потоков;
3) вычислить площадь затопления при подъёме воды на N метров;
4) построить профиль местности по заданной линии.
Список задач можно продолжать. Большинство ГИС, тем не менее, универсальны. Значит, для решения многих задач следует привлекать программиста, так как решение большинства задач в универсальной ГИС требует
предварительного программирования.
77
Глава 5. Экспертные системы
Как уже отмечалось выше, нет простых алгоритмов обработки информации. Не ясно, как человек обрабатывает информацию. Развитие информационных систем поставило этот вопрос очень остро. Существующие ИС безнадёжно
тупы. Они не различают «коса – девичья краса» и «коса – сельскохозяйственный инструмент». Простые ИС отвечают на простые запросы типа «что это?»,
«где это?». Уже вопрос «Когда это случилось?» совсем не простой для ИС. А
вопрос «Как сделать ….?» Практически неразрешим для ИС. То есть существующие ИС не обрабатывают информацию, они её только хранят и предоставляют по запросу, как правило, одним неделимым блоком. В этом смысле ИС
недалеко ушли от своей программной основы – банков данных.
Следует задуматься, почему нет простых алгоритмов обработки информации. Если мы вспомним пять свойств алгоритмов, то сразу появляется ответ
на вопрос. Алгоритм обязательно конечен и должен приводить к чётко определённой цели. Если цель не определена, то и нет алгоритма её достижения. Это
сразу ставит под сомнения возможности универсальных ИС, по крайней мере
на раннем этапе развития.
Отметим, что мы незаметно сменили тип запроса. Мы хотим получить ответ
на нечётко определённый запрос. С другой стороны, запрос может быть чётко определён, но нечётко определено пространство поиска или поисковые признаки. Разумеется, все три неопределённости одновременно могут иметь место. Ситуация
приближается к русской народной сказке: «Поди туда – не знаю куда, принеси то –
не знаю что!» Приведённая аналогия показывает, что человеку издавна приходилось принимать решения в условиях таких неопределённостей. Опять-таки из сказки – человек, в общем, справлялся с подобной задачей.
В отличие от компьютера, поведение человека недетерминировано – строго
не определено. Отсюда видно, что для ответа на нечётко определённый запрос в условиях нечётко определённого пространства мы должны поведение компьютера
как можно более приблизить к поведению человека. Область моделирования мыслительной деятельности человека на компьютере называется искусственным интеллектом (ИИ). (Уже в названии области содержится существенная
неопределённость: до сих пор никто не знает, что такое интеллект?)
Задача создания искусственного интеллекта не решена. Более того, никто
не знает, имеет ли эта задача решение. Тем не менее, в рамках создания ИИ получены очень интересные результаты, причём именно при попытках дать ответ
на нечёткий запрос в плохо определённых условиях. Плохо определённые ус78
ловия не означают, что пространство поиска или критерии поиска нечётко определены. Пространство поиска может быть чрезвычайно большим (бесконечным). Количество критериев поиска может быть громадным. С одной стороны,
возникает вопрос: с какой точки пространства поиска начинать, с другой стороны – в какой последовательности использовать критерии поиска или как их
ранжировать по порядку важности.
Как называется человек, успешно работающий в вышеуказанных условиях? Такой человек называется экспертом. Следовательно, компьютер должен
моделировать поведение эксперта при принятии решения.
Программная среда, моделирующая поведение эксперта при принятии
решения, называется экспертной системой.
С другой стороны, мы можем определить экспертную систему как программную среду, отвечающую на нечётко поставленный запрос в условиях
плохо определённых пространства и критериев поиска. Мы определили экспертную систему как программную среду, однако прообраз экспертных систем, а я считаю – первая экспертная система, был механическим (более
подробно см. ниже).
Определение экспертной системы как системы, моделирующей поведение
эксперта при принятии решения, более понятно неспециалисту, но слабо помогает в определении путей подхода к созданию конкретной экспертной системы
(ЭС). Тем не менее, даже это определение может кое-что дать. Чем отличается
эксперт от новичка? Прежде всего, объёмом знаний в экспертируемой области.
Отсюда: область работы ЭС должна быть достаточно строго очерчена. Кроме
того, нам необходимо хранить знания, а не информацию.
Область работы ЭС должна быть достаточно строго очерчена означает,
что не может быть универсальных ЭС, как не бывает универсальных экспертов.
Чаще всего, область работы ЭС определяется как «медицина – диагностика
внутренних болезней» или «геология – поиск золоторудных месторождений».
Обратите внимание, что мы определили не только область работы ЭС, но и
цель работы ЭС. Создание ЭС, не имеющей перед собой чётко поставленных
целей, невозможно. Почему? Да потому, что компьютер, нравится нам это или
нет, работает по предварительно заданному алгоритму, а у алгоритма должна
быть определена конечная цель! (Такое рассмотрение работы компьютера ставит под сомнение создание ИИ, если природный интеллект неалгоритмичен.)
Указание цели ЭС приводит к очень неприятной проблеме: узкой целенаправленности ЭС, занимающаяся поиском золоторудных месторождений, легко
пропустит железорудное месторождение. Создание же ЭС типа «геология – поиск
79
месторождений» упирается во множество других проблем. Основные – объём
обрабатываемой информации и отсутствие единой методики решения широко
поставленной проблемы.
Необходимость хранения знаний, а не информации требует определения
термина «знание». Мы уже знаем, чем информация отличается от данных. Там
же мы определили «знание» как минимальный объём знаний, необходимый для
идентификации объекта. В данном контексте такое определение неконструктивно, так как требует умения определения объёма информации и умения идентификации объекта. Что такое идентифицировать объект? В большинстве
случаев это и есть цель работы ЭС (найти нефтяное месторождение – это и есть
идентифицировать месторождение в пространстве поисков). В нашем случае
более подходит следующее: «знание» – определённым образом структурированная информация.
Интуитивно ясно, что человек при приобретении, запоминании информации каким-то образом её структурирует. Отметим, что само приобретение знаний уже структурировано: при обучении человек получает в каждый отдельный
момент информацию из вполне определённой области – физики, географии и
т. д., даже из вполне определённой подобласти области (ядерная физика; физическая география и т. п.). Безусловно, информация перед запоминанием её както упорядочивается.
Из вышесказанного следует, что ЭС должны уметь приобретать новые
знания, обучаться в процессе работы. Кроме того, процесс запоминания знаний
должен быть построен специальным образом: основная трудность – выделение
знаний из потока информации, предлагаемой экспертом.
Структуризацией информации занимаются разработчики ЭС (чаще всего
программисты или специалисты, знакомые с программированием). Сегодня известно две основные схемы структуризации информации: семантические сети и
фреймы. Фреймы идеально подходят для хранения в реляционных БД, поскольку конкретный фрейм – та же таблица. Фактически, фрейм просто другое наименование таблицы. Разница в обработке: БД и ЭС несколько по-разному
обрабатывают таблицы/фреймы. Семантические сети – структура, состоящая из
двух элементов: узлов и связей. Информация хранится в узлах, а связи отражают зависимость информации или блока информации от другой информации.
Реально семантические сети – непосредственное отображение иерархического
подхода, почему семантические сети прекрасно отображаются в иерархических
БД. Связь соответствует операции включения или операции следования. В
принципе, связь может отображать любую бинарную операцию.
80
Более важно, что информация, хранимая в базах данных ЭС, делится на три
больших блока: собственно информация, необходимая для решения задачи, или
факты; правила использования фактов и вывода новых знаний (правила продукции); задание управляющей структуры. При самом простом подходе: управляющая структура выбирает случайным образом правило и применяет его к
исходным фактам. В результате получаются либо факты, к которым снова применяется случайное правило, либо управляющая структура переходит к другому
правилу, переход к которому определился только что полученным результатом.
При таком подходе правила могут быть расположены в любой последовательности. В любой момент можно добавить или удалить правило. Однако тогда правила должны быть независимы друг от друга, что при большом количестве правил
чрезвычайно трудно добиться. Кроме того, неуправляемый поиск правил приводит к резкому увеличению времени решения задачи.
Устранение только что названных проблем перекладывается на управляющую структуру. Чаще всего правила сами строятся в виде семантической
сети, а управляющая структура следует по этой сети. Другими словами, мы переносим некоторую часть декларативных знаний в управляющую структуру,
что приводит в зависимости управляющей структуры от предметной области.
С декларативными знаниями или фактами (правила, вообще говоря, также
декларативные знания) тоже не всё просто. Основной объём информации хранится в текстовом виде. Это приводит в необходимости умения обрабатывать
текстовую информацию и, в самом общем случае, к необходимости понимания
человеческого языка. (Между прочим, структура английского языка проще
структуры русского. Значит, создать систему понимания английского языка
проще, чем систему понимания русского.) Обычно выделяют ограниченное
подмножество языка и строят систему распознавания этого подмножества.
С другой стороны, факты, используемые при выводах, должны быть измеримы. Но чаще всего они «измеряются» качественными мерками. Молодой
человек – сколько ему лет? Высокий мужчина – какого роста? В США, Китае,
Европе? Везде на этот вопрос будет свой ответ. Возникает задачка отображения
качественной шкалы на числовую, что принципиально не так трудно сделать.
Но одновременно возникает вопрос принадлежности некоторого объекта к некоторому множеству. Строгая бинарная логика здесь не подходит. Мы имеем
высокую женщину и мужчину среднего роста. Кто выше? С некоторой вероятностью высокая женщина всё-таки может оказаться выше мужчины среднего
роста. То есть принадлежность «высокой женщины» к множеству «женщин,
рост которых превышает средний рост мужчины», определяется только с неко81
торой вероятностью. Отсюда видно, что принадлежность объекта к множеству
должна определяться вероятностью. Таким образом, к рассуждениям, проводимым в ЭС, применима нечёткая логика Лотфи Заде.
Как показала практика, ЭС как программная среда с пустой базой данных
никому не нужна (многие первые ЭС так и строились. В большинстве случаев
пустая оболочка так и оставалась пустой). Фактически, ЭС как пустая оболочка –
неотлаженная ЭС. Всё дело в том, что процесс вывода или получения решения
должен быть отлажен и оптимизирован на реальной информации. В случае отсутствия информации управляющая структура ЭС не отлажена, так как не ясно,
какие декларативные знания включить в управляющую структуру, а какие оставить в базе данных. Следовательно, базу данных ЭС необходимо заполнить
ещё до отладки ЭС.
Однако процесс ввода знаний в базу данных ЭС совсем не прост. Эксперт
обладает знаниями, но часто не может адекватно передать их в базу знаний. Вопервых, он не представляет (чаще всего) структуры хранения знаний. Вовторых, самое большее, что может сделать эксперт для ЭС, – повторить свои
рассуждения. Тогда выделение знаний из рассуждений эксперта должен выполнить специалист, который представляет, как работает разрабатываемая ЭС и
знаком со структурой хранения знаний. Такой специалист называется инженером по знаниям, а технологии извлечения, хранения и использование знаний –
инженерией знаний. Собственно технологий извлечения знаний достаточно
много. В [11] перечисляются следующие технологии: анализ текстов, диалоги,
экспертные игры, лекции, дискуссии, интервью, наблюдения и другие.
В последнее время технологии знаний стали применяться к корпоративным информационным системам. Обнаружилось, что многие корпорации накопили большие объёмы информации, и остро встали вопросы доступа к
информации, её использования и хранения. Оказалось, что технологии, основанные на знаниях, позволяют более эффективно организовать использование
накопленной информации. Технологии, основанные на знаниях, позволяют выполнять нечёткие запросы, что нереально при непосредственной работе с БД.
Совокупность банков данных корпорации при условии организации к ним единого доступа стали называть базой знаний корпорации. Хотелось бы обратить
внимание на то, что в данном случае мы выполняем процесс, обратный созданию знаний. В БД хранятся данные, которые можно использовать как точную
дополнительную информацию при решении определённых задач. Данные при
определённых условиях можно использовать как знания. Однако, в общем случае, данные не знания. То есть, чтобы корпоративная совокупность БД стала
базой знаний, там должна храниться в том или ином виде информация. Чаще
82
всего информация хранится как архив документов – сканированных копий
обычных бумажных документов. В этом случае возникает стандартная задача –
извлечение знаний из текстов.
После первичного заполнения базы знаний ЭС начинают опробовать.
Сначала на контрольных примерах, далее на всё более сложных данных. Первичная ЭС называется демонстрационным прототипом ЭС. Интуитивно ясно,
что ЭС должна уметь «объяснить» ход своих рассуждений. Чаще всего это простая распечатка используемых знаний и правил. С другой стороны, дабы работать в реальных условиях, ЭС должна уметь вести диалог с пользователем,
причём на языке, приближённым к естественному.
Прототип ЭС проходит стадии от демонстрационного до действующего и
переходит промышленную систему при условии успешного решения поставленных перед ЭС задач.
У читателя может сложиться впечатление, что ЭС – трудно и долго создаваемые продукты, малораспространённые в реальности. На самом деле это не
так. Так сказать с нуля, действительно, ЭС разрабатывается долго и трудно.
Однако коллектив, разработавший одну ЭС, гораздо быстрее создаёт другую
ЭС. С другой стороны, в России ЭС действительно мало распространены. Но в
США, например, только в 1990 г. прибыль от продажи интеллектуальных систем составила более 1 млрд $ [11]. В названии продукта необязательно будет
присутствовать термин «экспертная система». ЭС является интеллектуальной
системой и чаще всего именно так и представляется на рынке.
И разработчику, и пользователю необходимо понимать, когда и где может
потребоваться ЭС. Прежде всего там, где важна смысловая и логическая обработка информации, там, где необходим опыт эксперта. Существует множество
косвенных признаков необходимости в ЭС: наличие больших расхождений между решениями сильных и слабых специалистов; решение небольшой задачки
большим коллективом специалистов, так как ни один из них не обладает достаточной компетенцией; обычная нехватка специалистов [2], а нередко полное их
отсутствие и некоторые другие (при полном отсутствии специалистов ЭС вряд
ли может помочь, так как некому будет оценить правильность решения ЭС).
Безусловно, не для всякой задачи требуется ЭС. Задачи, успешно решаемые экспертными системами, обычно узкоспециализированные, решаются экспертом и представляют для эксперта ни слишком простыми, ни слишком
сложными. В [2] приводятся типичные области и способы применения ЭС:
Интерпретация
Прогноз
Описание ситуации по информации, поступающей
от датчиков
Определение вероятных последствий заданных ситуаций
83
Диагностика
Выявление причин неправильного функционирования
системы по результатам наблюдений
Проектирование Построение конфигурации объектов при заданных
ограничениях
Планирование
Определение последовательности действий
Наблюдение
Сравнение результатов наблюдений с ожидаемыми
результатами
Отладка
Составление рецептов исправления неправильного
функционирования системы
Ремонт
Выполнение последовательности предписанных
исправлений
Обучение
Диагностика, отладка и исправления поведения обучаемого
Управление
Управление поведением системы как целого
Особенно эффективно оказалось использование ЭС в военной области.
Обратите внимание: принятие решения в условиях недостаточной информации.
Правильное принятие решения требует очень высокой квалификации. Например, указывается на чтобы подготовить начальника штаба дивизии, требуется
от десяти до пятнадцати лет. То есть в оперативных условиях у нас может просто не оказаться в нужное время специалиста требуемой квалификацию. Наличие ЭС разрешает в какой-то мере эту ситуацию.
Традиционно первой ЭС считается DENDRAL – область работы – химия;
по химической формуле и данным спектрального анализа DENDRAL выдаёт
структурное строение вещества. Начало работы по DENDRAL 1965 г., Стэнфордский университет.
На самом деле первые ЭС были созданы намного раньше – в XIX веке в
России. Семён Никола́евич Корса́ков (14 (25) января 1787 – 1 (13) декабря 1853) –
русский дворянин, изобретатель механических устройств, «интеллектуальных
машин», для информационного поиска и классификации, пионер применения
перфорированных карт в информатике [7]. С. Н. Корсаков изобрёл и реально
построил несколько машин, позволяющих быстро находить, сравнивать и классифицировать множества информационных записей (идей) по набору многочисленных признаков (деталей). Наиболее хитроумное устройство
Н. С. Корсакова называлось «идеоскоп».
Это устройство позволяет выполнить исчисление следующих значений:
1) множество вообще возможных признаков, но отсутствующих в заданной и сравниваемой записях;
84
2) множество признаков заданной записи, но которых нет в сравниваемой
записи из идеоскопической таблицы;
3) множество общих признаков для заданной и сравниваемой записей;
4) множество общих наиболее важных признаков;
5) множество наиболее важных признаков сравниваемой записи из таблицы, но которые отсутствуют в заданной записи;
6) множество признаков сравниваемой записи из таблицы, которые отсутствуют в заданной записи.
С. Н. Корсаков, по существу, впервые применил перфорированные карты
в информатике. До этого перфокарты использовались в ткацких станках для
управления узорами на тканях, причём первое массовое распространение такие
станки получили благодаря Жаккарду (1808, Франция) и Наполеону. В работах
С. Н. Корсакова содержится целый ряд новых для того времени идей, как то:
многокритериальный поиск с учётом относительной степени важности различных критериев, способ обработки больших массивов данных, предтеча современных экспертных систем, и даже попытка определить понятие алгоритма [7].
Уже в первой половине XIX века машины Корсакова реализовывали основные
операции с множествами, то есть тот самый базис, который и поныне лежит в
основе дискретной математики.
К сожалению, работы С. Н. Корсакова не были поняты и по достоинству
оценены. Очень любопытно замечание в заключении комиссии Академии наук:
«Г-н Корсаков потратил слишком много разума на то, чтобы научить других
обходиться без разума». Ни это ли можно считать одной из целей создания ЭС.
Таким образом, первой ЭС считается DENDRAL. При разработке
DENDRAL впервые были разделены механизм логического вывода и база знаний. Для выделения знаний была создана специальная программа – METADENDRAL. С её помощью и с помощью аналогичных разработок были построены такие ЭС, как PROSPECTOR, MYCIN.
MYCIN – ЭС в области медицины для диагностики бактериальных инфекций.
PROSPECTOR – ЭС в области рудной геологии, используется в качестве
консультанта, помогающего геологам в поисках рудных залежей. После получения (обратите внимание: получение, а не ввод) данных о геологии района выполняется оценка вероятности обнаружения в районе некоторых видов минеральных
залежей: массивные сульфидные, карбонатные свинцово-цинковые, меднопорфировые и сульфидно-никелевые, порфировые молибденовые руды и ураноносные песчаники. PROSPECTOR интересна тем, что обнаружила пропущенное
геологами молибденовое месторождение. Одна из немногих доведённая до уровня
промышленной [11] – GAS81, CAM82, GAS82, DUD84, ALT84e.
85
DRILLING ADVISOR – ЭС, используется при бурении нефтяных скважин
и разрешает вопросы, связанные с прихваткой долота. ЭС диагностирует наиболее вероятные причины прихватки и рекомендует способы преодоления
трудностей, а также меры по снижению вероятности повторения ситуации.
Система требует знания геологической обстановки в месте бурения скважины и
соотношения между наблюдаемыми симптомами и предполагаемыми причинами. Используется буровым мастером в процессе бурения. Уровень исследовательского прототипа: ELF83, HOL83, HAY84.
MUD – ЭС, обеспечивающая оптимальные свойства бурового раствора. ЭС
диагностирует причины затруднений, связанных с применением раствора, и предлагает способы их устранения. В качестве причин рассматриваются: высокие температуры, давления, неправильное использование химических добавок. Требует
знаний о буровых растворах и трудностях, возникающих при буровых работах. Доведена до уровня опытной эксплуатации: KAY84a, KAY84c, KAY84d.
LINHO – ЭС интерпретации данных каротажа нефтяных скважин. Кроме
данных каротажа, система использует знания геологической обстановки района. В результате описания получают пористость, проницаемость, состав,
структуру и литологию пород. ЭС разработана компанией Schlumbеrger и доведена до уровня исследовательского прототипа: LITHOlog – описание пород,
встречающихся в скважине BON83c.
Сегодня число ЭС исчисляется тысячами. В развитых зарубежных странах множество фирм занимаются их разработкой и внедрением в различные
сферы жизни. Имеются удачные попытки построения ЭС и в СНГ. В настоящее
время ведутся разработки самостоятельно обучаемых экспертных систем. Как
уже указывалось, в искусственном интеллекте обозначилось такое направление,
как инженерия знаний, отвечающая за поиски передовых методов в сборе,
представлении, хранении и использовании информации. При создании корпоративной базы знаний может оказаться весьма полезной быстродействующая
ЭС – OMEGAMON (фирма Candle, с 2004 г. – IBM) – для отслеживания состояния корпоративной информационной сети.
Существует очень интересная ЭС – G2 (фирма Gensym) – для работы с
динамическими объектами. Они служат для принятия решения за считанные
секунды с момента наступления внештатных или критических ситуаций. Для
G2 также характерно распараллеливание процессов рассуждений.
Нет смысла просто перечислять экспертные системы. Для более глубокого ознакомления с ЭС рекомендуется соответствующая литература.
86
Заключение
В учебном пособии изложена точка зрения автора. Этот подход предполагает при изучении информационных систем исследование иерархий и способов
их построения, изучение запросов. Молчаливо предполагается, что используемые иерархии и запросы обусловлены понятийной областью.
Тем не менее стандарт ISO/IEC 2382-1 даёт следующее определение:
«Информационная система – система обработки информации, включающая связанные с ней ресурсы, такие как людские, технические и финансовые, предназначенная для обеспечения информацией и распространения информации».
Автор показал, что включение людских ресурсов в определение информационной системы неприемлемо. Согласно приведённому определению, со смертью
обслуживающего персонала умирает информационная система, а при смене
персонала меняется информационная система. Включение финансовых ресурсов в определение – чисто американская традиция, которая во всём остальном
мире никогда не применяется. Кроме всего прочего, под указанное определение
попадает любое ПО: любую программу можно рассмотреть как «систему обработки информации», особенно если не отличать данные от информации.
Российский ГОСТ РВ 51987 определяет информационную систему как
«автоматизированную систему, результатом функционирования которой является представление выходной информации для последующего использования».
Гораздо более реалистичное определение, хотя ПО, всё-таки, попадает под это
определение.
Отделив ПО от информационных систем, данные – от информации, рассматривая информационную систему как систему управления информацией,
мы получаем простой, ясный и, как кажется автору, объективный подход к изучению информационных систем.
87
Список литературы
1. Блинкова, О. Парадная история ГИС, PC Week/RE, 05 / О. Блинкова. – 2000.
2. Гаврилов, Т. А. Базы знаний интеллектуальных систем / Т. А. Гаврилов,
В. Ф. Хорошевский. – СПб. : Питер, 2000. – 382 с.
3. Гатин, Г. Н. Технология программирования / Г. Н. Гатин. – Ухта : УГТУ,
2012.
4. Гатин, Г. Н. К вопросу разработки и применения информационных систем в
производстве / Г. Н. Гатин, И. С. Пластинин, С. А. Сведенцев // Сборник научных трудов : материалы науч.-техн. конф. (17-20 апреля 2007 г.): в 2 ч.; ч. II /
под ред. Н. Д. Цхадая. – Ухта : УГТУ, 2008. – С. 94-97.
5. «Гипертекст» – Википедия; (поиск в Google).
6. «Кадастр» – Википедия; (поиск в Google).
7. «Корсаков Семён Васильевич – Википедия»; (поиск в Google).
8. Мазуркин, П. М. Геоинформационные системы земельного кадастра, лесного
реестра и особо охраняемых территорий / П. М. Мазуркин, А. Н. Фадеев // Современные проблемы науки и образования, электронный журнал. – 2009. – №4.
9. «Нигма.РФ»; (поиск в Google).
10. «Система поддержки принятия решений», статья СРМ, Tadviser; (поиск в
Google).
11. Уотермен, Д. Руководство по экспертным системам / Д. Уотермен. – М. :
Мир, 1989. – 388 с.
12. Эпштейн, В. Л. Введение в гипертекст и гипертекстовые системы ; (поиск в
Google).
13. Петров, В. Н. Информационные системы / В. Н. Петров. – СПб. : ПИТЕР, 2002.
88
1/--страниц
Пожаловаться на содержимое документа