close

Вход

Забыли?

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

?

Гайдамакин Н.А. - Автоматизированные информационные системы базы и банки данных (2002).pdf

код для вставкиСкачать
Н. А. Гайдамакин
АВТОМАТИЗИРОВАННЫЕ
ИНФОРМАЦИОННЫЕ
СИСТЕМЫ, БАЗЫ
И БАНКИ ДАННЫХ
Вводный курс
Допущено У МО вузов по образованию в области информационной
безопасности в качестве учебного пособия для студентов высших
учебных заведений, обучающихся по специальностям «Компьютерная
безопасность» и «Комплексное обеспечение информационной
безопасности автоматизированных систем»
Москва
«Гелиос АРВ»
2002
УДК 681.3.06
ББК 32.973.2
Г38
Г38
Гайдамакин Н. А.
Автоматизированные информационные системы, базы
и банки данных. Вводный курс: Учебное пособие. —
М.: Гелиос АРВ, 2002. — 368 с , ил.
ISBN 5-85438-035-8
Учебное пособие содержит сведения по автоматизированным
информационным системам и лежащим в основе их создания и
функционирования системам управления базами данных.
Рассматриваются структура и классификация автоматизированных
информационных систем и СУБД, модели организации данных в
фактографических СУБД, основы концептуального проектирования
банков данных фактографических систем и схемно-структурного
проектирования реляционных баз данных. Представлен материал по
основам и технологиям построения распределенных и многопо­
льзовательских информационных систем.
Для студентов вузов и слушателей институтов повышения
квалификации, изучающих курсы по теории информационных систем,
баз и банков данных, информационного поиска, а также для
специалистов, занимающихся информационным обеспечением
деятельности предприятий и организаций.
УДК 681.3.06
ББК 32.973.2
ISBN 5-85438-035-8
© Гайдамакин Н. А., 2002
© Оформление. ШачекЕ. С , 2002
Предисловие
Характерной чертой нашего времени являются интенсив­
но развивающиеся процессы информатизации практически во
всех сферах человеческой деятельности. Они привели к фор­
мированию новой информационной инфраструктуры, которая
связана с новым типом общественных отношений (информа­
ционные отношения), с новой реальностью (виртуальной ре­
альностью), с новыми информационными технологиями раз­
личных видов деятельности. Сердцевиной современных ин­
формационных технологий являются автоматизированные
информационные системы (АИС), создание, функционирова­
ние и использование которых привело к возникновению специ­
фических понятий, категорий, приемов и навыков.
В настоящее время изучение дисциплин, связанных с ав­
томатизированными информационными системами (АИС), яв­
ляется обязательным элементом подготовки специалистов в са­
мых разнообразных областях деятельности.
Вместе с тем анализ отечественной и переводной учебной
литературы по тематике АИС, баз и банков данных, показыва­
ет ее расслоение по нескольким, независимо развивающимся,
направлениям.
Первое направление, которое условно можно назвать «про­
граммистским», связано с системами управления базами дан­
ных (СУБД) фактографических АИС и представлено рядом
классических учебных изданий, по которым на протяжении пос­
ледних двадцати лет осуществляется подготовка специалистов
по программированию, разработке и эксплуатации средств вы­
числительной техники. К числу подобных работ относится эн­
циклопедическое издание одного из основоположников теории
баз данных, известного американского специалиста, К. Дейта
«Введение в системы баз данных», выдержавшее с момента
своего первого выхода более шести изданий. В этом же ряду
находится книга еще одного известного американского специ­
алиста А. Саймона «Стратегические технологии баз данных».
з
Предисловие
В отечественной литературе данное направление представ­
лено рядом фундаментальных изданий, среди которых можно
упомянуть работы: Л. А. Овчарова, С. Н. Сслеткова «Автома­
тизированные банки данных», В. В. Бойко, В. М. Савинкова
«Проектирование баз данных информационных систем», а так­
же более современные учебные курсы по системам управления
базами данных известных отечественных специалистов
С. Д. Кузнецова «Введение в СУБД» и Г. М. Ладыженского
«Системы управления базами данных - коротко о главном».
Особенностью перечисленных выше изданий является их
математико-программистская направленность, что формирует
определенные требования к исходной подготовке обучаемых.
Второе направление — просветительское — обусловлено
процессами так называемого реинжиниринга (переустройство
бизнеспроцессов на предприятиях и в организациях на основе
новых информационных технологий), активно развившегося в
90-е годы и ориентированного на различные категории управ­
ленческих работников (менеджеров). Особенностью работ дан­
ного направления является «популяризаторское» изложение ма­
териала в отношении основ, устройства и функционирования
баз данных и СУБД. Наиболее интересной в этом плане можно
назвать книгу Д. Васксвича «Стратегии Клиент/Сервер. Руко­
водство по выживанию для специалистов по реорганизации биз­
неса».
Третье направление — библиотечное — относится к обла­
сти документальных информационных систем, являющихся со­
временным инструментом документального информационно­
го поиска, традиционно рассматриваемого в контексте библиотечно-информационной сферы. Здесь можно упомянуть ряд
известных изданий, в частности, работы: Дж. Солтона «Дина­
мические библиотечно-информационные системы», Ф. У. Лан­
кастера «Информационно-поисковые системы», А. И. Черно­
го «Введение в теорию информационного поиска», А. В. Со­
колова «Информационно-поисковые системы». Вероятно,
ввиду гораздо более ранней, чем у компьютерных систем, пре­
дыстории библиотечно-информационной сферы, это направле4
Предисловие
ние развивалось практически до 90-х годов отдельно от фак­
тографических А И С . В результате, документальные А И С , не­
смотря на общую с фактографическими системами природу
практически никогда не рассматривались с ними в одной рабо­
те.
Последние тенденции в развитии АИС, баз данных и СУБД
проявляют признаки конвергенции фактографического и доку­
ментального направления, что предопределяет изучение пред­
метной сферы А И С в рамках единой идеологии и единых под­
ходов.
Еще одним мотивом для создания данного учебного посо­
бия послужили наблюдения по контингенту специалистов, уча­
ствующих в создании и эксплуатации А И С .
Массовая компьютеризация и персонализация компьютер­
ной техники во второй половине 80-х годов, внедрение А И С в
деятельность не только крупных, средних, но и мелких пред­
приятий потребовало большого количества специалистов, спо­
собных такие системы разрабатывать. В результате, в сферу
создания и эксплуатации (администрирования) А И С пришел
большой отряд специалистов из смежных областей, прежде
всего разработчиков программного обеспечения так называе­
мых прикладных программистов. Обладая навыками програм­
мирования и знанием языков программирования высокого уров­
ня, во многих случаях специалисты данной категории слабо или
вовсе не представляют системологических основ А И С , а также
многих других аспектов предназначения и функций баз дан­
ных. Поэтому создание А И С зачастую рассматривается в уз­
ком смысле создания базы данных и разработки примитивного
интерфейса для работы с ней. Подобный технократический под­
ход не может обеспечить должный уровень, качество и эффек­
тивность разрабатываемых АИС.
• Целью создания представляемого учебного пособия явля­
ется системное изложение всех аспектов тематики А И С , кото­
рое соединяет, хотя бы в рамках вводного и краткого курса, ос­
новы учебного материала первого, второго и третьего направ­
лений учебных изданий, касающихся А И С .
5
Предисловие
Пособие состоит из семи глав.
Первая глава посвящена основам информационного обе­
спечения различных процессов и систем, понятиям, функциям,
структуре и классификации информационных систем, систе­
мам представления данных в фактографических АИС.
Во второй главе рассматриваются функции и внутреннее
устройство систем управления базами данных фактографичес­
ких АИС, классические модели организации данных (иерархи­
ческая, сетевая и реляционная). Изложение реляционной моде­
ли в части манипуляционнои составляющей сопровождается
примерами операций надданными. Большая часть второй гла­
вы посвящена внутренней схеме баз данных, структурам физи­
ческой организации данных с рассмотрением также и таких ос­
новополагающих аспектов организации и функционирования
баз данных, как индексирование и хеширование записей.
Третья глава посвящена основам создания АИС. Приводят­
ся материалы нормативных документов (ГОСТов), регламен­
тирующих организацию и содержание работ по созданию АИС,
рассматриваются понятие и сущность технического задания.
Излагаются также основы проектирования центрального ком­
понента АИС — банка данных, с описанием этдпов концепту­
ального и схемно-структурного проектирования. Описывается
сущность процессов нормализации таблиц из классической те­
ории реляционной модели данных. Как и во всем пособии, все
операции надданными иллюстрируются примерами. В силу
вводного характера пособия важная часть теории и практики
проектирования баз данных, связанная с CASE-технологиями,
затрагивается только в постановочном плане.
Четвертая глава, занимающая центральное место в работе,
рассматревает комплекс вопросов, связанных с вводом, обра­
боткой и выводом данных в фактографических АИС. Структу­
ра и направленность изложения материала обусловлены логи­
кой и характером информационных задач, решаемых или обес­
печиваемых процессами и процедурами обработки данных в
отличие от программистского подхода в учебных работах пер­
вого направления. Подробно рассмотрены как простейшие воп6
Предисловие
росы, связанные с просмотром, поиском и фильтрацией таб­
личных данных, так и вопросы классификации, содержания, в
том числе программное выражение на языке SQL и оптимиза­
ция запросов по обработке данных в реляционных СУБД. Вво­
дятся также другие смежные понятия и процедуры, связанные
с событийной техникой обработки данных, формами и отчета­
ми по результатам обработки и вывода данных. Приведены ред­
ко рассматриваемые в учебной литературе особенности обра­
ботки, и в частности навигации, по связанным записям в АИС
с сетевой моделью организации данных.
Пятая глава посвящена теоретическим основам и техноло­
гиям построения распределенных АИС. Представлены техно­
логии и модели «Клиент-серверных» систем, в том числе с рас­
смотрением основ реализации мониторов транзакций. Глава со­
держит также излагаемые практически только в руководствах
по СУБД сведения по технологиям объектного связывания и
репликации данных.
Одной из особенностей пособия является изложение в ше­
стой главе в идеологии единого представления с фактографи­
ческими системами основ построения и функционирования до­
кументальных информационных систем (ИПС).Рассматриваются теоретические основы документального информационного
поиска, классификация и особенности разновидностей инфор­
мационно-поисковых документальных систем. Представлен
материал по широко применяемым в настоящее время информа­
ционно-поисковым каталогам и тезаурусам, пол нотскстовым и
гипертекстовым ИПС, моделям организации и особенностям
обработки данных, лежащим в основе полнотекстовых и гипер­
текстовых ИПС.
Заключительная седьмая глава охватывает вопросы адми­
нистрирования и защиты данных в АИС. Рассматриваются ос­
новные функции и задачи, решаемые администраторами баз дан­
ных, политики и модели безопасности (разграничения досту­
па) в СУБД, технологические аспекты реализации моделей
безопасности, в том числе технологии «представлений» и дру­
гие конструкции языка SQL, обеспечивающие построение и
7
Предисловие
управление системой разграничения доступа в АИС. Приведе­
ны также необходимые в минимальном объеме сведения по
классификации уровней защищенности информации в автома­
тизированных системах по Руководящим документам Гостехкомиссии России.
Автор выражает благодарность тем людям, без помощи и
поддержки которых создание пособия со столь разноплановым
материалом было бы вряд ли возможным. Прежде всего хоте­
лось бы выразить признательность за советы и критические за­
мечания известному специалисту в области документального
информационного поиска Д. Я Шараеву, а также коллегам по
работе О. Н . Соболеву, С. А. Нсобутову, С. Н. Смирнову,
А. П. Коваленко и отдельно О. В Безусовой, принявшей на себя
тяготы редактирования первоначального варианта рукописи.
Автор также признателен заведующему кафедры вычислитель­
ной техники УГТУ-УПИ С. Л. Гольдштейну и его сотрудникам,
в частности Т. Я. Ткаченко, а также заведующему сектором ин­
формационных систем И М М У р О РАН И. А.Хохлову за ре­
цензирование первоначального варианта пособия.
8
1.1. Понятие н содержание информационного обеспечения
1. Основы информационного
обеспечения процессов и систем
1.1. Понятие и содержание информационного
обеспечения
Информационное обеспечение является составной частью
более широкого понятия информационных процессов. В нор­
мативно-правовой трактовке информационные процессы оп­
ределяются как «процессы создания, сбора, обработки, накоп­
ления, хранения, поиска, распространепи я и потребления ин­
формации»1 и охватывают тем самым все сферы человеческой
деятельности.
Информационное обеспечение чаще всего соотносится с
организационно-управленческой и производственно-технологи­
ческой сферой. Поэтому под информационным обеспечением
будем понимать совокупность процессов сбора, обработки, хра­
пения, анализа и выдачи информации, необходимой для обеспе­
чения управленческой деятельности и технологических процес­
сов.
Основополагающим в определении информационного обес­
печения является понятие информации.
Термин информация происходит от латинского
informatio —разъяснение, изложение. До середины нашего сто­
летия информация трактовалась как сведения, передаваемые
людьми устным, письменным или другим (знаками, техничес­
кими средствами) способом. После 50-х годов на фоне бурного
развития средств связи и телекоммуникаций, возникновения и
внедрения в различные сферы жизни электронно-вычислитель­
ной техники появились новые, расширенные трактовки поня­
тия информация. Информацию в вероятностно-статистичес­
ком (или энтропийном) подходе стали трактовать какумеиь1
Закон РФ «Об участии в международном информационном обмене» от
04.07. 1996 г., №85-ФЗ.
1. Основы информационного обеспечения процессов н систем
шеиие степени неопределенности знания о каком-либо объек­
те, системе, процессе или явлении, или изменение неопреде­
ленности состояния самого объекта, системы, явления, про­
цесса. Такую трактовку по имени ее автора, американского ма­
тематика К. Э. Шеннона еще называют информацией по
Шеннону.
Известна также и широко используется философская, или
точнее говоря, общенаучная трактовка понятия информации как
изменение объема и структуры знания воспринимающей сис­
темы. При этом под воспринимающей системой понимается
не только собственно сам человек или его производные (кол­
лектив, общество), но и, вообще говоря, любая система, напри­
мер биологическая клетка, воспринимающая при рождении ге­
нетическую информацию.
Существует еще и нормативно-правовая трактовка поня­
тия информации, которая используется в законодательных ак­
тах, регламентирующих информационные процессы и техно­
логии. Так, в частности, в законе РФ «Об информации, инфор­
матизации и защите информации» (от 20.02.95 № 24-ФЗ) дается
следующее определение термина «информация» — сведения о
лицах, предметах, фактах, событиях и процессах независимо
от способа их представления. Добавим в связи с этим еще один
важный нормативно-правовой аспект. Статья 128 Гражданско­
го кодекса РФ информацию, наряду с вещами (включая деньги,
ценные бумаги и иное имущество, в том числе имущественные
права), работами и услугами, результатами интеллектуальной
деятельности, нематериальными благами, определяет видом
объектов гражданских прав, распространяя на нее тем самым
весь институт гражданского права, включая права собственно­
сти и авторское право.
Как представляется, в контексте рассмотрения содержания
информационно-аналитической сферы наиболее подходящим
является объединение общенаучной и нормативно-правовой
трактовки понятия информации. Поэтому в дальнейшем инфор­
мацию будем понимать как изменение объема и структуры зна­
ния о некоторой предметной области (лица, предметы, факю
1.1. Понятие и содержание информационного обеспечения
ты, события, явления, процессы) воспринимающей системой
(человек, организационная структура, автоматизированная
информационная система) независимо от формы и способа
представления знания.
При рассмотрении понятия информационного обеспечения
в контексте обработки информации важное значение имеет по­
нятие данных. От информации данные отличаются конкретной
формой представления и являются некоторым ее подмноже­
ством, определяемым целями и задачами сбора и обработки
информации. К примеру, данные по сотрудникам какой-либо
организации в виде формализованных учетных карточек кад­
рового подразделения содержат лишь некоторый перечень не­
обходимых сведений (ФИО, год рождения, образование, семей­
ное положение, должность и т. д.) в отличие от огромного ко­
личества сведений, характеризующих каждого конкретного
человека. Поэтому определим данные как информацию, отра­
жающую определенное состояние некоторой предметной об­
ласти в конкретной форме представления и содержащую лишь
наиболее существенные с точки зрения целей и задач сбора и
обработки информации элементы образа отраэ/саемого фраг­
мента действительности.
Таким образом, информация на стадии данных характери­
зуется определенной формой представления и дополнительной
характеристикой, выражаемой термином структура.
Структура данных связана с понятием представления ин­
формации и определяется функциональной, логической, тех­
нологической и т. п. структурой той предметной области, ин­
формацию о которой содержат данные. Вместе с тем данные
могут быть представлены и в неструктурированной форме, что
предопределяет технологические особенности их накопления
и обработки. Таким образом, можно выделить неструктуриро­
ванную и структурированную форму представления данных.
В качестве примера неструктурированной формы можно
привести:
• связный текст (т. е. документ на естественном языке — на
литературном, официально-деловом и т. д.);
11
1. Основы информационного обеспечения процессов и систем
• графические данные в виде фотографий, картинок и про­
чих неструктурированных изображений.
Примерами структурированной формы данных являют­
ся:
• анкеты;
ш таблицы;
• графические данные в виде чертежей, схем, диаграмм.
Способы сбора, анализа и обработки структурированных
и неструктурированных данных существенно различаются. Наи­
более развитыми в настоящее время, с точки зрения задач об­
работки и анализа информации, являются программные сред­
ства обработки структурированных данных, т. к. структуриза­
цию можно считать первичной и наиболее трудно
формализуемой и алгоритмизируемой обработкой.
В плане оперирования с информацией в процессах ее со­
здания (порождения), сбора, выдачи и потребления важное зна­
чение имеет понятие документированной информации или
просто документа. Можно сказать, что в большом количестве
случаев информация предстает и фигурирует в образе докумен­
та, исключая ту часть информационных процессов, которые опе­
рируют исключительно сданными, как, например, в автомати­
зированных системах управления технологическими процесса­
ми — АСУТП, где информация порождается в виде показаний
датчиков (входные данные), обрабатывается, выдается и потреб­
ляется в виде управляющих сигналов (выходные данные) на
технологическое оборудование.
Как и в случае с понятием самой информации, существует
несколько трактовок термина документ—историческая, орга­
низационно-управленческая и нормативно-правовая трактов­
ка.
Исторически документ понимался (и в определенных слу­
чаях понимается сейчас) как объект, средство, способ для удо­
стоверения личности, прав собственности и т. д.
В организационно-управленческом смысле документ пони­
мается как служебный или организационно-распорядительный
12
1.1. Понятие и содержание информационного обеспечения
документ, т. е. как форма и способ выражения организационноуправленческих решений и воздействий.
В нормативно-правовом аспекте документ определяется как
зафиксированная на материальном носителе информация с
реквизитами, позволяющими ее идентифицировать2.
Для традиционного «бумажного» документа совокупность
реквизитов, идентифицирующих конкретный документ, опре­
деляется соответствующими ГОСТами3 и руководящими доку­
ментами по делопроизводству или отраслям технологической
документации4. Не вдаваясь в детали, отметим, что важнейшим
реквизитом, идентифицирующим традиционные документы,
является подпись должностного лица. Подобный подход для
компьютерной информации в настоящее время развит в виде
техники «электронных цифровых подписей», основанных на
криптографических методах, также закреплен соответствующи­
ми ГОСТами5 и применяется в телекоммуникационных систе­
мах передачи данных. Вместе с тем такие особенности компь­
ютерной формы информации, как возможность ее эталонного
копирования (т. е. практически мгновенного и в любых количе­
ствах порождения полностью идентичных копий, экземпляров),
делают процесс идентификации документов в компьютерной
форме и в более широком смысле аспект юридического статуса
документов в вычислительной среде сложной и до конца еще
нерешенной проблемой.
Под документированием информации в широком смысле
слова можно понимать выделение единичной смысловой части
информации (данных) по некоторой предметной области в об­
щей ее массе, обособление этой части с приданием ему само­
стоятельной роли (имя, статус, реквизиты и т. п.). Процесс до­
кументирования превращает информацию в информационные
2
Закон РФ «Об информации, информатизации и лишите информации» от
20.02.1995 г., №24-ФЗ.
' ГОСТ Р 6.30-97. Унифицированная система оргаппчаппонпо-распорядителы юй
документации. Требования к оформлению документов — М.: Госстандарт России, 1997.
4
Например, ЕСКД — Единая система конструкторском документации.
5
ГОСТ Р 34.10-94. Информационная технология. Криптографическая чаишта ин­
формации. Процедуры выработки и проверки электронной цифровой подписи па баче
асимметричного криптографического алгоритма— М.: Госстандарт России, 1994.
13
1. Основы информационного обеспечения процессов и систем
ресурсы. Нормативно-правовая трактовка информационных
ресурсов определяет их как «отдельные документы и отдель­
ные массивы документов, документы и массивы документов в
информационных системах (библиотеках, архивах, фондах,
банках данных, других видах информационных систем)»''.
Таким образом, документирование информации подводит
к одному из самых фундаментальных понятий в сфере инфор­
мационного обеспечения — информационным системам. Так
же как и для понятий информации и документа, понятие ин­
формационной системы многогранно и имеет несколько опре­
делений и подходов. В нормативно-правовом смысле инфор­
мационная система определяется как «организационно упо­
рядоченная совокупность документов (массивов документов)
и информационных технологий, в том числе и с использовани­
ем средств вычислительной техники и связи, реализующих ин­
формационные процессы»1.
В технологическом плане аспект использования средств вы­
числительной техники (СВТ) в информационных системах и
обеспечение на этой основе автоматизации решения каких-либо
задач проявляется в близком термине автоматизированная си­
стема — «система, состоящая из персонала и комплекса
средств автоматизации его деятельности, реализующая ин­
формационную технологию выполнения установленных функ­
ций»*.
Опыт, практика создания и использования автоматизиро­
ванных информационных систем в различных сферах деятель­
ности позволяет дать более широкое и универсальное опреде­
ление, которое полнее отражает все аспекты их сущности.
Под информационной системой в дальнейшем понимается
организованная совокупность программно-технических и дру­
гих вспомогательных средств, технологических процессов и
функционально-определенных групп работников, обеспечиваю'' Закон РФ «Об участии в международном информационном обмене» от
04.07.1996 г., №85-ФЗ.
7
Закон РФ «Об информации, информатизации и защите информации» от
20.02.1995 г., №24-ФЗ.
* ГОСТ 34.003-90. Информационная технология. Комплекс стандартов на авто­
матизированные системы. Термины и определения — М.:Изд-во стандартов, 1991.
14
1.1. Понятие и содержание информационного обеспечения
щих сбор, представление и накопление информационных ресур­
сов в определенной предметной области, поиск и выдачу све­
дений, необходимых для удовлетворения информационных по­
требностей установленного контингента пользователей —
абонентов системы.
Исторически первыми видами информационных систем яв­
ляются архивы и библиотеки. Им присущи вес атрибуты ин­
формационной системы. Они обеспечивают в какой-либо пред­
метной области сбор данных, их представление и хранение в
определенной форме (книго-, архивохранилища, каталоги и
т. д.), в них определяется порядок использования информаци­
онных фондов (т. е. определены абоненты, режимы и способы
выдачи информации — абонементы, читальные залы и т. п.).
Информационные системы, в которых представление,
хранение и обработка информации осуществляются с помо­
щью вычислительной техники, называются автоматизирован­
ными, или сокращенно АИС. Автоматизированные информа­
ционные системы в настоящее время являются неотъемлемой
частью современного инструментария информационного обес­
печения различных видов деятельности и наиболее бурно раз­
вивающейся отраслью индустрии информационных техноло­
гий.
Таким образом, информационные системы являются основ­
ным средством, инструментарием решения задач информаци­
онного обеспечения, а соотношение понятий, связанных с ин­
формационным обеспечением, можно отобразить в виде схе­
мы, приведенной на рис. 1.1.
Технологическое и организационно-штатное воплощение
информационного обеспечения в большинстве случаев осуще­
ствляется в трех формах:
• служба документационного обеспечения управления
(СлДОУ);
• информационная служба;
• экспертно-аналитическая служба.
15
1. Основы информационного обеспечения процессов н систем
Информация
Содержит:
Сведения
Знания
Обрабатывается в виде : )
Данные
Y
2.
Предстает и фигурирует в обрам:
Документ
(документированная
информация)
Агрегируется:
Информационные ресурсы
Организационно упорядочивается
яр)
(накашивается, хранится, обрабатывается}Информационные
системы
Рис. 1.1. Схема понятий информационного обеспечения
Традиционной организационно-штатной и технологичес­
кой структурой является СлДОУ, которая в обобщенном виде
реализует следующие функции:
• организация и обеспечение делопроизводства и доку­
ментооборота;
• документационное обеспечение подготовки и осуществ­
ления управленческих решений через организацию и контроль
разработки и согласования организационно-распорядительных
и информационно-справочных документов;
• внутренний мониторинг (контроль реализации управ­
ленческих решений, оценка их результатов через контроль и
отслеживание прохождения документов).
16
1.1. Понятие п содержание информационного обеспечения
Информационная служба (отдел автоматизации, вычис­
лительный центр и т. д.) в общем виде обеспечивает решение
следующих задач:
• сбор недокументированной и документированной ин­
формации из внешних источников, необходимой для поддерж­
ки управленческих и технологических процессов;
• внешний мониторинг (выявление и анализ управленчес­
ких проблем, возникающих по внешним причинам);
• информационное оповещение и удовлетворение инфор­
мационных потребностей управленческих и технологических
структур;
• внутренний мониторинг (статистика, отчетность, оцен­
ка результатов деятельности).
Экспертно-аналитическая группа (группы советников,
консультантов, так называемых аналитиков) привлекается для:
• анализа различных управленческих, производственных
ситуаций;
• выработки альтернатив управленческих решений;
• прогнозирования последствий управленческих решений.
Структура информационного обеспечения определяется
структурой (циклом) функционирования информационных си­
стем. В общем плане можно выделить следующие элементы
цикла функционирования информационных систем:
• сбор информации;
• комплектование информацией;
• поиск и выдача сведений для абонентов системы;
• поддержание целостности, актуальности и сохранности
информации.
Сбор информации представляет собой специальным обра­
зом организованный порядок и процесс получения и отбора ин­
формации, имеющей отношение к предметной области сведе­
ний информационной системы, и включает:
• получение информации;
• оценку относимости информации;
17
1. Основы информационного обеспечения процессов и систем
• организационные схемы, порядок отбора и фиксации
информации.
Получение информации осуществляется через организацию
и использование системы источников и каналов получения ин­
формации.
Оценка относимости информации к предметной области
сведений информационной системы в некоторых случаях осу­
ществляется автоматически (информация сдатчиков в автома­
тизированных системах управления технологическими процес­
сами — АСУ ТП), а в других случаях (системы обеспечения
аналитических исследований, мониторинга социально-эконо­
мических или экологических процессов и т. п.) представляет
сложную, многокритериальную классификационную задачу,
слабо поддающуюся автоматизации и выполняемую специаль­
ной категорией работников.
Организационные схемы, порядок отбора и фиксации ин­
формации определяют организационную основу подсистемы
сбора информации и обусловливаются характером и другими
параметрами источников и каналов получения информации.
Комплектование информационной базы в различных ее
формах в общем плане включает предварительную обработку
(рубрикацию, структуризацию) и занесение информации.
Характер предварительной обработки информации опре­
деляется формой представления входных данных (структури­
рованная, неструктурированная), особенностями представления
данных в информационной системе и может включать класси­
фикацию сведений по определенным рубрикам (делам), разде­
лам и т. п. предметной области с целью накопления материалов
определенного характера, или объединенных каким-либо при­
знаком, фактором. Структуризация информации представляет
процесс преобразования документированной информации (т. е.
информации на естественном неформализованном языке —
обычно это текст документа) в семантику АИС, т. е. в инфор­
мационный язык представления данных, используемый в конк­
ретной информационной системе.
18
1.1. Понятие н содержание информационного обеспечения
Занесение данных в информационную систему заключает­
ся в добавлении новых сведений и, при необходимости, их отож­
дествлении, слиянии и установлении взаимосвязи новых дан­
ных с ранее накопленными. Принципиальное значение при этом
имеет вопрос идентификации новых данных с возможно уже
имеющимися в системе.
Важным моментом при занесении новой информации яв­
ляется также установление ее логической взаимосвязи с ранее
введенными данными. В некоторых видах АИС (информаци­
онно-поисковые) такая задача является одной из основных, так
как позволяет искать и устанавливать не всегда очевидные свя­
зи между информационными объектами и категориями сведе­
ний информационной системы. Комплектование информацией
в таких случаях неотделимо от обработки и выдачи информа­
ции.
В информационных службах, обеспечивающих создание и
эксплуатацию информационных систем, сбор и комплектова­
ние информации осуществляют работники группы отбора («от­
борщики», «индексаторы»), квалификация которых помимо ин­
формационной должна включать также знание конкретной пред­
метной области информационных систем.
Поиск и выдача данных включают установление специ­
ального организационно-технологического порядка удовлетво­
рения информационных потребностей абонентов информаци­
онной системы в управленческой деятельности и технологи­
ческих процессах.
Удовлетворение информационных потребностей осуществ­
ляется через периодический плановый поиск и выдачу сведений,
оповещение и обработку запросов, выполняемую организаци­
онными структурами (СлДОУ, информационная служба), орга­
низующими и эксплуатирующими информационную систему.
Периодический плановый поиск и выдача сведений осуще­
ствляются в целях обеспечения процессов организации, пла­
нирования и осуществления конкретного вида деятельности,
т. -е. в основном для информационного обеспечения организа-Ционно-управленческой деятельности. Данного рода задачи
19
1. Основы информационного обеспечения процессов и систем
включаются в функции и обязанности информационных, ин­
формационно-аналитических и других информационно-обес­
печивающих служб и заключаются, как правило, в формирова­
нии и выдаче статистических и сводных данных по периоди­
чески повторяющимся ситуациям в управленческой и
производственной сфере.
Оповещение и обработка запросов представляют собой
формы информационного обслуживания управленческих и про­
изводственно-технологических структур. Оповещение может
осуществляться в форме инициативно-сигнального оповещения,
объектового и планово-периодического оповещения.
Объектовое оповещение обычно осуществляется через
выдачу абонентам информационной системы любых новых дан­
ных по определенному объекту, тематике, событию и т. п., по­
являющихся в АИС из любых источников.
Планово-периодическое оповещение производится через
выдачу абонентам всех новых данных, поступивших к опреде­
ленному плановому сроку из всех источников в информацион­
ную систему по определенному объекту, тематике, событию,
проблеме.
Обработка запросов и выдача по ним сведений является
одной из основных функций информационных служб. Данная
деятельность регламентируется по вопросам инициирования,
санкционирования и формы подачи запросов, форм и способов
выдачи информации по запросам, учета запросов и т. д.
Поддержание целостности и сохранности информации,
пересмотр, ревизия и отсеивание утратившей актуальность
информации являются неотъемлемой функцией информацион­
ных подразделений, создающих и поддерживающих информа­
ционные системы. Данные задачи решаются категорией работ­
ников, называемых администраторами АИС. Администрато­
ры обеспечивают создание и поддержание банков данных АИС,
организацию разграничения доступа к ним, защиту информа­
ции от несанкционированного доступа (НСД), ее резервирова­
ние и восстановление при разрушении или утрате ее целостно­
сти вследствие преднамеренных и непреднамеренных воздей20
1,2. Структура н классификация информационных систем
ствий или ситуаций. Подобного рода задачи требуют высокой
квалификации персонала и выполняются наиболее подготов­
ленными информационными работниками.
Периодическая ревизия информации в банках данных АИС
призвана проверить целостность (не нарушены ли внутренние
взаимосвязи информационных объектов) и сохранность данных,
а также удалить из АИС информацию, потерявшую свою акту­
альность. Удаление информации из АИС, как и ее занесение в
АИС, регламентируется специальными нормативно-инструктив­
ными документами.
1.2. Структура и классификация
информационных систем
В составе информационной системы можно выделить три
подсистемы, представленные на рис. 1.2.
Информационная система
Организационнотехнологическая
подсистема
сбора
информации.
Подсистема
лредставления
и обработки
информации.
Нормативнофункциональная
подсистема
выдачи
информации.
Каналы
поступления;
поставщики; вид;
формат и до­
кументирование
входной
информации.
Группа
отбора/ввода;
формы; режимы
ввода и
трансляции.
Группа выдачи;
обработка;
запросы.
Администраторы.
Пользователиабоненты;
режимы выдачи;
формы выдачи;
учет и докумен­
тирование выдан­
ной информации.
Рис. 1.2. Состав и функциональные группы информационной си­
стемы
Организационно-технологическая
подсистема сбора
информации обеспечивает отбор и накопление данных в ин21
1. Основы информационного обеспечения процессов и систем
формационную систему и включает совокупность источников
информации, организационно-технологические цепочки отбо­
ра информации для накопления в системе. Без правильно орга­
низованной, оперативно и эффективно действующей организа­
ционно-технологической подсистемы сбора информации невоз­
можна эффективная организация функционирования всей
информационной системы в целом.
Подсистема представления и обработки информации
составляет ядро информационной системы и является отраже­
нием представления разработчиками и абонентами системы
структуры и картины предметной области, сведения о которой
должна отражать информационная система. Подсистема пред­
ставления и обработки информации является одним из наибо­
лее сложных компонентов при разработке информационной си­
стемы.
Нормативно-функциональная подсистема выдачи ин­
формации определяет пользователей, или иначе абонентов,
системы, реализует целевой аспект назначения и выполнения
задач информационной системы.
Информационным ядром (информационным фондом) под­
системы представления и обработки информации АИС, или,
говоря иначе, внутренним носителем знаний 6 предметной об­
ласти является база данных (БД). Понятие базы данных явля­
ется центральным в сфере технологий автоматизированных ин­
формационных систем. В справочной литературе по информа­
тике приводится следующее определение базы данных —
«совокупность данных, организованных по определенным пра­
вилам, предусматривающим общие принципы описания, хра­
нения и манипулирования данными, независимая от приклад­
ных программ»9. Нормативно-правовая трактовка понятия базы
данных представлена в законе «О правовой охране программ
для ЭВМ и баз данных», согласно которому «база данных —
это объективная форма представления и организации сово­
купности данных (например, статей, расчетов), системати-
* Толковый словарь по информатике. — М.: Финансы и статистика, 1991.
22
1,2. Структура и классификация информационных систем
зированпых таким образом, чтобы эти данные могли быть най­
дены и обработаны с помощью ЭВМ».
Другим фундаментальным понятием, непосредственно свя­
занным с АИС, является система управления базами данных
{СУБД), которая по ГОСТу определяется как «совокупность
программ и языковых средств, предназначенных для управле­
ния данными в базе данных, ведения базы данных и обеспече­
ния взаимодействия ее с прикладными программами». В на­
стоящее время развитие СУБД как специального вида программ­
ного обеспечения для создания и эксплуатации АИС приводит
к более широким функциям СУБД. Ввиду этого в расширен­
ном толковании СУБД можно определить как комплекс про­
граммных средств, реализующих создание баз данных, их под­
держание в актуальном состоянии, а также обеспечивающих
различным категориям пользователей возможность получать
из БД необходимую информацию.
Совокупность конкретной базы данных, СУБД, приклад­
ных компонентов АИС (набор входных и выходных форм, ти­
повых запросов для решения информационно-технологических
задач в конкретной предметной области), а также комплекса
технических средств, на которых они реализованы, образуют
банк данных (БнД), или иначе автоматизированный банк дан­
ных (АБД). Таким образом, соотношение понятий БнД, СУБД
и БД можно проиллюстрировать схемой, приведенной на
рис. 1.3.
По характеру представления и логической организации хра­
нимой информации АИС разделяются на фактографические,
документальные и геоинформационные.
Фактографические АИС накапливают и хранят данные в
виде множества экземпляров одного или нескольких типов
структурных элементов {информационных объектов). Каждый
из таких экземпляров структурных элементов или некоторая их
совокупность отражают сведения по какому-либо факту, собы­
тию и т. д., отделенному (вычлененному) от всех прочих сведе­
ний и фактов10. Структура каждого типа информационного
объекта состоит из конечного набора реквизитов, отражающих
'" Отсюда II название — «фактографические системы».
23
1. Основы информационного обеспечения процессов и систем
Банк данных (БнД)
Технические средства ввода, хранения,
обработки и выдачи информации
Рис. 1.3. Соотношение понятий БиД, СУБД и БД
основные аспекты и характеристики сведений для объектов дан­
ной предметной области. К примеру, фактографическая АИС,
накапливающая сведения по лицам, каждому конкретному лицу
в базе данных ставит в соответствие запись, состоящую из оп­
ределенного набора таких реквизитов, как фамилия, имя, отче­
ство, год рождения, место работы, образование и т. д. Комплек­
тование информационной базы в фактографических АИС вклю­
чает, как правило, обязательный процесс структуризации
входной информации из документального источника. Структу­
ризация при этом осуществляется через определение (выделе­
ние, вычленение) экземпляров информационных объектов оп­
ределенного типа, информация о которых имеется в докумен­
те, и заполнение их реквизитов.
В документальных АИС единичным элементом информа­
ции является нерасчлененный на более мелкие элементы доку­
мент и информация при вводе (входной документ), как прави­
ло, не структурируется, или структурируется в ограниченном
виде. Для вводимого документа могут устанавливаться некото­
рые формализованные позиции—дата изготовления, испол­
нитель, тематика и т. д. Некоторые виды документальных АИС
24
1,2. Структура i! классификация информационных систем
обеспечивают установление логической взаимосвязи вводимых
документов — соподчиненность по смысловому содержанию,
взаимные отсылки по каким-либо критериям и т. п. Определе­
ние и установление такой взаимосвязи представляет собой слож­
ную многокритериальную и многоаспектную аналитическую
задачу, которая не может в полной мере быть формализована.
В геоинформационных АИС данные организованы в виде
отдельных информационных объектов (с определенным набо­
ром реквизитов), привязанных к общей электронной топогра­
фической основе (электронной карте). Геоинформационные си­
стемы применяются для информационного обеспечения в тех
предметных областях, структура информационных объектов и
процессов в которых имеет пространственно-географический
компонент, например маршруты транспорта, коммунальное хо­
зяйство и т. п.
Разработка и проектирование информационной системы на­
чинаются с построения концептуальной модели ее использова­
ния. Концептуальная модель использования информационной
системы определяет, прежде всего, круг конкретных задач и
функций, обеспечиваемых созданием и эксплуатацией инфор­
мационной системы, а также систему сбора, накопления и вы­
дачи информации.
Поэтому другим критерием классификации АИС являют­
ся функции и решаемые задачи, основными из которых могут
являться:
• справочные;
• поисковые;
• расчетные;
• технологические.
Справочные функции являются наиболее распространен­
ным типом функций информационных систем и заключаются
в предоставлении абонентам системы возможностей получе­
ния установочных данных на определенные классы объектов
(Лица, Организации, Телефоны, Адреса и т. п.) с жестко или
произвольно заданным набором сведений. Видами информаци­
онных систем, реализующих чисто справочные функции, явля25
1. Основы информационного обеспечения процессов и систем
ются всевозможные электронные справочники, картотеки, про­
граммные или аппаратные «электронные записные книжки»
и их более развитые аналоги в виде т. н. персональных инфор­
мационных систем.
Системы, реализующие поисковые функции, являются наи­
более широко распространенным классом информационных си­
стем, которые чаще всего называют информационно-поисковы­
ми системами (ИПС). ИПС в общем виде можно рассматривать
как некое информационное пространство, задаваемое в тер­
минах информационно-логического описания предметной об­
ласти —«информационные объекты», «информационные свя­
зи». Пользователям ИПС предоставляется возможность поиска
и получения сведений по различным поисковым образам в та­
ком информационном пространстве.
Расчетные функции информационных систем заключают­
ся в обработке информации, находящейся в системе, по опре­
деленным расчетным алгоритмам для различных целей. К чис­
лу подобных задач относится вычисление определенных ста­
тистических характеристик и показателей по экземплярам
различных типов объектов и отношений, данные по которым
накапливаются в системе. Широко применяющейся разновид­
ностью расчетных информационных систем являются различ­
ные системы автоматического проектирования, всевозможные
бухгалтерские и финансово-экономические системы.
Технологические функции информационных систем заклю­
чаются в автоматизации всего технологического цикла или от­
дельных его компонент, какой-либо производственной или орга­
низационной структуры. К системам, обеспечивающим подоб­
ные задачи, относится широкий класс автоматизированных
систем управления (АСУ, АСУ ТП). Другой разновидностью
технологических информационных систем являются системы
автоматизации документооборота.
Рассмотренная классификация автоматизированных инфор­
мационных систем, как и всякая классификация, условна и на
практике конкретная АИС может характеризоваться комплекс­
ным характером представления информации (например, являть26
1.3. Система представления н обработки данных фактографических АИС
ся фактографически-документальной системой) и решать ком­
плекс справочных, поисковых, расчетных и технологических
задач.
1.3. Система представления и обработки
данных фактографических АИС
В архитектуре подсистемы представления и обработки ин­
формации фактографических АИС можно выделить различные
уровни представления информации, отображенные на рис. 1.4.
Локальные
представления
пользователей
о
]
J
CD
Информационные
HOI ревности
абонентов
предметной
области
Информационно-логическая схема (модель)
предметной области
(формализованное представление
об объектах и отношениях
предметной области)
I
Концептуальная модель
использования
информационной системы
I
Банк данных (БнА)
Схема БА
(логическая структура)
Внутренняя с*е"а ВЛ
.£.»££
Информационные массивы (файлы данных)
Рис. 1.4. Уровни представления информации в АИС
Начальный уровень определяется локальными представле­
ниями о предметной области пользователей-абонентов инфор­
мационной системы и их представлениями о своих информа­
ционных потребностях. На основе анализа этих представлений
определяется информационно-логическая или сокращенно
27
1. Основы информационного обеспечения процессов п систем
инфологическая схема предметной области, подлежащей ото­
бражению информационной системой, и концептуальная мо­
дель использования информационной системы. Инфологичес­
кая схема представляет собой формализованное представление
(описание) объектов и отношений фрагмента действительнос­
ти.
Наиболее часто формализация представлений о предмет­
ной области осуществляется в рамках модели «объекты-свя­
зи» (так называемая ER-модель — от англ. Entity Relationship).
При этом под информационным объектом в общем плане по­
нимается некоторая сущность фрагмента действительности, на­
пример организация, документ, сотрудник, место, событие и т.
д. В предметной области выделяются различные типы объек­
тов, представляемые в информационной системе в каждый мо­
мент времени конечным набором экземпляров данного типа.
Каждый тип объекта включает (идентифицируется) присущий
ему набор атрибутов (свойств, характерных признаков, пара­
метров). Атрибут представляет логически неделимый элемент
структуры информации, характеризующийся множеством ато­
марных значений. Для примера можно привести атрибут «Имя»
объекта типа «Лицо», который характеризуется множеством
всех возможных имен, и атрибут «Текст» объекта типа «Доку­
мент», который характеризуется множеством средств смысло­
вого выражения в определенном национальном языке.
Экземпляр объекта образуется совокупностью конкретных
значений атрибутов данного типа объекта. Один или некоторая
группа атрибутов объекта данного типа могут исполнять роль
ключевого атрибута, по которому идентифицируются (разли­
чаются) конкретные экземпляры объектов. К примеру, для
объектов типа «Лицо» ключом может являться совокупность
атрибутов «Фамилия», «Имя», «Отчество» или один атрибут,
выражающий номер паспорта (удостоверения личности).
Различные типы объектов и различные экземпляры одного
типа объекта могут быть охвачены определенными отношени­
ями, которые в рамках ER-модели выражаются т. н. связями.
Так, например, объекты «Сотрудник» и «Организация» могут
28
1.3. Система представления и обработки данных фактографических АИС
быть охвачены отношением «Работа», т. с. связаны этим отно­
шением. При этом связи могут быть двух типов — иерархичес­
кие, или, иначе говоря, структурные (владелец-подчиненный)
и одноуровневые, например, родственная связь «Брат-сестра»
между двумя экземплярами объекта типа «Лицо» (в отличие от
иерархической родственной связи — «Отец-сын»). Объектывладельцы иерархических связей-отношений иногда называют
структурными объектами, в противовес простым объектам,
которые таковыми не являются (не являются владельцами).
Структурные и одноуровневые связи (отношения), в свою
очередь, по признаку множественности могут быть трех
типов — «один-к-одному» (например, отношение «Лицо-Пас­
порт», имея в виду под «Паспортом» не атрибут объекта Лицо,
а самостоятельный объект, состоящий из атрибутов «Номер»,
«Вид паспорта», «Владелец», «Место выдачи», «Дата выдачи»
и т. д.), «одан-ко-многим» (например, отношение «Подразделе­
ние-Сотрудник», имея в виду, что в одном подразделении мо­
жет работать много сотрудников, но каждый сотрудник работа­
ет только в одном подразделении) и «.мпогие-ко-мпогим» (на­
пример, отношение «Лицо-Документ», имея в виду, что один
человек может быть автором, или иметь какое-либо другое от­
ношение ко многим документам, и, в свою очередь, один доку­
мент может иметь много авторов.
Помимо этого информационные потребности абонентов ин­
формационной системы могут включать также и оперирование
опосредованными (т. е. косвенными, непрямыми, ассоциатив­
ными) связями. Примерами таких непрямых связей является
совместная работа нескольких человек на одном предприятии
(подразделении). Прямая непосредственная связь в данном слу­
чае, как правило, устанавливается только между объектами
«Лицо» и «Организация», но не между различными экземпля­
рами объекта «Лицо».
Одним из способов представления формализованного опи­
сания предметной области информационной системы в рамках
модели «объекты-связи» является использование техники спе­
циальных диаграмм, которая была предложена известным амс29
1. Основы информационного обеспечения процессов и систем
риканским специалистом в области баз данных Ч. Бахманом.
В диаграммах Бахмана объекты (сущности) представляются
вершинами некоторого математического графа, а связи—ду­
гами графа. Виды и свойства связей-отношений объектов ото­
бражаются направленностью, специальным оформлением дуг
и расположением вершин графа.
В качестве примера можно привести инфологическую схе­
му предметной области сведений информационной системы,
предназначенной для накопления данных о научной работе в
каком-либо учебном или исследовательском учреждении
(см. рис. 1.5).
Научное
исследование
Отрхжает
Научная
работа
Ч
к
Л
/ л
да\
Организация
ма \
/
<t
Научный
работник
Рис. 1.5. Мифологическая схема предметной области информа­
ционной системы со сведениями о научной работе
На приведенном рисунке однонаправленность дуг означа­
ет структурность связи «владелец-подчиненный», двунаправленность дуг означает одноуровневые связи, двойные стрелки
означают множественность отношения «один-ко-многим», двунаправленность двойных стрелок означает одноуровневые от­
ношения «многие-ко-многим».
Одним из недостатков использования ER-диаграмм Бахма­
на для описания формализованных схем (моделей) предметных
зо
1.3. Система представления и обработки данных фактографических АИС
областей информационных систем является их статичность, не
позволяющая наглядно и непосредственно отображать процес­
сы, в которые вовлечены сущности и которым подвержены от­
ношения (связи). Отчасти подобные проблемы преодолевают­
ся введением дополнительных сущностей, выражающих соб­
ственно процессы и ситуации — событие, действие, момент
времени. Аналогичным образом в некоторых случаях вводятся
пространственные сущности для адекватного представления
сущностей и отношений предметной области — маршрут, мес­
то, населенный пункт, здание, элемент здания, зона и т. д.
Вторым уровнем представления информации в информа­
ционной системе (см. рис. 1.4) является схема базы данных,
(называемая еще логической структурой данных), представля­
ющая описание средствами конкретной СУБД инфологической
схемы предметной области (информационные объекты, рекви­
зиты, связи).
Совокупность средств и способов реализации схемы базы
данных в конкретной СУБД составляет модель организации
данных.
Схема базы данных содержит также ограничения целост­
ности данных. Ограничения целостности представляют собой
набор установок и правил по типам, диапазонам, соотношени­
ям (и т. д.) значений атрибутов объектов, характеристик и осо­
бенностей связей между объектами. К примеру, диапазон зна­
чения атрибута «Дата рождения» объекта лицо не может выхо­
дить за рамки текущей даты, значение атрибута «Дата
приобретения» объекта «Имущество» не может быть позднее
значения атрибута «Дата продажи», значение атрибута «Коли­
чество» объекта «Материал» не должно быть меньше минималь­
но необходимого на складе и т. п. Ограничения целостности
данных лежат в основе контроля корректности информации при
ее вводе в систему и периодического контроля наличия смыс­
ловых и других ошибок в базе данных после проведения опе­
раций добавления, удаления и изменения данных.
Третий и самый «.низкий» уровень представления инфор­
мации в фактографических информационных системах выра31
1. Основы информационного обеспечения процессов н систем
жается внутренней схемой базы данных, определяющей струк­
туру организации и особенности хранения информационных
массивов, в которых и находятся собственно сами данные
(см. рис. 1.4).
Более конкретные особенности представления и организа­
ции данных определяются конкретным типом и особенностя­
ми СУБД, используемой для создания фактографической ин­
формационной системы.
Вопросы и упражнения
1.
Разъясните соотношение и взаимосвязь понятий «информация»,
«знания», «сведения» и «данные».
2. Охарактеризуйте в терминах информационного обеспечения ли­
сток по учету кадров и автобиографию, заполняемые и составля­
емые сотрудником при приеме на работу.
3. Бланк заказа заполняется клиентом, подписывается работником
организации, регистрируется, исполняется и подшивается в соот­
ветствующее дело. Охарактеризуйте в терминах информацион­
ного обеспечения указанные операции и процессы.
4. Является ли обязательным использование СВТ в информацион­
ных системах? Каковы главные признаки информационной сис­
темы и чем она отличается от простой совокупности информаци­
онных ресурсов?
5. Одной из задач работника информационно-аналитической служ­
бы является поиск, сбор и систематизация всех публикаций по
определенной проблеме. Как можно охарактеризовать эти функ­
ции сточки зрения структуры и этапов информационного обес­
печения?
6. К какому этапу цикла функционирования информационных сис­
тем относится извещение абонента читального зала об исполне­
нии заказа на интересующую его книгу, журнал?
7. Чем отличается база данных от информационного массива?
8. Каково соотношение понятий банка данных и базы да1 шых?
9. К какому типу информационных систем можно отнести картоте­
ку личных дел сотрудников организации?
10. Какого типа информационную систему наиболее целесообразно
создавать для информационного обеспечения снабжения товара­
ми сети магазинов торговой комши ши?
32
Вопросы и упражнения
11. Чем отличается инфологическая схема предметной области ин­
формационной системы от схемы ее базы данных?
12. Какие атрибуты или совокупности атрибутов объектов «Образо­
вание» (наименование учебного заведения, год поступления, год
окончания, квалификация, специальность, № диплома), «Имуще­
ство» (инв. №, наименование, тип, дата приобретения) могут ис­
полнять роль ключей?
13. Каковы типы отноши шй-связей между объектами (сущностями)
«Счет»—«Банк», «Товары»—«Поставщики», «Студенты»—«Пре­
подаватели» и «Автомобиль»—«Паспорт Tpai icnopn юго средства
(ПТС)»?
зз
2. СУБД фактографических информационных систем
2. Системы управления базами
данных фактографических
информационных систем
История СУБД как особого вида программного обеспече­
ния неразрывно связана с историей начала использования элек­
тронно-вычислительных машин для организации хранения и
обработки информации. Именно в то время (конец 60-х, начало
70-х годов) были разработаны основы программного обеспече­
ния для создания и эксплуатации фактографических информа­
ционных систем. В конце 70-х, начале 80-х годов направление
программного обеспечения под общим названием «СУБД» пре­
вратилось в одну из наиболее бурно развивающихся отраслей
программной индустрии.
При этом основные программно-математические и техно­
логические решения по СУБД были разработаны в 70-х годах в
ряде крупных исследовательских проектов. Наиболее извест­
ными из них являются проект «Рабочей группы по базам дан­
ных» КОДАСИЛ (DBTG CODASYL) с участием уже упоми­
навшегося Ч. Бахмана, пионерские работы основателя теории
реляционных баз данных Е. Кодда, проект разработки системы
управления реляционными базами данных «System R» фирмы
IBM (1975-1979 гг.) и проект разработки СУБД «Ingres»
(Interactive Graphics and Retrieva/System) в университете Берк­
ли (1975-1980 гг.) под руководством известного специалиста в
области баз данных М. Стоунбрейкера.
2.1. Функции, классификация и структура
СУБД
С начала своего возникновения в конце 60-х годов автома­
тизированные информационные системы ориентировались на
хранение и обработку больших объемов данных, которые не
34
1,1. Функции, классификация и структура СУБД
могли быть одновременно и полностью размещены в оператив­
ной памяти ЭВМ.
В структуре программного обеспечения ЭВМ, как в то вре­
мя, так и сейчас, за организацию, размещение и оперирование
данными во внешней (долговременной) памяти отвечает опе­
рационная система ЭВМ, соответствующий компонент которой
чаще всего называется «файловой системой». Данные во внеш­
ней памяти компьютера представлены именованными совокуп­
ностями, называемыми файлами. В большинстве случаев опе­
рационная (файловая) система не «знает» внутренней смысло­
вой логики организации данных в файлах и оперирует с ними
как с однородной совокупностью байтов или строк символов.
С точки зрения смысла и назначения АИС файлы данных
имеют структуру, отражающую информационно-логическую
схему предметной области АИС. Эта структура данных в фай­
лах должна обязательно учитываться в операциях обработки
(собственно, в этом и заключается одна из основных функций
АИС). Вместе с тем, в силу невозможности в большинстве слу­
чаев размещения файлов баз данных сразу целиком в оператив­
ной памяти компьютера, структуру данных в файлах баз дан­
ных приходится учитывать при организации операций обраще­
ния к файлам во внешней памяти.
Отсюда вытекает основная особенность СУБД как вида
программного обеспечения. Будучи по природе прикладным
программным обеспечением, т. е. предназначенным для реше­
ния конкретных прикладных задач, СУБД изначально выпол­
няли и системные функции — расширяли возможности файло­
вых систем системного программного обеспечения.
В общем плане можно выделить следующие функции, ре­
ализуемые СУБД:
• организация и поддержание логической структуры дан­
ных (схемы базы данных);
• организация и поддержание физической структуры дан­
ных во внешней памяти;
• организация доступа к данным и их обработка в опера­
тивной и внешней памяти.
35
2. СУБД фактографических информационных систем
Организация и поддержание логической структуры дан­
ных (схемы базы данных) обеспечивается средствами модели
организации данных1. Модель данных определяется способом
организации данных, ограничениями целостности и множе­
ством операций, допустимых над объектами организации дан­
ных. Соответственно модель данных разделяют на три состав­
ляющие — структурную, целостную и манипуляционную.
Известны три основные модели организации данных:
• иерархическая;
а сетевая;
а реляционная.
Модель данных, реализуемая СУБД, является одной из ос­
новных компонент, определяющих функциональные возможно­
сти СУБД по отражению в базах данных информационно-логи­
ческих схем предметных областей АИС. Модель организации
данных, по сути, определяет внутренний информационный язык
автоматизированного банка данных, реализующего автоматизи­
рованную информационнуюсистему.
Модели данных, поддерживаемые СУБД, довольно часто
используются в качестве критерия для классификации СУБД.
Исходя из этого, различают иерархические СУБД, сетевые
СУБД и реляционные СУБД.
Другой важной функцией СУБД является организация и
поддержание физической структуры данных во внешней па­
мяти. Эта функция включает организацию и поддержание
внутренней структуры файлов базы данных, иногда называе­
мой форматом файлов базы данных, а также создание и под­
держание специальных структур (индексы, страницы) для эф­
фективного и упорядоченного доступа к данным. В этом плане
эта функция тесно связана с третьей функцией СУБД — орга­
низацией доступа к данным.
Организация и поддержание физической структуры данных
во внешней памяти может производиться как на основе штат­
ных средств файловых систем, так и на уровне непосредствен­
ного управления СУБД устройствами внешней памяти.
' В обиходе просто «модель данных».
36
2.1. Функции, классификация и структура СУБД
Организация доступа к данным и их обработка в опера­
тивной и внешней памяти осуществляется через реализацию
процессов, получивших название транзакций. Транзакцией на­
зывают последовательную совокупность операций, имеющую от­
дельное смысловое значение по отношению к текущему состо­
янию базы данных. Так, например, транзакция по удалению от­
дельной записи в базе данных последовательно включает
определение страницы файла данных, содержащей указанную
запись, считывание и пересылку соответствующей страницы в
буфер оперативной памяти, собственно удаление записи в буфе­
ре ОЗУ, проверку ограничений целостности по связям и другим
параметрам после удаления и, наконец, «выталкивание» и фик­
сацию в файле базы данных нового состояния соответствующей
страницы данных.
Транзакции принято разделять на две разновидности—из­
меняющие состояние базы данных после завершения транзак­
ции и изменяющие состояние БД лишь временно, с восстановле­
нием исходного состояния данных после завершения транзак­
ции. Совокупность функций СУБД по организации и управлению
транзакциями называют монитором транзакций.
Транзакции в теории и практике СУБД по отношению к базе
данных выступают внешними процессами, отождествляемыми
с действиями пользователей банка данных. При этом источни­
ком, инициатором транзакций может быть как один пользова­
тель, так и несколько пользователей сразу. По этому критерию
СУБД классифицируются на однопользовательские (или так
называемые «настольные») и многопользовательские («тяже­
лые», «промышленные») СУБД. Соответственно в многопользо­
вательских СУБД главной функцией монитора транзакций явля­
ется обеспечение эффективного совместного выполнения тран­
закций над общими данными сразу от нескольких пользователей.
Непосредственная обработка и доступ к данным в большин­
стве СУБД осуществляется через организацию в оперативной
памяти штатными средствами операционной системы или соб­
ственными средствами системы буферов оперативной памяти,
куда на время обработки и доступа помещаются отдельные ком37
2. СУБД фактографических информационных систем
поненты файла базы данных (страницы). Поэтому другой состав­
ной частью функций СУБД по организации доступа и обработки
данных является управление буферами оперативной памяти.
Еще одной важной функцией СУБД с точки зрения органи­
зации доступа и обработки данных является так называемая журнализация всех текущих изменений базы данных. Журнализация представляет собой основное средство обеспечения сохран­
ности данных при всевозможных сбоях и разрушениях данных.
Во многих СУБД для нейтрализации подобных угроз создается
журнал изменений базы данных с особым режимом хранения и
размещения. Вместе с установкой режима периодического со­
хранения резервной копии БД журнал изменений2 при сбоях и
разрушениях данных позволяет восстанавливать данные по про­
изведенным изменениям с момента последнего резервирования
до момента сбоя. Во многих предметных областях АИС (напри­
мер, БД с финансово-хозяйственными данными) такие ситуации
сбоя и порчи данных являются критическими и возможности вос­
становления данных обязательны для используемой СУБД.
Исходя из рассмотренных функций, в структуре СУБД в
современном представлении можно выделить следующие фун­
кциональные блоки:
• процессор описания и поддержания структуры базы дан­
ных;
• процессор запросов к базе данных;
• монитор транзакций3;
• интерфейс ввода данных;
• интерфейс запросов;
• интерфейс выдачи сведений;
• генератор отчетов.
Схематично взаимодействие компонент СУБД представле­
но на рис. 2.1.
Ядром СУБД является процессор описания и поддержа­
ния структуры базы данных. Он реализует модель организа2
Резервная копия БД и журнал изменений, как правило, размещаются на отдель­
ных от основного файла БД носителях.
' Как правило, в однопользовательских СУБД монитор транзакций в виде отдель­
ного функционального элемента СУБД не реализуется и не выделяется.
38
2.1. Функции, классификация и структура СУБД
/f Абонент-
"йюставщик
деформации
ыки
Интерфейс
инструментальная
ввода данных
среда
создания
....интерфейса.
Интерфейс
выдачи
Ч_
••->
*г
^
Si-
Проектиров/администfp.paiop
Абонентпотребитель
информации
Генератор
отчетов
У
Монитор транзакций
Процессор описания и
поддержания струкурыбазы
данных
Процессор
запросов
Я5
'Вкзад'ших:
Рис. 2.1. Структура и взаимодействие компонент СУБД
ции данных, средствами которой проектировщик строит логи­
ческую структуру (схему) базы данных, соответствующую инфологической схеме предметной области АИС, и обеспечивает
построение и поддержание внутренней схемы базы данных.
Процессором описания и поддержания структуры данных
в терминах используемой модели данных (иерархическая, се­
тевая, реляционная) обеспечиваются установки заданной ло­
гической структуры базы данных, а также трансляция (пере­
вод) структуры базы данных во внутреннюю схему базы дан­
ных (в физические структуры данных). В АИС на базе
реляционных СУБД процессор описания и поддержания струк­
туры базы данных реализуется на основе языка базы данных,
являющегося составной частью языка структурированных
запросов (SQL).
Интерфейс ввода данных СУБД реализует входной инфор­
мационный язык банка данных, обеспечивая абонентам-постав­
щикам информации средства описания и ввода данных в ин-
39
2. СУБД фактографических информационных систем
формационную систему. Одной из современных тенденций раз­
вития СУБД является стремление приблизить входные инфор­
мационные языки и интерфейс ввода к естественному языку
общения с пользователем в целях упрощения эксплуатации ин­
формационных систем так называемых «неподготовленными»
пользователями. Данная проблема решается через применение
диалоговых методов организации интерфейса и использование
входных форм. Входные формы, по сути, представляют собой
электронные аналоги различного рода анкет, стандартизован­
ных бланков и таблиц, широко используемых в делопроизвод­
стве и интуитивно понятных большинству людей (неподготов­
ленных пользователей). Интерфейс ввода при этом обеспечи­
вает средства создания, хранения входных форм и их
интерпретацию в терминах описания логической структуры
базы данных для передачи вводимых через формы сведений про­
цессору описания и поддержания структуры базы данных.
Интерфейс запросов совместно с процессором запросов
обеспечивает концептуальную модель использования инфор­
мационной системы в части стандартных типовых запросов, от­
ражающих информационные потребности пользователей-або­
нентов системы. Интерфейс запросов предоставляет пользова­
телю средства выражения своих информационных
потребностей. Современной тенденцией развития СУБД явля­
ется использование диалогово-наглядных средств в виде спе­
циальных «конструкторов» или пошаговых «мастеров» форми­
рования запросов.
Процессор запросов интерпретирует сформированные зап­
росы в терминах языка манипулирования данными и совмес­
тно с процессором описания и поддержания структуры базы
данных собственно и исполняет запросы. В реляционных СУБД
основу процессора запросов составляет язык манипулирования
данными, являющийся основной частью языка SQL. Тем са­
мым на базе процессора запросов и процессора описания и под­
держания структуры базы данных образуется низший уровень
оперирования данными в СУБД, который иногда называют ма­
шиной данных. Стандартные функции и возможности маши40
2.1. Функции, классификация и структура СУБД
ны данных используют компоненты СУБД более высокого по­
рядка (см. рис. 2.1), что позволяет разделить и стандартизиро­
вать компоненты СУБД и банка данных на три уровня—логи­
ческий уровень, машина данных и собственно сами данные.
Функции монитора транзакций, как уже отмечалось, зак­
лючаются в организации совместного выполнения транзакций
от нескольких пользователей над общими данными. При этом
дополнительной функцией, неразрывно связанной, в том числе
и с основной функцией, является обеспечение целостности дан­
ных и ограничений надданными, определяемыми правилами
предметной области АИС.
Интерфейс выдачи СУБД получает от процессора запро­
сов результаты исполнения запросов (обращений к базе дан­
ных) и переводит эти результаты в форму, удобную для воспри­
ятия и выдачи пользователю-абоненту информационной систе­
мы. Для отображения результатов исполнения запросов в
современных СУБД используются различные приемы, позво­
ляющие «визуализировать» данные в привычной и интуитивно
понятной неподготовленному пользователю форме. Обычно для
этого применяются табличные способы представления струк­
турированных данных, а также специальные формы выдачи
данных, представляющие также, как и формы ввода, электрон­
ные аналоги различных стандартизованных бланков и отчетов
в делопроизводстве.
Формы выдачи лежат также и в основе формирования так
называемых «отчетов», выдающих результаты поиска и отбо­
ра информации из БД в письменной форме для формализован­
ного создания соответствующих текстовых документов, т. е. для
документирования выводимых данных. Для подобных целей в
состав современных СУБД включаются генераторы отчетов.
В заключение по структуре и составу СУБД следует также
добавить, что современные программные средства, реализую­
щие те или иные СУБД, представляют собой совокупность ин­
струментальной среды создания и использования баз дан­
ных в рамках определенной модели данных (реляционной, се­
тевой, иерархической или смешанной) и языка СУБД (язык
41
2. СУБД фактографических информационных систем
описания данных, язык манипулирования данными, язык и сред­
ства создания интерфейса). На основе программных средств
СУБД проектировщики строят в целях реализации конкретной
информационной системы (инфологическая схема предметной
области, задачи и модель использования, категории пользова­
телей и т. д.) автоматизированный банк данных, функциониро­
вание которого в дальнейшем поддерживают администраторы
системы и услугами которого пользуются абоненты системы.
2.2. Модели организации данных
2.2.1. Иерархическая и сетевая модели
организации данных
В иерархической модели объекты-сущности и отношения
предметной области представляются наборами данных, кото­
рые имеют строго древовидную структуру, т. е. допускают толь­
ко иерархические (структурные) связи-отношения. Иерархичес­
кая модель данных была исторически первой, на основе кото­
рой в конце 60-х-начале 70-х годов были разработаны первые
профессиональные СУБД-СУБД IMS (Information Management
System) фирмы IBM, СУБД Tota/для компьютеров НРЗООО. К
иерархическим СУБД также относятся отечественные промыш­
ленные СУБД 70-80-х годов «ОКА» и «ИНЭС».
База данных с иерархической моделью данных состоит из
упорядоченного набора экземпляров структуры типа «дерево»,
что иллюстрируется примером на рис. 2.2.
В приведенном примере информационный объект «Отде­
лы» является предком информационного объекта «Подразде­
ления», который, в свою очередь, является предком информа­
ционного объекта «Сотрудники». Объект «Подразделения» яв­
ляется потомком объекта «Отделы», а объект «Сотрудники»
потомком объекта «Подразделения». Экземпляры потомка с об­
щим предком называются близнецами.
42
2.2. Модели организации данных
ОТДЕЛЫ
I'I и т д п :
_ - J
,
^-J
Н П
i/rf №d№ у V
Ч •
ч
Й"^^"1ГЧГ" *>".1 W « B »"4ff И * •«•••• •
дник 4
п ••
L
и"»РУДНИК 3
1
1
Сотрудник 2
• Сотрудник 1
Рис. 2.2. Пример иерархической организации данных
В иерархической модели устанавливается строгий поря­
док обхода дерева (сверху-вниз, слева-направо) и следующие
операции над данными:
• найти указанное дерево (например, отдел № 3);
• перейти от одного дерева к другому;
• перейти от одной записи к другой (например, от отдела к
первому подразделению);
• перейти от одной записи к другой в порядке обхода иерар­
хии;
• удалить текущую запись.
Основное внимание в ограничениях целостности в иерар­
хической модели уделяется целостности ссылок между пред­
ками и потомками с учетом основного правила: никакой пото­
мок не может существовать без родителя.
Сетевая модель является расширением иерархической и
широко применялась в 70-е годы в первых СУБД, использовав­
шихся крупными корпорациями для создания информационных
43
2. СУБД фактографических информационных систем
систем (СУБД IDMS — Integrated Database Management System
компании Cu//inet Software Inc., СУБД IDS, отечественные
СУБД «СЕТЬ», «БАНК», «СЕТОР»). Одним из идеологов кон­
цепции сетевой модели являлся Ч. Бахман. Эталонный вари­
ант сетевой модели данных, разработанный с участием Бахмана, был описан в проекте «Рабочей группы по базам данных»
КОДАСИЛ P B T G CODASYL).
В отличие от иерархической, в сетевой модели объект-по­
томок может иметь не одного, а вообще говоря, любое количе­
ство объектов-предков. Тем самым допускаются любые связиотношения, в том числе и одноуровневые. В результате сущно­
сти и отношения предметной области АИС представляются
графом любого (не только древовидного) типа. Пример такой
организации данных приведен на рис. 2.3.
Рис. 2.3. Пример сетевой организации данных
Сетевая СУБД состоит из одного или нескольких типов за­
писей (типов информационных объектов) и набора типов свя44
2.2. Модели организации данных
зей между ними. Каждый тип записей представлен в БД набо­
ром экземпляров записей данного типа. Аналогично каждый
тип связи представлен набором экземпляров связей данного
типа между конкретными экземплярами типов записей. В при­
веденном на рис. 2.3 примере типами записей являются «Орга­
низация», «Сотрудник», «Банк», «Счет», а типами связей—«Со­
вместительство», «Основная работа», «Вклады», «Накопления».
При этом тип записи «Счет» имеет двух предков — «Сотруд­
ник» и «Банк», экземпляр типа записи «Сотрудник» может иметь
два предка (по связям «Основная работа» и «Совместитель­
ство»), являющихся различными экземплярами типа записи
«Организация».
Для данного типа связи L между типом записи предка Р и
типом записи потомка С выполняются следующие условия:
• каждый экземпляр типа Р является предком только в од­
ном экземпляре L;
• каждый экземпляр С является потомком не более чем в
одном экземпляре L.
В рамках сетевой модели возможны следующие ситуации:
а тип записи потомка в одном типе связи L\ может быть
типом записи предка в другом типе связи L2 (как в иерархичес­
кой модели);
а данный тип записи Р может быть типом записи потомка
в любом числе типов связи;
а может существовать любое число типов связи с одним и
тем же типом записи предка и одним и тем же типом записи
потомка;
а если£1 \\L2 — два типа связи с одним и тем же типом
записи предка Р и одним и тем же типом записи потомка С, то
правила, по которым образуется родство, в разных связях мо­
гут различаться;
а типы записей X и Y могут быть предком и потомком
одной связи и потомком и предком в другой; предок и потомок
могут быть одного типа записи (связь типа «петля»).
В сетевой модели устанавливаются следующие операции
надданными:
45
2. СУБД фактографических информационных систем
• найти конкретную запись (экземпляр) в наборе однотип­
ных записей;
• перейти от предка к первому потомку по некоторой связи;
• перейти к следующему потомку по некоторой связи;
• создать новую запись;
• уничтожить запись;
• модифицировать запись;
• включить в связь;
• исключить из связи;
• переставить в другую связь.
Реализация связей и сведений по ним в виде отдельных за­
писей в БД обеспечивает одну важную отличительную особен­
ность сетевых СУБД-навигацию по связанным данным. Сете­
вые СУБД обеспечивают возможность непосредственной «на­
вигации» (перехода) от просмотра реквизитов экземпляра
одного типа записи (например, «Организация») к просмотру рек­
визитов экземпляра связанного типа записей (например, «Со­
трудник»). Тем самым пользователю предоставляется возмож­
ность многокритериального анализа базы данных без непосредственной формализации своих информационных
потребностей через формирование запросов на специальном
языке, встроенном в СУБД. Поэтому СУБД с сетевой организа­
цией данных иногда еще называют СУБД с навигацией.
Другой сильной стороной сетевой модели в немногих при­
мерах современной реализации сетевых СУБД является также
использование множественных типов данных для описания
атрибутов информационных объектов (записей), что позволяет
создавать информационные структуры, которые хорошо отра­
жают традиционную табличную форму представления струк­
турированных данных. К примеру, при описании типа записи
«Сотрудник» в сетевой модели можно ввести реквизит «Имена
детей», характер значений которого является множественным.
Сетевая модель позволяет наиболее адекватно отражать
инфологические схемы сложных предметных областей. Вмес­
те с тем, несмотря на появление в конце 70-х годов стандарта
по сетевой модели данных КОДАСИЛ, не получила широкого
46
2.2. Модели организации данных
распространения ни одна из попыток создания языковых про­
граммных средств, которые позволили бы в разных приклад­
ных информационных системах одинаковым образом описы­
вать данные с сетевой организацией. В результате в сетевых
СУБД данные оставались жестко связанными как с самой СУБД,
так и с прикладными компонентами АИС, что затрудняло спе­
циализацию в развитии программных компонент СУБД сете­
вого типа и объективно затормаживало процесс их развития.
2.2.2. Реляционная модель организации данных
В реляционной модели объекты-сущности инфологической схемы предметной области АИС представляются плоски­
ми таблицами данных. Столбцы таблицы, называемые полями
базы данных, соответствуют атрибутам объектов-сущностей инфологической схемы предметной области. Множество атомар­
ных значений атрибута называется доменом. Так доменом для
поля «Имя» является множество всех возможных имен. Различ­
ные атрибуты могут быть определены на одном и том же доме­
не—например, атрибуты «Год поступления» (в вуз) и «Год окон­
чания» определены на одном и том же домене, являющемся пе­
речнем дат определенного диапазона.
Строки таблицы, представляющие собой различные соче­
тания значений полей из доменов, называются кортежами (в
обиходе просто записями) базы данных и соответствуют эк­
земплярам объектов-сущностей инфологической схемы пред­
метной области.
Считается, что сильной стороной реляционных баз данных
является развитая математическая теория, лежащая в их осно­
ве — реляционная алгебра. Само слово «реляционная» проис­
ходит от англ. relation — отношение. Но в случае реляционных
баз слово «отношение» выражает не взаимосвязь между табли­
цами-сущностями, а определение самой таблицы как матема­
тического отношения доменов4.
4
Для любителей математики — отношением тлиглстся подмножество декарто­
ва произведения множеств, роль которых в данном случае играют домены, таким обра­
зом тиблица — это отношение доменов, а строки таблицы (кортеж:») — элементы
отношения доменов.
47
2. СУБД фактографических информационных систем
Ключевому атрибуту объекта-сущности, который иденти­
фицирует (определяет, отличает от других) конкретный экзем­
пляр объекта, в таблице соответствует ключевое поле (так на­
зываемый ключ таблицы). Примером ключа в таблице «Отде­
лы» может быть поле «Номер отдела» или поле «Наименование
отдела». В тех случаях, когда конкретную запись таблицы иден­
тифицирует значение не одного поля, а совокупность значений
нескольких полей, тогда все эти поля считаются ключевыми, а
ключ таблицы является составным. Примером такой ситуации
может служить таблица «Сотрудники», роль составного ключа
в которой может играть совокупность полей «Фамилия», «Имя»,
«Отчество»5.
Ключевое поле для созданной записи (заполненной строки
таблицы) впоследствии обновиться (изменить значение) уже не
может.
В некоторых таблицах роль ключа могут играть сразу не­
сколько полей или групп полей. Например, в той же таблице
«Сотрудники» может быть определен второй ключ «Номер пас­
порта», который также может идентифицировать конкретную
запись (экземпляр) объекта «Сотрудник». В этих случаях один
из ключей объявляется первичным. Значения непервичных клю­
чей, которые называются возможными, в отличие от первич­
ных ключей могут обновляться.
Совокупность определенных для таблицы-отношения по­
лей, их свойства (ключи и пр.) составляют схему таблицы-от­
ношения. Две отдельные таблицы-отношения с одинаковой схе­
мой называются односхемными.
Как уже отмечалось, таблица в реляционной модели отра­
жает определенный объект-сущность из инфологической схе­
мы предметной области АИС. Отношения-связи объектов-сущ­
ностей в реляционной модели устанавливаются через введение
в таблицах дополнительных полей, которые дублируют ключе­
вые поля связанной таблицы. К примеру, связь между таблицей
«Сотрудники» и таблицей «Отделы» устанавливается через вве5
В той ситуации, когда исключается полное совпадение фамилии, имени и отче­
ства у разных сотрудников.
48
2.2. Модели организации данных
дение копии ключевого поля «Номер отдела» из таблицы «От­
делы» в таблицу «Сотрудники»—см. рис. 2.4. Такие поля, дуб­
лирующие ключи связанной таблицы, называются внешними
ключами.
Сотрудники
эд* ФыШЛНЯ
Имя
о™*™ Й5?
Рис. 2.4. Пример связи в реляционных
\
Отделы
отдела
Наимено­ Руководи­ Кол-во
вание
тель
сотр.
таблицах
На приведенном рисунке ключевые поля таблиц обведены
жирными рамками, а поле с внешним ключом —двойной рам­
кой.
Так как значения первичного ключа уникальны, т. е. не мо­
гут повторяться (в таблице «Отделы» может быть только один
кортеж по, к примеру, 710-му отделу), а значения других полей
и, в частности, внешнего ключа могут повторяться (в таблице
«Сотрудники» может быть несколько строк-кортежей сотруд­
ников по 710-му отделу), то такой механизм автоматически обес­
печивает связь типа «Один-ко-многим». Отсюда также можно
заключить, что связи между таблицами типа «Один-к-одному»
в реляционной модели автоматически обеспечиваются при оди­
наковых первичных ключах, например между таблицей «Со­
трудник» с ключом «Таб_№» и таблицей «Паспорт» с таким же
ключом.
Другой вывод, который следует из анализа данного меха­
низма реализации связей, заключается в том, что реляционная
модель не может непосредственно отражать связи типа «Многие-ко-многим», что объективно снижает возможности реляци­
онной модели данных при отражении сложных предметных об­
ластей.
Таким образом, структурная составляющая реляционной
модели определяется небольшим набором базовых понятий —
таблица-отношение, схема таблицы-отношения, домен, полеатрибут, кортеж-запись (строка), ключ, первичный ключ, вто49
2. СУБД фактографических информационных систем
ричный ключ, внешний ключ (отсылка). Данный набор поня­
тий позволяет описывать естественным образом, близким к
понятийному аппарату диаграмм Бахмана, большинство мифо­
логических схем не слишком сложных предметных областей.
Это обстоятельство как раз и способствовало интенсивному
развитию реляционных СУБД в 80-х-90-х годах.
Ограничения целостности {целостная составляющая) ре­
ляционной модели можно разделить на две группы—требова­
ние целостности сущностей и требование целостности ссы­
лок.
Требование целостности сущностей в общем плане зак­
лючается в требовании уникальности экземпляров объектов
инфологической схемы, отображаемых средствами реляцион­
ной модели. Экземплярам объектов инфологической схемы в
реляционной модели соответствуют кортежи-записи таблицотношений. Поэтому требование целостности сущностей зак­
лючается в требовании уникальности каждого кортежа.
Отсюда вытекают следующие ограничения:
а отсутствие кортежей дубликатов (данное требование ре­
ализуется не через требование отсутствия совпадения значе­
ний одновременно по всем полям, а лишь по полям первичных
ключей, что обеспечивает определенную гибкость в описании
конкретных ситуаций в предметных областях АИС);
• отсутствие полей с множественным характером значе­
ний атрибута (данное ограничение по отношению к весьма ти­
пичным ситуациям при описании реальных предметных обла­
стей в реляционной модели обеспечивается так называемой нор­
мализацией таблиц-отношений, т. е. разбиением исходной
таблицы на две или более связанные таблицы с единичным ха­
рактером значений полей-атрибутов).
Требование целостности ссылок заключается в том, что
для любого кортежа-записи с конкретным значением внешнего
ключа (отсылки) должен обязательно существовать кортеж свя­
занной таблицы-отношения с соответствующим значением пер­
вичного ключа. Простым примером этого очевидного требова­
ния является таблица-отношение «Сотрудники» с внешним клю50
2.2. Модели организации данных
чом «№ отдела» и отсылаемая (связанная) таблица «Отделы» с
первичным ключом «№ отдела» (см. рис. 2.4). Если существу­
ет кортеж-запись «Иванов», работающий в отделе № 710, то в
таблице «Отделы» обязательно должен быть кортеж-запись с
соответствующим номером отдела (каждый сотрудник должен
обязательно в каком-либо отделе хотя бы числиться).
Теоретико-множественный характер реляционных таблицотношений требует также отсутствия упорядоченности кор­
тежей и отсутствия упорядоченности полей-атрибутов. От­
сутствие упорядоченности записей-кортежей в таблицах-отно­
шениях усложняет поиск нужных кортежей при обработке
таблиц. На практике с целью создания условий для быстрого
нахождения нужной записи таблицы без постоянного упорядо­
чения (переупорядочения) записей при любых изменениях дан­
ных вводят индексирование полей (обычно ключевых). Индек­
сирование полей, или лучше сказать создание индексных мас­
сивов, является типовой распространенной операцией
практически во всех СУБД, поддерживающих и другие, не ре­
ляционные модели данных, и заключается в построении допол­
нительной упорядоченной информационной структуры для бы­
строго доступа к записям-кортежам.
Все операции надданными в реляционной модели (манипуляционная составляющая) можно разделить на две группы—
операции обновления таблиц-отношений и операции обработ­
ки таблиц-отношений.
К операциям обновления относятся:
а операция ВКЛЮЧИТЬ —добавляет новый кортеж (стро­
ку-запись) в таблицу-отношение. Требует задания имени таб­
лицы и обязательного значения ключей. Выполняется при ус­
ловии уникальности значения ключа. Добавить новую строкузапись со значением ключа, которое уже есть в таблице,
невозможно;
о операция УДАЛИТЬ — удаляет одну или группу корте­
жей (строк-записей). Требует задания имени таблицы, имени
поля (группы полей) и параметров значений полей, кортежи с
которыми должны быть удалены;
51
2. СУБД фактографических информационных систем
о операция ОБНОВИТЬ — изменяет значение не ключе­
вых полей у одного или группы кортежей. Требует задания име­
ни таблицы-отношения, имен полей и их значений для выбора
кортежей и имен изменяемых полей.
Особенностью операций обработки в реляционной модели
по сравнению с иерархической и сетевой моделью является то,
что в качестве единичного элемента обработки выступает не
запись (экземпляр объекта), а таблица в целом, т. е. множество
кортежей (строк-записей). Поэтому все операции обновления
являются операциями надмножествами и их результатом яв­
ляется также множество, т. е. новая таблица-отношение. К
операциям обновления относятся следующие операции:
а операция ОБЪЕДИНЕНИЕ—выполняется над двумя
односхемными таблицами-отношениями. Результатом объеди­
нения является построенная по той же схеме таблица-отноше­
ние, содержащая все кортежи первой таблицы-отношения и все
кортежи второй таблицы-отношения. При этом кортежи-дуб­
ликаты в итоговой таблице устраняются;
а операция ПЕРЕСЕЧЕНИЕ — выполняется также над
двумя односхемными таблицами-отношениями. Результатом яв­
ляется таблица-отношение, построенная по той же схеме и со­
держащая только те кортежи первой таблицы-отношения, ко­
торые входят также в состав кортежей второй таблицы-отно­
шения. Для примера рассмотрим таблицу «Сотрудники» со
схемой (полями) «ФИО», «Год рождения», «Национальность»
и таблицу «Вкладчики банка «НАДЕЖНЫЙ» стой же схемой.
Результатом их пересечения будет новая таблица с той же схе­
мой, содержащая кортежи только тех сотрудников, которые
имеют вклады в банке «НАДЕЖНЫЙ», что иллюстрируется
примером, приведенным на рис. 2.5;
• операция ВЫЧИТАНИЕ — выполняется также над дву­
мя односхемными таблицами-отношениями. Результатом явля­
ется таблица-отношение, построенная по той же схеме и со­
держащая только те кортежи первой таблицы-отношения, ко­
торых нет в составе кортежей второй таблицы-отношения.
Результатом операции вычитания над таблицами в предыдущем
52
2.2. Модели организации данных
Первая таблица
"Сотрудники"
Фамилия
Иванов
Петров
Сидоров
Егоров
Год
рождения
1958
1961
1972
1968
Вторая таблица
"Вкладчики Банка
"НАДЕЖНЫЙ""
Фамилия
Год
рождения
Иванов
Сидоров
Сергеев
Морозов
1958
1972
1973
1956
Пересечение
"Сотрудники, имеющие
вклады в банке
"НАДЕЖНЫЙ""
Фамилия
Иванов
Сидоров
Год
рождения
1958
1972
Рис. 2.5. Пример операции ПЕРЕСЕЧЕНИЕ
примере будет новая таблица с той же схемой, содержащая кор­
тежи только тех сотрудников, которые не имеют вкладов в бан­
ке «НАДЕЖНЫЙ»;
• операция ПРОИЗВЕДЕНИЕ (ДЕКАРТОВО) — выпол­
няется над таблицами-отношениями с разными схемами. Резуль­
татом является таблица-отношение, схема которой включает все
поля первой и все поля второй таблицы. Кортежи (строки-за­
писи) результирующей таблицы образуются путем последова­
тельного сцепления каждого кортежа первой таблицы-отноше­
ния к каждому кортежу второй таблицы-отношения. Количе­
ство кортежей результирующей таблицы соответственно равно
произведению количества кортежей первой таблицы на коли­
чество кортежей второй таблицы. На рис. 2.6 иллюстрируется
пример операции произведения;
а операция ВЫБОРКА (горизонтальное подмножество)—
выполняется над одной таблицей-отношением. Результатом яв­
ляется таблица-отношение той же схемы, содержащая подмно­
жество кортежей исходной таблицы-отношения, удовлетворя­
ющих условию выборки;
• операция ПРОЕКЦИЯ (ВЕРТИКАЛЬНОЕ ПОДМНО­
ЖЕСТВО) —также выполняется над одной таблицей-отноше­
нием. Результатом является новая таблица-отношение, схема ко­
торой содержит только некоторое подмножество полей исходНой таблицы-отношения. Каждому кортежу исходной таблицы
53
2. СУБД фактографических информационных систем
1Ш8
Вторая таблица
"Сотрудники
"Прохождение
обследования*
1-го отдела'
Вид
Фамилия и
обследования Дата
инициалы
Сердечио-еосу1.12
Иванов И И
дистой системы
Петров П.Д.
Желудочно-ки­
8.12
шечного тракта
ЕййШШШК
"Прохождение обследования
сотрудниками 1-го отдела"
Фачилими
Вид
Дата
обследования
инициалы
Иванов И. И. Сердечно-сосу­
1 12
дистой системы
Иванов ИИ Желудочно-ки­
8.12
шечного тракта
Петров ТХП. Сердечко-еосу1.12
янстой системы
Желудочно-киПетров П.П.
8.12
..шечнот.гаат .
Рис. 2.6. Пример операции произведения
соответствует кортеж итоговой таблицы, образованный соот­
ветствующими значениями по полям, вошедшим в итоговую
таблицу-отношение. При этом в итоговой таблице кортежи-дуб­
ликаты устраняются и поэтому мощность итоговой таблицы (ко­
личество кортежей) может быть равна или меньше исходной.
На рис. 2.7 приведен пример операции проекции;
Исходная таблица
Проекция на поля "Место работы" и 'Банк"
"Члены неформальной группы "ДИКИЕ "Организации и банки неформальной группы
ЭКОЛОГИ""
"ДИКИЕ ЭКОЛОГИ"
Фамилия и
Банк
Место работы
Место работы
Банк
инициалы
Быков Б. Б.
ЗАО "Дикое поле"
"Надежный" ЗАО "Дикое поле" "Надежный"
Волков ВВ.
ЗАО" Никое поле"
"Надежный" ЗАО" Дикое поле" "Солидный"
Зайцев 3.3.
ЗАО "Дикое поле"
"Солидный" ОАО "Рога и копыта" 'Прибыльный"
Лисицын Л Л. ОАО "Рога и копыта' "Прибыльный" ОАО "Рога и копыта" "Альтруист"
Медведев M.W ОАО "Рога и копыта" "Альтруист" СП "Степь"
"Альтруист"
Рысин P.P.
ЗАО "Дикое поле"
"Солидный" ООО "Море"
" Солидный"
Хомяков Х.Х СП "Степь"
"Альтруист"
Щукин Щ.Щ. ООО "Море"
"Солидный"
Рис. 2.7. Пример операции проекции
а операция СОЕДИНЕНИЕ—выполняется над таблица­
ми-отношениями с разными схемами. В каждой таблице-отно­
шении выделяется поле, по которому будет осуществляться со­
единение. При этом оба поля должны быть определены на од­
ном и том же домене. Схема итоговой таблицы-отношения
включает все поля первой таблицы и все поля второй таблицы
54
2.2. Модели организации данных
(как в произведении). Кортежи итоговой таблицы-отношения
образуются путем сцепления каждого кортежа из первой таб­
лицы стеми кортежами второй таблицы, значения которых по
полю сцепления одинаковы. На рис. 2.8 приведен пример опе­
рации соединения;
Первая таблица
Документы с
охраняемыми
сведениями по ОКЕ
" Закрытая"
Вторая таблица
Журнал выдачи
документов сотрудникам
РегМ Тематика
РегМо
13/1 -с
251-сс
1455-е
И-43с
12435
654 32
251-сс
И-43с
123-я/с
345
1455-е
675-н/с
И-43с
Топливо
Боезавяд
Двигатель
Привод
Да.
та
1.11
1.11
2.11
2.11
3.11
3.11
4.11
4.11
311
Фамилия и
инициалы
Иванов И.И.
Иванов П. П.
Петров П.П.
Сидоров С.С
Петров П.П.
Егоров Е.Е.
Петров П.П
Сидоров С.С
IIerooBlI.II
Соединение по полю" Рег.Ыя"
Сотрудники, работавшие с
документами, содержащими
охраняемые сведения
Да­
та
Боезаряд 2.11
Двигатель 4.11
Привод
2.11
Привод
3.11
Рег.М Тематика
251-сс
1455-е
И-43с
И-4 3с
Фамилия и
инициалы
Петров П.П.
Петров П.П.
"идоров С.С
Петров П.П.
Рис. 2.8. Пример операции соединения
а операция ДЕЛЕНИЕ — выполняется над двумя табли­
цами-отношениями, первая из которых называется делимым, а
вторая делителем. При этом схема таблицы-делителя должна
состоять из подмножества полей таблицы делимого. Схема ито­
говой таблицы-отношения содержит только те поля таблицыделимого, которых нет во второй таблице-делителе. Кортежи
итоговой таблицы-отношения образуются на основе кортежей
первой таблицы (делимого) по значениям полей, вошедших в
итоговую таблицу при условии того, что если взять произведе­
ние (декартово) итоговой таблицы-отношения и второй табли­
цы-отношения (делителя), то образуются соответствующие кор­
тежи первой таблицы (делимого). На рис. 2.9 приведен пример
операции деления.
В своем исходном виде манипуляционная составляющая
реляционной модели не предусматривает операции над поля­
ми-атрибутами и схемами таблиц-отношений. Однако на прак­
тике применение рассмотренных выше операций манипулиро55
2. СУБД фактографических информационных систем
Таблица-делимое
Поездки граждан г. Урюпинскав
Германию
Ф.И.О.
Турфирма Город
"Евротур11
"Веси"
"Евротур"
"Веси"
СИДОРОВ <iU Евротур'
Сидоров С. С "Веси"
Иванов И.И.
Иванов И.И.
Петров ПХХ
Петров П.П.
Берлин
Гамбург
Гамбург
Берлин
Берл:
Гамбург"
Таблица-делитель
Итоговая таблица
Граждане с
Требуемое сочетание
требуемым
турфирм и городов
сочетанием
Германии
турфирм и городов
Турфирма
Город
"Евротур" Берлин
"Веси"
Гамбург
Ф.И.О.
Иванов ИИ
Сидоров С.С.
Рис. 2.9. Пример операции деления
вания данными может приводить к временным нарушениям тре­
бований ограничения целостностей, которые преодолеваются
специальными операциями переименования, удаления, добав­
ления полей-атрибутов.
Реляционная модель организации данных сыграла трудно
переоценимую роль в развитии программного обеспечения
АИС. Именно реляционные СУБД были тем программным ин­
струментарием, на основе которого происходила массовая ин­
форматизация малых и средних предприятий и организаций в
80-х годах. В начале 90-х годов реляционные СУБД стали фак­
тическим стандартом для построения самых разнообразных ин­
формационных систем. Вместе с тем проявились и определен­
ные ограничения реляционной модели, которые не позволяют
адекватно описывать такие сложные предметные области, как
конструирование, производственные технологические процес­
сы и др. Поэтому в 90-х годах были предприняты попытки со­
здания новых усовершенствованных моделей организации дан­
ных в виде постреляциопных СУБДи объектно-ориентирован­
ных СУБД. К сожалению, до сей поры ни одна из попыток
создания и описания новых моделей описания данных не
стандартизована, и количество коммерческих СУБД, основан­
ных на новых моделях данных, исчисляется единицами.
56
2.3. Внутренняя схема баз данных фактографических АИС
2.3. Внутренняя схема баз данных
фактографических АИС
Изначально и по сей день программное обеспечение АИС
(СУБД) в качестве места физического размещения данных ори­
ентировано на внешнюю (дисковую) память. Как уже отмеча­
лось, размещение данных во внешней памяти, точнее эффек­
тивность доступа к ним во внешней памяти, существенно вли­
яет на эффективность обработки данных. В результате важным
аспектом АИС является внутренняя схема базы данных, кото­
рую организует и поддерживает СУБД.
В общем плане внутренняя схема базы данных включает
три основных компонента, представленные на рис. 2.10.
Информационные массивы
Индексов
Данных
-
Прикладная и
интерфейсная
часть
• запросы
- процед^ы
> со&ьггия
• пр&гипа
- код интерфейса
1
1
страницы
1
-структура БД
- ограничения
целостности данных
страницы
Системная
информация по БД
(каталог БД)
1
Единый файл или совокупность файлов
Рис. 2,10. Состав внутренней схемы базы данных
Центральным компонентом внутренней схемы являются ин­
формационные массивы, включающие собственно данные (ин­
формационных объектов логической схемы БД, т. е. в реляци­
онных СУБД таблиц), и массивы индексов, являющихся специ­
альными дополнительными конструкциями для ускорения
доступа к данным основных информационных объектов. Ин­
формационные массивы в большинстве СУБД состоят из од­
ной или нескольких так называемых страниц, каждая из кото57
_____
2. СУБД фактографических информационных систем
рых содержит совокупность некоторых единичных элементов,
называемых физическими записями. В результате, единичным
элементом внутренней схемы баз данных АИС является физи­
ческая запись, в большинстве случаев совпадающая по смыслу
с логической записью, т. е. в реляционных СУБД с табличной
строкой.
Способы организации записей в страницах (расположение,
добавления, корректировка, удаление) составляют физические
структуры данных, которые образуют третий (низший) уро­
вень представления информации в информационной системе
(см. рис. 1.4).
Важным компонентом внутренней структуры является ка­
талог БД, в котором размещается системная информация по
логической структуре БД, включающая описание основных ин­
формационных объектов (имена, структура, параметры, связи)
и ограничения целостности данных. Организация системной
информации БД определяется особенностями конкретной
СУБД, а сам каталог может входить непосредственно в файлы
данных (область описателей данных) или составлять отдель­
ный информационный массив.
Как уже отмечалось, в состав автоматизированного банка
данных АИС помимо самой базы данных входит и прикладной
компонент, образуемый совокупностью интерфейсных элемен­
тов представления, ввода и обработки данных, типовых запро­
сов и процедур обработки данных, а также «событий» и «пра­
вил», отражающих правила и специфику предметной области
АИС (так называемые «правила бизнеса»). Соответственно во
внутренней схеме БД выделяется специальная область, в кото­
рой размещается информация по прикладному компоненту
АИС.
Все три части внутренней структуры и их составные эле­
менты (например, информационные массивы отдельных инфор­
мационных объектов БД) могут размещаться в одном едином
файле базы данных или в разных файлах. Во втором случае
внутренняя схема БД определяется совокупностью и порядком
расположения данных файлов.
58
2.3. Внутренняя схема баз данных фактографических ЛИС
2.3.1. Физические структуры данных
Страничная организация информационных массивов БД оп­
ределяется общей спецификой доступа к данным больших объе­
мов. Доступ к физическим записям во внешней памяти в боль­
шинстве СУБД осуществляется через считывание в оператив­
ную память страниц файла данных, содержащих
соответствующие записи. Непосредственная обработка записей
производится в оперативной памяти, для чего СУБД образует и
поддерживает, как уже отмечалось, специальные буферы, в ко­
торых временно размещаются страницы, содержащие обраба­
тываемые записи. После завершения обработки страница с со­
ответствующими записями «выталкивается» из буфера и фик­
сируется в дисковом файле.
Аналогичным образом осуществляется размещение и дос­
туп к индексным массивам. В итоге общий принцип организа­
ции доступа к данным во внешней памяти можно проиллюст­
рировать схемой, приведенной на рис. 2.11.
Физические структуры организации файлов данных под­
разделяются на линейные и нелинейные.
В линейных структурах в одну страницу файла базы дан­
ных объединяются записи-кортежи одной таблицы (информа­
ционного объекта), которые располагаются в последователь­
ном (линейном) порядке друг за другом. Каких-либо ссылок,
указателей на связи между записями не предусматривается.
Если не применяется специального порядка размещения за­
писей в страницах (так называемая «расстановка» записей), то
при добавлении записей в большинстве случаев в линейных
структурах каждая новая запись помещается непосредственно
за последней записью. Если страница файла данных заполня­
ется, то для соответствующей таблицы выделяется дополни­
тельная страница.
Удаление записей в линейных структурах может произво­
диться двумя способами. В первом способе при удалении запи­
си сразу же осуществляется автоматическое перезаписывание
на новых позициях всех строк-записей, лежащих за удаляемой,
59
2. СУБД фактографических информационных систем
ОПЕРАТИВНАЯ
ИАД1ЯТ1»ЮЗУ|
1>}||>0|>ы i-ipainiu
Стр.1
Запись!
Зашсь2
ЗапиаЗ
Стр.2
Запись!
Запись2
ЗапнсьЗ - «
УСТРОЙСТВО ДИСКОВОЙ
(ВНЕШНЕЙ) ПАМЯТИ
Обмен
страницами
•4
Считывание
страниц
с нужными
записям
Файл(ы) данных и индексов
Данные
Стр.1
Запись 1
Запись2
Выталкивание
и фиксация
страниц
Индексы
Стр.1
Стр.2
Запись1
Запись2
Стр.2
л*££.
K-»ifc-- • <'•< тштг
Рис. 2.11. Общий принцип организации внутренней схемы базы
данных
с целью уплотнения и ликвидации появляющихся пустых мест.
Подобный подход обеспечивает максимальную эффективность
использования дискового пространства, но вызывает существен­
ные накладные расходы при любых операциях по удалению
записей. Поэтому другим, достаточно распространенным спо­
собом является простое «вычеркивание» удаляемой записи без
перезаписывания всех записей, лежащих за удаляемой, с соот­
ветствующим появлением пустых мест в страницах файла дан­
ных. Ведение базы данных в этом случае может быть организо­
вано так, чтобы при превышении общего объема пустых мест в
странице выше определенного значения (скажем, больше 30%)
специальный компонент СУБД автоматически производил дефрагментацию страниц, устраняя пустые места по ранее удален­
ным записям. В некоторых СУБД запуск данной процедуры
60
2.3. Внутренняя схема баз данных фактографических АИС
предоставляется непосредственно самому пользователю (адми­
нистратору) для периодического уплотнения (сжатия) файла
базы данных.
При корректировках записей могут возникать случаи, ког­
да новое значение изменяемого поля корректируемой записи
может потребовать больше (меньше) дискового пространства,
ранее занимаемого под старое значение данного поля. Решение
этой проблемы приводит к двум разновидностям линейных
структур файлов баз данных.
Первая разновидность основана на подходе, позаимство­
ванном из структуры текстовых файлов. Текстовый файл со­
стоит из последовательно расположенных строк символов (на­
бора байтов, определяющих номера символов строки в соот­
ветствии с кодовой таблицей). Строки имеют различную длину
и отделяются друг от друга символом возврата каретки. Строка
в данном случае является физической записью, а доступ к ней
осуществляется по ее номеру к путем последовательного счи­
тывания (продвижения) к-1 предшествующих строк-записей
(см. рис. 2.12).
Дисковое пространство
Информационная часть
Заголовок 1-я строка J
2-я строка
J
3-я строка J
4-я строка J
2-я страница
1-я страница
Последовательность строк-записей
(строки имеют различную длину)
с
разделителем
"J"
Рис. 2.12. Линейная структура текстового файла
Если при корректировке какого-либо поля требуется боль­
ше (меньше) дискового пространства, то файл расширяется (уп­
лотняется) с автоматическим перезаписыванием на новых по61
2. СУБД фактографических информационных систем
шциях всех строк, лежащих за корректируемой6. Такой под­
ход, так же, как и первый подход при удалениях записей, обес­
печивает максимальную эффективность использования диско­
вого пространства, но не дает возможности быстрого прямого
доступа к нужной строке, так как местоположения записей полюянно меняются.
Другим подходом к организации линейных структур для ре­
шения проблем корректировки данных является выделение для
каждой записи одинакового дискового пространства, исходя из
максимально возможного заполнения строк по установленным
типам полей.
Такой подход применяется в широко используемых для со­
здания «настольных информационных систем» (системы «ра­
бочего стола») СУБД куста dBASE (dBase, FoxPro, C/ipper), ко­
торые создают и оперируют базами данных в формате так на­
зываемых dbf-файлов. Структура dbf-файла состоит из трех
частей7—заголовка, блока описания структуры базы и инфор­
мационной части (см. рис. 2.13). В заголовке последовательно
представлены поля, которые определяют тип файла базы дан­
ных (с memo-полями или без них), дату последнего изменения,
номер последней записи, смещение, с которого начинается ин­
формационная часть (записи), размер каждой записи. Блок опи­
сания структуры размещается после заголовка до информаци­
онной части и состоит из последовательности элементов, каж­
дый из которых описывает определенное поле логической
структуры (схемы) базы данных. Структура описания поля со­
держит последовательное описание имени поля, типа поля (чис­
ловое, текстовое, дата и т. д.), длины поля и заканчивается спе­
циальным символом для отделения описания одного поля от
другого. Информационная часть состоит из последовательнос­
ти групп байтов одинаковой длины без специальных раздели­
телей, каждая из которых собственно и выражает содержимое
конкретной физической записи.
* Точнее говоря, перезаписываются все записи соответствующей страницы. Если
она переполняется, то перезаписываются записи и следующей страницы, и т. д.
7
Спенс P. C/ipper. Руководство по программированию. Версия 5.01 / Пер. с англ —
Мн.:Тивали, 1994-480 с (с.428).
62
2.3. Внутренняя схема баз данных фактографических ЛИС
Дисковое пространство —
»-
Информационная часть
Заголо­ Блок описания 1-я запись 2-я запись
структуры
вок
",:-М-Щстратща
3-я запись 4-я запись ..
: 2-я страница
Последовательность байте* записей без разделителей
Рис. 2.13. Линейная структура
dbf-файла
Такой способ организации данных обеспечивает прямой
доступ к любой записи, так как ее положение (смещение) од­
нозначно вычисляется по ее номеру и параметрам полей. Вме­
сте с тем эффективность использования дискового простран­
ства при таком подходе невысокая, так как в полях записей хра­
нятся и пустые значения (т. е. физически занимают место). Тем
не менее простота и эффективность доступа в таких линейных
структурах файлов баз данных обусловили их популярность в
тех случаях, когда объем данных невелик и вопросы эффектив­
ности использования дискового пространства не существенны.
В нелинейных структурах записи одного информацион­
ного объекта необязательно располагаются друг за другом на
одной странице файла данных, но обязательно содержат специ­
альные указатели на следующую запись объекта (одпосвязпые
списки) или на связанные записи других информационных
объектов (многосвязные списки, древовидные структуры). Со­
ответственно физические записи в нелинейных структурах
включают помимо информационных полей одно или несколь­
ко полей указателей, где размещаются адреса связанных запи­
сей (см. рис. 2.14).
Непосредственная адресация" связанных записей обеспе­
чивает в большинстве случаев более эффективный, чем в ли­
нейных структурах, доступ к данным. Однако расплатой за это
* Реализуется в виде прямой или косвенной адресации. При прямой адресации в
указателях размещаются физическиеадресаначала связанных записей. При косвенной
адресации в указателях находятся номера связанных записей, физические адреса кото­
рых отыскиваются по специальному справочнику, в который ставятся на учет физичес­
кие адреса всех новых записей.
63
2. СУБД фактографических информационных систем
ОСя] - адреса змеек памяти
Рис. 2.14. Нелинейная структура данных на примере односвязного списка (поля указателей выделены жирными рамками)
являются существенно большие и сложные по сравнению с
линейными структурами затраты и процедуры преобразова­
ния (перетряски) файла базы данных при любых операциях до­
бавления, удаления и корректировки записей, так как помимо
проблем определения мест размещения записей и появления
пустых мест в файле данных добавляется проблема перенаст­
ройки указателей на связанные записи после изменения дан­
ных.
Образование страниц физических записей файлов данных
осуществляется на основе той или иной стратегии минимиза­
ции расходов на доступ к записям и расходов на операции их
добавления, удаления и корректировки, и существенным обра­
зом зависит от типа конкретной нелинейной структуры. Одной
из таких стратегий является минимизация расходов на доступ
к записям, связанным на логическом уровне отношением «Одинко-многим», что обусловлено широкой распространенностью
таких отношений в огромном количестве предметных облас­
тей АИС. Данная стратегия основывается на использовании
иерархических древовидных структур.
Общая схема этой стратегии такова. Для записей информа­
ционного объекта на стороне «Один» образуется страница файла
данных, в которую последовательно (как в линейных структу­
рах) помещаются соответствующие записи. При появлении в
базе данных связанных записей для каждой записи из страни­
цы объекта на стороне «Один» образуются «подчиненные стра­
ницы» для размещения соответствующих связанных записей
64
2,3. Внутренняя схема баз данных фактографических АИС
объекта на стороне «Многие». В свою очередь, подчиненные
записи сами могут иметь свои подчиненные записи, для кото­
рых создаются соответствующие страницы, и т. д. (см. рис.
2.15, а.
Дисковое пространство
Записи одной
страницы
Страница
записей на
стороне
"Один"
Страница
подчиненных
записей
(на стороне
"Многие") для
первой записи
из страницы на
стороне "Один"
1
Корень
1-я'яодч-я
внутр. вершина
Страница
подчиненных
записей
(на стороне
"Многие") для
второй записи
из страницы на
стороне "Один"
т
2-я подч-я
внутр. вершина
Страница
подчиненных
записей
(на стороне
"Многие") для
третьей записи
из страницы на
стороне" Один"
т
3-я педч-я
внутр. вершина
Лист
Рис. 2.15, а. Пример нелинейной древовидной иерархической
структуры данных
Если в процессе ведения базы данных какая-либо страни­
ца переполняется, то для нее образуется связанная страницапродолжение на основе техники односвязного списка9.
При таком подходе действительно обеспечивается эффек­
тивная обработка связанных записей, так как осуществляется
не единичное, а сразу страничное их считывание в буферы опе­
ративной памяти. Временные затраты на поиск и обработку за­
писей в буферах оперативной памяти существенно меньше зат­
рат на считывание данных из «медленной» внешней памяти и
блоковое (страничное) считывание обеспечивает существенный
выигрыш в расходах на доступ и обработку связанных записей.
Однако во многих предметных областях АИС отношения
между информационными объектами могут порождать ситуа­
ции наличия у определенных записей на стороне «Многие» сра­
зу нескольких разных предков на стороне «Один» (см., напри* В конце каждой страницы выделяется специальное поле-указатель на возмож­
ное продолжение страницы (т.н. цепной список) помимо того, что каждая запись стра­
ницы сама содержит поле-указатель на страницу подчиненных записей.
65
2. СУБД фактографических информационных систем
мер, рис. 2.3), что не вписывается в рамки подобных древовид­
ных иерархических структур. Решение таких проблем обычно
осуществляется через введение избыточности (дублирования)
данных по связанным записям или другими способами.
Для формализованного описания нелинейных структур при­
меняют аппарат теории графов, в рамках которого подобные
иерархические древовидные структуры называются деревья­
ми™. На рис. 2.15,6 приведено условное изображение корнево­
го дерева, соответствующего иерархической нелинейной струк­
туре данных на рис. 2.15, а, а также термины и понятия, связан­
ные с ним. Вершины (узлы) дерева по отношению друг к другу
могут быть предками или потомками. Предок может иметь не­
сколько потомков, но каждый потомок имеет только одного
предка. Вершины, имеющие общего предка, называются бра­
тьями. Вершины, имеющие потомков, называются внутренни­
ми. Внутренняя вершина, не имеющая предков, называется кор­
нем дерева. Вершины, не имеющие потомков называются лис­
тьями. Все внутренние вершины корневого дерева упорядочиваются
по уровням иерархии. Уровень узла определяется количеством
предков до корня дерева. Количество уровней называется вы­
сотой дерева.
•Для\
омакДля
•"
> |
1
' )
(
Лист
а
Г Корень 1
Предок
J
(
-
<- - - - • - • - . - .
)
Д.— -
Братья
•
Т..-->
е-1
)
Ё1 &
РЧ » Уровень1
я
§
£
Ч
3
g
Э Уровень2
и
Рис. 2.15, б. Условное изображение средствами теории графов
нелинейной древовидной иерархической структуры
т
Деревом называется связный неориентированный граф без циклов (см., напри­
мер Лекции по теории графов / Емеличев В. А., Мельников О. И., Сарванов В.И.,
Тышкевич Р.И. — М.: Наука, 1990, или Асанов М. О. Дискретная оптимизация: Учеб­
ное пособие. — Екатеринбург: УралНАУКА, 1998.
66
2.3. Внутренняя схема баз данных фактографических ЛИС
Еще одним важным параметром деревьев является макси­
мально возможное количество потомков у одного предка. Дан­
ный параметр называется степенью дерева. Деревья степени
больше двух называются силыюветвистыми. И наконец, важ­
ным в практическом плане для нелинейных структур данных
является понятие сбалансированности дерет. Различают сба­
лансированность по степени вершин, когда каждая внутрен­
няя вершина может иметь количество потомков, ограниченное
определенной и одинаковой для всех вершин величиной (ар­
ность дерева) и сбалансированность по высоте, когда путь (ко­
личество вершин) от корня до любого листа дерева одинаков
или различается не более чем на единицу.
Развитый математический аппарат теории графов позволил
разработать для древовидных структур данных оптимальные
по определенным критериям операции обхода (поиска нужной
записи), включения (добавления новой записи) и исключения
(удаления записи) с целью минимизации расходов как по дос­
тупу, так и по изменению данных. Хорошая алгоритмизируемость этих операций предопределила широкое использование
нелинейных древовидных структур в схемах физической орга­
низации данных, обеспечиваемых СУБД.
2.3.2. Индексирование данных
Как уже отмечалось, стандартным приемом повышения эф­
фективности доступа к записям в базах данных является созда­
ние индексных массивов по отдельным, обычно ключевым по­
лям. Идея индексов основана на том факте, что если для повы­
шения эффективности доступа к конкретному кортежу-записи
-Использовать линейное упорядочение кортежей в таблице (ска­
жем, по алфавиту для текстовых ключевых полей или по возра­
станию для числовых ключевых полей), то накладные расходы
по «перетряске» всей таблицы после добавления/удаления
•строк-кортежей превысят выигрыш во времени доступа. Струк­
тура индексов (индексных массивов) строится так, чтобы на
основе некоторого критерия можно было бы быстро находить
по значению индексируемого поля указатель на нужную запись
67
2. СУБД фактографических информационных систем
(строку) таблицы и получать к ней доступ. При этом совокуп­
ность записей-кортежей базовой таблицы не обязательно упо­
рядочивать, а при их изменении необходимо изменить только
лишь индексный массив.
Как и для информационных массивов самих данных (таб­
лиц), так и для индексных массивов применяются линейные и
нелинейные структуры. В качестве линейных структур ин­
дексов в большинстве случаев выступают инвертированные
списки. Инвертированный список строится по схеме таблицы
с двумя колонками — «Значение индексируемого поля» и «Но­
мера строк»1' (см. рис. 2.16). Инвертированные списки чаще все­
го применяются для индексации полей, значения которых в раз­
ных строках-записях могут повторяться, к примеру, поле «Год
рождения» таблицы «Сотрудники» (в реляционных базах дан­
ных такие поля не могут быть ключевыми).
Значение
индексируемого
поля
("Год рождения ")
Номера строк
1958
1959
1960
1961
1962
3
5,17, 123,256
31,32,77
11.45,58,167,231
7,8,9,10,234,235,236'
Рис. 2.16. Пример инвертированного списка
Строки инвертированного списка упорядочиваются по зна­
чению индексируемого поля. Для доступа к нужной строке
исходной таблицы сначала в упорядоченном инвертированном
списке отыскивается строка с требуемым значением поля12, за­
тем считывается номер соответствующей строки (строк) в ис­
ходной таблице и далее по нему уже осуществляется непосред­
ственный доступ к искомой строке базовой таблицы.
При добавлении новой строки в базовую таблицу ее значение по индексируемому полю ищется в ранее составленном
" На практике не номера строк базовой таблицы, а номера страниц файла БД, где
находится соответствующая строка.
12
Способы поиска в линейно упорядоченных структурах см., например, в работе:
Вирт Н. Алгоритмы и структуры данных: Пер. с англ. — М.: Мир, ] 989.
68
2.3. Внутренняя схема баз данных фактографических ЛИС
индексе. Если соответствующая строка инвертированного спис­
ка отыскивается (т. е. подобное значение индексируемого поля
среди строк таблицы уже встречалось и было поставлено на
учет), то в ячейку второго столбца соответствующей строки
индекса дописывается номер страницы, куда была помещена
соответствующая строка базовой таблицы. Если такого значе­
ния в индексе нет, то создается новая строка индекса и осуще­
ствляется переупорядочение нового состояния индексного мас­
сива.
При удалении строки из базовой таблицы также осуществ­
ляется поиск соответствующей строки в индексном массиве и
осуществляется вычеркивание в индексе соответствующего
номера отсылаемой строки базовой таблицы. Если при этом
других строк в базовой таблице с таким же значением индекси­
руемого поля не осталось (соответствующая ячейка индекса
стала пустой), то удаляется и вся данная строка индекса с пос­
ледующим переупорядочением всего индексного массива. При
этом за счет того, что индекс в виде инвертированного списка
содержит лишь один столбец значений, затраты на «перетряс­
ку» при добавлении или удалении записей существенно мень­
ше по сравнению с тем, если бы переупорядочение происходи­
ло непосредственно в самой базовой таблице13.
Индексы в виде инвертированных списков являются осо­
бенно эффективными в том случае, когда значения индексиру­
емого поля часто повторяются, образуя равномерные по мощ­
ности группы. В этом случае количество ситуаций, при кото­
рых требуется добавление или удаление строк индекса,
невелико, и затраты на переупорядочение индекса при измене­
ниях данных в базовой таблице незначительны. В результате
выигрыш по затратам на доступ существенно превышает на­
кладные расходы по переупорядочению индекса в процессе ве­
дения базы данных.
Нелинейные структуры индексов применяются для созда­
ния индексных массивов ключевых полей или тех полей, зна" Кроме того, строки базовой таблицы можно упорядочивать только лишь по
какому-либо одному полю, а индексные массивы можно создавать сразу по нескольким
полям.
69
2. СУБД фактографических информационных систем
чения по которым не повторяются. При организации индексов
в таких случаях чаще всего используются уже упоминавшиеся
древовидные иерархические структуры в виде Б-деревьев.
Б-дерево представляет собой корневое сбалансированное силь­
но ветвистое дерево.
Каждая внутренняя вершина, если она полностью запол­
нена, содержит информацию о п-1 различных последователь­
но возрастающих значениях индексируемого поля по следую­
щей схеме, приведенной на рис. 2.17.
Pi
•
•
*
'
•
.
PI+J
Xi+l
Р, + 2
Ki
"*71-J
P„
где: X.- i-e значение индексируемого поля, при этом X.J Х.+1;
Р . - указатель на вершину, содержащую значения индексируе­
мого поля, меньшие или равные X..
Рис. 2.17. Структура внутренней вершины Б-дерева
Число п называется порядком Б-дерева.
Листовая вершина, в отличие от внутренней, содержит ин­
формацию о нахождении страницы в файле базы данных с за­
писями-кортежами, имеющими соответствующие значения ин­
дексируемого поля. Схема листовой страницы представлена на
рис. 2.18.
хк
Pi
^Ч-J
Pit+;
:
Хп[:
р*
где: Р А - указатель на страницу файла данных, содержащую
строку (строки) со значением индексируемого поля, равным Хк.
Рис. 2.18. Структура листовой вершины Б-дерева
Сбалансированность Б-дерева означает одинаковое
количество потомков до листовой вершины по любым раз­
ветвлениям от корневой вершины. В качестве примера на
рис. 2.19 приведено Б-дерево 3-го порядка уровня 2, пост­
роенное для поля «Год рождения» таблицы «Сотрудники».
70
2.3. Внутренняя схема баз данных фактографических ЛИС
Таблица "Сотрудники"
Фамилия
Год
рождения
1. Иванов
2. Петров
3. Сидоров
4. Лаврентьев
5. Егоров
б. Максимов
7. Сергеев
8. Григорьев
9. Матвеев
10. Владимиров
11. Николаев
12, Федоров
1961
1972
1968
1975
1980
1973
1963
1977
1979
1966
1964
1974
Структура Б-дерева
Обозначения:
• - указатели на
подчиненные
вершины;
(7) - номер
(адрес) строки
(страницы)
Вершины:
• - корневая
О - внутренняя
1=1
- листовая
[ 1«1Ц) 19QJ7)
Рис. 2.19. Пример Б-дерева 3-го порядка уровня 2
Как правило, порядок Б-дерева выбирается таким, что­
бы информация одной полностью заполненной вершины
соответствовала странице файла данных. В силу того что
объем одной страницы файлов данных существенно боль­
ше размера полей, то в большинстве случаев в одну пол­
ностью заполненную страницу вместе с указателями по­
мещается большое количество значений индексируемого
поля, исчисляемое сотнями и даже тысячами значений (п
» 100.. 1000). Это обстоятельство обусловливает сравни­
тельно небольшой уровень Б-деревьев на практике (поряд­
ка 2...4) даже в тех случаях, когда количество строк в ба­
зовой таблице исчисляется десятками тысяч. В результате
доступ к нужной записи по определенному значению ин­
дексируемого поля через Б-дерево осуществляется за не­
большое количество страничных обменов между внутрен­
ней и внешней памятью по следующему алгоритму:
— в оперативную память из внешней считывается страни­
ца с корневой вершиной и последовательно просматривается
До первого значения, превышающего значение индексируемо-
71
2. СУБД фактографических информационных систем
го поля нужной записи. При этом определяется ссылка (номер)
страницы-потомка (внутренней или листовой);
— в оперативную память считывается страница-потомок.
Если она внутренняя, то ее обработка производится аналогич­
но корневой. Если страница-потомок является листовой, то она
последовательно просматривается до нахождения нужного зна­
чения индексируемого поля. При этом определяется номер стра­
ницы файла данных, которая содержит нужную запись;
— если при просмотре листовой страницы нужное значе­
ние индексируемого поля не находится, то поиск считается от­
рицательным, т. е. принимается решение о том, что строки-кор­
тежа с требуемым значением индексируемого поля в таблицеотношении (файле данных) нет.
Анализ данного алгоритма показывает, что при поиске нуж­
ного значения индексируемого поля по индексу в виде Б-дерева
требуется такое количество страничных обменов между внеш­
ней и внутренней памятью, которое равно уровню Б-дерева
плюс единица. При достаточно большом значении п, а это, как
уже отмечалось, наиболее распространенная ситуация, уровень
m Б-дерева невелик (m » 2..3), и, следовательно, количество
страничных индексных обменов с памятью также невелико. При
этом сбалансированность Б-дерева обусловливает одинаковые
затраты по доступу к любой записи с любым значением индек­
сируемого поля. Сбалансированность Б-деревьев обеспечива­
ется легко алгоритмизируемым правилом их построения (рос­
та) при включении нового значения индексируемого поля.
Включение нового значения индексируемого поля осуще­
ствляется следующим образом.
Q Производится поиск требуемого значения в существую­
щем Б-дереве. При его отсутствии поиск, естественно, закан­
чивается отрицательным результатом, но в оперативной памя­
ти остается листовая страница, куда, следовательно, и необхо­
димо поместить новое значение индексируемого поля.
• Если листовая страница не заполнена полностью, в нее
записывается новое значение индексируемого поля и указатель
72
2.3. Внутренняя схема баз данных фактографических ЛИС
на страницу файла данных, содержащую соответствующую за­
пись (строку таблицы).
• Если листовая страница уже заполнена, то она делится
«пополам», и тем самым порождается новая листовая страни­
ца. Среднее значение исходной листовой страницы записыва­
ется в вершину-предок на соответствующее место14. При этом
после вставленного значения образуется указатель-ссылка на
новую листовую страницу, образованную остатком от ополо­
виненной исходной листовой страницы.
• Если при занесении среднего значения переполненной
листовой страницы в страницу-предок происходит переполне­
ние самой страницы-предка, то она аналогично делится попо­
лам, «посылая» свое среднее значение своему предку. Если при
этом происходит переполнение корневой страницы, то она так­
же делится на две новые внутренние страницы, а ее среднее
значение образует новую корневую страницу, повышая уровень
дерева на единицу и т. д. (говорят, что Б-дерево «растет» вверх).
Удаление определенного значения индексируемого поля
производится следующим образом:
• Производится поиск требуемого значения индексируе­
мого поля и в результате в оперативную память считывается
нужная листовая страница.
а Из нее удаляется соответствующее значение индексиру­
емого поля и указатель-адрес соответствующей страницы файладанных.
а Если после удаления размер занятого пространства па­
мяти текущей листовой страницы в сумме с размером занятого
пространства левого (правого) брата больше, чем размер памя­
ти одной страницы, то процесс заканчивается.
а В противном случае текущая листовая страница объеди­
няется с левым (правым) братом. Тем самым одна из листовых
страниц (левая или правая) опустошается и уничтожается. В
вершине-предке удаляется значение индексируемого поля, ука­
затель перед которым или после которого ссылался на опусто14
Так, чтобы в странице обеспечивался последовательный порядок расположе­
ния значений индексируемого поля по схеме, приведенной на рис. 2.17.
73
2. СУБД фактографических информационных систем
пенную листовую страницу. При этом может, в свою очередь,
юзникнуть необходимость слияния и опустошения уже внут­
ренних страниц, которое осуществляется аналогичным обраюм.
Описанный алгоритм удаления значений индексируемого
юля соответствует одной из наиболее широко применяемых
эазновидностей Б-деревьев—Б*-деревьев, которые позволя­
ет использовать в среднем до 2/3 пространства всех страниц
'вершин) дерева.
Структура Б-деревьев является эффективным способом ин­
дексации больших массивов данных и широко применяется в
:овременных СУБД.
2.3.3. Расстановка (хеширование) записей
В некотором смысле альтернативным подходом к органи­
зации физических структур данных является расстановка за­
писей. Как и при использовании линейных и нелинейных струк­
тур, основной задачей расстановки записей является миними­
зация расходов на доступ и изменения данных во внутренней и
внешней памяти.
Идея расстановки, известной в англоязычной литературе
также под термином хеширование^, заключается в том, чтобы
при выделении под размещение данных определенного участ­
ка памяти так организовать порядок расположения записей в
нем, чтобы место для новых записей и поиск старых записей
можно было осуществлять на основе некоторого преобразова­
ния их ключевых полей16. При образовании {добавлении) но­
вой записи к значению ее ключевого поля применяется специ­
альная хеш-функция (или иначе хеш-свертка), которая ставит в
соответствие значению ключевого поля, и, следовательно, всей
записи, некоторое числовое значение, обычно являющееся но15
От англ. to hash - нарезать, крошить, делать месиво, т. е. равномерно перема­
лывать ключи полей в адреса (номера) записей.
"' Отсюда еще одно название данного подхода—«преобразование ключей», впер­
вые введенное в русской литературе еще в 1956 г. будущим академиком А. П. Ершо­
вым.
74
2.3. Внутренняя схема баз данных фактографических АИС
мером (адресом) местоположения, куда в итоге и помещается
соответствующая запись (см. рис. 2.20),
Номера
(адреса)
Записей
Выделенная под данные облает* памяти
1-я новая запись
Б3=
значение ее
ключевого поля—»- Кл, —»-й(Кл;)= т
хеш-свертка
i-я старая запись
\\Г\
I I
значение ее
ключевого поля—*• Кл,- -*. А(Кл,)= п,хеш-свертка
Рис. 2.20. Принцип расстановки записей по значению ключей
При доступе (поиске) нужной записи над значением ее клю­
чевого поля также осуществляется хеш-свертка, что сразу же
дает возможность определить местоположение искомой запи­
си и получить к ней доступ.
Таким образом, в идеале хеширование обеспечивает дос­
туп к нужным записям за одно (!!!) обращение к области раз­
мещения данных.
Функция преобразования А(Кл.) выбирается на основе двух
требований: 1) ее результат для возможного диапазона значе­
ний ключевого поля должен находиться в пределах диапазона
адресов (номеров) области памяти, выделяемой подданные, и
2) значения функции в пределах выделенного диапазона адре­
сов должны быть равномерными. На практике наиболее широ­
кое распространение нашли хеш-функции, основанные на опе­
рациях деления по модулю:
/г(Кл.) = (Кл.mod M)+l,
где (Кл. mod М) означает операцию деления по модулю М17, а
число М выбирается исходя из необходимости попадания зна­
чений хеш-функции в требуемый диапазон.
" Значением операции деления по модулю М является остаток от обычного деле­
ния числа на М, например результат деления 213 по модулю 20 равен 1.1.
75
2. СУБД фактографических информационных систем
Если в качестве М выбрать число, являющееся степенью
двух, то подобная хеш-функция эффективно вычисляется про­
цедурами выделения нескольких двоичных цифр.
Для текстовых ключевых полей обычно применяют подоб­
ные подходы, основанные на использовании операции сложе­
ния по модулю значений кодов первых нескольких символов
ключа.
Основной проблемой хеширования с прямой адресацией
записей является возможность появления одинаковых значений
хеш-сверток при разных значениях полей (так называемые си­
нонимы). Такие ситуации называются коллизиями, так как тре­
буют определенного порядка, правила их разрешения.
Применяются два подхода к разрешению коллизий. Первый
подход основывается на использовании технологии цепных спис­
ков и заключается в присоединении к записям, по которым воз­
никают коллизии, специальных дополнительных указателей, по
которым размещаются новые записи, конфликтующие по месту
расположения с ранее введенными. Как правило, для таких за­
писей отводится специально выделенный участок памяти, на­
зываемый областью переполнения. В алгоритм доступа добав­
ляются операции перехода по цепному списку для нахождения
искомой записи. Вместе стем при большом количестве перепол­
нений теряется главное достоинство хеширования—доступ к
записи за одно обращение к памяти.
Второй подход к разрешению коллизий основывается на
использовании дополнительного преобразования ключей по
схеме:
n/"»"J = Л(Кл;) + gOOr) = п/°>+ ё (Кл),
где п.(0) - исходное конфликтующее значение адреса записи;
g(Krr) -дополнительное преобразование ключа; п/0""' -допол­
нительное значение адреса.
При этом могут встречаться ситуации, когда и такое допол­
нительное преобразование приводит к коллизии, т. е. новое зна­
чение п.(,)""} также оказывается уже занятым. В таких случаях
76
2.3. Внутренняя схема баз данных фактографических ЛИС
дополнительное преобразование g(Kn.) чаще всего организуют
на основе рекуррентной процедуры по следующей схеме:
гдеДА:) - некоторая функция над номером итерации (пробы).
В зависимости от вида функции Д/с) такие подходы назы­
вают линейными или квадратичными пробами.
Основным недостатком второго подхода к разрешению кол­
лизий является во многих случаях существенно больший объем
вычислений, а также появление для линейных проб эффектов
группирования номеров (адресов) текстовых ключевых полей,
т. е. неравномерность номеров, если значения ключей отлича­
ются друг от друга всего несколькими символами.
Вместе с тем коллизии (одинаковые значения хеш-сверток
ключей) при использовании страничной организации струк­
туры файлов баз данных во внешней памяти получили свое по­
ложительное и логичное разрешение и применение. Значением
хеш-свертки ключа в этом случае является номер страницы, куда
помещается или где находится соответствующая запись (см.
рис. 2.21).
Для доступа к нужной записи сначала производится хэшсвертка значения его ключевого поля и тем самым определяет­
ся номер страницы файла базы данных, содержащей нужную
запись. Страница файла данных из дисковой пересылается в
оперативную память, где путем последовательного перебора
отыскивается требуемая запись. Таким образом, при отсутствии
переполнений доступ к записям осуществляется за одно стра­
ничное считывание данных из внешней памяти.
С учетом того что количество записей, помещающихся в
одной странице файла данных, в большинстве случаев доста­
точно велико, случаи переполнений на практике не так часты.
Вместе с тем, при большом количестве записей в таблицах фай­
ла данных, количество переполнений может существенно воз­
расти и так же, как и в классическом подходе, теряется главное
достоинство хэширования—доступ к записям за одну пере­
сылку страницы в оперативную память. Для смягчения подоб77
2. СУБД фактографических информационных систем
1-я страница
2-я страница
Указатель
на продолж.1
Продолжение 2-й стр.
аг.Л
1-я запись j-n запись
1-я новая запись
к-я запись
1^>в
Я
значение ее
ключевого поля Кл; й(Кп,)=2
j-я новая запись
ЕС
значение ее
ключевого поля Кл/ й(Кл/)=2
к-я новая запись
значение ее
ключевого поля Кл* й(Кл*)=2
Рис. 2.21. Принцип хеширования записей по страницам файла
данных
ных ситуаций могут применяться комбинации хэширования и
структуры Б-деревьев для размещения записей по страницам в
случаях переполнения.
Внутренняя схема базы данных обычно скрыта от пользо­
вателей информационной системы, за исключением возможно­
сти установления и использования индексации полей. Вместе
с тем, особенности физической структуры файлов данных и ин­
дексных массивов, принципы организации и использования дис­
кового пространства и внутренней памяти, реализуемые конк­
ретной СУБД, должны учитываться проектировщиками банков
данных, так как эти «прозрачные» для пользователей-абонен­
тов особенности СУБД критично влияют на эффективность об­
работки данных в информационной системе.
78
Вопросы и упражнения
Вопросы и упражнения
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Перечислите основные функции, реализуемые СУБД, и охаракте­
ризуйте их с точки зрения системного или прикладного характе­
ра решаемых задач.
Объясните соотношение понятий «операции», «транзакции» и
«работа (действия) пользователя» в базе данных.
Перечислите функциональные компоненты СУБД и охарактери­
зуйте системный или прикладной характер решаемых ими задач.
Дайте определение «модели организации данных» и перечислите
ее составляющие. Охарактеризуйте особенности сетевой модели
данных по отношению к иерархической модели.
Перечислите основные понятия структурной составляющей ре­
ляционной модели данных. Каким образом строятся связи между
таблицами-отношениями, какие типы связей и почему обеспечи­
ваются при этом?
В чем заключается и каким образом обеспечивается целостность
в реляционной модели данных?
Какое основное различие между операциями обновления данных
и операциями обработки таблиц-отношений в реляционной мо­
дели?
Дайте определение операции ОБЪЕДИНЕНИЯ таблиц-отноше­
ний. Каково наименьшее и наибольшее количество строк может
быть в результате объединения таблиц?
Дайте определение операции ПЕРЕСЕЧЕНИЯ таблиц-отношений.
Каково наименьшее и наибольшее количество строк можетбыть
в результате пересечения таблиц?
Дайте определение операции ВЫЧИТАНИЯ таблиц-отношений.
Каково наименьшее и наибольшее количество строк может быть
в результате вычитания таблиц?
Какие наруше!гаяцелостности данных могут происходить в ре­
зультате операции ПРОЕКЦИЯ (ВЕРТИКАЛ ЬНОЕ ПОДМНОЖЕ­
СТВО)?
Дайте определение операции СОЕДИНЕНИЯ таблиц-отношений.
Каково наименьшее и наибольшее количество строк может быть
в результате соединения таблиц?
Что является единичным элементом в физической структуре дан­
ных? В какие структуры более высокого порядка объединяются
единичные элементы данных?
79
2. СУБД фактографических информационных систем
14. Дайте сравнительную характеристику преимуществ и недостат­
ков разновидностей линейных структур физической организации
данных.
15. Охарактеризуйте общий принцип i юлинейных структур физичес­
кой организации данных и перечислите их основные разновид! юсти.
16. Вьщелите и поясните главную идею использования древовидных
иерархических структур физической организации данных. В тер­
минологии теории графов дайте определения основных понятий
«деревьев».
17. Постройте средствами теории графов структуру физической орга­
низации данных, которая могла бы соответствовать на логичес­
ком уровне следующим трем таблицам:
Здания
№.\1>
1
2
Улица
Л»
лома
5
liHKyjWliJ
113/6
Рахова
JM'JVJ
№№ зла пни
1
2
1
1
кн.
Пло­
щадь
5
115м2
7
80м
2
2
Кол-во
комнат
3
2
3
Попова
47
3
3
11-а
33 м
1
4
Разина
53
4
1
73
150м2
4
5
2
42 .
62м2
3
2
2
№№ '№кв?!' '"*'1ФЙб*
80
Квартиры
Отв.
1
1
Иванов
2
2
Петров
Да
3
3
Сидоров
Да
4
1
Сергеев
Да
5
4
Егоров
6
4
Андреев
7
4
Гаврилов
8
5
Николаев
9
5
Васильев
Да
10
6
Власов
Да
11
7
Федоров
Да
Да
6
3
б
29м2
7
I
8/1
31м2
Вопросы и упражнения
Определите тип и параметры построенной структуры физичес­
кой организации данных. Укажите, сколько страниц файла базы
данных понадобится для данной структуры.
18. Обоснуйте выбор типа ивдексов для полей таблицы «Расписание
занятий» со следующей схемой: №№, Дата, Время (1-я пара, 2-я
пара, 3-пара, 4-я пара), Аудитория (30 аудиторий), Вид (Лекция,
Семинар, Пр. занятие, Лабораторная работа, Зачет, Экзамен), Дис­
циплина (100 уч. дисциплин), Преподаватель (80 преподавателей),
Учебная группа (15 уч. групп).
19. Произведите преобразование индекса в виде Б-дерева, представ­
ленного на рис. 2.18, при:
а) добавлении 13-й записи «Данилов, 1976 г. р.»;
б) добавлении 14-й записи «Никаноров, 1967 г. р.»;
в) удалении 9-й записи «Матвеев, 1979 г. р.».
20. Проиллюстрируйте (по шагам добавления записей) процесс по­
строения индекса в виде Б-дерева 3-го порядка по полю «Таб_№»
таблицы:
№ строки
1
2
• -'•
Таб_№
343
97
3
113
4
705
5
453
6
605
7
177
8
806
9
337
10
620
11
359
12
803
<1>амплпя
И ви н о в
Петров
Сидоров
Ливрептьев
Е го р о в
Максимов
Се ргеев
Григорьев
Матвеев
Владимиров
Николае в
Оедоров
21. В чем преимущества и недостатки с точки зрения эффективности
операций доступа к данным и преобразования данных между ин­
дексированием и хешированием?3. Основы создания автоматизи­
рованных информациош 1ых систем
81
3. Основы создания информационных систем
3. Основы создания
автоматизированных
информационных систем
3.1. Общие положения по созданию
автоматизированных систем
Создание автоматизированных информационных систем в
нашей стране регламентируется «Комплексом стандартов и ру­
ководящих документов на автоматизированные системы»
(ГОСТ 34.201-89, ГОСТ 34.602-89, РД 50-682, РД 50-680-88,
ГОСТ 34.601-90, ГОСТ 34.401-90, РД 50-34.698-90, ГОСТ
34.003-90, Р 50-34.119-90). В частности, ГОСТ 34.601-90 опре­
деляет следующие стадии и этапы создания АС (см. табл. 3.1).
Одним из центральных элементов всего процесса создания
АС является разработка технического задания, структура ко­
торого согласно ГОСТ 34.602-89 содержит следующие разде­
лы:
1) общие сведения;
2) назначение и цели создания (развития) системы;
3) характеристика объектов автоматизации;
4) требования к системе;
5) состав и содержание работ по созданию системы;
6) порядок контроля и приемки системы;
7) требования к составу и содержанию работ по подготов­
ке объекта автоматизации к вводу системы в действие;
8) требования к документированию;
9) источники разработки.
Суть технического задания как основного документа в про­
цессе создания АС заключается в проработке, выборе и утвер­
ждении основных технических, организационных, программ­
ных, информационно-логических и лингвистических решений,
82
3.1. Общие положения по созданию автоматизированных систем
Таблица 3. J
Шх-r Cfr/anfotr
Jt'/Ш'ЛумЙ'/Л'
1. Формирование 1.1. Обследование объекта и обоснование
требований к АС необходимости создания АС
1.2. Формирование требований пользователя к
АС
1.3. Оформление отчета о выполненной работе и
заявки на разработку АС (тактико-техничес­
кого задания)
2. Разработка
2.1. Изучение объекта
концепции АС
2.2. Проведение необходимых научно-исследо­
вательских работ
2.3. Разработка вариантов концепции АС
и выбор варианта концепции АС, удовлетво­
ряющего требованиям пользователя
2.4. Оформление отчета о выполненной работе
3. Техническое
задание
3.1. Разработка и утверждение технического
задания на создание АС
4. Эскизный
проект
4.1. Разработка предварительных проектных
решгний по системе и ее частям
4.2. Разработка документации на АС и ее части
5. Технический
проект
5.1. Разработка проектных решений по сис­
теме и ее частям
5.2. Разработка документации на АС и ее части
5.3. Разработка и оформление документации
на поставку изделий для комплектования АС
и (или) технических требований (технических
заданий) на их разработку
5.4. Разработка заданий на проектирование в
смежных частях проекта объекта автоматизации
6.1. Разработка рабочей документации на сис­
тему и ее части
6.2. Разработка или адаптация программ
6. Рабочая до­
кументация
7. Ввод
в действие
8. Сопровожде­
ние АС
7.1. Подготовка объекта автоматизации
к вводу АС в действие
7.2. Подготовка персонала
7.3. Комплектация АС поставляемыми изде­
лиями (программными и техническими сред­
ствами, программно-техническими комплек­
сами, информационными изделиями)
7.4. Строительно-монтажные работы
7.5. Пусконападочные работы
7.6. Проведение предварительных испытаний
7.7. Проведение опытной эксплуатации
7.8. Проведение приемочных испытаний
8.1. Выполнение работ в соответствии
с гарантийными обязательствами
8.2. Послегарантийное обслуживание
83
3. Основы создания информационных систем
которые устанавливаются в разделе «Требования к системе».
Данный раздел, в свою очередь, состоит из трех подразделов:
1) требования к системе в целом;
2) требования к функциям (задачам), выполняемым систе­
мой;
3) требования к видам обеспечения.
Требования к системе в целом отражают концептуальные
параметры и характеристики создаваемой системы, среди ко­
торых указываются требования к структуре и функционирова­
нию системы, к надежности и безопасности, к численности и
квалификации персонала и т. д.
Требования к функциям (задачам) содержат перечень фун­
кций, задач или их комплексов; временной регламент каждой
функции, задачи или комплекса задач; требования к качеству
реализации каждой функции; к форме представления выход­
ной информации; характеристики необходимой точности и вре­
мени выполнения, требования одновременности выполнения
группы функций; достоверности выдачи результатов.
Требования по видам обеспечения в зависимости от вида
системы содержат требования по математическому, информа­
ционному, лингвистическому, программному, техническому,
метрологическому, организационному, методическому и другим
видам обеспечения системы.
Для большинства разновидностей АС, в частности для все­
возможных видов АИС, особое значение имеют решения и
требования по информационному обеспечению. В данном
подразделе, в частности, определяются требования:
• к составу, структуре и способам организации данных в
системе {информационно-логическая схема);
• к информационному обмену между компонентами систе­
мы;
• к информационной совместимости со смежными систе­
мами;
• по использованию общероссийских и других классифи­
каторов, унифицированных документов;
• по применению систем управления базами данных;
84
3.2. Проектирование банков данных фактографических ЛИС
• к структуре процесса сбора, обработки, передачи данных
в системе и представлению данных;
• к защите данных от разрушений при авариях и сбоях в
электропитании системы;
• к контролю, хранению, обновлению и восстановлению
данных;
• к процедуре придания юридической силы документам,
продуцируемым техническими средствами АС.
На основе установленных в техническом задании основ­
ных требований и технических решений на последующих эта­
пах конкретизируются и непосредственно разрабатываются ком­
поненты и элементы системы.
В частности, на этапе 4.1 «Разработка предварительных
проектных решений по системе и ее частям» определяются:
• функции АС;
• функции подсистем;
• концепция информационной базы и ее укрупненная струк­
тура;
• функции системы управления базой данных;
• состав вычислительной системы;
• функции и параметры основных программных средств.
На этапе 5.1 «Разработка проектных решений по системе
и ее частям» осуществляется разработка общих решений по
системе и ее частям:
• по функционально-алгоритмической структуре системы;
• по функциям персонала и организационной структуре;
• по структуре технических средств;
• по алгоритмам решения задач и применяемым языкам;
• по организации и ведению информационной базы {струк­
тура базы данных);
• по системе классификации и кодирования информации
(словарно-классификационная база);
• по программному обеспечению.
Разработка и документация программного обеспечения в
процессе создания или комплектования автоматизированных
систем (п. 6.2) регламентируются комплексом стандартов, объе85
3. Основы создания информационных систем
диненных в группу «Единая система программной документа­
ции (ЕСПД)».
Таким образом, создание автоматизированных информаци­
онных систем представляет собой сложный многоэтапный про­
цесс, требующий привлечения различных категорий специали­
стов — программистов, инженеров, управленческих и других
работников.
3.2. Проектирование банков данных
фактографических АИС
Одной из наиболее трудоемких и сложных задач при со­
здании АИС является проектирование банка данных как осно­
вы подсистемы представления и обработки информации. Ло­
гическая и физическая структуры банка данных отражают пред­
ставление разработчиками и пользователями информационной
системы той предметной области, сведения о которой предпо­
лагается отражать и использовать в АИС.
Проектирование банков данных фактографических инфор­
мационных систем осуществляется на основе формализации
структуры и процессов предметной области АИС, и, в соответ­
ствии с уровнями представления информации в АИС (см. рис. 1.3),
включает концептуальное (пп. 3.1 и 4.1) и схемно-структурное проектирование (п. 5.1).
В организационном плане в группе разработчиков банка
данных вьщеляют специалистов по формализации предметной
области, специалистов по программному обеспечению СУБД,
а также технических дизайнеров и специалистов по эргономи­
ке. Специалисты по формализации предметной области (их еще
называют формализаторами или постановщиками задач), как
правило, возглавляют весь проект создания АИС и обеспечива­
ют функции взаимодействия с заказчиком. К данной категории
специалистов предъявляются наиболее сложные профессио­
нальные требования. С одной стороны, такие работники долж­
ны быть специалистами в сфере программного обеспечения
АИС (операционные системы, СУБД и т. д.), а с другой сторо86
3.2. Проектирование банков данных фактографических ЛИС
ны, они должны хорошо представлять (или освоить) конкрет­
ную предметную область АИС, т. е. быть (временно стать)
бухгалтерами, экономистами, делопроизводителями и т. п. Спе­
циалисты по программному обеспечению СУБД относятся к
категории профессиональных программистов, определяют вы­
бор СУБД и обеспечивают построение ее средствами автома­
тизированного банка данных по разработанной постановщиком
задачи (формализатором) концептуальной схеме. Технические
дизайнеры и специалисты по эргономике обеспечивают эсте­
тичную и эргономичную сторону интерфейса с пользователем
в АИС при вводе, обработке и поиске данных.
3.2.1. Концептуальное проектирование
Концептуальное проектирование банков данных АИС яв­
ляется в значительной степени эвристическим процессом, и
адекватность построенной в его рамках инфологической схе­
мы предметной области проверяется в большинстве случаев эм­
пирически по анализу и проверке удовлетворения информаци­
онных потребностей пользователей для решения задач АИС.
В процедуре концептуального проектирования можно вы­
делить следующие этапы:
• обзор и изучение области использования АИС для фор­
мирования общего представления о предметной области;
• формирование и анализ круга функций и задач АИС;
• определение основных объектов-сущностей предметной
области и отношений между ними;
• формализованное описание предметной области.
Обзор и изучение области использования АИС для фор­
мирования общего представления о предметной области
осуществляется разработчиком в непосредственном взаимодей­
ствии с заказчиком. Разработчиком при этом изучается также и
необходимая организационно-распорядительная документация—
положения, уставы, инструкции, функциональные обязаннос­
ти и т. п. На этой основе определяются основные процессы, уча­
стники и информационные потоки в предметной области АИС.
Принципиальным моментом для фактографических АИС явля­
ется фрагментирование предметной области, т. е. ее разделе­
ние на организационные, технологические, функциональные
87
3. Основы создания информационных систем
или иные фрагменты. При этом формализатору необходимо про­
яснить ряд вопросов и решить следующие задачи:
• выделить перечень фрагментов (лица, принимающие ре­
шения на различных уровнях организационной иерархии, фун­
кционально-технологические структуры, подразделения и т. п.),
подлежащих охвату, т. е. информационному отражению в АИС;
• определить информационные потребности и информаци­
онные результаты деятельности каждого фрагмента (какая ин­
формация, в каком виде, в какие сроки и т. п.);
• определить общие характеристики и содержание процес­
сов потребления и обработки информации в каждом фрагмен­
те (содержание информации, технология ее обработки, переда­
чи, использования и т. д.).
Ответы на эти вопросы помогут сформировать представ­
ление о существующей («как есть») технологии формирова­
ния, накопления, обработки и использования информации в рам­
ках предметной области АИС и проанализировать совместно с
заказчиком «узкие места» и недостатки в существующей тех­
нологии.
Проиллюстрируем данный этап проектирования на приме­
ре создания банка данных фактографической АИС по учету, кон­
тролю, исполнению и прохождению организационно-распоря­
дительных и информационно-справочных документов. Общее
знакомство с предметной областью можно получить в беседе с
руководителем и работниками службы документационного
обеспечения управления (СлДОУ—секретариат, делопроиз­
водство, канцелярия и т. п.) о системе и порядке документообо­
рота в организации. Дополнительно целесообразно также оз­
накомиться с регламентирующими данный участок работы нор­
мативными документами'.
1
В данном случае:
Типовая инструкция по делопроизводству в министерствах и ведомствах Россий­
ской Федерации.— М.: Изд-е Комитета по делам архивов при Правительстве Россий­
ской Федерации, 1992;
Примерное положение о службе документационного обеспечения управления»
(приложение к «Типовой инструкции по делопроизводству...»).—М.: Изд-е Комитета
по делам архивов при Правительстве Российской Федерации, 1992;
ГОСТ Р 6.30-97 «Унифицированная Система Организационно-Распорядительной
Документации. Требования к оформлению документов».
88
3.2. Проектирование банков данных фактографических ЛИС
В результате такого знакомства можно выделить следую­
щие фрагменты предметной области:
• руководители организации; подразделения организации;
их руководители; сотрудники, исполняющие документы; мероп­
риятия; документы, обработка которых или подготовка кото­
рых реализует управленческие решения и мероприятия;
• служба документационного обеспечения управления; его
руководители и работники, ведущие регистрацию, учет, обра­
ботку и хранение документов.
Информационные потребности первого фрагмента сводят­
ся к своевременному получению и рассмотрению входящих
документов, своевременному получению проектов готовящих­
ся документов для согласования и визирования или принятых
внутренних документов для исполнения или использования при
организации и проведении различных мероприятий. Кроме того,
для первого фрагмента важным является также и получение
справочной информации по каким-либо конкретным докумен­
там, хранящимся в СлДОУ, поиск нужных документов по рек­
визитам, тематике, содержанию и т. п.
Информационные потребности второго фрагмента в целом
можно охарактеризовать необходимостью организации и конт­
роля всех этапов документооборота в организации (где в дан­
ный момент находится конкретный документ, кем завизирован,
подписан, утвержден, зарегистрирован, поставлен ли на конт­
роль, исполнен ли, в какое дело приобщен и т. д.).
Характеристики и процессы по документообороту кратко
можно выразить следующим образом. Инициирование, подго­
товка и реализация большинства управленческих решений на
различных уровнях организационной иерархии осуществляются
на основе использования (руководства), подготовки, принятия
И исполнения организационно-распорядительных и информа­
ционно-справочных документов. Входящие документы докла­
дываются на решение руководителям организации, которые
через резолюции на документах организуют принятие и испол­
нение необходимых мероприятий. Резолюции на документах
доводятся СлДОУ до исполнителей (руководителей) подразде89
3. Основы создания информационных систем
лений. Исполнение мероприятия по документу ставится СлДОУ
на контроль. Документ после исполнения по решению руково­
дителя может быть уничтожен или приобщен к определенному
номенклатурному делу. Внутренние организационно-распоря­
дительные документы (приказы, решения, планы, графики) го­
товятся в плановом или в инициативном порядке исполнителя­
ми из соответствующих подразделений. При этом документ про­
ходит стадию проекта, согласования, утверждения, доведения
до исполнителей и исполнения. Для подготовки, принятия и
исполнения организационно-распорядительных документов и
при проведении различных мероприятий может потребоваться
подготовка необходимых информационно-справочных докумен­
тов (справок, протоколов, отчетов, писем, запросов и т. п.), ста­
дии которых в общем плане могут исключать некоторые ста­
дии организационно-распорядительных документов.
После формирования общего представления о предметной
области производится определение круга функций и задач, ре­
шение которых предполагается обеспечивать с помощью АИС.
Круг функций и задач АИС определяется на основе декомпози­
ции основной цели создания АИС (ТАК называемого «лозунга»)
путем формирования последовательно детализируемых спо­
собов их решения с учетом существующей технологии накоп­
ления и обработки информации и преодоления ее узких мест с
помощью АИС. При этом определяется предварительный пе­
речень пользователей системы и уточняются их информацион­
ные потребности.
В рассмотренном примере с АИС по делопроизводству,
очевидно, основной целью (лозунгом) является повышение эф­
фективности управленческих процессов в организации. Реше­
ние этой задачи может быть достигнуто через повышение эф­
фективности документооборота путем уменьшения сроков под­
готовки и прохождения документов, улучшение контроля за
исполнением документов, создание эффективной информаци­
онно-справочной поддержки для подготовки исполнителями
проектов служебных документов. Пользователями АИС, оче-
90
3.2. Проектирование банков данных фактографических ЛИС
видно, должны являться работники СлДОУ, руководители и ис­
полнители документов в подразделениях.
Главным итоговым результатом концептуального проекти­
рования является определение основных объектов-сущностей
предметной области и отношений между ними. В большин­
стве случаев организационные, технологические и прочие от­
ношения предметной области имеют документальное выраже­
ние в различного рода организационно-распорядительных, ин­
формационно-справочных и других нормативно-служебных
документах. Поэтому выделение основных информационных
объектов-сущностей предметной области начинается с анализа
таких документов и регламентации (положения, инструкции,
бланки, формализованные карточки и отчеты, формы, журна­
лы и т. п.).
Анализ «бумажной» документации позволяет сформировать
перечень атрибутов, характеризующих те или иные объектысущности и отношения предметной области. При этом в одном
нормативном или служебном документе могут быть отражены
атрибуты различных объектов сущностей и отношений. Поэто­
му можно выделить два подхода формирования перечня сущ­
ностных объектов предметной области и их атрибутов — де­
дуктивный и индуктивный.
В первом подходе на основе формирования общего пред­
ставления о предметной области АИС, функций АИС, а также
информационных потребностей основных абонентов-пользо­
вателей выделяются основные понятия и категории, которыми
оперируют (которыми выражаются) фрагменты предметной
области. Данные понятия и категории принимаются за перво­
начальную основу списка объектов-сущностей предметной об­
ласти. Далее на основе анализа служебной и технологической
документации, а также дополнительного взаимодействия с за­
казчиком формируются атрибуты, характеризующие выделен­
ные объекты-сущности.
При определении перечня атрибутов каждого объекта пред­
метной области, как и самого перечня объектов сущностей, ру­
ководствуются соображениями минимальной досшаточнос91
3. Основы создания информационных систем
/ии, соблюдая знаменитый принцип «бритвы Оккама»2 извест­
ного английского философа Уильяма Оккама (1285-1349). Ина­
че говоря, и перечень самих объектов-сущностей и набор их
атрибутов должен быть достаточным для решения всех част­
ных задач системы и удовлетворять информационным потреб­
ностям абонентов-пользователей системы, но он также не долэ/сен быть избыточным, чтобы минимизировать расходы по
накоплению информации и эксплуатации АИС.
Во втором подходе на основе анализа служебной и техно­
логической документации выделяются все необходимые для
решения частных задач АИС сведения, их характеристики и
параметры, и на этой основе формируется общий перечень ат­
рибутов предметной области. Далее на основе эвристическо­
го анализа производится агрегация (группирование) атрибутов
в отдельные группы, образующие объекты-сущности предмет­
ной области.
Часть атрибутов и понятий предметной области выражают
процессы-отношения между объектами-сущностями. Такие
атрибуты выделяются, и анализируются параметры и харак­
тер связей, которые они выражают—структурность, направ­
ленность, множественность, обязательность наличия для эк­
земпляров объектов.
Чаще всего выделение объектов-сущностей, их атрибутов
и отношений-связей осуществляется комбинированным спосо­
бом на итерационной основе, с многократным уточнением ис­
ходного списка объектов, агрегацией атрибутов в группы и т. д.
Распространенным приемом в этом случае является «обобще­
ние» некоторых понятий и атрибутов. Суть обобщения заклю­
чается в объединении в одну сущность близких или однотип­
ных понятий, категорий, атрибутов на основе анализа их част­
ных проявлений и вариантов. К примеру, совокупность понятий
«холодильник», «стиральная машина», «телевизор», «пылесос»
и т. п. обобщается сущностью «Бытовые электроприборы» с
2
«Не умножай число сущностей без необходимости». См., например, с. 317 в
работе: Философский словарь / Под ред. М. Т. Тимофеева. 6-е изд., перераб. и доп. —
М.: Политиздат, 1991.
92
3.2. Проектирование банков данных фактографических ЛИС
атрибутом «Тип», имеющим соответствующий список значе­
ний.
В примере с АИС по делопроизводству на основе предва­
рительного формирования общего представления о предметной
области, а также дополнительного изучения документации
СлДОУ (структура журналов регистрации и учета документов,
порядок ведения номенклатурных дел и т. д.) можно выделить
следующие понятия и категории — документ, реквизиты, ис­
полнитель, подготовка, согласование, руководитель, утверж­
дение, подписание, регистрация, доклад документа, резолюция,
мероприятия, подразделения, доведение до исполнителей, ис­
полнение документа, контроль исполнения, хранение, уничто­
жение, выдача, дело в производстве, архивное дело. Часть этих
понятий и категорий прямо выражают объекты-сущности (до­
кумент), часть выражает атрибуты сущностей (реквизиты до­
кумента). Часть понятий (исполнитель, руководитель) можно
обобщить одной сущностью (сотрудник). Часть понятий (ис­
полнение, согласование, подписание, утверждение) выражает
отношения между сущностями (между документом и сотруд­
ником).
В итоге перечень объектов сущностей предметной области
АИС делопроизводства и их атрибутов может быть следующим3:
• Документ (Per. №, Дата, Название вида, Заголовок к тек­
сту, Гриф, Текст);
• Сотрудник (Таб. №, ФИО, Подразделение, Должность, Ка­
бинет, Телефон);
• Подразделение (№, Наименование);
• Мероприятие (Наименование, Дата начала, Дата оконча­
ния, Завершенность);
• Дело (№№, Наименование, Дата начала, Дата окончания,
Гриф).
Отношения, которыми охвачены объекты-сущности, мож­
но отобразить следующей таблицей:
'Данный вариант является исключительно иллюстративно-учебным.
93
3. Основы создания информационных систем
Таблица 3.2
Отношения объектов-сущностей предметной области АИС
по делопроизводству
Между какими
oui-eKKiMn-cyugiuciHMii
ILuiMl'HOIUHlie
01 ношения
IL'pHMii UOLCKI
ОГчг^исп.ность
Inn ипичи'пии
BlUjMH oC'U'Kl
i>MMI]L'linri
1 LL терпим 1 Li втором
oOu'Kie
ixiueKie
'Утвержден"
Сотрудник
Документ
"О дин-ко-многим"
Нет
Пет
"Исполнен"
Сотрудник
Документ
"Один-ко-многим"
Нет
Да
"Подписан"
Сотрудник
Документ
"Многие-ко-многим" Нет
Да
"Напечатан"
Сотрудник
Документ
'Один-ко-многим"
"Согласован"
Сотрудник
Документ
"Многие-ко-многим" Нет
Да
Нет
"Завизирован"
Сотрудник
Документ
"Многие-ко-многим" Нет
Нет
"Направлен"
Документ
Подразделение
"ОДИН-КО-МНОГИМ"
Нет
Нет
"Подготовлен"
Подразделение Документ
"Один-ко-многим"
Нет
Нет
"Руководит"
Сотрудник
Подразделение "О дп и - к- одному"
Нет
Да
"Работают"
Подразделение Сотрудник
"Отражает"
Документ
"Исполнение"
Нет
"Один-ко-многим"
Мероприятие
Да
"Многие-ко-многим" Нет
Да
Пет
Сотрудник
Мероприятие
"Многие- ко-многим" Нет
Да
Ответственный Сотрудник
Мероприятие
"Один-ко-многим"
Нет
Да
Проводит
Подразделение
Мероприятие
"О дин-ко-многим"
Нет
Участвует
Подразделение
Мероприятие
"Многие-ко-многим" Нет
Да
Пет
Приобщен
Дела
Документы
"О дин-ко-многим"
Да
Да
Ведет
Сотрудник
Дела
"Один-ко-многим"
Нет
Да
Формализованное описание концептуальной схемы бан­
ка данных осуществляется средствами одной из семантичес­
ких моделей данных. Семантические модели данных возникли
в противовес ограниченности средств и способов выражения
смысловой организации связей между таблицами-сущностями
в реляционной модели данных. При этом в большинстве случа­
ев семантические модели применяются на стадии концептуаль­
ного проектирования с последующим преобразованием концеп­
туальной схемы банка данных в структуру соответствующей
реляционной базы данных. В этом смысле разработку концеп­
туальной схемы банка данных называют семантическим мо­
делированием данных.
Наиболее популярными являются разновидности уже упо­
минавшейся ER-модели, использующие для графического пред94
3.2. Проектирование банков данных фактографических ЛИС
ставления структуры данных аппарат диаграмм Бахмана. Формализованное описание ER-модели было предложено в
1976 году Петером Пин-Шен Ченом4. Основными компонента­
ми структурной составляющей семантической модели Чена яв­
ляются сущности, наборы сущностей, атрибуты сущностей,
наборы значений атрибутов, ключевые атрибуты сущностей,
связи, виды связей, атрибуты связей, наборы связей, ключевые
атрибуты связей5.
Оригинальные предложения П. Чена по графическому обо­
значению в диаграммах Бахмана сущностей и связей претерпе­
ли изменения, и далее мы будем придерживаться современных
вариантов графического изображения концептуальных схем, а
именно — объекты-сущности изображать прямоугольниками,
при необходимости вставляя в них перечень их атрибутов, свя­
зи типа «Один-ко-многим» будем обозначать линиями с парой
символов (1 °°) на концах соответствующих объектов, связи типа
«Многие-ко-многим» линиями с парой символов (°° °°) и связи
типа «Один-к-одному» линиями с парой символов (11). Обяза­
тельный характер связи будем обозначать черным квадратиком
на конце соответствующей связи, необязательный характер —
пустым квадратиком.
В качестве примера на рис. 3.1 приведена концептуальная
схема банка данных АИС по делопроизводству.
Формализованное описание концептуальной схемы бан­
ка данных в большинстве случаев осуществляется на бумаге и
служит основой эскизного проекта создания банка данных ин­
формационной системы. Следующим шагом в проектировании
является построение средствами СУБД схемы банка (базы) дан­
ных, которое в большинстве случаев производится «вручную».
Иначе говоря, средствами СУБД, поддерживающей ту или иную
модель данных, скажем реляционную, создается структура бан­
ка данных, соответствующая концептуальной схеме. При этом
4
Перевод оригинальной статьи П.Чена «Модель «Сущпость-Свял.» — шаг к еди­
ному представлению данных» представлен в журнале СУБД. — № 3 . — 1995 г. С. 137157.
5
Легко заметить, что семантическая модель Чена является агрегацией и обобще­
нием сетевой и реляционных моделей.
95
3. Основы создания информационных систем
р* ~«V Документы
*
Л
«С*** °° д
,-ц
м
Дата
Название вида
Заголовок к тексту
.УД Гриф
П
Р«Об,
Дела
Наименование
Дата начала
Дата окончания
Гриф
Завершенность
Подразделения
Подчиняется
Мероприятия Дю
№№
Наименование
Дата начала
Дата окончания
Завершенность
Рис. 3.1. Пример концептуальной схемы банка данных АИС но
делопроизводству
при переходе от концептуального к схемно-структурному про­
ектированию может иметься разрыв в семантических средствах
выражения сущностей, атрибутов, связей и т. д. Адекватность
реализации концептуальной схемы банка данных определяет­
ся, как уже отмечалось, эвристически и эмпирически в ходе
отладки и дальнейшей эксплуатации банка данных.
3.2.2. Проектирование схем реляционных баз
данных
В реляционных СУБД при проектировании схемы реля­
ционной базы данных можно выделить следующую последо­
вательность процедур:
а) определение перечня таблиц и их связей;
96
3.2. Проектирование банков данных фактографических ЛИС
б) определение перечня полей, типов полей, ключевых по­
лей каждой таблицы (разработка схем таблиц-отношений), ус­
тановление связей между таблицами через внешние ключи;
в) определение и установление индексов (индексирования)
для полей в таблицах;
г) разработка списков (словарей) для полей с перечисли­
тельным характером значений данных;
д) установление ограничений целостности по полям таб­
лиц и связям;
е) нормализация таблиц, доработка перечня таблиц и их
связей.
Технологически процесс проектирования разделяют на про­
цесс предварительного проектирования таблиц и связей меж­
ду ними: а) ,б),в),г)ид)и последующую нормализацию таблиц е).
3.2.2.1. Проектирование и создание таблиц
В качестве первоначальной основы при определении пе­
речня таблиц банка данных и связей между ними используется
перечень выделенных объектов-сущностей и отношений кон­
цептуальной схемы банка данных. Иначе говоря, для каждого
объекта-сущности в реляционных СУБД осуществляется про­
ектирование соответствующей таблицы.
Поля таблиц определяются на основе первоначально от­
работанных атрибутов информационных объектов концепту­
альной схемы банка данных. При этом дополнительно к основ­
ным базисным характеристикам (домен, поле-атрибут, кортеж,
отношение, ключ, внешний ключ) в СУБД используется тип
поля. По своему смыслу тип поля совпадает с понятием типа
данных в языках программирования. Традиционные СУБД под­
держивают лишь ограниченный набор простых типов полей—
числовые, символьные, темпоральные (время, дата), булевы (ло­
гические). Современные СУБД оперируют также и со специа­
лизированными типами полей (денежные величины), а также
со сложными типами полей, заимствованными из языков про­
граммирования высокого уровня.
Домены полей таблиц в реляционных СУБД определяют
некоторый базисный тип данных для поля, но вместе с тем не
97
3. Основы создания информационных систем
являются тождественным понятием типу поля (данных). В не­
котором смысле домен можно трактовать как некоторое под­
множество базисного типа данных с определенной смысловой
нагрузкой, — например, множество всех имен из множества
всевозможных значений символьного типа данных.
Определение и установление ключевых полей таблиц в ре­
ляционных СУБД является следствием основополагающего тре­
бования по ограничениям целостности таблиц-отношений—
требования уникальности каждого кортежа-строки. Иначе гово­
ря, одно из полей таблицы, или определенная совокупность
полей, в обязательном порядке должно быть определено как
ключ. Определение ключевого поля осуществляется на основе
смыслового эвристического анализа тематики таблицы при со­
блюдении принципалш/шлшль//ойдостаточности,т. е. коли­
чество полей, образующих ключ таблицы должно быть мини­
мальным.
Правильность определения ключа таблицы проверяется эм­
пирически по возможным ситуациям совпадения у различных
кортежей значений ключа. Во многих случаях выбор ключа яв­
ляется нетривиальной задачей. Какое поле, к примеру, выбрать
ключевым для таблицы «Сотрудники»? Напрашивается состав­
ной ключ из полей «Фамилия», «Имя», «Отчество», однако в
конкретных жизненных ситуациях имеется вероятность их со­
впадения. Можно добавить в состав ключа еще поле «Год рож­
дения», но и при этом все равно сохранится, хотя и несколько
снизится, вероятность совпадения. Альтернативным вариантом
ключа может быть «№ паспорта», если ситуации с наличием у
одного лица нескольких паспортов полностью исключаются.
Если в банке данных ограничиться только сотрудниками дан­
ной организации, то отработанным вариантом ключа может
быть табельный номер сотрудника — «Таб. №»6. На практике
распространенным приемом при проектировании таблиц явля­
ется искусственное введение в качестве ключа параметра, яв6
Табельный номер как раз и является примером уникального параметра для каж­
дого сотрудника в платежных ведомостях (таблицах) для преодоления ситуаций с со­
впадением фамилий, имен и т. д. сотрудников.
98
3.2. Проектирование банков данных фактографических ЛИС
ляющегося аналогом табельного номера — внутреннего учет­
ного номера экземпляра (записи) соответствующего объекта.
В некоторых СУБД для создания полей с уникальными
идентификационными номерами кортежей-записей введен до­
полнительный тип поля, называемый «Счетчиком» или полем
типа «AUTOINC». В отличие от обычных числовых (или по­
рядкового типа) полей, значения счетчика генерируются СУБД
автоматически при образовании новой записи и только в возра­
стающем порядке, считая все ранее созданные, в том числе и
удаленные записи.
Как уже отмечалось, реляционная модель организации дан­
ных по признаку множественности обеспечивает лишь два типа
связей-отношений между таблицами, отражающими объектысущности предметной области, — «Один-ко-лшогим» и «Одинк-одному».
Связь типа «.Один-ко-многим» реализует, вероятно, наибо­
лее распространенный тип отношений между таблицами, ког­
да одной записи в таблице на стороне «один» может соответ­
ствовать несколько записей в таблице на стороне «многие». Со­
здание связей происходит в два этапа. На первом этапе в схеме
таблицы, находящейся по создаваемой связи на стороне «мно­
гие», определяется поле с теми же параметрами (и, как прави­
ло, с тем же именем), что и ключевое поле таблицы на стороне
«один», т. е. создается поле внешнего ключа. На втором этапе
с помощью специальных средств СУБД собственно и опреде­
ляется связь между таблицами путем установления (через спе­
циальные внутренние системные таблицы) факта соответствия
ключевого поля таблицы на стороне «один» полю внешнего
ключа в таблице на стороне «многие».
В связях типа «Один-к-одному» каждой связанной записи
одной таблицы соответствует в точности одна связанная запись
в другой таблице. Как уже отмечалось, данный тип связи обра­
зуется путем связывания таблиц по одноименным и однотип­
ным ключевым полям, т. е. когда.связываемые таблицы имеют
одинаковые ключевые поля. Эта ситуация по сути соответству­
ет разбиению одной большой по количеству столбцов таблицы
99
3. Основы создания информационных систем
на две таблицы. Необходимость такого разбиения может быть
обусловлена соображениями разграничения доступа к данным
по определенным полям, либо целесообразностью выделения
некоторого подмножества записей в исходной таблице. Так, на­
пример, из исходной таблицы «Студенты» можно выделить все
записи по студентам, которые живут в общежитии, и образо­
вать две таблицы, связанные отношением «Один-к-одному».
Пример такой связи приведен на рис. 3.2.
Исходная таблица "Студенты"
Т»б_Л9
студента
567
568
569
570
ФИО
Ив шов И.И.
Петров П.П.
Сидоров а С.С.
Егоров Е.Е.
Преобразованная таблица "Студенты"
TiBJNi
студента
567
568
569
570
ФИО
Иванов И.И.
Петров П.П.
Сидор оваС.С.
Егоров Е.Е.
Группа
И-201
И-205
И-205
И-205
Группа
Комната в
общежитии
И-201
И-205
И-205
И-205
77
23
Связанная таблица "Студенты, проживающие в
общежитии"
Та5_Х.
1 студента
568
569
ФИО
Петров П.П.
СидороваС.С.
Комната в
общежитии
77
23
Рис. 3.2. Пример реализации связи «Один-к-одпому» в реляцион­
ных СУБД
Связи типа «Многие-ко-многим» в реляционных СУБД в
большинстве случаев реализуются через создание двух связей
«Один-ко-многим», которые связывают исходные таблицы с
третьей общей (связной) таблицей. Ключ связной таблицы со­
стоит, по крайней мере, из двух полей, которые являются поля­
ми внешнего ключа для связываемых отношением «Многиеко-многим» исходных таблиц. Пример реализации связи типа
«Многие-ко-многим», выражающей отношение «Согласование»
между таблицами «Документы» и «Сотрудники», приведен на
рис. 3.3.
Еще одним важным параметром при проектировании таб­
лиц является определение необходимости индексирования тех
или иных полей таблиц. Определение и установление индексов
100
3.2. Проектирование банков данных фактографических АИС
Документы
Рег.№
Название
о-,
Сотрудники
Согласование
т
ФИО
Элемент исходной концептуальной схемы
с отношением "Многае-ко-многим"
Реализация в схеме банка данных через третью связную
таблицу (ключевые поля выделены жирным шрифтом)
РегЛЬ
1497-е
1234нс
4774
Документы
Название
О поставках
О сбыте
О кредите
Один документ
согласован
двумя
сотрудниками
Поряд.№
132
133
134
PerJ*
14/9 7-е
1*9 7-е
4774
"%> тасования
<
Поряд.№
Дата
132
15.02
134
17.02
132
16.02
Сотрудники
ФИО
Иванов И.И.
Петров H.U.
Сидоров С.С.
Один сотрудник
согласовал два
документа
Рис. 3.3. Реализация связей «Мпогие-ко-миогим» в реляционных
СУБД
полей таблиц базы данных является, как уже отмечалось, важ­
ным средством создания условий эффективной обработки дан­
ных. Индексирование полей (создание индексных массивов)
существенно повышает скорость поиска и доступа к записям
базы данных. Однако при этом соответственно замедляется ввод
и добавление данных из-за необходимости переупорядочения
индексных массивов при любом обновлении, удалении или до­
бавлении записей. Поэтому при проектировании таблиц следу­
ет тщательно проанализировать, насколько часто при последу­
ющей эксплуатации банка данных потребуется поиск или вы­
борка строк-записей таблицы по значениям тех или иных полей,
исходя из функций и задач АИС. На основе такого анализа и
определяются те поля таблицы, для которых необходимо со­
здать индексы. К примеру, в таблице «Сотрудники» базы дан­
ных по документообороту поле «ФИО» целесообразно опреде­
лить индексируемым, так как, очевидно, довольно часто будет
требоваться доступ к записям таблицы именно по значению
101
3. Основы создания информационных систем
этого поля. А вот поле «№ кабинета» вряд ли целесообразно
индексировать, так как исходя из задач и функций АИС по
документообороту, можно прогнозировать, что задачи отбора,
группирования и прочей обработки записей с точки зрения раз­
мещения сотрудников по кабинетам будут достаточно редки­
ми.
Анализ практики использования индексов в базах данных
позволяет сделать вывод, что если в одной таблице установле­
но более 10 индексов, то либо недостаточно продумана струк­
тура базы данных (таблицы), либо не совсем обоснованно оп­
ределены вопросы обработки данных исходя из задач АИС.
Ключевые поля в большинстве случаев являются индекси­
руемыми автоматически, т. к. поиск и доступ к записям в базе
данных производится прежде всего по значениям ключевых по­
лей.
В большинстве СУБД вопросы внутреннего устройства ин­
дексных массивов остаются скрытыми и недоступными как для
конечных пользователей, так и для проектировщиков. Допус­
кается только лишь качественное определение режима индек­
сирования — без повторов значений индексируемых полей7 и с
возможностью таких повторов, что, очевидно, определяет раз­
ные типы индексных массивов — Б-деревья или инвертирован­
ные списки8.
При определении параметров полей таблиц важное значе­
ние имеет также выделение полей с перечислительным (сло­
варным, списковым) характером значений. Значения таких по­
лей определяются из некоторого унифицированного списка-сло­
варя. К примеру, поле «Образование» является не просто
текстовым, а по сути текстово-списочным, так как набор его
всевозможных значений составляет унифицированный спи­
сок— «Начальное», «Среднее», «Среднеспециальное», «Сред­
нетехническое», «Высшее». Некоторые СУБД обеспечивают
возможность при проектировании таблиц построения и при­
вязки к соответствующим полям таких списков-словарей.
'Так называемый уникальный индекс. Автоматически устанавливается для клю­
чевых полей.
" Как правило, данные вопросы в документации по СУБД не отражаются.
102
3.2. Проектирование банков данных фактографических АИС
Установление списков значений или, иначе говоря, слова­
рей позволяет упростить в дальнейшем ввод данных в записях
по таким полям путем выбора соответствующего значения из
словаря и, кроме того, унифицировать ввод одинаковых значе­
ний в различных записях. К примеру, при ручном наборе значе­
ния «Среднее» помимо различий из-за возможных орфографи­
ческих ошибок, могут быть также и регистровые различия
(«Среднее», «среднее», «СРЕДНЕЕ»), что в дальнейшем при­
ведет к ошибкам поиска, фильтрации и выборки записей.
Списки (словари) значений могут быть фиксированными,
не изменяемыми в процессе эксплуатации банка данных, или
динамическими.
Фиксированные списки «привязываются» к соответствую­
щим полям через специальные механизмы конкретной СУБД и
размещаются в системных таблицах (каталоге) базы данных,
доступа к которым пользователи-абоненты системы не имеют.
Динамические словари в большинстве случаев реализуют­
ся через создание дополнительных одностолбцовых таблиц,
строки которых являются источником списка значений для по­
лей других таблиц. Привязка подобных словарных таблиц в ка­
честве источника значений для полей других таблиц осуществ­
ляется также через специальные механизмы конкретной СУБД.
Такие таблицы в дальнейшем доступны пользователям банка
данных. Соответственно обновление, добавление или удаление
записей в таблицах-словарях позволяет изменять словарный
базис для полей соответствующих таблиц. В некоторых СУБД
дополнительно может также устанавливаться режим ограниче­
ния значений словарно-списочных полей только установленным
списком значений. Установление такого режима целесообраз­
но в тех случаях, когда нужно исключить, в принципе, даже
случайный (ошибочный) выход значений поля за пределы спис­
ка. Так, например, в случае поля «Оценка» значения могут быть
только из списка «Неудовлетворительно», «Удовлетворитель­
но», «Хорошо», «Отлично».
Одним из важных в практическом плане этапов проекти­
рования таблиц является установление ограничений целост­
на
3. Основы создания информационных систем
ности по полям и связям. Как уже указывалось, в исходном
виде в реляционной модели данных основным ограничением
по значению полей является требование уникальности таблич­
ных строк-кортежей, что проявляется в требовании уникально­
сти значений ключевых полей. Дополнительно в реляционных
СУБД могут устанавливаться требования уникальности значе­
ний и по другим (не ключевым) полям через создание для них
индексов в режиме без повторов (UNIQ UE), а также установле­
ния режима обязательного заполнения в строках-кортежах оп­
ределенных полей (режим NOT NULL).
Вместе с тем современные СУБД могут предоставлять и
более развитые возможности установления ограничений цело­
стности данных. Можно определять допустимые диапазоны зна­
чений полей (например, значение поля «Оклад» не может быть
меньше величины минимального размера оплаты труда), а так­
же относительные соотношения значений по определенным по­
лям таблицы (например, значение поля «Количество» в табли­
це «Товары» не может быть меньшим значения поля «Мин_запас», значение поля «Дата_исполнения» в таблице «Заказы» не
может быть позднее поля «Дата_размещения» плюс определен­
ное количество дней, скажем 7 дней, исходя из того требова­
ния, что любой заказ клиента должен быть исполнен в течение
максимум 7 дней). Такие ограничения целостности данных от­
ражают ту часть правил и особенностей предметной области
АИС, которая не формализуется в рамках реляционной модели
данных9.
Другая часть ограничений целостности данных касается
уже упоминавшегося требования целостности ссылок.
Поддержание очевидного требования целостности ссылок
встречает определенные трудности на этапе эксплуатации бан­
ка данных. Такой типичной ситуацией является, к примеру, уда­
ление записи по отделу № 710 в таблице «Отделы». Если оста­
вить без соответствующего изменения все связанные кортежи
в таблице «Сотрудники» (кортежи со значением «710» внешне' Ввиду данного обстоятельства в некоторых англоязычных источниках такие ог­
раничения целостности называют «правилами бизнеса».
104
3.2. Проектирование банков данных фактографических АИС
го ключа «№ отдела»), то как раз и произойдет нарушение це­
лостности ссылок.
На практике в реляционных СУБД существует три подхо­
да реализации требования целостности по ссылкам. В первом
подходе запрещается удалять кортеж-запись какой-либо табли­
цы, если на него существуют ссылки из связанных таблиц. Ина­
че говоря, запись по отделу № 710 можно удалить лишь в том
случае, если перед этим удалены (или переадресованы по ссыл­
кам на другие записи) все сотрудники со значением «710» внеш­
него ключа «№ отдела». Во втором подходе при удалении за­
писи отдела № 710 значения внешних ключей всех связанных
кортежей таблицы «Сотрудники» автоматически становятся
неопределенными10. При третьем подходе осуществляется кас­
кадное удаление всех кортежей, связанных с удаляемым корте­
жем, т. е. при удалении записи по отделу № 710 автоматически
удаляются записи из таблицы «Сотрудники» с соответствую­
щим значением внешнего ключа «№ отдела». Выбор того или
иного режима целостности ссылок определяется на основе эв­
ристического анализа правил и возможных ситуаций в пред­
метной области АИС.
В заключение отметим, что разделение процесса проекти­
рования таблиц на этапы а, б, в, г и д является условным, а сам
процесс предварительного проектирования (создания) таблиц,
как будет показано в параграфе 4.1, реализуется специальными
инструкциями языка SQL.
3.2.2.2. Нормализация таблиц
Нормализация реляционных таблиц-отношений определя­
ется требованиями атомарности значений полей, а также более
общим требованием рациональности группировки полей-атри­
бутов по различным таблицам.
;
С содержательной точки зрения нормализацию таблиц мож­
но рассматривать как некоторую доработку концептуальной схе­
мы базы данных в тех случаях, когда концептуальное проекти"' Соответственно в этом случае СУБД различает «пустые» (NULL) и «неопреде­
ленные» значения полей.
105
3. Основы создания информационных систем
рование банка данных произведено без достаточной проработ­
ки, и в ходе предварительного проектирования созданы табли­
цы, отражающие данные сразу нескольких объектов-сущнос­
тей предметной области АИС.
С формальной точки зрения нормализацию можно пред­
ставить как последовательный процесс разбиения и преобра­
зования некоторого небольшого исходного набора таблиц для
построения набора взаимосвязанных таблиц в нормальных фор­
мах. Основатель реляционной модели данных Е. Кодц вьщелял
три нормальные формы—первую, вторую и третью. Этот на­
бор в дальнейшем был дополнен нормальной формой Бойса—
Кодда, и далее четвертой и пятой нормальными формами.
Наиболее простой нормальной формой является первая,
суть которой определяется уже упоминавшимся требованием
атомарности (неделимости) полей и единственности значений
по полям в реляционной модели данных. На рис. 3.4 приведен
пример ненормализованной таблицы «Сотрудники», имеющей
составное (делимое) поле «Мероприятия...» с множественны­
ми значениями по полям «Условное наименование» и «Награ­
да».
Исходная ненормализованная таблица
Лич.
Фамилия
Звание
сот.
001
Пронин
Майор
002
Исаев
Полковник
007
Бонд
Капитан
Мерогриятия, с которых участвовал
сотрудник
Условное наименование
Операция "Ы"
Операция "Бриллиантовая рука"
Операция "Берн"
Операция "Золотой глаз"
Операция "Багамы"
KaSuнет
Сл тел.
Премия
Отпуск
110
11 22 33
-
ПО
11 22 33
:мю
33 22 11
Награда
Ягуар
Феррари
Таблица в перв ой нормальной форме
Лич.
сот.
001
001
002
007
007
Условное наименование
мерариятш, в которых участвовал
сотрудник
Операция "Ы"
Операция "Бриллиантовая рука"
Операция "Берн"
Операция "Золотойглаз"
Операция "Багамы"
Награда
Оклад
Отпуск
-
Ягуар
Феррари
Фамилия
Звание
Пронин
Пронин
Исаев
Бонд
Бонд
Майор
Майор
Полковник
Капитан
Капитан
Каби­
нет
ПО
ПО
ПО
:-по
;-по
Сл тел.
11 22
11 22
11 22
3322
33 22
33
33
33
11
11
Рис. 3.4. Пример приведения таблицы к первой нормальной форме
106
3.2. Проектирование банков данных фактографических ЛИС
Приведение таких таблиц к первой нормальной форме осу­
ществляется путем образования составных ключей, при кото­
рых устраняются ситуации с множественными значениями по­
лей. Данный процесс иллюстрируется на рис. 3.4 (жирной рам­
кой выделены ключевые поля).
Из приведенного примера видно, что таблицы в первой нор­
мальной форме могут содержать многочисленные ситуации дуб­
лирования данных (в приведенном примере по полям «Фами­
лия», «Звание», «Кабинет», «Сл.тел.»). Кроме того, в таблице,
находящейся в первой нормальной форме, могут встречаться и
другие аномалии схемы таблиц-отношений. В частности, в при­
веденном примере нельзя образовать запись для сотрудника, не
участвовавшего ни в одной операции. Удаляя запись об учас­
тии определенного сотрудника в определенной операции, мож­
но удалить информацию о том, что он вообще работает в опре­
деленном подразделении. При переводе сотрудника в другое
подразделение или при его перемещении в другой кабинет при­
ходится изменять все записи-кортежи с данным сотрудником
по различным операциям. Поэтому Е. Коддом был разработан
специальный механизм разбиения таблиц для приведения к
более совершенным нормальным формам. Этот механизм ос­
нован на понятии функциональной зависимости полей-ат­
рибутов.
Поле-атрибут Y функционально зависит от поля-атрибута
X, если любому значению X всегда соответствует в точности
одно значение Y. К примеру, атрибут «ФИО» функционально
зависит от атрибута «Таб.№», т. е. каждому значению атрибута
«Таб.№» соответствует только одно значение атрибута «ФИО».
Другим примером является функциональная зависимость поля
«Кабинет» от поля «Фамилия», так как обычно один сотрудник
имеет рабочее место только в одном кабинете. Легко убедить­
ся, что в таблице, находящейся в первой нормальной форме,
все неключевые атрибуты функционально зависят от ключа таб­
лицы.
Вторая нормальная форма основывается на понятии пол­
ной функциональной зависимости. Функциональная зависи­
мость неключевого атрибута от составного ключа таблицы на107
3. Основы создания информационных систем
зывается полной, если он функционально зависит в целом от
составного ключа, но не зависит отдельно от любой части со­
ставного ключа. В примере, приведенном на рис. 3.4, значение
поля-атрибута «Фамилия» определяется только значением поля
«Лич.№ сотр.», которое является частью составного ключа таб­
лицы, и, следовательно, функционально полной зависимости
неключевого поля-атрибута «Фамилия» от составного ключа
нет. В полной функциональной зависимости от составного клю­
ча находится поле-атрибут «Награда», так как только комбина­
ция значений полей «Лич.№ сотр.» и «Условное наименование
мероприятий...» определяет конкретное значение поля «Награ­
да».
Таблица-отношение находится во второй нормальной
форме, если она находится в первой нормальной форме и все
ее неключевые атрибуты функционально полно зависят от со­
ставного ключа. Для перевода таблицы из первой нормальной
формы во вторую необходимо:
• образовать проекцию (вертикальное подмножество) ис­
ходной таблицы на составной ключ и на поля, находящиеся в
полной функциональной зависимости от составного ключа;
• построить еще одну или несколько проекций на часть со­
ставного ключа с полями, функционально зависящими от этой
части ключа.
На рис. 3.5 показан пример приведения таблицы из первой
нормальной формы во вторую.
В таблицах, находящихся во второй нормальной форме,
большинство аномалий, присущих первой форме, устранено.
Вместе с тем по определенным атрибутам также могут сохра­
няться многочисленные ситуации дублирования данных. Так,
например, в приведенном на рис. 3.5 примере происходит нео­
правданное дублирование информации о служебном телефоне
«11 22 33», так как атрибут «Сл. тел.» фактически зависит не
от атрибута «Лич.№ сотр.»», а от атрибута «Кабинет»". Иначе
говоря, наблюдается цепочка функциональной зависимости ат" В большинстве жизненных ситуаций в одной комнате для сотрудников уста­
новлен один общий телефон.
108
3.2. Проектирование банков данных фактографических ЛИС
Таблица в первой нормальной форме
сот.
001
001
002
007
007
Жпосиое пашенование
мерогфихтий
Операция "Ы"
Операция "Бриллиантовая рука
Операция "Берн"
Операция "Золотой глаз"
Операция "Багамы"
Награда
Фамилия
Звание
Оклад
Отпуск
Пронин
Пронин
Исаев
Бонд
Бонд
Майор
Майор
Полковник
Капитан
Капитан
-
Ягуар
Феррари
Проекция на составной ключ с полями,
нах едящимися в полной функциональной
зависимости от него
Условное нлшенование
Награда
сотр.
мероприятий
001
Операция "Ы"
001
Операция "Бриллиантовая ртка Отпуск
002
Операция "Берн"
-
007
Операция "Золотой глаз"
Ягуар
007
Операция "Багамы"
Феррари
Оклад
Кабинет
ПО
ПО
ПО
С-ПО
с-по
Сл. тел
11
11
11
33
33
22 33
22 33
22 33
2211
22 11
Проекция на поле ключа с полями, находящимися
с данньгошопемв функциональнойзависимости
Jfo\J&
Фамилия
сотр.
Звание
Кабинет
Си.
тел
11 22 33
001
Пронин
Майор
110
002
007
Исаев
Полковник
ПО
11 22 33
Бонд
Капитан
С-110
33 22 11
Рис. 3.5. Пример приведения таблицы из первой во вторую нор­
мальную форму
рибутов «Лич. № сотр.» — «Кабинет» — «Сл. тел.», а функцио­
нальная зависимость атрибута «Сл. тел.» от атрибута
«Лич. № сотр.» является лишь логическим следствием такой це­
почки зависимостей. В таких ситуациях говорят о транзитив­
ной зависимости атрибута «Сл. тел.» от атрибута «Лич.
№ сотр.».
По определению таблица-отношение находится в третьей
нормальной форме, если она находится во второй нормальной
форме и каждое ее не ключевое поле-атрибут иетранзитивно
зависит от первичного ключа. Легко увидеть, что альтернатив­
ным определением третьей нормальной формы является вза­
имная независимость неключевых атрибутов и их полная фун­
кциональная зависимость от первичного ключа.
Для преобразования из второй в третью нормальную фор­
му таблицу-отношение разделяют на две или более проекции
так, чтобы конечные поля-атрибуты в цепочках транзитивной
зависимости вынести в отдельные таблицы, связав разделив­
шиеся части таблицы внешними ключами по полям-атрибутам,
находящимся внутри цепочек транзитивной зависимости. На
109
3. Основы создания информационных систем
рис. 3.6 проиллюстрирован процесс приведения таблицы из вто­
рой в третью нормальную форму путем разделения цепочки
транзитивной зависимости «Лич.№ сотр.» — «Кабинет» —
«Сл. тел.». Внутреннее в этой цепочке поле-атрибут «Кабинет»
стало соответственно внешним ключом в первой таблице и пер­
вичным ключом во второй таблице.
Исходная таблица во второй нормальной форме
Фамилия
сотр.
001
002
007
Ксбгмет
Звание
ПО
ПО
Майор
Полковник
Капитан
Пронин
Исаев
Бонд
Сл тел.
122 33
122 33
33 22 11
С-ИО
Декомпозицихтабпицыв третью нормальную форму
Лгм. .Л6
сотр.
001
002
007
Фамилия
Пронин
Исаев
Бонд
Звание
Майор
Полковник
Капитан
Ка5инет
ПО
110
Ка5инет
ПО
С-110
Сл тел.
11 22 33
33 22 11
С-110
Рис. 3.6. Пример приведения таблицы в третью нормальную
форму
На практике третья нормальная форма устраняет большин­
ство аномалий схем таблиц-отношений, а также ситуации дуб­
лирования данных, и после декомпозиции исходных таблицотношений до третьей нормальной формы процесс нормализа­
ции заканчивается. Вместе с тем в некоторых случаях третью
нормальную форму можно также «улучшить», в частности при­
ведением таблицы-отношения в нормальную форму Бойса-Кодда.
Такие ситуации связаны с наличием так называемых де­
терминантов— совокупности атрибутов (составных атрибу­
тов), от которых функционально полно зависят другие атрибу­
ты. В результате таблица может находиться в третьей нормаль­
ной форме, т. е. все его неключевые атрибуты взаимно
функционально независимы, но имеется полная функциональ­
ная зависимость некоторых атрибутов от совокупности других
110
3.2. Проектирование банков данных фактографических ЛИС
атрибутов (детерминантов). Пример такой таблицы приведен
на рис. 3.7.
Исходная таблица в третьей нормальной форме
Лим.№
стр.
001
002
002
007
Фамилия
Операция
"Ы*
Пронин
Исаев
Исаев
Бонд
"Берн"
"Бранденбург"
"Золотой глаз"
Мероприятие
"Прьгжок"
"Бросок"
"Прыжок"
"Бросок"
Декомпозиция для удовлетворения требованиям нормальной формы Бойса-Кодда
Лич. J *
сотр.
001
002
007
Фамилия
Пронин
Исаев
Бонд
Лич. Л&
сотр.
001
002
002
007
Операция
И
Ы"
Мероприятие
"Берн"
"Прыжок"
"Бросок"
"Бранденбург11
"Золотой глаз"
"Прыжок"
"Бросок"
Рис. 3. 7. Пример приведения таблицы из третьей нормальной
формы в форму Бойса-Кодда
В данной таблице имеются два детерминанта —
(«Лич. № сотр.», «Операция») и («Фамилия», «Операция»), от
каждого из которых функционально полно зависит поле-атри­
бут «Мероприятие».
Таблица-отношение находится в нормальной форме Бой­
са-Кодда тогда и только тогда, когда каждый его детерминант
является возможным ключом. Очевидно, что если в таблице име­
ется всего один возможный ключ, то он одновременно являет­
ся детерминантом, и нормальная форма Бойса-Кодда совпада­
ет с третьей нормальной формой12.
Таблица, приведенная на рис. 3.7, не удовлетворяет требо­
ванию нормальной формы Бойса-Кодда, так как если устано­
вить ключом детерминант («Лич.№ сотр.», «Операция»), то
поле-атрибут «Фамилия» будет функционально зависеть от ча­
сти составного ключа (от поля «Лич.№ сотр.») и нарушатся тре­
бования второй нормальной формы. Следствием такой ситуа­
ции является дублирование данных по полям-атрибутам «Лич.
№ сотр.» и «Фамилия».
12
Поэтому иногда нормальную форму Бойса-Кодда считают частным случаем
третьей нормальной формы.
111
3. Основы создания информационных систем
Для приведения таблицы в нормальную форму Бойса-Кодда необходимо произвести декомпозицию таблицы так, чтобы
исключить случаи пересечения по некоторым полям-атрибутам
имеющихся детерминантов.
Встречаются также случаи, требующие «улучшения» и нор­
мальной формы Бойса—Кодца. Такие ситуации связаны с мно­
гозначной зависимостью атрибутов. В таблице-отношении
с полями-атрибутами X, Y, Z существует многозначная зависи­
мость атрибута Y от атрибута X тогда и только тогда, когда
любое значение из множества Y, соответствующее паре значе­
ний атрибутов X и Z, зависит только от значения Y. Для приме­
ра рассмотрим таблицу на рис. 3.8. При этом будем считать,
что каждый сотрудник, привлеченный к какой-либо операции,
в обязательном порядке участвует во всех проводимых в рам­
ках данной операции мероприятиях. В этом случае единствен­
но возможным ключом является совокупность всех трех полей
атрибутов (каждый сотрудник может участвовать в разных опе­
рациях, в одной операции может участвовать несколько сотруд­
ников).
Исходная та&шца в нормальной форме Бойса-Кодца
Фамилия
Опфахря
Ыщюурлятии
Пронин
Пронин
Бонд
Бонд
Бонд
"Ы"
"Ы"
"Золотой глаз"
"Золотой глаз"
"Золотой глаз"
"Прыжок"
"Бросок"
"Подход"
"Конгагг"
"Связь"
Декомпозиция таблицы для выполнения требований четвертой нормальной формы
QnzpaxpA
"Ы"
"Зшотойтаз"
Фамишя
Пронин
Бонд
Опярахфм,
"Ы"
"Ы"
"Золотой глаз"
"Золотой глаз"
"Зшотой таз"
Мфогрилтие
"Прыжок"
"Бросок"
"Подход"
"Контакт"
"Связь"
Рис. 3.8. Пример декомпозиции таблицы из нормальной формы
Бойса—Кодда в четвертую нормальную форму
112
3.2. Проектирование банков данных фактографических ЛИС
Так как имеется единственный возможный составной ключ,
то данная таблица автоматически находится в нормальной фор­
ме Бойса—Кодда. При этом имеется многозначная зависимость
поля-атрибута «Фамилия» от поля-атрибута «Операция» (для
любой пары значений атрибутов «Операция»—«Мероприятие»
значение атрибута «Фамилия» фактически определяется толь­
ко значением атрибута «Операция» при сформулированном
выше условии участия каждого сотрудника автоматически во
всех мероприятиях данной операции). Аналогично имеется мно­
гозначная зависимость поля-атрибута «Мероприятия» от поляатрибута «Операция». В такой ситуации для внесения инфор­
мации о новом сотруднике, вовлекаемом в какую-либо опера­
цию, придется добавить столько строк-кортежей, сколько
мероприятий проводится в рамках данной операции.
Подобные аномалии устраняет четвертая нормальная фор­
ма. Таблица-отношение находится в четвертой нормальной
форме тогда и только тогда, когда в случае существования мно­
гозначной зависимости атрибута Y от атрибута X все осталь­
ные атрибуты функционально зависят от атрибута X.
Приведение таблицы в четвертую нормальную форму ос­
новывается на теореме Фейджииа, в которой доказывается воз­
можность проецирования без потерь13 таблицы с атрибутами
X, Y, Z в две таблицы с атрибутами X, Y и X, Z, когда существу­
ет многозначная зависимость атрибута Y от атрибута X. Про­
цесс декомпозиции проиллюстрирован на рис. 3.8.
Наиболее сложной при нормализации является пятая нор­
мальная форма, связанная с наличием в таблице-отношении за­
висимостей соединения. В таблице-отношении с полями-атри­
бутами X, Y, ..., Z имеется зависимость соединения тогда и
только тогда, когда таблица может быть без потерь восстанов­
лена на основе операций соединения своих проекций, напри­
мер (X, Y), (X, Z), (Y, Z) и т. д. по полям-атрибутам X, Y,..., Z.
Таблица-отношение может находиться в четвертой нор­
мальной форме, но когда в ней имеется зависимость соедине" Проецирование без потерь предполагает полное и безызбыточмое восстановле­
ние исходной таблицы путем операции соединения таблиц — результатов декомпози­
ции.
113
3. Основы создания информационных систем
ния, могут возникать аномалии при операциях добавления/уда­
ления строк-кортежей. Для примера рассмотрим таблицу, при­
веденную на рис. 3.9. Ключом таблицы является совокупность
всех трех полей-атрибутов, так как сотрудник может входить в
состав разных групп и участвовать в разных мероприятиях, каж­
дое из которых может проводиться разными группами. В таб­
лице нет детерминантов, отсутствуют функциональные и мно­
гозначные зависимости, т. е. таблица находится в четвертой нор­
мальной форме. Тем не менее в данной таблице нельзя удалить
информацию по участию Бонда в мероприятии «Контакт», не
удалив при этом вообще информацию о мистере Бонде в таб­
лице. Нельзя также добавить строку-запись о вхождении мис­
тера Бонда еще и в группу «F», если при этом он не участвовал
ни в одном мероприятии.
Исходная таблица в четвертой нормальной форме
Фамилия
/>„«,
Мероприятие
"А"
"Прыжок"
Пронин
Пронин
"Прыжок"
•т"
Исаев
"Б"
"Связь*
Бонд
•S"Контакт11
Декомпозиция в три таблицыдоявыполнения требований пятой нормальной формы
Фамилия
Пронин
Пронин
Исаев
Бонд
/*«
"А"
"1"
"Б"
"S"
Мероприятие
Фамилия
Пронин
"Прыжок"
Исаев
"Связь*
Бонд
"Контакт"
Группа
"А"
"Т"
"Б"
•S"
Мероприятие
"Прыжок"
"Прыжок"
"Связь"
"Кап акт"
Рис. 3.9 Пример декомпозиции таблицы из четвертой в пятую
нормальную форму
Подобные аномалии устраняются приведением таблицы в
пятую нормальную форму. Таблица-отношение находится в пя­
той нормальной форме тогда и только тогда, когда любая за­
висимость соединения в ней следует из существования некото­
рого возможного ключа.
Приведение таблицы в пятую нормальную форму осуще­
ствляется путем ее декомпозиции сразу на несколько таблиц
отношений. Если предположить, что в таблице, представлен114
3.2. Проектирование банков данных фактографических ЛИС
ной на рис. 3.9, имеется зависимость соединения по составным
атрибутам «Фамилия»-«Группа», «Фамилия»-«Мероприятие»,
«Группа»-«Мероприятие»'4, то, разбив таблицу на три проек­
ции по соответствующим полям-атрибутам, можно удовлетво­
рить требованиям пятой нормальной формы и устранить отме­
ченные аномалии.
Из-за нетривиальности зависимости соединения пятая нор­
мальная форма практически не используется.
Нормализация исходных таблиц при проектировании бан­
ка данных, как уже отмечалось, проводится для рационализа­
ции группировки полей-атрибутов в схемах таблиц с целью ус­
транения аномалий и дублирования данных. Вместе с тем про­
цесс нормализации, как правило, приводит к декомпозиции
исходных таблиц на множество связанных и несвязанных бо­
лее простых таблиц. В результате при обработке данных при­
ходится осуществлять множество операций соединения таблиц,
что накладывает высокие требования к вычислительным ресур­
сам при больших объемах банка данных. Поэтому, как уже от­
мечалось, на практике в большинстве случаев при проектиро­
вании схем реляционных баз данных ограничиваются третьей
нормальной формой таблиц-отношений.
Результатом проектирования и нормализации таблиц явля­
ется законченная схема (логическая структура) базы данных.
Технологически описание схемы базы данных помещается в
каталог базы данных, который в реляционных СУБД, в свою
очередь, представляет также таблицу*5, структура (поля) кото­
рой описывает объекты базы данных (таблицы), их названия,
поля, параметры и т. д. Обычно каталог базы данных хранится
в файле БД вместе с данными. В определенных случаях (сис­
темы «Клиент-сервер», распределенные системы, системы на
14
Наличие зависимости соединения является нетривиальным предположением,
основывающимся в большинстве случаев на эвристических соображениях, т. с. в дан­
ном случае на уверенности, что при соединении трех таблиц «Фамилия» - «Группа»,
«Фамилия» - «Мероприятие» и «Группа» - «Мероприятие» не произойдет каких-либо
потерь или появления лишних данных относительно исходной таблицы.
15
В некоторых СУБД, как уже указывалось, каталог базы данных именуют сиспкмтлми таблицами.
115
3. Основы создания информационных систем
основе репликации) может устанавливаться специальный ре­
жим размещения и доступа к каталогу базы данных.
Для повышения эффективности схемно-структурного про­
ектирования банков данных на рынке программных средств
СУБД появился специальный класс программ, называемых
CASE-системами*6. Наиболее известными из них являются
Designer 2000 компании «Огас/е», ErWin компании «LogicWorks»,
PowerBu/der компании «PowerSoft». Такие системы предостав­
ляют проектировщику банка данных средства концептуально­
го проектирования баз данных на основе техники семантичес­
кого моделирования. При этом широко используются средства
визуализации определения и описания информационных объек­
тов, связей и их атрибутов, что делает процесс проектирования
максимально наглядным и позволяет проектировщику сосре­
доточиваться на смысловом аспекте структуры банка данных.
Разработанная таким образом концептуальная схема банка дан­
ных транслируется CASE-системой в схему соответствующе­
го реляционного банка, избавляя проектировщика от утомитель­
ных процедур «ручного» перевода концептуальной (семанти­
ческой) схемы в реляционную.
Тенденция расширения средств описания схем реляцион­
ных банков данных в сторону оснащения их элементами се­
мантического моделирования наблюдается и в самих СУБД. В
некоторых СУБД имеются специальные инструменты визуаль­
ного графического определения связей между таблицами и ог­
раничений целостности по ним. Кроме того, появляются также
специальные анализаторы структуры таблиц базы данных с
точки зрения рациональности и дублирования данных, которые
позволяют в некоторой степени автоматизировать рассмотрен­
ные выше процессы нормализации таблиц.
Вопросы и упражнения
1.
Врачи поликлиники ведут прием и обследование пациентов. Вы­
делите основные объекты-сущности предметной области и отпо-
"' Computer Aided Software Engineering — системы автоматизированного проек­
тирования.
116
Вопросы ii упражнения
2.
3.
4.
шения между ними для концептуального проектирования банка
данных АИС, автоматизирующей учет обследований пациентов.
Изобразите средствами ER-модели концептуальную схему.
В учебном заведении преподаватели проводят занятия по учеб­
ным дисциплинам со студентами раз1 гых групп. Выделите основ­
ные объекты-сущности предметной области и отношения между
ними для концептуального проектирования банка данных АИС,
автоматизирующей учет расписаний. Изобразите средствами
ER-модели концептуальную схему.
Учет материальных средств по подразделениям предусматривает
их закрепление за определенными сотрудниками. Выделите ос­
новные объекты-сущности предметной области и отношения меж­
ду ними для концептуального проектированиябанка данных АИС,
автоматизирующей учет матсредств и материально ответственных.
Изобразите средствами ER-модели концептуальную схему.
При концептуальном проектировании банка данных АИС, авто­
матизирующей ведение Табеля рабочего времени сотрудников
организации, выделены следующие объекты-сущности:
до
Сотрудник
Табель
Сотрудник
1
00
до
5.
Нетрудоспособность
Отпуск
С учетом того что Табель является основой для начисления со­
трудникам заработной платы, определите необходимые атрибуты
по каждому объекту-сущности концептуальной схемы.
При проектировании таблицы «Преподаватели» выделены следу­
ющие атрибуты—ФИО, Кафедра (Истории, Математики, Инфор­
матики), Должность (Зав. кафедры, Профессор, Преподаватель,
Ассистент), Ученая степень (Кандидат наук. Доктор паук), Уче­
ное звание (Старший научный сотрудник, Доцент, Про())ессор, Ака­
демик), Пед. стаж. Определите и обоснуйте для каждого атрибу­
та тип поля и другие параметры (обязательность заполнения,
словарно-списочный характер и тип словаря, иидексируемость и
тип индекса, возможные ограничения целостности данных). Вы­
берите из имеющихся атрибутов или предложите дополнительно
ключ таблицы.
117
3. Основы создания информационных систем
6.
7.
8.
9.
118
При проектировании таблицы «Автомобили» базы данных «За­
пасные части» выделены следующие атрибуты — Модель, Про­
изводитель (ВАЗ, АЗЛК, ГАЗ, ИЖМаш, УАЗ), Категория (Легко­
вой, Грузовой, Специальный), Грузоподъемность, Год начала
производства, Год прекращения производства, Фото. Определите
и обоснуйте для каждого атрибута тип поля и другие параметры
(обязательность заполнения, словарночлшсочный характер и тип
словаря, индексируемость и тип индекса, возможные ограниче­
ния целостности данных). Выберите из имеющихся атрибутов или
предложите дополнительно ключ таблицы.
При концептуальном проектировании в базе данных по учету вы­
дачи пропусков на вход в административное здание сотрудникам
организации выделены следующие объекты-сущности, для каж­
дого из которых создается таблица со следующими полями:
• «Сотрудник» — Таб_№, ФИО, Должность, Подразделение.,
•«Подразделение»—№№, Наименование, Руководитель;
• «Пропуск»— Таб_№_сотр., №_пропуска, Дни, Время, Кто
подписал.
С учетом того что у сотрудника может быть только один про­
пуск, определите и обоснуйте типы, способы и другие парамет­
ры создания связей между таблицами.
При концептуальном проектировании в базе данных «Технологи­
ческие операции» выделены следующие объекты-сущности, для
каждого из которых создается таблица со следующими полями:
•«Подразделения»—№№, Наименование, Профиль (Произ­
водственно-технологический, Сбытовой, Снабженческий,
Организационно-управленческий);
• «Операции» — Код, Наименование, Описание;
• «Комплектующие» — Код, Наименование, Тип (Крепеж,
Электрооборудование, Резинотехнические изделия), Количе­
ство, Минимально необходимое количество на складе.
С учетом того что одно подразделение может участвовать в вы­
полнении нескольких технологических операций и, соответствен­
но, одна операция может выполняться несколькими подразделе­
ниями, и, кроме того, для одной операции может требоваться оп­
ределенное количество различных комплектующих, а каждое
комплектующее может, в свою очередь, комплектовать несколь­
ко различных технологических операций, определите типы, спо­
собы и другие параметры создания связей между основными таб­
лицами.
Приведите к первой нормальной форме следующую ненормали­
зованную таблицу (в жирной рамке ключ таблицы):
Вопросы и упражнения
Таб.
ФИО
ПодраК
деление
Командировка -
* - "•
№Лё
Организация
Город
Дам
Дата
начала окончания 1 .-' ' • -Л231 Иванов И.И. 1-й отдел 7234 01.10.99 20.10.99 ПО "Кристалл" Черноморск
7245 15.11.99
21.11.99
НПО "Заря"
Гряжск
233 Петров П.П. 3-й отдел 7347 11.12.99
15.12.99
ЗАО "Степь"
Урюпинск
10. Приведите ко второй нормальной форме следующие таблицы, на­
ходящиеся в первой нормальной форме (в жирной рамке ключ
таблицы):
Таб.
Снектакть
Роль
Фамилия г
; ' -Звание
' актера
Амплуа
Чацкий Миронов Заслуж. артист
Герой
12 Свадьба Фигаро Фигаро Миронов Заслуж. артист
Герой
12
9
Горе от ума
Горе от ума
Фамусов Папанов Народ, артист Разнохаракт.
Дата Погашен
клиен­ кредита Сумма выдачи
та
532
1234
100000р. 10.01.96
ФИО
•клиента' •
Адрес
Да
Честнадзе А.А.
Рахова-15
Телефон
11 22 33
532
1347
ЮОООООр 10.01.97
Нет
Честнадзе А.А.
Рахова-15
11 22 33
673
1348
2000000р. 11.01.97
Нет
ВОЛООКИЙ
Вапцетп-2
33 22 11
В.В.
11. Приведите к третьей нормальной форме следующие таблицы, на­
ходящиеся во второй нормальной форме (в жирной рамке ключ
таблицы):
Рейс
Маршрут
Тип самолета
Количество мест
3437
Москва — Ныо-Васюки
Ил-62
180
23-ис
Москва — Черноморск
Як-42
120
Москва — Гряжск
Як42
120
777
Завод.
-. №.
Производи­
тель
34-67/1
"Раздолье"
Марка
Ректиф-2 Картофель
5677-е "Зеленогорье" Ректиф-3
45628
"Мечта"
Сырье
Зерно
Ректиф-2 Картофель
В эксплу­ Производи­
атации тельность
01.03.97
200л/сутки
03.02.98
500л/сутки
01.03.97
200л/сутки
119
4. Ввод, обработка и вывод данных в фактографических АИС
4. Ввод, обработка и вывод данных
в фактографических АИС
Как уже отмечалось, цикл функционирования автоматизи­
рованных информационных систем включает сбор, комплекто­
вание данных, поиск и выдачу сведений для удовлетворения
информационных потребностей абонентов систем. Если исклю­
чить организационно-технологические аспекты сбора, комплек­
тования и выдачи информации, технология работы пользовате­
лей с базами данных АИС включает ввод (загрузку), обработку
и вывод данных.
Предоставление пользователю средств реализации функ­
ций ввода, обработки и выдачи данных является одной из ос­
новных функций интерфейса автоматизированных информаци­
онных систем.
4.1. Языки баз данных
Как следует из рассмотрения внутренней схемы баз дан­
ных, одной из основных функций систем управления базами
данных является создание и поддержание собственной систе­
мы размещения и обмена данными между внешней (дисковой)
и оперативной памятью. От эффективности реализации в каж­
дой конкретной СУБД данной функции (формат файлов дан­
ных, индексирование, хэширование и буферизация) во многом
зависит и эффективность функционирования СУБД в целом.
Поэтому основные усилия создателей первых СУБД в конце
60-х — начале 70-х годов были сосредоточены именно в этом
направлении.
Однако такой подход приводил к «самостийности», уни­
кальности каждой конкретной СУБД и созданной на ее основе
автоматизированной информационной системы. В результате
для реализации любой функции по вводу, обработке или выво­
ду данных требовались квалифицированные программисты для
написания специальных программ на алгоритмических языках
120
4.1. Языки баз данных
высокого уровня (в 70-х годах ФОРТРАН, КОБОЛ и др.), «зна­
ющих» особенности структуры и способы размещения данных
во внешней и оперативной памяти. В итоге работа с базами дан­
ных осуществлялась через посредника в виде квалифицирован­
ного программиста, «переводящего» информационные потреб­
ности пользователя в машинный код1, что схематично иллюст­
рируется на рис. 4.1.
(Шк" Шлыователь / ^ * )
Инф ормащотше
потребности
Программист
;* База данных
Написание и запуск
программ обработки
Рис. 4.1. Схема взаимодействия пользователя с базой данных в
ранних СУБД
Такое положение дел приводило к большим накладным рас­
ходам при создании и эксплуатации автоматизированных ин­
формационных систем и в определенной степени сдерживало
распространение вычислительной техники в процессах инфор­
мационного обеспечения деятельности предприятий и органи­
заций.
Основателем теории реляционных СУБД Е. Коддом было
выдвинуто предложение о создании специального языка для об­
щения (взаимодействия) пользователя-непрограммиста с база­
ми данных. Идея такого языка сводилась к набору из нескольких
фраз-примитивов английского языка («выбрать», «обновить»,
«вставить», «удалить»), через которые пол ьзователь-непрограммистставил бы «вопросы» к СУБД по своим информационным
потребностям. В этом случае дополнительной функцией СУБД
должна быть интерпретация этих «вопросов» на низкоуровне­
вый язык машинных кодов для непосредственной обработки
' В этом плане примечателен афоризм Чарльза Бахмана, которым метко подме­
тил, что «программист—это штурман в море данных». Статью по поводу присужде­
ния ему премии Тьюринга за пионерские работы в области технологий баз данных он
так и назвал — «The Programmer As Navigator» (Программист как штурман). [Вацкевич Д. Стратегии клиент/сервер, - К.: Диалектика, 1996. С. 216.]
121
4. Ввод, обработка и вывод данных в фактографических ЛИС
данных и предоставление результатов пользователю. Так роди­
лась уже упоминавшаяся по структуре СУБД «машина данных».
Иначе говоря, машина данных «понимает» язык базы данных и
в результате разделяет собственно данныеизадачипоих обра­
ботке. В таком подходе взаимодействие пользователя с базой данныхможно проиллюстрировать схемой, приведенной на рис. 4.2.
Информационные
потребности
Рис. 4.2. Схема взаимодействия пользователя с базой данных
через язык баз данных
В практику эти идеи впервые претворились в ходе реали­
зации проекта System R (1975-1979 гг.) с участием еще одного
известного специалиста по базам данных Криса Дейта. В ходе
проекта System R был создан язык SEQUEL, трансформировав­
шийся впоследствии в язык структурированных запросов SQL
(Structured Query Language)2. При этом дополнительно к воз­
можностям формирования «вопросов» к базе данных пользо­
вателю также решено было предоставить и возможность опи­
сания самой структуры данных, ввода данных и их изменения.
Идеи языка SQL оказались настолько плодотворными, что
он быстро завоевал популярность и стал широко внедряться в
создаваемых в конце 70-х и в 80-х годах реляционных СУБД.
Однако плодотворность идей языка SQL в отличие от первона­
чального замысла проявилась вовсе не в том, что на нем стали
2
Добавим также, что примерно в то же время в компании IBM был создан еще
один реляционный язык — QBE (Query-By-Examp/e), т. е. язык запросов по образцу,
применявшийся впоследствии во многих коммерческих системах обработки таблич­
ных данных и послуживший идеологической основой для создания визуальных «кон­
структоров» запросов в современных СУБД.
122
4.1. Языки баз данных
«разговаривать» с базами данных пользователи, не являющие­
ся профессиональными программистами. Язык SQL, в конеч­
ном счете, позволил, как уже отмечалось, отделить низкоуров­
невые функции по организации структуры и обработке дан­
ных от высокоуровневых функций, позволяя при создании и
эксплуатации банков данных сосредоточиваться на смысловом,
а не техническом аспекте работы с данными.
Быстрое и массовое распространение языка SQL в реляци­
онных СУБД к середине 80-х годов привело фактически к при­
нятию его в качестве стандарта по организации и обработке
данных. В 1986 г. Американским национальным институтом
стандартов (ANSI) и Международной организацией по стандар­
тизации (ISO) язык бьш стандартизирован де-юре, т. е. признан
стандартным языком описания и обработки данных в реляци­
онных СУБД. В1989 г. ANSI/ISO была принята усовершенство­
ванная версия SQL — SQL2, а в 1992 г. третья версия — SQL3.
Язык SQL относится к так называемым декларативным
(непроцедурным) языкам программирования. В отличие от про­
цедурных языков (С, Паскаль, Фортран, Кобол, Бейсик) на нем
формулируются предложения (инструкции) о том, «что сде­
лать», но не «как сделать, как получить». Машина данных в
СУБД исполняет роль интерпретатора и как раз строит ма­
шинный код, реализующий способ получения результата, зада­
ваемого SQL-инструкциями.
Язык SQL состоит из двух частей:
• языка описания (определения) данных — DDL (Data
Definition Language);
• языка манипулирования данными — DML (Data
Manipu/ation Language).
Синтаксис SQL-инструкций включает:
• название инструкции (команду);
•предложения, определяющие источники, условия опера­
ции;
• предикаты, определяющие способы и режимы отбора за­
писей, задаваемых предложениями;
123
4. Ввод, обработка и вывод данных в фактографических ЛИС
• выражения, значения которых задают свойства и пара­
метры выполнения инструкции и предложения.
Структуру SQL-инструкций можно разделить на две основ­
ные части, схематично представленные на рис. 4.33.
Аргументы (имена папен функции над пшями)
Аргументы (источники, операции,
предикаты, выражения)
Рис. 4.3. Структура SQL-инструкций
Первая часть включает название (команду) SQL-инструк­
ции, предикат (необязательный элемент) и аргументы инструк­
ции, которыми являются перечисляемые через запятую имена
полей одной или нескольких таблиц.
Вторая часть состоит из одного или нескольких предложе­
ний, аргументы которых могут задавать источники данных (име­
на таблиц, операции над таблицами), способы, условия и ре­
жимы выполнения команды (предикаты сравнения, логические
и математические выражения по значениям полей таблиц).
Перечень SQL-инструкций разделяется по частям языка
SQL.
В состав языка DDL входят несколько базовых инструкций,
обеспечивающих основной набор функций при создании реля­
ционных таблиц и связей между ними.
CREATETABLE..
CREATEINDEX..
ALTERTABLE...
DROP...
- создать таблицу;
- создать индекс;
- изменить структуру ранее создан­
ной таблицы;
- удалить существующую таблицу и
базы данных.
В структуре инструкций CREA ТЕ TABLEu ALTER TABLE
важную роль играет предложение CONSTRAINT (создать огра­
ничения на значения данных) со следующими установками —
' Квадратные скобки, как это общепринято, означают необязательность элемен-
124
4.1. Языки баз данных
NOT NULL (не допускаются нулевые, точнее «пустые» значе­
ния по соответствующему полю, иначе говоря, определяется
поле с обязательным заполнением), A UTOINC (поле с инкре­
ментальным, т. е. последовательно возрастающим с каждой но­
вой записью, характером значений) и PRIMAR Y KEY (опреде­
ление д,ля поля уникального, т. е. без повторов, индекса, что в
результате задает режим заполнения данного поля с уникаль­
ными неповторяющимися по различным строкам значениями).
В состав языка DML также входят несколько базовых ин­
струкций, охватывающих тем не менее основные операции по
вводу, обработке и выводу данных.
SELECT...
INSERT...
UPDATE...
DELETE...
GRANT...
REVOKE...
COMMIT...
ROLLBACK...
—
—
—
—
—
выбрать данные i п базы данных;
добавить данные в базу данных;
обновить данные в базе данных;
удалить данные;
предоставить привилегии пользова­
телю;
— отменить привилегии пользователю;
— зафиксировать текущую транзак­
цию;
— прервать текущую транзакцию.
Важное значение имеют разновидности инструкции
SELECT—SELECT... INTO ... (выбрать из одной или несколь­
ких таблиц набор записей, из которого создать новую таблицу)
и UNION SELECT, которая в дополнении с исходной инструк­
цией SELECTiSELECT... UNION SELECT...) реализует опера­
цию объединения таблиц.
Помимо предложения CONSTRAINT в SQL-инструкциях
используются следующие предложения:
ЖОМ...
— указывает таблицы или запросы, которые
содержат поля, перечисленные в инструкции SELECT;
WHERE...
— определяет, какие записи из таблиц, пе­
речисленных в предложении FROM, следует включить в резуль­
тат выполнения инструкции SELECT, UPDA ТЕ или DELETE;
125
4. Ввод, обработка и вывод данных в фактографических ЛИС
GROUP BY... — объединяет записи с одинаковыми зна­
чениями в указанном списке полей в одну запись;
НА VING...
— определяет, какие сгруппированные за­
писи отображаются при использовании инструкции SELECT с
предложением GROUP BY;
IN...
— определяет таблицы в любой внешней
базе данных, с которой ядро СУБД может установить связь;
ORDERBY... — сортирует записи, полученные в резуль­
тате запроса, в порядке возрастания или убывания на основе
значений указанного поля или полей.
В качестве источника данных по предложению FROM, помимо
таблицизапросов,могутиспользоваться также результаты олерш/ш
соединения таблиц в трех разновидностях—INNER JOIN... ON...,
LEFTJOIN. ..ON... uRIGHTJOIN. ..ON... (внугреннеесоединение,
левое и правое внешнее соединение, соответственно4).
Предикаты используются для задания способов и режи­
мов использования записей, отбираемых на основе условий в
инструкции SQL. Такими предикатами являются:
ALL..
— отбирает все записи, соответству­
ющие условиям, заданным в инст­
рукции SQL, используется по умол­
чанию;
DISTINCT...
— исключает записи, которые содер­
жат повторяющиеся значения в
выбранных полях;
DISTINCTROW... — опускает данные, основанные на
целиком повторяющихся записях, а
не на отдельных повторяющихся
полях;
ТОРп...
— возвращает и записей, находящих­
ся в начале или в конце диапазона,
описанного с помощью предложе­
ния ORDER В Y;
4
Особенности разновидностей операций соединения рассматриваются в
п. 4.3.2.1.2.
126
4.1. Языки баз данных
Выражениями в инструкциях SQL являются любые ком­
бинации операторов, констант, значений текстовых констант,
функций, имен полей, построенные по правилам математичес­
ких выражений и результатом которых является конкретное, в
том числе и логическое значение.
Язык SQL, конечно же, сточки зрения профессиональных
программистов построен довольно просто, но, вместе с тем, как
уже отмечалось, надежды на то, что на нем станут общаться с
базами данных пользователи-непрограммисты, не оправдались.
Причина этого, вероятно, заключается в том, что, несмотря на
простоту, язык SQL все же является формализованным искус­
ственным языком, осваивание и использование которого в боль­
шинстве случаев тяготит конечных пользователей. Исследова­
ния основ и способов интерфейса человека с компьютером, эр­
гономических и психологических основ работы с компьютерной
информацией, проведенные в конце 70-х и в 80-х годах, показа­
ли, что пользователи-специалисты в конкретных предметных
областях (а не в области вычислительной техники и програм­
мирования) более склонны к диалогово-визуальным формам
работы с вычислительными системами и компьютерной инфор­
мацией.
Поэтому с конца 80-х годов в развитии СУБД наметились
две тенденции:
• СУБД для конечных пользователей;
• СУБД для программистов (профессионалов).
В СУБД для конечных пользователей имеется развитый
набор диалоговых и визуально-наглядных средств работы с ба­
зой данных в виде специальных диалоговых интерфейсов и по­
шаговых «мастеров», которые «ведут» пользователя по пути
выражения им своих потребностей в обработке данных. Напри­
мер, при создании новой таблицы соответствующий «мастер»
последовательно запрашивает у пользователя имя таблицы,
имена, типы и другие параметры полей, индексов и т. д. При
этом интерфейсная часть СУБД формирует для ядра СУБД (ма­
шины данных) соответствующую и порой весьма сложную ин­
струкцию SQL.
127
4. Ввод, обработка и вывод данных в фактографических ЛИС
В профессиональных СУБД язык базы данных (SQL) до­
полняется элементами, присущими процедурным языкам про­
граммирования — описателями и средствами работы с различ­
ного типа переменными, операторами, функциями, процедура­
ми и т. д. В результате формируется специализированный на
работу с данными декларативно-процедурный язык высокого
уровня, который встроен в СУБД (точнее надстроен над ядром
СУБД). Такие языки называют «включающими» (см. рис. 2.1).
На основе включающего языка разрабатываются полностью
автономные прикладные информационные системы, реализу­
ющие более простой и понятный для специалистов в опреде­
ленной предметной области (скажем, в бухгалтерии) интерфейс
работы с информацией.
С учетом этапов в развитии программных средств СУБД
такие языки получили название языков четвертого поколе­
ния —4GL (Forth Generation Language). Языки 4GL могут быть
непосредственно встроены в сами СУБД, а могут существовать
в виде отдельных сред программирования. В последнем слу­
чае в таких средах разрабатываются прикладные части инфор­
мационных систем, реализующие только интерфейс и высоко­
уровневые функции по обработке данных. За низкоуровневым,
как говорят, «сервисом» к данным такие прикладные системы
обращаются к SQL-серверам, являющимися отдельными спе­
циализированными разновидностями СУБД. «Общение» меж­
ду прикладными системами и SQL-серверами происходит со­
ответственно на языке SQL.
Свои языки 4GL имеют практически все развитые профес­
сиональные СУБД—Orac/e, SyBase, Informix, Ingres, DB2, оте­
чественная СУБД ЛИНТЕР. Распространенными отдельными
средами программирования для создания информационных си­
стем в настоящее время являются системы Visua/ Basic фирмы
Microsoft и De/phi фирмы Bor/and Internationa/. Кроме того, уже
упоминавшиеся CASE-средства автоматизированного проекти­
рования — PowerBui/der фирмы PowerSoft, Orac/e Designer
фирмы Orac/e, SQLWindows фирмы Gupta и др., также, как
правило, имеют свои встроенные языки 4GL.
128
4.2. Ввод, загрузка и редактирование данных
В заключение следует отметить, что в последнее время на­
метилась тенденция встраивания развитых языков уровня 4GL
и в СУБД для конечных пользователей. В качестве примера
можно привести СУБД Access фирмы Microsoft, имеющей один
из наиболее развитых интерфейсов по созданию и работе с ба­
зами данных для конечных пользователей, и в то же время ос­
нащенной встроенным языком уровня 4GL—VB A (Visua/ Basic
for App/ication), являющегося диалектом языка Visua/ Basic.
4.2. Ввод, загрузка и редактирование данных
Базы данных создаются для удовлетворения информаци­
онных потребностей пользователей. Однако для выполнения
этой главной задачи базу данных необходимо не только пра­
вильно организовать и построить, но и наполнить самими дан­
ными. Как правило, эта задача требует больших затрат особен­
но на начальном этапе ввода информационных систем в эксп­
луатацию. Поэтому способам, удобству ввода и редактирования
данных в СУБД всегда придавалось и придается важное значе­
ние.
4.2.1. Ввод и редактирование данных
в реляционных СУБД
В настоящее время можно выделить четыре основных спо­
соба ввода, загрузки и редактирования данных в современных
реляционных СУБД:
• непосредственный ввод и редактирование данных в таб­
личном режиме;
• ввод и редактирование данных через формы5;
• ввод, загрузка и редактирование данных через запросы на
изменения;
• ввод данных через импорт из внешних источников.
Ввод данных в табличном режиме и через формы явля­
ется наиболее естественным с точки зрения табличного харак5
Если формы предназначены только для ввода, просмотра и изменения данных
их еще называют входными (вводными) формами.
129
4. Ввод, обработка и вывод данных в фактографических ЛИС
тера организации данных в реляционных СУБД. Как отмеча­
лось при рассмотрении реляционной модели организации дан­
ных, единичным элементом информации, имеющим отдельное
смысловое значение, является кортеж, т. е. табличная строказапись, состоящая из дискретного набора значений по полям
таблицы. Иначе говоря, данные в реляционные базы вводятся
или удаляются кортежами-записями.
Отображать кортежи-записи можно двумя способами,
располагая поля записи вертикально или горизонтально (см.
рис. 4.4 и рис. 4.5).
Название поля 1
Значение поля!1*1 "4
Название поля 2
'Г*
*Г!_!»? *ШУ¥«ВД$
Значение „поля *&*'...
Название папяЫ
.Значенга.доляГ
Название пшя1
{Значение ПОЛЯУЛ.'НДЙ
Название пшя 2
• Значение поля -2''*
Запись 1
Название поля N
Запись 1
Рис. 4.4. Вертикальный способ расположения полей записей
В первом случае пользователь «видит» и имеет доступ, как
правило, сразу ко всем полям одной записи и его внимание со­
средоточивается на одной записи как отдельном объекте. Запи­
си располагаются друг за другом вертикально, и на экране ком­
пьютера обеспечивается вертикальная прокрутка (скроллинг)
записей.
130
4,2. Ввод, загрузка и редактирование данных
Название поля
1
Название поля
2
Название поля
N
CD
f Значение
Запись 1
' • Значение' ,.'. . ИОЛЯ.1
Значение
неля 2
Завись 2
Горизонтальный скроллинг го полям
.Рис. 4.5. Горизонтальный способрасположения полей записей
Во втором способе каждая запись отображается в виде таб­
личной строки и на экране может отображаться не одна, а не­
сколько строк, что дает возможность пользователю производить
анализ и просмотр сразу группы записей. Вместе с тем при до­
статочно большом количестве полей (столбцов) таблицы все они
могут не уместиться на экране по горизонтальным строкам. В
этом случае пользователь видит сразу не всю запись (записи), а
лишь некоторый вертикальный фрагмент, и восприятие записи
как отдельного объекта несколько расплывается. Для просмот­
ра всех полей организуется их горизонтальная прокрутка. С уче­
том того что, как правило, ключевые поля располагаются пер­
выми в строках-записях, при использовании горизонтальной
прокрутки происходит «отрыв» ключевой информации, иден­
тифицирующей каждую конкретную строку, от информации по
другим полям записи.
Таким образом, и тот и другой способ отображения запи­
сей имеет свои преимущества и недостатки. Практически все
реляционные СУБД предоставляют возможность работы с дан­
ными и тем и другим способом.
Реализация непосредственного ввода данных в табличном
режиме или через формы осуществляется через «открытие»
соответствующей таблицы базы данных. При открытии таб­
лицы страницы файла данных, содержащие просматриваемые
131
4. Ввод, обработка и вывод данных в фактографических АИС
записи таблицы, помещаются в буферы оперативной памяти и
отображаются в том или ином режиме. Непосредственный ввод
и корректировка данных при этом осуществляются через ис­
пользование табличного курсора, позаимствованного из тех­
нологии работы в табличных редакторах.
В табличном режиме табличный курсор может свободно
перемещаться по ячейкам таблицы, определяя в каждый мо­
мент так называемую текущую строку и текущую ячейку. Вво­
димые с клавиатуры данные автоматически помещаются в те­
кущую ячейку, т. е. имитируется работа с таблицами в таблич­
ных редакторах. Вместе с тем по сравнению с табличными
редакторами имеется все же одно принципиальное отличие.
Единичным элементом ввода данных в СУБД, как уже отмеча­
лось, является кортеж-запись, т. е. табличная строка целиком, а
не отдельно взятая ячейка. Поэтому СУБД в режиме открытой
таблицы явно (через специальные команды) или неявно (при
перемещении табличного курсора на другую строку) осуществ­
ляет фиксацию изменений в существующей строке или фикси­
рует новую строку в файле базы данных, т. е. фиксирует соот­
ветствующую транзакцию. При этом проверяется соответствие
введенных или откорректированных данных установленным
типам полей, уникальность значений ключевых полей, выпол­
нение других ограничений целостности данных. Если обнару­
живается какое-либо несоответствие, то отвергается фиксация
сразу всей строки, а не конкретной ячейки.
Ввод новой записи осуществляется через активизацию в
конце таблицы специальной «пустой» строки открытой табли­
цы. В некоторых случаях таблицы могут открываться только
для ввода новых данных—так называемый рео/сим открытия
на добавление. В этом случае в открытой таблице показывает­
ся только одна «пустая» строка для ввода новых данных.
Вертикальный способ отображения полей записей в совре­
менных СУБД вместе с идеями электронных бланков трансфор­
мировался в технику форм. Естественным и интуитивно-понят­
ным способом работы со структурированной информацией для
132
4,2. Ввод, загрузка и редактирование данных
большинства «обычных»6 людей являются всевозможные блан­
ки, анкеты и т. п. «бумажные» формы. Формы в СУБД как раз и
выполняют функции предоставления пользователям привычно­
го интерфейса при вводе структурированных данных с имита­
цией «заполнения» бланков, анкет и т. п.
Таким образом, форма: в СУБД представляет собой специ­
альный экранный объект, включающий поля для ввода данных
одной записи базовой таблицы и другую поясняющую инфор­
мацию. На рис. 4.6 приведен пример формы для ввода, про­
смотра и изменения данных в таблице «Сотрудники» базы дан­
ных известной организации.
j. Л ^ * О А О "РОГА и КОПЫТА"
ffe
•ГЙЧГ""' «••*»•,•*» • % * - . » , , " - » <* -• » » • * » • ,
Фамилия
Год рождения
Дополнительные данные
;„;•...,».'
Бёндер
Имя :
Должность
_
008
Личный номер сотрудника
Отчество
..,•.-•
:
Остап
Ибрагимович
Председатель концессии
1895
Жгучий
брюнет
Запись Ws 1
Рис. 4.6. Пример формы для ввода/просмотра/изменения данных
Записи соответствующей таблицы через форму «прокручи­
ваются» по вертикали. Присутствует также аналог табличного
6
То есть в данном контексте не являющихся профессиональными программиста­
ми.
133
4. Ввод, обработка и вывод данных в фактографических ЛИС
курсора, определяющий текущее поле для ввода/изменения дан­
ных. Так же как и в табличном режиме, форма может откры­
ваться только на ввод новых данных, т. е. в режиме добавления
без возможности просмотра ранее введенных в таблицу дан­
ных.
Форма может отображать записи или предоставлять воз­
можность для ввода новых записей одной (базовой) таблицы.
Однако идея экранных форм в реляционных СУБД оказалась
более плодотворной, чем просто предоставление удобств для
ввода/просмотра сразу всех полей одной записи. В определен­
ных случаях «бумажная» информационная технология, которую
автоматизирует банк данных АИС, предусматривает накопле­
ние и образование данных сразу в комплексе по ряду информа­
ционных задач. К примеру, при ведении учета командировок
сотрудников в бухгалтерии используются специальные блан­
ки, в которых отображается информация по сотруднику (ФИО,
Подразделение, Должность, Сл. тел.) и данные собственно по
командировке (Дата начала, Дата окончания, Полученный аванс,
Фактические расходы, Пункты назначения, Служебные зада­
ния). При проектировании базы данных для автоматизации та­
кого учета, исходя из требований нормализации таблиц, пере­
численные выше в «бумажном» бланке данные распределяют­
ся сразу по нескольким связанным таблицам «Сотрудник»,
«Командировка», «Пункты», «Служебные задания».
Техника форм СУБД предоставляет возможность создавать
«комплексные» электронные бланки для ввода информации сра­
зу в несколько связанных таблиц. Такие формы называются
структурными (сложными) и обеспечивают естественный в
технологическом плане совместный ввод данных в связанные
таблицы. Чаще всего такой способ позволяет вводить и про­
сматривать записи, находящиеся в таблицах, связанных отно­
шением «Один-ко-многим». При прокрутке записей в главной
форме, отражающей записи базовой таблицы на стороне «один»,
в структурных элементах, называемых иногда «подчиненными»
формами, прокручиваются связанные записи из таблиц на сто­
роне «многие». На рис. 4.7 приведен пример такой формы.
134
4.2. Ввод, загрузка и редактирование данных
W
Командировки по сотрудникам
Сотрудник
Фамилия
Имя
Й 1 Ш Й Ч < ;:%
И11Ж,-,
Пункт
нат-я
От\естео
Подразделение
Должность
Комаздировки
Дапа
убытия
Москва 1.02.98
i С арат ОБ 11.0358
Дета
прибытия
10.02.9S
18.04.98
Аванс
Факт,
расходы
1500р.
437 р.
1497р.
677р.
-Отдок скаваеи»? -'-'t
IlnBin
Запись Ns2
Телефон
' з а •',-;
' . . 1 1 , . - . N.I
Рис. 4.7. Пример формы для ввода данных в таблицы, связанные
отношением «Один-ко-многим»
Зачастую при создании базы данных новой АИС часть дан­
ных уже имеется в электронном виде в других, ранее создан­
ных базах данных. Если это базы данных того же формата, т. е.
созданные и функционирующие под управлением той же СУБД,
или другой реляционной СУБД, поддерживающей основанный
на языке SQL специальный протокол обмена данными между
реляционными СУБД — ODBC7 (Open Database Connectivity),
то имеется возможность вводить, или, как в этом случае гово­
рят, загружать данные из таблиц, находящихся в файлах дру­
гих (внешних) баз данных. Такая загрузка реализуется на осно­
ве техники запросов на изменение данных, в качестве источни­
ков которых указываются таблицы в других БД*.
Ряд СУБД предоставляет возможность загружать таблич­
ные данные, созданные и находящиеся под управлением не
СУБД, а приложений другого типа—табличных и текстовых
редакторов. В этом случае говорят об импорте данных из вне­
шних источников. Ввод данных при этом осуществляется на
основе «знания» СУБД формата внешних табличных данных и
соответствующей их трансформации в структуры реляционных
таблиц. Некоторые СУБД предоставляют возможность ввода в
7
8
Стандартный протокол доступа к данным на серверах баз данных SQL.
Запросы на изменения данных рассматриваются в п. 4.3.2.2.
135
4. Ввод, обработка и вывод данных в фактографических ЛИС
реляционные таблицы текстовых данных, размеченных специ­
альными разделителями на последовательно расположенные
дискретные порции. Каждая такая порция помещается в соот­
ветствующее поле табличной строки по принципу последова­
тельного заполнения строк таблицы «Слева-направо, Сверхувниз». При этом СУБД проверяет соответствие вводимых зна­
чений установленным типам полей, а также другим параметрам
полей и ограничениям целостности данных.
Таким образом, в современных реляционных СУБД имеет­
ся развитый арсенал возможностей по вводу и загрузке дан­
ных, который позволяет эффективно решать задачи по напол­
нению БД данными.
4.2.2. Особенности ввода и загрузки данных
в СУБД с сетевой моделью организации
данных
Характерной особенностью логической и физической
структуры данных в сетевых СУБД, как уже отмечалось, явля­
ется хранение информации по связям между информационны­
ми объектами как отдельных самостоятельных объектов—на­
боров экземпляров связей. В результате более сложная, чем в
реляционных СУБД структура данных, определяет использо­
вание в сетевых СУБД преимущественно нелинейных струк­
тур физической организации данных, что обеспечивает более
эффективный доступ к данным, но вместе с тем вызывает по­
вышенные затраты на изменения (добавление, удаление, редак­
тирование) данных. Любые процессы модификации данных в
большинстве случаев приводят к необходимости «перетряски»
всего банка данных, что чрезвычайно замедляет ввод и редак­
тирование данных.
Поэтому в СУБД с сетевой организацией данных непос­
редственный ввод данных (ручной ввод с клавиатуры) чаще
всего построен по принципу «стакана и емкости». Сначала
данные вводятся в так называемое «входное сообщение». Спе­
циальный интерфейс в таких СУБД предоставляет пользовате­
ле
4.2. Ввод, загрузка и редактирование данных
лю возможности ввода данных во входное сообщение по ана­
логии с непосредственным вводом данных в реляционных
СУБД—табличном режиме или в режиме форм. При этом дан­
ные физически размещаются во временном файле — стакане.
Кроме того, в отличие от реляционных СУБД, пользователь
может вводить данные сразу в различные (связанные) табли­
цы, непосредственно «переходя» по полям-отсылкам из одного
объекта (таблицы) в другой.
После подготовки файла входного сообщения, который раз­
мещается, так же как и файл базы данных, на внешней диско­
вой памяти, осуществляется загрузка входного сообщения в базу
данных, т. е. «стакан» выливается в «емкость»9. СУБД при этом
«перетасовывает» всю базу данных, вставляя новые, изменяя
месторасположение «старых» записей, модифицируя физичес­
кие адреса отсылок и т. д.
Дополнительной проблемой при этом является отоэюдествлеиие новых и старых записей. В реляционных СУБД эта
проблема решается исключительно на основе уникальности
значений ключевых полей. Новая запись с уже существующим
значением ключевого поля в реляционных СУБД автоматичес­
ки отвергается и данные по ней можно ввести только путем
корректировки полей уже существующей записи с соответству­
ющим значением ключевого поля10.
В сетевых СУБД, ввиду поддержки полей с множествен­
ным характером значений, обеспечивается «слияние» данных.
При слиянии записей из входного сообщения с уже существу­
ющими записями в базе данных поля с множественным типом
значений объединяются, а по полям с единичным характером
значений устанавливаются дифференцированный режим заме­
ны или отвержения нового значения.
' Отсюда, собственно, исторически и возникли различия в понимании терминов
«ввод» и «загрузка».
'" В этом, кстати, проявляется один существенный недостаток реляционных
СУБД — отсутствие возможностей темпорального отображения данных, т. е. отобра­
жения данных с предысторией нх изменения.
137
4. Ввод, обработка и вывод данных в фактографических ЛИС
4.3. Обработка данных
Обработка данных представляет собой емкое понятие,
включающее широкий набор различных функций и операций
по удовлетворению информационных потребностей пользова­
теля. Тем не менее в технологическом плане этот широкий на­
бор удобно разделить на три группы:
• поиск, фильтрация и сортировка данных;
• запросы к базе данных;
• механизм реализации событий, правил (триггеров) и про­
цедур в базе данных.
На практике работа пользователя с базой данных может
включать сразу весь комплекс операций, однако с методичес­
кой точки зрения целесообразно рассмотреть их последователь­
но.
4.3.1. Поиск, фильтрация и сортировка данных
Операции по поиску, фильтрации и сортировке данных ре­
ализуют самые простые информационно-справочные потреб­
ности пользователей, но являются, вероятно, наиболее часты­
ми при работе с базами данных.
Отличительная особенность операций по поиску, фильтра­
ции и сортировке данных заключается в том, что они осуще­
ствляются в режиме открытой таблицы или формы. Забегая
несколько вперед, следует отметить главную отличительную
особенность этих операций по сравнению с запросами на вы­
борку к базам данных —результатом операций по поиску или
фильтрации данных является изменение состояния просмот­
ра открытой таблицы (формы), но не самих данных, которые
физически остаются в той же таблице и в том же порядке. На­
пример, результатом поиска какой-либо конкретной записи в
открытой таблице является установление табличного курсора
на ключевое поле искомой записи-строки или «показ» (отобра­
жение) в открытой форме полей искомой записи.
Собственно поиск данных реализуется в виде:
• поиска записи по ее номеру;
138
4.3. Обработка данных
• поиска записи (записей) по значению (значениям) какоголибо поля;
• поиска записей с помощью фильтров (фильтрация).
Поиск записи по ее номеру производится на основе л/еганизмараспределения записей по страницам файла данных. Ре­
зультатом такого поиска является перевод табличного курсора
в ключевое поле соответствующей записи или «показ» в форме
полей искомой записи.
Поиск записи по значению поля осуществляется также на
основе механизма распределения записей по страницам файла
данных с использованием техники вхождения образца в значе­
ния просматриваемого поля. Результатом поиска является ус­
тановка табличного курсора в соответствующее поле найден­
ной записи. Если записей с искомым значением выделенного
поля несколько, тогда, как правило, реализуется последователь­
ная «остановка» (последовательный просмотр) табличного кур­
сора в соответствующих полях найденных записей.
Фильтр представляет собой набор условий, применяемых
для отбора подмножества записей. Результатом фильтрации
является «показ» (отображение) в открытой таблице или фор­
ме только отфильтрованных записей с временным «скрытием»
всех остальных записей. При этом остальные записи физичес­
ки никуда не перемещаются, не удаляются и вновь отобража­
ются в открытой таблице после «снятия» фильтра.
Набор условий, определяющих фильтр, формируется в раз­
личных СУБД по-разному, но общепринятым является исполь­
зование выражений в условиях отбора данных. Под выраже­
нием в данном случае понимается структура, подобная обыч­
ному математическому выражению. Аргументами выражения
могут быть числа, даты, текст, имена полей, которые соединя­
ются знаками математических операций, неравенств (+, -, *, /,
>, <, =) и логических операций (AND, OR, NOT). При этом тек­
стовые значения и аргументы заключаются в кавычки («Ива­
нов»), даты в символы # (#01.01.98#).
Как отмечалось при рассмотрении реляционной модели
данных, строки в таблицах формируются и хранятся в неупо139
4. Ввод, обработка н вывод данных в фактографических ЛИС
рядоченном виде. Вместе с тем одной из простых, но частых
информационных потребностей пользователя при работе с ба­
зой данных является как раз упорядочение записей по возрас­
танию/убыванию или по алфавиту по определенному полю
(например, по полям дат, по полям с размерами должностных
окладов, по полю с фамилией сотрудников и т. п.). Такие про­
цедуры реализуются сортировкой данных, которая упорядо­
чивает последовательность расположения строк открытой таб­
лицы по значениям какого-либо поля. При этом в файле базы
данных строки таблицы физически остаются не упорядочен­
ными. Иначе говоря, сортировка строк открытой таблицы про­
исходит только в буферах страниц в оперативной памяти. Но­
вый порядок расположения строк таблицы (т. е. их размещение
по страницам файла БД) может быть зафиксирован специаль­
ной командой при закрытии таблицы.
При больших объемах таблиц (при большом количестве
строк-записей) операции сортировки могут занимать продол­
жительное время, которое существенно сокращается, если сор­
тировка осуществляется по индексированному полю. В этом
плане опыт эксплуатации базы данных может привести к уточ­
нению списка индексированных полей в таблицах.
4.3.2. Запросы в реляционных СУБД
Запросы являются наиболее распространенным видом об­
работки данных при решении пользователями АИС темати­
ческих, логических, статистических и технологических инфор­
мационных задач. Иначе говоря, для удовлетворения сложных
информационных потребностей пользователи «общаются» с
базой данных через запросы.
Запрос представляет собой спецификацию (предписание)
на специальном языке (языке базы данных) для обработки дан­
ных. В реляционных СУБД запросы к базе данных выражают­
ся, соответственно, на языке SQL.
Формирование запросов в СУБД может осуществляться в
специальном редакторе (командный режим) или через нагляд­
но-диалоговые средства {конструкторы) и пошаговые масте140
4.3. Обработка данных
pa формирования запросов. Сформированный запрос в виде
SQL-инструкции сохраняется в файле базы данных и впослед­
ствии специальной командой СУБД может запускаться (откры­
ваться) на выполнение.
Все многообразие запросов можно проклассифицировать
схемой, приведенной на рис. 4.8. С точки зрения решаемых ин­
формационных задач и формы результатов исполнения запро­
сов их можно разделить на три группы:
• запросы на выборку данных;
• запросы на изменение данных;
• управляющие запросы.
4.3.2.1. Запросы на выборку данных
Запросы на выборку применяются для решения темати­
ческих, логических и статистических информационных задач
и относятся к одному из наиболее часто применяемых видов
запросов. Данный вид запросов реализуется SQL-инструкцией
SELECT с предложением FROM.
Результатом исполнения запроса на выборку является
набор данных, который представляет временную таблицу дан­
ных со структурой (поля, их типы и параметры), определяемой
параметрами запроса и параметрами полей таблиц, из которых
выбираются данные. В отличие от режимов поиска и фильтра­
ции запросами на выборку данные выбираются из «не откры­
тых» таблиц базы данных. Результаты запросов на выборку по­
мещаются в специальную временную таблицу, размещаемую
на период исполнения («открытия») запроса в оперативной па­
мяти. В этом смысле с точки зрения дальнейшей обработки дан­
ных запрос (как результат) в реляционных СУБД тождестве­
нен просто таблице данных, «открытие» которой осуществля­
ется в результате выполнения запроса. Из этого следует
возможность исполнения запросов над запросами, точнее над
результатами исполнения других запросов, что существенно об­
легчает построение сложных запросов при решении логичес­
ких и статистических информационных задач.
141
4. Ввод, обработка и вывод данных в фактографических АИС
Запросы
по информационным задачам и
формам представления результата
Запросы на выборку данных
Управляющие
запросы
Рис. 4.8. Классификация запросов в реляционных СУБД
В большинстве СУБД наборы данных, формируемые зап­
росами на выборку, являются динамическими. Динамичность
означает, что с результатом исполнения запроса можно произ­
водить все те же операции, что и с данными в режиме откры142
4.3. Обработка данных
той таблицы. Иначе говоря, изменения данных, осуществляе­
мые в наборе данных, сформированных по запросу, фиксиру­
ются в исходных таблицах, из которых выбираются данные, и,
наоборот,—изменения данных в исходных таблицах, если они
производятся в открытых таблицах после исполнения запроса,
отображаются в наборе данных по результатам «открытого»,
т. е. исполняемого в это же время, запроса.
Запросы на выборку классифицируются по двум критери­
ям — по формированию условий выборки и по схеме отбора
данных.
По формированию условий выборки запросы можно под­
разделить на три группы:
• запросы со статическими (неизменяемыми) условиями
отбора;
• запросы с параметрами;
• запросы с подчиненными запросами.
В запросах первого вида условия выборки данных опреде­
ляются при формировании самого запроса и являются неизмен­
ными при всех последующих выполнениях запроса. В запросы
с параметрами вставляются специальные средства для диало­
гового задания пользователем конкретных параметров в усло­
виях отбора в момент исполнения запроса. Таким образом, при
запуске на исполнение запроса с параметрами пользователь
может варьировать и уточнять условия выборки данных. В зап­
росах третьей группы условия отбора данных определяются по
результатам исполнения вставленной в тело внешнего запроса
внутренней инструкции SELECT.
По схеме отбора данных запросы на выборку подразделя­
ются также на три группы:
• запросы на выборку данных из одной таблицы;
• запросы на выборку данных в один набор из нескольких
таблиц;
• запросы на объединение данных.
143
4. Ввод, обработка и вывод данных в фактографических ЛИС
4.3.2.1.1. Запросы на выборку данных из одной таблицы
Запросы на выборку данных из одной таблицы по смыслу
и назначению сходны с фильтрацией данных в открытой таб­
лице. Различие заключается лишь в форме представления ре­
зультата (в частности, запросом на выборку можно отображать
не просто подмножество записей исходной таблицы, но и подмножество полей исходной таблицы) и в технологии последу­
ющей работы с результатом (над набором данных, как уже от­
мечалось, можно исполнить другой запрос).
Различают запросы па выборку всех записей с произволь­
ным набором полей и запросы па выборку подмножества за­
писей.
На рис. 4.9 приведен пример запроса, формирующего пол­
ный список сотрудников организации из таблицы «Сотрудни­
ки», но с сокращенным набором полей («Таб. №», «Фамилия»,
«Имя», «Отчество»), а также представлен вариант SQL-инст­
рукции, реализующий данный запрос.
Сотрудники
Таб
№
Фамилия
1 Иванов
2 Петров
3 Сидоров
4 Егоров
5 Кузьмина
Имя
Иван
Петр
Сидор
Егор
Ольга
Отчество
Иванович
Петрович
Сидорович
Егорович
Игоревна
Должность Подразделе­ Кабинет Телефон
ние
Начальник
Начальник
Инженер
Начальник
Секретарь
Отдел№0 . №1
Отдел №1
№101
Отдел №1
Na101а
№103
Отдел №3
№101и
Отдел №3
10
11
11
11
11
00 01
11 01
11 02
1001
10 01
Запрос на выборку всех записей с произвольным набором полей
SELECT Та6_№, Фамилия, Имя
FROM Сотрудники,
Список сотрудников
Таб_Н«
1
2
3
А
5
Фамилия
Иванов
Петров
Сидоров
Егоров
Кузьмина
Имя
Иван
Петр
Сидор
Егор
Ольга
Рис. 4.9. Пример запроса на выборку всех записей по группе по­
лей
144
1.3. Обработка данных
В запросах на отбор подмножества записей в SQL-инст­
рукции SELECTnepe3 предложение WHERE помещается выра­
жение, определяющее условие отбора данных. На рис. 4.10 при­
веден пример реализации запроса на отбор подмножества за­
писей из таблицы «Сотрудники» для формирования списка
работников инженерно-технического и экономического профи­
ля.
Сотрудники
Фамилия
Должность
Ученая
Кабинет Телефон степень
Егорова
Иванов
Иванова
Петров
Петрова
Сидоров
Сидорова
Фетисов
Секретарь
1 101
101-а
Начальник
101
1 101
д.т.н.
Се^етарь
106
1 105
110
1 110
Инженер
к.т.н.
Секретарь
106
1 105
110
1 110
Экономист
К.Э.Н.
106
1 105
Секретарь
105
1 105
Инженер
Запрос на выборку
^?1£СГСотрудники,Фшип*я, Сотрудники.Допжносгь
FROM С отрудники
WHERE ((Сотрудники.Дтажноегь)= "Инженер" Ог(Сотрудники.Дса1жностъ)="Эконймист");
Синие
воротнички
Фамилия
Петров
Сидоров
Фетисов
Должность
Инженер
Экономист
Инженер
Рис. 4.10. Пример запроса па выборку подмножества записей
В запросах на выборку данных широко применяются пре­
дикаты отбора ALL, DISTINCT, DISTINCTROWnTOPn.U.^дикат ALL используется по умолчанию и устанавливает вывод
в наборе данных всех записей, формируемых по условию отбо­
ра, задаваемого предложением WHERE, и в большинстве слу­
чаев в инструкции ЗЖ.Ё'СГопускается.
Предикат DISTINCT'используется для исключения в набо­
ре отбираемых данных тех записей, значения которых по опре­
деленному полю повторяются, т. е. уже раз вошли в набор.
На рис. 4.11 приведен пример запроса, отбирающего из таб­
лицы «Сотрудники» данные по полю «Должность» без преди145
4. Ввод, обработка и вывод данных в фактографических АИ(
Сотрудники
Таб.
Фамилия
№
1 Белолицый
3 Иванова
4 Сидоров
6 Проворный
9 Тишайшая
10 Почтенная
11 Васильева
15 Егорова
17 Неподкупный
20 Сметливый
Список должностей с
повторами
SBLSCT
СогрузникиДапжностъ
Я?СМСструдниюг,
Должность
Генеральный директор
Секретарь-референт
Экономист
Начальник отдела
Секретарь-референт
Н ачальник группы
Бухгалтер
Инспектор
Начальник отдела
Инженер
Имя
Б.
И.
С.
П.
0.
С.
В.
Е.
С.
С.
Отчество
Б.
П.
С.
П.
Н.
0
в.
Е.
С.
С.
Должность
Генеральный директор
Секрет арь-реф ерент
Экономист
Начальник отдела
Секретарь-реф ерент
Начальник группы
Бухгалтер
Инспектор
Начальник отдела
Инженер
Список должностей без
повторов
SELSCT DISWfCT
С струдники. Должность
FROM Сотрудники;
Должность
Генеральный директор
Секретарь-референт
Экономист
Начальник отдела
Начальник группы
Бухгалтер
Инспектор
Инженер
Список первых пяти
должностей
SSLZCTTOPb
СотрудкикнДопжносгъ
FROM Сотрудники',
Должность
Генеральный директор
С екретарь-реф ерент
Экономист
Начальник отдела
С екретарь-реф ерент
Рис. 4.11. Пример запросов с предикатами ALL, DISTINCT и ТОР п.
ката отбора (т. е. с предикатом ALL) и с предикатом DISTINCT.
В данном случае использование предиката DISTINCT'позволя­
ет сформировать простой список должностей без повторов.
Предикат DISTINCTROWwuserr аналогичное предикату
/Э/ЗТЛУСГ назначение для исключения из набора тех записей,
значения которых повторяются по всем полям, включенным в
набор данных.
Предикат ТОР п обеспечивает включение в набор данных
первых я записей, сформированных по условию отбора. При­
мер запроса с предикатом ТОР п также приведен на рис. 4.11.
В запросах на выборку помимо предложений FROM и
WHERE используются предложения GRO UP В Y, НА VING и
ORDER В Y для дополнительной обработки отбираемых запи­
сей.
146
4.3. Обработка данных
Предложение GRO UP ^Гобъединяет (группирует) записи
с одинаковыми значениями определенных полей в одну запись.
Предложение НА VING выполняет функцию предложения
WHERE, позволяя задавать дополнительные условия для отбо­
ра сгруппированных предложением GROUP В ^записей. Пред­
ложение ORDER BY обеспечивает сортировку отобранных за­
писей в зависимости от способа ASC (по возрастанию) или
DESC (по убыванию). На рис. 4.12 приведен пример запроса,
формирующего в порядке убывания список сгруппированных
по полям «Категория» и «Профиль» записей из таблицы «Под­
разделения» при условии отбора подразделений с категорий
выше третьей и отбора сгруппированных записей при условии
основного профиля подразделений.
Подразделения
Усл. Наименование
Бухгалтерия
Отдел кадров
Отдел режима
Отдел сбыта
Отдел снабжения
Планово-экономический отдел
Производственный отдел
Руководство
Секретариат
Категория
Третья
Вторая
Третья
Вторая
Вторая
Вторая
Первая
Первая
Третья
Профиль
Телефон
Обеспечивающий
Вспомогательный
Вспомогательный
Основной
Основной
Основной
Основной
Основной
Обеспечивающий
777
333
110
666
444
888
555
111
222
Категории подразделений с профилем "Основной "
5!Е1^СГПодразделения.Категория, ПодразделенияЛрофипь
FROM П одр аз деления
WHERE ((Подразделения.Категория)<> Третья*)
ОЙОС/РВУПодрвделения.Когегория, Подразделения.Профипь
HAVING ((Подразделения.Профипь)" "Основной")
О^ЯЯВУПодразделеяга.КатегорилРЯЗ'С;
Категория
Первая
Вторая
Профиль
Основной
Основной
Рис. 4.12. Пример запроса па выборку дачных с предложениями
GROUP BY, HAVING»ORDER BY
Определенную специфику имеет отбор записей с «пусты­
ми» значениями определенных полей. В трактовке реляцион147
4. Ввод, обработка и вывод данных в фактографических ЛИС
ных СУБД и языка SQL «пустых», т. е. неопределенных, значе­
ний полей не бывает. Иначе говоря, значением числового поля
может быть число, равное «О», а значением других типов полей
(текстовые, дата) может быть нулевое значение—«Nu//».
Отбор записей с пустыми значениями может применяться
для решения некоторых тематических и технологических за­
дач, когда нужно отдельно сформировать и проанализировать
набор данных с записями, содержащими нулевые для число­
вых полей, или не имеющие в силу каких-либо причин опреде­
ленного значения, для других типов полей. На рис. 4.13 пред­
ставлен пример запроса, отбирающего данные из таблицы «Со­
трудники», приведенной на рис. 4.10, с «пустыми» значениями
по полю «Ученая степень», иначе говоря, формирующий спи­
сок сотрудников, не имеющих ученых степеней.
Запрос по поиску
пустых •значений
SSLECTC отрудники.Ф амилия, С огрудники. Д олжность, С от рудники. Кабинет,
С от рудники. Телефон
УДОМ Сотрудники
^ H £ R S ((С отруднкки.Ученая степень) h Nidi);
Сотпрудникщ не имеющие ученых степеней
Фам илия
Фетисов
Егорова
Иванова
Петрова
Сидорова
Должность
Инженер
Секретарь
Секретарь
Секретарь
Секретарь
Кабинет
105
101-а
106
106
106
Телефон
1
1
1
1
1
105101
105
105
105
Рис. 4.13. Пример запроса по поиску данных с пустыми значени­
ями определенного поля
4.3.2.1.2. Запросы на выборку данных из нескольких
таблиц
Запросы на выборку данных из нескольких таблиц, как пра­
вило, предназначены для решения логических информационных
задач и, в свою очередь, подразделяются на три группы:
• запросы на сочетание данных;
• запросы на соединение данных;
148
4.3. Обработка данных
• запросы на объединение данных.
Запросы на сочетание строятся на основе операции скаляр­
ного произведения реляционных таблиц и по смыслу направлены
на формирование полного набора сочетаний строк-записей, пред­
ставленных в исходных таблицах. Запросы на сочетание строятся
на основе SQL-инструкции SELECTw предложения FROM с про­
стым перечислением отбираемых полей и их таблиц.
Для примера на рис. 4.14 приведен запрос на выборку сочета­
ния данных из таблицы «Подразделения» и таблицы «Мероприя­
тия». Формирование и исполнение такого запроса может быть обус­
ловлено потребностями автоматического ерчэрмирования новой таб­
лицы для составления определенных планов или графиков, где
нужно предусмотреть в исходном виде полный набор сочетаний
данных по подразделениям и по мероприятиям.
ПоЬратделшця
Руководи­
тель
Отдел сбыта
Петров
Отдел снабжения
Иванов
Производственный отд
Сидоров
Наименование
Мероприятия
Кол-во
сотр—в
43
23
3
Вид
Квартальный отчет
Квартальный отчет
Пол¥Годовой отчет
Дата
01.04.98
01.07.98
10.07.98
3<stpoc на сочананыл Аан-мых
£'.5'/^?С7'11одразделения.*, М е р о п р и я т и я . * FROM М е р о п р и я т и я , Подразделения;
Наименование
Отдел снабжения
Отдел снабжения
Отдел снабжения
Отдел сбыта
Отдел сбыта
Отдел сбыта
Производственный отдел
Производственный отдел
Производственный отдел
Плам—графикл1гроприяттшй
Руководи­
Кол-во
Вид
тель
сотр-в
Квартальный отчет
Иванов
23
23
Квартальный отчет
Полугодовой отчет
Иванов
23
Квартальный отчет
Петоов
43
Квартальный отчет
Петров
43
Полуподовой отчет
Петров
43
Квартальный отчет
3
Квартальный отчет
Сидоров
3
СИДОРОВ
3
Полугодовой отчет
Дата
01.07.98
01.04.98
10.07.98
01 07.98
01.04.98
10.07.98
01.07.98
01 .04.98
10.07.98
Рис. 4.14. Пример реализации запроса на сочетание данных из
двух таблиц
Запросы на соединение", в свою очередь, подразделяются
на запросы на основе внутреннего соединения (INNER JOIN)
" В некоторых источниках данный тип запросов называют запросами на объеди­
нение (JOIN). Англ. термин JOIN переводится в глагольном виде как «объединяться»,
«соединяться», что п обусловливает неодинаковое его использование в русском пере­
воде в разных источниках. В данном контексте более правильным являегся его перевод
как «соединение», так как в реляционной модели данных операции «объединения» и
«соединения» различны.
149
4. Ввод, обработка и вывод данных в фактографических ЛИС
и запросы на основе правого или левого внешнего соединения
{RIGHT JOIN и LEFT JOIN).
Запросы на выборку, строящиеся на основе внутреннего со­
единения, реализуют рассматриваемую по реляционной моде­
ли данных операцию соединения реляционных таблиц. Данная
операция является одной из наиболее характерных и частых
при решении логических информационных задач, когда нужно
получить и просмотреть данные из разных таблиц, связанных
определенной логикой или предварительно установленными в
схеме базы данных связями. Напомним, что при реализации опе­
рации соединения двух таблиц выделяется поле соединения,
которое должно быть одинакового типа в соединяемых табли­
цах. Результатом соединения таблиц является новая таблица,
содержащая все поля, или часть полей первой таблицы и все
или часть полей второй таблицы. Строки итоговой таблицы при
внутреннем соединении образуются из сцепления строк пер­
вой и второй таблиц, когда их значения по соединяемому полю
совпадают.
Запросы на внешнее соединение строятся на основе моди­
фикации операции соединения. При левом внешнем соедине­
нии {LEFT JOIN) строки итоговой таблицы образуются из всех
строк первой (левой) таблицы с «прицеплением» строк второй
таблицы, если значения поля соединения совпадают. Если сре­
ди строк второй (правой) таблицы нет строк с соответствую­
щим значением поля соединения, то в итоговой таблице присо­
единяемые поля заполняются пустыми значениями. При пра­
вом внешнем соединении {RIGHT JOIN) строки итоговой
таблицы строятся по противоположному правилу.
В большинстве случаев запросы на основе внутреннего со­
единения, по сути, являются процессом денормализации свя­
занных таблиц, на которые база данных разделяется при про­
ектировании, исходя из требований рационализации размеще­
ния данных.
Запросы на соединение реализуются на основе включения
в предложение FROM в качестве источника данных конструк­
ции вида «имя_1-й_таблицы INNER {LEFT/RIGHT) JOIN нмя_
150
4.3. Обработка данных
2-й_таблицы 07Уимя_поля_соединения_1 -й_таблицы=имя_поля_соединения_2-й_таблицы». На рис. 4.15 приведен пример
реализации операций внутреннего, а также левого и правого
внешних соединений таблиц «Сотрудники» и «Исполнение» (до­
кументов) по полю «Фамилия».
На рис. 4.15 приведены также варианты построения SQLинструкций, для реализации соответствующих запросов. Как
видно из рисунка, выбор типа соединения определяется целя­
ми дальнейшего использования результатов запроса.
Сотрудники
Фамилия
Егорова
Иванов
Петров
Сидоров
Фетисов
Должность
Секретарь
Начальник
Июиенер
Экономист
Контролер
Кабинет
101-а
101
110
110
105
Телефон
1
1
1
1
1
101
101
110
110
105
Исполнение
Наименованиед-та
Per.ll:
Заявка на финансирование
Отчет за 1-й квартал
Справка по результатам проверки
Приказ о поощрении
Приказ о наказании
Приказ о назначении
1123с
15/нс
15/с
22/3
23/2
И-13
Фамилия
Дата
15.02.98
30.03.98
10.02.98
01.01.98
02.01.93
01.01.98
Андреев
Сидоров
Сергеев
Иванов
Иванов
Иванов
Фактическое Исполнение
SELECT Сотрудник и.*. Исполнение. Рег_М°, Исполнение.Наименование^—та.
Исполнение. Дата
FROM Сотрудники INNER JOIN Исполнение ON Сотрудники. Фамилия =
Исполнение.Фамилия;
Фамилия Должность Кабинет Телефон Per.tls
Иванов
Иванов
Иванов
Сидоров
Начальник
Начальник
Начальник
Экономист
101
101
101
110
1
1
1
1
101
101
101
110
22/3
23/2
И-13
15/нс
Наименование д-та
Приказ о
Приказ о
Приказ о
Отчет за
поощрении
наказании
назначении
1-й квартал
Д.тга
01.01.9
02.01.9
01.01 9
30.03.9
Рис. 4.15, а. Левое внешнее соединение
При внутреннем соединении целью является получение
новой таблицы с итоговыми данными по уже состоявшимся свя­
зям.
151
4. Ввод, обработка и вывод данных в фактографических ЛИС
Сотрудники и Исполнение
SELECT Сотрудники.*, И спапнение.Рег_№, Исголнение.Наименование_д-та, Исполнение. Дата
^ЯОМСотрудники LEFT JOIN Исполнение ON Сотрудники Фамилия» Испопнение.Фамипия;
Фам илия
Егорова
Иванов
Иванов
Иванов
Петров
Сидоров
Фетисов
Должность
Секретарь
Начальник
Начальник
Начальник
Инженер
Экономист
Контролер
Кабинет Телефон Рег.Н»
101-а
101
101
101
110
110
105
1
1
1
1
1
1
1
101
101
101
101
110
110
105
Наименование д-та
Дата
22/3
23/2
И-13
Приказ о поощрении
Приказ о наказании
Приказ о назначении
01.01.98
02.01.98
01.01.98
15/нс
Отчет за 1-й квартал
30.03.98
Рис. 4.15, б. Левое внешнее соединение
Документы
и
Исполнение
SELECTHcnaaneHiie.?er_Ks, Исполнение.Наименование_д-^га, Испопнение.Дата, Сотрудники.*
FROM Сотрудники RIGHT JOIN Мтттнпе сЖСотрудники.Фамилия" Испопнение.Фамипия;
Per.ll»
1123с
22/3
23/2
И-13
15/с
15/нс
Наименование документа
Заявка на финансирование
Приказ о поощрении
Приказ о наказании
Приказ о назначении
Справка по результатам проверки
Отчет за 1-й квартал
Дата
15.02.98
01.01.98
02.01.98
01.01.98
10.02.98
30.03.98
Фамилия Должность
Каби­ Теле­
фон
нет
Иванов
Иванов
Иванов
Начальник
Начальник
Начальник
101
101
101
1 101
1 101
1 101
Сидоров
Экономист
110
1 110
Рис. 4.15, в. Правое внешнее соединение
Внешнее соединение по смыслу направлено на создание
итоговой таблицы для просмотра и анализа состоявшихся и еще
несостоявшихся связей. При этом для левого внешнего объеди­
нения упор делается на анализ связей от первой таблицы (в
нашем случае от сотрудников, чтобы просмотреть и проанали­
зировать, кто и какие документы исполнил, а кто вообще не
исполнил ни одного документа). Иначе говоря, информация по
связям служит в качестве дополнительного аспекта, дополни­
тельной характеристики для записей левой таблицы. Для пра­
вого внешнего объединения упор делается на анализ связей от
второй таблицы (в нашем случае от «Исполнения», чтобы про­
смотреть и проанализировать, какие документы исполнены и
152
4.3. Обработка данных
какими сотрудниками, записи о которых находятся в таблице
«Сотрудники»).
В некотором смысле антиподом запросов на соединение
является специальный вид запросов на выборку, называемый
запросом на поиск записей без подчиненных.
Поиск записей без подчиненных применяется для анализа
данных в связанных таблицах, когда связи в силу каких-либо
причин не состоялись. Реализуется данный вид запроса на ос­
нове запроса на левое (правое) внешнее соединение с дополни­
тельным условием отбора записей с пустыми значениями по
полю соединения в правой (левой) таблице. По сути, запрос на
поиск записей без подчиненных противоположен запросу на
внутреннее соединение. Примером запроса по поиску записей
без подчиненных, представленным на рис. 4.16, является зап­
рос, строящий набор записей по таблице «Сотрудники», кото­
рые не исполнили ни одного документа, т. е. не имеют подчи­
ненных записей в таблице «Исполнение».
Запросы на соединение могут решать и более сложные ло­
гические информационные задачи по анализу связанных дан­
ных в цепочках из нескольких таблиц. В качестве примера та­
кого рода запросов12 можно привести следующий запрос по фор­
мированию набора записей сотрудников, командированных в
январе 1998 г. в организации г. Саратова со служебным задани­
ем «Сопровождение поставок», данные из которого выбирают­
ся из последовательно связанных отношением «Один-ко-многим» 4-х таблиц—«Сотрудники», «Командировки», «Пункт ко­
мандирования», «Задания»:
БЕЬЕСТОугрущшкя. *
FR ОМ ((Сотрудники INNER JOIN Командировки ON Со­
трудники. ФИО=Командировки.ФИО) INNER Л?/ЛГЗадания ON
Командировки. Служебное задание = Задания.Наименование)
INNER /0/JV Пункт командирования ОЛ^Командировки. Пункт
командирования = Пункт командирования. Наименование
12
В данном случае далеко не самого сложного.
153
4. Ввод, обработка и вывод данных в фактографических ЛИС
Сотрудники
Фамилия
Егорова
Иванов
Иванова
Петров
Петрова
Сидоров
Сидорова
Фетисов
Должность
Секретарь
Начальник
Секретарь
Инженер
Секретарь
Экономист
Секретарь
Инженер
Кабинет
101-а
101
106
110
106
110
106
105
1
1
1
1
1
1
1
1
Тел ефон
101
101
105
110
105
110
105
105
Исполнение
PerJIs
11/1
11/4
112/с
19/нс
21/1
21/1
21/нс
///-и
Наименование д-та
0 поощрении
0 наказании
0 работе с кадрами
0 сотрудничестве
0 состоянии НИР
0 состоянии труд дисц.
0 поставках продукции
Об увольнении
Поиск записей без
Вид
документа
Приказ
Приказ
Отчет
Письмо
Справка
Справка
Письмо
Приказ
Дата
01.01.98
02.01.98
01.01.98
18.03.98
17.03.98
01.01.98
19.03.98
10.01.98
Фамилия
Иванова
Иванова
Петрова
Сидорова
Петрова
Иванова
Сидорова
Петрова
подчиненных
ЖХЯСГС отрудники.Фамили* Сотрудники.Допжность,Сотрудники.Кабинет, Сотрудники. Теп ефон
FROMСагрудткх LEFT JOINHcncnHtmit ON Сотрудники. Фамилия • Исгсшнение.Фамипия
(^ШУ£((Исполнение.Фамилия) /з ШГ);
Сотрудники, не ысиаяняяиия докриёктое
Фамилия
Должность Кабинет
Телефон
Иванов
Начальник
101
1 101
Петров
Инженер
110
1 110
Сидоров
Экономист
110
1 110
Фетисов
Инженер
105
1 105
Секретарь
Егорова
101-а
1 101
"1
Рис. 4.16. Пример запроса по поиску записей без подчиненных
WHERE ((Пункт командирования. Город)=«Саратов») AND
((Задания. Наименование) = «Сопровождение поставок») AND
((Командировки.Дата убытия) Between #l/l№#And#l/31/98#);
Запросы на объединение данных реализуют операцию
объединения реляционных таблиц и решают задачи создания
наборов данных, объединяющих однотипные по смыслу запи­
си (по группам однотипных полей) из нескольких таблиц. Стро­
ятся запросы на объединение через SQL-инструкцию SELECT—
UNION SELECT. При этом запрос состоит из первой инструк­
ции SELECT, в которой перечисляются отбираемые поля и ус154
4.3. Обработка данных
ловия отбора записей из первой таблицы, и последующих ин­
струкций UNION SELECT, в которых указываются отбираемые
поля и условия отбора записей из других таблиц. Обязатель­
ным условием является одинаковое количество отбираемых
полей в первой инструкции SELECT и последующих инструк­
циях UNION SELECT. При этом типы и длина полей в первой
инструкции и последующих инструкциях могут не совпадать.
При необходимости в итоговом наборе данных наименова­
ния отбираемых полей можно изменить через ключевое слово
ASuocne соответствующего поля в первой инструкции SELECT.
По умолчанию повторяющиеся записи не возвращаются,
но через использование предиката ALL после ключевого слова
UNION можно обеспечить режим отбора всех, в том числе и
повторяющихся записей.
На рис. 4.17 приведен пример отбора и объединения дан­
ных из таблиц «Исходящие» и «Входящие» базы «Документо­
оборот» с целью формирования общего списка документов, по­
ступивших после 1 декабря 1998 г., и документов, отправлен­
ных после 20 декабря 1998 г. В запросе первые и последние
поля переименованы, чтобы объединить смысл этих полей в
исходных таблицах.
4.3.2.1.3. Вычисления и групповые операции в запросах
Во многих случаях при формировании набора данных по
запросам на выборку требуется производить определенные вы­
числения или определенные операции по непосредственной об­
работке отбираемых данных. В реляционных СУБД такие воз­
можности предоставляются через вычисляемые поля и группо­
вые операции в запросах над отбираемыми данными.
Вычисляемые поля. В инструкции SELECT'в списке отби­
раемых полей добавляется выражение, по которому вычисля­
ется новое поле, и посредством ключевого слова AS определя­
ется его имя в формируемом наборе данных. На рис. 4.18 при­
веден запрос, формирующий ведомость начислений
сотрудникам с вычисляемым полем «ИТОГО».
155
4. Ввод, обработка и вывод данных в фактографических ЛИС
Исходящих
PerJI»
вход
Отправитель
Заголовок
Дата
10.11.98 0 конф еренции по земноводным
15.12.98 Об изменениях в номенклатуре
поставок
НИИ природы г. Черноморск
117/23
нн-5343
20.12.98 Рекламация по продукции
0 0 0 "ТяжМаш" п. Штамповщиков
223/ис
ЗАО "ГлобалКомплект"
г. Урюпинск
Входящим
Рег_Н«
исход
Дата
Адресат
Заголовок
2334
25.12.9
0 6 оказании методической
помощи
3435-12
18.12.98 По номенклатуре поставок АО
ГлобалКомплект"
Запрос на объединение
Министерство "Науки и
помощи", г. Москва
АО "ГлобалКомплект"
г. Урюпинск
данных
SELECTPer Ns вхсдАЗТег №вход%стсд. Дата, Заголовок, ОттфавитепьЛУОтправитепь/Адресат
\FROMBx едящи е
WHERE (Входжцне.Дата >- #12/01/9 8#)
• UMONALL Ж££СГРег_М!_исхсд, Дата, Заголовок, Адресат
: FROM Исх одящие
^ЯгЯг(Исхсдлщие.Дата>- 82Ш12/9Щ;
Документы.
пол»ченныепосле01.1298иотпоавленные
после
20.1298
Рег_Н«
* ход/исход
117/23
15.12.9
нн-5343
20.12.98 Рекламация по продукции
ООО'ТяжМаш", п.Штамповщиков
2334
25.12.98 Об оказании методической
помощи
Министерство "Науки и помощи",
г. Москва
Дата
Заголовок
Отп р лв итель/Ддресат
Об изменениях в номенклатуре ЗАО 'ГлобалКомплект", г.Урюпинск
поставок
Рис. 4.17. Пример запроса на объединение
Групповые операции. В процессе отбора и обработки дан­
ных важное значение имеют группирование данных по значе­
ниям какого-либо поля и осуществление тех или иных опера­
ций над сгруппированными записями. Групповые операции осу­
ществляются на основе SQL-предложения GROUP BY в
сочетании со статистическими функциями SQL. В большин­
стве диалектов языка SQL в состав инструкции SELECT допус­
кается включение статистических функций SQL, которые осу­
ществляют те или иные групповые вычислительные операции
над отбираемыми записями.
К числу статистических функций SQL относятся:
5'{7М(выражение) — вычисляет сумму набора значений;
156
4.3. Обработка данных
Сотрудники
Таб
_Н«
Фамилия Имя
1
2
3
4
5
Иванов
Петров
Сидоров
Егоров
Кузьмина
Иван
Петр
Сидор
Егор
Ольга
Отчество Должность Оклад
Иванович Начальник
Петрович Начальник
CиДOPOBИ^ Инженер
Егорович Начальник
Игоревна Секретарь
Персональная
Надбавка
Надбавка за
уч. степень
ЮОо.
50р.
Ор.
30р.
150р.
100о.
80р.
40р.
80р.
30р.
50D.
Op.
20р.
40р.
Ор.
Ведомость
начислений
SELECT Сотрудники*, С отрданики.ОЕпад+Сотрудники Персан&льнад_Надо"авка
4Сотрудники.Над6аЕка_за_уч_степень AS ИТОГО
FROM С отрудники;
Таб
Фамилия Имя
Иванов
Петров
Сидоров
Егоров
Кузьмина
Иван
Петр
Сидор
Егор
Ольга
Персональная
Отчество Должность Оклад
Иванович Начальник
Петрович Начальник
Сидорович Инженер
Егорович Начальник
Игоревна Секретарь
Надбавка
за уч.
ИТОГО
Надбавка
100р iOOp
80р 50р
40р
Ор
ЗОр
ЗОр 150р
50р
0р
20р
40р
Ор
250 р
130р
60р.
150р
Рис. 4.18. Пример запроса па выборку с вычисляемым полем
А КС(выражение) — вычисляет среднее арифметическое на­
бора чисел;
Мш(выражение) — вычисляет минимальное значение из на­
бора значений;
Мах(выражение) — вычисляет максимальное значение из
набора значений;
Л/Эеу^выражение) — вычисляет среднеквадратичное от­
клонение набора значений;
Сшл^выражение) — вычисляет количество записей, содер­
жащихся в наборе;
Кш-(выражение) — вычисляет дисперсию по набору значе­
ний.
К числу функций, используемых в групповых операциях,
относятся также функции РкБ^выражение) и £аз1:(выражение),
вычисляющие (возвращающие), соответственно, первое и пос­
леднее значения поля в наборе данных. В выражениях в каче­
стве аргумента допускается использование имен полей таблиц.
157
4. Ввод, обработка и вывод данных в фактографических ЛИС
Собственно сами групповые вычисления задаются посред­
ством включения в SQL-инструкцию SELECT вычисляемого
поля на основе выражения со статистическими функциями, вы­
полняемыми над наборами данных, формируемыми предложе­
нием GR О UP В Y.
Для примера на рис. 4.19 приведен запрос, формирующий
итоговые данные по общей сумме премиальных каждого из пре­
мированных сотрудников. Группирование данных производит­
ся по полю «ФИО», т. е. все записи с одинаковыми значениями
поля «ФИО», объединяются в одну и дополнительно формиру­
ется вычисляемое поле «ИТОГО», рассчитываемое как сумма
сгруппированных в одну записей по произведению полей «Ок­
лад» и «Премия».
Премирование
ФИО
Грозный И.И
Грозный И.И.
Грозный И.И.
Гуманный АА.
Иванов И.И.
Петров П.П.
Почтенная О.П.
Сидоров С. С.
Тишайшая Т.Т.
Почтенная О.П.
Оклад П |>«мия
100р.
100р.
100р.
99р.
70р.
60р.
90р.
80р.
28р.
90Р.
200%
200%
300%
100%
50%
50%
100%
90%
90%
100%
Формулировка
Дата
01.01.98
01.02.98
01.03.98
10.01.98
10.01.98
10.01.98
01.03.98
10.01.98
01.02.98
01.01.98
За сложность и напряженность
За сложность и напряженность
За сложность и напряженность
За гуманизм в работе с кадрами
За творческий подход к делу
За служебное рвение
За сложность и напряженность
За проявленную принципиальность
За исполнительность'
За сложность и напряженность
Общий итог по прениям
SeiSC7TIpeMHH*HO, а»л(Пре1Л1И.Ога1ад*Премки.Премия)Л5ИТОГО
ЯКОМПремии
GROUP ВУПремии.ФИО,
ФИО
ГРОЗНЫЙ ИИ.
Гуманный А А
Иванов И.И.
Петров П.П.
Почтенная О.П.
Сидоров С. С.
Тишайшая Т.Т.
ИТОГО
700о.
99о.
35р.
30р.
160р.
72р.
25р.
Рис. 4.19. Пример запроса с групповой функцией Sum
В некоторых СУБД в отдельный вид выделяются запросы
по поиску повторов, а также вводится специальная разновид158
4.3. Обработка данных
ность запросов на выборку в виде так называемых перекрест­
ных запросов.
Запросы по поиску повторов применяются для анализа на­
личия повторяющихся групп значений по определенному полю
и их количественных (статистических) данных. В качестве при­
мера на рис. 4.20 приведен запрос по поиску повторов в табли­
це сотрудники по полю «Должность», формирующий в итоге
штатную расстановку по заполненным должностям.
Сотрудники
Фамилия
Должность
Егорова
Иванов
Иванова
Петров
Петрова
Секретарь
Начальник
Секретарь
Инженер
Секретарь
Экономист
Секретарь
Инженер
СИДОРОВ
Сидорова
Фетисов
Поиск
[SELECTDIST1NCTROWИпКДаажиоаъ)
;АУКопичество
: PROM Сотрудники
! GROUP ВГДспжность
Кабинет Телефон
101-а
101
106
110
106
110
106
110
1 101
1 101
1 105
1 110
1 105
1 110
1 105
1 110
повторов
ASДагжность,
Сош<Допжность)
WAVING Соийф,атыхть)>= 1;
Заполненные должности
Должность
Начальник
Инженер
Экономист
Секретарь
подразделения
Количество
1
2
1
4
Рис. 4.20. Пример запроса по поиску повторяющихся значений
Более сложные статистические задачи решают перекре­
стные запросы. Название «перекрестный» отражает принцип
формирования и представления результатов таких запросов.
На рис. 4.21 иллюстрируется принцип построения итого­
вой (сводной) таблицы перекрестного запроса. В исходной (ба­
зовой) таблице для перекрестного запроса выбираются два поля.
По повторяющимся значениям одного поля формируются на­
звания заголовков строк итоговой (сводной) таблицы—«боко159
4. Ввод, обработка и вывод данных в фактографических АИС
Количество
и названия
строк
V
формируются по\
повт оряющимсяЗ
группам
одинаковых
значений в
первом
выделенном
Количество
и названия
столбцов
формируются
по повторяющимся
группам
одинаковых
значений во
В ячейкахотражаютсярезультаты
статистических функций по
с оотв ет ств ующим rpvnnaM з начений
втором
вьд елейном
попе
Рис. 4.21. Принцип формирования результатов перекрестного
запроса
вик» сводной таблицы. По повторяющимся значениям другого
поля образуются названия столбцов итоговой таблицы—«шап­
ка» сводной таблицы. В ячейках сводной таблицы отражаются
результаты статистических функций по группам данных в ка­
ких-либо полях исходной таблицы.
Для примера на рис. 4.22 представлен запрос по формиро­
ванию статистических данных о количестве исполненных раз­
личными сотрудниками документов с разнесением по видам
документов. Полем для формирования боковика определено
поле «Фамилия», полем для формирования шапки определено
поле «Вид документа». На рисунке представлен также вариант
SQL-инструкции, реализующей данный запрос13.
4.3.2.2. Запросы на изменение данных
Важное значение для решения различных технологичес­
ких информационных задач по ведению базы данных имеют зап­
росы на изменение данных. В отличие от непосредственного
ввода данных в режимах открытой таблицы или формы они вно­
сят изменения сразу в группу записей за одну операцию. Таким
образом, результатом запросов на изменение является не на-
" В диалекте SQZ. MS Access.
160
4.3. Обработка данных
Исполнение
Р«г_Н»
11Л
11/4
112/с
19/йс
21/1
21Л
21 /не
777-и
Вид
документа
Наименование документа
О поошоении
О наказании
О работе с кадрами
О сотрудничестве
О состоянии НИР
О состоянии труд.дисциплины
О поставках продукции
Об увольнении
Приказ
Приказ
Отчет
Письмо
Справка
Справка
Письмо
Приказ
Перекрестный
Дата
01.01.98
02.01.98
01.01.98
18.03.98
17.03.98
01.01.98
19.03.98
10.01.98
Фам илия
Иванова
Иванова
Петрова
Сидорова
Петрова
Иванова
Сидорова
Петрова
запрос
TRANSFORM С ош^Истгспняом Р ег_№) AS Значение
SELECT Исполнение.Фамилия, Count(HcnonHeHlie.Per_Ns) AS Итого
PROM Исполнение
GROUP BY Исшпнение.Фамипия
PIVOT Испшнение.Вид документа;
Статистика исполнения сотрудниками
Фамилия
Иванова
Петрова
Сидорова
Итог»
3
3
2
документов
Письмо
Отчет
Приказ
Справка
2
1
1
1
1
2
Рис. 4.22. Пример перекрестного запроса
бор данных, как в запросах на выборку, а изменение данных в
самих таблицах.
Запросы на изменение данных широко применяются для
ввода данных при импорте из внешних источников, перемеще­
ния записей или их элементов из одних таблиц в другие табли­
цы, при массовой однотипной коррекции или чистке данных, а
также для архивации и экспорта данных.
Существует четыре разновидности запросов на изменение:
• запросы на удаление;
• запросы на обновление;
• запросы на добавление;
• запросы на создание таблицы.
При исполнении запроса наудаление за одну операцию осу­
ществляется удаление группы записей из одной или нескольких
таблиц. Запросы на удаление реализуются 8<3/,-инструкцией
DELETE. К примеру, из таблицы «Клиенты» с помощью запро­
са на удаление можно за одну операцию удалить всех клиен161
4. Ввод, обработка и вывод данных в фактографических ЛИС
тов, проживающих в районе «Марьина Роща». SQL-инструк­
ция такого запроса может выглядеть следующим образом:
DELETEKmembi.*, Клиенты.Район
F-КОМКлиенты
WHERE ((Клиенты.Район) = «Марьина Роща»));
Удаление записей одним запросом из нескольких таблиц
может осуществляться путем перечисления через запятую в со­
ответствующей SQL-инструкции имен таблиц и имен полей, за­
дающих условия удаления, или по связям между таблицами при
установке ограничений целостности связей в режим «Каскад­
ного удаления связанных записей».
Запрос на обновление за одну операцию вносит общие из­
менения в группу записей одной или нескольких таблиц. Реали­
зуются SQL-инструкцией UPDA ТЕ. Запросы на обновления при­
меняются тогда, когда необходимо осуществить глобальные од­
нотипные изменения в каком-либо наборе данных. В качестве
примера приведем ситуацию, когда в результате очередной де­
номинации (девальвации) всем сотрудникам необходимо в 10
раз уменьшить (увеличить) должностные оклады. Вариант SQLинструкции, реализующей такой запрос, может выглядеть сле­
дующим образом:
UPDA ТЕ Сотрудники
5£ГСотрудники.Оклад=Окл ад/10;
В качестве другого примера приведем ситуацию, когда всех
работников-совместителей учебного учреждения необходимо
перевести в категорию почасовиков:
UPDA ГЯСотрудники
5,£ТСотрудники.Статус=«Почасовик»
И/7/£7?£'((Сотрудники.Статус)=«Совместитель»);
Обновление записей сразу в нескольких таблицах, также
как и удаление, может осуществляться путем перечисления че­
рез запятую в инструкции UPDA ТЕ имен таблиц, полей, их зна­
чений и соответствующих условий, а также по связям между
таблицами с предварительной установкой ограничений целос­
тности связей в режим «Каскадного обновления связанных за­
писей».
162
4.3. Обработка данных
Запрос на добавление осуществляет добавление группы за­
писей из одной или нескольких таблиц в конец другой или груп­
пы других таблиц. При этом количество и типы полей** при
вставке записей должны совпадать. Запросы на добавление
могут вставлять записи из текущей (открытой) базы данных в
другую (внешнюю) базу данных. В этом случае запросы на до­
бавление реализуют функции экспорта данных, решая задачи
по обмену, архивации или резервированию данных. Однако
чаще данные запросы применяются для добавления записей из
одной таблицы базы данных в другую таблицу.
Запросы на добавление реализуются SQL-инструкцией
JNSER TINTO. Предположим, в базе данных имеются две таб­
лицы «Студенты» и «Научные работники» с однотипным набо­
ром полей. Предположим также, что 100% студентов группы
И-405 приняли участие в конкурсе научных студенческих ра­
бот и опубликовали свои труды в университетском сборнике.
Тем самым, будучи еще студентами, они перешли в разряд на­
учных работников. В этом случае запросом на добавление од­
ной операцией в таблицу «Научные работники» можно доба­
вить группу новых записей. Вариант SQL-инструкции, реали­
зующей такой запрос, может иметь вид:
INSERT INTO НаучныеРаботники
ЗЖЖТСтуденты. *
FROM Студенты
WHERE ((Студенты.Группа)= «И-405»);
Запросы на создание таблицы за одну операцию создают
новую таблицу с заполненными данными на основе всех или ча­
сти данных из одной или нескольких таблиц. Так же как и зап­
росы на добавление, эти запросы чаще всего решают задачи по
реформированию (реорганизации) базы данных, архивированию
или резервированию данных, а также могут применяться для
создания отчетов или состояний базы данных по определен­
ным временным промежуткам. Реализуются SQL-инструкцией
SELECT... INTO. Для примера приведем задачу создания спе­
циального набора (отчета) данных за месяц, скажем за январь,
14
Не обязательно имена, но обязательно-™™ полей.
163
4. Ввод, обработка и вывод данных в фактографических ЛИС
из таблицы «Заказы» в виде отдельной таблицы (для отдельно­
го хранения или обработки). Вариант соответствующей SQLинструкции может выглядеть следующим образом:
БЕЬЕСТЗаказы.*
INTO Заказы Января
/<7?ОА/Заказы
ИЮЕ№(0а}Ш>1Цща)=ВЕТИЯЖШ1/тАМПШ26Щ,
4.3.2.3. Управляющие запросы
В большинстве современных СУБД проектирование и со­
здание таблиц осуществляются через специальные диалоговонаглядные конструкторы или пошаговые мастера. Тем не ме­
нее, как уже отмечалось, в составе языка описания данных DDL
имеются ряд SQL-инструкций, на основе которых строятся зап­
росы по созданию/модификации реляционных таблиц или от­
дельных их элементов. Такие запросы называются управляю­
щими.
Имеется четыре вида управляющих запросов:
• запросы на создание таблицы15;
• запросы на добавление в существующую таблицу нового
поля или индекса;
• запросы на удаление таблицы или индекса определенно­
го поля таблицы;
• запросы на создание индекса для поля или группы полей
таблицы.
Запросы на создание таблицы реализуются SQL-инструк­
цией CREA ТЕ TABLE с ключевыми словами, определяющими
типы полей (CHARA CTER, INTEGER, DA TETIMEm. д.), пред­
ложением CONSTRAINTдля создания ограничений на значе­
ния полей или связей между таблицами, ключевым словом
UNIQUE, задающим свойство уникальности (требование на
отсутствие совпадений) индекса таблицы, а также ключевого
слова PRIMAR YKEY, определяющего ключевое поле создаваемой таблицы.
15
В отличие от одноименного запроса из группы запросов на изменение данный
тип запроса не использует в качестве исходных данных другие уже существующие в
базе данных таблицы, т. е. создает новую пустую таблицу.
164
4.3. Обработка данных
В качестве примера приведем запрос на создание таблицы
«Сотрудники» с полями «Фамилия», «Имя», «ДатаРождения»,
уникальным составным индексом «ИндексСотрудники» для
полей «Фамилия», «Имя», «ДатаРождения», с тем же набором
полей для составного ключа «КлючСотрудники»16.
США ТЕ ТАВЬЕСтрутшы
(Фамилия TEXT, Имя TEXT, ДатаРождения DA TETJME,
ОЖОТШЛГГИвдексСотрудники UNIQUE(HMX, Фамилия,
ДатаРождения)
КлючСотрудники PRIMAR YKEY);
Запросы на добавление полей или индексов реализуются
SQL-инструкцией ALTER TABLE с использованием зарезервированных слов ADD COLUMN
(добавить поле) и
ADD CONSTRAINT(ao6'dswTb индекс). Этим же запросом с по­
мощью зарезервированного слова DROP COLUMN можно уда­
лить поле из существующей таблицы. Как правило, запросы на
добавление полей также используются для создания внешних
ключей, задающих связи-отношения между таблицами. С этой
целью используются зарезервированные слова FOREIGN KEY
^REFERENCES.
Для примера приведем запросы по добавлению в таблицу
«Сотрудники» нового поля «Оклад», добавлению нового индек­
са «ОкладСотрудники», удалению поля «Оклад», добавлению
внешнего ключа «№_Отдела» и удалению внешнего ключа:
ALTER TABLE Сотрудники ADD COLUMN Оклад
CURRENCY;
ALTER TABLECorpyjjmmADD CONSTRAINTOm<mCoTрудники Оклад;
ALTER TABLECarpymnmi DROP COLUMN Оклад;
ALTER TABLECorpymnmADD CONSTRAINTPn6ovd
FOREIGNKEY(No_OmQsm)
REFERENCES Подразделения (№_Отдела);
ALTER TABLECorpyjimKiiDROPCONSTRAINTP-dQoTd;
Запросы на удаление таблицы или индекса реализуются
SQL-инструкцией DROP TABLE с указанием имени удаляемой
16
В стандартах SQL и в большинстве диалектов SQL символы кириллицы в на­
званиях полей не допускаются.
165
4. Ввод, обработка и вывод данных в фактографических ЛИС
таблицы или индекса. Следующий пример иллюстрирует уда­
ление из базы данных таблицы «Сотрудники» и удаление ин­
декса «ОкладСотрудники»:
DROP TABLE Сотрудники;
DROP INDEX ОкладСотрудники ON Сотрудники;
Запросы на создание индекса реализуются SQL-инструк­
цией CREA ТЕ INDEX с использованием зарезервированного
слова UNIQUE для запрета повтора значений в индексируемом
поле и необязательного предложения WITH с параметрами
DISALLO WNULL и IGNORE NULL для запрета/разрешения
нулевых (пустых) значений в индексируемом поле. Зарезерви­
рованное слово PRIMAR У позволяет определить создаваемый
индекс ключом таблицы (при этом создаваемый индекс по умол­
чанию является уникальным, т. е. повторы значений не допус­
каются).
В следующем примере в таблице «Сотрудники» создается
уникальный индекс «ИндексСотрудника» по полю «Таб_№» с
запретом пустых значений:
CREA ТЕ UNIQUE МОЕХИндексСотрудннка
ONСотрудники (Таб_№)
WTTHDISALLOWNULL;
4.3.2.4. Подчиненные (сложные) запросы
Как уже отмечалось, источником данных для запросов мо­
гут быть результаты выполнения других запросов. Возможны
два варианта построения таких запросов.
Первый вариант реализуется через указание в SQL-инст­
рукциях в качестве имен таблиц и имен полей имен запросов и
полей запросов. Синтаксис таких запросов ничем не отличает­
ся от обычных запросов, а его исполнение осуществляется в
две фазы. По запуску основного запроса сначала неявно запус­
кается запрос, формирующий источник данных, и по заверше­
нию его исполнения запускается основной (внешний) запрос.
Второй вариант реализуется через включение в тело внеш­
ней (главной) SgL-инструкции внутренней инструкции
SELECT. При этом результат исполнения внутренней инструк166
4.3. Обработка данных
ции SELECTHcnoJibsyercn для формирования условия отбора
записей в главном (внешнем) запросе или в качестве выраже­
ния для нового вычисляемого поля. Такие запросы называются
подчиненными.
Использование внутренней инструкции SELECT для фор­
мирования условий отбора записей во внешнем запросе возмож­
но одним из трех способов:
• через предикаты сравнения «для некоторых/для всех» —
ANY, SOME, ALL;
• через предикат вхождения IN;
• через предикат существования EXISTS.
В первом способе конструкция запроса может выглядеть
следующим образом:
SELECT...FROM... WHEREBb\p^K&mQ<>[ANY\SOMEyiLL]
(SELECT...);
где 0 — оператор сравнения.
Как правило, выражение включает поле из списка полей
внешней SQL-инструкции или функцию от этих полей. Внут­
ренняя инструкция SELECT должна возвращать набор данных
по одному полю или по вычисляемому полю, при принципи­
альной сравнимости с выражением во внешней SQL-инструк­
ции (главным образом по типу данных).
Предикаты ANY и SOME («для некоторых»), являющие­
ся синонимами, используются для отбора в главной SQL-инст­
рукции тех записей, которые удовлетворяют сравнению с ка­
кой-либо записью (т. е. хотя бы с одной), из отобранных во внут­
ренней инструкции SELECT.
Для примера на рис. 4.23, а приведен запрос по отбору из
таблицы «Заявки» тех записей, которые могут быть удовлетво­
рены в соответствии с данными по таблице «Квартиры», т. е.
тех записей из таблицы «Заявки», которые удовлетворяют срав­
нению по полям «КолКомп», «Площадь» и «Этаж» хотя бы с
некоторыми (ANY) записями из таблицы «Квартиры», выбира­
емыми при условии «Продано =Нет».
Предикат ALL (для всех) используется для отбора в глав­
ном запросе только тех записей, которые удовлетворяют срав167
4. Ввод, обработка и вывод данных в фактографических ЛИС
Заявки
Mill!
1
2
3
4
Треб,
Этаж Этаж
кол. Площадь
«Мин» «Макс»
комн.
1
5
23
2
4
7
120
4
2
60
10
10
5
4
200
3
ФИО
Иванов ИИ.
Петров П.П.
Сидоров С.С.
Егоров ЕЕ.
Квартиры
Дои/
Строение
Улица
Iblb
1 виноградная
2 Виноградная
3 Абрикосовая
4 Фабричная
5 Тенистая
Б Чистая
Кол.
ком н.
5/бис
5/6ис
114
37
120
38
Площадь
200
60
38
25
150
29
5
2
3
1
4
2
Заявки, которые могут быт*
Этаж Продано
А
10
4
4
5
2
Да
Нет
Нет
Нет
Да
Да
па
основе
удовлетворены
SELECT Зляхл*
FROM 3vam
WHERE (((ЗаякиТреЯСопКомнЭМ^ (^гхгСГКварт^ыКдаКо™
ЖОМКвартцл.1
WHERE КмртирыПродию-Но;))
ЛАД? ((Заявки.Площадь)>"Лир (SELECT Квартиры 17л ощедь
Ihlh
ФИО
3 Сидоров C.C.
т
i=7?Oitf Квартиры
WHERE КвартирыПродано-No;))
AND ((ЗывкиЗтвжМин^-Лу (ЖЙЛ'Квартиры.Этвж
И?СМК»«рт1£ы
WHERE Кв»р1ирыПродаио-Ной
-AMD ((3«хвки.Эг«жМ«с)<-.А}> (ЗИ..ЕСТКв»ртиры.Эт»ж
•РЯОМКвгртцзы
WHERE КввртирмПродано-No;)));
Площадь
2
Рис. 4.23, а. Пример
предиката ANY
60
Этаж Этаж
«Мин» «Макс»
10
подчиненного
10
запроса
нению одновременно со всеми записями, отобранными в под­
чиненном запросе. Пример выполнения запроса с предикатом
ALL приведен на рис. 4.23, б.
Принцип действия запроса по второму способу заключа­
ется в поиске среди результирующего набора записей внешней
SQL-инструкции тех записей, для которых значение определен­
ного выражения входит в список записей, отбираемых внут168
4.3. Обработка данных
Элешнрочобили
Марка
Запас хода
Колесная
Вместимость
(км(
формула
3X3
2X2
2X3
2X2
2X1
•}KVK-3"
"Звезда 1"
"МолнияХиС"
"ПчелаЗ"
"Экол огия2"
15
5
12
3
2
100
150
300
50
5
Маршруты
Hill:
Наименование
1
2
3
4
Электромобили,
Время
года
Романтика"
Культура1"
'Экстремальная экзотика"
'Экстремально-познавательный"
пригодные для использования
Расстояние
между зэпр.
пунктами
20
50
100
150
Весна
Осень
Зима
Зима
на всех маршрутах
в зимнее
время
SELECT Электромобили. *
FROM 3 i остр омо били
И'НгЛВ(((Эпектромобга1И.Зш«сХода)>-^;;(5Е1еС7'Маршругы
РассгояниеМеждуЗапрПунктами
Я50ММаршруты
»7/£Яг(((Маршруты.ВремяГод«)-"Зим»"));)));
Марка
"Звезда1"
"МолнияХ|_С"
Колесная
формула
2X2
2X3
Вместимость
5
12
Запас хода
(км)
150
300
Рис. 4.23, б. Пример подчиненного запроса па основе
предиката ALL
ренней инструкцией SELECT. Конструкция запроса с предика­
том IN выглядит следующим образом:
SELECT ... FROM ... WHERE Выражение [NOT] IN
(SELECT..);
В качестве примера на рис. 4.24 приведен запрос по тем же
исходным данным (таблицы «Сотрудники» и «Премирование»)
для отбора записей только тех сотрудников, записи которых по
премиям были в списке премий, равных или превышающих
100%.
Следует добавить, что предикат NOT IN используется для
отбора во внешней SQL-инструкции только тех записей, кото­
рые содержат значения, не совпадающие ни с одним из ото­
бранных внутренней инструкцией SELECT.
169
4. Ввод, обработка и вывод данных в фактографических АИС
CoMfyiuMtat.
ФИО
Белолицый Ч.Ч
Грозный ИИ.
Гуманный А А
Иванов И.И.
Петров П.П.
Почтенная О.П.
Сидоров С.С.
Тишайшая ТТ.
П одраэделенне
Руководство
1-й отдел
Отдел кадров
Производственный отдел
Производственный отдел
Секретариат
Бухгалтерия
Секретариат
Оклад
Должность
Директор
Начальник
Начальник
Инженер-конструктор
Инженер-технолог
Секретарь
Экономист
Делопроизводитель
1000Р
100р.
99р.
70р.
60р.
90р.
80р.
28р.
Преяшровааы
ФИО
Оклад
Грозный И.И.
Грозный И.И.
Грозный И.И.
Гуманный АА.
Иванов И.И.
Петров П.П.
Почтенная О.П.
Почтенная О.П.
Сидоров С.С.
Тишайшая Т.Т.
100р.
100р.
100р.
99р.
70р.
БОр.
90р.
90р.
80р.
28р.
Прения
200%
200%
300%
110%
50%
50%
100%
100%
90%
90%
Дата
Формулировка
01.01 98 За сложность и напряженность
01.02.98 За сложность и напряженность
01.03.98 За сложность и напряженность
10.01.98 За гуманизм в работе с кадрами
10.01.98 За творческий подход кделу
10.01.98 За служебное рвение
01.01.98 За сложность и напряженность
01.03.98 За сложность и напряженность
10.01.98 За принципиальность
01.02.98 За сложность и напряженность
Сотрудники из списка премированных
SELECT*
на 100 и более процентов
FROMC отрудники
ИИгдг((Согрудники.ФИО)/и(5ВХгСГП{К1Л1ро»«ние.ФИО
ЮЮМйрптрпави
WHERE Премцлжание.Премвд > - 1 ) } ;
ФИО
Грозный И.И.
Гуманный АА.
Почтенная О.П.
Подразделение Должность
1-й отдел
Отдел кадров
Секретариат
Начальник
Начальник
Секретарь
Оклад
100р.
99р.
90р.
Рис. 4.24. Пример с подчиненным запросом па основе предиката IN
В третьем способе построения подчиненного запроса пре­
дикат EXISTS (с необязательным зарезервированным словом
NOT) используется в логическом выражении для определения
того, должен ли подчиненный запрос возвращать какие-либо
записи. Исходя из этого, каждая запись, отбираемая во внеш­
ней SQL-инструкции, идет в итоговый набор данных только тог­
да, когда при ее условиях отбирается (существует) хотя бы одна
запись по внутренней инструкции SELECT. Конструкция зап­
роса в этом случае может выглядеть следующим образом:
SELECT ...FROM... WHERE ([NOT] Exists (SELECT...));
170
4.3. Обработка данных
В следующем примере на рис. 4.25 по таблицам, представ­
ленным на рис. 4.24, иллюстрируется запрос по отбору запи­
сей сотрудников, премированных хотя бы один раз, т. е. таких,
у которых существует запись в списке премированных.
Прамяротжные сотруднлю.
SELECT'
FROMTtSanotat
WHERE (((Exists (SELECTФИО FROM Протухшие
»'ЯгЛВПрем1рсеание.ФИО-Ра6отники.ФИО))<>Й1(!«));
ФИО
Грозный ИИ.
Гуманный А.А
Иванов И.И.
Петров П.П.
Почтенная О.П.
Сидоров С.С.
Тишайшая ТТ.
Подразделение
1-й отдел
Отдел кадров
Производственный отдел
Производственный отдел
Секретариат
Бухгалтерия
Секретариат
Должность
Начальник
Начальник
Инженер-конструктор
Инженер-технолог
Секретарь
Экономист
Делопроизводитель
Оклад
100р
99 р
70 р
60 р
90р
80Р
28р
Рис. 4.25. Пример с подчиненным запросом па основе предиката
EXISTS
Следует заметить, что использование предиката NOT
EXISTS сформирует список ни разу не премированных сотруд­
ников. В последнем примере можно также увидеть, что альтер­
нативным решением для реализации такого запроса является
использование запроса на внутреннее соединение (INNER
JOIN).
Внутренняя инструкция SELECT'может также использо­
ваться в качестве выражения для вычисляемого поля внешней
SQL-инструкции. Конструкция запроса в этом случае может
выглядеть следующим образом:
SELECT..., (SELECT.. .)Л5ИмяВьгчПоляЯК0Л/... WHERE
. .. ,
Обязательным условием при этом является то, чтобы внут­
ренняя инструкция SELECTдля каждой отбираемой по внеш­
ней SQL-инструкции записи возвращала не более чем одну за­
пись по не более чем одному полю.
Приведем пример подобного запроса, отбирающего все за­
писи по полю «Марка» из таблицы «Товары», с формировани171
4. Ввод, обработка и вывод данных в фактографических ЛИС
ем дополнительного поля «Категория», значения которого воз­
вращаются внутренней инструкцией SELECT'из таблицы «ТипыТоваров» при условии совпадения значения поля «КодТипа»
из таблицы «Товары» для текущей записи внешней SQL-инст­
рукции с аналогичным полем «КодТипа» в записях таблицы «ТипыТоваров»:
SELECT
Товары.Марка, (ЖЖТТигшТоваров.Категория FR ОМ Типы
ЖИЕЛЕСГовары.КодТипа^ипыТоваров.
КодТипа);)
AS Категория
даОМТовары;
Нетрудно заметить, что целью использования в данном при­
мере внутренней инструкции SELECT является формирование
в наборе данных, отбираемых из таблицы на стороне «Мно­
гие», дополнительного поля по значению какого-либо поля из
связанной таблицы на стороне «Один». Исходя из этого, аль­
тернативным способом решения данной задачи может быть ис­
пользование запроса на внутреннее соединение:
5£^СГТовары.Марка,ТипыТоваров.Категория
FROMToeapbi INNER ШМТипыТоваровОМТовары.КодТипа = ТипыТоваров.КодТипа;
В тех случаях, когда отбор данных внешней SQL-инструк­
цией осуществляется из таблицы на стороне «Один», внутрен­
няя инструкция ЗЕЕЕСТможет использоваться для дополни­
тельного поля, формируемого на основе групповой операции
по группам соответствующих связанных записей в таблице на
стороне «Многие». Приведем пример отбора записей по полю
«Категория» из таблицы «ТипыТоваров» с дополнительным
полем «СредняяЦена», формируемым на основе статистичес­
кой функции A VG по полю «Цена» для групп связанных запи­
сей в таблице «Товары»:
SELECT ТипыТоваров.Категория, {SELECT Avg(Toвары.Цена)
172
4.3. Обработка данных
A S СредняяЦена
FROMTovapu
GROUP В Повары.КодТипа
НА Р77^С(ТипыТоваров.КодТипа
= Товары.КодТипа);) AS Сред­
няяЦена
^ОМТипыТоваров;
Опять-таки отметим, что альтернативным решением по
данному примеру может быть использование следующего зап­
роса на внутреннее соединение:
ЗТ^Ь^СГТипыТоваров. Категория, Avg(ToBapbi.LJeHa) AS
СредняяЦена
^7?0МТипыТоваров INNER УО/ЛТовары ОЛТипыТоваров.КодТипа= Товары.КодТипа
GROUP Б УТипыТоваров.Категория;
4.3.2.5. Оптимизация запросов
Как уже отмечалось, запросы, являющиеся предписания­
ми по обработке данных, интерпретируются (или компилиру­
ются, т. е. переводятся) машиной данных СУБД в машинные
коды и выполняются. При этом, однако, декларативный харак­
тер языка SQL («что сделать») приводит к неоднозначности в
определении конкретной схемы и конкретного порядка обра­
ботки данных (наличию нескольких вариантов «как сделать»).
Под оптимизацией запросов понимается такой способ обра­
ботки запросов, когда по начальному представлению запроса
вырабатывается процедурный план его выполнения, наиболее
оптимальный при существующих в базе данных управляющих
структурах". Оптимизация осуществляется в соответствии с
критериями, заложенными в оптимизатор процессора запро­
сов СУБД (см. рис. 2.1).
В общей схеме обработки запроса выделяют:
• лексический и синтаксический разбор запроса;
• логическую оптимизацию;
• семантическую оптимизацию;
" Кузнецов С.Д. Введение в СУ БД.// СУ БД. — № 4. — 1995. — С. 98.
173
4. Ввод, обработка и вывод данных в фактографических ЛИС
• построение процедурных планов выполнения запросов и
выбор оптимального;
• непосредственное выполнение запроса.
Лексический и синтаксический разбор запроса формиру­
ют внутреннее представление запроса, содержащее вместо
имен таблиц, полей и связей базы данных их истинные внут­
ренние идентификаторы и указатели, находящиеся в систем­
ном каталоге базы данных.
Логическая оптимизация запроса может включать различ­
ные эквивалентные преобразования, «улучшающие» представ­
ление запроса. Такие преобразования можно разбить на три
группы:
• преобразования предикатов сравнения;
• преобразования порядка реляционных операций (соеди­
нения, объединения, выборки);
• приведение запросов с подчиненными запросами к зап­
росам на соединение (JOIN).
Преобразования предикатов сравнения, улучшающие в
целях оптимизации представление запроса, в свою очередь,
разделяются на:
• приведение предикатов сравнения к каноническому виду;
• приведение логического условия сравнения к каноничес­
кому виду.
Каноническим называется такой вид предикатов сравнения,
который содержит сравнение простых выражений. Можно
выделить три типа такихсравнений:
•Имя поля Операиия сравнения Константное арифмети­
ческое выражение;
•Имя поля Операиия сравнения Арифметическое выраже­
ние;
• Арифметическое выражение Операция сравнения Кон­
стантное арифметическое выражение.
В первом типе под «Константным арифметическим выраэюением» понимается такое выражение, которое содержит
константы и так называемые объемлющие переменные, в лю­
бой момент имеющие одинаковое значение в отношении всех
174
4.3. Обработка данных
кортежей таблицы (базы данных). Примером приведения пре­
диката сравнения к первому оптимизируемому каноническому
виду является следующее выражение (сотрудники, у которых
оклад в десять раз превышает величину минимального размера
оплаты труда):
S
Исходное выражение
Каноническое представление
Сотрудники Оклгит/10-'МРОТ>0
Сотрудаики.Оклад > 10*МРОТ
где МРОТ—объемлющая переменная, определяющая величи­
ну минимального размера оплаты труда.
На этом примере легко понять суть последующей оптими­
зируемое™ канонических представлений. Правая часть такого
сравнения одинакова для всех просматриваемых записей-кор­
тежей и определяется (вычисляется) один раз для всех. В ис­
ходном выражении помимо собственно операции сравнения не­
обходимо при выборке каждого кортежа производить арифме­
тические вычисления, что существенно увеличивает количество
операций при выполнении соответствующего запроса.
Во втором типе под «.Арифметическим выражением» по­
нимается такое выражение, в котором может присутствовать
имя поля другой таблицы, полностью раскрыты скобки, произ­
ведено приведение и упорядочение членов. Примером приве­
дения предиката сравнения ко второму оптимизируемому ка­
ноническому виду является следующее выражение (сотрудни­
ки, оклад которых с учетом вычетов по болезни больше
величины минимальной оплаты труда):
^Исходное выражение
.Сотруди11Ю1.0кяад-(Сотруд1шки.Ок.ч;1.'1/КолД11см)*
Нетрудоспособное! ь.Д|ш-МРО"П>0
lit.
;
Каноническое представление
Сотрудпики.Оклад>МРОТ/(1- Нетрудоспособность.
Днн/КолДней)
где КолДней — переменная, равная количеству рабочих дней в
данном месяце.
175
4. Ввод, обработка и вывод данных в фактографических АИС
Примером приведения предиката сравнения к третьему оп­
тимизируемому каноническому виду является следующее вы­
ражение (сотрудники, чей оклад после вычета подоходного на­
лога с учетом льгот на иждивенцев в десять раз превышает ве­
личину минимальной оплаты труда):
Исходное выражение
.Оклад-0,12 * (.Омвд-МРОТ*. \ 1>1<Д)-1 О* МРОТХ)
Каноническое представление
.Оклад -Ю,136МРО'Р.ИЖД >П,36МРОТ
где .ИЖД—имя поля той же таблицы «Сотрудники», с данны­
ми по количеству иждивенцев для конкретного сотрудника; на­
звания таблицы «Сотрудники» для краткости опущены.
Приведение логических условий сравнения к каноническо­
му виду преследует ту же цель снижения числа операций при
выполнении запроса на основе поиска общих предикатов и раз­
личных упрощений логических выражений. Для примера мож­
но привести следующее оптимизируемое логическое выраже­
ние (научные работы, которые вышли после защиты их автора­
ми диссертаций, защищенными в 1995 г.):
Исходное выражение
(На>ч_Ра6от1.1.Го;и1^ь1ходи>Согруд1111ки.Го/ч_За11ип'ы) AND
(Сотруд1шкн.Год_Защ1ты= 1995)
Каноническое представление
(№уч_Работы.Год_Выхода>1995) AND
(Сотрудники.Год_Зашиты=1995)
Преобразования порядка реляционных операций также на­
правлены на сокращение возможного количества операций при
обработке запросов. Одними из наиболее частых реляционных
операций в запросах являются операции соединения (JOIN) и
операции ограничения (WHERE restriction). В этом отношении
общим правилом оптимизирующего преобразования запросов
будет замена последовательности операции соединения с пос176
4.3. Обработка данных
ледующими ограничениями на предварительные ограничения
с последующим соединением:
Исходный порядок
(Л JOIN В) WHERErestricliorv-oii-AAND restriction-on-B
M
f i Ti iniiKT ii ii iui fi inui j' in/uqb'V
Ainna
v^«i
n un vAunuhi n/ inUi U
n lnl aAi nl ll ll D
u
C
(A WHERErestrietion-on-A)JOIN (B WHERE restriction-on-B)
где А и В — имена таблиц.
Очевидно, что в большинстве случаев количество опера­
ций по реализации наиболее затратной операции соединения
таблиц будет меньше после предварительно проведенных опе­
раций ограничения по отбору записей из исходных таблиц. Осо­
бенно данное правило актуально при наличии ограничений на
отбор полей при соединении таблиц, связанных отношений
«Один-ко-многим». В этом случае перенос ограничений в ус­
ловиях отбора на таблицу, находящуюся на стороне «многие»
до операции JOIN может существенно ускорить выполнение
запроса.
Одним из проявлений вариантности языка SQL является
эквивалентность выражения некоторых подчиненных и слож­
ных запросов с соединениями. При выполнении запросов с под­
чиненными запросами для каждого кортежа-записи в исходном
наборе внешнего запроса выполняется подчиненный запрос.
Иначе говоря, всякий раз при вычислении предиката внешнего
запроса вычисляется подчиненный запрос. Поэтому резервом
для оптимизации подобных запросов является поиск возмож­
ных путей сокращения количества операций за счет эквивален­
тных преобразований, приводящих к совмещению операций
формирования набора кортежей-записей внешнего и внутрен­
него (подчиненного) запроса.
Каноническим представлением запроса по данным из п
таблиц называется запрос, содержащий п-1 предикат соедине­
ния и не содержащий предикатов с подчиненными запросами.
Если вернуться к примеру подчиненного запроса с предикатом
177
4. Ввод, обработка и вывод данных в фактографических ЛИС
In на рис. 4.24, то его эквивалентным оптимизируемым выра­
жением будет следующее:
lkxiviuou нрсимап.'к-нис
(CoipvuiiiKii 11 J списка премированных на 100 и oo.u-с процентов)
MIKT*
IKUMlorpvnisini
:
\VlUJ<I .(((oip>.uinniil>IK)| 1'цМ"1 Ijf'[ ИгчлыгчьлшсФИи I'WAl I l | \ M.'l'-iz.i'iiii;
v,iи ]<i.iijtv.ip. I...IHI.- iip-'.nii •- ;i
Оптимизированное представление
SELECT Сотрудники.*
FROM Сотрудники, Премирование
WHERE (Сотрудиню1.ФИО=Премирование.ФИО) AND (Премирова­
ние. Премия >= 1);
Логическая оптимизация запросов не учитывает семанти­
ки конкретной базы данных, проявляемой в ограничениях це­
лостности на значения полей таблиц и связей между ними. В
результате ядро СУБД всякий раз при выполнении логически
оптимизированного запроса еще и проверяет ограничения це­
лостности. Часть записей-кортежей, сформированных по резуль­
татам операций запроса, при этом может быть отвергнута имен­
но по ограничениям целостности. Семантическая оптимиза­
ция запросов основывается на слиянии внутреннего
представления запроса и ограничений целостности конкрет­
ной базы данных до непосредственного выполнения запроса и
призвана за счет совместной проверки ограничений целостно­
сти и условий запроса сократить количество выполняемых опе­
раций.
Для примера предположим, что в таблице «Сотрудники»
по полю «Оклад» наложено ограничение целостности, заклю­
чающееся в том, что оклад не может быть меньшим величины
минимального размера оплаты труда МРОТ, равного 84 руб.
Предположим также, что нужно сформировать список сотруд­
ников, чей оклад меньше 50 руб. Соответствующий запрос име­
ет вид:
178
4.3. Обработка данных
(Сотрудники с окладом, меньшим 50 |>\б.)
SELECT*
•FROM Сотрудники
WHERE (Ciyipy:uiiiKii.OK.4in<50 p.);
Без семантической оптимизации данный запрос будет вы­
полняться следующим образом — будет последовательно из­
влекаться каждая запись в таблице «Сотрудники» и проверять­
ся на выполнение условия отбора. Результатом выполнения зап­
роса будет пустое множество записей. С учетом внутренней
семантической оптимизации в ответ на запрос без последова­
тельного перебора всех записей сразу будет выдано пустое мно­
жество записей.
После логической и семантической оптимизации строится
процедурный план выполнения запросов. Процедурным пла­
ном запроса называется детализированный порядок выполне­
ния операций доступа к базе данных физического уровня. Уже
упоминавшаяся многовариантность способов выполнения SQLинструкций соответственно приводит к набору альтернативных
процедурных планов выполнения запросов, среди которых оп­
тимизатор запросов ядра СУБД должен выбрать оптимальный
в соответствии с определенными критериями.
Общепринятым критерием оптимальности процедурных
планов является минимизация стоимости выполнения запро­
сов. При этом под стоимостью выполнения запроса понимают­
ся вычислительные ресурсы (ресурсы процессора и ресурсы
дисковой и оперативной памяти), необходимые для выполне­
ния запросов.
Для иллюстрации вариантности процедурных планов рас­
смотрим запрос по выборке записей из таблицы «Сотрудники»
по возрасту не старше 30 лет и с должностным окладом более
100 руб.:
(Cuipv.uniKii не сшрпн: 30 лег и с окладом не менее lOOpvit.)
«F.L.KT*
Д-КОМ 1.\Ч|Г.-.].1!М1
\VlHJ<F:it\M|\..jiiini.,li::i_IW.4 '"."I'M.'^-.-j Л М )
(Coip;..:!:i!iII.OUI.'..'.""!""!- >;
179
4. Ввод, обработка и вывод данных в фактографических ЛИС
Если по полям «Дата_Рожд» и «Оклад» таблицы «Сотруд­
ники» существуют индексы, то возможны три варианта плана
выполнения запроса:
1) последовательно без учета индексации просматривать
(сканировать) записи таблицы «Сотрудники» и отбирать запи­
си при выполнении требуемых условий;
2) сканировать индекс поля «Дата_Рожд» с условием вы­
борки «>= #01/01/68#», выбирать соответствующие записи из
таблицы «Сотрудники» и среди них отбирать те, которые удов­
летворяют условию по полю «Оклад»;
3) сканировать индекс поля «Оклад» с условием выборки
«>100 руб.», выбирать соответствующие записи из таблицы
«Сотрудники» и среди них отбирать те, которые удовлетворя­
ют условию по полю «Дата_Рожд».
Стоимость каждого варианта в конечном счете определя­
ется главным образом количеством пересылаемых страниц (бло­
ков) из файла данных в буферы оперативной памяти ввиду того,
что, как уже отмечалось, время операций доступа к конкрет­
ным записям в оперативной памяти на несколько порядков мень­
ше времени процессов обмена между внешней и оперативной
памятью, и тем самым основные затраты приходятся именно
на эту операцию.
Если количество записей в таблице «Сотрудники» невели­
ко и все они умещаются в одной странице (в одном блоке) фай­
ла базы данных, то наименее затратным будет первый вариант.
Если записи таблицы «Сотрудники» распределены по множе­
ству страниц, менее затратными являются 2-й и 3-й варианты.
При этом различия между ними будут определяться так назы­
ваемой селективностью значений по полям «Дата_Рожд» и
«Оклад».
Селективность определяется главным образом характером
статистического распределения значений по соответствующим
полям. Исходя из мощности (количества записей), вида (равно­
мерное, нормальное) и параметров распределения (среднее зна­
чение, максимальное и минимальное значение) можно полу­
чить приблизительные оценки количества страниц (блоков)
180
4.3. Обработка данных
файла базы данных, пересылка которых потребуется в опера­
тивную память в ходе выполнения запроса. Так, если по при­
веденному примеру имеются некоторые априорные или апос­
териорные данные о том, что распределение значений по воз­
расту сотрудников является нормальным со средним значением
27 лет, а распределение величин должностных окладов являет­
ся равномерным в интервале от 50 руб. до 500 руб., то, очевид­
но, наименее затратным будет 2-й вариант процедурного плана
выполнения запроса, так как потребует меньшего количества
пересылок страниц файла базы данных.
Стратегии оптимизатора по оценкам стоимости вы­
полнения запросов могут быть упрощенными (когда статисти­
ческие распределения любых полей являются по умолчанию
равномерными) либо более сложными. В сложных стратегиях
при ведении базы данных (добавление, удаление, изменение за­
писей) осуществляется мониторинг за параметрами апостери­
орных статистических распределений значений по полям базы
данных (отслеживается минимальное, максимальное, среднее
значение и другие параметры). В этом случае оценки стоимос­
ти процедурных планов выполнения запросов являются более
точными, и тем самым повышается эффективность оптимиза­
ции запросов и в целом эффективность обработки данных.
4.3.3. Процедуры, правила (триггеры) и события
в базах данных
Рассмотренные выше способы обработки данных через зап­
росы, фильтрацию, поиски сортировку данных реализуют до­
статочно простые информационные потребности пользовате­
лей АИС либо являются лишь отдельными элементами в пос­
ледовательности взаимоувязанных операций при решении
сложных информационных задач в предметной области АИС.
План последовательности таких операций, отражающий опре­
деленный алгоритм реализации информационных задач, может
быть достаточно сложным, и каждый раз при возникновении
соответствующей информационной потребности должен созда-
181
4. Ввод, обработка и вывод данных в фактографических АИС
ваться (воспроизводиться) и реализовываться пользователем за­
ново.
К примеру, одной из задач АИС по делопроизводству мо­
гут быть функции организации, а также контроля за прохожде­
нием и отработкой входящих документов. Реализация этой фун­
кции может осуществляться по следующему алгоритму:
• при появлении новых записей в таблице «документы» с
категорией «входящие» сформировать набор записей входящих
документов за определенный период времени, скажем за рабо­
чий день;
• известить пользователей АИС, имеющих полномочия на
принятие резолюций по входящим документам (руководители
организации или их секретариаты), и предоставить им доступ
к сформированному набору данных;
• получить результаты резолюций на входящих докумен­
тах, известить и предоставить соответствующие документы
пользователям-исполнителям, включить контроль на исполне­
ние документов;
• получить от пользователей-исполнителей данные по ис­
полнению документа и снять соответствующие документы с
контроля либо известить пользователей, наложивших соответ­
ствующие резолюции, о не исполнении к установленному сро­
ку их резолюций.
Реализация таких сложных алгоритмов обработки данных
в ранних СУБД осуществлялась через создание и постоянное
выполнение в АИС прикладных программ на языках высокого
уровня (Фортран, Кобол, С), которые постоянно опрашивали
базу данных на предмет обиаруэ/сения соответствующих ситу
аций и реализовывали сложные алгоритмы обработки. Как и в
случае с простыми запросами до появления языков баз данных,
такой подход требует квалифицированных посредников-про­
граммистов между пользователем и базой данных и, кроме того,
обусловливает значительные вычислительные затраты на фун­
кционирование АИС.
182
4.3. Обработка данных
Разработчиками известной СУБД SyBase был предложен
другой оригинальный подход, который можно проиллюстри­
ровать следующей схемой:
Функционирование базы данных согласно приведенной схе­
ме осуществляется следующим образом:
Правило > - •
Рис. 4.26. Принцип механизма событий, правил и процедур в ба­
зах данных
1. В базе данных определяются так называемые события
(database events), связанные с изменениями данных — добав­
ление новой записи (ей) в определенную таблицу, изменение
записи(ей), удаление записи (ей)18. Для реализации механизма
событий в языке SQL введены специальные конструкции (Create
DBEvent «Имя» — создать событие, Exec SQL Get DBEvent —
получить событие и т. д.);
2. Для каждого события в базе данных определяются пра­
вила (triggers) no проверке определенных условий состояния
данных. Соответственно в SQL введены конструкции для опи­
сания правил (Create Ru/e «Имя» — создать правило);
3. В зависимости от результатов проверки правил в базе
данных запускаются на выполнение предварительно определен­
ные процедуры. Процедуры представляют собой последова­
тельности команд по обработке данных, имеющие отдельное
смысловое значение, и могут реализовываться на упрощенном
макроязыке (последовательность команд запуска запросов или
выполнения других действий, например по открытию-закры­
тию форм, таблиц и т. п.) или на языке 4GL, встроенном в СУБД.
'* Событиями могут быть также и производные от перечисленных событий, на­
пример, событие, заключающееся в том, что какая-либо транзакция (процесс, пользо­
ватель) намеревается изменить запись (но еще не изменила)— так называемое собы­
тие «До обновления». Аналогично, могут быть определены события «После обновле­
ния», «До удаления», «После удаления» и т. п.
183
4. Ввод, обработка н вывод данных в фактографических АИС
В последнем случае процедуры представляют собой подпрог­
раммы для осуществления сложных операций обработки и ди­
алога с пользователем. В язык SQL также введены специаль­
ные конструкции описания процедур (Create Procedure «Имя»—
создать процедуру).
Суть идеи механизма событий, правил и процедур заклю­
чается в том, что они после определения хранятся(\УУ9 вмес­
те с данными. Соответствующие конструкции введены в стан­
дарт SQL — SQL2. Ядро СУБД при любом изменении состоя­
ния базы данных проверяет, не произошли ли ранее
«поставленные на учет» события, и, если они произошли, обес­
печивает проверку соответствующих правил и запуск соответ­
ствующих процедур обработки.
В отличие от традиционного подхода, когда специальные
прикладные программы постоянно «опрашивают» базу данных
для обнаружения ситуаций, требующих обработки, «событий­
ная» техника более экономична и естественна в технологичес­
ком плане. Кроме того, SQL-инструкции, реализующие техни­
ку «событий-правил-процедур» в некоторых СУБД с развитым
интерфейсом, могут быть созданы, так же как и сложные зап­
росы, через специальные конструкторы и мастера, что дает воз­
можность их освоения и использования пользователями-непрог­
раммистами.
В настоящее время механизм событий, правил и процедур
широко распространен и в той или иной мере реализован прак­
тически в любой современной СУБД.
4.3.4. Особенности обработки данных в СУБД
с сетевой моделью организации данных
Основные принципы и способы обработки данных, рас­
смотренные для реляционных СУБД, также характерны и для
немногих сохранившихся, и продолжающих развиваться СУБД
с сетевой моделью организации данных.
То есть зарегистрировать для автоматической обработки в БД.
184
4.3. Обработка данных
В сетевых СУБД подобным же образом, как и в реляцион­
ных СУБД, реализуются операции поиска, фильтрации и сор­
тировки данных. Распространенность и популярность языка
SQL реляционных СУБД привели к тому, что подобные языки
для реализации запросов к базам данных были разработаны или
просто «внедрены» в сетевые СУБД. При этом так же, как и
реляционные СУБД, современные сетевые СУБД предоставля­
ют пользователю и специальные диалогово-наглядные средства
формирования запросов. Также в сетевые СУБД встраиваются
специальные макроязыки для формирования сложных после­
довательностей взаимосвязанных запросов (аналог процедур),
хранящихся вместе с базой данных.
Вместе с тем обработка данных в СУБД с сетевой моделью
организации данных, как уже отмечалось, характеризуется уже
упоминавшейся принципиальной особенностью, которой нет в
реляционных СУБД. Это непосредственная «навигация» по свя­
занным данным (по связанным записям) в разных информаци­
онных объектах (аналоги таблиц в реляционных СУБД). Как
уже отмечалось, возможность непосредственной навигации
обусловлена тем, что в сетевых СУБД ссылки-связи между за­
писями различного типа (различных таблиц) задаются не через
внешние ключи, а через специальные указатели на физические
адреса расположения связанных записей.
Просматривая, к примеру, в сетевой СУБД записи объекта
«Лицо» и выбрав запись «Иванов» (т. е. поместив табличный
курсор на соответствующую запись), можно через активизацию
поля «Работает» вызвать на экран поля связанной записи в объекте
«Организация» и просмотреть соответствующие данные, а да­
лее, при необходимости, через активизацию поля «Адрес» в за­
писи по объекту «Организация» вызвать и просмотреть данные
по дислокации места работы сотрудника «Иванов» и т. д. (см.
рис. 4.27).
В реляционных СУБД для реализации такого просмотра по­
надобилось бы создать и выполнить запрос на выборку данных
из трех таблиц на основе внутреннего (INNER JOIN) соединения
при условии отбора соответствующей фамилии сотрудника:
185
4. Ввод, обработка и вывод данных в фактографических АИС
Лицо (ЛЩ
Фамилия
1
4
Имя
Отчество
Демидов
Демьян
Демьянович
Иванов
Иван
Ива
Петров
Сидоров
Петр
Сидор
Петрович
Сидорович
Год
Работает
рождения
1900
1 РГ-15
1958
РГ-^25
1970
N
п х х и ц к я (РГ-15)
~
"ДГННДО1СККН
Наименование
Руководитель Г
Профиль
Обозначения:
а
"J - ячейки-ссыпки
~**жж, >,»*,.*.,.>
Адрес (АД-7)
Город
Улица Р у д а м
Дом 71
Телефон
Адрес!
„Мг!
Металлургия
22 3311
АД-7
активизированные
Рис. 4.27. Навигация по связанным записям в сетевых СУБД
SELECTЛицо.*, Организация.*, Адрес*
FROM(nmoINNERJOIN(MpecINNERJOINOpream3a.um
ON Адрес.№№ = Организация. Адрес) ON Лицо.Работает=Организация.Наименование)
И///£7?£'(((Лицо.Фамилия)=»Иванов»));
При этом, если пользователю необходимо посмотреть те
же данные, но для другого сотрудника, то необходимо изме­
нить условия отбора по фамилии и заново выполнить запрос. В
сетевых же СУБД для этого достаточно лишь «вернуться» в ис­
ходный объект «Лицо», переместить курсор на другую запись
и повторить навигацию.
Данный пример показывает, что навигационные возможно­
сти сетевых СУБД позволяют пользователю реализовывать свои
информационные потребности («беседовать» с базой данных)
более естественным интерактивным способом, шаг за шагом
уточняя свои потребности, и тем самым более глубоко и нагляд­
но анализировать (изучать) данные.
Навигационный подход к анализу и просмотру данных, ес­
тественный уже для ранних сетевых СУБД, впоследствии (в конце
80-х годов) был реализован в технике гипертекста, и в созданной
на его основе новой разновидности документальных информа­
ционных систем—гипертекстовых информационно-поисковых
систем.
186
4.3. Обработка данных
Вместе с тем навигация по связанным данным порождает и
ряд своих специфических проблем, таких как «потеря ориента­
ции» и трудности с визуализацией цепочек «пройденных» ин­
формационных объектов (записей). Схемы баз данных, отра­
жающих сложные предметные области, могут насчитывать де­
сятки различных информационных объектов и еще большее
количество связей между ними. В результате такие базы данных
представляют сложное многомерное информационное простран­
ство из множества разнотипных наборов записей, пронизанных
и опутанных порой несметным количеством связей. «Путеше­
ствуя» в таком клубке, легко «сбиться с пути», потерять общую
картину состояния данных20. При этом следует иметь в виду, что
особенности человеческого мышления таковы, что человек спо­
собен удержать в представлении с полным отслеживанием всех
связей и нюансов не более 3 - 4 сложных объектов21.
Иногда объектом анализа являются не конкретные реквизи­
ты связанных записей, а сама схема связанных записей, т. е. визу­
ализированная цепочка имен связанных от исходного информа­
ционного объекта записей. Использование множественного
типа значений в полях информационных объектов сетевых СУБД
позволяет реализовывать все типы связей, что приводит к «пучковости» исходящих или входящих связей типа «один-ко-многим», «многие-ко-многим». Визуализация таких цепочек надвумерном экране компьютера может представлять существенные
графические сложности.
На рис. 4.28 для примера приведен вариант изображения це­
почки связанных записей с корневой записью «Иванов» объекта
«Лицо». Такая визуализация позволяет быстро составить общее
представление о полученном образовании, трудовой деятельно­
сти и проживании данного лица. При этом длина цепочки огра­
ничена тремя последовательно связанными записями, i ю, как вид­
но из рисунка, и в этом, в общем-то простом для многих жизнен31
То есть оказаться в ситуации, которая образно выражается известной поговор­
кой «За деревьями леса не видно».
21
Этим, кстати, еще из древности определяется троичная система организации
структуры воинских подразделений для эффективного управления ситуацией па поле
боя.
187
4. Ввод, обработка и вывод данных в фактографических ЛИС
Обозначения:
ЛЦ-лицо;
ОБР- образ ование;
Р Г - оргатв ахщя;
Т Д - труд-деятепьность;
П Ж - проживание;
АДР-адрес.
Рис. 4.28. Пример визуализации цепочки связанных записей
ных ситуаций случае, достаточно сложно отобразить общую схе­
му связей, не «запутывая» ее восприятие.
Навигация по связанным записям в реляционных СУБД от­
крывает новые возможности анализа данных на основе иных,
нежели реляционные, семантических принципах. В частности,
становится возможным реализация процедур поиска и постро­
ения смысловых окрестностей какой-либо записи по ее связям
в базе данных, применение различных процедур информаци­
онного анализа на основе алгоритмов поиска на графах и т. п.
Одним из направлений развития современной теории и тех­
ники СУБД является линия объектно-ориентированных СУБД,
которые на витке наработанных в конце 70-х и в 80-х годах ре­
шений по реляционным СУБД, обеспечивают новые возмож­
ности по обработке данных на основе методов навигации и ви­
зуализации, впервые представленных в сетевых СУБД.
188
4.4. Вывод данных
4.4. Вывод данных
Результаты обработки данных должны использоваться в том
порядке и в тех формах, которые приняты в предметной области
АИС. Решение этой задачи обеспечивается комплексом функций
СУБД, определяемым термином «вывод данных».
В более узком плане под выводом данных понимается ком­
плекс функций СУБД по предоставлению пользователю резуль­
татов обработки, хранения и накопления данных в наиболее
удобном для восприятия виде, документирования выводимой
информации, а также по передаче данных в другие (внешние)
системы и форматы.
Вывод данных осуществляется:
• через выходные (выводные) формы;
• через «отчеты»;
• через экспорт данных.
Выходные формы по смыслу аналогичны входным формам,
т. е. формам для ввода, просмотра и редактирования данных. При
этом, как правило, базовым источником данных для форм явля­
ются не таблицы данных, а результаты выполнения запросов. Та­
ким образом, главной функцией выводных форм является пре­
доставление пользователю результатов выполнения запросов в
наиболее удобном и привычном «бланковом» виде.
В отличие от входных, особенностью выводных форм как
экранных объектов является то, что помимо надписей и полей с
данными в них присутствуют так называемые элементы управ­
ления—кнопки, переключатели, поля-списки, которые исполь­
зуются для задания пользователем тех или иных параметров вы­
полнения запросов. В развитых СУБД запросы с парешетреши
реализуются через технику форм, в которых пользователь через
элементы управления определяет конкретные условия отбора. На
рис. 4.29 приведен пример формы для отображения запроса, фор­
мирующего список командировок сотрудников, в зависимости
от выбранного пользователем через переключатели года и в со­
ответствующем списке месяца.
Отчеты решают задачу документирования выводимых
данных, т. е. представления результатов обработки и накопле189
4. Ввод, обработка и вывод данных в фактографических ЛИС
(•) 1997г.
(О) 1998г.
Командировки сотрудников
Январь
Февраль
Март
Апрель
Май
Июнь
Июль
Август
Сентябрь
Октябрь
Ноябрь
Декабрь
Фамилия
Иванов И.И.
Петров П.П.
Егоров Е.Е.
Кузьмин К.К.
Пункт
кааиШгдироеанхл Служе( нов за даты
Самара
Саратов
Пенза
Волгоград
Обмен опытом
Конференция
Инспекция
Поставки продукции
Дата
5.03.97
12.03.97
15.03.97
27.03.97
Рис. 4.29. Пример формы для реализации и отображения резуль­
татов запроса с параметрами
ния данных в форме текстового документа, который можно рас­
печатать или приобщить к другому текстовому документу. Отче­
ты во многом аналогичны выводным формам и, по сути, пред­
ставляют печатные формы для результатов накопления и обра­
ботки данных. Отличительной особенностью отчетов является
то, что они строятся по правилам текстовых документов, т. е.
отображаемые данные разделяются на страницы и разделы с со­
ответствующими элементами (поля, колонтитулы) и параметра­
ми форматирования (шрифт, отступы, выравнивание).
Так же как и в формы, в отчеты могут помещаться эле-меиты управления, среди которых особое значение имеют вычис­
ляемые поля, т. е. поля, содержимое которых формируется на
основе вычисления определенных статистических функций по
помещаемым в отчет данным. Для примера на рис. 4.30 приве­
ден отчет для вывода данных по командировкам сотрудников.
Поля с надписями «ИТОГО» являются как раз вычисляемыми
элементами через функцию «Сумма» по данным в поле «Аванс».
Помимо полей с данными и вычисляемых полей в отчеты
могут внедряться различные графические объекты для форми­
рования логотипов и других поясняющих рисунков и, кроме
190
4.4. Вывод данных
того, такие средства наглядного отображения табличных дан­
ных, как диаграммы. На рис. 4.30 во втором разделе отчета при­
ведена диаграмма, отображающая распределение итогового
аванса на командировочные расходы сотрудников известной
конторы по месяцам первого квартала.
Л д а Г ' о А О "РОГА м КОПЫТА"
Mm?"
Командировки сотрудников за первый
квартал
Фамилия
Город
Аванс
Январь
Бендер
Козпевич
Черноморск
Гряжск
2 000]
201
Февраль
Бендер
Козлевич
Паников ский
Март
Бендер
Черноморск
Черноморск
Н
ИТОГО
Гряжск
ИТОГО
41
Месяц
ОАО "РОГ Ах КОПЫТА"
Аванс на командировочные расходы
сотрудников ча п ф в ь ш к в а р т а л
\2020f.
7 000]
25]
1]
l7»2(p.
1000
,.4
итого \itmi.
Р7
17
Рис. 4.30. Пример отчета
Экспорт данных решает технологические задачи резерви­
рования, архивирования данных или передачи накопленных в
АИС данных во внешние системы и форматы и реализуется
через уже рассмотренные запросы на добавление данных и зап­
росы на создание таблицы. Таблицы-приемники в этом случае
находятся во внешних файлах баз данных, созданных под уп­
равлением СУБД того же типа или СУБД, поддерживающей
протокол ODBC.
Некоторые СУБД обеспечивают экспорт данных в тек­
стовые файлы. При этом табличные данные в строках тексто­
вых файлов размещаются последовательно по строкам и ячей­
кам экспортируемой таблицы, т. е. слева направо, сверху вниз,
отделяясь друг от друга специальными разделителями, напри­
мер символом « \ »22. Такой порядок размещения табличных
" Слэш налево.
191
4. Ввод, обработка и вывод данных в фактографических ЛИС
данных в текстовых файлах получил название «унифицирован­
ного формата обмена данными» (УФОД). Соответственно, как
уже отмечалось при рассмотрении вопроса по вводу данных,
многие СУБД имеют специальные режимы не только экспорта,
но и импорта данных их текстовых файлов, построенных и.
основе УФОД-формата.
Вопросы и упражнения
1.
2.
Кем и в каких целях применяется язык SQL в реляционных СУБД?
Какова структура и каковы функции структурных элементов
SQL-инструкций?
3. Что включают и в каких целях используются «включающие» язы­
ки?
4. Поясните процесс «открытия» таблиц и форм. Что происходит при
этом с данными?
5. В чем преимущества и iгедостаткипредставления и отображения
данных в табличном виде и в виде экранных форм?
6. В текстовых и табличных редакторах изменения данных (коррек­
тировка, добавление, удаление) фиксируются во внешней памяти
в момент закрытия файлов (если не было явной предварительной
команды «Сохранить»). Каков порядок фиксации изменений дан­
ных в таблицах СУБД?
7. В чем сходства и различия фильтрации данных и запросов на вы­
борку данных?
8. Постройте запрос по формированию списка студентов 1980 года
рождения с реквизитами — ФИО, Уч. Группа, Дата рождения,
из таблицы «Студенты» (№№, ФИО, Уч. Группа, Дата рождения,
Год поступления). К какому типу относится данный запрос?
9. Постройте запрос по формированию списка сотрудников руково­
дящего звена не старше 35 лет, с окладом свыше 1000 р. и с пол­
ным набором реквизитов из таблицы «Сотрудники» {Таб. №, ФИО,
Должность — Начальник отдела, Зам. начальника отдела, На­
чальник сектора, Ведущий инженер, Старший инженер, Инже­
нер, Техник, Оклад, Дата Рождения). К какому типу относится
данный запрос?
10. Интерпретируйте на естественном языке следующую SQL-инст­
рукцию:
192
Вопросы и упражнения
Ж/^СТСотрудники.Таб. —№, Сотрудники.Фамилия, Сотрудники.Имя
FROM Сотрудники
WHERE ((Сотрудники.Долж!юсть=«Инже1 iep» Or Сотрудни­
ки. — Должность=«Методист») AND (Сотрудиики.Оклад>
ЮОр.));
11. Постройте запросы по формированию списка организационных
форм, списка профилей деятельности и списка сочетаний орга­
низационной формы с профилем деятельности организаций из таб­
лицы «Организации» — Код, Код ОКПО, Наименование, Услов­
ное наименование, Профиль деятельности (Производственный,
Коммерческий, Посреднический, Научно-производственный),
Организационная форма (ЗАО, ОАО, и т. д.).
12. Интерпретируйте на естественном языке следующие SQL-инст­
рукции:
SELECT Квартиры.№, Здания.№_Дома, Здания. Улица
FROM Квартиры INNER JOIN Здания ON Квартиры.№№_Здания - Здапия.№№
WHERE (( (Квартиры.КолКомнат=1) Or (Квартиры. КолКомпат-4)) AND ((Квартиры.Этаж >=4) AND (Квартиры.Этаж<=^6)));
SELECT Сотрудники. Таб_№, Сотрудники. ФИО, Подразде­
ления. Наименование, Sum (Нетрудоспособность.ДатаОкончания Нетрудоспособиость.ДатаНачала) AS06щКолНетр
FROM (Сотрудники INNER JOIN Подразделения ON Сотруд­
ники. Лг°_ Подразделения = Подразделения.№№) INNER
JOIN Нетрудоспособность ON Нетрудоспособность.№_Сотрудника = Сотрудники. Таб_№)
WHERE (Нетрудоспособность.ДатаНачала>=#01.01.1999#)
AND ( Нетрудоспособность.ДатаНачала<-#31.12.1999#)
AND способность.ДатаОкончания<-#31.12.1999#)
GROUP BY Нетрудоспособность.№_Сотрудника;
13. Постройте запрос по формированию списка категорий фильмов
видеотеки с группировкой по кинокомпаниям, и вышедших в 90х годах из таблицы «Фильмы»—№№, Название, Режиссер, Год
выхода, Кинокомпания, Категория (Комедия, Психологическая
драма, Боевик, Триллер, Детектив, Мистика), Ипв.№№ видеокас­
сеты.
193
4. Ввод, обработка и вывод данных в фактографических ЛИС
14. В базе данных с таблицами «Подразделения» —№№, Наимено­
вание, Руководитель; «Сотрудники» — Таб№, ФИО, №№ под­
разделения, Долэ/спость; «Материальные средства» — Инв.№,
Наименование, Тин, №№ Подразделения, Таб № мат. ответ­
ственного сотрудника, Начальная стоимость, % амортизации.
Постройте запрос по формированию списка материально ответ­
ственных сотрудников со следующим набором реквизитов — Таб.
№, ФИО, Наименование подразделения, Должность.
15. В базе данных с таблицами из предыдущего примера постройте
запрос по формированию перечня всех подразделений с данны­
ми по их средствам вычислительной техники при следующем паборе реквизитов—№№ подразделения, Наименование, Руково­
дитель, Инв.№ мат. средства, Наименование мат. средства,
Тип мат. средства, ФИО мат. ответственного сотрудника.
16. В базе данных с таблицами «Лицо» — №№, ФИО, Дата рожде­
ния. Место рождения, Паспортные данные; «Владение» — Код
владения, №№Лица, №№ имущества, Вид (Единоличное, Совме­
стное), Доля, Дата приобретения, Данные документа, Дата окон­
чания владения; «Имущество» — №№ имущества, Категория
(Недвижимость, Автотранспорт, Акции, Ювелирные изделия, Ху­
дожественные произведения, Бытовая техника, Земельный надел),
Описание, Стоимость, постройте запрос по формированию спис­
ка лиц (ФИО, Дата рождения, Месторождения, Паспортные
данные), имеющих в единоличном владении недвижимость! ш сум­
му свыше 10 000 минимальных размеров оплаты труда.
17. В базе данных с таблицами из предьщущего примера постройте
запросы по формированию списка лиц (№№, ФИО, Дата рожде­
ния, Место рождения, Паспортные данные), имеющих в совме­
стном владении земельные наделы, и дополнительными реквизи­
тами —Доля и Стоимость доли, а также запрос по формирова1 шю
сведений о самой высокой стоимости имущества по всем возмож­
ным категориям.
18. Постройте запрос по формированию списка всех запасных час­
тей, относящихся к ходовой части со всеми реквизитами из таб­
лицы «Запчасти» — Код, Код автомобиля, Наименование, Тип
(Двигатель, Кузов, Ходовая часть, Электрооборудование, Аксес­
суары), Марка, Количество на складе, Цена единицы, Поставки
прекращены, с дополнительным реквизитом Общая стоимость.
19. Постройте запрос по формирова] шю i тбора записей со всеми рек­
визитами из таблицы «Преподаватели»—№№, ФИО, Уч. сте­
лы
Вопросы и упражнения
20.
21.
22.
23.
пень, Уч. звание, Пед. стаж, Специализация, для которых име­
ются вакансии по прикладной математике в таблице «Вакансии»
со следующим набором реквизитов —№№, Вуз, Долэюносп ;ь. Треб,
пед. стаж, Специализация. К какому типу относится данный зап­
рос?
Постройте запрос для формирования i шбора записей со всеми рек­
визитами по оборудованию из таблицы «Оборудование»—Зав.№,
Производитель, Марка, Сырье, Производительность, которое
может применяться на всех предприятиях, использующих в каче­
стве сырья очищенное зерно, данные по которым приведены в
таблице «Предприятие» — Наименование, Треб, производитель­
ность, Используемое шрье. К какому типу относится данный зап­
рос?
Постройте запрос по формированию списка сотрудников с пол­
ным набором реквизитов из таблицы «Сотрудники» — Таб_№,
ФИО, Должность, Подразделение, Телефон, которые входят по
таблице «Штатное расписание» — Наименование должности, Ка­
тегория, Оклад, в пятерку наиболее оплачиваемых должностей.
К какому типу относится данный запрос?
Интерпретируйте на естественном языке следующие SQL-инст­
рукции:
SELECT Автомобили. *
FROM Автомобили
Н/Я£,Л£((Автомобнли.Код)
= Any (5££££ТЗапчасти.Код_автомобиля
FROM ((Запчасти INNER JOIN Поставки ON Зап­
части. Код = Поставки.Кол_зппчлст) INNER JOIN
Поставщики ОуУПоставки.Код_поставщика = По­
ставщики.Код)
^W£'Л£,(Пccгaвщ^жи.Гopoд=<<Capaтoв»)AND(Зaпчасти.Тип=«Стеклооборудование»););
SELECT Клиенты. *
FROM Клиенты INNER JOIN Счета ON Клиенты.Код = Счета.Код Клиента
WHERE (Счетл.Остлгок>=А11(8ЕЬЕСТТовары.Сго11мостъ
FROM Товары
И/Я£Л£'Товары.Категория=
«Бытовая техника»););
Постройте запрос по переименованию производителя автомоби­
лей завода «ИжМаш» в «ИжУ\УМаш» в таблице «Автомобили»
195
4. Ввод, обработка и вывод данных в фактографических ЛИС
(Код, Производитель, Модель, ГодНачалаПроизводства, ГодПрекр
Производства, Фото.
24. Оптимизируйте следующие условия отбора записей по таблицам
«Имущество» и «Сотрудники»:
когда налог превышает тысячу единиц минимального размера
оплаты труда (МРОТ)—
Имущество. С/шш/осА7?ь*СтавкаНалога — 1000*МРОТ > О
когда десятикратная стоимость с учетом амортизации больше ок­
лада сотрудников —
\^)* {Имущество. Стоимость — Имущество. Стоимость*
Имущество.аАМ.шос&) — Сотрудники. Оклад > О
25. Оптимизируйте следующее условие по отбору записей по табли­
цам «Сотрудники» и «Премирование»:
сотрудники, премированные на величину более должностного
оклада, равного 1000 р. —
{Премирование.Сумма > Сотрудники. Оклад) AND {Со­
трудники. Оклад = 1000р.)
26. Согласно одному из проектов закона о декларировании расходов
все операции по оплате приобретений или услуг гражданами, сто­
имостью свыше 1000 МРОТ, должны осуществляться только без­
наличным расчетом через банки, а данные по таким операциям
автоматически сообщаться в налоговые органы. В базе данных
АИС финансово-кредитной организации имеется и ведется таб­
лица «Проводки» (№№, Дата/Время, Сумма, МСчета, Приход/
расход). Предложите на основе технологии «События-ПравилаПроцедуры» вариант построения схемы обработки данных при
принятии и вступлении в силу подобного закона.
196
5. Распределенные
информационные системы
В некомпыотерных информационных технологиях инфор­
мационные ресурсы организаций и предприятий, с одной сто­
роны, разделены и распределены логически (по различным под­
разделениям, службам) и физически (находятся в различных
хранилищах, картотеках, помещениях). С другой стороны, ин­
формационные ресурсы создаются и используются своей опре­
деленной частью или в целом коллективно или индивидуаль­
но. Иначе говоря, с одними и теми же документами, картотека­
ми и прочими информационными массивами могут в рамках
общего проекта или в своей части одновременно работать не­
сколько сотрудников и подразделений.
Первоначальные подходы к созданию баз данных АИС зак­
лючались в сосредоточении данных логически и физически в од­
ном месте—на одной вычислительной установке. Однако такая
организация информационных ресурсов чаще всего является не
совсем естественной с точки зрения традиционных («бумажных»)
информационных технологий конкретного предприятия (орга­
низационной структуры) и при внедрении АИС происходит «лом­
ка» привычных информационных потоков и структур1. Все ин­
формационные ресурсы предприятия, организации сосредотаочиваются централизованно в одном месте, что требует
определенных технологических, кадровых и материальных зат­
рат и может порождать ряд новых проблем и задач. Следует
отметить, что такому подходу также способствовала и господ­
ствующая на начальном этапе автоматизации предприятий и
организаций в 70-х годах тогдашняя парадигма вычислитель­
ных систем — общая мощная вычислительная установка (main
frame) и групповая работа пользователей с удаленных терми­
налов через системы разделения времени.
1
В данном контексте более понятен сам термин — «внедрение», предполагаю­
щий сопротивление.
197
5. Распределенные информационные системы
Опыт внедрения автоматизированных систем управления
в различных организационных структурах в 70-е—80-е гг. пока­
зал не всегда высокую эффективность подобной автоматизации,
когда новые технологические информационно-управленческие
подразделения (отдел автоматизации, отдел АСУ, информацион­
ная служба и т. п.) и новые электронные информационные пото­
ки зачастую функционировали вместе с сохраняющимися тра­
диционными организационными структурами, а также вместе с
традиционными («бумажными», «телефонными») информацион­
ными потоками.
Осознание подобных проблем постепенно стало приводить
к мысли о распределенных информационных системах.
5.1. Понятие распределенных
информационных систем, принципы
их создания и функционирования
Впервые задача об исследовании основ и принципов со­
здания и функционирования распределенных информационных
систем была поставлена известным специалистом в области баз
данных К. Дейтом в рамках уже не раз упоминавшегося проек­
та System R, что в конце 70-х — начале 80-х годов вылилось в
отдельный проект создания первой распределенной системы
(проект System R*). Большую роль в исследовании принципов
создания и функционирования распределенных баз данных вне­
сли также и разработчики системы Ingres.
Собственно в основе распределенных АИС лежат две ос­
новные идеи:
• много организационно и физически распределенных
пользователей, одновременно работающих с общими данны­
ми — общей базой данных (пользователи с разными именами,
в том числе располагающимися на различных вычислительных
установках, с различными полномочиями и задачами);
• логически и физически распределенные данные, состав­
ляющие и образующие тем не менее единое взаимосогласован­
ное целое — общую базу данных (отдельные таблицы, записи
198
5.1. Принципы создания и функционирования информационных систем
и даже поля могут располагаться на различных вычислитель­
ных установках или входить в различные локальные базы дан­
ных).
Крис Дейт сформулировал также основные принципы со­
здания и функционирования распределенных баз данных. К их
числу относятся:
а прозрачность расположения данных для пользовате­
ля (иначе говоря, для пользователя распределенная база дан­
ных должна представляться и выглядеть точно так же, как и
нераспределенная);
а изолированность пользователей друг от друга (пользо­
ватель должен «не чувствовать», «не видеть» работу других
пользователей в тот момент, когда он изменяет, обновляет, уда­
ляет данные);
• синхронизация и согласованность (непротиворечи­
вость) состояния данных в любой момент времени.
Из основных вытекает ряд дополнительных принципов:
т локальная автономия (ни одна вычислительная установка
для своего успешного функционирования не должна зависеть
от любой другой установки);
• отсутствие центральной установки (следствие преды­
дущего пункта);
• независимость от местоположения (пользователю все
равно где физически находятся данные, он работает так, как
будто они находятся на его локальной установке);
• непрерывность функционирования (отсутствие плано­
вых отключений системы в целом, например для подключения
новой установки или обновления версии СУБД);
• независимость от фрагментации данных (как от гори­
зонтальной фрагментации, когда различные группы записей
одной таблицы размещены на различных установках или в раз­
личных локальных базах, так и от вертикальной фрагментации,
когда различные поля-столбцы одной таблицы размещены на
разных установках);
• независимость отреплицирования (дублирования) дан­
ных (когда какая-либо таблица базы данных, или ее часть фи199
5. Распределенные информационные системы
зически может быть представлена несколькими копиями, рас­
положенными на различных установках, причем «прозрачно»
для пользователя);
• распределенная обработка запросов (оптимизация зап­
росов должна носить распределенный характер—сначала гло­
бальная оптимизация, а далее локальная оптимизация на каж­
дой из задействованных установок);
• распределенное управление транзакциями (в распреде­
ленной системе отдельная транзакция может требовать выпол­
нения действий на разных установках, транзакция считается
завершенной, если она успешно завершена на всех вовлечен­
ных установках);
• независимость от аппаратуры (желательно, чтобы сис­
тема могла функционировать на установках, включающих ком­
пьютеры разных типов);
• независимость от типа операционной системы (систе­
ма должна функционировать вне зависимости от возможного
различия ОС на различных вычислительных установках);
• независимость от коммуникационной сети (возможность
функционирования в разных коммуникационных средах);
• независимость от СУБД1 (на разных установках могут
функционировать СУБД различного типа, на практике ограни­
чиваемые кругом СУБД, поддерживающих SQL).
В обиходе СУБД, на основе которых создаются распреде­
ленные информационные системы, также характеризуют тер­
мином «Распределенные СУБД», и, соответственно, использу­
ют термин «.Распределенные базы данных».
Важнейшую роль в технологии создания и функциониро­
вания распределенных баз данных играет техника «представ­
лений» (Views).
Представлением называется сохраняемый в базе данных
авторизованный глобальный запрос на выборку данных. Авторизованность означает возможность запуска такого запроса
только конкретно поименованным в системе пользователем.
Глобальность заключается в том, что выборка данных может
2
200
Данное свойство характеризуют также термином «интероперабелыюсть».
5.1. Принципы создания и функционирования информационных систем
осуществляться со всей базы данных, в том числе из данных,
расположенных на других вычислительных установках. Напом­
ним, что результатом запроса на выборку является набор дан­
ных, представляющий временную на сеанс открытого запроса
таблицу, с которой (которыми) в дальнейшем можно работать,
как с обычными реляционными таблицами данных. В резуль­
тате таких глобальных авторизованных запросов для конкрет­
ного пользователя создается некая виртуальная база данных
со своим перечнем таблиц, связей, т. е. со «своей» схемой и со
«своими» данными. В принципе, с точки зрения информацион­
ных задач, в большинстве случаев пользователю безразлично,
где и в каком виде находятся собственно сами данные. Данные
должны быть такими и логически организованы таким обра­
зом, чтобы можно было решать требуемые информационные
задачи и выполнять установленные функции.
Схематично идея техники представлений проиллюстриро­
вана на рис. 5.1.
'V. * • -
,
Истинная структура базы данных
v. исгунниз яанныз
Нстзаа сфуюура,
-^.атосэаннае и в т ч
HjM.jH'jHhui'j данные
Рис. 5.1. Основная идея техники представлений
При входе пользователя в распределенную систему ядро
СУБД, идентифицируя пользователя, запускает запросы его
ранее определенного и хранимого в базе данных представле­
ния и формирует ему «свое» видение базы данных, восприни201
5. Распределенные информационные системы
маемое пользователем как обычная (локальная) база данных.
Так как представление базы данных виртуально, то «настоя­
щие» данные физически находятся там, где они находились до
формирования представления. При осуществлении пользова­
телем манипуляций сданными ядро распределенной СУБД по
системному каталогу базы данных само определяет, где нахо­
дятся данные, вырабатывает стратегию действий, т. е. опреде­
ляет, где, на каких установках целесообразнее производить опе­
рации, куда для этого и какие данные необходимо переместить
из других установок или локальных баз данных, проверяет вы­
полнение ограничений целостности данных. При этом большая
часть таких операций прозрачна (т. е. невидима) для пользова­
теля, и он воспринимает работу в распределенной базе данных,
как в обычной локальной базе.
Технологически в реляционных СУБД техника представ­
лений реализуется через введение в язык SQL-конструкций,
позволяющих аналогично технике «событий-правил-процедур»
создавать именованные запросы-представления:
CREATE К/ЕЖИмяПредставления^^
SELECT...
FROM...
... ,
В данных конструкциях после имени представления и клю­
чевого слова AS размещается запрос на выборку данных, соб­
ственно и формирующий соответствующее представление ка­
кого-либо объекта базы данных.
Авторизация представлений осуществляется применением
команд (директив) GRANT, присутствующих в базовом переч­
не инструкций языка SQL (см. п. 4.1) и предоставляющих пол­
номочия и привилегии пользователям:
GRANT SELECT ON ИмяПредстивленш ТО ИмяПользователя1, ИмяПользователя2,...;
Соответственно директива RE VOKE отменяет уставленные
ранее привилегии.
202
5.1. Принципы создания и функционирования информационных систем
Несмотря на простоту и определенную изящность идеи
«представлений», практическая реализация подобной техноло­
гии построения и функционирования распределенных систем
встречает ряд серьезных проблем. Первая из них связана с раз­
мещением системного каталога базы данных, ибо при фор­
мировании для пользователя «представления» распределенной
базы данных ядро СУБД в первую очередь должно «узнать»,
где и в каком виде в действительности находятся данные. Тре­
бование отсутствия центральной установки приводит к выводу
о том, что системный каталог должен быть на любой локаль­
ной установке. Но тогда возникает проблема обновлений. Если
какой-либо пользователь изменил данные или их структуру в
системе, то эти изменения должны отразиться во всех копиях
системного каталога. Однако размножение обновлений систем­
ного каталога может встретить трудности в виде недоступнос­
ти (занятости) системных каталогов на других установках в
момент распространения обновлений. В результате может быть
не обеспечена непрерывность согласованного состояния дан­
ных, а также возникнуть ряд других проблем.
Решение подобных проблем и практическая реализация
распределенных информационных систем осуществляется че­
рез отступление от некоторых рассмотренных выше принци­
пов создания и функционирования распределенных систем. В
зависимости от того, какой принцип приносится в «жертву»
(отсутствие центральной установки, непрерывность функцио­
нирования, согласованного состояния данных и др.) выдели­
лись несколько самостоятельных направлений в технологиях
распределенных систем — технологии «Клиент-сервер», тех­
нологии реплицирования, технологии объектного связывания.
Реальные распределенные информационные системы, как
правило, построены на основе сочетания всех трех техноло­
гий, но в методическом плане их целесообразно рассмотреть
отдельно. Дополнительно следует также отмстить, что техника
представлений оказалась чрезвычайно плодотворной также и в
другой сфере СУБД—защите данных. Авторизованный харак­
тер запросов, формирующих представления, позволяет предо203
5. Распределенные информационные системы
ставить конкретному пользователю те данные и в том виде, ко­
торые необходимы ему для его непосредственных задач, исклю­
чив возможность доступа, просмотра и изменения других дан­
ных.
5.2. Технологии и модели «Клиент-сервер»
Системы на основе технологий «.Клиент-сервер» истори­
чески выросли из первых централизованных многопользова­
тельских автоматизированных информационных систем, ин­
тенсивно развивавшихся в 70-х годах (системы main frame), и
получили, вероятно, наиболее широкое распространение в сфе­
ре информационного обеспечения крупных предприятий и кор­
пораций.
В технологиях «Клиент-сервер» отступают от одного из
главных принципов создания и функционирования распределен­
ных систем — отсутствия центральной установки. Поэто­
му можно выделить две основные идеи, лежащие в основе кли­
ент-серверных технологий:
• общие для всех пользователей данные на одном или не­
скольких серверах;
• много пользователей {клиентов) на различных вычисли­
тельных установках, совместно (параллельно и одновременно)
обрабатывающих общие данные.
Иначе говоря, системы, основанные на технологиях «Кли­
ент-сервер», распределены только в отношении пользователей,
поэтому часто их не относят к «настоящим» распределенным
системам, а считают отдельным, уже упоминавшимся классом
многопользовательских систем.
Важное значение в технологиях «Клиент-сервер» имеют
понятия сервера и клиента.
Под сервером в широком смысле понимается любая сис­
тема, процесс, компьютер, владеющие каким-либо вычисли­
тельным ресурсом (памятью, временем, производительностью
процессора и т. д.).
Клиентом называется также любая система, процесс, ком­
пьютер, пользователь, запрашивающие у сервера какой-либо
204
5.2. Технологии и модели «Клиент-сервер»
ресурс, пользующиеся каким-либо ресурсом или обслуживаемые
сервером иным способом.
В своем развитии системы «Клиент-сервер» прошли не­
сколько этапов, в ходе которых сформировались различные
модели систем «Клиент-сервер». Их реализация и, следователь­
но, правильное понимание основаны на разделении структу­
ры СУБД на три компонента:
а компонент представления, реализующий функции вво­
да и отображения данных, называемый иногда еще просто как
интерфейс пользователя (см. рис. 2.1);
а прикладной компонент, включающий набор запросов,
событий, правил, процедур и других вычислительных функций,
реализующий предназначение автоматизированной информа­
ционной системы в конкретной предметной области;
Q компонент доступа к данным, реализующий функции
хранения, извлечения, физического обновления и изменения
данных (машина данных).
Исходя из особенностей реализации и распределения (рас­
положения) в системе этих трех компонентов различают четы­
ре модели технологий «Клиент-сервер»*:
• модель файлового сервера (File Server — FS);
• модель удаленного доступа к данным (Remote Data
Access — RDA);
• модель сервера базы данных (DataBase Server — DBS);
• модель сервера приложений (Application Server — AS).
5.2.1. Модель файлового сервера
Модель файлового сервера является наиболее простой и
характеризует собственно не столько способ образования фак­
тографической информационной системы, сколько общий спо­
соб взаимодействия компьютеров в локальной сети. Один из
компьютеров сети выделяется и определяется файловым сер­
вером, т. е. общим хранилищем любых данных. Суть FS-модели
иллюстрируется схемой, приведенной на рис. 5.2.
• Ладыженский Г. М. Системы управления базами данных — коротко о глав­
ном//СУ Б Д.—№№1-4.— 1995.
205
5. Распределенные информационные системы
,» Компонент .*
'представления
Прикладной
компонент
Клиент 1 Компонент доступа
кданным (/щю СУБД)
Запросы
БЕОД-ЕЫВОД ^
Файлы
Клиент2
Компонент доступа к
ресурсам
(файловая система ОС)
Сервер
Клиент II
Рис. 5.2. Модель файлового сервера
В FS-модели все основные компоненты размещаются на
клиентской установке. При обращении к данным ядро СУБД, в
свою очередь, обращается с запросами на ввод-вывод данных
за сервисом к файловой системе. С помощью функций опера­
ционной системы в оперативную память клиентской установ­
ки полностью или частично на время сеанса работы копирует­
ся файл базы данных. Таким образом, сервер в данном случае
выполняет чисто пассивную функцию.
Достоинством данной модели являются ее простота, от­
сутствие высоких требований к производительности сервера
(главное—требуемый объем дискового пространства). Следу­
ет также отметить, что программные компоненты СУБД в дан­
ном случае не распределены, т. е. никакая часть СУБД на сер­
вере не инсталлируется и не размещается.
С другой стороны также очевидны и недостатки такой
модели. Это, прежде всего, высокий сетевой трафик, достига­
ющий пиковых значений особенно в момент массового вхож­
дения в систему пользователей, например в начале рабочего дня.
Однако более существенным с точки зрения работы с общей
базой данных является отсутствие специальных механизмов
безопасности файла (файлов) базы данных со стороны СУБД.
Иначе говоря, разделение данных между пользователями (па­
раллельная работа с одним файлом данных) осуществляется
только средствами файловой системы ОС для одновременной
работы нескольких прикладных программ с одним файлом.
206
5.2. Технологии и модели «Клиент-сервер»
Несмотря на очевидные недостатки, модель файлового сер­
вера является естественным средством расширения возможно­
стей персональных (настольных) СУБД в направлении поддер­
жки многопользовательского режима и, очевидно, в этом плане
еще будет сохранять свое значение.
5.2.2. Модель удаленного доступа к данным
Модель удаленного доступа к данным основана на учете
специфики размещения и физического манипулирования дан­
ных во внешней памяти для реляционных СУБД. В RDA-моде­
ли компонент доступа к данным в СУБД полностью отделен от
двух других компонентов (компонента представления и при­
кладного компонента) и размещается на сервере системы. Ком­
понент доступа к данным реализуется в виде самостоятельной
программной части СУБД, называемой SQL-сервером, и инстал­
лируется на вычислительной установке сервера системы. Фун­
кции SQL-сервера ограничиваются низкоуровневыми операци­
ями по организации, размещению, хранению и манипулирова­
нию данными в дисковой памяти сервера. Иначе говоря,
SQL-сервер играет роль машины данных. Схема RDA-модели
приведена на рис. 5.3.
предстаьтиггя
Клиент 2
Прикладной ! L~iik_
компонент
набор
данных
SQL
набор
данных
'• Компонент
дост5ти к данным
(.S'QL-cqiEep •машина данных)
*
Клиент Ы
'•<••••
_ ;
ь _ L
Сервер
Рис. 5.3. Модель удаленного доступа к данным (RDA-модель)
В файле (файлах) базы данных, размещаемом на сервере
системы, находится также и системный каталог базы данных,
в который помещаются в том числе и сведения о зарегистриро­
ванных клиентах, их полномочиях и т. п.
207
5. Распределенные информационные системы
На клиентских установках инсталлируются отделенные
программные части СУБД, реализующие интерфейсные и при­
кладные функции. Пользователь, входя в клиентскую часть си­
стемы, регистрируется через нее на сервере системы и начина­
ет обработку данных. Прикладной компонент системы (библио­
теки запросов, процедуры обработки данных) полностью
размещается и выполняется на клиентской установке. При реа­
лизации своих функций прикладной компонент формирует не­
обходимые SQL-инструкции, направляемые SQL-серверу. SQLсервер, представляющий специальный программный компо­
нент, ориентированный на интерпретацию SQL-инструкций и
высокоскоростное выполнение низкоуровневых операций с дан­
ными, принимает и координирует SQL-инструкции от различ­
ных клиентов, выполняет их, проверяет и обеспечивает выпол­
нение ограничений целостности данных и направляет клиен­
там результаты обработки SQL-инструкций, представляющие
как известно наборы (таблицы) данных.
Таким образом, общение клиента с сервером происходит
через SQL-инструкции, а с сервера на клиентские установки
передаются только результаты обработки, т. е. наборы данных,
которые могут быть существенно меньше по объему всей базы
данных. В результате резко уменьшается загрузка сети, а сер­
вер приобретает активную центральную функцию. Кроме того,
ядро СУБД в виде SQL-сервера обеспечивает также традици­
онные и важные функции по обеспечению ограничений целос­
тности и безопасности данных при совместной работе несколь­
ких пользователей.
Другим, может быть неявным, достоинством RDA-модели является унификация интерфейса взаимодействия приклад­
ных компонентов информационных систем с общими данны­
ми. Такое взаимодействие стандартизовано в рамках языка SQL
уже упоминавшимся специальным протоколом ODBC4 (Open
Database Connectivity), играющим важную роль в обеспечении
интероперабельиости, т. е. независимости от типа СУБД на
4
208
Стандартный протокол доступа к данным на серверах баз данных SQL.
5.2. Технологии и модели «Клиент-сервер»
клиентских установках в распределенных системах. Иначе го­
воря, специальный компонент ядра СУБД на сервере (так на­
зываемый драйвер ODBC) способен воспринимать, обрабаты­
вать запросы и направлять результаты их обработки на клиен­
тские установки, функционирующие под управлением реляционных
СУБД других, не «родных» типов. Такая возможность суще­
ственно повышает гибкость в создании распределенных инфор­
мационных систем на базе интеграции уже существующих в
какой-либо организации локальных баз данных под управле­
нием настольных или другого типа реляционных СУБД. Спе­
циальные драйверы ODBC могут обеспечить возможность ис­
пользования настольной СУБД в качестве клиента SQL-серве­
ра «тяжелой» многопользовательской клиент-серверной СУБД.
К недостаткам RDA-модели можно отнести высокие тре­
бования к клиентским вычислительным установкам, так как
прикладные программы обработки данных, определяемые спе­
цификой предметной области АИС, выполняются на них. Дру­
гим недостатком является все же существенный трафик сети,
обусловленный тем, что с сервера базы данных клиентам на­
правляются наборы (таблицы) данных, которые в определен­
ных случаях могут занимать достаточно существенный объем.
5.2.3. Модель сервера базы данных
Развитием RDA-модели стала модель сервера базы данных.
Ее сердцевиной является рассмотренный ранее механизм хра­
нимых процедур. В отличие от RDA-модели, определенные для
конкретной предметной области АИС события, правила и про­
цедуры, описанные средствами языка SQL, хранятся вместе с
данными на сервере системы и на нем же выполняются. Иначе
говоря, прикладной компонент полностью размещается и вы­
полняется на сервере системы. Схематично DBS-модель при­
ведена на рис. 5.4.
На клиентских установках в DBS-модели размещается
только интерфейсный компонент (компонент представления)
АИС, что существенно снижает требования к вычислитель­
ной установке клиента. Пользователь через интерфейс систе209
5. Распределенные информационные системы
• Ьиомкндаг :
'предст«елаай
Клиент J
Клиент 2
Вызов
фуккций
—
*
•
Резуг ьтаты
Прикладной
компонент
Компонент
дог тупя к данным
(.SQL-сервер .^ЕОШШЯ данных} _,
Клиент If
Сервер
Рис. 5.4. Модель сервера базы данных (DBS-модель)
мы на клиентской установке направляет на сервер базы дан­
ных только лишь вызовы необходимых процедур, запросов и
других функций по обработке данных. Все затратные операции
по доступу и обработке данных выполняются на сервере и кли­
енту направляются лишь результаты обработки, а не наборы
данных, как в RDA-модели. Этим обеспечивается существен­
ное снижение трафика сети в DBS-модели по сравнению с
RDA-моделыо.
Следует, однако, заметить, что на сервере системы выпол­
няются процедуры прикладных задач одновременно всех
пользователей системы. В результате резко возрастают тре­
бования к вычислительной установке сервера, причем как к
объему дискового пространства и оперативной памяти, так и к
быстродействию. Это основной недостаток DBS-модели.
К достоинствам же DBS-модели, помимо разгрузки сети,
относится и более активная роль сервера сети, размещение,
хранение и выполнение на нем механизма событий, правил и
процедур, возможность более адекватно и эффективно «настра­
ивать» распределенную АИС на все нюансы предметной обла­
сти системы. Также более надежно обеспечивается соОгласованность состояния и изменения данных, и, вследствие этого,
повышается надежность хранения и обработки данных, эффек­
тивно координируется коллективная работа пользователей с
общими данными.
210
5.2. Технологии и модели «Клиент-сервер»
5.2.4. Модель сервера приложений
Чтобы разнести требования к вычислительным ресурсам
сервера в отношении быстродействия и памяти по разным вы­
числительным установкам, используется модель сервера при­
ложений. Суть AS-модели заключается в переносе прикладно­
го компонента АИС на специализированный в отношении по­
вышенных ресурсов по быстродействию дополнительный
сервер системы. Схема AS-модели приведена на рис. 5.5.
• Клигоншт
предстлелошя
Клиент 1
Вызов
функций
—•
Прикладной
компонент
(сервер
приложений)
Клиент 2
Клигшп 1/
гзультаты
Компонент
доступа
к flaHHbiM(SQL •
сервер машина данных)
Сервер
Сервер
Рис. 5.5. Модель сервера приложений (AS-модель)
Как и в DBS-модели, на клиентских установках распола­
гается только интерфейсная часть системы, т. с. компонент
представления. Однако вызовы функций обработки данных на­
правляются на сервер приложений, где эти функции совместно
выполняются для всех пользователей системы. За выполнени­
ем низкоуровневых операций по доступу и изменению данных
сервер приложений, как в RDA-модели, обращается к SQL-сер­
веру, направляя ему вызовы SQL-процедур, и получая, соответ­
ственно, от него наборы данных. Как известно, последователь­
ная совокупность операций надданными (SQL-инструкций),
имеющая отдельное смысловое значение, называется транзак­
цией. В этом отношении сервер приложений от клиентов сис­
темы управляет формированием транзакций, которые выпол­
няет SQL-сервер. Поэтому программный компонент СУБД, ин­
сталлируемый на сервере приложений, еще называют
также монитором обработки транзакций (Transaction
211
5. Распределенные информационные системы
Processing Monitors — TRM), или просто монитором транзак­
ций.
AS-модель, сохраняя сильные стороны DBS-модели, позво­
ляет более оптимально построить вычислительную схему ин­
формационной системы, однако, как и в случае RDA-модели,
повышает трафик сети.
В еще не устоявшейся до конца терминологии по моделям
и технологиям «Клиент-сервер» RDA-модель характеризуют еще
как модель с так называемыми «толстыми», а DBS-модель и
AS-модель как модели, соответственно, с «тонкими» клиен­
тами. По критерию звеньев системы RDA-модель и DBS-мо­
дель называют двухзвенньшн {двухуровневыми) системами,
а AS-модель трехзвенной {трехуровневой) системой.
В практических случаях используются смешанные моде­
ли, когда простейшие прикладные функции и обеспечение ог­
раничений целостности данных поддерживаются хранимыми
на сервере процедурами (DBS-модель), а более сложные функ­
ции предметной области (так называемые «правила бизнеса»)
реализуются прикладными программами на клиентских уста­
новках (RDA-модель) или на сервере приложений (AS-модель).
5.2.5. Мониторы транзакций
Сердцевиной и основой эффективности функционирова­
ния многопользовательских систем «Клиент-сервер» является
эффективное управление транзакциями. Собственно само
понятие транзакции возникло именно в процессе исследования
принципов построения и функционирования централизованных
многопользовательских реляционных СУБД. Транзакции игра­
ют важную роль в механизме обеспечения СУБД ограничений
целостности базы данных. Ограничения целостности непос­
редственно проверяются по завершению очередной транзакции.
Если условия ограничений целостности данных не выполня­
ются, то происходит «откат» транзакции (выполняется SQLинструкция ROLLBACK), в противном случае транзакция фик­
сируется (выполняется SQL-инструкция COMMIT).
212
5.2. Технологии и модели «Клиент-сервер»
Помимо обеспечения целостности данных механизм тран­
закций оказался чрезвычайно полезным для практической реа­
лизации одного из основополагающих принципов распределен­
ных многопользовательских систем — изолированности
пользователей. Как уже отмечалось, единичные действия
пользователей с базой данных ассоциированы с транзакциями.
В том случае, когда от разных пользователей поступают тран­
закции, время выполнения которых перекрывается, монитор
транзакций обеспечивает специальную технологию их взаим­
ного выполнения и изоляции с тем, чтобы избежать нарушений
согласованного состояния данных и других издерэ/сек совмес­
тной обработки. К числу подобных издержек относятся:
• потерянные изменения;
• «грязные» данные;
• неповторяющиеся чтения.
Потерянные изменения возникают тогда, когда две тран­
закции одновременно изменяют один и тот э/се объект базы
данных. В том случае, если в силу каких-либо причин, напри­
мер, из-за нарушений целостности данных, происходит откат,
скажем, второй транзакции, то вместе с этим отменяются и все
изменения, внесенные в соответствующий период времени пер­
вой транзакцией. В результате первая еще не завершившаяся
транзакция при повторном чтении объекта не «видит» своих
ранее сделанных изменений данных. Очевидным способом пре­
одоления подобных ситуаций является запрет изменения дан­
ных любой другой транзакцией до момента завершения пер­
вой транзакции — так называемая блокировка объекта.
«Грязные» данные возникают тогда, когда одна транзак­
ция изменяет какой-либо объект данных, а другая транзакция
в этот момент читает данные из того э/се объекта. Так как
первая транзакция еще не завершена, и, следовательно, не про­
верена согласованность данных после проведенных, или вовсе
еще только частично проведенных изменений, то вторая тран­
закция может «видеть» соответственно несогласованные, т. е.
«грязные» данные. Опять-таки способом i/едопущения таких
ситуаций может быть запрет чтения объекта любой другой
213
5. Распределенные информационные системы
транзакцией, пока не завершена первая транзакция, его изме­
няющая.
Неповторяющиеся чтения возникают тогда, когда одна
транзакция читает какой-либо объект базы данных, а другая
до завершения первой его изменяет и успешно фиксируется.
Если при этом первой, еще не завершенной, транзакции требу­
ется повторно прочитать данный объект, то она «видит» его в
другом состоянии, т. е. чтение не повторяется. Способом недо­
пущения подобных ситуаций в противоположность предыду­
щему случаю является запрет изменения объекта любой дру­
гой транзакцией, когда первая транзакция на чтение еще не за­
вершена.
Механизм изоляции транзакций и преодоления ситуаций
несогласованной обработки данных в общем виде основывает­
ся на технике сериализации транзакций. План (способ) вы­
полнения совокупности транзакций называется сериальным,
если результат совместного выполнения транзакций эквива­
лентен результату некоторого последовательного их выпол­
нения. Сериализацией транзакций в этом смысле является орга­
низация их выполнения по некоторому сериальному плану.
Существуют два различных подхода сериализации транзакций:
а синхронизационные захваты (блокировки) объектов базы
данных;
а временные метки объектов базы данных.
В первом подходе определяется два основных режима зах­
ватов — совместный резким (Shared) и монопольный резким
(exclusive). При совместном режиме осуществляется разделя­
емый захват, требующий только операций чтения. Поэтому та­
кой захват еще называют захватом по чтению. При монополь­
ном режиме осуществляется неразделяемый захват, требующий
операций обновления данных. Такой захват, соответственно,
еще называют захватом по записи.
Наиболее распространенным вариантом первого подхода
является реализация двухфазного протокола синхронизаци­
онных захватов (блокировок) объектов базы данных — 2PL
(Two-Phase Locks). В соответствии с данным протоколом вы214
5.2. Технологии и модели «Клиент-сервер»
полнение транзакции происходит в два этапа. На первом этапе
{первая фаза) перед выполнением любой операции транзакция
запрашивает и накапливает захваты необходимых объектов в со­
ответствующем режиме. После получения и накопления необхо­
димых захватов (блокировок) осуществляется вторая фаза —
фиксация изменений (или откат по соображениям целостности
данных) и освобождение захватов.
При построении сериальных пшпоъ.допускается совме­
щение только захватов по чтению. В остальных случаях тран­
закции должны «ждать», когда необходимые объекты разбло­
кируются (освободятся). Более изощренные стратегии сериализации транзакций основываются на «гранулировании»
объектов захвата (файл базы данных, отдельная таблица, стра­
ница файла данных, отдельная запись-кортеж). Соответствен­
но при этой расширяется номенклатура синхронизационных
режимов захватов, например в совместном режиме (по чте­
нию) может быть захвачен и в целом файл и отдельные его стра­
ницы, или в другом случае обеспечивается совместный режим
захвата файла с возможностью монопольного захвата отдель­
ных его объектов — таблиц, страниц или записей-кортежей).
Грануляция синхронизационных блокировок позволяет строить
более эффективные планы сериализации транзакций.
Существенным недостатком синхронизационных захва­
тов является возможность возникновения тупиковых ситуа­
ций (Deadlock). Предположим, одна транзакция на первой фазе
установила монопольный захват одного объекта, а другая тран­
закция монопольный захват второго объекта. Для осуществле­
ния полного набора своих операций первой транзакции еще тре­
буется совместный захват второго объекта, а второй транзак­
ции, соответственно, совместный захват первого объекта. Ни
одна из транзакций не может закончить первую фазу, т. е. пол­
ностью накопить все необходимые захваты, так как требуемые
объекты уже монопольно захвачены, хотя были свободны к мо­
менту начала осуществления транзакций.
Непростой проблемой является автоматическое обнару­
жение (распознавание) таких тупиковых ситуаций и их разре215
5. Распределенные информационные системы
шение (разрушение). Распознавание тупиков основывается на
построении и анализе графа ожидания транзакций, состояще­
го из вершин-транзакций и вершин-объектов захвата. Исходя­
щие из вершин-транзакций дуги к вершинам-объектам соответ­
ствуют требуемым захватам, а дуги, исходящие из вершинобъектов к вершинам-транзакциям соответствуют полученным
захватам. При тупиковых ситуациях в графе ожидания тран­
закций наблюдаются петли (циклы), обнаружение которых обес­
печивается специальным алгоритмизируемым механизмом ре­
дукции графа, подробное изложение которого можно найти в
специальной литературе по теории графов. Отметим только, что
применение подобного механизма распознавания тупиков тре­
бует построения и постоянного поддержания (обновления) гра­
фа ожидания транзакций, что увеличивает накладные расходы
при выполнении транзакции и снижает производительность
обработки данных.
Еще одной проблемой является технология, или, лучше
сказать, алгоритм разрушения тупиков. В общем плане такие
алгоритмы основываются на выборе транзакции-э/сертвы, ко­
торая временно откатывается для предоставления возможнос­
ти завершения выполнения операций другим транзакциям, что,
конечно же, в определенной степени нарушает принцип изоли­
рованности пользователей. В качестве «жертвы» выбирается или
самая «дешевая» транзакция в смысле затрат на выполнение,
или транзакция с наименьшим приоритетом.
Более простой альтернативой технике синхронизационных
захватов является техника временных меток. Суть этого ме­
тода заключается в том, что каждой транзакции приписывает­
ся временная метка, соответствующая моменту начала вы­
полнения транзакции. При выполнении операции над объектом
транзакция «помечает» его своей меткой и типом операции
(чтение или изменение). Если при этом другой транзакции тре­
буется операция над уже «помеченным» объектом, то выполня­
ются действия по следующему алгоритму:
• проверяется, не закончилась ли транзакция, первой «по­
метившая» объект;
216
5.3. Технологии объектного связывания данных
• если первая транзакция закончилась, то вторая транзак­
ция помечает его своей меткой и выполняет необходимые опе­
рации;
• если первая транзакция не закончилась, то проверяется
конфликтность операций (напомним, что конфликтно любое
сочетание, кроме «чтение-чтение»);
• если операции неконфликтны, то они выполняются для
обеих транзакций, а объект до завершения операций помечает­
ся меткой более поздней, т. е. более молодой транзакции;
• если операции конфликтны, то далее происходит откат
более поздней транзакции и выполняется операция более ран­
ней (старшей) транзакции, а после ее завершения объект поме­
чается меткой более молодой транзакции и цикл действий по­
вторяется.
В результате того что при таком алгоритме конфликтность
транзакций определяется более грубо, чем при синхронизаци­
онных блокировках, реализация метода временных меток вы­
зывает более частые откаты транзакций. Несомненным же
достоинством метода временных меток является отсутствие
тупиков, и, следовательно, отсутствие накладных расходов на
их распознавание и разрушение.
СУБД идеологии «Клиент-сервер», называемые иногда в
противовес однопользовательским («настольным») «тяжелыми»
системами (Oracle, SyBase, Informix, Ingres и др.), составляют
одно из наиболее интенсивно развивающихся направлений цен­
трализованных многопользовательских систем, охватывая сво­
им управлением сотни тысяч гигабайтов фактографических дан­
ных, и в этом отношении еще долгое время будут играть роль
фактического стандарта корпоративных информационных си­
стем.
5.3. Технологии объектного связывания
данных
Унификация взаимодействия прикладных компонентов с
ядром информационных систем в виде SQL-серверов, нарабо217
5. Распределенные информационные системы
тайная для клиент-серверных систем, позволила выработать
аналогичные решения и для интеграции разрозненных локаль­
ных баз данных под управлением настольных СУБД в сложные
децентрализованные гетерогенные распределенные системы.
Такой подход получил название объектного связывания данпых.
С узкой точки зрения, технология объектного связывания
данных решает задачу обеспечения доступа из одной локаль­
ной базы, открытой одним пользователем, к данным в другой
локальной базе5(ъ другом файле), возможно находящейся на
другой вычислительной установке, открытой и эксплуатируе­
мой другим пользователем.
Решение этой задачи основывается на поддержке современ­
ными «настольными» СУБД (MS Access, MS FoxPro, dBase и
др.) технологии «объектов доступа к данным» — DAO. При
этом следует отметить, что под объектом понимается интегра­
ция данных и методов их обработки в одно целое (объект), на
чем, как известно, основываются объектно-ориентированное
программирование и современные объектно-ориентированные
операционные среды. Другими словами, СУБД, поддерживаю­
щие DAO, получают возможность внедрять и оперировать в
локальных базах объектами доступа к данным,- физически на­
ходящимся в других файлах, возможно на других вычислитель­
ных установках и под управлением других СУБД.
Технически технология DAO основана на уже упоминав­
шемся протоколе ODBC, который принят за стандарт досту­
па не только к данным на SQL-серверах клиент-серверных сис­
тем, но и в качестве стандарта доступа к любым данным под
управлением реляционных СУБД. Непосредственно для дос­
тупа к данным на основе протокола СЮВС.используются ини­
циализируемые на тех установках, где находятся данные, спе­
циальные программные компоненты, называемые драйверами
ODBC, или инициализируемые ядра тех СУБД, под управлени­
ем которых были созданы и эксплуатируются внешние базы
5
На практике другой локальной базой может быть и база данных сервера центра­
лизованной многопользовательской корпоративной системы.
218
5.3. Технологии объектного связывания данных
данных. Схематично принцип и особенности доступа к вне­
шним базам данных на основе объектного связывания иллюст­
рируются на рис. 5.6.
Доступ к "своим" файлам БД в т. ч.
1С таблицам данных из другой,
/не открытой БД :ч.
JSAM
Доступ к БД наиболее распространен­
ных форматов(с1ВА5Е, FoxPro)
и к табличным данным электронных
таблиц(Вхсе1,„'
Иокдаая вычхсяхюльхая
устаиоасаЧ у
, Доступ к базам данных
•••
' ! . « • : - • •
/t
! • "
ODBC
• • • * : - • • •
• . . • * . - .
:•
•
•
*
*
*
»
-
: Рабочая обпасп. ;
прямого доступа к
источника.'» доимых
ODBC
••'•'•
\ Другая ричжяпвяяая
\ тстамоаа?'
• ,.*».'•/•*v
Рис. 5.6. Принцип доступа к внешним данным па основе прото­
кола ODBC
Прежде всего, современные настольные СУБД обеспечива­
ют возможность прямого доступа к объектам (таблицам, зап­
росам, формам) внешних баз данных «своих» форматов. Ина­
че говоря, в открытую в текущем сеансе работы базу данных
пользователь имеет возможность вставить специальные ссылкиобъекты и оперировать с данными из другой (внешней, т. е. не
открываемой специально в данном сеансе) базы данных. Объек­
ты из внешней базы дачных, вставленные в текущую базу дан­
ных, называются связанными, и, как правило, имеют специаль­
ные обозначения для отличия от внутренних объектов. При этом
219
5. Распределенные информационные системы
следует подчеркнуть, что сами данные физически в файл (фай­
лы) текущей базы данных не помещаются, а остаются в файлах
«своих» баз данных. В системный каталог текущей базы данных
помещаются все необходимые для доступа сведения о связан­
ных объектах — внутреннее имя и внешнее, т. е. истинное имя
объекта во внешней базе данных, полный путь к файлу внешней
базы и т. п.
Связанные объекты для пользователя ничем не отличаются
от внутренних объектов. Пользователь может также открывать
связанные во внешних базах таблицы данных, осуществлять по­
иск, изменение, удаление и добавление данных, строить запро­
сы по таким таблицам и т. д. Связанные объекты можно интег­
рировать в схему внутренней базы данных, т. е. устанавливать
связи между внутренними и связанными таблицами.
Технически оперирование связанными объектами из вне­
шних баз данных «своего» формата мало отличается от опериро­
вания сданными из текущей базы данных. Ядро СУБД при об­
ращении к данным связанного объекта по системному каталогу
текущей базы данных находит сведения о месте нахождения и
других параметрах соответствующего файла (файлов) внешней
базы данных и прозрачно, т. е. невидимо для пользователя от­
крывает этот файл (файлы), а далее обычным порядком органи­
зует в оперативной памяти буферизацию страниц внешнего файла
данных для непосредственно доступа и манипулирования дан­
ными. Следует также заметить, что на основе возможностей мно­
гопользовательского режима работы с файлами данных совре­
менных операционных систем, с файлом внешней базы данных,
если он находится на другой вычислительной установке, может
в тот же момент времени работать и другой пользователь,
что и обеспечивает коллективную обработку общих распреде­
ленных данных.
Для иллюстрации на рис. 5.7 приведен пример схемы БД,
организованной на основе техники объектного связывания дан­
ных распределенной системы коллективной обработки данных
трех подразделений некоторой организации —- службы ДОУ, от-
220
5.3. Технологии объектного связывания данных
дела кадров и бухгалтерии6. На вычислительных установках пе­
речисленных подразделений, объединенных в локальную есть,
создаются и эксплуатируются локальные базы данных, струк­
турные схемы которых отражают задачи и особенности предмет­
ных областей сведений, необходимых для информационного
обеспечения деятельности соответствующих подразделений. При
этом часть данных, распределенных по таким таблицам, как «Со­
трудники», «Подразделения», «Штатные категории» и др., явля­
ются общепотребными для всех или для группы подразделений.
Логично исключить дублирование ввода, редактирования, кор­
ректировки и хранения таких общих данных, возложив эти фун­
кции на пользователей тех локальных баз данных, где это наибо­
лее естественно и обоснованно с точки зрения функциональных
особенностей соответствующих подразделений и сложившихся
информационных потоков, а пользователям локальных баз дан­
ных других подразделений предоставить доступ к ним. Так, к
примеру, таблицы данных по сотрудникам и подразделениям
наиболее естественно заполнять данными и хранить в локаль­
ной базе кадрового подразделения, обеспечивая доступ к ним
пользователей локальных баз службы ДОУ и бухгалтерии. Струк­
турную схему локальных баз этих подразделений в этом случае
целесообразно построить на основе объектного связывания дан­
ных. На рис. 5.7 связанные, т. е. физически находящиеся в дру­
гих базах данных, таблицы выделены специальной раскраской и
обрамлением. Стрелками на рисунке показаны связи типа «Одинко-многим» (острие стрелки соответствует стороне «многие»).
На рис. 5.8 приведен еще один пример схемы локальных
баз данных, использующих совместные данные по линии ин­
формационного обеспечения производства и сбыта продукции.
Предметные области сведений по этим трем локальным базам
данных очень близки и переплетены, однако, как и в предыду­
щем примере, с учетом специфики подразделений, ведение и
размещение таких общепотребных таблиц как «Продукция»,
«Типы, номенклатура» целесообразно осуществлять в локальной базе Планово-производственного отдела, таблиц «Комп* Данный пример является чисто иллюстративным и никаким образом не может
претендовать на отражение каких-либо реальных бач данных.
221
5. Распределенные информационные системы
Отношение к док-ту
Рег.№ документа
' Таб № с отрудн ик а
1
Вид (исп., подп.,
утверд.)
• Дата
й
Сотрудники
•Таб№
•ФИО
• Подразд-е"
• Должность
Отнош. к меропр.
Таб.№ сотр.
Наим. меропр.
Вид (исп,отв.)
Сотрудники
•Та6.№
•ФИО
•Подразд-е
• Должность
ч
Документы
• Рег.№
•Дата
• Название вида
• Заголовок к тексту
•Гриф
• Мероприятие
Нетрудоспособ­
ность
• Таб.№ сотр.
• Дата начала
• Дата оконч.
• Вид
Док-ты. и подр-я
Рег.№
№№ подр.
Вид (напр, подг)
Подразделения
•Х°№
"Наименование
• Руководш-ель
Отражает
• Per № док.
«На им. меропр
Мероприятие
• Наименование
• Дата начала
• Дата оконч.
Меропр. и подр.
'№№ подр..
•Наим. меропр
• Вид (пров..
у част)
Подразделения
• Наименование
• Руководитель
•Наименование
• Должн. оклад
• Спец. по образ.
Командировки
• Таб.№ сотр.
• Дата начала
• Дата оконч-я
• Пункт
• Аванс
• Факт, расходы
Штаты
• №№ подр.
• Штат.катег.
•
•
•
Отпуска
Таб.№ сотр.
Дата начала
Дата оконч.
Отпуска
• Таб.№ сотр.
• Дата начала
• Дата оконч-я
Рис. 5.7. Пример схем локальных баз данных со связанными
объектами
222
5.3. Технологии объектного связывания данных
Типы,
номенклатура
Продукция
А—•
Локальная база планово-производственного отдела
Комплектующие,
сырье
Поставщики
А
•
А
•
Локальная база отдела снабжения
Типы,
номенклатура
Локальная база отдела сбыта
Рис. 5.8. Пример схем локальных баз данных со связанными объек­
тами
лектующие», «Сырье», «Поставщики» в локальной базе Отде­
ла снабжения, а таблиц «Заказы» и «Клиенты» в локальной базе
Отдела сбыта. Опять-таки данные по таблице «Сотрудники»
могут быть получены на основе объектного связывания из ло­
кальной базы Отдела кадров.
Нетрудно заключить, что подобный принцип построения
распределенных систем при больших объемах данных в свя­
занных таблицах приведет к существенному увеличению тра­
фика сети, так как по сети постоянно передаются, даже не на223
5. Распределенные информационные системы
боры данных, а страницы файлов баз данных, что может при­
водить к пиковым перегрузкам сети. Поэтому представленные
схемы локальных баз данных со взаимными связанными объек­
тами нуждаются в дальнейшей тщательной проработке с точки
зрения интенсивности, направленности потоков данных в сети
между локальными базами исходя из информационных техно­
логий, обусловленных производственно-технологическими и
организационными процессами.
Не менее существенной проблемой является отсутствие на­
дежных механизмов безопасности данных и обеспечения огра­
ничений целостности. Так же как и в модели файлового сервера,
совместная работа нескольких пользователей с одними и теми же
данными обеспечивается только функциями операционной систе­
мы по одновременному доступу к файлу нескольких приложений.
Аналогичным образом обеспечивается доступ к данным,
находящимся в базах данных наиболее распространенных фор­
матов других СУБД, таких, например, как базы данных СУБД
FoxPro, dBASE, а так же к табличным данным электрон
При этом доступ может обеспечиваться как непосредствен­
но ядром СУБД, так и специальными дополнительными драй­
верами ISAM (Indexed Sequential Access Method), входящими,
как правило, в состав комплекта СУБД. Такой подход реализу­
ет интероперабельность построенных подобным образом рас­
пределенных гетерогенных систем, т. е. «разномастность» ти­
пов СУБД, поддерживающих локальные базы данных. При этом,
однако, объектное связывание ограничивается только непосред­
ственно таблицами данных, исключая другие объекты базы
данных (запросы, формы, отчеты), реализация и поддержка
которых зависят от специфики конкретной СУБД.
Доступ к базам данных других СУБД (см. рис. 5.6) реали­
зуется через технику драйверов ODBC, которые инсталлиру­
ются и выполняются на тех вычислительных установках, где
находятся удаленные данные. «Идеология» в данном случае
такова. В составе настольной СУБД, поддерживающей локаль­
ную базу данных, можно инсталлировать дополнительный про­
граммный компонент, называемый драйвером ODBC7. Инстал7
В операционной системе Windows драйверы ODBC реализуются посредством
файлов DDL(6H6miorei»iдинамической компоновки).
224
5.3. Технологии объектного связывания данных
даруемый драйвер ODBC «регистрируется» в специальном под­
каталоге системного каталога операционной системы8. Так об­
разуется рабочая область прямого доступа к источникам
данных ODBC.
Для непосредственного доступа к источникам данных
ODBC ядро СУБД по системному каталогу внутренней локаль­
ной базы данных определяет местонахождение источника, по
протоколу взаимодействия прилоэ/сепий (API) осуществляет
вызов {запуск) на вычислительной установке удаленных дан­
ных драйвера ODBC и направляет ему по протоколу ODBC SQLинструкции на доступ и обработку данных. При этом режим
такого доступа регулируется рядом параметров (интервал вы­
зова процедур, максимальное время обработки запроса, коли­
чество однократно пересылаемых по сети записей из набора
данных, формируемых по запросам, время блокировок записей
и т. д.). Данные параметры записываются в специальный ре­
естр операционной системы при инсталляции и регистрации
соответствующего драйвера ODBC.
При таком подходе каждая локальная СУБД на своей вы­
числительной установке выполняет роль SQL-сервера, т. е. ма­
шины данных, в случае обращения на доступ извне (из других
вычислительных установок) к данным из «ее» файлов данных.
Так как непосредственную обработку данных в данном случае
выполняет «родная» СУБД, знающая все особенности логичес­
кой и физической структуры «своих» файлов данных, то обес­
печивается, как правило, более эффективная обработка, а са­
мое главное, проверяются и выполняются ограничения целос­
тности данных по логике предметной области источников
данных.
Определенной проблемой технологий объектного связыва­
ния является появление «брешей» в системах защиты данных и
разграничения доступа. Вызовы драйверов ODBC для осуще­
ствления процедур доступа к данным помимо пути, имени фай­
лов и требуемых объектов (таблиц), если соответствующие базы
защищены, содержат в открытом виде пароли доступа, в ре* В операционной системе Windows данным подкаталогтак и называется—ODBC.
225
5. Распределенные информационные системы
зультате чего может быть проанализирована и раскрыта систе­
ма разграничения доступа и защиты данных.
5.4. Технологии реплицирования данных
Во многих случаях узким местом распределенных систем,
построенных на основе технологий «Клиент-сервер» или объек­
тного связывания данных, является недостаточно высокая про­
изводительность из-за необходимости передачи по сети боль­
шого количества данных. Определенную альтернативу постро­
ения быстродействующих распределенных систем предоставляют
технологии реплицирования данных.
Репликой называют особую копию базы данных для разме­
щения на другом компьютере сети с целью автономной рабо­
ты пользователей с одинаковыми (согласованными) данными
общего пользования.
Основная идея реплицирования заключается в том, что
пользователи работают автономно с одинаковыми (общими)
данными, растиражированными по локальным базам данных,
обеспечивая с учетом отсутствия необходимости передачи и
обмена данными по сети максимальную для своих вычисли­
тельных установок производительность. Программное обес­
печение СУБД для реализации такого подхода соответственно
дополняется функциями тиражирования (реплицирования) баз
данных, включая тиражирование как самих данных и их струк­
туры, так и системного каталога с информацией о размещении
реплик, иначе говоря, с информацией о конфигурировании по­
строенной таким образом распределенной системы.
При этом, однако, возникают две проблемы обеспечения
одного из основополагающих принципов построения и функ­
ционирования распределенных систем, а именно — непрерыв­
ности согласованного состояния данных:
а обеспечение согласованного состояния во всех репли­
ках количества и значений общих данных;
• обеспечение согласованного состояния во всех репли­
ках структуры данных.
226
5.4. Технологии реплнцнровання данных
Обеспечение согласованного состояния общих данных,
в свою очередь, основывается на реализации одного из двух
принципов:
• принципа непрерывного размножения обновлений (любое
обновление данных в любой реплике должно быть немедленно
размножено);
• принципа отложенных обновлений (обновления реплик
могут быть отложены до специальной команды или ситуации).
Принцип непрерывного размножения обновлении явля­
ется основополагающим при построении так называемых «си­
стем реального времени», таких, например, как системы уп­
равления воздушным движением, системы бронирования би­
летов пассажирского транспорта и т. п., где требуется
непрерывное и точное соответствие реплик или других расти­
ражированных данных во всех узлах и компонентах подобных
распределенных систем.
Реализация принципа непрерывного размножения обнов­
лений заключается в том, что любая транзакция считается ус­
пешно завершенной, если она успешно завершена на всех реп­
ликах системы. На практике реализация этого принципа встре­
чает существенные затруднения, связанные с тупиками, как и
в технологиях синхронизационных захватов систем «Клиентсервер». Предположим, что на одной вычислительной установке
пользователь обновляет данные в своей реплике. На время осу­
ществления транзакции (транзакций) соответствующие записи
в базе данных этой реплики ядром локальной СУБД заблоки­
рованы от изменения другими пользователями. Вместе с тем
транзакция может быть зафиксирована и, следовательно, раз­
блокированы соответствующие данные только тогда, когда дан­
ная транзакция послана и также завершена на других репликах
системы. Предположим также, что в другой реплике системы,
находящейся на другом компьютере сети, в это же время дру­
гой пользователь проводит свои обновления (транзакции) с теми
же записями, которые, естественно, в этот момент также забло­
кированы от изменений для других пользователей. Так образу­
ется тупик. Одна транзакция не может быть зафиксирована в
227
5. Распределенные информационные системы
своей реплике, потому что заблокированы соответствующие
записи в другой реплике. А разблокировка этих записей в дру­
гой реплике также невозможна до тех пор, пока не разблокиру­
ются соответствующие записи в первой реплике, т. е. когда за­
вершится транзакция в первой реплике. Создается тупиковая
ситуация.
Для обнаружения (распознавания) тупиков в реплицированных системах применяются такие лее алгоритмы, которые
были разработаны в мониторах транзакций централизованных
систем «Клиент-сервер»,—строится и поддерживается анало­
гичный граф ожидания транзакций и применяются аналогич­
ные алгоритмы распознавания и разрушения тупиков, основан­
ные в основном на технике приоритетов.
В целом ряде предметных областей распределенных ин­
формационных систем режим реального времени с точки зре­
ния непрерывности согласования данных не требуется. Такие
системы автоматизируют те организационно-технологические
структуры, в которых информационные процессы не столь ди­
намичны. Если взять, к примеру, автоматизированную инфор­
мационную систему документооборота, то традиционная «ско­
рость» перемещения и движения служебных документов соот­
ветствует рабочему дню или в лучшем случае рабочим часам.
В этом случае обновление реплик распределенной информаци­
онной системы, если она будет построена на технологии реплицирования, требуется, скажем, только лишь один раз за каж­
дый рабочий час, или за каждый рабочий день.
Такого рода информационные системы можно строить на
основе принципа отложенных обновлений. Накопленные в
какой-либо реплике изменения данных специальной командой
пользователя направляются для обновления всех остальных
реплик систем. Такая операция называется синхронизацией
реплик. Возможность конфликтов и тупиков в этом случае при
синхронизации реплик существенно снижается, а немногочис­
ленные подобные конфликтные ситуации легко разрешить орга­
низационными мерами.
228
5.4. Технологии реплицнрования данных
Решение второй проблемы согласованности данных, а
именно — согласованности структуры данных, осуществля­
ется через частичное отступление, как и в системах «Клиентсервер», от принципа отсутствия центральной установки и
основывается на технике «главной» реплики.
Суть этой техники заключается в том, что одна из реплик
базы данных системы объявляется главной. При этом изменять
структуру базы данных моэ/сио только в главной реплике. Эти
изменения структуры данных тиражируются на основе прин­
ципа отложенных обновлений, т. е. через специальную синхро­
низацию реплик. Частичность отступления от принципа отсут­
ствия центральной установки заключается в том, что в отличие
от чисто централизованных систем, выход из строя главной
реплики не влечет сразу гибель всей распределенной системы,
так как остальные реплики продолжают функционировать ав­
тономно. Более того, на практике СУБД, поддерживающие тех­
нологию реплицирования, позволяют пользователю с опреде­
ленными полномочиями (администратору системы) преобра­
зовать любую реплику в главную и тем самым полностью
восстановить работоспособность всей системы.
Процесс синхронизации реплик в современных СУБД
включает обмен только теми данными, которые были измене­
ны или добавлены в разных репликах. С этой целью в систем­
ном каталоге базы данных создаются специальные таблицы те­
кущих изменений и организуется система глобальной иденти­
фикации (именования) всех объектов распределенной системы,
включая раздельное поименование одинаковых объектов
(вплоть до записей таблиц) в разных репликах9. Такой подход
несколько увеличивает объем базы данных, но позволяет суще­
ственно ограничить транспортные расходы на синхронизацию
реплик.
Важным, с точки зрения гибкости и эффективности функ­
ционирования распределенных информационных систем, по­
строенных на технологиях реплицирования, является возмож­
ность создания так называемых частичных реплик и включе9
Так называемая техника глобальных уникальных идентификаторов (GUID).
229
5. Распределенные информационные системы
ния в реплики как реплицируемых, так и нерсплицирусмых
объектов. Частичной репликой называется база данных, содер­
жащая ограниченное подмножество записей полной реплики.
Распространенным способом создания частичных реплик яв­
ляется использование фильтров, устанавливаемых для конкрет­
ных таблиц полной (главной) реплики. Частичные реплики по­
зволяют решить некоторые проблемы, связанные с разграниче­
нием доступа к данным и повышают производительность
обработки данных. Так, к примеру, в реплику базы данных для
определенного подразделения целесообразно реплицировать
только те записи таблицы «Сотрудники», которые относятся к
данному подразделению, исключив тем самым доступ к дру­
гим записям. Техника частичных реплик также снижает затра­
ты на синхронизацию реплик, так как ограничивает количество
передаваемых по сети изменений данных.
Возможность включения в реплики объектов базы данных,
которые не подлежат репликации, позволяет более гибко и адек­
ватно настроить схему и прочие объекты БД (запросы, фор­
мы и отчеты) на специфику предметной области, особенности
ввода данных и решаемые информационные задачи по конкрет­
ному элементу распределенной системы.
На рис. 5.9 иллюстрируется подход к организации общей
схемы распределенной информационной системы по делопро­
изводству некоторой организационной структуры на основе
технологий репликации данных.
Технологии репликации данных в тех случаях, когда не тре­
буется обеспечивать большие потоки и интенсивность обнов­
ляемых в информационной сети данных, являются экономич­
ным решением проблемы создания распределенных информа­
ционных систем с элементами централизации по сравнению с
использованием дорогостоящих10 «тяжелых» клиент-серверных
систем.
На практике для совместной коллективной обработки дан­
ных применяются смешанные технологии, включающие элемен­
ты объектного связывания данных, репликаций и клиент-сер'"Хотя, конечно же, более надежных и функциональных.
230
5.4. Технологии рсплицнрования данных
Руководство
организации
Служба документационного
обеспечения управления
Финансовоэкономический отдел
, Частичная раитика па
д&югцюиэводапф
ГлавнаярегишапЩпо
деяогфашводапф
Отдел кадров
Частичная
реплика по
делопроизвод ста/
Структурное подразделение
Струмурное подразделение
Структурное подразделение
Рис. 5.9. Пример подхода к организации схемы распределенной
информационной системы по делопроизводству па основе техники
реплицироваиия
верных решений. При этом дополнительно к проблеме логичес­
кого проектирования, т. е. проектирования логической схемы
организации данных (таблицы, поля, ключи, связи, ограниче­
ния целостности), добавляется не менее сложная проблема
транспортно-технологического проектирования информа­
ционных потоков, разграничения доступа и т. д. К сожале­
нию, пока не проработаны теоретико-методологические и ин­
струментальные подходы для автоматизации проектирования
распределенных информационных систем с учетом факторов
как логики, так и информационно-технологической инфраструк­
туры предметной области.
Тем не менее развитие и все более широкое распростране­
ние распределенных информационных систем, определяемое
самой распределенной природой информационных потоков и
технологий, является основной перспективой развития автома­
тизированных информационных систем.
231
5. Распределенные информационные системы
Вопросы и упражнения
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
232
Что «распределено» в распределенных информационных систе­
мах и каковы основные принципы создания и функционирования
распределенных информационных систем?
Поясните суть техники «представлений» в базах данных и задачи,
которые решаются на основе техники «представлений».
Какой из основных принципов распределенньк информационных
систем принесен в «жертву» в системах «Клиент-сервер»? Пояс­
ните преимущества и недостатки такого подхода.
На какие компоненты подразделяется программное обеспечение
систем «Клиент-сервер»? Какие функции выполняются каждым
компонентом?
Поясните принципы и схемы RDA, DBS и AS-моделей систем
«Клиент-сервер» и дайте их сравнительную характеристику. Ка­
кие системы называются системами с «тонкими» («толстыми»)
клиентами, с 2- или 3-уровневой (2- или 3-звенной) архитекту­
рой?
Охарактеризуйте роль и место монитора транзакций в СУБД сис­
тем «Клиент-сервер».
Какие издержки совместной обработки общих данных предотв­
ращает монитор транзакций в системах «Клиент-сервер»?
Дайте определение сериальному плану выполнения транзакций и
охарактеризуйте основные подходы к механизмам построения та­
ких планов.
Поясните суть двухфазного протокола синхронизационных зах­
ватов объектов и механизм возможного образования тупиковых
ситуаций.
Как распознаются и разрушаются тупиковые ситуации в технике
двухфазного протокола синхронизационных захватов?
В чем заключается гранулирование объектов захватов и почему
такой подход обеспечивает более эффективные стратегии пост­
роения сериальных планов выполнения транзакций?
Каковы достоинства и недостатки техники временных меток при
синхронизационных захватах объектов?
В чем заключается суть и механизм объектного связывания дан­
ных при построении распределенных информационных систем
из разрозненных локальных баз данных?
Существует ли системный каталог распределенной базы данных,
построенной на основе технологии объектного связывания, и ка-
Вопросы и упражнения
15.
16.
17.
18.
19.
ким образом выражается логическая схема такой базы данных? В
чем достоинства и недостатки такого подхода?
Какие функции, кроме традиционных, вьшолняют локальные («на­
стольные») СУБД при использовании технологий объектного свя­
зывания?
Охарактеризуйте главную идею и основные подходы к построе­
нию распределенных информацией 1ых систем в технологиях реплицирования данных.
Поясните принцип отложенных обновлений и процессов синхро­
низации реплик.
Чем главная реплика отличается от остальных? Как наличие глав­
ной реплики соотносится с принципами распределенных систем?
Что обеспечивается возможностью создания частичных реплик?
233
6. Документальные информационные системы
6. Документальные
информационные системы
В развитии программного обеспечения СУБД в 70-е—80-е
годы превалировало направление, связанное с фактографичес­
кими информационными системами, т. е. с системами, ориен­
тированными на работу со структурированными данными. Были
разработаны основы и модели организации фактографических
данных, отработаны программно-технические решения по на­
коплению и физическому хранению таких данных, реализова­
ны специальные языки запросов к базам данных и решен це­
лый ряд других задач по эффективному управлению большими
объемами структурированной информации. В результате осно­
ву информационного обеспечения деятельности предприятий
и организаций к началу 90-х годов составили фактографичес­
кие информационные системы, вобравшие в себя в совокупно­
сти колоссальный объем структурированных данных1.
Вместе с тем создание и эксплуатация фактографических
информационных систем требует либо изначально структури­
рованных данных, таких, например, как отчеты датчиков в
АСУ ТП, финансовые массивы бухгалтерских АЙС и т. д., либо
предварительной структуризации данных, как, например, в ин­
формационной системе кадрового подразделения, где все дан­
ные по сотрудникам структуризируются по ряду формализо­
ванных позиций. При этом зачастую структуризация данных
требует больших накладных, в том числе и организационных
расходов, что, в конечном счете, приводит к материальным из­
держкам информатизации.
Кроме того, входные информационные потоки в целом ряде
организационно-технологических и управленческих сфер пред­
ставлены неструктурированными данными в виде служебных
документов и иных текстовых источников. Извлечение из тек­
стов данных по формализованным позициям для ввода в фактог' В этом смысле очень характерным является рекламный девиз корпорации Oracle:
«Мы хрипим триллионы байт».
234
рафические системы может приводить к ошибкам и потере час­
ти информации, которая в исходных источниках имеется, но в
силу отсутствия в схеме базы данных адекватных элементов не
может быть отражена в банке данных фактографических АИС.
В результате, несмотря на интенсивное развитие и распро­
странение фактографических информационных систем, огром­
ная часть неструктурированных данных, необходимых для ин­
формационного обеспечения деятельности различных предпри­
ятий и организаций, остается в неавтоматизированном или слабо
автоматизированном2 виде. К таким данным относятся огром­
ные массивы различной периодики, нормативно-правовая база,
массивы служебных документов делопроизводства и докумен­
тооборота.
Потребности в системах, ориентированных на накопление
и эффективную обработку неструктурированной или сла­
боструктурированной информации привели к возникновению
еще в 70-х годах отдельной ветви программного обеспечения
систем управления базами данных, на основе которых созда­
ются документальные информационные системы.
Однако теоретические исследования вопросов автоматизи­
рованного информационного поиска документов, начавшись
еще в 50-х—60-х годах, к сожалению, не получили такой стро­
гой, полной и в то же время технически реализуемой модели
представления и обработки данных, как реляционная модель в
фактографических системах. Не получили также стандартиза­
ции (как язык SQL) и многочисленные попытки создания уни­
версальных так называемых информационно-поисковых язы­
ков, предназначенных для формализованного описания смыс­
лового содержания документов и запросов по ним. В итоге,
несмотря на то, что первые системы автоматизированного ин­
формационного поиска документов появились еще в 60-х го­
дах, развитые коммерческие информационно-поисковые сис­
темы, ориентированные на накопление и обработку текстовых
документов, получили распространение лишь в конце 80-х —
начале 90-х годов.
2
Представлена в электронном виде в текстовых файлах, но без средств система­
тизации, обработки, анализа и эффективного поиска б. 1. Общая характеристика и виды
документальных информационных систем.
235
6. Документальные информационные системы
6.1. Общая характеристика и виды
документальных информационных
систем
Напомним, что в фактографических информационных си­
стемах единичным элементом данных, имеющим отдельное
смысловое значение, является запись, образуемая конечной со­
вокупностью полей-атрибутов. Иначе говоря, информация о
предметной области представлена набором одного или несколь­
ких типов структурированных на отдельные поля записей.
В отличие от фактографических информационных систем,
единичным элементом данных в документальных информа­
ционных системах является неструктурированный на более
мелкие элементы документ. В качестве неструктурированных
документов в подавляющем большинстве случаев выступают,
прежде всего, текстовые документы, представленные в виде
текстовых файлов, хотя к классу неструктурированных доку­
ментированных данных могут также относиться звуковые и
графические файлы.
Основной задачей документальных информационных сис­
тем является накопление и предоставление пользователю до­
кументов, содержание, тематика, реквизиты и т. п. которых
адекватны его информационным потребностям. Поэтому мож­
но дать следующее определение документальной информаци­
онной системы — единое хранилище документов с инстру­
ментарием поиска и отбора необходимых документов. По­
исковый характер документальных информационных систем
исторически определил еще одно их название — информаци­
онно-поисковые системы (ИПС), хотя этот термин не совсем
полно отражает специфику документальных ИС 3 . Соответ­
ствие найденных документов информационным потребностям
пользователя называется пертинентностью. В силу теорети3
Поиск информации (данных) осуществляется и в фактографических ИС. Таким
образом термин ИПС определяет функциональное назначение ИС, но не отражает спе­
цифики представления и обработки данных. Специфика документальных ИПС заклю­
чается в том, что они удовлетворяют информационные потребности пользователя, пре­
доставляя ему документы, в которых содержится интересующая пользователя инфор­
мация.
236
6.1. Общая характеристика и виды документальных информационных систем
ческих и практических сложностей с формализацией смысло­
вого содержания документов пертинентность относится скорее
к качественным понятиям, хотя, как будет рассмотрено ниже,
может выражаться определенными количественными показа­
телями.
В зависимости от особенностей реализации хранилища до­
кументов и механизмов поиска документальные ИПС можно
разделить на две группы:
• системы на основе индексирования;
• семантически-навигационные системы.
В семантически-навигационных системах документы,
помещаемые в хранилище (в базу) документов, оснащаются
специальными навигационными конструкциями, соответству­
ющими смысловым связям (отсылкам) между различными до­
кументами или отдельными фрагментами одного документа.
Такие конструкции реализуют некоторую семантическую4
(смысловую) сеть в базе документов. Способ и механизм выра­
жения информационных потребностей в подобных системах
заключаются в явной навигации пользователя по смысловым
отсылкам между документами. В настоящее время такой под­
ход реализуется в гипертекстовых ИПС.
В системах на основе индексирования исходные докумен­
ты помещаются в базу без какого-либо дополнительного пре­
образования5, но при этом смысловое содержание каждого до­
кумента отображается в некоторое поисковое пространство.
Процесс отображения документа в поисковое пространство на­
зывается индексированием и заключается в присвоении каж­
дому документу некоторого индекса-координаты в поисковом
пространстве. Формализованное представление (описание) ин­
декса документа называется поисковым образом документа
(ПОД). Пользователь выражает свои информационные потреб­
ности средствами и языком поискового пространства, форми­
руя поисковый образ запроса (ПОЗ) к базе документов. Систс4
Семантика (от греч. «semantikos»—обозначающий)—смысловая сторона языка,
отдельных слов и частей слова, а также — раздел языкознания, изучающий значения
слов.
5
За исключением возможного сжатия (архивирования).
237
6. Документальные информационные системы
ма на основе определенных критериев и способов ищет доку­
менты, поисковые образы которых соответствуют или близки
поисковым образам запроса пользователя, и выдает соответству­
ющие документы. Соответствие найденных документов запро­
су пользователя называется релевантностью1'. Схематично об­
щий принцип устройства и функционирования документаль­
ных ИПС на основе индексирования иллюстрируется на
рис. 6.1.
Поисковое пространсгко
Запрос L
Рис. 6.1. Общий принцип устройства и функционирования до­
кументальных ИПС па основе индексирования
Особенностью документальных ИПС является также то, что
в их функции, как правило, включаются и задачи информаци­
онного оповещения пользователей по всем новым поступаю­
щим в систему документам, соответствующим заранее опреде­
ленным информационным потребностям пользователя7. Прин­
цип решения задач информационного оповещения в
документальных ИПС на основе индексирования аналогичен
принципу решения задач поиска документов по запросам и ос­
нован на отобраэюении в поисковое пространство информа­
ционных потребностей пользователя в виде так называемых
поисковых профилей пользователей (ППП). Информационно* На практике герьшн релевантность часто отождествляют с термином пертинентпость, хотя в строгом отношении они различны.
7
Задачи информационного оповещения основаны на идеологии т.н. избиратель­
ного распространения информации (ИРИ), наработанной в библиотечном деле.
238
6.1. Общая характеристика и виды документальных информационных систем
поисковая система по мере поступления и индексирования но­
вых документов сравнивает их образы с поисковыми профиля­
ми пользователей и принимает решение о соответствующем опо­
вещении. Принцип решения задач информационного оповеще­
ния схематично иллюстрируется на рис. 6.2.
Поисковое.' npocipanciuo
Полъ/Обателъ L
Рис. 6.2. Принцип решения задач информационного оповещения
в документальных ИПС на основе индексирования
Поисковое пространство, отображающее поисковые образы
документов и реализующее механизмы информационного поиска
документов так же, как и в СУБД фактографических систем, стро­
ится на основе языков документальных баз данных, называемых
информационно-поисковыми языками (ИПЯ). Информационнопоисковый язык представляет собой некоторую формализован­
ную семантическую систему, предназначенную для выражения
содержания документа и запросов по поиску необходимых доку­
ментов. По аналогии с языками баз данных фактографических
систем ИПЯ можно разделить на структурную и манипуляционную составляющие.
Структурная составляющая ИПЯ (поискового пространства)
документальных ИПС на основе индексирования реализуется ин-
239
6. Документальные информационные системы
дексными указателями в форме информационно-поисковых ка­
талогов, тезаурусов и генеральных указателей.
Информационно-поисковые каталоги являются традицион­
ными технологиями организации информационного поиска в
документальных фондах библиотек, архивов и представляют со­
бой классификационную систему знаний по определенной пред­
метной области. Смысловое содержание документа в информа­
ционно-поисковых каталогах отображается тем или иным клас­
сом каталога, а индексирование документов заключается в
присвоении каждому документу специального кода (индекса) со­
ответствующего по содержанию класса (классов) каталога и со­
здания на этой основе специального индексного указателя.
Тезаурус представляет собой специальным образом органи­
зованную совокупность основных лексических единиц (понятий)
предметной области (словарь терминов) и описание парадигма­
тических отношений между ними. Парадигматические отноше­
ния выражаются семантическими отношениями между элемен­
тами словаря, не зависящими от любого контекста. Независи­
мость от контекста означает обобщенность (абстрагированность)
смысловых отношений, например отношения «род-вид», «пред­
мет-целое», «субъект-объект-средство-место-время действия».
Так же, как и в информационно-поисковых каталогах, в системах
на основе тезаурусов в информационно-поисковое пространство
отображается не весь текст документа, а только лишь выражен­
ное средствами тезауруса смысловое содержание документа.
Генеральный указатель* (глобальный словарь-индекс) в об­
щем виде представляет собой перечисление всех слов (словоформ),
имеющихся в документах хранилища, с указанием (отсылками)
координатного местонахождения каждого слова (№ докумен­
та — № абзаца—№ предложения—№ слова). Индексирование
нового документа в таких системах производится через дополне­
ние координатных отсылок тех словоформ генерального указа­
теля, которые присутствуют в новом документе. Так как поис­
ковое пространство в таких системах отражает полностью весь
текст документа (все слова документа), а не только его смысло" Исторически в специальной литературе употреблялся также термин «конкор­
данс».
240
6.1. Общая характеристика и виды документальных информационных систем
вое содержание, то такие системы получили название полнотек­
стовых ИПО.
Структурная составляющая ИПЯ семантически-навигаци­
онных систем реализуется в виде техники смысловых отсылок
в текстах документов и специальном навигационном интерфей­
се по ним и в настоящее время представлена гипертекстовы­
ми технологиями.
Поисковая (мапипуляциоиная) составляющая ИПЯ реали­
зуется дескрипторными и семантическими языками запросов.
В дескрипторных языках документы и запросы представ­
ляются наборами некоторых лексических единиц (слов, слово­
сочетаний, терминов) — дескрипторов, не имеющих между со­
бой связей, или, как еще говорят, не имеющих грамматики. Та­
ким образом, каждый документ или запрос ассоциируется или,
лучше сказать, представлен некоторым набором дескрипторов.
Поиск осуществляется через поиск документов с подходящим
набором дескрипторов. В качестве элементов-дескрипторов
выступают либо элементы словаря ключевых терминов, либо
элементы генерального указателя (глобального словаря всех
словоформ). В силу отсутствия связей между дескрипторами,
набор которых для конкретного документа и конкретного зап­
роса выражает, соответственно, поисковый образ документа—
ПОД или поисковый образ запроса ПОЗ, такие языки применя­
ются, прежде всего, в полнотекстовых системах.
Семантические языки содержат грамматические и семан­
тические конструкции для выражения (описания) смыслового
содержания документов и запросов. Все многообразие семан­
тических языков подразделяется на две большие группы:
• предикатные языки;
• реляционные языки.
В предикатных языках в качестве элементарной осмыс­
ленной конструкции высказывания выступает предикат, кото­
рый представляет собой многоместное отношение некоторой
v
В специальной литературе такие системы ингда называют системами без лекси­
ческого контроля, т. е. без учета возможной синонимичности отдельных групп слово­
форм, объединения отдельных групп словоформ в общие смысловые группы, семанти­
ческих отношений между словоформами.
241
6. Документальные информационные системы
совокупности грамматических элементов. Многоместность
отношения означает, что каждый элемент предиката играет оп­
ределенную роль для группы лексических элементов в целом,
но не имеет конкретных отношений с каждым элементом этой
группы в отдельности. Аналогом предикатного высказывания
в естественном языке выступает предлоэ/сение, констатирую­
щее определенный факт или описывающее определенное со­
бытие.
В реляционных языках лексические единицы высказыва­
ний могут вступать только в бинарные (друг с другом), но не в
совместные, т. е. не многоместные отношения.
В качестве лексических единиц семантических языков выс­
тупают функциональные классы естественного языка, важней­
шими из которых являются:
• понятия-классы (общее определение совокупности одно­
родных элементов реального мира, обладающих некоторым
характерным набором свойств, позволяющих одни понятияклассы отделять от других);
• понятия-действия (лексический элемент, выражающий
динамику реального мира, содержит универсальный набор при­
знаков, включающий субъект действия, объект действия, вре­
мя действия, место действия, инструмент действия, цель и т. д.);
• понятия-состояния (лексические элементы, фиксирую­
щие состояния объектов);
• имена (лексические элементы, идентифицирующие по­
нятия-классы);
• отношения (лексические элементы, служащие для уста­
новления связей на множестве понятий и имен);
• квантификаторы (всеобщности, существования и т. д.).
Семантические языки составляют языково-манипуляционную основу информационно-поисковых каталогов, тезаурусов
и семантически-навигационных (гипертекстовых) ИПС, опи­
сывая своими средствами собственно сами каталоги, тезауру­
сы, семантические сети и выражая смысловое содержание до­
кументов и запросов.
242
6.2. Информационно-поисковые каталоги и тезаурусы
В заключение общей характеристики документал ьных И ПС
приведем основные показатели эффективности их функци­
онирования. Такими показателями являются полнота и точность
информационного поиска.
Полнота информационного поиска R определяется отно­
шением числа найденных пертинентных документов А к обще­
му числу пертинентных документов С, имеющихся в системе
или в исследуемой совокупности документов:
* = УсТочность информационного поиска Р определяется отно­
шением числа найденных пертинентных документов А к обще­
му числу документов L, выданных на запрос пользователя:
" = УьНаличие среди отобранных на запрос пользователя нере­
левантных документов называется информационным шумом
системы. Коэффициент информационного шума к, соответ­
ственно, определяется отношением числа нерелевантных до­
кументов (L-A), выданных в ответе пользователю к общему
числу документов L, выданных на запрос пользователя:
L-A
/с =
•
L
В идеале полнота информационного поиска и точность ин­
формационного поиска должны приближаться к единице, хотя
на практике их значения колеблются в пределах от 60 до 90%.
6.2. Информационно-поисковые каталоги
и тезаурусы
Как уже отмечалось, информационно-поисковые каталоги
основаны на классификации сведений по определенной пред­
метной области и исторически были первыми системами ин­
формационного поиска документов в библиотечном и архивном
деле, возникнув еще в средние века по сложившейся тогда схе­
ме разделения наук и искусств.
243
6. Документальные информационные системы
Современные библиотечные классификации основывают­
ся на системах десятичной классификации Дыои (1876 г.) и
правил построения алфавитно-предметных рубрик Ч. А. Кат­
тера (1876 г.). Впоследствии на развитие информационно-по­
исковых каталогов огромное влияние оказали работы С. Р. Ранганатана (система аналитико-синтетической классификации
двоеточием—Colon Classification, 30-е гг.), У. Е. Баттена (кар­
ты Баттена на основе оптического совпадения, 30-е—40-е годы),
К. Муерса (дескрипторная система «Зато-кодирования», 1947—
1948 гг.) и М. Тауба (система унитермов Тауба, 1951 г.). В Рос­
сии первые отечественные системы библиотечно-библиографической классификации были разработаны в XIX веке ученымнатуралистом П. К. Демидовым и академиком К. Э. Бэром.
6.2.1. Классификационные системы поиска
документов
Основные направления развития систем классификацион­
ного индексирования документов можно проиллюстрировать
схемой, приведенной на рис. 6.3.
Первоначальные подходы к классификации тематики (пред­
мета) документов основывались на формировании списка пред­
метных заголовков, располагаемых в алфавитном порядке.
Каждая предметная рубрика получала определенный цифровой
или буквенно-цифровой код. Содержание (предметы) докумен­
та индексировалось перечислением кодов тех рубрик, которые
отражали предметы документа. Такие подходы получили на­
звание перечислительной классификации.
Особенностью систем перечислительной классификации
является возможность индексирования документов любым ко­
личеством предметов (рубрик), отражающих содержание до­
кумента. Для осуществления поиска необходимых документов
по классификатору (каталогу) определяются коды интересую­
щих абонента предметов (рубрик) и далее отбираются из хра­
нилища те документы, которые проиндексированы соответству­
ющими кодами. Для удобства поиска и отбора по каждому до­
кументу формируется специальная карточка, на которую
244
j.2. Информационно-поисковые каталоги и тезаурусы
V
Е[юлют«чные
алфтентнопредлетыекагатш
Автсмлппировгшны?
инфсрмлцкинопакхсеыекатгиюш
1{нфермпрюнюпоикссые
квау-русы
Рис. 6.5. Системы классификаций!того индексирования докумен­
тов
наносится информация о кодах предметных рубрик документа,
а также, как правило, об авторе, названии и др. библиографи­
ческих данных документа, его физическом местонахождении,
и реферат, который уже на естественном языке в сжатом виде
отражает содержание документа. Поиск и отбор документов не­
посредственно осуществляется по отбору карточек с необходи­
мыми индексными кодами для последующего извлечения из
хранилища собственно самих документов.
Перечислительная классификация иллюстрируется на
рис. 6.4.
245
6. Документальные информационные системы
Наименование предметной рубрики Код
Гомогенизация
Графитизация
Закалка
Закалка в закалочной ванне
Закалка с отпуском
Нормализация
Отжиг
Патентирование
Светлый отжиг
Ступенчатая закалка
Сфероидюация
Термическая обработка
Томление
Черный отжиг
001
002
003
ОСИ
005
006
007
008
009
010
011
012
013
014
Картотека
Док.1
003,005,008,012
Док.2
007,008,012,014
Ч^,
^
Рис. 6.4. Индексирование документов на основе перечислитель­
ной классификации
В приведенном на рис. 6.4 примере документ № 1, в кото­
ром речь идет об описании патента по технологии закалки с
отпуском, проиндексирован кодами 003 (Закалка), 005 (Закал­
ка с отпуском), 008 (Патентирование) и 012 (Термическая об­
работка). Документ № 2 с описанием патента по черному от­
жигу проиндексирован кодами 007 (Отжиг), 008 (Патентирова­
ние), 012 (Термическая обработка) и 014 (Черный отжиг).
Отсутствие систематизированных связей и отношений
между предметными рубриками является основным недостат­
ком перечислительной классификации. Так, в приведенном при­
мере рубрика «Закалка отпуском» является подрубрикой руб­
рики «Закалки» и интуитивно ясно, что если документ получил
код «Закалки отпуском», то тем самым он автоматически отно­
сится и к более широкой рубрике «Закалка».
Приемом, способствующим в определенной степени пре­
одолению данного недостатка, является использование в спис­
ке рубрик специальных перекрестных ссылок через конструк­
цию «см. также». В этом случае в классификаторе вместе с руб­
рикой «Закалка» помещается следующая конструкция:
«см. также Закалка в закалочной ванне
246
6.2. Информационно-поисковые каталоги и тезаурусы
Закалка с отпуском»
Перекрестные ссылки ориентируют пользователя на смыс­
ловую связь некоторых рубрик, позволяя более адекватно стро­
ить выражение своих информационных потребностей.
При систематизированной классификации список пред­
метных рубрик строится, как иерархическая структура, в виде
перевернутого дерева. Вся предметная область ИПС разбива­
ется наряд взаимоисключающих (непересекающихся) рубрик.
Каждая рубрика, в свою очередь, может включать несколько
подрубрик по принципу «Род-Вид». Таким образом, при систе­
матизированной классификации используются уже некоторые
семантические основы предметной области, выражаемые в
родо-видовых отношениях основных категорий, понятий и клас­
сов. Представление иерархической классификации производит­
ся либо в виде древовидного графа рис. 6.5 а), либо в таблич­
ном виде рис. 6.5 б).
Так же, как и при перечислительной классификации, со­
держание документа индексируется кодами соответствующих
рубрик, однако при этом отпадает необходимость в явном
Предметная о&пастъ сведений
1
2
1
1
1.1
1
1.2
1
1.1.1
1.1.2
1
1.1.2.1
1.1
1.1.1
1.1.2
1.1.2.1
1.1.2.2
1.1.3
1.2
2.
2.1
2.2
2.3
2.3.1
2.3.1.1
2.3.1.2
2.3.1.3
2.3.2
|
2.1
2.3
2.2
2.3.1
1.1.3
|
1.1.2.2
^
2.3.1.1
1
2.3.2
|
2.3.1.2
2.3.1.3
б)
Рис. 6.5. Древовидная а) и табличная формы б) представления
иерархической классификации
247
6. Документальные информационные системы
указании более общих рубрик, к которым относятся отмечен­
ные подрубрики. В результате индексирование и поиск доку­
ментов на основе иерархической классификации позволяют бо­
лее адекватно отражать содержание документов и обеспечива­
ют большую точность поиска. Так, документ из предыдущего
примера с описанием патента по технологии закалки с отпус­
ком на основе иерархической классификации может быть про­
индексирован только рубрикой «Закалка с отпуском», обозна­
чение которой включает указание на автоматическое отнесе­
ние содержания документа и к более широкой рубрике
«Закалка» и к еще более широкой рубрике «Термическая обра­
ботка».
Перечислительный и иерархический подходы к классифи­
кации впоследствии воплотились в широко используемых в
библиотечной практике алфавитно-предметных каталогах,
наиболее распространенным из которых в настоящее время яв­
ляется универсальная десятичная классификация (УДК). В ос­
нове УДК лежит классификационная схема Дыои, дополнен­
ная правилами образования сложных рубрик, а также специ­
альными определителями, служащими для более детального
описания документов (определители формы и характера доку­
мента, определители времени и т. д.). При этом систематизиро­
ванная классификация позволяет строить сам каталог (картоте­
ку документов) в структурно-иерархическом виде10, что существен­
но упрощает выражение пользователем своих информационных
потребностей, и, тем самым, ускоряет и повышает точность поис­
ка.
Недостатком как перечислительной, так и иерархической
классификации является принципиальная невозможность зара­
нее перечислить все темы, по которым существуют или могут
существовать документы. Выход из таких ситуаций путем до­
бавления к классификатору новых рубрик (классов, предметов)
не может эффективно решить проблему, так как требует в та­
ких случаях переиндексирования всего ранее накопленного
10
Каждый класс каталога—ящикснабором карточек документов с соответству­
ющим содержанием.
248
6.2. Информационно-поисковые каталоги и тезаурусы
документального фонда, что чаще всего нереально по техни­
ческим и технологическим аспектам.
Принцип организации классификационного индексирова­
ния документов, преодолевающего в определенной степени та­
кие ограничения перечислительной и иерархической класси­
фикации, был предложен в 30-х годах выдающимся индийс­
ким библиотековедом и математиком Ш. Р. Ранганатаном,
развит впоследствии в работах английской группы по исследо­
ванию классификаций (Classification Research Group) и полу­
чил название аналитико-синтетической или иначе фасет­
ной классификации. Идея фасетной классификации состоит в
том, что вся предметная область сведений разбивается наряд
исходных групп рубрик (фасет) по организационно-техноло­
гическому или семантическому принципу, отражающему спе­
цифику предметной области.
Фасеты выступают в роли «кирпичиков», из которых мож­
но сложить (сконструировать) любую, даже самую сложную и
узкую предметную рубрику. Внутри фасет предметные рубри­
ки строятся и упорядочиваются по алфавитно-иерархическому
принципу. Так, к примеру, предметная область документов по
производству технологического оборудования разбивается на
четыре фасета'' — «Конфигурации», «Материалы», «Типы раз­
рушений» и «Напряжения и нагрузки». На основе соединения
подрубрик фасет «конструируются» любая конкретная и узкая
тематика — см. рис. 6.6.
В фасетной классификации, фрагмент которой приведен на
рис. 6.6, документ, где речь идет о нагрузках на сжатие трубча­
тых конструкций из никелевых сплавов, получит индекс
Ac Bgt Lg, который будет отражать достаточно узкую темати­
ку, исключая, как и в иерархической классификации, отбор до­
кументов с более широкими рубриками.
Основное достоинство фасетной классификации заклю­
чается в возможности ограниченным небольшим перечнем фасетных рубрик отразить (сконструировать) огромное количе" Примеры на рис. 6.4 и 6.6 заимствованы из источника — Ланкастер Ф.У. Ин­
формационно-поисковые системы.— М.: Мир, 1972.
249
6. Документальные информационные системы
К Конфигурации
Ас Трубчатые
КТипы разрушений
Kg Ползучесть
Kgb Длительная
прочность
Ki Хрупкий излом
К1 Продольный изгиб
Кр Усталость
Kpf Коррозионная уста­
лость
В Материалы
Вс Металлы
Вес Железные сплавы
Bed Стали
Bcfa Хром истые
стали
Вей Хромонжелевые
стали
Bgt Нжелевые сплавы
L Напряжения и нагрузки
Lb
Ld
Le
Lg
Растяжение
Кручение
Срез
Сжатие
Lm Удар
Рис. 6. б. Пример фрагмента фасетной классификации
ство узких специализированных рубрик и, тем самым, наибо­
лее точно и полно проиндексировать содержание документов.
Специфической проблемой фасетной классификации явля­
ется влияние на эффективность поиска документов порядка
следования обозначений рубрик фасет. Психологические осо­
бенности поиска таковы, что пользователь в первую очередь
сосредоточивает внимание на обозначениях тех подрубрик, ко­
торые стоят первыми в цепном списке сконструированной фор­
мулы, и если интересующие его в первую очередь сведения от­
ражаются рубрикой, стоящей не на первом месте, то он может
«с ходу» отвергнуть всю формулу. Для преодоления этого не­
достатка используется так называемая пермутацияп, при ко­
торой для документа приводится список всех возможных вари­
антов написания сконструированной фасетной формулы на ос­
нове циклической перестановки, например:
:
250
Пермутация — от слова «перестановка».
6.2. Информационно-поисковые каталоги п тезаурусы
Ac Bgt Lg
LgAcBgt
Bgt LgAcHT. д.
Однако такой подход не всегда полностью решает пробле­
му, так как комбинаций по перестановкам может быть очень
много, что, в свою очередь, утяжеляет иуслоэ/сняет поиск.
Другим подходом является, напротив, жесткая регламента­
ция порядка изложения фасет, что в определенной степени ори­
ентирует первоначальное внимание пользователя на тех фасе­
тах, информация по которым интересует его в большей степе­
ни.
Сильной стороной фасетной классификации является бо­
лее глубокое, чем при иерархической классификации, исполь­
зование семантики. Фасеты, как уже отмечалось, отражают оп­
ределенные семантические основы предметной области ИПС,
содержащие помимо родо-видовых и некоторые прочие семан­
тические, в частности ролевые, отношения13. Рядом исследова­
телей предлагались универсальные или специализированные
фасетные классификации («Индивидуальность», «Материя»,
«Энергия», «Пространство» и «Время» — Ранганатан; «Пред­
мет в целом», «Вид», «Часть», «Материал», «Свойство», «Про­
цессы», «Операции», «Факторы» — Миллз). Поэтому, в отли­
чие от перечислительной и иерархической классификации, для
разработки фасетной классификации предметной области све­
дений конкретной ИПС используются те же методологические
подходы, что и при разработке информационно-логических схем
предметных областей фактографических систем (выделение
основных фрагментов-сущностей, анализ отношений между
ними и т. д.).
" Специальные указатели типа «Объект (субъект) действия», «Инструме] IT (сред­
ство) действия».
251
6. Документальные информационные системы
6.2.2. Координация понятий
в классификационных системах
Еще одним аспектом развития систем классификации и
поиска документов является координация понятий (классов,
рубрик), выражающаяся в использовании различных операций
над совокупностью понятий при индексировании документов
или при поиске документов (см. рис. 6.3). При этом выделяют
два направления — использование только логических операций™
(объединение, пересечение, дополнение, включение) и исполь­
зование определенной грамматики понятий15, классов, рубрик
в рамках определенного семантического языка.
Рассмотрим содержание простейших логических операций
в отношении классификационных понятий. Под классом (по­
нятием) будем понимать совокупность (множество) докумен­
тов, проиндексированных кодом соответствующего класса.
Объединением классов X и У называется множество докумен­
тов X И Y, которые проиндексированы кодом класса ХИПИ ко­
дом класса Y или одновременно кодами обоих классов. Пере­
сечением классов X и ^называется множество документов Хп Y,
одновременно проиндексированных классом Хи классом Y.
Дополнением класса X классом называется множество докумен­
тов X'=-i X, не проиндексированных кодом класса X16. В фор­
мальной логике операция объединения может выражаться тер­
минами «логическая сумма», дизъюнкция или «операция ИЛИ»,
операция пересечения терминами «логическое произведение»,
конъюнкция, или «операция И», операция дополнения терми­
нами «логическое отрицание» или операция «НЕ».
Еще одной важной операцией является операция включе­
ния. Класс ^является включением класса Y —> X, когда любой
документ, проиндексированный классом X, является одновре­
менно документом, проиндексированным классом Y.
14
Точнее операций из теории множеств.
Так называемые синтагматические отношения.
16
В свою очередь обратно X является дополнением X'.
15
252
».2. Информационно-поисковые каталоги и тезаурусы
Рассмотренные операции в терминах теории множеств ил­
люстрируются на рис. 6.7.
Рис. 6.7. Иллюстрация операций над классами
Логические операции над понятиями предоставляют воз­
можности отображения при индексировании документов и фор­
мировании запросов более сложных и многоаспектных поня­
тий. Так, к примеру, рубрика Ac Bgt Lg из примера на рис. 6.6
по фасетной классификации в терминах логических операций
представляет собой пересечение трех классов — Ac n Bgt n Lg,
соответственно. При этом использование дополнительных опе­
раций объединения (ИЛИ) и отрицания (НЕ) обеспечивает по­
строение более сложных, чем при чисто фасетной классифика­
ции, комбинаций рубрик, классов и понятий. Кроме того, опе­
рация включения дает возможность так называемого цепного
представления и описания иерархических структур каталогов,
формализуя систематизированный аспект классификаторов.
Идеи координации понятий, т. е. использования операций
над классами, активно развивались в 40-е—50-е гг. в первых
механизированных системах организации поиска документов
(уже упоминавшиеся карты У. Баттена на основе оптического
совпадения, система «Зато-кодирования» К. Муэрса и система
унитермов М. Тауба). При этом определилось два направления
координации понятий — предкоординация и посткоординация
(см. рис. 6.3).
Предкоординация понятий предусматривает использова­
ние операций над классами при индексировании документов.
Иначе говоря, индекс документа представляет собой конструк253
6. Документальные информационные системы
циго из исходных понятий (классов) классификатора, постро­
енную на основе логических операций. В системах на основе
посткоординации понятий логические операции над класса­
ми осуществляются при поиске документов, т. е. в процессе фор­
мирования поискового образа запроса. Технология и механизм
поиска при этом включают предварительный отбор всех доку­
ментов с индексами классов (рубрик), входящих в логическую
конструкцию запроса, с последующим осуществлением соб­
ственно логических операций над отобранными совокупностя­
ми (множествами) документов.
6.2.3. Информационно-поисковые тезаурусы
Особую роль в развитии информационно-поисковых сис­
тем сыграли работы Мортимера Тауба, разработавшего в
1951 году систему унитермов. В системе Тауба содержание до­
кумента индексируется совокупностью терминов в виде одно­
словных обозначений — унитермов. Например, документ по
теории информационного поиска может быть проиндексиро­
ван двумя унитермами—«Информационный», «Поиск». В ка­
честве унитермов чаще всего выступают элементы словаря клю­
чевых терминов по определенной предметной области.
В системе Тауба первоначально не предполагалось какойлибо связи или отношений между унитермами и, следователь­
но, ее можно отнести к чисто дескрипторным системам. Вмес­
те с тем сразу же проявились и такие специфические проблемы
дескрипторных систем, как ложная координация понятий. Яв­
ление ложной координации заключается в такой координации
понятий (классов, терминов), которые хотя по отдельности и
присутствуют в содержании документа, но комбинируются по
смыслу с другими понятиями (терминами, классами). Так, на­
пример, в содержании документа, в котором речь идет об ин­
формационном обеспечении поисковых бригад при ликвида­
ции чрезвычайных происшествий и последствий стихийных
бедствий, также присутствуют в числе прочих унитермы—«Ин­
формационный» и «Поиск», и, следовательно, он совершенно
254
£.2. Информационно-поисковые каталоги н тезаурусы
неправильно может быть выдан на запрос по теории информа­
ционного поиска.
Другой проблемой в системах на основе унитсрмов явля­
ются синонимичность и омонимичность" некоторых терми­
нов, что приводит к неоднозначности индексировани я докумен­
тов. Для преодоления ложной координации и других проблем
стали вводить составные термины, указатели связи и ролей
терминов («род —• вид», «средство действия» и т. п.), заново
открывая в некотором смысле предметную иерархическую руб­
рикацию со связями, и внося тем самым в чисто дескрипторную систему элементы семантики. Так появилось отдельное на­
правление информационно-поисковых систем, получившее на­
звание тезаурусов.
Тезаурус (сгреч. «хранилище», «запас», «сокровищница»)
в узком смысле представляет собой специальный словарь-спра­
вочник, в котором перечислены ключевые слова-дескрипторы
определенной предметной области, указаны синонимичные им
ключевые слова, установлены способы устранения синонимии,
омонимии, полисемии, определены родо-видовые и ассоциа­
тивные связи дескрипторов18.
В более общем плане в тезаурусе выделяют классифика­
ционную схему и алфавитный перечень дескрипторов-ключевых слов. Классификационная схема определяет системати­
зацию дескрипторов по уровням иерархии исходя из «родо-ви­
довых» или ролевых отношений. Алфавитный перечень
содержит словарный фонд дескрипторов для индексирования
документов.
Внешним отличием информационно-поисковых тезаурусов
от информационно-поисковых каталогов на основе предметной
иерархической рубрикации со связями и ролевыми отношени17
Синонимы — одинаковые или близкие по смыслу слова, омонимы — слова,
одинаковые в написании и звучании, но имеющие разный смысл — ключ (в замке),
ключ (источник воды).
'"Строгое определение информационно-поискового тезауруса (нормативный сло­
варь дескритиорного ИПЯ с зафиксированными в нем парадигматическими отношечиямилексических единиц) приведено в ГОСТ 7.74-96 СИБИД. Информационно-поис­
ковые языки.— М.: Изд-во стандартов, 1997.
255
6. Документальные информационные системы
ями является то, что в тезаурусах помимо классификационной
схемы присутствуют сами ключевые слова и дескрипторы, объе­
диняемые под названием классов, рубрик и т. д. В каталогах же
присутствуют только лишь обозначения (названия) классов,
понятий и т. д., но не определены и нет самих ключевых терми­
нов, им соответствующих.
Главная идея информационно-поисковых тезаурусов зак­
лючается в повышении эффективности и автоматизации ин­
дексирования документов в рамках дескрипторного подхода.
Иначе говоря, в системах на основе информационно-поиско­
вых тезаурусов ПОД представлен набором дескрипторов (клю­
чевых терминов). Однако в процессе индексирования докумен­
тов учитываются семантические (родо-видовые, ролевые, си­
нонимичные, омонимичные, полисемичные и ассоциативные)
отношения между дескрипторами, что, в конечном счете, обес­
печивает более адекватный содержанию ПОД и повышает эф­
фективность поиска документов (по точности, полноте и шуму).
Разработка тезаурусов и их внедрение в информационнопоисковые системы интенсивно осуществлялись в 60-е и 70-е
годы. При этом в соответствии с тематическим профилем вы­
делились многоотраслевые, отраслевые и узкотематические
тезаурусы. Первым многоотраслевым тезаурусом за рубежом
явился «Тезаурус технических и научных терминов», вышед­
ший в декабре 1967 г. в США. В 1972 г. под редакцией Ю. И. Шемакина был разработан первый отечественный многоотрасле­
вой «Тезаурус научно-технических терминов». В семидесятые
годы тезаурусы были разработаны практически для всех отрас­
лей деятельности, а также создано большое количество узкоте­
матических специализированных тезаурусов.
На основе практики разработки и использования информа­
ционно-поисковых тезаурусов были также разработаны специ­
альные представления тезаурусов, закрепленные в нашей стра­
не в соответствующих ГОСТах19. Согласно ГОСТ 18383-73 фор­
ма представления тезауруса включает алфавитное перечисление
14
ГОСТ 18383-73. Тезаурус информационно-поисковый. Общие положения. Фор­
ма представления.
256
6.2. Информационно-поисковые каталоги п тезаурусы
статей по каэ/сдому дескриптору (термину) в следующем
виде20:
РЕФЕРАТ
с резюме
в СВЕРТЫВАНИЕ ИНФОРМАЦИИ
н РЕФЕРАТАВТОРСКИЙ
РЕФЕРАТГРАФИЧЕСКИЙ
РЕФЕРАТИНФОРМАТИВНЫЙ
РЕФЕРАТ «ТЕЛЕГРАФНОГО СТИЛЯ»
РЕФЕРАТУКАЗАТЕЛЬНЫЙ
РЕФЕРИРОВАНИЕ
а АННОТАЦИЯ
где в качестве буквенных обозначений выступают следующие:
с — термины-синонимы;
в — термины, подчиняющие заглавный термин, т. е. выше
по иерархии;
н—термины, подчиненные заглавному, т. е. ниже по иерар­
хии;
а—термины, ассоциированные с заглавным термином.
Еще одной особенностью тезаурусов является применяе­
мая на практике возможность расширения словарной базы но­
выми ключевыми терминами, появляющимися при накоплении
документов в ходе эксплуатации системы. В этом плане раз­
личают базовые и рабочие тезаурусы. Базовые тезаурусы выс­
тупают в качестве нормативных пособий по лексике в той или
иной отрасли знаний или предметной области. Рабочие тезау­
русы в стартовом виде строятся на основе базовых тезаурусов
и дополняются в процессе индексирования и анализа появле­
ния в документах новых или специфичных терминов (так на­
зываемые профессионализмы, иногда жаргонные термины и
т. д.). В результате возникает еще один специфический компо20
Пример позаимствован из работы: Соколов А.В. Информационно-поисковые
системы: Учеб. пособие для вузов/Под ред. А. Б. Рябова. — М.: Радио и связь, 1981.
257
6. Документальные информационные системы
нент эксплуатации соответствующих ИПС, называемый веде­
нием тезауруса.
6.2.4. Автоматизация индексирования
документов
Важным в практическом плане аспектом информационнопоисковых систем являются технологии, принципы и механиз­
мы индексирования документов применительно к той или иной
классификационной схеме.
Развитие теории информационного поиска документов,
создание первых механизированных информационно-поиско­
вых систем поначалу не предполагали какой-либо автоматиза­
ции (механизации) индексирования документов. Индексирова­
ние осуществлялось специально подготовленными специалис­
тами-экспертами в предметной области ИПС, которые могли
осуществлять многоаспектный и глубокий анализ смыслового
содержания документа и относить его (индексировать) к тем
или иным классам, рубрикам, ключевым терминам. Такой под­
ход обусловливал высокие накладные расходы на создание и
ведение документальных информационно-поисковых систем,
так как требовал наличия в организационном штате высоко­
квалифицированных специалистов-индексаторов. Кроме того,
в процесс индексирования при этом вносился человеческий фак­
тор (субъективность поисковых образов одного документа,
проиндексированного разными специалистами и т. п.).
Поэтому в теории информационного поиска в 50-х-60-х го­
дах выделилось отдельное направление исследований, связан­
ное с вопросами автоматизации индексирования документов.
Идеи и начало этих исследований были инициированы появле­
нием уже упоминавшейся системы унитермов Тауба. Индекси­
рование документов набором однословных дескрипторов-тер­
минов (унитермов), имеющихся в тексте документа, позволило
снизить профессиональные требования к индексаторам и,
фигурально выражаясь, механистицировать21 процесс индек­
сирования.
21
Иначе в некотором смысле приблизить к чисто механической работе по выяв­
лению в тексте унитермов.
258
til. Информационно-поисковые каталоги и тезаурусы
С применением и все более широким использованием вы­
числительной техники в информационно-поисковых докумен­
тальных системах эти подходы трансформировались в задачи
и технологии автоматического, т. е. без участия специалис­
тов, индексирования документов.
Огромную роль в исследовании и последующем развитии
теории информационного поиска документов сыграли резуль­
таты Крепфилдского (I и II) проекта, проводившегося в конце
50-х — начале 60-х годов Английской ассоциацией специаль­
ных библиотек и информационных бюро. В ходе эксперимен­
тальных исследований эффективности нескольких различных
по типу информационно-поисковых систем (система на основе
УДК, фасетная система, система унитермов и некоторые их раз­
новидности), проведенных в ходе реализации Кренфилдского
проекта, выявились факторы противоречивого влияния неко­
торых семантических показателей классификационных ИПС
(глубина уровней классов при индексировании, объем словар­
ной базы и др.) на полноту и точность информационного поис­
ка. Выявилась общая принципиальная закономерность — при
повышении полноты поиска на основе использования тех или
иных семантических методов при индексировании происходит
снижение точности поиска и наоборот. Еще одним «неожидан­
ным» результатом явилось небольшое отличие в показателях
эффективности поиска документов в системах с развитой се­
мантикой индексирования и в системах на основе неконтролиру­
емой лексики.
Последний результат активизировал в дальнейшем внима­
ние к более простым и менее дорогим дескрипторным систе­
мам с неконтролируемой или слабоконтролируемой лексикой
(унитермы, полнотекстовые системы), в которых на основе по­
сткоординации при обработке запросов удается достичь впол­
не приемлемых показателей полноты и точности поиска. Эти­
ми же обстоятельствами был обусловлен импульс исследова­
ниям технологий автоматического индексирования и уже на
новом уровне возродилась идея полной механизации (точнее,
уже автоматизации) индексирования документов.
259
6. Документальные информационные системы
Сформировалось два, хотя и близких, но различных по со­
держанию подхода автоматическому индексированию. Первый
подход основан на использовании словаря ключевых слов (тер­
минов) и применяется в системах на основе информационнопоисковых тезаурусов. Индексирование в таких системах осу­
ществляется путем последовательного автоматического поис­
ка в тексте документа каждого ключевого термина. На этой
основе строится и поддерживается индекс системы, собственно
и реализующий поисковое пространство документов.
Применяется два типа образования индекса — прямой и
инвертированный (см. рис. 6.8).
. Термины
1
!
§
Ci
а,
а2
с2
Сз
Номера (названия) документов
Сц
X
•5-
а,
а3
а,
X
X
X
X
Прямой тип
организации индекса
X
X
•:-:-ш
X
X
Ш
Сз
С4
а*
аг
J!|3II!
Сг
X
а,
с,
X
X
1»
-5,
m
Cs
X
X
X
X
X
X
•Cs'
X
X
Инвертированный тип
организации индекса
Рис. 6.8. Прямой и инвертированный типы организации индекса
Прямой тип индекса строится по схеме «Документ-тер­
мины». Поисковое пространство в этом случае представлено в
виде матрицы размерностью NxM (N — количество докумен­
тов, М—количество ключевых терминов). Строки этой матри­
цы представляют поисковые образы документов.
Инвертированный тип индекса строится по обратной схе­
ме — «Термин —документы». Поисковое пространство соот­
ветственно представлено аналогичной матрицей только в транс­
понированной форме. Поисковыми образами документов в этом
случае являются столбцы матрицы.
260
6.2. Информационно-поисковые каталоги н тезаурусы
На основе автоматического индексирования документов по
ключевым терминам могут решаться также и задачи автомати­
ческой классификации документов, т. е. автоматического от­
несения документов к тем или иным классификационным
рубрикам. Такие задачи особенно актуализировались в связи с
интенсивным развитием в 90-х годах глобальных информаци­
онных сетей, появлением «электронной» периодики, книг и ог­
ромных массивов прочей неструктурированной текстовой ин­
формации в компьютерной форме. Автоматическое распозна­
вание в больших объемах текстовой информации документов
по определенной тематике позволяет существенно снизить зат­
раты на предварительный отбор информации из внешних ис­
точников для пополнения базы документов ИПС по соответ­
ствующей предметной области. Принцип решения таких задач
аналогичен решению задач информационного оповещения (см.
рис. 6.2). Для конкретного класса документов (рубрики) стро­
ится поисковый образ, который в системах на основе индекси­
рования по ключевым терминам может быть представлен на­
бором определенных терминов или их сочетаний. Поисковые
образы документов из внешних источников сравниваются по
определенному критерию с поисковым образом py6piIKU. II на
этой основе принимается решение о внесении документов в
базу, т. е. об отнесении содержания документа к предметной
области ИПС.
Второй подход к автоматическому индексированию приме­
няется в полнотекстовых системах. В процессе индексирова­
ния «на учет», т. е. в индекс заносится информация обо всех
словах текста документа (отсюда, как уже отмечалось, и назва­
ние «полнотекстовые»). Более подробно особенности полно­
текстового индексирования рассматриваются в следующем па­
раграфе.
261
6. Документальные информационные системы
6.3. Полнотекстовые информационнопоисковые системы
Процессы массовой компьютеризации и информатизации
деятельности предприятий, организаций в конце 80-х и в 90-х
годах привели к накоплению огромных массивов неструктури­
рованной текстовой компьютерной информации, с одной сто­
роны, и доступности (всеобщей распространенности и персональности) вычислительной техники, с другой стороны. Воз­
никла потребность в программном инструментарии, который
бы обеспечивал эффективный поиск нужных текстовых дан­
ных.
Семантические подходы к автоматизации такого рода за­
дач (информационно-поисковые каталоги, фасетные и тезаурусные системы) не могли быть в полной мере использованы в
массовой персональной автоматизации, т. е. на рабочем месте
отдельного пользователя или для небольшой рабочей группы,
так как требовали серьезной предварительной проработки со­
ответствующей предметной области22. Потребовались средства,
которые бы в максимальной степени освобождали пользовате­
ля от необходимости сложной предварительной структуриза­
ции предметной области и затратных процедур индексирова­
ния при накоплении, получении и агрегировании текстовых
данных, но в то же время создавали бы эффективный и интуи­
тивно понятный поисковый инструментарий необходимых до­
кументов.
В результате на рынке программных продуктов в конце
80-х годов появились полнотекстовые ИПС и программные
22
В этом отношении примечательным является следующее замечание-— файло­
вые системы ОС ПК предусматривают создание произвольной схемы логических дис­
ков, каталогов, подкаталогов и т.п., которые по логике должны отображать структуру
предметной области сведений пользователя ПК и, тем самым, в упрощенном утриро­
ванном виде решать задачи систематизации размещения документов-файлов для быс­
трого и эффективного их нахождения. Однако в большинстве случаев пользователями
такая адекватная их потребностям система каталогов не создается из-за недостаточной
их квалификации или нетривиальностн самой структуры предметной области и дан­
ные зачастую размещаются довольно хаотично.
262
6.3. Полиотскстовыс информационно-поисковые системы
средства их создания, называемые иногда полнотекстовыми
СУБД
6.3.1. Информационно-технологическая
структура полнотекстовых И П С
Полнотекстовые ИПС строятся на основе информационнопоисковых языков дескриптор/юго типа. Их информационнотехнологическая структура представлена на рис. 6.9 и включа­
ет следующие элементы:
• хранилище (базу) документов;
• глобальный словарь системы;
• индекс документов инвертированного типа;
• интерфейс ввода (постановки на учет) документов в сис­
тему;
• механизм (машину) индексирования;
• интерфейс запросов пользователя;
• механизм поиска документов (поисковую машину);
• механизм извлечения (доставки) найденных документов.
Хранилище документов может быть организовано как
единая локально сосредоточенная информационная структу­
ра в виде специального файла (файлов) с текстами докумен­
тов. Организация такого файла предусматривает указательную
конструкцию на основе массива адресов размещения докумен­
тов. Для компактного хранения документов они могут быть
сжаты архиваторами.
Другой вариант не предусматривает создания локально со­
средоточенного хранилища документов, а ограничивается лишь
массивом адресов расположения документов в соответствую­
щей компьютерной информационной инфраструктуре (струк­
тура дисков и каталогов отдельного компьютера или локаль­
ной информационной сети, информационная инфраструктура
глобальной информационной сети). Файлы текстовых докумен­
тов распределены и размещаются в тех узлах и элементах ин­
формационной инфраструктуры, которые соответствуют техно­
логии создания и обработки документов (документообороту).
Вместе с тем все они учтены в полнотекстовой ИПС (т. е. про263
6. Документальные информационные системы
Механизм риашшщ
1ШДЕКС1П) ования
И pV мехаюпкпонска
(кош особая
лшшима)
под
"U\
Проиндексированный
докумеш
V
Глобальный.,',
словарь гнетены
*VA
Документ 1
Документ 2
ЛУЙ
44
Документ 3
«4s
Документ к
V
Документ N
nCKVMBHTOlt
-I A -
т
?-••,
Слот
1
2
Ангар
Анчар
к
к+1
Вода
Время
m
m+1
Скала
Система
-Ё
1
-X
J* ТТолкотг кетовый
? х к я » тированный индекс
iw
ММ док/тентзв
W
J_
О
Окат?цы - поиска ьв
образы документов г%.
(двотные вектс$я>£|
••* ч*
'ШШ
:Л
Ы е х а н т м т в л е ч ю ш я (доставки)
Рис. 6.9. Информационно-технологическая структура полнотек­
стовых ИПС
индексированы по содержанию и зафиксированы по месторас­
положению) для эффективного поиска и доступа к ним. Такой
подход более логичен с точки зрения технологий документо­
оборота или распределенного характера систем (например, си­
стема WWW сети Интернет), но недостатком имеет необходи264
б.З. Полнотскстовые информационно-поисковые системы
мость постоянного отслеживания и учета возможных переме­
щений документов.
Одним из наиболее характерных элементов полнотексто­
вых ИПС является глобальный словарь системы. Глобальные
словари могут быть статическими и динамическими.
Статические словари не зависят от содержания докумен­
тов, вошедших в хранилище, а определены изначально в систе­
ме. В качестве таких статических словарей в том или ином виде,
как правило, выступают словари основных словоформ соответ­
ствующего языка (русского, английского, немецкого и т. д.).
Динамические словари определяются набором словоформ,
имеющихся в накапливаемых в хранилище документах. Изна­
чально такой словарь пуст, но с каждым новым документом в
него помещаются новые словоформы, которых еще не было в
ранее накопленных документах. Такой подход более экономи­
чен и обеспечивает некоторую настройку словарной базы на
предметную область документов.
Элементы глобального словаря выступают в качестве дес­
крипторов ИПЯ системы. Поступающие через интерфейс вво­
да/вывода документы подвергаются операции индексирования
по глобальному словарю. Механизм индексирования в полно­
текстовых МПС полностью автоматизируется и заключается в
создании специального двоичного вектора, компоненты кото­
рого показывают наличие или отсутствие в данном документе
слова с соответствующим номером (позицией) из глобального
словаря. В результате на «учет» в системе ставятся все слова
текста документа, откуда, повторимся, происходит и название—
«полнотекстовые ИПС».
Важной особенностью, оказывающей существенное влия­
ние на эффективность полнотекстовых ИПС, является на­
личие либо отсутствие морфологического разбора при индек­
сировании документов и запросов. Морфологический разбор по­
зволяет распознавать как одну общую словоформу все
однокоренные слова (вода, водный, водяной), а также лексемы,
т. е. одни и те же слова, отличающиеся в тексте различными окон­
чаниями, приставками и суффиксами (водный, водного, водно265
6. Документальные информационные системы
му, воду, воде и т. п.). Такой процесс основывается на нормали­
зации глобального словаря системы, объединяющей в одну сло­
воформу (в одну позицию) все однокоренные слова и лексемы.
Кроме того, при морфологическом разборе отбрасываются так
называемые неинформативные слова (стоп-слова) — предло­
ги, союзы, восклицания, междометия и некоторые другие грам­
матические категории. В большинстве случаев морфологичес­
кий разбор осуществляется в системах со статическим глобаль­
ным словарем. Для русского языка в качестве такого
нормализованного глобального словаря используется составлен­
ный в 1968 году академиком И. К. Зализняком морфологичес­
кий словарь русского языка. Он позволяет распознать и соот­
ветственно нормализовать более 3 млн. словоформ.
В результате индексирования ПОД каждого нового доку­
мента представляется набором словоформ из глобального сло­
варя, присутствующих в тексте документа, и поступает в виде
соответствующего двоичного вектора для дополнения индекса
системы. Индекс строится по инвертированной схеме и в дво­
ичном виде отражает весь (полный) текст учтенных или накоп­
ленных документов.
При удалении документа из системы соответственно уда­
ляется и поисковый образ документа, т. е. соответствующий
столбец индекса.
Пользователь языком запросов ИПЯ полнотекстовой ИПС
через соответствующий интерфейс запросов выражает свои
информационные потребности по поиску документов, которые
в общем плане, так же как и документы, индексируются и в
виде двоичных векторов поисковых образов запросов поступа­
ют на поисковую машину. Механизм поиска основывается на
тех или иных алгоритмах и критериях сравнения поискового
образа запроса с поисковыми образами документов, образую­
щими индекс системы. Результатом поиска является определе­
ние номеров документов, поисковые образы которых соответ­
ствуют или близки поисковому образу запроса. Далее специ­
альная подсистема на основе установленных в хранилище
266
6.3. Полнотскстовыс информационно-поисковые системы
документов указательных конструкций извлекает и достав­
ляет соответствующие документы пользователю.
Таким образом, программное обеспечение полнотекстовых
ИПС обеспечивает полный технологический цикл ввода, обра­
ботки, поиска и получения документов. В практическом плане
ИПС могут поставляться как готовый информационный про­
дукт, т. е. с уже сформированной базой документов и интерфей­
сом поиска и доступа к ним23. В других случаях поставляется
программная среда, позволяющая такую базу создать и сформи­
ровать тем самым документальную информационно-поисковую
систему. Такие программные средства иногда называют полно­
текстовыми СУБД.
6.3.2. Механизмы поиска документов
в полнотекстовых И П С
В полнотекстовых ИПС поиск документов осуществляет­
ся по индексу системы через дескрипторныи язык запросов с
логическими операциями над словоформами, а также через дру­
гие механизмы использования поисковых образов документов
и запросов.
Принцип и механизм поиска документов по индексу сис­
темы очевидны. Пользователь должен указать путем перечис­
ления и ввода в систему тех словоформ, набор которых выра­
жает его информационные потребности. К примеру, если
пользователю необходимо найти документы, содержание кото­
рых касается экспорта редкоземельных элементов, то запрос к
системе может выглядеть следующим образом «экспорт ред­
коземельные элементы». В ответ система по индексу опреде­
лит номера (группу) документов, где присутствует слово «экс­
порт», группу документов, где присутствует слово «редкоземель­
ные», и группу документов, где присутствует слово «элементы».
Ясно, что полнота и точность такого поиска будут оставлять
желать много лучшего, так как в первой группе документов
2
' Такими информационными продуктами, основанными в том числе и на полно­
текстовых технологиях, являются многочисленные юридические информационно-спра­
вочные системы— «Кодекс», «Гарант», «Консультант плюс» и др.
267
6. Документальные информационные системы
могут присутствовать в том числе и документы, в которых речь
идет об экспорте чего-то другого, например леса, или об экс­
порте вообще. Во второй группе документов могут присутство­
вать документы, в которых речь идет, в том числе, о добыче
или производстве редкоземельных элементов, но не об их экс­
порте. В третьей группе документов могут присутствовать и
документы, в которых речь идет, скажем, о преступных элемен­
тах, что, конечно же, совершенно может не соответствовать
благим информационным потребностям пользователя.
Слабая эффективность подобного способа выражения ин­
формационных потребностей преодолевается некоторыми ре­
ляционными дополнениями такого чисто дескрипторного языка
запросов на основе посткоординации, только не понятий, а
словоформ. В язык запросов вводятся логические операции от­
ношений дескрипторов запроса — операция логического «И»,
операция логического «ИЛИ», операция логического отрица­
ния «НЕ».
Если словоформы запроса из приведенного выше примера
объединить операцией логического «И», то система отберет
только те документы, в которых одновременно присутствуют
словоформы «Экспорт», «Редкоземельные», «Элементы». Не­
смотря на возможность ложной координации словоформ, та­
кое усовершенствование чисто дескрипторного характера язы­
ка запросов приводит к существенному повышению эффектив­
ности поиска и предоставляет пользователю более развитые
возможности по выражению своих информационных потреб­
ностей.
Следует также добавить, что подобные принципы постро­
ения языка запросов повышают требования к квалификации
пользователя, в частности по пониманию и оперированию ло­
гическими операциями. Вместе с тем, как показывает практи­
ка, большинство так называемых «неподготовленных» пользова­
телей способно самостоятельно осваивать и применять подоб­
ные, в общем-то, интуитивно понятные языковые конструкции.
На практике язык запросов полнотекстовой ИПС дополня­
ется также операциями работы с датами и в ряде систем воз268
б.З. Полпотскстовыс информационно-поисковые системы
можностями координатного анализа текста документов. Ра­
нее неявно предполагалось, что единичным объектом поиска
словоформ и соответственно областью действия логических
операторов является документ, а не более мелкие его составля­
ющие — абзацы, предложения. В системах с координатным ана­
лизом область действия логических операторов можно сужать
вплоть до предложения. Примером таких возможностей явля­
ется запрос на отыскание таких документов, где словоформы
«экспорт», «редкоземельные», «элементы» присутствуют одно­
временно (операция «И») внутри одного предложения. Коор­
динатный анализ позволяет еще более повысить эффективность
поиска релевантных документов, но требует более детального
индексирования. Для словоформ словаря системы в индексе
должны при осуществлении координатного анализа фиксиро­
ваться не только номера документов, но номера абзацев, номе­
ра предложений и номера соответствующих словоформ в по­
рядке следования слов в соответствующих предложениях.
Отличительной особенностью поиска документов по ин­
дексу является практическая независимость времени (скорос­
ти) поиска от объема базы документов, особенно если исполь­
зуется статический словарь. Для любого запроса, независимо
от текущего объема базы документов, выполняется приблизи­
тельно одинаковое количество операций, связанных с просмот­
ром строк индексного массива и определением совокупности
номеров релевантных документов. Следующей стадией выпол­
нения запроса является собственно извлечение из базы (файла
документов) самих документов. Для этого обычно в полнотек­
стовой ИПС создается специальный массив (см. рис. 6.9) адре­
сов начала расположения документов.
В системах с динамически поддерживаемыми словарями
время поиска при увеличении объема базы документов сначала
также увеличивается (т. к. пропорционально увеличивается
объем словаря и, соответственно, объем индекса), а затем так
же, как в системах со статическими словарями, перестает зави­
сеть от объема базы документов. Это объясняется тем, что с
некоторой границы объема базы документов словарь системы
269
6. Документальные информационные системы
уже набирает практически полный набор словоформ, присущих
конкретной предметной области, и вероятность появления в
новом документе слова, которого еще не было в словаре систе­
мы, резко падает.
Как уже отмечалось, повышению эффективности поиска
способствует морфологический разбор документов и запросов.
Помимо существенного уменьшения объема словаря и, соот­
ветственно, индекса системы, морфологический разбор повы­
шает и эффективность поиска, так как не реагирует на несуще­
ственные с точки зрения смыслового содержания грамматичес­
кие различия искомого текста документов и запросов. Если
вернуться опять-таки к примеру с запросом «экспорт редкозе­
мельные элементы», то система с морфологическим разбором
отберет не только те документы, в которых встречается бук­
вальное сочетание словоформ «экспорт», «редкоземельные»,
«элементы», но и такие фразы, как «К вопросу об экспорте ред­
коземельными элементом*», «Проблемы экспорта редкоземель­
ных элементов» и т. п.
Морфологический разбор в принципе дает возможность
пользователю формировать запросы на естественном языке.
Система при обработке запроса удаляет из него все «стоп-слова», остальные словоформы нормализует и, оставляя пользова­
теля в полной иллюзии о том, что она действительно его «по­
нимает», выполняет таким образом выхолощенный запрос.
Некоторое время тому назад наблюдалось сильное увлечение
таким подходом, от которого, к счастью, вскоре разработчики
полнотекстовых ИПС отошли. Использование якобы естествен­
ного языка запросов на самом деле не позволяет применять ло­
гические операторы и другие развитые возможности, связан­
ные с координатным анализом местонахождения и контекстно­
го окружения искомых слов, терминов, сочетаний и т. д.
Еще одной важной характеристикой поиска документов по
индексу, в том числе с учетом логических операций посткоор­
динации и морфологического разбора, является то, что такой
поиск основывается на упрощенном детерминированном под­
ходе. Иначе говоря, критерием поиска является вхождение или
6.3. Полпотскстовыс информационно-поисковые системы
невхождение того или иного дескриптора-словоформы запро­
са в поисковый образ документа без учета общей «похожести»
ПОД и ПОЗ. Масса остальных дескрипторов поискового обра­
за документа не рассматривается. Поэтому в развитых полно­
текстовых ИПС реализуются более тонкие и сложные алгорит­
мы поиска, основанные на сравнении ПОД и ПОЗ в целом по
тем или иным критериям похожести, близости.
Такой подход позволяет предоставлять пользователям бо­
лее эффективные возможности выражения своих информаци­
онных потребностей без их явной формализации и структури­
зации по словоформам. В частности, пользователь может по­
ставить ИПС задачу поиска документов, «похожих» по
содержанию на какой-либо другой (известный ему релевант­
ный, точнее пертинентный) документ или фрагмент докумен­
та. В этом случае не только ПОД, но и ПОЗ представляют со­
бой полномасштабные двоичные векторы, часть дескрипторов
которых будет совпадать, а часть не совпадать, и возникнет не­
обходимость в использовании более тонких критериев опреде­
ления близости документов и запроса. Кроме того, становится
возможным определение количественных мер (показателей)
близости, т. е. релевантности документов и запросов.
6.3.3. М е т о д ы количественной оценки
релевантности документов
Количественные показатели релевантности — процент со­
ответствия содержимого документа запросу, ранжирование (са­
мый релевантный документ, менее релевантный, еще менее ре­
левантный) и т. п., позволяют существенно увеличить конеч­
ную эффективность использования документальной системы,
предоставляя пользователю возможность после отбора доку­
ментов сразу сосредоточиваться на наиболее важных из них.
Определение количественных показателей релевантности
документов в полнотекстовых ИПС основывается на тех или
иных подходах по вычислению мер близости двоичных векто­
ров документов и запросов.
Документ Dk представляется в системе двоичным вектором:
271
б. Документальные информационные системы
где dki= 1, если словоформа под номером / присутствует в к-м
документе, и 0, если отсутствует.
Аналогичным образом представляются поисковые образы
запроса Z пользователя:
\Z\'Z2>-'ZL):I
^
где zk=\, если словоформа под номером /с присутствует в зап­
росе, и zk =0, если отсутствует.
Критерии релевантности подразделяются по моделям
представления и сопоставления документов и запросов, к ко­
торым относятся:
• булева модель;
• модель нечетких множеств;
• пространственно-векторная модель;
• вероятностно-статистическая модель.
В качестве показателя (меры) релевантности документов
используется так называемое значение статуса выборки
(retrieval status value—RSV). В булевой модели критерием ре­
левантности является полное совпадение векторов ПОД и ПОЗ.
Соответственно RSVb булевой модели определяется как логи­
ческая сумма операций попарного логического произведения
соответствующих элементов векторов ПОД и ПОЗ:
R
SVk=idk.&z,,
i=\
где k-1, ...,N, N— количество документов в базе, L — количе­
ство словоформ в словаре, &—логическая операция «И».
Значением RSVB булевой модели может быть единица (ре­
левантный документ) или ноль (нерелевантный документ). По
сути, булева модель не дает количественной меры релевантно­
сти и ничем не отличается от простого поиска по индексу сис­
темы с логической операцией «И» словоформ-дескрипторов.
В системах на основе модели нечетких множеств значе­
ния компонент векторов ПОД и ПОЗ могут принимать не толь­
ко два альтернативных значения — 1 и 0 (термин принадлежит
272
6.3. Полнотскстовые информационно-поисковые системы
документу ИЛИ не принадлежит), но и такое значение, как «не­
полная, частичная принадлежность». Соответственно в моде­
ли нечетких множеств переопределены и логические операции,
чтобы учитывать возможность неполной принадлежности по­
добных логических элементов анализируемым множествам (по­
исковым образам запросов). Вычисление значений статуса вы­
борки RS Vпроизводится аналогичным булевой модели обра­
зом с учетом переопределения операции & («И»).
Несмотря на некоторое расширение выразительных воз­
можностей представления и сопоставления документов и зап­
росов, модель нечетких множеств, как и булева модель, не дает
по-настоящему количественной меры релевантности, хотя дос­
тоинством обеих моделей является их простота и невысокие
вычислительные затраты на реализацию.
В системах на основе пространственно-векторных мо­
делей поисковое пространство представлено многомерным про­
странством, каждое измерение которого соответствует слово­
форме (термину) из словаря системы. Например, если в слова­
ре всего три словоформы, то поисковое пространство является
трехмерным, и т. д. В исходном варианте пространство имеет
евклидову метрику, т. е. представляется ортогональным бази­
сом нормированных векторов, отражающих соответствующие
словоформы словаря системы. Поисковый образ документа и
запроса в поисковом пространстве представляется многомер­
ным вектором единичной длины, координаты которого отра­
жают наличие или отсутствие в документе соответствующих
словоформ. В случае трехмерной размерности пространствен­
но-векторная модель иллюстрируется на рис. 6.10.
Показатель релевантности (по аналогии с булевой моде­
лью будем обозначать его RSV) для пространственно-вектор­
ной модели в простейшем случае определяется скалярным про­
изведением векторов ПОД и ПОЗ:
273
6. Документальные информационные системы
-^т
тк
1
2
- Слово
Ангар
Анч^р
Вода
Поисковое многомерное пространство
Z(1,0,1,. )
щ
1|
¥'.
D,(1,1,0,. )
_ 1
Рис. 6.10. Иллюстрация пространственно-векторной модел
представления и сопоставления документов и запросов
Таким образом, определяемый показатель релевантности
RS F может изменяться в диапазоне от 0 до N(N— число слово­
форм или терминов в словаре системы) и действительно коли­
чественно отражает степень релевантности документов. Так, в
приведенном на рис. 6.10 примере значение RSVl = 2, а значе­
ние RS К,= 1. Для выдачи пользователю конкретного набора ре­
левантных документов информационно-поисковые системы
ограничиваются выдачей документов, показатель релевантно­
сти которых запросу Л^Кпревышает некоторый заранее уста­
новленный порог.
Следует также заметить, что при таком подходе абсолют­
ные значения показателя релевантности зависят не только соб­
ственно от самой степени релевантности, но и от количества N
словоформ в словаре системы. Поэтому на практике применя­
ют нормализованный вариант RSV, определяя его с учетом ор­
тогональности и ортонормированности поискового простран­
ства как косинус угла между вектором ПОД и вектором ПОЗ:
RSV,
Ъ
k,i
N
В этом случае ЛЗКпринимает значения отОдо 1 и не зави­
сит от объема словаря системы.
Определенным недостатком такого подхода к расчету ко­
личественной меры релевантности является нечувствитель­
ность к степени соответствия отсутствующих словоформ
274
6.3. Полнотскстовые информационно-поисковые системы
(терминов) в ПОД и ПОЗ. Интуитивно понятно, что чем ближе
содержание документа и запроса, тем меньше в документе дол­
жно быть словоформ (терминов), которых нет в запросе. Если,
к примеру, в_словаре системы всего 6 элементов и имеется два
документа Д, (1,1,0,1,0,0) и Д2(1,1,1,1,1,1), то для запроса 3(1,1,0,0,0,0)
значение RSV для обоих документов будет равно 2 (33%), хотя
интуитивно понятно, что более близким по содержанию явля­
ется первый документ, а второй документ, скорее всего, затра­
гивает более широкую тематику, не обязательно интересующую
пользователя.
Такой чувствительностью обладает показатель реле­
вантности, определяемый следующим образом:
гдей^, и 2 , —дополнение к элементамdk, и г,, т. е.
dkj=l,
если dkJ =0 и наоборот.
Если вернуться к предыдущему примеру с документами
Д, (1,1,0,1,0,0), Д2 (1,1,1,1,1,1) и запросом 3(1,1,0,0,0,0), то RSVдля пер­
вого документа будет равным 5 (83%), а для второго доку­
мента 2 (33%), что выглядит, конечно же, «справедливее».
Более развитым, но и более сложным подходом к опреде­
лению мер близости ПОД и ПОЗ является учет разной значи­
мости словоформ (терминов) и их зависимости друг от дру­
га. В пространственно-векторной модели это означает отход
от ортогональности и ортонормированности базисных век­
торов поискового пространства. В этом случае скалярное про­
изведение векторов ПОД и ПОЗ более гибко и осмысленно от­
ражает близость соответствующих векторов и, тем самым, смыс­
ловое содержание документов и запросов.
В простейшем варианте подобного расширения простран­
ственно-векторной модели различные словоформы в глобаль­
ном словаре системы дополняются специальными весовыми
коэффициентами, отражающими важность соответствую­
щей словоформы (термина) для конкретной предметной обла275
6. Документальные информационные системы
сти. Соответственно поисковые векторы документов и запро­
сов в этом случае превращаются из двоичных векторов в обыч­
ные, т. е. с любыми значениями (а не только 0 или 1) своих
компонент. Иногда такой подход называют «окрашиванием»24
глобального словаря системы. Следует также заметить, что в
случае перехода от глобального словаря (отражающего все слова
и словоформы) к словарю терминов происходит вырождение
полнотекстового характера ИПС и она переходит в категорию
систем на основе тезаурусов.
На практике применяются также и другие подходы, расши­
ряющие возможности двоичной (ортогональной и ортонормированной) пространственно-векторной модели. Такие подходы
базируются на вероятностно-статистической модели. При
этом можно выделить две разновидности вероятностно-статис­
тического подхода:
• придание весовых коэффициентов словоформам (терми­
нам) глобального словаря вне контекста конкретного докумен­
та;
• придание весовых коэффициентов компонентам векторов
ПОД по итогам индексирования конкретного документа (с уче­
том контекста конкретного документа).
Первый подход основан па анализе итогов индексирования
совокупности документов, уже вошедших в базу (хранилище)
ИПС. Совокупность словоформ (терминов), обязательно при­
сутствующих в любом документе базы, считается наиболее
адекватно отражающей тематику предметной области ИПС, и
соответствующие словоформы (термины предметной области)
получают наибольший вес, наибольшую значимость в словаре
системы, по которому производится индексирование докумен­
тов. В качестве числовых характеристик весов значимости
терминов используются те или иные статистические пара­
метры, такие, например, как относительная или абсолютная
частота вхождения термина в документы базы системы. Разно­
видностью такого подхода является учет количества вхожде-
24
276
В смысле окрашивания по определенной предметной области.
6.3. Полнотекстовые информационно-поисковые системы
иий в совокупность документов базы тех или иных словоформ
или терминов.
Более сложные варианты развития первого подхода осно­
вываются на технологиях «обучения» и настраивания ИПС на
конкретные предметные области. Традиционный способ обу­
чения основывается на использовании обучающей выборки до­
кументов. Такая выборка формируется либо на основе отбора
текстов экспертами в конкретной предметной области, либо
путем использования документов по соответствующим рубри­
кам каталогов библиотек и т. п. Далее осуществляется исследо­
вание обучающей выборки на предмет статистических показа­
телей вхождений в документы выборки тех или иных словоформ
или терминов. Результатом обучения является «окрашенность» (раз­
личные весовые коэффициенты словоформ) словаря системы.
Другой подход основывается на апостериорном выделении
в поисковом пространстве «сгущений» векторов ПОД и после­
дующем анализе совокупности и количественных данных вхож­
дения в такие группы документов тех или иных словоформ (тер­
минов). Предполагается, что такие группы соответствуют осо­
бенностям тематики конкретной предметной области, и
словоформы, в них входящие, получают наибольшие весовые
коэффициенты на основе тех или иных статистических пара­
метров. Еще одним вариантом является учет дискриминируемости (различимости) термина. Если при внесении в текст
одного из двух близких по векторам ПОД документов какоголибо термина происходит резкое «расщепление» этих векторов,
то такой термин считается более информативным и значимым,
и его коэффициент важности, соответственно, должен быть
выше.
При втором подходе к реализации вероятностно-статисти­
ческой модели различия в весах значимости словоформ или
терминов проявляются по результатам индексирования кон­
кретного документа. В простейшем варианте анализируется,
сколько раз тот или иной термин входит в данный документ.
Словоформам или терминам, имеющим наибольшее количество
277
6. Документальные информационные системы
вхождений, присваиваются более высокие веса в векторе ПОД.
В векторах запросов (ПОЗ) все словоформы или термины счи­
таются равнозначными, но их различные веса в векторах ПОД
обеспечивают большую релевантность тех документов, где со­
ответствующие словоформы или термины встречаются наибо­
лее часто.
Отдельной ветвью развития второго подхода является ис­
пользование обратной, интерактивной связи с пользовате­
лем. В этом случае информационно-поисковая система стре­
мится настроиться не столько на определенную предметную
область, сколько на специфические особенности тематики ин­
формационных потребностей конкретного пользователя. В об­
щем виде для каждого пользователя ИПС создает свое поиско­
вое пространство с индивидуальным окрашиванием компо­
нентов векторов ПОД. Такое индивидуальное окрашивание
производится путем запрашивания системой у пользователя его
оценки релевантности выданных на каэ/сдый текущий запрос
документов. Уточнив у пользователя, какие на его взгляд доку­
менты наиболее релевантны, система анализирует особеннос­
ти и статистические параметры вхождения тех или иных сло­
воформ (терминов) в эти наиболее релевантные документы, пе­
реопределяет и уточняет их весовые коэффициенты. Тем самым
в последующих запросах более адекватно и глубже учитыва­
ются информационные потребности конкретного пользовате­
ля.
Существуют и другие разновидности вероятностно-стати­
стических подходов к расширению пространственно-векторной
модели поиска документов, но, к сожалению, из-за отсутствия
в документации на коммерческие ИПС соответствующей ин­
формации по деталям механизмов поиска и релевантности до­
кументов оценить и проанализировать неэффективность до­
вольно затруднительно.
В целом же информационно-поисковые полнотекстовые
системы являются одним из наиболее интенсивно развиваю­
щихся направлений документальных информационных систем,
существенно продвигая теорию и практику информационного
278
6.4. Гипертекстовые информационно-поисковые системы
поиска документов и развивая методы анализа и автоматизиро­
ванной обработки текстовой неструктурированной информации.
6.4. Гипертекстовые информационнопоисковые системы
Анализ организации работы различных аналитических
служб и отдельно взятого аналитика показывает, что основой
их информационного обеспечения в традиционных «бумажных»
технологиях являются различные тематические подборки, пап­
ки с текстовыми документами (служебные документы, копии
статей из специальной периодики, выписки из книг, газетные
вырезки и т. п.), систематизированные по расположению на ос­
нове какого-либо критерия (в алфавитном порядке по названи­
ям, хронологически по дате документов, ранжированием по важ­
ности или по иным критериям). Причем документы в таких
папках-подборках, как правило, снабжаются еще специальны­
ми пометками и взаимными отсылками по каким-либо смыс­
ловым ассоциациям. Отталкиваясь от какого-либо одного, ре­
левантного документа, аналитик по отсылкам отбирает из под­
борки и все, ассоциированные по данному смысловому
содержанию, документы. Процесс отбора документов по ссыл­
кам в определенной степени напоминает навигацию по геогра­
фическим картам, чем и определяется название соответствую­
щего подхода к организации документального поиска.
В отличие от информационно-поисковых систем на основе
индексирования документов, семантически-навигационные
системы изначально возникли и развивались как чисто компь­
ютерные системы и прошли пока еще короткий, но уже доста­
точно богатый период развития.
Считается, что первым идеи ассоциативно-навигацион­
ного подхода к анализу текстовой информации выдвинул в
1945 году советник президента Рузвельта по науке Ванневар
Буш. В своей статье «Как мы могли бы мыслить», где он изла­
гал проект создания технической (точнее, фотомеханической)
системы, обеспечивающей «ассоциативное» связывание тек279
6. Документальные информационные системы
стов, В. Буш писал: «Работа человеческой мысли построена на
принципе ассоциаций. Анализируя какое-либо понятие или эле­
мент, она непременно стремится поставить ему в соответствие
какой-нибудь другой знакомый образ, подсказываемый ассоци­
ацией мыслей, и это соответствие устанавливается благодаря
трудноуловимой паутине связей, формируемых клетками чело­
веческого мозга»25. Идеи В. Буша, как это иногда бывает, на­
много опередили свое время, и потребовался более чем 20-лет­
ний период накопления опыта работы с компьютерной инфор­
мацией, пока в 70-х годах не были предприняты первые попытки
практической реализации систем с ассоциативным связывани­
ем текстов, выразившиеся в технике так называемого гипер­
текста.
6.4.1. Гипертекст
Гипертекст в узком
смысле представляет собой
обычный текст, содержа­
щий ссылки на другие свя­
занные по смыслу фрагмен­
ты того же текста (доку­
мента) или на другие
тексты (на внешние доку­
менты). При этом ссылки
для пользователя-читателя
в тексте имеют вид выде­
ленных слов или словосоРис. 6.11. Принцип гипертекста
четаний, обладающих ка­
кой-либо смысловой связью с текстом того фрагмента или дру­
гого текста, куда «направляет» ссылка-(так называемая
гиперссылка).
Программное средство, отображающее гипертекст, напри­
мер текстовый редактор или броузер сети Интернет, обеспечи­
вает отображение гипертекста и навигацию пользователя-чи25
Цитируется по работе: Елисеев В., Ладыженский Г. Введение в Интранет /
СУБД. — 1996. — № 5-6. — С. 24.
280
6.4. Гипертекстовые информационно-поисковые системы
тателя по гиперссылкам. «Щелкнув» мышью по выделенному
слову (т. е. по гиперссылке), пользователь-читатель открывает
связанный по ссылке текст (другой фрагмент этого же текста
или другой текст).
Привычным «бумажным» аналогом гипертекста являются
оглавления и предметные указатели книг, содержащие ссылки
на главы, разделы или фрагменты книги с соответствующей
информацией. При этом ссылка выглядит как номер страницы,
с которой начинается соответствующая глава или раздел, где
находится соответствующий фрагмент текста. Отобрав в оглав­
лении или предметном указателе нужное название или термин
и считав номер соответствующей страницы, читатель открыва­
ет книгу в искомом месте, т. е. переходит, или, выражаясь подругому, осуществляет «навигацию» в нужное место книги.
В 70-е и 80-е годы, в особенности в период «персонализации» вычислительной техники, были предприняты многочис­
ленные попытки создания специальных гипертекстовых обо­
лочек, на основе которых либо совершенствовался примитив­
ный текстово-командный интерфейс ранних операционных
систем (знаменитая оболочка «Norton Commander» для ОС
MS DOS), либо для прикладных программных средств созда­
вались гипертекстовые справочные (help-овые) системы и ру­
ководства.
В конце 80-х — начале 90-х годов были предприняты пер­
вые попытки стандартизации гипертекста. Таким стандартом
являлся стандарт American Cybernetics Hypertext System (ACI
Hypertext), реализованный в среде встроенной системы макро­
команд широко известного в «узких» программистских кругах
текстового редактора MultiEdit.
Впоследствии гипертекст стал широко использоваться в
справочных системах программ-приложений операционной си­
стемы Windows и фирмой MicroSoft был разработан специаль­
ный пакет WinHelp для создания гипертекстовых справочных
«систем помощи». В настоящее время техника гипертекста яв­
ляется фактическим стандартом создания разнообразных ком-
281
6. Документальные информационные системы
пыотерных справочных и учебных систем, руководств пользо­
вателя и энциклопедий.
Период взрывной интенсификации применения технологий
гипертекста связан с бурным развитием и распространением в
конце 80-х — начале 90-х годов глобальных информационных
систем, и, в частности, сети Интернет. Идеи гипертекста как
принципа ассоциативного связывания в распределенную инфор­
мационную среду документов на территориально удаленных
компьютерах были использованы группой специалистов под
руководством Теодора Нельсона, который в 1988 г. представил
проект гипертекстовой системы Xanadu, финансировавшийся
впоследствии основателем известной компании Autodesk Джо­
ном Уокером, который в то время пророчески предвещал все­
объемлющее развитие и распространение гипертекстовых тех­
нологий. В 1989 г. в Лаборатории физики элементарных частиц
европейского центра ядерных исследований (ЦЕРН) под руко­
водством Тима Бернерса-Ли стартовал проект создания гипер­
текстовой системы обмена научными данными в сети Интер­
нет, получивший впоследствии название «Всемирной паути­
ны» — World-Wide Web (WWW). В 90-х годах паутина WWW
стала одним из наиболее бурно развивающихся сегментов сети
Интернет, создав немыслимую ранее глобальную гипертексто­
вую информационную инфраструктуру.
6.4.2. Структура, принципы построения
и использования гипертекстовых ИПС
В структуре гипертекстовой ИПС можно выделить не­
сколько функциональных подсистем (см. рис. 6.12).
Основными из них являются:
• подсистема отображения документов и гиперссылок;
• подсистема навигации по связям (гиперссылкам);
• подсистема формирования связей (гиперссылок);
• и собственно сама гипертекстовая база (хранилище) до­
кументов.
Подсистема отображения документов и гиперссылок
(гипертекста) базируется на принципах отображения докумен282
6.4. Гипертекстовые информационно-поисковые системы
Подгнстем» отображения
документов х связей
(гнпер ссылок)
.Рис. б. 72. Структура гипертекстовой ИПС
тов в текстовых редакторах (страницы, поля, абзацы, шрифт,
скроллинг и т. д.) с дополнительными приемами внешнего ото­
бражения в тексте гиперссылок. Как уже отмечалось, стандар­
тным способом отображения гиперссылок является выделение
в тексте специальным фоном, цветом или шрифтом ключевых
слов, имеющих определенную смысловую связь с тем фрагмен­
том или документом, на который указывает ссылка. В разви­
тых гипертекстовых системах, как, например, в системе WWW,
в гипертексте могут отображаться также графика (рисунки,
диаграммы), звуковые и даже видеоанимационные элементы,
что в совокупности создает мультимедийную технологию ра­
боты с информацией. В этом случае в качестве гиперссылок
могут также выступать и специальные изображения, значки,
иконки, что дает возможность использования для отображения
283
6. Документальные информационные системы
связей различных графических ассоциаций. В остальном под­
система отображения гипертекста напоминает обычный тексто­
вый редактор, допуская стандартные операции просмотра
(скроллинг, масштаб) и обработки текста (копирование, кон­
текстный поиск и т. д.).
Подсистема навигации по связям реализует специальный
интерфейс перехода по гиперссылкам. Если гиперссылка ука­
зывает на другой фрагмент того же документа, то подсистема
навигации обеспечивает скроллинг (прокрутку) отображения
текста к соответствующему фрагменту. Если гиперссылка ука­
зывает на внешний документ, то стандартным приемом для си­
стем, реализованных в оконно-графических операционных сре­
дах (MS Windows), является открытие в новом окне соответ­
ствующего документа. Приемом инициализации перехода по
гиперссылке обычно является «щелчок мышью» по ключево­
му слову или графическому значку, обозначающему соответ­
ствующую гиперссылку, либо перевод текстового курсора на
соответствующую гиперссылку и нажатие клавиши «Enter».
Для осуществления навигации в гипертекстовом докумен­
те для каждой гиперссылки хранится адрес расположения со­
ответствующего документа или фрагмента. В современных ги­
пертекстовых средах для удобства ориентирования пользова­
теля применяется специальный прием «подсказки» адреса
гиперссылки при осуществлении подготовительных операций
перед ее активизацией (т. е. при переводе курсора мыши или
текстового курсора на гиперссылку непосредственно перед щел­
чком или нажатием клавиши «Enter»).
Навигация по гиперссылкам формирует для пользователя
определенный сюжетно-тематический поток по цепочке ас­
социаций. Нетривиальной проблемой, как и при навигации в
банках фактографических систем с сетевой моделью организа­
ции данных, является способ отображения и визуализации це­
почек «пройденных» документов. Так как такие цепочки доку­
ментов могут быть неопределенно длинными, то открытие и
отображение каждого следующего по проходу документа в до­
полнительном окне приводят к быстрому заполнению, а потом
284
6.4. Гипертекстовые информационно-поисковые системы
и наслоению окон с документами на экране компьютера. При
этом документ, на который указывает гиперссылка из другого
документа, может помимо непосредственной ассоциации вклю­
чать и совершенно иной содержательный контекст, что быст­
ро «уводит» пользователя от основной темы и дезориентирует
его. Поэтому в большинстве систем используется только одно
окно для отображения документов, а при переходе по гипер­
ссылке к связанному документу происходит «выталкивание»
предыдущего документа в специальный неотображаемый стек
для пройденных документов. Дополнительно обеспечивается
свободная навигация по сформированной таким образом цепоч­
ке документов (по пройденному пути) по принципу «ВпередНазад», что позволяет пользователю путем возвращений назад
или перемещений вперед лучше анализировать сюжетно-тсматический поток ассоциаций.
Способ формирования и отображения цепочки пройден­
ных документов по линейному принципу «Вперед-Назад» не
всегда адекватно позволяет представить схему сюжетно-тематического потока документов из-за наличия возможных ветв­
лений в таких цепочках. Если из какого-либо документа (узла
цепочки) имеется несколько гиперссылок на различные доку­
менты, то сценарием «разговора» пользователя с гипертексто­
вой базой может быть «спуск» от такого документа по имею­
щимся ветвям на определенную глубину, с последующим возвра­
том (подъемом) и спуском по другим ветвям. Линейно-списочный
способ отображения цепочек пройденных документов в этом слу­
чае из-за многочисленных возвратов не дает общего представ­
ления и взгляда на ассоциативную окрестность связанных до­
кументов (см. рис. 6.13).
При наличии только иерархических связей между пройден­
ными документами отработанным приемом отображения
структуры ассоциативной цепочки пройденных документов
может быть способ отображения файловой структуры инфор­
мационных ресурсов компьютера, используемый в программах
типа «Проводник» операционной системы MS Windows 95.
285
6. Документальные информационные системы
Начало навигации
v
£*Д«.2 \
Обозначения:
>
связи по
гкпересьткам;
>
путь
навигации.
Цепочка (пинейка) пройденных документов,
отображаемая по принципу
Док.1
"Вперед-Назад":
Дек .2
Док-5
Док.2
Док.6
Док.2
Док.1
Дас-3
Док.7
Док.9
^
Док.7
Док.9
Дж.7
Док.3
Док.1
Док.4
Конец навигации
Док.8
• С Д.к.3 \
С Дм-О
Рис. 6.13. Навигация по гипертекстовой базе документов и ото­
бражение цепочек пройденных документов
Однако гипертекстовые сети документов, как будет рассмот­
рено ниже, являются не иерархическими, а гетерогенными. В
гетерогенных сетях могут существовать как одноуровневые и
межуровневые связи, так и обратные связи (отсылки), что вы­
рождает само понятие иерархии в таких сетях. Наглядно такие
структуры можно представить в виде неограниченной совокуп­
ности объемно переплетенной паутины узлов, хотя в отдель­
ных сегментах таких структур могут в определенной степени
сохраняться иерархические отношения. Отсюда, видимо, и ро­
дилось соответствующее название для распределенной гипер­
текстовой среды сети Интернет. «Блуждание» по подобным «ла­
биринтам» может образовывать столь запутанные «следы», что
их визуально-наглядное отображение весьма затруднительно.
Вместе с тем визуализация информационного поиска до­
кументов является чрезвычайно актуальной задачей, так как
может предоставлять пользователям дополнительные аспекты
анализа информации при аналитических исследованиях. Оп­
ределенные методологические подходы к решению таких за­
дач могут быть найдены на основе анализа семантической при­
роды гетерогенных сетей гипертекстовых документов.
286
6.4. Гипертекстовые информационно-поисковые системы
6.4.3. Модель организации данных
в гипертекстовых И П С
К сожалению, несмотря на интенсивное развитие и всеоб­
щее распространение в последнее десятилетие гипертекстовых
технологий, к настоящему времени еще не проработана полно­
стью формализованная модель организации гипертекстовых
данных, которая бы обеспечивала формализованные процеду­
ры синтеза (разработки, проектирования) и анализа (использо­
вания) гипертекстовых ИПС. Причина этого заключается, как
и в целом для всех типов документальных систем, в пока не­
преодолимых сложностях в формализованном описании смыс­
ла текстов на естественном языке.
Тем не менее в научной литературе имеется ряд работ, по­
священных формальным моделям гипертекстовых структур26.
Среди них можно выделить теорию паттернов, разработан­
ную американским математиком У. Гренандсром и развитую
впоследствии для гипертекста Л. В. Шуткиным, тензорную
модель А.В. Нестерова и подход логико-смыслового моделиро­
вания, представленный в работах М. М. Субботина, а также ряд
других подходов.
Первые два подхода основываются на формализации от­
дельных текстов специальными математическими конструкци­
ями. В теории паттернов текст рассматривается как сложноорганизованная совокупность отдельных тем, каждая из которых
может выражаться фрагментом текста с минимальным разме­
ром в виде одной строки. Для описания гипертекста в теории
паттернов вводятся также специальные объекты — кнопки
(аналог гиперссылки) и связи с идентификаторами и дополни­
тельными параметрами (тип, направленность и т. д.). В резуль­
тате размеченный гипертекст можно описывать теми или ины­
ми паттерновыми конфигурациями. Вместе с тем теория пат­
тернов не содержит средств синтеза обычного текста в
гипертекст.
26
См., например, Купер И. Р. Обзор отечественных гипертекстовых технологий
//Теория и практика общественно-научной информации. — Вып. 13. —1997.
287
6. Документальные информационные системы
Тензорный подход основывается на идеологии ранее рас­
сматривающейся фасетной классификации, которая позволяет
формализовано описать смысловую структуру текста в виде
тензора27, а гипертекстовую структуру в виде ансамбля тензо­
ров. Таким образом, сильной стороной тензорного подхода яв­
ляется возможность создания формализованных процедур ана­
лиза исходных текстов для создания гипертекстовых структур.
Наиболее развитым в практическом плане является подход,
основанный на логико-смысловом моделировании человечес­
кого мышления, позволяющий на основе семантической бли­
зости текстовых фрагментов связывать их в цельный осмыс­
ленный текст — семантическую сеть. Математическим аппа­
ратом для описания структуры гипертекста выступает теория
графов. Критерием для связывания текстов или их фрагментов
в семантическую сеть является возможность установления меж­
ду ними логических связок типа «есть», «является условием»,
«является причиной» и т. д. Построение на основе анализа тек­
ста таких связываний образует формализованные «высказыва­
ния», комбинируя которые можно получать определенные вы­
воды или, как говорят, новые знания, или подтверждать истин­
ность (доказывать) составных высказываний. В наиболее
развитом виде такой подход реализуется в так называемых ба­
зах знаний, составляющих основу особой ветви информацион­
ных систем, называемых экспертными системами.
Таким образом, при логико-смысловом моделировании
структура гипертекста представляет (точнее, должна представ­
лять) систему семантических связей между когнитивными эле­
ментами (понятиями, высказываниями) определенной предмет­
ной области. В результате сильной стороной такого подхода
является возможность автоматизации создания (разметки) ги­
пертекстовых структур на основе распознавания и соотнесения
27
В упрошенном виде тензор можно трактовать ка к математический объект, за­
вершающий иерархически усложняющуюся цепочку— «скаляр — вектор—тензор»,
т. е. как многокомпонентный объект в многомерном пространстве с заданным линей­
ным преобразованием его компонент при переходе от одной системы координат к дру­
гой.
288
6.4. Гипертекстовые информационно-поисковые системы
документов или их фрагментов к тем или иным узлам семанти­
ческой сети.
Если вернуться к структуре гипертекстовой ИПС (рис. 6.12),
то ее центральным элементом является гипертекстовая база
документов. По принципу формирования и управления гипер­
текстовыми базами их можно разделить на открытые (физи­
чески распределенные, или децентрализованные) и замкнутые
(локально сосредоточенные).
В замкнутых базах гипертекстовые документы находятся
в едином локально-сосредоточенном и централизованно управ­
ляемом хранилище (файле или группе файлов со специальным
форматом). Такое хранилище образует замкнутую семанти­
ческую сеть документов, гипертекстовые связи которых не вы­
ходят за пределы хранилища. Соответственно внесение в базу
новых документов или удаление документов производится не­
посредственно в месте расположения такой локальной базы.
В открытых базах гипертекстовые документы не образу­
ют единое локально размещенное хранилище, а располагаются
автономно в любых элементах (узлах) информационной сре­
ды. При этом информационная среда может ограничиваться
файловой структурой одного компьютера (диски, каталоги, под­
каталоги), локальной или глобальной информационной сетью.
В открытых базах семантическая гипертекстовая сеть докумен­
тов не управляется из одного центра (узла), а совместно стро­
ится и поддерживается всеми пользователями, работающими в
узлах информационной среды (сети). Несмотря на полную де­
централизацию создания и функционирования, при определен­
ных соглашениях (протоколах) об установлении и поддержа­
нии связей-гиперссылок, такие открытые семантические струк­
туры тем не менее представляют единый развивающийся по
определенным закономерностям организм.
В настоящее время техника гиперссылок, применяемая в
гипертекстовых системах, предполагает лишь однонаправлен­
ные связи, позволяющие осуществлять навигацию только в
прямом направлении. «Вернуться» обратно в исходный доку­
мент можно только по запомненной цепочке пройденных доку289
6. Документальные информационные системы
ментов, т. е. по схеме «Вперед-Назад». При этом прямой пере­
ход по гиперссылке осуществляется из определенного места,
точнее контекста исходного документа, а возврат осуществля­
ется обратно в документ в целом, т. е. фактически в его начало,
что может разрывать контекст (сюжетно-тематический поток)
анализа информации. В ранних гипертекстовых системах (про­
ект Xanadu) предполагался двунаправленный характер гипер­
ссылок, но практическая реализация такого подхода существен­
но усложняет протоколы навигации, так как требует более де­
тального координатного адресования объектов и субъектов
гиперссылок, идентифицирования пользователей и поддержа­
ния устойчивости документов (в смысле координатной струк­
туры).
В результате модель организации данных в гипертексто­
вых базах описывается ориентированными невзвешеиными гра­
фами с петлями и циклами. По определению граф (/представ­
ляет структуру, состоящую из множества вершин xr xv.. .,хп и
множества ребер ар а2,.. .,anf их соединяющих. По ребрам осу­
ществляется движение, переход от одной вершины к другой.
Ориентированные ребра, по которым переход возможен только
в одном направлении, называются дугами. Применительно к
структуре гипертекстовой базы вершины графа соответствуют
документам, а дуги гиперссылкам. Невзвешенность означает
равнозначность любых дуг по переходу, или, иначе говоря, оди­
наковую «стоимость» перехода по любой гиперссылке. Петлей
называется дуга, начальная и конечная вершины которой со­
впадают, т. е. применительно к гипертексту внутренняя гипер­
ссылка на другой фрагмент того же документа. Путем (или ори­
ентированным маршрутом) называется последовательность дуг,
в которой конечная вершина любой дуги, кроме последней, яв­
ляется начальной вершиной следующей дуги. В невзвешенном
графе, когда стоимость (вес) всех дуг одинакова, длиной пути
является число дуг, входящих в путь. Путь av а7..., а называ­
ется замкнутым, если в нем начальная вершина первой дуги о
совпадает с конечной вершиной последней дуги а . Если в зам­
кнутом пути любая вершина графа используется не более од290
4 4 . Гипертекстовые информационно-поисковые системы
ного раза (за исключением начальной и конечной, которые со­
впадают), то такой замкнутый путь называется циклом. При­
мер графа приведен на рис. 6.14.
-Oi!
Для алгебраического за­
дания графов, позволяющего
эффективно алгоритмизиро­
вать машинное представле­
ние и оперирование графами,
используются матрицы
смежности и иициденций.
Элементы (р.. матрицы смежРис. 6.14. Пример невзвешеп- н о с т и *** П^фа Сопределяютного графа с петлями и циклами с я следующим образом:
(р.. = 1, если в С существует дуга «..;
(р..= О, если в Сне существует дуга «...
Матрица смежности полностью определяет структуру гра­
фа. В частности, для графа, приведенного на рис. 6.14, матрица
смежности выглядит следующим образом:
(\
*¥••
1 0
1 0
°1
0 0
1 0
0 0
1 0 0
0 0
1 0
1 0
0
1 0 0
1 0 0
1 0 0
1 0
1
1 0
Матрица инциденций О, графа Gen вершинами и m дуга­
ми представляет собой матрицу размерности nxm и се элемен­
ты о~. определяются следующим образом:
ст..= 1, если вершина х является начальной вершиной дуги «.;
о~.= -1, если вершинах является конечной вершиной дуги «.;
о~. = 0, если вершина х не является концевой вершиной дуги а.
или если дуга «является петлей.
291
6. Документальные информационные системы
Графовая модель организации гипертекстовых данных яв­
ляется мощным инструментом, так как предоставляет ряд от­
работанных в теории графов алгоритмов для решения задач
анализа и синтеза структур гипертекстовых баз данных, нави­
гации и документального поиска в такого рода структурах.
Вместе с тем, как показала практика развития гипертек­
стовых структур, модель ориентированных невзвешенных гра­
фов с петлями и циклами является лишь приближенным сред­
ством отражения реального процесса восприятия и анализа че­
ловеком документальной текстовой информации, не учитывая
ряда гносеологических и семантических аспектов.
Анализ работы человека с документальными источниками
информации показывает, что ассоциативный ряд восприятия
фрагментов и документов не однороден. Ассоциативные от­
ношения выражаются в нескольких формах, в качестве основ­
ных из которых можно отметить:
(a) сноски (переходы к ним используются с целью поясне­
ния какого-либо термина, факта и т. д. с обязательным и ско­
рым возвратом, т. е. без прерывания контекста восприятия ос­
новного повествования, мысли, идеи);
(b) примеры (переходы по ним используются для иллюст­
рации частных проявлений объектов, процессов, явлений, и
также с обязательным и скорым возвратом без прерывания ос­
новного контекста);
(c) отступления, параллельные темы (переходы к ним
используются для обогащения основной темы с необязатель­
ным или нескорым возвратом, что может приводить к прерыва­
нию контекста изложения основной темы);
(d) подобие по форме и содержанию (переходы использу­
ются для более глубокого уяснения основной темы через ана­
лиз других подобных по форме, содержанию, структуре или
другим критериям тем, фрагментов, объектов, в том числе для
рассмотрения других точек зрения и подходов, с необязатель­
ным возвратом, что приводит к длительному прерыванию ис­
ходного контекста с возможным формированием нового кон­
текста);
292
6.4. Гипертекстовые информационно-поисковые системы
(e) особенности (переходы используются для рассмотре­
ния отличий конкретной темы или объекта изложения от по­
добных по форме или содержанию объектов с обязательным
возвратом без прерывания основного контекста);
(f) подобие по сущности (переходы используются для по­
строения ассоциативного ряда подобных или однородных
объектов, являющихся частными проявлениями одного обще­
го явления процесса, объекта, возврат не обязателен, что при­
водит к прерыванию исходного контекста, в том числе и для
формирования более общего или более широкого контекста).
Перечисленные формы ассоциативных отношений опреде­
ляют необходимость дифференциации типов связей-гиперссы­
лок в гипертекстовых базах документов. По признаку прерыва­
ния контекста материала можно выделить два типа гиперссы­
лок:
• с прерыванием контекста, назовем их навигационны­
ми гиперссылками;
• без прерывания контекста, т. е. с обязательным возвра­
том, назовем полистовыми гиперссылками.
Навигационные гиперссылки формируют ассоциативные
связи-отношения (с), (d) и (f) типа. Переходы по навигацион­
ным связям не имеют каких-либо пространственных и иных
ограничений и призваны формировать многоплановый сюжетно-тематический поток.
Листовые гиперссылки формируют ассоциативные связиотношения (а), (Ь) и (е) типа. Переходы по листовым гипер­
ссылкам ограничиваются единичной длиной к вершинам (уз­
лам), из которых нет другого выхода. Направленность дуг-свя­
зей по листовым гиперссылкам является обратной по отношению
к навигационным гиперссьшкам. Это означает, что прямой пе­
реход по ним осуществляется не в конкретное место отсылае­
мого документа, а в целом на документ (в начало) листовой вер­
шины, и наоборот, возврат в документ исходной вершины про­
исходит адресно, т. е. в место расположения листовой
гиперссылки.
293
6. Документальные информационные системы
Кроме ассоциативных отношений при восприятии докумен­
тальных источников важную роль имеют и классификацион­
ные отношения фрагментов и документов в следующих ос­
новных формах:
i) «родо-видовая» иерархия (переходы используются для
углубления, детализации рассмотрения или выбора темы, фраг­
мента, сюжета);
ii) иерархически-логические соотношения в форме «ввод­
ный материал—основной материал—заключительный мате­
риал» (переходы используются для построения или изменения
логико-тематического повествования);
ш) ролевые отношения, например такие, как «Объектсубъект-средство-место-время-участники действия» и др. (пе­
реходы используются для формирования или расчленения це­
лостного представления сложных разноплановых явлений, про­
цессов, событий).
Реализация дифференцированного подхода к образованию
и использованию гиперссылок в открытых децентрализованно
развивающихся системах является непростой проблемой, так
как требует переработки и усложнения протоколов передачи и
использования гипертекста, т. е. массового принятия в сети но­
вых и более сложных правил всеми пользователями и разра­
ботчиками информационных узлов распределенной гипертек­
стовой информационной инфраструктуры.
Поэтому подходы, связанные с дифференциацией характе­
ра гиперссылок, нашли свое воплощение в первую очередь в
закрытых (локальных) гипертекстовых ИПС. В качестве при­
мера развитых в этом смысле гипертекстовых систем можно
привести информационно-справочные системы помощи в сре­
де ОС MS Windows.
Модель организации данных в гипертекстовых справоч­
ных системах Microsoft Windows основана на сочетании диф­
ференциации ассоциативных гиперссылок и иерархического
принципа организации фрагментов и документов. Схематично
модель организации данных можно отобразить схемой, пред­
ставленной на рис. 6.15.
294
6.4. Гипертекстовые информационно-поисковые системы
Как видно из представленной схемы, данная модель соче­
тает апробированные и интуитивно понятные большинству
Обозрения:
& * * * '
х W J * * ^ 1ЙЖрч
-Иерархическая ссылка; ^ Г И П в р т е К С Т О В Ы Й Пр.адМе№ЫШукаЮТОТЬ 11\
I -Навигационная ссылка:
!
Страница верхнего уровня
-Листовая ссылка
раници.нижного.уротнш
••-?
у
х
т
X
ш
к
1
С1
3
• - >
m
Корневая
страница
верхнего
уровня
ш-
-7
:
е
- Е
01
а
CD
о
Лвижонио ипорх шно
ни иорпрхии
•
• прямое движвнви по гипвросылкам
• обратное движение пошаговым откатом
го цепочке пройденных страниц
• "скачок"из любого места в корневую
>
• только
возврат в
исходную
страницу
Рис. 6.15. Модель организации данных в гипертекстовых спра­
вочных системах Microsoft Windows
пользователей по аналогии работы с книгой иерархическую
навигационную структуру (гипертекстовые оглавление и пред­
метный указатель) с дифференцированными ассоциативными
гиперссылками, выражающими рассмотренные выше различ-
295
6. Документальные информационные системы
ные типы ассоциаций при изучении и восприятии текстовой
информации.
Вместе с тем использование справочных гипертекстовых
систем все же не может полноценно заменить традиционные
книги и учебники, так как большинство таких систем не обес­
печивает привычный пользователю по обычным книгам после­
довательный повествовательный поток, разрывая его по про­
странственной или предметной иерархии, и, кроме того, требу­
ют от пользователя новых навыков работы с текстовой
информацией и более точного осознания в любой момент сво­
их информационных потребностей.
Как и в моделях организации фактографических данных, в
модели организации гипертекстовых данных важное значение
имеет целостная составляющая. Применительно к гипертек­
стовым данным целостность и согласованность данных озна­
чает, прежде всего, целостность ссылок и выражается следу­
ющим принципом — «для каждой гиперссылки должен су­
ществовать адресат». Иначе говоря, целостность
гипертекстовых данных выражается в отсутствии оборванных,
ведущих в «никуда» связей.
Контроль целостности ссылок возможен на основе созда­
ния и ведения единого централизованного реестра гиперссы­
лок, как это и осуществляется в замкнутых гипертекстовых
базах. Специальный компонент программного обеспечения ги­
пертекстовой СУБД при удалениях документов (страниц) по
реестру гиперссылок находит имеющиеся в других докумен­
тах ссылки на удаляемый документ и аннулирует их.
В открытых распределенных гипертекстовых системах
реализация принципа целостности ссылок встречает существен­
ные трудности, так как децентрализованный принцип функци­
онирования таких систем затрудняет создание и ведение еди­
ного реестра гиперссылок. В случае распределенной гипертек­
стовой среды за информацию на любом узле отвечает отдельный
независимый пользователь, вольный по своему усмотрению
добавлять или удалять гипертекстовые страницы (документы).
Ввиду отсутствия централизованного реестра и однонаправлен296
j,4. Гипертекстовые информационно-поисковые системы
ного28 характера гиперссылок, при удалении какой-либо гипер­
текстовой страницы пользователь не может знать, имеются ли
в других документах гиперссылки на удаляемую страницу. В
таких ситуациях гиперссылки из других страниц, отсылающие
на удаляемые страницы, оказываются оборванными.
Еще более сложной проблемой является обеспечение со­
гласованности данных. Применительно к гипертекстовым си­
стемам согласованность данных заключается в поддержании
адекватности семантики гиперссылок. Говоря иначе, долж­
на обеспечиваться устойчивость смысловых ассоциаций по ги­
перссылкам. Однако если изменить содержание того докумен­
та, на который отсылает гиперссылка из другого документа, то
смысловая ассоциация, закладываемая в гиперссылку, может
нарушиться, и в отсылаемом документе речь может пойти на
совершенно другую тему.
Тривиальное решение проблемы согласованности гипер­
текстовых данных заключается в запрете изменения содержа­
ния документов, после внесения их в гипертекстовую базу. Та­
кой подход применяется в некоторых системах на основе замк­
нутых гипертекстовых баз документов.
В открытых системах с децентрализованным характером
функционирования такой подход неприемлем. Вместе с тем
одним из возможных направлений решения этой проблемы яв­
ляется практикуемая в среде WWW идеология «публикаций».
Среда WWW в этом смысле трактуется как гигантское элект­
ронное апериодическое издание, на страницах которого каж­
дый желающий может «опубликовать» свои документы. Про­
блема согласованности данных по гиперссылкам может решать­
ся в такой идеологии через введение в гиперссылки
темпоральных параметров существования и соответствующих
временных ограничений на содержательную изменчивость ги­
пертекстовых публикаций. Иначе говоря, могут быть опреде­
лены «времена жизни» гиперссылок, в течение которых гипер­
текстовые публикации не могут быть изменены. Однако, как
И в случае введения двунаправленного характера гиперссылок,
21
То есть гиперссылка находится в источнике отсылки, а на отсылаемом адреса­
те никакой информации по гиперссылке нет.
297
6. Документальные информационные системы
такой подход потребует перестройки протоколов и других со­
глашений в гигантской распределенной информационной инф­
раструктуре.
6.4.4. Формирование связей документов
в гипертекстовых И П С
Еще одним важным элементом в структуре гипертексто­
вых ИПС является подсистема формирования связей докумен­
тов (см. рис. 6.12). Как и в случае систем на основе индексиро­
вания документов, существует два подхода к формированию
связей документов в гипертекстовых ИПС —ручной и авто­
матизированный.
В первом подходе смысловые связи содержания документа
с другими документами системы определяются самим пользо­
вателем (автором документа, администратором и т. п.). Такой
подход имеет свои преимущества, так как пользователь уста­
навливает смысловые ассоциации нового документа с другими
документами базы на основе многоаспектного многокритери­
ального анализа содержания документа, что не может быть в
полной мере воспроизведено никакими автоматизированными
формальными или эвристическими алгоритмами.
Вместе с тем у ручного подхода имеется и ряд существен­
ных недостатков. Человеческие возможности по скорости и
объему смыслового анализа текстовых документов ограниче­
ны и не могут во многих случаях обеспечить приемлемые вре­
менные или организационные расходы на обработку и установ­
ление связей при больших потоках поступления документов в
систему. В качестве примера можно привести гипертекстовую
систему, агрегирующую в реальном масштабе времени поток
новостных сообщений информационных агентств и другие тому
подобные ситуации.
Однако даже если временных или иных ограничений на
ввод документов в гипертекстовую ИПС нет, то другой пробле­
мой является ограниченность человеческой памяти пользова­
теля (администратора) по содержанию введенных ранее в сис­
тему документов. Иначе говоря, пользователь, устанавливая ги298
6.4. Гипертекстовые информационно-поисковые системы
пертекстовые ассоциации нового документа, помимо смысло­
вого содержания вводимого документа, одновременно должен
представлять и помнить смысловое содержание всех других
ранее введенных в систему документов, что, конечно же, без
дополнительных классификационных или иных приемов в боль­
шинстве случаев нереально.
Кроме того, ручной подход, как и в случае индексирования
документов, требует определенной квалификации пользовате­
ля-анализатора в соответствующей предметной области ИПС,
что приводит к дополнительным проблемам.
Тем не менее в некоторых областях ручной способ уста­
новления гиперссылок сохраняет свое значение или является
единственно возможным. Это, прежде всего, касается среды
WWW в сети Интернет. Гипертекстовые ссылки публикуемых
на Web-узлах документов на другие документы Сети пользова­
тели определяют сами29, исходя из собственных представлений
об ассоциации своей страницы с другими публикациями и уз­
лами WWW. Вместе с тем такой подход не может по-настояще­
му полно и адекватно ассоциировать содержание публикуемой
страницы с ресурсами Сети, так как ни один пользователь или
Web-мастер, конечно же, не может знать и представлять всех
ресурсов Сети. Отчасти эта проблема решается через так назы­
ваемые поисковые машины, размещающиеся на известных всем
пользователям узлах WWW и представляющие собой, как пра­
вило, сочетание информационно-поисковых классификацион­
ных каталогов и полнотекстовых ИПС, индексирующих все пуб­
ликации в WWW. В этом случае гипертекстовые ассоциатив­
ные цепочки образуются через отсылку на узел поисковой
машины, а от него к релевантным документам, располагающим­
ся на других узлах сети.
Автоматизированный подход к формированию и уста­
новлению гипертекстовых связей применяется в развитых
замкнутых гипертекстовых ИПС. В основе автоматизации фор­
мирования гиперссылок лежит использование принципов по-
Совместно с так называемыми Web-мастерами и Web-дмзайнерами.
299
6. Документальные информационные системы
иска релевантных по смыслу документов, применяемых в си­
стемах на основе индексирования.
На практике применяются две основные технологии авто­
матизированного установления ассоциативных гипертекстовых
связей:
• технология поисковых образов документов на основе тех­
ники ключевых слов (терминов);
• технология полнотекстового индексирования и поиска.
Использование технологии ключевых слов имеет несколь­
ко разновидностей. Один из вариантов предусматривает пред­
варительное создание для предметной области гипертекстовой
ИПС взвешенного словаря ключевых терминов. При вводе но­
вого документа в системе производится его индексирование по
словарю ключевых терминов и формируется ПОД. В простей­
шем случае в качестве ПОД используется суммарный вес тер­
минов, присутствующих в тексте документа. Далее поисковый
образ нового документа сравнивается с поисковыми образами
ранее введенных документов и при превышении определенно­
го порога «сходства» устанавливаются гипертекстовые связи с
соответствующими документами.
В другом варианте используется предварительно создан­
ная классификационная рубрикация предметной области. С
каждой рубрикой связывается опять-таки предварительно со­
зданный набор ключевых терминов или их сочетаний. На ос­
нове входного индексирования производится соотнесение вво­
димого документа с той или иной рубрикой и на этой основе
устанавливаются гипертекстовые связи с соответствующей
группой документов.
Полнотекстовые технологии по сути аналогичны техни­
ке ключевых слов с учетом только более широкого текстового
базиса индексирования и использования тех или иных крите­
риев установления близости поисковых образов документов. В
некоторых системах практикуются полуавтоматизированные
технологии на основе полнотекстового поиска. В таких систе­
мах пользователь-анализатор выделяет из текста документа
наиболее характерные по его содержанию фрагменты, которые
300
Вопросы и упражнения
используются в качестве запроса-образца для формирования
ПОЗ и полнотекстового поиска релевантных документов, с ко­
торыми и устанавливаются гипертекстовые связи.
Иногда применяются и более тонкие полуавтоматизирован­
ные подходы. Пользователь, анализируя содержание вводимо­
го документа, может через технику ключевых терминов, или
через классификационную рубрикацию, или через возможнос­
ти полнотекстового поиска выбрать группу предварительно
сходных (ассоциированных) по смыслу документов. Далее про­
сматривая документы этой группы, он отмечает действительно
релевантные из них, определяя и устанавливая тем самым со­
ответствующие связи (гиперссылки) вводимого документа.
Таким образом, в технологиях автоматизированного
формирования гипертекстовых связей документов сливают­
ся все подходы, наработанные в сфере документальных инфор­
мационных систем для формализации смыслового содержания
текстовых документов.
Вопросы и упражнения
1.
2.
3.
4.
5.
6.
7.
8.
Приведите основные отличия фактографических и документаль­
ных информационных систем по форме представления данных и
способам удовлетворения информацио1 и гых потреб1 юстей пользо­
вателей.
В чем отличие понятий пертинептность и релевантность?
Поясните, что отражают поисковые образы документов и запро­
сов.
Что является результатом индексирования документов в докумен­
тальных ИПС?
Объясните основные различия дескрипторпых и семантических
ИПЯ
Дайте определения показателей эффективности документальных
ИПС и охарактеризуйте соотношение между полнотой и точнос­
тью документального информационного поиска.
Объясните суть и дайте сравнительную характеристику перечис­
лительной и систематизированной классификации документов.
По фрагменту фасетной классификации, приведенной на рис. 6.6,
постройте индекс документа, в котором идет речь о коррозион301
6. Документальные информационные системы
9.
10.
...
11.
12.
13.
14.
15.
16.
302
i юй усталости трубчатых растяжных конструкций из хромо! шкелевых сплавов.
По фрагменту фасетной классификации, приведенной на рис. 6.6,
поясните, о чем может идти речь в документах, индекс которых
выражается следующими фасетными формулами:
Ac Be Kg Lg
Ac Bed Kgb Lm
Ac Bgt Ki Lg
Для документальной базы текстовых сообщений о планируемых
или состоявшихся научных мероприятиях (конференции, семи­
нары, симпозиумы) по тематикам, связанным с радиолокацией (ра­
дионавигация, загоризонтная локация, era ггез и обработка радио­
локационных сигналов, антенно-фидерная техника, устройства
отображения радиолокационной информации и т. д.), организуе­
мых академическими, отраслевыми НИИ или учебными заведе­
ниями, составьте примерную схему фасетной классификации и
на ее основе проиндексируйте следующее сообщение:
21.08.2000г. Институтом математики и кибернетики Северосибирского отделения РАН в г. Северск проводится научно-практи­
ческая конференция «Теория и практика фазокодоманипулироваиных (ФКМ) сигналов радиолокационных устройств».
Для чего применяется координация понятий (терминов) в доку­
ментальных ИПС на основе индексирования? В чем суть и отли­
чия понятий пред- и посткоординации?
В рамках фасетной классификации, приведенной на рис. 6.6, по­
ясните следующие фасетные формулы с использованием коорди­
нации понятий, отражающие содержание документов или запро­
сов пользователя:
(-AC) n BGT n ((KI и KL) n KP) о LG
АС п ВС г. (KP n (-, KPF)) n (LB и LD и LG)
В рамках фасетной классификации, приведе] той на рис. 6.6, со­
ставьте фасетную формулу с использованием предкоординации
понятий для документа, в котором идет речь о разрушениях не­
трубчатых конструкций из хромистых или хромоникелевых ста­
лей от коррозионной усталости при сжатиях или ударах.
Какие отличия имеет тезаурус от словаря ключевых слов опреде­
ленной предметной области?
В чем заключается ведение тезауруса?
Почему ИПС на основе тезаурусов обладают более высокой эф­
фективностью документального информационного поиска по
сравнению с системами, построй гными i ia основе перечислитель-
Вопросы и упражнения
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
ной классификации содержания документов по словарю ключе­
вых слов?
Приведите сравнительную характеристику преимуществ и недо­
статков ручного и автоматизирова!п юго индексирования докуме! iтов.
Что представляет собой индекс в документальных ИПС, какова
его организация и смысл элементов?
В каком смысле индекс полнотекстовых систем отражает полный
текст документов, агрегированных в ИПС?
По информационно-технологической структуре пол1 ютекстовых
ИПС, приведенной на рис. 6.9, выделите элементы, которые в со­
вокупности составляют программные средства, характеризуемые
термином «полнотекстовые СУБД».
По информацией] ю-технологической структуре пол] ютекстовых
ИПС, приведенной на рис. 6.9, выделите элементы, которые в со­
вокупности можно назвать полнотекстовой базой документов.
Поясните, является ли обязательным наличие отдельно организо­
ванного и локально сосредоточенного хранилища документов в
полнотекстовых ИПС.
Что происходит с индексом и, в частности, с поисковыми образа­
ми ранее накопленных (проиндексированных) докуме! ггов в пол­
нотекстовых ИПС с динамическим глобальным словарем при на­
личии во вновь поступающем на учет в систему документе новых
словоформ?
В чем существо нормализации глобального словаря в пол1 ютек­
стовых ИПС и что дает нормализация?
Используется ли координация понятий в полпотекстовых ИПС?
Если да, то в какой форме?
С использованием логических операторов «И»(3), «ИЛИ»(И),
«Н Е»(Ш) постройте запросы на дескриптор! юм ИПЯ, в котором
дескрипторами могут выступать любые слова (словоформы), по
поиску документов, в которых идет речь о:
• методике информационного поиска в фактографических или до­
кументальных ИПС, исключая семантически-навигационные си­
стемы;
• моделях разграничения доступа в компьютерных системах, по­
строенных в идеологии «Клиент-сервер», исключая системы с
серверами приложений;
• оптимизаторах запросов в реляционных СУБД, которые не ис­
пользуют апостериорный анализ статистики данных.
303
6. Документальные информационные системы
27. В чем преимущества и, может быть, недостатки полнотекстовых
ИПС с координатным анализом текста документа при индексиро­
вании?
28. Объясните феноме! i практической независимости скорости поиска
документов в полнотекстовых ИПС от объема хранилища доку­
ментов.
29. Что и как в действительности «понимает» полнотекстовая ИПС с
морфологическим разбором и нормализованным глобальным сло­
варем в запросах пользователя, формулируемых на естественном
языке?
30. Как определяется количественная мера документов при простран­
ственно-векторной модели представления ПОД и ПОЗ?
31. Какие вероят! юстно-статистические расшири 1ия пространства iно-векторной модели ПОД и ПОЗ позволяют повысить релевант­
ность поиска документов в полнотекстовых ИПС? Что означает
термин «окрашивание» глобального словаря?
32. Чем гипертекст отличается от просто текста?
33. В чем сходство и отличие чтения и восприятия традиционных тек­
стовых (бумажных) документов и работы пользователя в гипер­
текстовой ИПС?
34. Для чего нужна визуализация цепочек «пройденных» докуме! ггов
в гипертекстовых ИПС, каким способом обычно она решается и
какие проблемы при этом возникают?
3 5. Какие математические объекты описывают модель организации
данных в гипертекстовых ИПС?
36. Какие проблемы восприятия гипертекста может решить диффе­
ренциация типов гиперссылок? Ответ поясните на примере моде­
ли организации данных в гипертекстовых справочных системах
Microsoft Windows.
37. В чем заключаются ограничения целостности в гипертекстовой
модели данных и какие проблемы в их контроле и поддержании
могут возникать в распределенных открытых гипертекстовых ИПС
(на примере WWW)?
304
7.1. Администрирование информационных систем
7. Администрирование
информационных систем
и защита данных
Использование автоматизированных информационных си­
стем порождает общие информационные ресурсы в виде базы
или совокупности баз данных, состояние и функционирование
которых может критически влиять на жизнедеятельность пред­
приятия, организации. В результате, как и для любого крити­
ческого ресурса, требуются отдельное специфическое управ­
ление и контроль состояния, получившие в процессе внедрения
АИС в практику информационного обеспечения деятельности
предприятий и организаций специальный термин — «админис­
трирование и защита данных (баз данных)».
В номенклатуре специалистов, обеспечивающих проекти­
рование, создание, эксплуатацию и использование АИС, соот­
ветственно, выделилась отдельная категория, называемая ад­
министраторами систем (баз данных), играющих ключевую
роль в процессах информационного обеспечения деятельнос­
ти предприятий и организаций.
Взгляды на функции и содержание задач, решаемых в про­
цессе администрирования баз данных, формировались вместе
со становлением индустрии АИС, менялись вместе с измене­
ниями и усложнениями программно-технических аспектов ре­
ализации АИС, но со временем постепенно сформировался не­
который их базовый перечень, и администрирование баз дан­
ных вошло неотъемлемым ключевым компонентом в теорию и
практику автоматизированных информационных систем.
7.1. Администрирование информационных
систем
В общем плане термин «администрирование» определяет
комплекс процессов при создании, эксплуатации и использова305
7. Администрирование информационных систем и защита данных
НИИ АИС, связанных с обеспечением надежности и эффектив­
ности функционирования АИС, безопасности данных и орга­
низацией коллективной работы пользователей различных кате­
горий.
Этот комплекс процессов можно разделить по решаемым
задачам на следующие группы:
а обеспечение и поддержание настройки структурного,
интерфейсного и технологического компонентов АИС на струк­
туру и процессы предметной области системы;
а обеспечение надежности и сохранности данных;
а организация и обеспечение коллективной работы пользо­
вателей с общими данными.
Первое направление обусловливает участие администрато­
ра системы в этапах проектирования и ввода АИС в эксплуата­
цию. Администратор при этом выступает экспертом в команде
разработчиков по выбору СУБД и ее особенностям в плане ре­
ализации тех или иных компонент концептуальной схемы со­
здаваемого банка данных, участвует в процессах создания ти­
повых запросов, экранных форм для ввода и вывода данных,
шаблонов отчетов. На этапе проектирования и, в особенности,
в процессе дальнейшей эксплуатации при наполнении систе­
мы данными администратор системы производит анализ адек­
ватности и эффективности спроектированной внутренней схе­
мы базы данных и при необходимости может осуществлять ее
корректировку через использование, например, техники нор­
мализации таблиц в реляционных СУБД. Для обеспечения та­
ких функций некоторые СУБД содержат специальный про­
граммный инструментарий в виде анализаторов быстродействия
и оптимальности баз данных.
В эту же группу функций входит создание и поддержание
словарно-классификационной базы (словари, справочники,
ключевые слова, тезаурусы), которая должна адекватно отра­
жать особенности предметной области информационной сис­
темы.
Еще одной важной функцией, особенно на этапе ввода ин­
формационной системы в эксплуатацию, является первоначаль306
7.1. Администрирование информационных систем
ное наполнение системы данными. Во многих случаях для это­
го могут быть использованы данные из других информацион­
ных систем, находящихся, возможно, в других физических фор­
матах и с другой логической организацией. Импорт данных из
внешних источников, как правило, требует высокой квалифи­
кации по возможностям используемой в АИС СУБД, детально­
го представления логической и физической организации дан­
ных в АИС и выполняется вследствие этого администратором
системы. В фактографических АИС на основе реляционных
СУБД подобные задачи решаются на основе запросов на созда­
ние таблиц, источник данных для которых находится во вне­
шних базах или в файлах других форматов (электронные таб­
лицы, текстовые файлы в формате УФОД). Соответственно,
особенности функционирования АИС могут требовать реше­
ния и обратных задач, т. е. задач экспорта данных во внешние
системы и другие форматы. Такие задачи в большинстве слу­
чаев также решаются администраторами АИС.
Обеспечение надежности и сохранности данных является
одной из главных обязанностей администратора АИС и вклю­
чает, в свою очередь, решение ряда следующих технологичес­
ких и профилактических задач:
• планирование, конфигурирование и поддержание систе­
мы использования устройств внешней памяти, на которых раз­
мещаются файлы данных;
• архивирование и резервирование данных;
• восстановление данных после сбоев и повреждений;
• проверка и поддержание целостности данных.
Большой объем файлов баз данных, как уже отмечалось,
обусловливает их размещение на устройствах дисковой (внеш­
ней) памяти. Поэтому отдельной задачей при проектировании
АИС является определение схемы размещения файлов базы дан­
ных системы па устройствах внешней памяти, контроль за ее
состоянием в процессе эксплуатации АИС.
В ряде приложений сохранность и работоспособность базы
данных является чрезвычайно критическим аспектом либо в
силу технологических особенностей (системы реального вре307
7. Администрирование информационных систем и защита данных
мени), либо в силу содержательного характера данных. В этих
случаях применяются подходы так называемого горячего ре­
зервирования данных, когда база данных постоянно находится
в виде двух идентичных (зеркальных) и параллельно функцио­
нирующих копий, размещаемых на двух раздельных системах
дисковой памяти.
В других ситуациях для обеспечения сохранности данных
используются операции архивирования и резервирования дан­
ных. В большинстве случаев архивирование производится обыч­
ными средствами архивации файлов для их компактного дол­
говременного хранения, как правило, на внешних съемных но­
сителях. Функции архивирования данных иногда могут входить
и в перечень внутренних функций самих СУБД.
Резервирование данных, как правило, не предусматривает
специального сжатия данных, а производится через создание
специальных копий файлов данных в технологических или
иных целях.
И архивирование, и резервирование, помимо технологичес­
ких целей, преследуют также профилактические цели по еще
одной чрезвычайно важной операции, выполняемой админист­
ратором АИС — восстановлению данных после сбоев и повреэ/сдений. Наличие резервной или архивной копии базы дан­
ных позволяет восстановить работоспособность системы при
выходе из строя основного файла (файлов) данных. При этом,
однако, часть данных, или их изменений, произведенные за вре­
мя, прошедшее с момента последнего архивирования или ре­
зервирования, могут быть потеряны. Такие ситуации особенно
критичны при коллективной обработке общих данных, реали­
зуемых клиент-серверными системами. Поэтому в промышлен­
ных СУБД, реализующих технологии «Клиент-сервер», в боль­
шинстве случаев предусматривается ведение специального жур­
нала текущих изменений базы данных, размещаемого отдельно
от основных данных и, как правило, на отдельном носителе.
Как уже отмечалось, такой подход называется журнализацией.
В журнале изменений осуществляются непрерывная фиксация
и протоколирование всех манипуляций пользователей с базой
308
7.1. Администрирование информационных систем
данных. В результате при любом сбое с помощью архивной
копии и журнала изменений администратор системы может
полностью восстановить данные до момента сбоя.
В перечень функций администратора по обеспечению вос­
становления данных входит также профилактика дисковых
носителей внешней памяти, обеспечиваемая специальными
программными инструментальными утилитами операционной
системы—проверка состояния дисков, дефрагментация и т. д.
Данные обязанности накладывают дополнительные требования
к профессиональной подготовке администраторов как особого
направления подготовки системных программистов.
Проверка и поддержание целостности данных является
также неотъемлемой функцией администраторов и заключает­
ся в обеспечении настройки и функционирования защитных
механизмов СУБД, поддерживающих ограничения целостнос­
ти данных и связей в конкретной базе данных. Как правило, в
большинстве СУБД имеются встроенные механизмы автома­
тического поддержания и контроля целостности данных. Вме­
сте с тем, в ряде случаев, логика предметной области не дает
возможности устанавливать такие режимы обеспечения целос­
тности связей, как, например, каскадное обновление и удале­
ние связанных записей. При этом в процессе работы пользова­
телей с базой данных может образовываться множество колли­
зий в виде «оборванных» связей, что снижает эффективность
функционирования базы данных. В таких ситуациях одной из
функций администратора базы данных являются периодичес­
кий контроль целостности связей и устранение подобных кол­
лизий. В некоторых СУБД для решения этих задач предусмот­
рены специальные режимы и механизмы «ревизии» и восста­
новления целостности базы данных. В других СУБД данные
задачи решаются через технику запросов или через разработку,
в том числе и самими администраторами АИС специальных
программных утилит.
Сходные задачи ревизии данных решаются администрато­
ром также в тех случаях, когда устанавливаются временные
309
7. Администрирование информационных систем и защита данных
регламенты хранения данных и «устаревшие» данные должны
своевременно обновляться или удаляться из системы.
Большой комплекс функций администратора АИС связан с
организацией и обеспечением коллективной работы пользова­
телей с общими данными. Еще на этапе проектирования АИС
с непосредственным участием будущего администратора сис­
темы разрабатывается организационная схема функционирова­
ния и использования АИС. Исходя из особенностей технологи­
ческих процессов в предметной области и круга решаемых за­
дач, определяются функциональные группы работников,
отвечающих за ввод, обработку и использование общих дан­
ных системы. На этой основе строится перечень и схема пользо­
вателей системы, определяются их конкретные функции, пол­
номочия, разрабатываются необходимые технологические и
интерфейсные элементы (входные и выходные экранные фор­
мы, запросы, шаблоны отчетов и т. д.), прорабатываются и ус­
танавливаются внутренние параметры и характеристики кол­
лективной обработки данных (размещение данных, параметры
блокировок, обмена и т. д.). Администратор АИС, по сути, яв­
ляется как раз организатором и руководителем этих технологи­
ческих процессов организации работы эксплуатационного пер­
сонала и абонентов-пользователей системы.
Отдельным, но тесно переплетенным с остальными функ­
циями, направлением этого комплекса обязанностей админис­
тратора системы является создание и поддержание системы
разграничения доступа к данным и защиты данных от несан­
кционированного доступа. На основе системы и схемы функ­
ций, задач и полномочий пользователей и обслуживающего
персонала администратором строится и поддерживается схема
категорирования объектов базы данных по критерию доступа
различных пользователей и внешних процессов, осуществля­
ется текущее управление этой схемой и аудит процессов обра­
ботки данных с точки зрения безопасности и разграничения
доступа к данным.
Развитые СУБД в составе своих функций и возможностей,
как правило, имеют специальный инструментарий, обеспечи­
ло
7.2. Разграничение доступа н защита данных
воющий основной набор функций и задач администратора —
уже упоминавшийся анализатор быстродействия и оптималь­
ности, утилиты архивирования, резервирования и ревизии базы
данных, подсистему разграничения доступа и защиты данных.
В настольных однопользовательских системах, строящих­
ся на основе СУБД с развитым интерфейсным набором инст­
рументов по созданию и управлению базами данных, все или
большая часть функций администратора может выполняться
самими пользователями, которые в необходимых случаях мо­
гут лишь изредка прибегать к помощи и консультациям соот­
ветствующих специалистов. Вместе с тем рассмотренный пе­
речень функций и решаемых задач, так или иначе, реализуется
и в однопользовательских системах.
Следует также отметить, что организационно администра­
торы АИС являются отдельными штатными категориями ра­
ботников информационных служб, подчиняясь непосредствен­
но руководителям таких служб, или во многих случаях, соб­
ственно, и выполняя функции руководителя службы
информационного обеспечения предприятия, организации, от­
дельного подразделения.
7.2. Разграничение доступа и защита данных
Одной из оборотных сторон компьютерных информацион­
ных технологий является обострение проблемы защиты ин­
формации. Данные в компьютерной форме сосредоточивают в
физически локальном и небольшом объеме огромные массивы
информации, несанкционированный доступ к которой или ее
разрушение могут приводить порой к катастрофическим послед­
ствиям и ущербу. Возможность быстрого, во многих случаях
практически мгновенного, и без следов копирования огромных
массивов данных, находящихся в компьютерной форме, в том
числе и удаленно расположенных, дополнительно провоциру­
ет злоумышленников на несанкционированный доступ к ин­
формации, ее несанкционированную модификацию или разру­
шение.
311
7. Администрирование информационных систем и защита данных
Вместе с тем теоретическая проработка вопросов обеспе­
чения безопасности информации и их практическ