Мусорка

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Мусорка » Ильина » Билеты


Билеты

Сообщений 1 страница 5 из 5

1

1. Понятия «система», «система управления», «информационная система»

Понятие системы. Системой называется любой объект, который, с одной стороны,рассматривается как единое целое, а с другой - как множество связанных между собой или взаимодействующих составных частей.
Понятие системы охватывает комплекс взаимосвязанных элементов, действующих как единое целое. В систему входят следующие компоненты.
1. Структура - множество элементов системы и взаимосвязей между ними. Математической моделью структуры является граф.
2. Входы и выходы - материальные потоки или потоки сообщений, поступающие в систему или выводимые ею. Каждый входной поток характеризуется набором параметров {x(i)}; значения этих параметров по всем входным потокам образуют вектор-функцию X. В простейшем случае X зависит только от времени t, а в практически важных случаях значение X в момент времени t+1 зависит от X(t) и t. Функция выхода системы Y определяется аналогично.
3. Закон поведения системы - функция, связывающая изменения входа и выхода системы Y = F(X).
4. Цель и ограничения. Качество функционирования системы описывается рядом переменных ul, u2,.„, uN. Часть этих переменных (обычно всего одна переменная) должна поддерживаться в экстремальном значении, например, max ul. Функция ul = f(X,Y,t,...) называется целевой функцией, или целью.
Зачастую f не имеет аналитического и вообще явного выражения.
На остальные переменные могут быть наложены (в общем случае двусторонние) ограничения аК <= gK(uK) <= ЬК, где 2 <= К <= N.
Среди известных свойств систем целесообразно рассмотреть следующие - относительность, делимость и целостность.
Свойство относительности устанавливает, что состав элементов,
взаимосвязей, входов, выходов, целей и ограничений
зависит от целей исследователя. Реальный мир богаче системы.
Поэтому от исследователя и его целей зависит, какие стороны
реального мира и с какой полнотой будет охватывать
система. При выделении системы некоторые элементы, взаимосвязи,
входы и выходы не включаются в нее из-за слабого
влияния на остающиеся элементы, из-за наличия самостоятельных
целей, плохо согласующихся с целью всей системы,
и т.д. Они образуют внешнюю среду для рассматриваемой
системы.
Делимость означает, что систему можно представить состоящей
из относительно самостоятельных частей - подсистем,
каждая из которых может рассматриваться как система.
Возможность вьщеления подсистем (декомпозиция системы)
упрощает ее анализ, так как число взаимосвязей между подсистемами
и внутри подсистем обычно меньше, чем число связей непосредственно между всеми элементами системы. Выделениеподсистем проводит исследователь, и оно условно.
Свойство целостности указывает на согласованность цели
функционирования всей системы с целями функционирования
ее подсистем и элементов.
Надо также иметь в виду, что система, как правило, имеет
больше свойств, чем составляющие ее элементы. Так, предприятие
обладает юридической самостоятельностью, а его подразделения- нет.
Экономическая информационная система представляет собой
систему, функционирование которой во времени заключается
в сборе, хранении, обработке и распространении информации
о деятельности какого-то экономического объекта реального мира. Информационная система создается для конкретного экономического объекта и должна в определенной мере копировать взаимосвязи элементов объекта.
Экономические информационные системы предназначены для решения задач обработки данных, автоматизации конторских работ, выполнения поиска информации и отдельных задач, основанных на методах искусственного интеллекта.
Задачи обработки данных обеспечивают обычно рутинную обработку и хранение экономической информации с целью выдачи (регулярной или по запросам) сводной информации, которая может потребоваться для управления экономическим объектом.
Автоматизация конторских работ предполагает наличие в ЭИС системы ведения картотек, системы обработки текстовой информации, системы машинной графики, системы электронной почты и связи.
Поисковые задачи имеют свою специфику, и информационный поиск представляет собой интегральную задачу, которая рассматривается независимо от экономики или иных сфер использования найденной информации.
Алгоритмы искусственного интеллекта необходимы для задач принятия управленческих решений, основанных на моделировании действий специалистов предприятия при принятии решений.
Для ЭИС соблюдаются следующие принципы их построения и функционирования.
1. Соответствие. ЭИС должна обеспечивать функционирование
объекта с заданной эффективностью. Критерий эффективности
должен быть количественным.
2. Экономичность. Затраты на обработку информации в
ЭИС должны быть меньше экономического выигрыша на
объекте при использовании этой информации.
3. Регламентность. Большая часть информации в ЭИС поступает
и обрабатывается по расписанию, со строгой периодичностью.
4. Самоконтроль. Непрерывная работа ЭИС по обнаружению
и исправлению ошибок в данных и процессах их обработки.
5. Интегральность. Однократный ввод информации в ЭИС
и ее многократное, многоцелевое использование.
6. Адаптивность. Способность ЭИС изменять свою структуру
и закон поведения для достижения оптимального результата
при изменяющихся внешних условиях.
Среди других особенностей ЭИС следует назвать обработку больших объемов информации по сравнительно простым алгоритмам, высокий удельный вес логической обработки данных (сортировка, группировка, поиск, корректировка)
и представление подавляющей части информации в виде документов.
При создании информационной системы возникает задача объективной оценки качества ее функционирования. Такая оценка особенно актуальна потому, что современные информационные системы - это сложные и дорогостоящие проекты, на их создание расходуются значительные ресурсы. Эффективность работы информационной системы выражается при помощи набора числовых характеристик, называемых
критериями эффективности. Каждый критерий количественно
определяет степень соответствия между результатами проектирования или функционирования ЭИС и поставленными перед ней целями.
Величина, выбранная в качестве критерия, должна удовлетворять ряду требований:
• должна прямо зависеть от процесса проектирования (функционирования) системы,
• давать наглядное представление об одной из целей системы,
• иметь сравнительно простой алгоритм расчета,
• допускать приближенную оценку по экспериментальным
данным.
ЭИС обычно оценивается по комплексу критериев. Оценке подлежат:
• система в целом,
• отдельные составляющие этапа проектирования системы,
например проекты информационного, программного
и технического обеспечения,
• важнейшие компоненты этапа эксплуатации системы,,
например подготовка информации, ее обработка, ведение
информационных массивов.
Как правило, функционирование ЭИС направлено на успешную реализацию нескольких целей.  Типичный перечень может включать следующие цели.
1. Повышение эффективности управления объектом (цели
С1-СЗ):
С1 - максимальную полноту информации для обеспечения
принимаемых решений;
С2 - представление информации с максимально возможной
скоростью;
СЗ - максимальное удобство взаимодействия информационной
системы с потребителями.
2. Эффективное использование ресурсов ЭИС (цели С4 - С6):
С4 - сокращение расходов на создание, эксплуатацию и развитие
ЭИС;
CS - максимальное извлечение выходной информации из
имеющегося объема данных;
С6 - сокращение избыточности в базе данных.
Критериями для названных целей будут:
К1 - отношение объема информации в базе данных к объему
информации на объекте управления
К2 - время обработки информации в ЭИС;
КЗ - время, которое потребители расходуют на запрос необходимой
информации и ее использование в управлении;
К4 - сумма капитальных вложений и текущих затрат на
создание, эксплуатацию и развитие ЭИС;
К5 - отношение объемов входной и выходной информации;
Кб - доля избыточной информации в общем объеме данных.
Одновременное достижение указанных целей практически
неосуществимо. Например, повышение эффективности ЭИС
по критериям К1 и КЗ вызывает увеличение К4 и достигнутое
состояние системы противоречит С4.
Среди ЭИС выделяют Управляющие информационные системы
(для управления технологическими процессами на предприятии)и системы административно-оргавшзационного типа
для обслуживания коллектива специалистов, осуществляющих
управление предприятием.

2. Структура и характеристика компонентов ЭИС

При решении любых задач с использованием ЭВМ требуется наличие ряда компонентов:
• исходной и справочной информации для расчета,
• метода (алгоритма) решения задачи, записанного в виде программы, которая может быть выполнена на ЭВМ,
• самой ЭВМ как исполнителя алгоритмов,
• пользователей, т.е. лиц, которые используют результаты решения задачи в своей профессиональной деятельности.
Для функционирования ЭИС необходимы компоненты, аналогичные названным выше, но с более сложной организацией.
Компоненты информационной системы - это база данных,
концептуальная схема и информационный процессор, образующие
вместе систему хранения и манипулирования данными.
В окружающем нас мире выделяются материальные системы различного назначения. Все, что происходит в процессе функционирования материальных систем, может быть описано
в форме сообщений. Появление сообщений о событиях, происходящих в материальной системе, представляет собой информационное отображение материальных процессов.
Так, выпуск продукции рабочими порождает сообщения о том, кто из рабочих изготовил определенные изделия, когда и на каком оборудовании, в каком количестве и т. д.
Сообщение может быть выражено на естественном языке, однако часто применяют форматированные сообщения, когда выделяются опорные свойства (параметры) происходящего события и в сообщении приводятся названия свойств и их значения.
Пример сообщения
На склад #2 1.02.98 поступили генераторы от завода «Динамо
» в количестве 50 шт. по цене 200 руб.
ФОРМАТИРОВАННЫЙ ВАРИАНТ ЭТОГО СООБЩЕНИЯ:
Название параметра Значение параметра
Получатель Склад № 2
Отправитель Завод "Динамо"
Изделие Генератор
Дата 01.02.98
Цена 200 руб.
Количество 50 шт.
Таких сообщений о поступлении изделий на склады предприятия появляется достаточно много. Они совпадают по названиям параметров и различаются по значениям параметров.
Многие сообщения легко разделяются на компоненты и представляются в форматированном виде. Форматированные сообщения - это наиболее массовый вид сообщений, хранимых и обрабатываемых в ЭИС. Вместе с тем существует экономическая информация, которую практически невозможно
форматировать, например приказы по предприятию.
База данных (БД) - это набор сообщений, которые
• являются истинными для соответствующей материальной системы,
• непротиворечивы по отношению друг к другу и к концептуальной схеме.
Сообщения в БД обычно являются форматированными и
хранятся в виде единиц информации.
Единицей информации называется набор символов, которому придается определенный смысл. Это понятие в основном относится к базе данных, хранящей форматированные сообщения.
Если в сообщении «На склад № 2 01.02.98 поступили генераторы
от завода «Динамо» в количестве 50 шт. по цене 200 руб.»
названия параметров фиксированы, то набор символов «склад
№ 2, з-д «Динамо», генератор, 01.02.98, 200 руб., 50 шт.» является
единицей информации. «01.02.98» также является единицей информации.
Минимально необходимы две единицы информации - атрибут
и составная единица информации (СЕИ).
Атрибутом называется информационное отображение отдельного свойства некоторого объекта, процесса или явления.
Любое сообщение записывается в форматированном виде
как указание свойств (параметров) предметов, о которых мы говорим. Поэтому информационное отображение любого явления
представляет собой набор соответствующим образом подобранных атрибутов.
Составная единица информации представляет собой набор из атрибутов и, возможно, других СЕИ.
Простейшими СЕИ являются таблицы, подобные приведенной
выше. СЕИ позволяет создавать произвольные комбинации из атрибутов.
База данных ЭИС хранится в запоминающих устройствах вычислительной системы (ЭВМ). Хранимые представления данных очень часто не соответствуют первоначальному множеству форматированных сообщений. Однако сейчас при рассмотрении
БД будем считать, что сообщения хранятся в виде
таблиц.
Концептуальная схема (от слова concept - понятие) представляет собой описание структуры всех единиц информации, хранящихся в БД. Под структурой понимается вхождение одних единиц информации в состав других единиц информации.
В рамках нашего примера можно говорить о двух единицах
информации - параметре (атрибуте) и таблице (СЕИ).
Предположим, что таблица Т соответствует всей базе данных.
В концептуальной схеме должно быть указано, что БД состоит
из Т, а Т содержит параметры Получатель, Отправитель,
Изделие, Дата, Цена, Количество.
Информационный процессор - это механизм, который в ответ на получение команды выполняет операции с БД и концептуальной схемой. Информационный процессор состоит из вычислительной
системы и системы управления базой данных -СУБД.
Под вычислительной системой будем понимать серийно
выпускаемую электронно-вычислительную машину (ЭВМ) либо несколько ЭВМ, соединенных каналами связи в вычислительную сеть.
ЭВМ состоит из ряда устройств, каждое из которых способно выполнять свойственные ему операции.
Оперативное запоминающее устройство (ОЗУ) используется для хранения программ и данных. Скорость чтения и записи для ОЗУ, как правило, одинаковы, ОЗУ является наиболее быстродействующим устройством ЭВМ.
Процессор выполняет команды, находящиеся в программе.
Выполнение команды обычно предполагает обращение к ОЗУ.
ЭВМ может содержать любое число внешних устройств, чаще всего это внешние запоминающие устройства и устройства печати информации.
База данных предполагает централизованное управление
данными, что обеспечивает ряд преимуществ:
• сокращение избыточности хранимых данных благодаря однократному хранению каждого сообщения в базе данных,
• совместное использование хранимых данных всеми пользователями ЭИС,
• стандартизацию представления данных, упрощающую проблемы эксплуатации БД и обмена данными между ЭИС,
• обеспечение процедур проверки достоверности информации и процедур ограничения доступа к данным,
• совмещение требований к использованию БД со стороны различных пользователей ЭИС.
Системой управления базой данных называется комплекс программ, обеспечивающий централизованное хранение, накопление, модификацию и выдачу данных, входящих в БД. Предполагается, что в управлении базой данных принимает участие специальное должностное лицо - администратор базы данных.

3. Жизненный цикл ЭИС

В жизненном цикле ЭИС можно укрупненно выделить несколько этапов, относящихся к ее разработке, и период эксплуатации системы.
Разработкой (проектированием) ЭИС называется процесс составления описания еще не существующей системы на разных языках и с различной степенью детализации,в ходе которого осуществляется оптимизация проектных решений. В процессе детализации описаний наступает момент, когда имеющиеся описания позволяют создать действующую
систему (изготовление изделия по имеющимся чертежам) и наступает период эксплуатации ЭИС.
Проектирование разделяется на проектные операции.
Проектная операция включает выбор проектных решений и позволяет определить значения параметров, характеризующих БД, вычислительную систему и программное обеспечение.
Этапами проектирования являются: обоснование создания ЭИС, разработка технического задания, техническое и рабочеетпроектирование, ввод ЭИС в действие. Процесс эксплуатации обычно через некоторые периоды времени прерываетсятстадиями модификации системы.
Стадию эксплуатации можно охарактеризовать как период стабильного функционирования ЭИС, не требующий изменения ранее принятых проектных решений.
Под стадией модификации будем понимать процесс корректировки проектных решений по отдельным компонентам ЭИС.
Более детальное описание' работ на стадии проектирования включает в себя следующие действия.
1. Обследование предметной области:
• границы предметной области и возможности ее расширения,
• перечень объектов предметной области,
• информационные потребности пользователей,
• необходимые процессы обработки данных с указанием
их периодичности,
• ЭВМ, на которой предполагается реализовать ЭИС,
• требования к функционированию ЭИС, частота поступления
и корректировки информации, методы обеспечения
ее достоверности.
Результатом обследования предметной области должно
быть техническое задание на разработку системы.
2. Определение объектов и их атрибутов.
Для каждого объекта и процесса необходимо:
• выделить идентифицирующие свойства и провести нормализацию,
• определить количество экземпляров каждого объекта и рост этой величины во времени,
• определить методы вычислений производных показателей на основе значений исходных показателей.
3. Установление всех структурных связей между объектами и процессами и вычислимости на этой основе всех запросов. Разработка структуры базы данных, проверка ее корректности и полноты.
4. Определение технологии работы ЭИС, т.е. определение порядка сбора, контроля и хранения данных, определение форматов ввода-вывода информации, установление объемных и временных характеристик выдачи информации, установление правил работы всех групп пользователей.
5. Выбор ЭВМ и программных средств для реализации ЭИС. Среди программных средств в первую очередь необходимо выбрать операционную систему и СУБД. Оценка требуемых объемов памяти и трудоемкости разработки программ.
6. Проверка корректности проекта и определение сроков его реализации.
Итогом перечисленных выше действий становится технический проект ЭИС.
7. На стадии рабочего проектирования необходимо:
• создать описания всех компонентов базы данных,
• разработать экранные формы и системы меню для всех групп пользователей,
• разработать программы для всех приложений,
• заполнить ЭИС отладочными данными и оттестировать ее,
• составить инструкции по работе с ЭИС и обучить пользователей.
Стадия эксплуатации начинается с заполнения ЭИС реальными данными.
Этапы эксплуатации и модификации ЭИС поочередно меняют друг друга до тех пор, пока не наступит момент морального старения ЭИС и будет принято решение о ее ликвидации
и разработке принципиально новой системы и сменные инженеры.
Важность исследования процессов модернизации ЭИС можно пояснить такими данными: стоимостные затраты на модернизацию ЭИС достигают примерно трети объема эксплуатационных расходов, за год в ЭИС обычно меняется 10-40% первичных документов и 20-50% выходных документов.
Экономическим объектам свойственны динамичность и развитие, что непосредственно влияет на состояние ИС. Поэтому на стадии эксплуатации ИС усиливаются факторы, доказывающие необходимость-последующей модернизации.
Среди них:
• изменения на объекте управления и во внешней среде
(дрейф параметров предметной области),
• изменение состава рабочей нагрузки вычислительной системы,
замена оборудования, рост объема файлов,
• накопление опыта работы с ЭИС,
• обнаружение проектных ошибок.
Задачи модификации ЭИС обычно рассматриваются как неперспективные и нежелательные. Эта работа считается очень простой в сравнении с проектированием ЭИС, она ассоциируется с исправлением проектных ошибок, сделанных другими.
Вместе с тем модифицируемая система обычно плохо документирована, попытки улучшения прикладных программ иногда кончаются ничем. В итоге довольно быстро наступает момент, когда интерес к системе теряется и начинается новая
разработка. Однако планомерная модификация базы данных и других компонентов ЭИС позволяет поддерживать в требуемых границах ее технические и эксплуатационные характеристики, отсрочить момент морального старения системы.
На стадии эксплуатации системы в отсутствие специальных мероприятий по модернизации ИС ухудшаются ее эксплуатационные показатели, например, снижается пропускная способность. Происходит также ухудшение соответствия между параметрами предметной области и параметрами БД. В процессе эксплуатации ЭИС производится слежение за изменением параметров ЭИС и предметной области. Для этого используются, например:
• информация об изменениях в системе документооборота и структуре отдельных документов,
• данные об изменениях в составе решаемых экономических задач, системе экономических показателей и методах их расчета,
• характеристики потока запросов к БД,
• оценки пользователей о качестве получаемой информации,
• информация системной мониторной программы или аналогичных средств, работающих в составе применяемых операционных систем и СУБД, сбор статистики о выполненных заданиях.
Должны также фиксироваться изменения количественных и качественных характеристик предметной области. В этой сфере могут происходить изменения в организационной
структуре экономического объекта, составе параметров, характеризующих
объект, методах их расчета. Изменения зачастую связаны с реконструкцией производства, выпуском новых изделий, освоением новых технологий, совершенствованием
конструкторской документации. Может меняться состав организационных и технологических ограничений на объекте.
Сравнение результатов измерений с аналогичной информацией за прошлые периоды времени и отклонение текущих параметров функционирования ЭИС от нормативных могут дать основание для проведения модификации ЭИС. Анализ результатов наблюдений должен быть различным в зависимости от целей, которые предполагается достичь после проведения модификации. Первоначально должна быть поставлена
цель модификации ЭЙС и определено множество методов, ведущих к достижению требуемой цели. Собираемая и анализируемая информация должна лишь доказать (или опровергнуть) целесообразность применения конкретного метода модификации и позволить выработать его спецификацию
Цели модификации ЭИС можно разделить на шесть больших
групп:
• исправление проектных ошибок,
• улучшение эксплуатационных характеристик ЭИС,
• адаптация к изменениям в предметной области,
• разработка нового приложения,
• обеспечение совместимости с другими ИС,
• перенос БД в новую аппаратно-программную среду.
Конкретные методы модификации ЭИС группируются по четырем направлениям
• реструктуризация БД,
• перепрограммирование прикладных задач,
• реорганизация БД,
• настройка вычислительной системы.
Данные таблицы показывают, что автономные операции над базой данных (реструктуризация и реорганизация) не могут быть эффективно использованы для целей модификации без одновременного совершенствования вычислительной системы
и программного обеспечения.
Большинство процедур модификации ЭИС могут производиться без прекращения стадии эксплуатации. Однако необходим контроль всех компонентов ЭИС (базы данных, вычислительной системы, программных средств) после проведения каких-либо усовершенствований.

Билет 4. Структурный подход, каскадная модель разработки ЭИС

Методы проектирования ПО реализуется через технологию проектирования, которая определяется как «совокупность технологических операций проектирования в их последовательности и взаимосвязи». Существует две базовые концепции разработки проекта ПО ЭИС: Структурный подход и объектно-ориентированный (рис. 4).
         
А            Б
Рисунок 4
Структурный подход (рис. 4.А) связан с функциональной декомпозицией системы, в результате которой выделяются связанные по иерархии компоненты (функции, процедуры обработки данных), каждый из которых обладает ограниченной функциональностью, обозримостью и может модифицироваться автономно от других компонентов (становится самостоятельным модулем), но  при этом соблюдается целостность ЭИС.
Результатом структурного подхода является разработка модульной архитектуры ПО ЭИС. Данные и программы при структурировании отделены друг от друга, что обеспечивает независимость представления логики обработки данных от их физической организации. В качестве инструментальных средств проектирования в структурном подходе чаще всего используются:
1. Методы структурного анализа и проектирования — SADT (Structured Analysis and Design Technique);
2. Диаграммы потоков данных — DFD (Data Flow Diagram);
3. Диаграммы «сущность–связь» для реляционных БД — ERD (Entity Relationship Diagrams).
Структурный подход к проектированию может использовать как каскадную, так и спиральную модель ЖЦ ПО.

Существует две базовые модели разработки ПО ЭИС:
• каскадная модель (70-е г. 20 века);
• спиральная модель (80-е г. 20 века).
Для каскадной модели характерно (рис. 2):
• каждая стадия должна заканчиваться получением результатов, являющихся исходными данными для выполнения работ следующей стадии;
• переход на следующую стадию выполняется последовательно, после завершения всех работ предыдущей стадии;
• документирование работ каждой стадии выполняется как на предварительной, так и на окончательной фазе их выполнения.
Грфически это выглядит как строгая хронологическая последовательность стадий:

Рисунок 2
Каскадная модель идеально подходит для небольших, «монолитных» проектов, не имеющих развитой структуры, и не подходит для структурно-сложных или многокомпонентных проектов. Проекты, отличающиеся новизной или неопределенностью своих требований, не могут быть жестко регламентирована на всех стадиях ЖЦ ИС. В реальных разработках выполняются возвраты к предыдущим стадиям, вносятся коррективы и повторяются стадии ЖЦ. .

БИЛЕТ № 5 Объектно-ориентированный подход, спиральная модель разработки ЭИС

Объектно-ориентированное программирование (проектирование) использует объектную декомпозицию. Объекты – совокупность данных (свойств) и методов обработки данных, активизируемых при наступлении предопределенных событий. Объекты объединяются в классы, экземпляры объектов классов наследуют свойства и методы обработки, типизируют процесс обработки. Объект соединяет в себе методы и свойства.
Объектно-ориентированный подход позволяет интегрировать языки модулирования и case технологии для создания программного кода автоматизированным способ.

Спиральная модель разработки ПО предполагает:
1. Повтор выполнения стадий с последовательным расширением функциональности ПО.
2. Использование прототипов (шаблонов) для отдельных компонентов ПО.
Спиральная модель ориентирована на выпуск версий (релизов) ПО.

Методы проектирования ПО ИС представляют собой совокупность технических операций для различных стадий разработки и создания ИС.

6. Организационная структура управления ЭИС

В общем случае организационная структура управления проектированием регулирует взаимоотношения подразделений и должностных лиц в организации, устанавливает распределение ролей, полномочий и ответственности между ними, а также порядок функционально-технических связей, возникающих в процессах управления. Организационная структура и организационный механизм как система связи в данной организации во всем многообразии проявлений образуют организационные формы управления деятельностью коллектива.
Формы управления, применяемые в организациях - разработчиках ЭИС, зависят от выполняемых работ. Как правило, в организациях-разработчиках выполняются, как об этом было сказано выше, работы, связанные с проектированием ЭИС и с поддержкой и сопровождением ЭИС.
Организационная форма управления проектированием ЭИС играет большую роль в реализации задач повышения эффективности процесса разработки систем. Форма управления является тем стержнем, который во многом определяет содержание и качество проекта системы. Можно передать в распоряжение разработчиков самые совершенные средства проектирования, четкие формы документации, планы работ, методы контроля, но без должной организации не получить проект, удовлетворяющий потребностям заказчика. И наоборот, совершенная форма организации проектирования восполняет недостаток эффективных средств проектирования и в отдельных случаях даже квалификации разработчиков.
ЭИС связывает объект и систему управления между собой и с внешней средой через информационные потоки :
•  ИП1 - информационный поток из внешней среды в систему управления (нормативная информация, создаваемая государственными учреждениями; поток информации о конъюнктуре рынка);
•  ИП2 - информационный поток из системы управления во внешнюю среду (отчетная информация в государственные органы, инвесторам; маркетинговая информация потенциальным потребителям;
•  ИПЗ - информационный поток из системы управления на объект управления (плановая, нормативная и распорядительная информация для осуществления хозяйственных процессов);
•  ИП4 - информационный поток от объекта управления в систему управления (обратная связь - учетная информация о состоянии объекта управления - сырья, материалов, денежных, энергетических, трудовых ресурсов, готовой продукции и выполненных услугах).
На различных уровнях управления (оперативном, тактическом и стратегическом) выделяются следующие типы информационных систем:
•  система обработки данных (СОД);
•  информационная система управления (ИСУ);
•  система поддержки принятия решений (СППР).
Формирование организационных форм управления в организациях - разработчиках ЭИС осуществляется по функциональному, проектному (целевому) и матричному принципам.
Функциональный принцип построения структуры организации используется при выполнении задач проектирования постоянного характера. Для выполнения каждого вида задач, например, разработки постановки экономических задач, информационного обеспечения и т.п., формируются функциональные подразделения из специалистов определенного профиля. Подобная организационная структура обладает высокой степенью централизации управления, ей присущ авторитарный стиль руководства. В области разработки ЭИС функциональная структура организации встречается весьма редко.
Для построения организационных структур проектных организаций наиболее часто используется проектный принцип. На основе этого принципа формируется организационное подразделение - проектная группа (проект), которая предназначена для одноразовой разработки ЭИС. Специалисты проектной группы образуют автономную организационную единицу, руководитель (главный конструктор) которой имеет соответствующие полномочия и несет полную ответственность за результаты деятельности проектного коллектива, который после выполнения проекта может быть расформирован.
Матричное построение организационных структур предполагает формирование в организации - разработчике ЭИС из специалистов функциональных подразделений проектных групп для разработки конкретных проектов. При этом специалисты не теряют принадлежности к соответствующему функциональному подразделению и находятся в двойном подчинении: у руководителя проекта (ответственность по проекту) и у руководителя функционального подразделения (организационная ответственность).
Матричные структуры применяются в условиях высокой степени кооперации функциональных подразделений. Эти структуры основаны на особом механизме взаимодействия функциональных и проектно-целевых подсистем аппарата управления проектной организации. Главная особенность матричных структур состоит в обязательном выделении конкретного лица - руководителя проекта, наделенного всей полнотой ответственности за достижение цели проектирования и значительными правами распорядительства, которые делегируются ему вышестоящим руководством.
При одновременной разработке нескольких проектов в организационную структуру, как правило, вводится планово-производственное подразделение, главной задачей которого являются балансирование ресурсов, потребляемых всеми проектами, и обеспечение координации и текущих изменений в проектах
Выбор и обоснование состава функциональных задач является одним из важнейших элементов создания ЭИС. Состав функциональных подсистем определяется особенностями экономической системы, ее отраслевой принадлежностью, формой собственности, размером, характером деятельности.
Принципы построения функциональных подсистем ЭИС:
•  предметный;
•  функциональный;
•  проблемный;
•  смешанный (предметно-функциональный).
С учетом предметной направленности в хозяйственных процессах промышленного предприятия выделяют подсистемы, соответствующие управлению отдельными ресурсами:
•  управление сбытом готовой продукции;
•  управление производством;
•  управление материально-техническим снабжением;
•  управление финансами;
•  управление персоналом.
В экономической системе объект управления представляет собой подсистему
материальных элементов экономической деятельности  (на промышленном предприятии:
сырье и материалы,  оборудование,  готовая продукция,  работники и др.)  и хозяйственных
процессов  (на промышленном предприятии:  основное и вспомогательное производство,
снабжение, сбыт и др.)

БИЛЕТ № 7
1. Функциональная ориентация ЭИС
Структуру ЭИС можно представить как совокупность подсистем (рис. 1):
1. Подсистемы функционального назначения – поддержка функций управления хозяйствующим субъектом.
2. Обеспечивающие подсистемы: технологическое (система обработки данных), организационно-экономическое, математическое, программное, техническое, правовое, информационное и др.
Типовые функции управляющей системы, поддерживаемые ЭИС:
• Планирование деятельности – установление «плановых» значений управляемых параметров (формулировка требований к результатам деятельности объекта управления).
• Учет деятельности - «фактических» значений результатов деятельности объекта управления.
• Контроль  деятельности – сопоставление плановых и фактических значений управляемых параметров.
• Анализ – выявление причин несоответствия плановых и фактических значений управляемых параметров.
• Регулирование – управляющее воздействие с целью обеспечения соответствия фактических значений плановым значениям.
Объектом управления ЭИС является некая «бизнес-система», которая рассматривается как целевая, открытая, социально-экономическая система, принадлежащая иерархической совокупности открытых внешних надсистем (рынок, государственные учреждения и пр.) и внутренних подсистем (отделы, цеха, бригады и пр.).

Рисунок 10
Деятельность бизнес-системы осуществляется согласно сформулированной миссии [ISO-15704], направленной на удовлетворение потребности заказчиков (потребителей производимого продукта или услуги). Миссия рассматривается также и как  механизм, с помощью которого предприятие реализует свои цели и задачи, и как компромисс интересов рынка и компании (предмет конкурентной борьбы).
После определения миссии формируется дерева целей компании и дерево стратегий – перечень мероприятий для достижения стратегических целей. Управление компанией осуществляется в соответствии с разработанными различного вида стратегиями:
• корпоративные стратегии роста, интеграции и инвестиции бизнеса;
• продуктовые и конкурентные бизнес-стратегии;
• стратегии сегментации и продвижения продуктов на рынке;
• ресурсные стратегии  по привлечению материальных, финансовых, человеческих и информационных ресурсов;
• функциональные стратегии качества;
• функциональные стратегии управления жизненным циклом продукции и др.
Деятельность бизнес-системы развивается в условиях  партнерских отношений с поставщиками ресурсов и потребителями конечного продукта (работы, услуги), она обладает бизнес-потенциалом, который и определяет виды деятельности, рынки сбыта, место на рынке и др.
Функционал бизнес-системы  - перечень бизнес-функций, функций менеджмента и функций обеспечения, требуемых для поддержания на регулярной основе указанных видов коммерческой деятельности, состав необходимых для этого ресурсов (материальных, человеческих, финансовых и информационных), а также организационная структура бизнес-системы.
Процесс управления требует сбора информации и диагностики состояния объекта управления, выявления и формулировки проблем, требующих решения. После этого возможно определение целей управления, подготовка альтернативных решений. Для выбора варианта решений применяется определенный критерий. В ходе реализации решения выполняется мониторинг (наблюдение и текущий анализ состояния бизнес- системы),  на основании которого возможна как корректировка целей, так и методов решения проблем.
Функции и задачи управления:
1. Организация системы - полное, качественное выделение подсистем, описание их взаимодействий и структуры системы (как линейной, так и иерархической, сетевой или матричной).
2. Прогнозирование поведения системы, т.е. исследование будущего системы.
3. Планирование (координация во времени, в пространстве, по информации) ресурсов и элементов, подсистем и структуры системы, необходимых (достаточных - в случае оптимального планирования) для достижения цели системы.
4. Учет и контроль ресурсов, приводящих к тем или иным желаемым состояниям системы.
5. Регулирование - адаптация и приспособление системы к изменениям внешней среды.
6. Реализация тех или иных спланированных состояний, решений.
По характеру управления, охвата подсистем и подцелей (цели системы) управление может быть:
• стратегическое, направленное на разработку, корректировку стратегии поведения системы;
• тактическое, направленное на разработку, корректировку тактики поведения системы.
По времени управляющего воздействия системы могут быть долгосрочно и краткосрочно управляемые. Выявление управляющих параметров и их использование для управления системой может способствовать уменьшению сложности системы, что может сделать систему управляемой.
Для управления необходимо обеспечить превосходящее разнообразие управляющей системы. Например, управляемая система обладает разнообразием V(N1), а управляющая - V(N2). Цель управляющей системы – уменьшить значение V(N1) за счет изменения V(N2). Любое изменение V(N1) должно иметь отражение на V(N2), а именно, управляющая система может эффективно выполнять присущие ей функции управления лишь при условии, если верно неравенство V(N2)   V(N1), так называемый принцип Эшби.
Для представления функций системы управления и их распределения по организационным уровням и подразделениям системы управления строятся функциональные модели, которые определяют информационные потоки между структурными подразделениями и пользователями ЭИС.
В компании выполняются бизнес-процессы, которые представляют собой потоки действия (работ), направленных на создание «ценности» для потребителей либо на обеспечение условий для выполнения бизнес-процессов. Процессное управление обеспечивает повышение эффективности деятельности компании, поскольку ориентировано на конечного потребителя. Для процессного управления создаются процессные потоковые модели - модели, описывающие процесс последовательного во времени преобразования материальных и информационных потоков компании в ходе реализации какой-либо бизнес-функции или функции менеджмента, направленный на достижение стратегических целей. Сначала (на верхнем уровне) описывается логика взаимодействия участников процесса, а затем (на нижнем уровне) - технология работы отдельных специалистов на своих рабочих местах.
В совокупности функциональные и процессные модели определяют требования к данным, информационным технологиям и организации информационных потоков в ЭИС. Полная бизнес-модель компании - это совокупность функционально ориентированных информационных моделей (см. далее), на основе которой разрабатываются различного вида информационные модели, являющиеся основой построения ЭИС.
Существует большое многообразие методов получения информации об объекте управления: эмпирические, теоретические.
Эмпирические методы – это наблюдение (сбор первичной информации или эмпирических утверждений о системе), сравнение - установление общего и различного в исследуемой системе или системах, измерение - поиск, формулирование эмпирических фактов, эксперимент - целенаправленное преобразование исследуемой системы (систем) для выявления ее (их) свойств.
Эмпирико-теоретические методы:
1. Абстрагирование - установление общих свойств и сторон объекта (или объектов), замещение объекта или системы ее моделью.
2. Анализ - разъединение системы на подсистемы с целью выявления их взаимосвязей.
3. Декомпозиция - разъединение системы на подсистемы с сохранением их взаимосвязей с окружением.
4. Синтез - соединение подсистем в систему с целью выявления их взаимосвязей.
5. Композиция - соединение подсистем в систему с сохранением их взаимосвязей с окружением.
6. Индукция - получение знания о системе по знаниям о подсистемах; индуктивное мышление: распознавание эффективных решений, ситуаций и затем проблем, которые оно может разрешать.
7. Дедукция - получение знания о подсистемах по знаниям о системе; дедуктивное мышление: определение проблемы и затем поиск ситуации, его разрешающей.
8. Эвристики, использование эвристических процедур - получение знания о системе по знаниям о подсистемах системы и наблюдениям, опыту.
9. Моделирование (простое моделирование) и/или использование приборов - получение знания об объекте с помощью модели и/или приборов; моделирование основывается на возможности выделять, описывать и изучать наиболее важные факторы и игнорировать при формальном рассмотрении второстепенные.
10. Исторический метод - поиск знаний о системе путем использования ее предыстории, реально существовавшей или же мыслимой, возможной (виртуальной).
11. Логический метод - метод поиска знаний о системе путем воспроизведения ее некоторых подсистем, связей или элементов в мышлении, в сознании.
12. Макетирование - получение информации по макету объекта или системы, т.е. с помощью представления структурных, функциональных, организационных и технологических подсистем в упрощенном виде, сохраняющем информацию, которая необходима для понимания взаимодействий и связей этих подсистем.
13. Актуализация - получение информации с помощью активизации, инициализации смысла, т.е. переводом из статического (неактуального) состояния в динамическое (актуальное) состояние; при этом все необходимые связи и отношения (открытой) системы с внешней средой должны быть учтены (именно они актуализируют систему).
14. Визуализация - получение информации с помощью наглядного или визуального представления состояний актуализированной системы; визуализация предполагает возможность выполнения в системе операции типа "передвинуть", "повернуть", "укрупнить", "уменьшить", "удалить", "добавить" и т.д. (как по отношению к отдельным элементам, так и к подсистемам системы).
В последнее время также получили применение такие формы как деловые игры и ситуации, экспертные оценки (экспертное оценивание), имитация (подражание), верификация (сопоставление с опытом и заключение об обучении) и другие формы.
К чисто теоретическим методам относятся методы получения знаний:
1. Метод восхождение от абстрактного к конкретному, обеспечивает получение знаний о системе на основе знаний о ее абстрактных проявлениях в сознании, в мышлении.
2. Метод идеализации – получение знаний о системе или о ее подсистемах путем мысленного конструирования, представления в мышлении систем и/или подсистем, не существующих в действительности.
3. Метод формализации – получение знаний о системе с помощью знаков или же формул, т.е. языков искусственного происхождения, например, языка математики (или математическое, формальное описание, представление).
4. Метод аксиоматизации – получение знаний о системе или процессе с помощью некоторых, специально для этого сформулированных аксиом и правил вывода из этой системы аксиом.
5. Метод виртуализации – получение знаний о системе созданием особой среды, обстановки, ситуации (в которую помещается исследуемая система и/или ее исследующий субъект), которую реально, без этой среды, невозможно реализовать и получить соответствующие знания.
Выбор методов получения информация зависит целиком от природы объекта и функций управления, методы предполагают определенную форму представления результатов. Для теоретического осмысления наиболее приемлемо модельное описание бизнес-системы и протекающих в ней процессов, в том числе информационных.

8. Экономические информационные системы

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

Экономическая информационная система представляет собой систему, функционирование которой во времени заключается в сборе, хранении, обработке и распространении информации о деятельности какого-либо экономического объекта реального мира.
Бухгалтерский учет
Это классическая область применения информационных технологий и наиболее часто реализуемая на сегодняшний день задача. Такое положение вполне объяснимо. Во-первых, ошибка бухгалтера может стоить очень дорого, поэтому очевидна выгода использования возможностей автоматизации бухгалтерии. Во-вторых, задача бухгалтерского учета довольно легко формализуется, так что разработка систем автоматизации бухгалтерского учета не представляет технически сложной проблемы.
Управление финансовыми потоками
Внедрение информационных технологий в управление финансовыми потоками также обусловлено критичностью этой области управления предприятия к ошибкам. Неправильно построив систему расчетов с поставщиками и потребителями, можно спровоцировать кризис наличности даже при налаженной сети закупки, сбыта и хорошем маркетинге, И наоборот, точно просчитанные и жестко контролируемые условия финансовых расчетов могут существенно увеличить оборотные средства фирмы.
Управление складом, ассортиментом, закупками
Далее, можно автоматизировать процесс анализа движения товара, тем самым отследив и зафиксировав те двадцать процентов ассортимента, которые приносят восемьдесят процентов прибыли. Это же позволит ответить на главный вопрос - сак получать максимальную прибыль при постоянной нехватке средств?
Управление производственным процессом
Управление производственным процессом представляет собой очень трудоемкую задачу. Основными механизмами здесь являются планирование и оптимальное управление производственным процессом.
Автоматизированное решение подобной задачи дает возможность грамотно планировать, учитывать затраты, проводить техническую подготовку производства, оперативно управлять процессом выпуска продукции в соответствии с производ-твенной программой и технологией.
Управление маркетингом
управление маркетингом подразумевает сбор и анализ данных о фирмах-конкурентах, их продукции и ценовой политике, а также моделирование параметров внешнего окружения для определения оптимального уровня цен, прогнозирования прибыли и планирования рекламных кампаний. Решение большинства этих задач могут быть формализованы и представлены в виде информационной системы, позволяющей существенно повысить эффективность управления маркетингом.
Документооборот
Документооборот является очень важным процессом деятельности любого предприятия. Хорошо отлаженная система учетного документооборота отражает реально происходящую на предприятии текущую производственную деятельность и дает управленцам возможность воздействовать на нее. Поэтому автоматизация документооборота позволяет повысить эффективность управления.
Оперативное управление предприятием
Информационная система, решающая задачи оперативного управления предприятием, строится на основе базы данных, в которой фиксируется вся возможная информация о предприятии. Такая информационная система является инструментом для управления бизнесом и обычно называется корпоративной информационной системой.
Классификация по сфере применения
По сфере применения информационные системы обычно подразделяются на четыре группы
1. системы обработки транзакций;2. системы принятия решений;
3. информационно-справочные системы; 4. офисные информационные системы.

9.10.Информационно-технологическая архитектура ЭИС (клиент-серверная архитектура: "толстый" клиент, тонкий клиент)

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

Тонкий клиент содержит  минимальное приложение.Вся обработка перенесена на сервер приложений.

Термин "клиент-сервер" означает такую архитектуру программного комплекса, в которой его функциональные части взаимодействуют по схеме "запрос-ответ". Если рассмотреть две взаимодействующие части этого комплекса, то одна из них (клиент) выполняет активную функцию, т. е. инициирует запросы, а другая (сервер) пассивно на них отвечает. По мере развития системы роли могут меняться, например некоторый программный блок будет одновременно выполнять функции сервера по отношению к одному блоку и клиента по отношению к другому.
Заметим, что любая информационная система должна иметь минимум три основные функциональные части - модули хранения данных, их обработки и интерфейса с пользователем. Каждая из этих частей может быть реализована независимо от двух других. Например, не изменяя программ, используемых для хранения и обработки данных, можно изменить интерфейс с пользователем таким образом, что одни и те же данные будут отображаться в виде таблиц, графиков или гистограмм. Не меняя программ представления данных и их хранения, можно изменить программы обработки, например изменив алгоритм полнотекстового поиска. И наконец, не меняя программ представления и обработки данных, можно изменить программное обеспечение для хранения данных, перейдя, например, на другую файловую систему.
В классической архитектуре клиент-сервер приходится распределять три основные части приложения по двум физическим модулям. Обычно ПО хранения данных располагается на сервере (например, сервере базы данных), интерфейс с пользователем - на стороне клиента, а вот обработку данных приходится распределять между клиентской и серверной частями. В этом-то и заключается основной недостаток двухуровневой архитектуры, из которого следуют несколько неприятных особенностей, сильно усложняющих разработку клиент-серверных систем.
При разбиении алгоритмов обработки данных необходимо синхронизировать поведение обеих частей системы. Все разработчики должны иметь полную информацию о последних изменениях, внесенных в систему, и понимать эти изменения. Это создает большие сложности при разработке клиент-серверных систем, их установке и сопровождении, поскольку необходимо тратить значительные усилия на координацию действий разных групп специалистов. В действиях разработчиков часто возникают противоречия, а это тормозит развитие системы и вынуждает изменять уже готовые и проверенные элементы.
Чтобы избежать несогласованности различных элементов архитектуры, пытаются выполнять обработку данных на одной из двух физических частей - либо на стороне клиента ("толстый" клиент), либо на сервере ("тонкий" клиент, или архитектура, называемая "2,5- уровневый клиент-сервер"). Каждый подход имеет свои недостатки. В первом случае неоправданно перегружается сеть, поскольку по ней передаются необработанные, а значит, избыточные данные. Кроме того, усложняется поддержка системы и ее изменение, так как замена алгоритма вычислений или исправление ошибки требует одновременной полной замены всех интерфейсных программ, а иначе могут возникнуть ошибки или несогласованность данных. Если же вся обработка информации выполняется на сервере (когда такое вообще возможно), то возникает проблема описания встроенных процедур и их отладки. Дело в том, что язык описания встроенных процедур обычно является декларативным и, следовательно, в принципе не допускает пошаговой отладки. Кроме того, систему с обработкой информации на сервере абсолютно невозможно перенести на другую платформу, что является серьезным недостатком.
Большинство современных средств быстрой разработки приложений (RAD), которые работают с различными базами данных, реализует первую стратегию, т. е. "толстый" клиент обеспечивает интерфейс с сервером базы данных через встроенный SQL. Такой вариант реализации системы с "толстым" клиентом, кроме перечисленных выше недостатков, обычно обеспечивает недопустимо низкий уровень безопасности. Например, в банковских системах приходится всем операционистам давать права на запись в основную таблицу учетной системы. Кроме того, данную систему почти невозможно перевести на Web-технологию, так как для доступа к серверу базы данных используется специализированное клиентское ПО.
Итак, рассмотренные выше модели имеют следующие недостатки.
1. "Толстый" клиент:
*  сложность администрирования;
*  усложняется обновление ПО, поскольку его замену нужно производить одновременно по всей системе;
*  усложняется распределение полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;
*  перегружается сеть вследствие передачи по ней необработанных данных;
*  слабая защита данных, поскольку сложно правильно распределить полномочия.
2. "Толстый" сервер:
*  усложняется реализация, так как языки типа PL/SQL не приспособлены для разработки подобного ПО и нет хороших средств отладки;
*  производительность программ, написанных на языках типа PL/SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;
*  программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных;
*  получившиеся таким образом программы полностью непереносимы на другие системы и платформы.
Для решения перечисленных проблем используются многоуровневые (три и более уровней) архитектуры клиент-сервер.
Многоуровневые архитектуры клиент-сервер
Такие архитектуры более разумно распределяют модули обработки данных, которые в этом случае выполняются на одном или нескольких отдельных серверах. Эти программные модули выполняют функции сервера для интерфейсов с пользователями и клиента - для серверов баз данных. Кроме того, различные серверы приложений могут взаимодействовать между собой для более точного разделения системы на функциональные блоки, выполняющие определенные роли. Например, можно выделить сервер управления персоналом, который будет выполнять все необходимые для управления персоналом функции. Связав с ним отдельную базу данных, можно скрыть от пользователей все детали реализации этого сервера, разрешив им обращаться только к его общедоступным функциям. Кроме того, такую систему очень просто адаптировать к Web, поскольку проще разработать html-формы для доступа пользователей к определенным функциям базы данных, чем ко всем данным.
В трехуровневой архитектуре "тонкий" клиент не перегружен функциями обработки данных, а выполняет свою основную роль системы представления информации, поступающей с сервера приложений. Такой интерфейс можно реализовать с помощью стандартных средств Web-технологии - браузера, CGI и Java. Это уменьшает объем данных, передаваемых между клиентом и сервером приложений, что позволяет подключать клиентские компьютеры даже по медленным линиям типа телефонных каналов. Кроме того, клиентская часть может быть настолько простой, что в большинстве случаев ее реализуют с помощью универсального браузера. Но если менять ее все-таки придется, то эту процедуру можно осуществить быстро и безболезненно. Трехуровневая архитектура клиент-сервер позволяет более точно назначать полномочия пользователей, так как они получают права доступа не к самой базе данных, а к определенным функциям сервера приложений. Это повышает защищенность системы (по сравнению с обычно архитектурой) не только от умышленного нападения, но и от ошибочных действий персонала.
Для примера рассмотрим систему, различные части которой работают на нескольких удаленных друг от друга серверах. Допустим, что от разработчика поступила новая версия системы, для установки которой в двухуровневой архитектуре необходимо одновременно поменять все системные модули. Если же этого не сделать, то взаимодействие старых клиентов с новыми серверами может привести к непредсказуемым последствиям, так как разработчики обычно не рассчитывают на такое использование системы. В трехуровневой архитектуре ситуация упрощается. Дело в том, что поменяв сервер приложений и сервер хранения данных (это легко сделать одновременно, так как оба они обычно находятся рядом), мы сразу меняем набор доступных сервисов. Таким образом, вероятность ошибки из-за несоответствия версий серверной и клиентской частей резко сокращается. Если в новой версии какой-либо сервис исчез, то элементы интерфейса, обслуживавшие его в старой системе, просто не будут работать. Если же изменился алгоритм работы сервиса, то он будет корректно работать даже со старым интерфейсом.
Многоуровневые клиент-серверные системы достаточно легко можно перевести на Web-технологию - для этого достаточно заменить клиентскую часть универсальным или специализированным браузером, а сервер приложений дополнить Web-сервером и небольшими программами вызова процедур сервера. Для разработки этих программ можно использовать как Common Gateway Interface (CGI), так и более современную технологию Java.
Следует отметить и тот факт, что в трехуровневой системе по каналу связи между сервером приложений и базой данных передается достаточно много информации. Однако это не замедляет вычислений, так как для связи указанных элементов можно использовать более скоростные линии. Это потребует минимальных затрат, поскольку оба сервера обычно находятся в одном помещении. Таким образом, увеличивается суммарная производительность системы - над одной задачей теперь работают два различных сервера, а связь между ними можно осуществлять по наиболее скоростным линиям с минимальными затратами средств. Правда, возникает проблема согласованности совместных вычислений, которую призваны решать менеджеры транзакций - новые элементы многоуровневых систем.

2

11. Уровни представления информации  (синтаксический, семантический, прагматический)

Синтаксический аспект связан со способом представления информации вне зависимости от ее смысловых и потребительских качеств. На синтаксическом уровне рассматриваются формы представления И для ее передачи и хранения. Обычно И, предназначенная для передачи, называется сообщением. Сообщение м.б. представлено в виде знаков и символов, преобразовано в электрическую форму, закодировано и промодулировано для обеспечения возможности передачи по выбранному каналу связи. Характеристики процессов преобразования сообщения для его передачи определяют синтаксический аспект И при ее передаче. При хранении синтаксический аспект определяется другими формами представления И, которые позволяют наилучшим образом осуществить поиск, запись, обновление, изменение И в информационной базе. Информацию, рассмотренную только относительно синтаксического аспекта, часто называют данными.
Семантический аспект отражает смысловое содержание И и соотносит ее с ранее имевшейся И. Смысловые связи между словами или другими элементами языка отражает тезаурус. Тезаурус состоит из двух частей: списка слов и устойчивых словосочетаний, сгруппированных по смыслу, и некоторого ключа, например алфавитного, позволяющего расположить слова в определенном порядке. При получении И тезаурус может изменяться, и степень этого изменения характеризует воспринятое количество И.
Прагматический аспект определяет возможность достижения поставленной цели с учетом полученной И. Этот аспект отражает потребительские свойства И. Если И оказалась ценной, поведение ее потребителя меняется в нужном направлении. Проявляется прагматический аспект И только при наличии единства И (объекта), потребителя и поставленной цели.
12. Меры и единицы измерения информации

Единицей информации называется набор символов, которому придается определенный смысл. Это понятие в основном относится к базе данных, хранящей форматированные сообщения.
Если в сообщении «На склад № 2 01.02.98 поступили генераторы от завода «Динамо» в количестве 50 шт. по цене 200 руб.» названия параметров фиксированы, то набор символов «склад № 2, з-д «Динамо», генератор, 01.02.98,200 руб., 50 шт.» является единицей информации. «01.02.98» также является единицей информации.
Минимально необходимы две единицы информации - атрибут и составная единица информации (СЕИ).
Атрибутом называется информационное отображение отдельного свойства некоторого объекта, процесса или явления.
Любое сообщение записывается в форматированном виде как указание свойств (параметров) предметов, о которых мы говорим. Поэтому информационное отображение любого явления представляет собой набор соответствующим образом подобранных атрибутов.
Составная единица информации представляет собой набор из атрибутов и, возможно, других СЕИ.
Простейшими СЕИ являются таблицы, подобные приведенной выше. СЕИ позволяет создавать произвольные комбинации из атрибутов.
База данных ЭИС хранится в запоминающих устройствах вычислительной системы (ЭВМ). Хранимые представления данных очень часто не соответствуют первоначальному множеству форматированных сообщений. Однако сейчас при рассмотрении БД будем считать, что сообщения хранятся в виде таблиц.
Концептуальная схема (от слова concept - понятие) представляет собой описание структуры всех единиц информации, хранящихся в БД. Под структурой понимается вхождение одних единиц информации в состав других единиц информации.
В рамках нашего примера можно говорить о двух единицах информации - параметре (атрибуте) и таблице (СЕИ).
Предположим, что таблица Т соответствует всей базе данных. В концептуальной схеме должно быть указано, что БД состоит из Т, а Т содержит параметры Получатель, Отправитель, Изделие, Дата, Цена, Количество. Более содержательное представление о концептуальной схеме приводится в гл. 2 книги.
Информационный процессор - это механизм, который в ответ на получение команды выполняет операции с БД и концептуальной схемой. Информационный процессор состоит из вычислительной системы и системы управления базой данных - СУБД.
Под вычислительной системой будем понимать серийно выпускаемую электронно-вычислительную машину (ЭВМ) либо несколько ЭВМ, соединенных каналами связи в вычислительную сеть.
ЭВМ состоит из ряда устройств, каждое из которых способно выполнять свойственные ему операции.
Оперативное запоминающее устройство (ОЗУ) используется для хранения программ и данных. Скорость чтения и записи для ОЗУ, как правило, одинаковы, ОЗУ является наиболее быстродействующим устройством ЭВМ.
Процессор выполняет команды, находящиеся в программе. Выполнение команды обычно предполагает обращение к ОЗУ.
ЭВМ может содержать любое число внешних устройств, чаще всего это внешние запоминающие устройства и устройства печати информации.
База данных предполагает централизованное управление данными, что обеспечивает ряд преимуществ:
•сокращение избыточности хранимых данных благодаря однократному хранению каждого сообщения в базе данных,
•совместное использование хранимых данных всеми пользователями ЭИС,
•стандартизацию представления данных, упрощающую проблемы эксплуатации БД и обмена данными между ЭИС,
•обеспечение процедур проверки достоверности информации и процедур ограничения доступа к данным,
•совмещение требований к использованию БД со стороны различных пользователей ЭИС.
Системой управления базой данных называется комплекс программ, обеспечивающий централизованное хранение, накопление, модификацию и выдачу данных, входящих в БД.
Предполагается, что в управлении базой данных принимает участие специальное должностное лицо - администратор базы данных.
13. Потребительские свойства технико-экономической информации

К потребительским свойствам информации относят: ценность, старение, достоверность, читабельность, оперативность, стоимость и др. В этой связи отмечаются такие свойства информации, как: надёжность, точность, полнота, достоверность, достаточность, оперативность и др. Среди требований, предъявляемых к информации, с точки зрения передачи и использования, выделяют следующие: адресность, актуальность, возможность кодирования, высокая скорость сбора, обработки и передачи, достаточность, достоверность, многократность использования, правовая корректность, полнота, своевременность. Рассмотрим все эти свойства более подробно. Информации обобщённо присущи атрибутивные, прагматические и динамические свойства. Каждая из этих категорий содержит соответствующие свойства информации. 1. Атрибутивные свойства - свойства, без которых информация не существует. К данной категории свойств относятся следующие свойства информации: • неотрывность информации от физического носителя и языковая природа информации. Одно из важнейших направлений информатики как науки является изучение особенностей различных носителей и языков информации, разработка новых, более совершенных и современных. Хотя информация неотрывна от физического носителя и имеет языковую природу, она не связана жестко ни с конкретным
языком, ни с конкретным носителем; • дискретность. Содержащиеся в информации сведения, сообщения, данные и знания - дискретны, т.е. характеризуют отдельные фактические данные, закономерности и свойства изучаемых объектов,
распространяемые в виде различных сообщений, состоящих из линии, составного цвета, буквы, цифры, символа или знака; • непрерывность. Информация имеет свойство сливаться с ранее зафиксированной и накопленной, тем самым, способствуя поступательному развитию и накоплению.
14. Структурные единицы информации (реквизиты, составные единицы)

Существуют две основные единицы информации - атрибут и составная единица информации. Атрибут соответствует понятию переменной в языках программирования и понятию реквизита в бухгалтерском учете.
Атрибут характеризуется именем и значением. Именем атрибута называется его условное обозначение в процессах обработки данных.
Значением атрибута называется величина, характеризующая некоторое свойство объекта, явления, процесса в конкретных обстоятельствах. Все допустимые значения атрибута образуют множество, называемое доменом этого атрибута.
Формально атрибут с именем Х представляет собой пару (X,z), где z - элемент Z. Множество Z называется доменом значений (областью определения атрибута X), величина z является значением атрибута Х в заданный момент времени.
Определение домена предполагает указание его имени и списка значений. Если число значений в домене невелико, то их список можно указать при объявлении данных в программе. Например, в языке программирования Паскаль это выглядит как
type
day=1..31;
month = (январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь);
year = 1900..1999;
{в описании типа атрибутов перечисляются допустимые значения атрибутов День, Месяц и Год соответственно}
Зачастую невозможно перечислить все элементы домена, поэтому для домена указываются тип и длина значения. Наиболее употребительны текстовые (символьные), числовые, логические значения, а также значения дат и другие специальные типы значений.
Пример
Домен фамилий - FАМ. Перечислить фамилии невозможно, поэтому ограничим FAM значениями текстового типа длиной до 20 символов. Для языка Паскаль получим:
var FAM:string[20];
В домене, определенном таким образом, могут оказаться элементы, заведомо не являющиеся фамилией, например ''ММММ'', но такие случаи при определении домена не учитываются.
Для ряда доменов множество входящих в них значений задается с помощью перечисления допустимых значений. Если в домене необходимо перечислить обозначения объектов из некоторого класса, то разрабатывается классификатор, содержащий условные обозначения (коды) отдельных объектов и классов, к которым эти объекты отнесены.
Рассмотрим простейшие системы классификации и кодирования, применяемые для обозначения объектов в базе данных вместо их полных названий.
В первую очередь, если классификация объектов вообще не требуется, производится их нумерация, и кодом каждого объекта служит его порядковый номер. Такая система кодирования называется порядковой.
Если все множество объектов классифицируется по одному признаку, то коды объектов целесообразно разделить на несколько частей (серий) по количеству значений этого признака и в пределах каждой серии использовать последовательные номера.
Когда используется несколько классификационных признаков и их взаимная подчиненность соответствует выделению классов объектов, подклассов внутри каждого класса и т.д., удобно использовать разрядную систему кодирования.
В качестве примера рассмотрим различные системы кодирования значений атрибута Код студента. Порядковый код студента - это просто его номер в списке всех студентов. Предположим, что необходимо различать студентов-дневников, вечерников и заочников с использованием серийной системы кодирования. Для этого последовательные номера от 1 до 5999 будем использовать при кодировании дневников, номера от 6000 до 7999 - при кодировании вечерников, от 8000 до 9999 - при кодировании заочников. Если в этих же условиях применить разрядный код, то первый знак кода будет принимать три значения (1 -дневное отделение, 2 - вечернее, 3 - заочное), а следующие 4 знака отводятся для нумерации студентов каждого отделения. В разрядном коде можно учесть больше признаков, например, первый знак - код отделения, второй - код факультета, третий - код курса, четвертый - код группы, пятый и шестой - порядковый номер студента в группе. Обратите внимание, что, увеличивая число различимых признаков в коде, мы вынуждены увеличивать и длину значения атрибута Код студента.
Разрядная система кодирования применяется для кодирования объектов, определяемых несколькими соподчиненными признаками. Кодируемые объекты систематизируются по классификационным признакам на каждой ступени классификации. Каждому признаку классификации отводится определенное число разрядов, в пределах которого кодирование начинается с единицы. Классификационные группировки по младшим признакам кодируются в зависимости от кода более старшего признака.
Если значения нескольких атрибутов определены на одном и том же домене, то такие атрибуты называются ролевыми.
На домене FAM могут быть определены атрибуты с именами: Студент, Преподаватель, Автор. Все это ролевые атрибуты.
Атрибуты Фамилия рабочего и Табельный номер рабочего неролевые, хотя описывают одних и тех же людей.
Домен значений, как правило, не хранится в базе данных как самостоятельный информационный объект. Однако среди ролевых атрибутов домена в базе данных, безусловно, существует атрибут с наиболее полным перечнем значений, и этот атрибут необходимо использовать для контроля достоверности вновь вводимой информации. Например, на предприятии наиболее полный список сотрудников должен присутствовать в базе данных отдела кадров.
Составной единицей информации (СЕИ) называется набор из атрибутов и, возможно, других СЕИ. Определение СЕИ построено рекурсивно (т. е. в определении понятия участвует само понятие), но противоречия здесь нет, поскольку «другие СЕИ» когда-нибудь будут состоять только из атрибутов (ввиду конечности сообщений).
Атрибут и отношение образуют минимально возможный набор единиц информации. На практике удобно использовать большее число единиц информации, как это показано, например, в табл. 1.2. Следует отметить, что БД в целом также является единицей информации. Если рассматривать единицы информации как информационные объекты, то можно говорить об их свойствах, как это делается в табл. 1.2. В то же время единицы информации - это нефизические объекты, так как они не занимают место в пространстве.
Множество атрибутов объединяется в одну СЕИ по следующим принципам:
• соответствующие атрибуты описывают один и тот же факт или экономический процесс,
• значения атрибутов, входящих в СЕИ, возникают одновременно, связаны логическими или арифметическими соотношениями.
Простейшими характеристиками СЕИ являются имя, структура и значение. Имя СЕИ - это ее условное обозначение в процессах обработки информации. Структурой СЕИ называется вхождение одних единиц информации в состав других единиц информации.
Аппарат СЕИ рассчитан на описание структуры экономических документов. Документом называется материальный носитель информации (обычно бланк бумаги), содержащий оформленные в установленном порядке сообщения и имеющий юридическую силу.
Существует сравнительно много способов описания структуры СЕИ. Для описания, не зависимого от конкретных языков программирования и СУБД, достаточно указывать после имени СЕИ список имен входящих в Нее атрибутов и СЕИ. Будем помещать этот список в круглые скобки, а имена внутри скобок перечислять через запятую. Имя СЕИ может сопровождаться размерностью, т.е. указанием на количество одинаковых по структуре значений этой СЕИ. Размерность, если она не равна 1, указывается в скобках после имени СЕИ.
Рассмотрим в качестве примера документа «Приходный ордер» с сокращенным составом атрибутов (рис. 1.5). СЕИ приходного ордера, названная Прих, содержит атрибуты Дата (дата поступления материалов). Пост (код поставщика материалов). Склад и таблицу, также включающую ряд атрибутов. Эта таблица является «другой» СЕИ в составе СЕИ Прих и названа Табл. Обратите внимание, что в экономических документах таблицы не имеют названий, названия всех элементов документа требуются при его машинной обработке.
Определение значения СЕИ можно дать, опираясь на значения единиц информации, входящих в структуру СЕИ. Значение атрибута, входящего в СЕИ, определяется непосредственно. Значение СЕИ, входящей в другую СЕИ, можно определить рекурсивно, однако надо учесть размерность СЕИ. Кроме того, для множества значений СЕИ в составе другой СЕИ необходимо самостоятельное понятие. Назовем собранием СЕИ множество ее значений в составе СЕИ более высокого уровня. Количество значений в собрании СЕИ равно ее размерности.
Значением СЕИ называется набор значений непосредственно входящих в нее атрибутов и набор собраний непосредственно входящих в нее СЕИ. Одно значение СЕИ приходного ордера содержит по одному значению атрибутов Дата, Пост, Склад и собрание СЕИ Табл. Собрание Табл включает в себя три значения, в каждое значение Табл входит по одному значению атрибутов Ннм, Кво-док, Кво-пр, Цена и Сумма. Всего в нашем примере определены два значения СЕИ Прих.
Одно значение СЕИ при хранении ее в памяти ЭВМ часто называется записью.
Все языки программирования содержат средства описания структуры СЕИ.
14. Структурные единицы информации (показатели)

При анализе экономических документов ставится задача разделения документа на элементарные осмысленные фрагменты, называемые показателями. Это позволяет установить смысловые взаимосвязи между различными документами, обеспечить одинаковое понимание всеми пользователями применяемых единиц информации и их единое обозначение, использовать полученные результаты для определения структуры базы данных.
Показатель представляет собой полное описание количественного параметра, характеризующего некоторый объект или процесс. Соответствующее описание произвольного свойства (необязательно количественного) называется атомарным фактом и рассматривается в п. 4.1.
Чтобы точнее характеризовать атрибуты, образующие показатель, необходимо отметить существенные различия свойств, которые отображаются атрибутами. Материальные процессы, как известно, имеют качественную характеристику и количественную характеристику. Соответственно и атрибуты должны разделяться на два класса, которые называются «атрибуты-признаки» и «атрибуты-основания».
Атрибут-признак представляет собой информационное отображение качественного свойства некоторого объекта, предмета, процесса, а основание является отображением их количественного свойства.
В состав показателя должны входить один атрибут-основание и несколько атрибутов-признаков, однозначно характеризующих условия существования основания.
Как единица информации показатель является разновидностью СЕИ. Схематично структура показателя П представляется выражением
П(P1,P2,...,Pk,Q),
где P1, P2,...,Pk - атрибуты-признаки, Q - атрибут-основание.
Если представить себе показатель с двумя, например, атрибутами-основаниями, то его можно разделить на две части, в каждой из которых будет один атрибут-основание и характеризующие его признаки. Полученные части содержат меньше атрибутов и поэтому соответствуют определению показателя.
Таким образом, в показателях отображаются количественные свойства объектов и процессов. Вместе с тем существуют документы, не содержащие атрибутов-оснований, например анкеты кадрового учета, сведения о структуре подразделений предприятия и т. д. Следовательно, не вся экономическая информация может быть представлена в форме показателей.
Минимальный набор атрибутов показателя должен содержать:
• атрибуты, отображающие идентификаторы объектов,
• атрибуты, отображающие признак времени,
• атрибут, отображающий некоторое количественное свойство объекта или взаимодействия.
Для установления признаков и оснований в конкретных документах можно использовать следующие закономерности:
• Если значение атрибута является исходным данным или результатом арифметической операции - это основание.
• Если значение текстовое - это признак.
• Если атрибут обозначает предмет - это признак.
• Если атрибут в некотором показателе является признаком (основанием), - он будет играть эту роль и в других показателях.
• Если показатели описывают сходные процессы - их признанные части совпадают.
• Если основание показателя вычисляется по значениям других оснований, то набор признаков такого показателя есть объединение признаков, связанных с этими основаниями.
Критерием качества создания базы данных может служить минимальная избыточность хранимой информации. Обычно минимальная избыточность выражается принципом: каждое сообщение хранится в БД один раз. Соблюдение этого принципа дает ряд преимуществ:
• сокращается объем памяти ЭВМ, требуемой для хранения базы данных,
• сокращается трудоемкость ввода данных в ЭВМ и упрощаются проблемы контроля достоверности вводимой информации,
• упрощаются алгоритмы корректировки данных, так как корректировка сообщения может быть проведена за одно обращение к базе данных.
Использование аппарата экономических показателей позволяет создать структуру БД с минимальной избыточностью, если сначала расчленить все сведения, циркулирующие в ЭИС, на показатели, а потом объединить атрибуты родственных показателей по принципу: в один файл включается группа экономических показателей с одинаковым составом атрибутов-признаков.
16. Файловые системы

Информационное обеспечение ЭИС первого типа построено в виде файловых систем. В современных ЭВМ операционная система берет на себя распределение внешней памяти, отображение имен файлов в соответствующие адреса во внешней памяти и обеспечение доступа
к данным. Программное обеспечение ЭИС напрямую использует функции ОС для работы с файлами. Файловые системы обычно обеспечивают хранение слабо структурированной информации, оставляя дальнейшую структуризацию прикладным программам. В таких системах сложно решить проблемы согласования данных в разных файлах, коллективного доступа к данным, модификации структуры данных.
Банком данных (рис.1.5) называют систему специальным образом организованных баз данных, программных, технических, языковых и организационно - методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.
Файловая система - логическая организация данных на носителе информации, определяющая логическую и физическую структуру файла, идентификацию и атрибуты файла, а также алгоритмы распределения файлов по пространству носителя и организации файлов в каталоги.
Также часть операционной системы, входящая в ядро, или отдельным модулем, обеспечивающая запись и чтение и другие операции над файлами на внешних носителях, иногда называется хэндлером файловой системы.
По способу идентификации данных различают:
   1. Тривиальные ФС, определяющие хранение файлов в единственной «куче», корневом каталоге носителя. Эти системы практически вымерли, и замещены на иерархические. Из применяющихся можно назвать TR-DOS на компьютере Sinclair ZX-Spectrum.
   2. Иерархические ФС, обеспечивающие хранение файлов в древовидной структуре каталогов. Являются самым распространёным видом ФС. В настольных системах начиная с 1990-х применяются практически только они.
   3. Реляционные, ассоциативные, (?) прочие ФС, обеспечивающие другие методы идентификации данных. Применяются крайне редко по причине узкой области применения.
Файловые системы различаются по устойчивости к сбоям:
    * Неустойчивые к сбоям как правило представляю собой тривиальные структуры, полная согласованность которых обеспечивается во время работы не всегда. При сбое системы в моменты несогласованности возможна потеря данных, или даже разрушение всей ФС целиком. Восстановление часто требует длительных и нетривиальных действий.
    * Устойчивые к сбоям системы представляют полностью согласованные структуры в любой момент времени существования файловой системы, таким образом, отстутствуют моменты, когда сбой может привестик потерям данных или разрушению ФС. Как правило это журналируемые ФС, дублирующие все изменения структуры в специальной области — журнале, таким образом, в случае сбоя имеющие возможность завершить незавершённую операцию или откратить состояние ФС до сбоя.
Разделение прав доступа
Разделение прав доступа существует практически во всех файловых системах, использующихся на многопользовательских ОС. Как правило это возможность установить отдельные права доступа для владельца, группы владельца и остальных пользователей на чтение, запись и исполнение. Такая схема обычна для Posix-совместимых ОС.
В файловой системе NTFS возможна более гибкая настройка прав доступа (для каждого пользователя).
Шифрование
Шифрование — защита информации от считывания непосредственно с носителя, в обход ограничений прав доступа доступно в некоторых файловых системах. У NTFS шифрование — это одна из возможностей, пользователь может выбрать файлы и каталоги, которые он хочет зашифорвать. Некоторые файловые системы специально приспособлены для шифрования данных, это например CryptoFS, или PGPDisk.
Сжатие
Сжатие файлов может обеспечиваться как специальной фаловой системой для этого, так и дополнительной возможностью обычных ФС. Из некогда популярных можно упомянуть DriveSpace, систему, создававшую виртуальный сжатый диск под MS-DOS. Также, сжатие — одна из возможностей, предлагаемых NTFS. При этом файлы с точки зрения пользователя и приложений ничем не отличаются от несжатых, единственное различие — разница в скорости доступа (причём разница неоднозначная, с одной стороны требуется дополнительное процессорное время на сжатие/расжатие, с другой стороны есть выигрыш во времени считывания с носителя) и занимаемом пространстве.
Циклические файлы
Возможность создать циклически перезаписываемый файл (англ. rollover) — особенность некоторых файловых систем для AmigaOS. При дописывании в конец циклического файла он не увеличивается в размере, а теряет начало. Такая возможность предоставляет унифицированный механизм для ведения журналов (логов) в приложениях.
Восстановление удалённых файлов
Во многих файловых системах при удалении файла он не исчезает бесследно, а только получает отметку «удалён», что означает, что пространство, которое было занято файлом может быть повторно использовано для хранения другой информации. Как правило такие файлы, если поверх них ничего не записано можно восстановить специальными средствами.
Некоторые файловые системы (например Amiga SmartFileSystem) перемещают удалённые файлы в специальный каталог («:.recycled»), из которого их потом можно восстановить стандартным способом — копированием или перемещением. Полное же удаление файла производится лишь при нехватке места или при превышении лимитов.
Потоки
Возможность создания «потоков» файла — специальная возможность файловой системы NTFS. Поток — отдельный массив данных, связанный с файлом, но с доступом через специальный суффикс в пути к файлу. В этом потоки похожи на отдельные файлы, но отличаются тем, что копируются и удаляются вместе с основным потоком, а также имеют общие атрибуты.
17. Базы данных

В отличие от файловых систем, структура базы данных меньше зависит от прикладных программ, а все функции по работе с БД сосредоточены в специальном компоненте – системе управления базами данных (СУБД), которая играет центральную роль в функционировании банка данных, так как обеспечивает связь прикладных программ и пользователей с данными. Сведения о структуре БД сосредоточены в словаре-справочнике (репозитории) АБД, этот вид информации называется метаинформацией. В состав метаинформации входит семантическая информация, физические характеристики данных и информация об их использовании. С помощью словарей данных автоматизируется процесс использования метаинформации в ЭИС.
Интеллектуальный банк данных (ИБД) (рис.1.6) - это сравнительно новый способ построения ЭИС, при котором информация о предметной области условно делится между двумя базами.
База данных содержит сведения о количественных и качественных характеристиках конкретных объектов. База знаний содержит сведения о закономерностях в ПО, позволяющие выводить новые факты из имеющихся в БД; метаинформацию; сведения о структуре предметной области;
сведения, обеспечивающие понимание запроса и синтез ответа.
Диалоговый процессор предназначен для понимания смысла запроса и его перевода в термины знаний, заложенных в БЗ. Планировщик преобразует полученный запрос в рабочую программу, составляя ее из модулей, имеющихся в БЗ. Подсистема пополнения знаний позволяет ЭИС обучаться.
Если в традиционном банке данных знания о предметной области заложены программистом в каждую прикладную программу, а также в структуру БД, то в интеллектуальном банке данных они хранятся в базе знаний и отделены от прикладных программ. В отличие от данных, знания активны: на их основе формируются цели и выбираются способы их достижения. Например, ИБД в системе складского учета может автоматически реагировать на такое событие, как уменьшение количества деталей на складе до критической нормы, при этом ИБД без участия пользователя генерирует документы для заказа этих деталей и отправляет их по электронной почте поставщику.
Другое характерное отличие знаний от данных - связность, причем знания отражают как структурные взаимосвязи между объектами предметной области, так и вызванные конкретными бизнес - процессами, например такие связи, как “происходит одновременно”, “следует из...”,
"если - то" и др.
Наконец, существенную роль в ИБД играет форма представления информации для пользователя: она должна быть как можно ближе к естественным для человека способам обмена данными (профессиональный естественный язык, речевой ввод / вывод, графическая форма).
В настоящее время в корпоративных базах данных накоплены гигантские объемы информации, однако она недостаточно эффективно используется в процессе управления бизнесом, поэтому бурно развивается новая форма построения ЭИС - склады (хранилища) данных.

База данных (БД) в строгом смысле слова представляет собой совокупность взаимосвязанных файлов данных определенной организации. БД, как правило, включает целый ряд файлов, но может состоять и из единственного файла. Данные, составляющие БД, отражают характеристики объектов и их отношений в соответствующей прикладной области. Каждый файл, входящий в БД, содержит определенное число записей (изменяемое в процессе функционирования БД), отражающих ту или иную сторону (это определение таблицы а не файла БД) предметной области, на которую ориентирована БД. Как правило, файлы БД содержат большое число однотипных записей(совершенно не правило. Думаю лучше ввести понятие таблица или набор записей). Записи, в свою очередь, состоят из полей, представляющих определенные типы информации об объектах. Поле является наименьшей информационной единицей, непосредственно доступной в записи. Если файл_1 БД (рис. 1) содержит п однотипных записей (имеющих одинаковую структуру полей и их смысловую нагрузку),то j-запись (1<j<n) файла состоит из фиксированного набора (кортежа полей А1—Ак), каждое из которых содержит в общем случае различного типа информацию. При наличии БД прикладные программы могут использовать ее информацию (записи и их поля) для решения конкретных задач в прикладной области, на которую ориентирована данная БД.
TODO: таблица Файловая организация баз данных
Пользователями БД являются четыре основные категории потребителей ее информации и/или поставщиков информации для нее: (1) конечные пользователи, (2) программисты и системные аналитики, (3) персонал поддержки БД в актуальном состоянии и (4) администратор БД. Хорошо спроектированные системы управления БД (СУБД), используют развитые графические интерфейсы и поддерживают системы отчетов, отвечающие специфике пользователей указанных четырех категорий. В этом случае персонал поддержки БД и конечные пользователи могут легко осваивать и использовать СУБД для обеспечения своих потребностей без какой-либо специальной подготовки, т.е. специфика функционирования данных систем скрыта от пользователя. Более того, хорошо спроектированные СУБД предоставляют опытному пользователю средства для создания собственных БД-приложений, не требуя от него специальной программистской подготовки. Конечным пользователям для обеспечения доступа к информации БД предоставляется графический интерфейс, как правило, в виде системы окон с функциональными меню, позволяющими легко получать необходимую информацию на экран и/или принтер в виде удобно оформленных отчетов.
Программисты и системные аналитики используют СУБД совершенно в ином качестве, обеспечивая разработку новых БД-приложений, поддерживая и модифицируя (при необходимости) уже существующие. Для данной группы пользователей СУБД требуются средства, обеспечивающие указанные функции (создание, откладка, редактирование и т.д.). Пользователи третьей категории нуждаются в интерфейсе, как правило, графическом для обеспечения задач поддержания БД в актуальном состоянии. Эти пользователи состоят в штатах подразделений функциональных и/или обработки информации, обеспечивающих прикладную область, и отвечают за актуальное состояние соответствующей ей БД (контроль текущего состояния, удаление устаревшей информации, добавление новой и т.д.). Программисты выполняют своего рода посреднические функции между БД и конечными пользователями. И если на первых этапах развития БД-технологии они составляли весьма многочисленную группу пользователей, то в процессе развития СУБД и, прежде всего, массового использования ПК эта категория сходит на нет. Особую и ответственную роль выполняет администратор, отвечающий как за актуальность находящейся в БД информации, так и за корректность функционирования и использования БД и СУБД.
В случае больших БД может быть достаточно много конечных пользователей, ряд программистов и несколько администраторов БД; в случае небольших БД (что особенно характерно для ПК) все эти функции могут обеспечиваться одним человеком. Важные функции выполняет администратор БД, отвечающий за выработку требований к БД, ее проектирование, реализацию, эффективное использование и сопровождение. Необходимость в таком специалисте вытекает из принципа независимости данных, а также диктуется важностью БД в деятельности организаций и более крупных объединений — поставщиков и потребителей информации БД. Администратор БД взаимодействует с пользователями в определении требований к базе в процессе выработки требований к системе в целом, пользуется языков описания данных для определения БД в процессе проектирования системы, взаимодействует с программистами, которые создают ПС использующее доступ к БД, отвечает за загрузку БД информацией в процессе реализации системы, контролирует работоспособность БД, используя соответствующие программные и аппаратные средства, и определяет, когда следует реорганизовывать данные в базе или начать работы по созданию новой, более совершенной БД. В целом функции администратора БД сводятся к поддержанию целостности БД, необходимого уровня защиты ее данных и эффективности. Среди его наиболее важных обязанностей — согласование конфликтующих требований, которое требуется достаточно часто, ибо БД обслуживает, как правило, целый ряд различных прикладных процессов.
Как уже отмечалось, БД представляет собой совокупность логически взаимосвязанных файлов данных определенной организации; для определения и обращения к такой файловой совокупности используют средства системы управления БД (СУБД). СУБД представляет собой совокупность лингвистических и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями. Тогда как под системой БД понимается СУБД с наполненной соответствующей информацией БД, управляемой ее средствами. Это означает, во-первых, что совокупность файлов БД определяется посредством схемы, не зависящей от программ, которые к ней обращаются, и, во-вторых, что она реализована на основе ВП прямого доступа. Использование СУБД обеспечивает лучшее управление данными, более совершенную организацию файлов и более простое обращение к ним по сравнению с обычными способами хранения информации. Вследствие более совершенных механизмов доступа БД, как правило, имеют более сложную организацию, чем обычные файлы, объединяя данные, ранее хранящиеся во многих отдельных файлах. Размер и сложность не являются определяющими характеристиками БД — наличие СУБД для ПК и даже в среде ряда пакетов (например, табличных процессоров, интегрированных и др.) приводит к созданию большого числа относительно простых и небольших БД, достоинством которых (при наличии соответствующих СУБД) являются простота определения и доступа к данным. Под банком данных (БнД) понимается система лингвистических, программных, аппаратных и организационных средств, основанная на БД-технологии и предназначенная для централизованного накопления и коллективного использования данных в той или иной прикладной области. Тогда как система обработки информации (СОИ) реализует автоматизированный сбор, обработку и хранение информации, включая соответствующие лингвистические, программные, аппаратные, организационные средства и обслуживающий их персонал.
Под целостностью БД понимается актуальное состояние ее данных, отражающих состояние некоторой реальной прикладной области и подчиняющихся правилам непротиворечивости. Под языком БД понимается один или совокупность языков, обеспечивающих описание данных, манипулирование с данными. Конкретный язык БД всегда ассоциируется с конкретной СУБД. СУБД представляет собой средства обработки на языке базы данных, позволяющие обрабатывать обращения к БД, поступающие от прикладных программ и/или конечных пользователей, и поддерживать целостность БД. Таким образом, СУБД имеет свойства, характерные как для компиляторов, так и для ОС, однако по сравнению с первыми обеспечивается более высокий уровень абстрагирования, что оказывается очень полезным как для программистов, так и для конечных пользователей.
Каждая БнД содержит и обрабатывает информацию из конкретной прикладной области, представляющей интерес для определенных приложений. Описание предметной области без акцента на ее последующие БнД-реализации определяет инфологическую модель предметной области (рис. 2). Инфологическая модель является исходной для построения даталогической модели БД и служит промежуточной моделью для специалистов предметной области (для которой создается БнД) и администратора БД в процессе проектирования и разработки конкретной БнД.
Под даталогической понимается модель, отражающая логические взаимосвязи между элементами данных безотносительно их содержания и физической организации. При этом даталогическая модель разрабатывается с учетом конкретной реализации СУБД, также с учетом специфики конкретной предметной области на основе ее инфологической модели. Для конкретной реализации даталогической модели проектируется физическая модель (рис. 2), oтображающая первую на конкретные программные и аппаратные средства (ОС, внешняя память, работа с данными на физическом уровне и т.д.). Наполненная конкретной информацией физическая модель и составляет собственно БД. Система, обеспечивающая cоответствующее совместное функционирование указанных компонентов и составляет суть конкретной СУБД.
Современные СУБД допускают целый ряд классификаций в зависимости от уровня их рассмотрения (в целом либо по совокупности их функциональных характеристик): по интерфейсу с пользователем в зависимости от поддерживаемых моделей, по назначению и режиму функционирования, по способу обработки информации и т.д. Мы кратко остановимся на моделях даталогического уровня, который берется за основу большинства современных классификаций СУБД.
Обычно различают три класса СУБД, обеспечивающих работу иерархических, сетевых и реляционных моделей. Однако различия между этими классами постепенно стираются, причем, видимо, будут появляться другие классы, что вызывается прежде всего интенсивными работами в области баз знаний (БЗ) и объектно-ориентированной инфотехнологией, о которой будет идти речь ниже. Поэтому традиционной классификацией пользуются все реже, но мы пока будем придерживаться именно ее, как наиболее устоявшуюся. Каждая из указанных моделей обладает характеристиками, делающими ее наиболее удобной для конкретных приложений. Одно из основных различий этих моделей состоит в том, что для иерархических и сетевых СУБД их структура часто не может быть изменена после ввода данных, тогда как для реляционных СУБД структура может изменяться в любое время. С другой стороны, для больших БД, структура которых остается длительное время неизменной, и постоянно работающих с ними приложений с интенсивными потоками запросов на БД-обслуживание именно иерархические и сетевые СУБД могут оказаться наиболее эффективными решениями, ибо они могут обеспечивать более быстрый доступ к информации БД, чем реляционные СУБД.

18. Хранилище данных

Хранилище данных представляет собой АБД, в котором база данных разделена на два компонента: оперативная БД хранит текущую информацию, квазипостоянная БД содержит исторические данные (см. рис.1.7), например, в оперативной БД могут содержаться данные о продажах за текущий год, а в квазипостоянной БД хранятся систематизированные годовые отчеты и балансы за все время существования предприятия. Подсистема оперативного анализа данных позволяет эффективно и быстро анализировать текущую информацию. Подсистема принятия решений пользуется обобщенной и исторической информацией, применяет методы логического вывода. Для общения с пользователем служит универсальный интерфейс. 
Выбор того или иного класса ЭИС зависит от ее назначения, конкретных условий применения и
экономических критериев.

Хранилище данных (англ. Data Warehouse) — очень большая предметно-ориентированная информационная корпоративная база данных, специально разработанная и предназначенная для подготовки отчётов, анализа бизнес-процессов с целью поддержки принятия решений в организации. Строится на базе клиент-серверной архитектуры, реляционной СУБД и утилит поддержки принятия решений. Данные, поступающие в хранилище данных, становятся доступны только для чтения. Данные из промышленной OLTP-системы копируются в хранилище данных таким образом, чтобы построение отчётов и OLAP-анализ не использовал ресурсы промышленной системы и не нарушал её стабильность. Данные загружаются в хранилище с определённой периодичностью, поэтому актуальность данных несколько отстает от OLTP-системы.
Принципы организации хранилища:
   1. Проблемно-предметная ориентация. Данные объединяются в категории и хранятся в соответствии с областями, которые они описывают, а не с приложениями, которые они используют.
   2. Интегрированность. Данные объединены так, чтобы они удовлетворяли всем требованиям предприятия в целом, а не единственной функции бизнеса.
   3. Некорректируемость. Данные в хранилище данных не создаются: т.е. поступают из внешних источников, не корректируются и не удаляются.
   4. Зависимость от времени. Данные в хранилище точны и корректны только в том случае, когда они привязаны к некоторому промежутку или моменту времени
Существуют два архитектурных направления – нормализованные хранилища данных и размерностные хранилища.
В нормализованных хранилищах, данные находятся в предметно ориентированных таблицах третьей нормальной формы – витрины данных. Нормализованные хранилища характеризуются как простые в создании и управлении, недостатки нормализованных хранилищ – большое количество таблиц как следствие нормализации, из-за чего для получения какой-либо информации нужно делать выборку из многих таблиц одновременно, что приводит к ухудшению производительности системы.
Размерностные хранилища используют схему "звезда" или "снежинка". При этом в центре звезды находятся данные (Таблица фактов), а размерности образуют лучи звезды. Различные таблицы фактов совместно используют таблицы размерностей, что значительно облегчает операции объединения данных из нескольких предметных таблиц фактов (Пример – факты продаж и поставок товара). Таблицы данных и соответствующие размерности образуют архитектуру "ШИНА". Размерности часто создаются в третьей нормальной форме (медленно изменяющиеся размерности), для протоколирования изменения в размерностях. Основным достоинством размерностных хранилищ является простота и понятность для разработчиков и пользователей, также, благодаря более эффективному хранению данных и формализованным размерностям, облегчается и ускоряется доступ к данным, особенно при сложных анализах. Основным недостатком является более сложные процедуры подготовки и загрузки данных, а также управление и изменение размерностей данных.
Источниками данных могут быть:
   1. Традиционные системы регистрации операций (БД)
   2. Отдельные документы
   3. Наборы данных
Источники данных классифицируются:
   1. Территориальное и административное размещение.
   2. Степень достоверности.
   3. Частота обновляемости.
   4. Система хранения и управления данными.
Операции с данными:
   1. Извлечение – перемещение информации от источников данных в отдельную БД, приведение их к единому формату.
   2. Преобразование – подготовка информации к хранению в оптимальной форме для реализации запроса, необходимого для принятия решений.
   3. Загрузка – помещение данных в хранилище, производится атомарно, путем добавления новых фактов или корректировкой существующих.
   4. Анализ – OLAP, Data Mining, Reporting и т. д.
   5. Представление результатов анализа.
Вся эта информация используется в словаре метаданных. В словарь метаданных автоматически включаются словари источников данных. Здесь же форматы данных для их последующего согласования, периодичность пополнения данных, согласованность во времени.
Задача словаря метаданных состоит в том, чтобы освободить разработчика от необходимости стандартизировать источники данных.
Создание хранилищ данных не должно противоречить действующим системам сбора и обработки информации.
Специальные компоненты словарей должны обеспечивать своевременное извлечение из словарей и обеспечить преобразование к единому формату на основе словаря метаданных.
Логическая структура данных хранилища данных отличается от структуры данных источников данных.
Для разработки эффективного процесса преобразования необходима хорошо проработанная модель корпоративных данных и модель технологии принятия решений.
Данные для пользователя удобно представлять в многоразмерных БД, где в качестве размерности могут выступать время, цена или географический регион.
Кроме извлечения данных из БД, принятия решений важен процесс извлечения знаний, в соответствии с информационными потребностями пользователя.
С точки зрения пользователя в процессе извлечения знаний из БД должны решаться след. преобразования: данные → информация → знания → полученные решения.
19. Система документации ЭИС

Состав документов, которые обрабатываются ИС, определяется на этапе формулировки требований к ЭИС. При этом могут использоваться формальные модели типа DFD, а может быть составлен и простой перечень входных и выходных документов. В любом случае после определения состава документов необходим их анализ, чтобы определить, как же информация об объектах предметной области будет отображается в ИС.
Пусть, например, требуется хранить сведения о деталях, поступивших на склад. Как объект реального мира - деталь - будет отображена в базе данных? Для того чтобы ответить на этот вопрос, необходимо знать, какие свойства детали будут необходимы для работы ИС. Среди них могут быть название детали, ее вес, размер, цвет, дата изготовления, материал, из которого она сделана и т.д. Состав этих свойств зависит от решаемых системой задач. Значения этих свойств объектов являются единицами информации, и именно они хранятся в БД.
Каждый документ, как правило - это свидетельство какого-либо события реальной жизни, в процессе которого взаимодействуют два или несколько объектов. Например, Приходный ордер отображает факт поступления товара на склад, поэтому он содержит названия этих объектов и другие их свойства (количество, цена товара, номер склада, ФИО кладовщика, сведения о поставщике товара), дату события. То есть приходный ордер отображает взаимодействие таких объектов, как товары, склад, поставщик товаров.
Целью анализа документов является выявление актуальных, существенных для ИС свойств объектов и их группировка по смыслу.
Отдельные поля документа называют "реквизитами". Каждый реквизит отображает одно свойство какого-либо объекта, имеет имя и значение. Множество всех допустимых значений реквизита называется областью определения. Реквизиты делятся на два вида:
- признаки, которые определяют обстоятельства события (место, время, действующих лиц, единицы измерения, номера документов и т.п.);
- основания, которые определяют количественные свойства объектов или процессов (цена,      количество, сумма, вес и др.).
Реквизит является элементарной единицей информации. Они могут группироваться и образуют
составные единицы информации (СЕИ), среди которых особо выделяют экономический показатель - элементарный осмысленный фрагмент документа, содержащий один атрибут - основание и ряд логически связанных с ним признаков П (О, Р1, Р2,….Рn). Минимальный набор атрибутов показателя включает основание, имена объектов, участвующих в процессе, и время действия. Для наглядного изображения логических и расчетных связей между показателями и для показа последовательности их расчета применяют граф взаимосвязи показателей, в котором вершины соответствуют показателям, а дуга идет от П1 к П2, если при расчете П2 используется основание П1.
Пример. На рис.2.2 показан примерный вид приходного ордера. Выделим признаки, снования и
показатели. Признаки: Номер ордера, Дата, Наименование п.п, Адрес, Код поставщика, Ном.№,
Наим. Товара.
Таким образом, анализ документов проводят в следующем порядке:
1. Анализ структуры документов, выделение существенных признаков, оснований,
показателей.
2. Выявление взаимосвязей между показателями, запись расчетных формул.
3. Построение графа взаимосвязи показателей.
После этого начинается следующий этап: определение структур данных, хранящихся в базе данных. Для этого чаще всего применяют диаграммы структуры данных (DSD) и ERD-диаграммы.
20. Унифицированные системы документации
Документ содержит в фиксированном типе набор полей, характеризующемся законченным смысловым содержанием.
Базовыми характеристиками документов являются:
• Соответствие функции управления(анализ)
1. Виды учетов:
2. Оперативный
3. Бухгалтерский
4. Налоговый
5. Статистический
6. Управленческий

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

Макет – форма документа представлен:
Заголовочная зона

Для реквизитов, характеризующих форму предоставления документа, сферу его действия, реквизиты конкретного экземпляра заполненного документа Наименование предприятия
Название ИС
Код документа Код формы документа
Постоянные характеристики формы

Содержательная зона
Несколько вариантов заполнения зоны:
1) Анкетная форма документа(имя реквизитов, значения реквизитов)
2) Таблица, имеет матричную структуру (боковые – переименованные строки)
При построении таблиц  вводятся строки, в которых находятся показатели:
1) Детальные строки
2) Потоковые строки
В левой части таблицы располагаются группировочные признаки
Оформляющая зона
Для размещения реквизитов, придающих документу юрилическую силу дата, подпись лица,удост. содержание документа, расшифровка подписи, другие реквизиты

Текстовый документ – структурированный или не структурированный текст

Документы:
• Первичные
• Промежуточные (результаты)
• Выходные (результаты обработки данных)
Структура данных документа рассматривается как структурные единицы(СЕИ), могут быть представлены аналитически и графически
УСД – унифицированные системы документации, создаются по функциональному признаку.
Цели создания УСД:
Уменьшение разнообразия содержания и форм документов
Обеспечение экономической эффективности и каличества для различных этапов обработки документов
Для УСД семизначный код. Например финансовая, отчетная документация бюджетных организаций: 0500000
Основные направления  развития УСД:
1) создание общей модели построения документов(формуляр-образец, шаблон формы)
2) Уменьшение количества форм документов, сокращение количества пользователей форм. Документа
3) Использование информационных технологий в обработке документов
4) Единая терминология(наименование реквизитов, показателей)
5) Типизация и трафаретизация текстов
6) Унификация форматов реквизитов
7) Расположение реквизитов в соответствии с посл. Заполнения или использования
УСД должны готовиться на бланках стандартного форматного ряда «А» (ГОСТ 93 27 – 60)
Необходимо обеспечить однократную запись информации в документ
Форма документа является основой для типографного изг бланка, либо программирования(экр формы, формы отчетных (выходных) документов)

3

21. Модели документов и документооборота ЭИС
Различают логическую и физическую модели документа
Логическая модель выражает логическую структуру данных и может быть представлена в виде графа или в аналитический форме записи
Физическая модель представляет информация документа на носителе, изображается в виде чертежа макета формы
ДФД:
Модель потоков данных характеризует маршрут движения документов, который можно представить как последовательность технологических операций обработки данных документа в течение жизненного цикла.
Операция отл набором определенных характеристик:
1) Предмет труда
2) Средство труда
3) Исполнитель
4) Место выполнения операции
5) Длительность
6) Трудоемкость
Диаграмма Swim-Lane standart IDEF 3 обеспечивает анализ обработки отдельных документов и др.
2. Задание «Разработать фасетный классификатор»

22. Система классификации и кодирования технико-экономической информации (иерархический метод, последовательное кодирование)
В состав СККТЭИ входят
1. 1) Классификаторы ТЭИ
             2) Кодификаторы ТЭИ
2. 1) Нормативные материалы
    2) Методические материалы

Классификация – разделение множества объектов на подмножества по из сходству или различию в соответствии с принятыми методми классификации.
Объект классификации – элемент классифицируемого множества
Основные положения для СКК ТЭИС и УСД в РФ определяет стандарт ПР 50.1.019 – 2000
Кодирование – процесс и результат присвоения условного обозначения объекту
Классификация и кодирование являются необходимым средством для:
1) Формирования единого информационного производства
2) Систематизация информации для прогнозирования, учета, анализа и отчетности в экономических информационных системах
3) Обмена и взаимодйствия различных ИС

Методы и системы классификации
Метод классификации – совокупность правил формирования классификационных групп на основе признаков классификации
Признак – свойство или характеристика объекта
Существует 2 методаклассификации – иерархический и фасетный

{Пр}

                                                               …                первый уровень
{Fnps}                   
{Пр2}

                          …              …               …
{Пр1, Пр2}                                                                                  {Пр1, ПрS}

1) UMij = M – объединение группировок одного уровня должно давать некоторое множество объектов
2)        Mij = Ø Ни один объект не может входить в больше одного уровня

Последовательность классификационных признаков жестко фиксируемая
3) Метод соответствует посл детализации характеристик объектов и ориентирован на традиционный ручной способ обработки информации

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

                                                   …                         
{Ф11…Ф1к}                                              {Фn1,.. ФnP}

Множество объектов

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

23. Система классификации и кодирования технико-экономической информации (фасетный метод, параллельное кодирование)

1. Основные функции СКК
Система классификации и кодирования (СКК) технико-экономической информации ЭИС включает:
• классификаторы технико-экономической и социальной информации;
• нормативные и методические документы, регламентирующие разработку, ведение и применение классификаторов.
Объектами классификации и кодирования в ЕССК являются технико-экономические и социальные объекты и их свойства, используемые в различных видах экономической деятельности и при межотраслевом обмене информацией. При разработке проектов правовых актов, создании и эксплуатации информационных систем и ресурсов обязательно применение классификаторов в целях создания условий сопоставимости экономико-статистических данных и совместимости информационных систем и ресурсов.
Классификация — разделение множества объектов на подмножества по их сходству или различию в соответствии с принятыми методами классификации. Объект классификации — элемент классифицируемого множества. Кодирование — процесс и результат присвоения условных обозначений.
Основными функциями СКК являются:
• создание условий для формирования единого информационного пространства;
• систематизация информации по единым классификационным правилам и их использование при прогнозировании социально-экономического развития, ведении учета и отчетности;
• обеспечение совместимости информационных ресурсов и систем;
• обеспечение обмена информационными ресурсами и согласованного информационного взаимодействия ИС.
2. Системы классификации
Признак классификации — свойство или характеристика объекта классификации, по которому проводится классификация.
Метод классификации — совокупность правил и результат распределения заданного множества объектов на подмножества — классификационные группировки в соответствии с признаками сходства или различия. В качестве объектов классификации выступают различные номенклатуры — материалы, товары, подразделения и т.п. Эти номенклатуры требуют описания как их свойств, так и идентификации отдельных представителей.
Различают два метода классификации:
• иерархический метод;
• фасетный метод.
Иерархический метод устанавливает отношение подчинения между различными группировками. Последовательно детализируются качественные свойства объектов множеств: класс, подкласс, группа, подгруппа, вид и т.д. Ступень классификации — этап классификации, результатом которого является совокупность классификационных группировок.
Классифицируемое множество объектов по некоторому основанию деления — отдельному признаку классификации или их совокупности делится на подмножества.
Рисунок 11.1. Иерархический метод

На основании признака классификации (s1) исходное множество М разбито на подмножества: {1}, {2}, … {N}. Для подмножества {1} может быть выбран другой классификационный признак — (s2). В результате подмножество {1} разбивается на совокупность подмножеств {11}, {1m}. Для подмножества {2} выбран классификационный признак — (s3), подмножество {2}разбивается на совокупность подмножеств {21}, {22}, … {2k}и т.д.
При этом выполняются следующие условия:
• объединение подмножеств классификационных группировок одного уровня иерархии дает исходное множество объектов;
• пересечение классификационных группировок одного уровня иерархии дает нулевое подмножество, то есть:
Рисунок 11.2. Условия иерархического метода

Классификационные признаки для иерархического метода применяются последовательно в каждой иерархической ветви, при этом они могут отличаться друг от друга. Структура иерархической системы классификации жесткая и не подлежит изменению.
Основные достоинства иерархической системы классификации:
• традиционность и естественность;
• большая информационная емкость. Если число уровней иерархии — N, на каждом уровне отдельный признак классификации принимает Kn значений, то максимально возможное число классификационных группировок на последнем уровне составляет величину — H:
Рисунок 11.3. Число классификационных группировок

Например, число уровней иерархии — 3, для каждого уровня максимальное количество значений признаков классификации — 10, тогда, общее число классификационных группировок — 1000 (103).
• возможность использования различных наборов классификационных признаков для каждой иерархической ветви классификации.
Недостатками иерархической системы классификации являются:
1. Невозможность внесения изменений в классификатор (добавление или удаление классификационных признаков, изменение последовательности их применения) после его создания.
2. Трудоемкий поиск информации по произвольному сочетанию признаков классификации.
Фасетный метод классификации предполагает, что исходное множество объектов разбивается на подмножества группировок по независимым между собой признакам классификации — фасетам).
Фасет — набор значений отдельного признака классификации, все фасеты взаимно независимы.
Каждый объект одновременно имеет классификационные признаки из различных фасетов, а классификационные группировки создаются динамически путем задания фасетной формулы — последовательности фасет и значений классификационных признаков выбранных фасетов.
Рисунок 11.4. Фасетная формула

Например, группировка 1 создана на основании значений фасета Ф1, группировка 2 — на основании значений фасетов Ф3 и Фn и т.д.
Если общее число фасетов N и для фасета имеется Kn значений признаков, то общая емкость фасетной системы классификации соответствует величине H:
Рисунок 11.5. Емкость фасетной системы

Таким образом, имеет место информационная избыточность группировок, в ряде случаев не возможных по смыслу. Этот метод классификации наиболее эффективен для машинной обработки данных, при использовании технологии БД и языков запросов высокого уровня.
3.1. Кодирование
Кодирование предназначено для присвоения отдельным объектам или классификационным группировкам условных обозначений — кодов. Характеристики кода:
метод кодирования.
алфавит (цифры, буквы, штрихи, цвета, звуки)
длина и структура обозначения кода
помехозащищенность.
К кодам предъявляются следующие требования:
минимально необходимая длина;
помехозащищенность.
Помехозащищенность кода обеспечивается за счет включения в код контрольных разрядов, значение которых вычисляется по определенному алгоритму. Наиболее часто используется метод «остаток по модулю простого числа» с использованием весовых коэффициентов разрядов, например:
Рисунок 11.6. Значение контрольного разряда

где k — значение контрольного разряда, а — весовой коэффициент и b — значение разряда кода, q — простое число.
Например, код 48005 превращается в код 48005 7 при использовании данного метода, простое число — 11, веса разрядов — 3, 5, 7, 11, 13:
4*3 + 5*8 + 5*13 = 117
117 mod 11 = 7
Для обнаружения ошибки выполняется повторное вычисление контрольного разряда, если новое значение контрольного разряда отличается от существующего значения, имеет место ошибка. Однократные ошибки являются массовыми, поэтому с помощью корректирующего кода они обнаруживаются.
3.2. Классификационные коды
Если выполнена предварительная классификация объектов, применяются классификационные методы кодирования. Среди классификационных методов выделяют:
• последовательное кодирование, основанное на иерархической системе классификации, когда код объекта строится с учетом кода группировок старшего уровня иерархии;
• параллельное кодирование, основанное на фасетной системе классификации, когда код объекта является объединением независимых между собой кодов отдельных фасетов.
Например, для иерархической классификации материалов разработана структура кода (знак + означает разделение на уровни иерархии): ХХ + ХХ + ХХХХ + ХХ
0100000000 — код группы материалов 01
0101000000 — код первой подгруппы группы 0100000000
0101000100 — код первого вида материалов подгруппы 0101000000
0101000101 — код первого материала вида 01010000100
Таким образом, сначала кодируются старшие классификационные группировки, а затем младшие группировки. Длина кода должна быть достаточной для кодирования всех объектов в настоящее время и в ближайшей перспективе.
Для фасетной системы классификации разработана структура кода объектов недвижимости (знак : означает выделение фасетов): ХХ : ХХ : ХХХХ
Для первого фасета используются коды: 01 — 33
Для второго фасета используются коды: 01 — 78
Для третьего фасета используются коды: 0001 — 1550
В результате возможно формирование кодов классификационных группировок вида:
21 45 0560
01 45 0000
00 32 0000 и др.
3.4. Смешанные коды
Для некоторых номенклатур объектов применяются коды, содержащие как классификационную, так и идентификационную части, которые не зависят друг от друга. В других случаях применяют коды, обеспечивающие идентификацию объектов внутри классификационных группировок.
Например, для станка используется классификационный код, в соответствии с которым начисляется амортизации, и идентификационный код — инвентарный номер станка. Табельные номера работающих наиболее часто строятся на основании кода структурного подразделения, а для идентификации сотрудника к этому коду добавляется уникальный номер:
[ XX ] : [ X] : 00000 — независимая идентификация и классификация объектов;
[ XX + X+ X] +: 00000 — зависимая идентификация внутри классификационной группировки.

2. Задание «Построить словарь реквизитов»

24. Идентификационное кодирование технико-экономической информации

Идентификационные коды
Если классификация объектов не выполняется, для однозначного определения объектов применяются идентификационные методы кодирования. Для идентификации объектов используется порядковая или серийно-порядковая нумерация объектов. Такие коды не несут смысловой нагрузки, например:
00000
Такой код содержит 5 разрядов идентификационных.

2. Задание «Построить списковую структуру данных»
БИЛЕТ № 25
1. Общероссийские классификаторы технико-экономической информации
Сфера действия СКК ТЭИ
Классификаторы и кодификаторы технико-экономической информации имеют различные сферы действия:
• Отраслевые классификаторы - действительны в рамках отрасли народного хозяйства.
• Региональные классификаторы - действительны для всех ЭИС одного региона (республики, города, области).
• Общероссийские классификаторы (ОК) — действительны для всех ИС Российской Федерации.
• Международные классификаторы.
• Локальные классификаторы - действительны в рамках ЭИС.
Общероссийские классификаторы применяются в обязательном порядке при обмене информацией между информационными системами и информационными системами федерального уровня, а также при обмене информацией с информационными системами других регионов Российской Федерации. Общероссийские классификаторы имеют приоритетное применение. Разработка и использование иных классификаторов допускается, если приведенные выше классификаторы недостаточны по объему классифицируемых множеств и (или) признаков классификации. При этом в них возможно использование выборок из общероссийских классификаторов, перекодирование объектов классификации, дополнение отсутствующими объектами и (или) признаками классификации.
Общероссийские классификаторы создаются федеральными органами исполнительной власти или соответствующими организациями (далее именуются — учреждения, ответственные за разработку общероссийских классификаторов) по согласованию с Государственным комитетом Российской Федерации по стандартизации и метрологии, Российским статистическим агентством и Министерством экономики Российской Федерации в части основных видов технико-экономической и социальной информации, используемой при межотраслевом обмене. Могут создаваться отраслевые (ведомственные) классификаторы технико-экономической и социальной информации и классификаторы указанной информации, используемые группой организаций, занимающихся аналогичными видами деятельности, или одной организацией.
Формы представления общероссийских классификаторов и вносимых в них изменений (на бумажном и машинном носителях) устанавливает Государственный комитет Российской Федерации по стандартизации и метрологии по согласованию с Российским статистическим агентством, Министерством экономики Российской Федерации и учреждениями, ответственными за ведение общероссийских классификаторов. Использование общероссийских классификаторов при разработке правовых актов, а также при создании информационных систем и ресурсов осуществляется путем:
• прямого применения общероссийских классификаторов (выборок позиций из общероссийских классификаторов) без изменения принятых кодов и наименований позиций;
• включения в общероссийские классификаторы (выборки позиций из общероссийских классификаторов) дополнительных объектов классификации и классификационных признаков, не нарушающих коды и наименования позиций общероссийских классификаторов и предусмотренных в них резервных позиций.
Наиболее часто используемые ОК:
• ОКАОТО — объектов административно-территориального деления;
• ОКВ — валют;
• ОКДП — видов экономической деятельности, продукции и услуг;
• ОКДПТР — профессий рабочих, должностей служащих и тарифных разрядов;
• ОКЕИ — единиц измерения;
• ОКИН — информации о населении;
• ОКОГУ — органов государственной власти и управления;
• ОКОНХ — отраслей народного хозяйства;
• ОКОПФ — организационно-правовых форм;
• ОКОФ — основных фондов;
• ОКП — продукции;
• ОКУД — управленческой документации;
• ОКФС — форм собственности и др.
ОК УД (управленческой документации). Объект классификации — общероссийские унифицированные формы документов, входящие в состав УСД.
Класс форм ХХ
Подкласс форм ХХ ХХ
Регистрационный номер ХХ ХХ 000
Контрольное число ХХ ХХ 000 0
• 02000002 — УСД организационно-распорядительной документации
• 03000001 — УСД первичной документации по учету (труда и заработной платы, ОС и НМА, кассовых операций, материалов и др.).
• 04000008 — УСД банковской документации по безналичным расчетам
• 05000009 — УСД финансовой, учетной и отчетной бухгалтерской документации бюджетных предприятий
• 06000000 — УСД отчетно-статистической документации
• 07000000 — УСД учетной и отчетной бухгалтерской документации предприятий
• 08000005 — УСД по труду
• 09000007 — УСД пенсионного фонда
• 10000001 — УСД внешней торговой деятельности
ОКОГУ (органов государственного управления)
• 10000 федеральные органы власти
• 20000 органы власти субъектов РФ
• 30000 органы местного самоуправления
• 40000 объединения предприятий и организаций
• 50000 добровольные объединения и религиозные организации
• 70000 межгосударственные органы управления
ОКАТО (объектов административно-территориального деления)
ХХ + ХХХ + ХХХ + КЧ
ОКФС (форм собственности)
• 10 Российская
• 11 Государственная
• 12 Федеральная
• 13 Субъектов РФ
• 14 Муниципальная
• 16 Частная
ОКОПФ (организационно-правовых форм)
• 39 Юридические лица, являющиеся коммерческими организациями
• 48 Хозяйственные товарищества и общества
• 51 Полные товарищества
• 64 Товарищество на вере
• 65 Общества с ограниченной ответственностью
ОК ИН (информация о населении)
Основные фасеты:
• 01 Пол
• 02 Гражданство
• 03 Национальность
• 04 Языки народов РФ и иностранные языки
• 05 Степень знания языков
• 10 Состояние в браке
• 11 Родство, свойство
• 15 Участие в войне
• 16 Отношение к военной службе
• 17 Воинские звания
• 20 Виды занятости
• 21 Стаж работы
• 22 Смена работы
• 23 Режимы работы
• 24 Виды отпусков
ОКОФ (основных фондов) — учтены международные классификации и стандарты ООН, ОКДП. Используется для решения задач:
• Оценка объемов, состава и состояния ОФ
• Учет ОФ в рамках государственной статистики
• Международные сопоставления структуры и состояния ОФ
• Расчет нормативов капитального ремонта, экономических показателей
Материальные ОФ
Нематериальные ОФ
Группировка ОФ по признакам назначения, вида деятельности, продукции и услуг: ХХ ХХХХХХХХ
ОКДП (видов экономической деятельности, продукции и услуг) — учтены рекомендации международной стандартизации ISIC и CPC. Три объекта классификации:
1. Виды экономической деятельности
2. Виды продукци
3. Виды услуг
ОКУН (услуги населению)
ХХХХХХ КЧ
ОКПДТР (профессий рабочих, должностей служащих и тарифных разрядов) — два раздела:
• должности служащих соответствуют Единой номенклатуре должностей служащих, Квалификационного справочника должностей руководителей, специалистов и служащих;
• профессии рабочих соответствуют ЕТКС работ и профессий рабочих.

26. Представление данных в памяти ЭВМ

В качестве внешней памяти ЭВМ используются в основном
устройства электромагнитной записи сигналов, для которых
характерно примерное равенство затрат времени на чтение
и запись информации, - магнитные диски. В отличие от
оперативной памяти ЭВМ для них перед непосредственно чтением/
записью требуется подвод необходимого участка магнитного
носителя к механизму чтения/записи (в реальных запоминающих
устройствах могут двигаться и носитель данных, и
механизм чтения/записи). Поэтому время доступа к данным
на внешнем запоминающем устройстве зависит от места расположения
данных на диске или ленте, что существенно отличает
их от оперативной памяти и определяет специфику организации
данных во внешней памяти ЭВМ (рис. 3.13).
Данные на внешнем запоминающем устройстве хранятся в
виде файлов. Файл представляет собой множество логически
связанных записей. Запись обычно соответствует одному значению
некоторой составной единицы информации. Каждый
файл имеет уникальное имя файла. В простейшем случае файл
представляет последовательный массив записей на внешнем
запоминающем устройстве.
Анализ методов организации данных остается в основном
справедливым и для данных во внешней памяти ЭВМ; однако
177
А
Т
мд
ОЗУ
О dA
Рис. 3.13. График зависимости времени доступа
к данным от адресного расстояния
серьезным фактором, влияющим на время доступа, становится
взаимное расположение файлов и записей на магнитном
носителе.
Определим адресное расстояние dA как разность адресов
предыдущего и текущего обращения к запоминающему устройству,
взятую со знаком "плюс".
dA = |A(i-l)-A(i)|.
Чтобы применять адресное расстояние ко всем типам-запоминающих
устройств, отметим, что с магнитного диска читается
(записывается) не отдельный символ (байт), а сектор
или блок данных размером, например, 512 байт.
Организация внешней памяти персональных ЭВМ имеет
ряд отличий от принципов, используемых в мини-ЭВМ и средних
ЭВМ. Вся внешняя память разделена на физические блоки
(секторы), имеющие фиксированный размер (обычно 512
байт), который не зависит от желания проектировщика системы.
Обмен с оперативной памятью происходит только целыми
секторами.
Когда производится только последовательная обработка
файла, оптимальный (с точки зрения минимального времени
доступа) размер блока должен быть наиболее крупным из возможных;
когда происходит только выборка одиночных записей,
оптимальными являются блоки размером в одну запись.
178
Существует ряд стандартных методов организации файлов
на магнитном диске и соответственно методов доступа к этим
файлам. Среди них - последовательная, индексно-последова-
тельная, индексно-произвольная и прямая организация файлов.
Во всех случаях необходимо выделение в записях файла
одного ключевого атрибута.
При последовательной организации файла на магнитном
диске возможен доступ от только что обработанной записи к
последующей записи (по направлению к концу файла). Переход
в обратном направлении невозможен, единственный путь
состоит в закрытии файла, повторном его открытии и движении
к нужной записи в прямом направлении.
Индексно-последовательный файл представляет собой последовательный
файл, снабженный индексами. На магнитном
диске выделяются три области - первичная, индексная и область
переполнения. В первичной области помещаются упорядоченные
по значениям ключевого атрибута записи, когда
файл впервые создается.
В зависимости от размера первичной области могут создаваться
один, два или три уровня индексов:
• индекс первого уровня отмечает последнюю запись каждой
дорожки магнитного диска;
• индекс второго уровня отмечает последнюю запись каждого
цилиндра магнитного диска.
Если файл индекса второго уровня достаточно велик по размеру,
то для него допускается создание индекса третьего уровня.
Область переполнения предназначена для размещения записей,
включаемых в индексно-последовательный файл. Новые
записи связываются в цепочку и размещаются на том цилиндре,
при котором ключи новых записей соответствуют интервалу
значений ключей в первичной области этого цилиндра.
Перечислим итоговые характеристики индексно-последо-
вательного доступа:
• значения ключей записей должны быть отсортированы;
• в индекс заносится наибольший ключ для всех записей
блока (дорожки);
179
• наличие повторяющихся значений ключа недопустимо;
• эффективность доступа зависит от числа уровней индексации,
распределения памяти для размещения индекса,
числа записей в файле и размера области переполнения.
Если в индекс попадает информация о ключе каждой записи,
то получаем индексиочгроизвольный доступ. Записи файла
могут быть при этом не упорядочены по значению ключа.
Индекс для индексно-произвольного метода доступа практически
всегда формируется как многоуровневый. Типичная
организация многоуровневого индекса соответствует понятию
В-дерева. Нижний уровень В-дерева образуют индексы со ссылкой
на каждую запись основного массива. Благодаря использованию
адресных ссылок упорядоченность основного массива
не обязательна. Индексы нижнего уровня разделены на
страницы, и в конце, каждой страницы оставляется резервная
память. Последний индекс каждой страницы поступает на страницу
предпоследнего уровня В-дерева. Когда эта страница
будет почти заполнена индексами, последний из них поступит
на страницу более высокого уровня и т. д.
Пользуясь аналогией между многоступенчатым поиском и
многоуровневым индексом, можно утверждать, что минимальное
время доступа обеспечивает В-дерево с числом уровней,
примерно равным InM (M - число записей в основном массиве).
Корень В-дерева обычно имеет два разветвления, так как
при большем числе разветвлений происходит незначительное
ускорение доступа. Пример В-дерева для 14 записей основного
массива приводится на рис. 3.14.
Поиск данных (например, значения q) начинается с корня
В-дерева. Предположим, что k8<q<kl4. В этом случае выполняются
переход по правой ветви на второй уровень и поиск на
соответствующей странице. Будем считать, что kl0<q<kl3.
Следовательно, надо спуститься на третий уровень по адресу,
записанному в к 13, и завершить поиск. Достоинство В-дерева
состоит в его простом расширении. При переполнении какой-
либо страницы половина ее содержимого переходит в новую
страницу, а на вышестоящем уровне появляется новый индекс.
180
к8
'
к14
_^
кЗ к5
V
к8
• ^ .
к1 к2 кЗ к4 к5 кб к7 к8 к9 кЮ к11 к12 к13 к14
кЮ k13
.^x.
k14
N.
Рис. 3.14. Многоуровневый индекс в виде В-дерева
Прямой метод доступа соответствует файлу, который использует
адресную функцию вида i=p-a, рассмотренную в п. 3.2.
Для прямого доступа характерны следующие особенности:
• не требуется упорядоченность записей файла;
• наличие повторяющихся значений ключа недопустимо;
• значениям нескольких ключей может соответствовать
один и тот же адрес (блок).
На выбор между названными выше методами организации
файлов существенное влияние оказывает количество записей,
которое должно быть обработано в процессе реализации запроса.
Этот параметр называется долей выборки и равен отношению
числа требуемых при выборке записей файла к общему
числу записей в файле.
Информация о соответствии доли выборки записей и методах
организации файла приводится ниже.
Доля выборки записей
1-я запись
0..10%
10.-100%
Наилучшая организация файла
Прямая
Прямая, индексная
Последовательная
181
Блок данных на внешнем запоминающем устройстве обычно
не заполняется полностью, т. е. оставляется резервная память
(обычно 10-15% размера блока). Если этого не делать,
то включение новых записей потребует создания для них новых
блоков практически при каждой корректировке. Эти блоки
будут содержать довольно мало записей, отчего резко возрастет
объем дополнительной памяти, необходимый для
массива.
Когда резервная память блока будет исчерпана и в него
потребуется включить новую запись, наступает переполнение
блока.
Частота переполнений описывается формулой
K = (V+l)/(2r-l),
где К - ожидаемое число корректирующих обращений (включений и
исключений записей) к одному блоку до наступления переполнения;
V - объем свободной памяти блока, выраженный в количестве
записей;
г > 0,5 - вероятность того, что корректирующее обращение является
включением.
Если г <= 0,5, то блок, как правило, никогда не переполнится.
После переполнения блока вслед за ним в память включается
новый блок, в который переписывается половина записей
из переполненного блока.__
Для представления информации в памяти ЭВМ (как числовой так и не числовой) используется двоичный способ кодирования.
Элементарная ячейка памяти ЭВМ имеет длину 8 бит (1 байт). Каждый байт имеет свой номер (его называют адресом). Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машинным словом. Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32 битам и т.д.
Для кодирования символов достаточно одного байта. При этом можно представить 256 символов (с десятичными кодами от 0 до 255). Набор символов персональных компьютеров чаще всего является расширением кода ASCII (American Standart Code of Information Interchange - стандартный американский код для обмена информацией).
В некоторых случаях при представлении в памяти ЭВМ чисел используется смешанная двоично-десятичная система счисления, где для хранения каждого десятичного знак нужен полубайт (4 бита) и десятичные цифры от 0 до 9 представляются соответствующими двоичными числами от 0000 до 1001. Например, упакованный десятичный формат, предназначенный для хранения целых чисел с 18-ю значащими цифрами и занимающий в памяти 10 байт (старший из которых знаковый), использует именно этот вариант.
Другой способ представления целых чисел - дополнительный код. Диапазон значений величин зависит от количества бит памяти отведенных для их хранения. Например, величины типа Integer лежат в диапазоне от
-32768 (-215) до 32677 (215-1) и для их хранения отводится 2 байта: типа LongInt - в диапазоне от -231 до 231-1 и размещаются в 4 байтах: типа Word - в диапазоне от 0 до 65535 (216-1) используется 2 байта и т.д.
Как видно из примеров, данные могут быть интерпретированы как числа со знаком, так и без знаков. В случае представления величины со знаком самый левый (старший) разряд указывает на положительное число, если содержит нуль, и на отрицательное, если - единицу.
Вообще, разряды нумеруются справа налево, начиная с нуля.
Дополнительный код положительного числа совпадает с его прямым кодом. Прямой код целого числа может быть представлен следующим образом: число переводиться в двоичную систему счисления, а затем его двоичную запись слева дополняют таким количеством незначащих нулей, сколько требует тип данных, к которому принадлежит число. Например, если число 37(10) = 100101(2) объявлено величиной типа Integer, то его прямым кодом будет 0000000000100101, а если величиной типа LongInt, то его прямой код будет 00000000000000000000000000100101. Для более компактной записи чаще используют шестнадцатеричный код. Полученные коды можно переписать соответственно как 0025(16) и 00000025(16).
Дополнительный код целого отрицательного числа может быть получен по следующему алгоритму:
1. записать прямой код модуля числа;
2. инвертировать его (заменить единицы нулями, нули - единицами);
3. прибавить к инверсионному коду единицу.
Например, запишем дополнительный код числа -37, интерпретируя его как величину типа LongInt:
1. прямой код числа 37 есть 000000000000000000000000000100101
2. инверсный код 11111111111111111111111111011010
3. дополнительный код 11111111111111111111111111011011 или FFFFFFDB(16)
При получении по дополнительному коду числа, прежде всего, необходимо определить его знак. Если число окажется положительным, то просто перевести его код в десятичную систему исчисления. В случае отрицательного числа необходимо выполнить следующий алгоритм:
1. вычесть из кода 1;
2. инвертировать код;
3. перевести в десятичную систему счисления. Полученное число записать со знаком минус.
Примеры. Запишем числа, соответствующие дополнительным кодам:
a. 0000000000010111.
Поскольку в старшем разряде записан нуль, то результат будет положительным. Это код числа 23.
b. 1111111111000000.
Здесь записан код отрицательного числа, исполняем алгоритм:
1. 1111111111000000(2) - 1(2) = 1111111110111111(2);
2. 0000000001000000;
3. 1000000(2) = 64(10)
Ответ: -64
Несколько иной способ применяется для представления в памяти персонального компьютера действительных чисел. Рассмотрим представление величин с плавающей точкой.
Любое действительное число можно записать в стандартном виде M*10p, где 1 ≤ M < 10, р- целое число. Например, 120100000 = 1,201*108. Поскольку каждая позиция десятичного числа отличается от соседней на степень числа 10, умножение на 10 эквивалентно сдвигу десятичной запятой на 1 позицию вправо. Аналогично деление на 10 сдвигает десятичную запятую на позицию влево. Поэтому приведенный выше пример можно продолжить: 120100000 = 1,201*108 = 0,1201*109 = 12,01*107... Десятичная запятая плавает в числе и больше не помечает абсолютное место между целой и дробной частями.
В приведённой выше записи М называют мантиссой числа, а р - его порядком. Для того чтобы сохранить максимальную точность, вычислительные машины почти всегда хранят мантиссу в нормализованном виде, что означает, что мантисса в данном случае есть число, лежащее между 1(10) и 2(10) (1 ≤ М < 2). Основные системы счисления здесь, как уже отмечалось выше,- 2. Способ хранения мантиссы с плавающей точкой подразумевает, что двоичная запятая находится на фиксированном месте. Фактически подразумевается, что двоичная запятая следует после первой двоичной цифры, т.е. нормализация мантиссы делает единичным первый бит, помещая тем самым значение между единицей и двойкой. Место, отводимое для числа с плавающей точкой, делится на два поля. Одно поле содержит знак и значение мантиссы, а другое содержит знак и значение порядка.
Персональный компьютер IBM PC с математическим сопроцессором 8087 позволяет работать со следующими действительными типами (диапазон значений указан по абсолютной величине):
Тип Диапазон Мантисса Байты
Real 2,9*10-39..1,7*1038 11-12 6
Single 1,5*10-45..3,4*1038 7-8 4
Double 5,0*10-324..1,7*10308 15-16 8
Extended 3,4*10-4932..1,1*104932 19-20 10
Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа Double.
Как видно из таблицы, величина этого типа занимает в памяти 8 байт. На рисунке показано, как здесь представлены поля мантиссы и порядка:
S Смещенный порядок Мантисса
63 52 0
Можно заметить, что старший бит, отведенный под мантиссу, имеет номер 51, т.е. мантисса занимает младшие 52 бита. Черта указывает здесь на положение двоичной запятой. Перед запятой должен стоять бит целой части мантиссы, но поскольку она всегда равна единице, здесь данный бит не требуется и соответствующий разряд отсутствует в памяти (но он подразумевается). Значение порядка храниться здесь не как целое число, представленное в дополнительном коде. Для упрощения вычислений и сравнения действительных чисел значение порядка в ЭВМ хранится в виде смещенного числа, т.е. к настоящему значению порядка, перед записью его в память, прибавляется смещение. Смещение выбирается так, чтобы минимальному значению порядка соответствовал нуль. Например, для типа Double порядок занимает 11 бит и имеет диапазон от 2-1023 до 21023, поэтому смещение равно 1023(10) = 1111111111(2). Наконец, бит с номером 63 указывает на знак числа.
Таким образом, из вышесказанного вытекает следующий алгоритм для получения представления действительного числа в памяти ЭВМ:
1. перевести модуль данного числа в двоичную систему счисления;
2. нормализовать двоичное число, т.е. записать в виде М*2p, где М - мантисса (ее целая часть равна 1(2)) и р - порядок, записанный в десятичной системе счисления;
3. прибавить к порядку смещение и перевести смещенный порядок в двоичную систему счисления;
4. учитывая знак заданного числа (0 - положительное; 1 - отрицательное), выписать его представление в памяти ЭВМ.
Пример. Запишем код числа -312,3125.
1. Двоичная запись модуля этого числа имеет вид 100111000,0101.
2. Имеем 100111000,0101 = 1,001110000101*28.
3. Получаем смещенный порядок 8 + 1023 = 1031. Далее имеем 1031(10) = 10000000111(2).
4. Окончательно
1 10000000111 0011100001010000000000000000000000000000000000000000
63 52 0
6. Очевидно, что более компактнополученный код стоит записать следующим образом: C073850000000000(16).
7. Другой пример иллюстрирует обратный переход от кода действительного числа к самому числу.
8. Пусть дан код 3FEC600000000000(16) или
0 01111111110 1100011000000000000000000000000000000000000000000000
63 52 0
1. Прежде всего, замечаем, что это код положительного числа, поскольку в разряде с номером 63 записан нуль, Получим порядок этого числа. 01111111110(2) = 1022(10). 1022 - 1023 = -1.
2. Число имеет вид 1,1100011*2-1 или 0,11100011.
3. Переводом в десятичную систему счисления получаем 0,88671875.

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

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

Массивы
Переменные можно объединять в массивы. Массив - это совокупность переменных одного типа.
Преимущества:
• Вместо нескольких однотипных переменных используется одна переменная.
• Можно применять групповую обработку элементов массива.
Каждый массив имеет имя - идентификатор. Переменные, входящие в массив, называются элементами массива. Любой элемент массива обозначается переменной с индексом, например, A(5). Другими словами отдельный элемент массива определяется своей позицией (индексом) в массиве. Можно сказать, что массив это именованная совокупность переменных одного типа, которые различаются значениями своих индексов.
С понятием массива связано понятие размерности. Чаще всего используются одномерные массивы (векторы или строки) и двумерные массива (матрицы). Максимальное количество измерений массива - 60.
Примеры массивов
Ежедневная утренняя и вечерняя температура воздуха в течение месяца представляется двумерным массивом из 31 строки и 2 столбцов, а эта же температура в течение года является уже трехмерным массивом 12x31x2.
Перечень десяти дисциплин по каждой из пяти специализаций представляется двумерным массивом из 5 строк и 10 столбцов.
Важно:
• Элементы массива имеют одинаковые характеристики (тип, размер и т.д.).
• Элементы массива могут использоваться во всех конструкциях языка, в которых допускается использование обычных переменных.
• Индекс элемента массива - это число (положительное, отрицательное или 0).
• Количество индексов элемента массива должно соответствовать количеству измерений массива: первый индекс соответствует первому измерению, второй индекс - второму и т.д.
• Для указания индекса можно использовать переменные или выражения. При этом значение выражения округляется до ближайшего целого числа.
• Значение каждого индекса имеет нижнюю и верхнюю границу. Если специально не указано другое значение, нижней границей индекса массива является 0.
• Инструкция Option Base 1, размещенная в области Declarations, устанавливает нижний индекс всех массивов в единицу.
Массив должен быть обязательно объявлен. Синтаксис объявления массива:
Dim varname(subscripts) As type
       
• varname - имя массива;
• subscripts - индексы измерений массива;
• type - тип элемента массива.
Для каждого индекса измерения (subscripts) можно указать нижнюю и верхнюю границы (граничная пара) в виде lower to upper, где обе границы суть целые числа или выражения, результат вычисления которых есть число. Нижняя граница может быть опущена, тогда она предполагается нулевой, если инструкция Option Base не указывает на другое. Индексы каждого измерения отделяются друг от друга запятой. Например, объявление Dim A (1 To 5, 2 To 17) определяет двумерный массив A из пяти строк с индексами от 1 до 5 и 16 столбцов с индексами от 2 до 17, всего 80 элементов. Запись A(3,10) указывает на девятый элемент третьей строки.
Рекомендуется:
• предусматривать такие значения индексов, которые соответствовали бы максимально возможному количеству элементов массива в каждом измерении.
Пример
Создать массив, значение каждого элемента которого равно индексу элемента.
Одномерный массив A имеет восемь элементов с индексами от 0 до 7.
Оператор присваивания значения и оператор распечатки значения записаны на одной строке через двоеточие.

Рис. 4.2.  Оператор присваивания значения и оператор распечатки значения
Динамические массивы
Если в момент объявления массива неизвестен его размер или же в процессе выполнения программы требуется изменить размеры массива, то массив изначально необходимо объявить как динамический. При объявлении динамического массива не указывается его размерность, например, Dim A(). Далее в программе должны быть установлены размеры массива при помощи оператора Redim.
Синтаксис:
ReDim [Preserve] varname (subscripts) [As type]
           
• Preserve - ключевое слово, позволяющее сохранить существующие элементы массива;
• varname - идентификатор массива;
• subscripts - индексы массива;
• type - тип элементов массива.
Внимание:
• Можно изменить только верхнюю границу индекса массива, Попытка изменения нижней границы индекса приведет к ошибке.
• При переопределении динамического массива без ключевого слова Preserve все ранее определенные элементы массива очищаются. Включение Preserve в оператор ReDim сохраняет существующие элементы массива, если размерность массива увеличивается. Если размерность массива уменьшается, то данные, находящиеся вне границ переопределенного массива теряются.
• Если массив многомерный, то при переопределении массива может быть изменена только верхняя граница последнего измерения.
• Ключевое слово Preserve не может использоваться для изменения количества измерений массива.
• Не используйте оператор Redim для изменения типа элементов массива.
Для определения границ динамического массива используются функции Lbound (индекс нижней границы) и Ubound(индекс верхней границы).
Синтаксис:
Lbound (arrayname [,dimension])
Ubound (arrayname [,dimension])
           
• arrayname - имя массива,
• dimension - номер измерения массива.
Для рассмотренной выше процедуры оператор Debug.Print Lbound(A,1) распечатает значение 0, а оператор Debug.Print Ubound(A,1) распечатает значение 7.
Пример
В процедуре запрашивается ввод целого числа. Создается массив из четного числа элементов, содержащих четные значения, меньшие или равные введенному числу.
Введенное число нацело делится на два. Результат - количество четных чисел, меньших или равных веденному числу. Если результат является четным числом, количество элементов в переопределяемом массиве равно этому числу; если нечетным числом, то на единицу меньше результата деления.
Введено число 125. Результат выполнения процедуры приведен ниже.

Рис. 4.3.  Создается массив из четного числа элементов, содержащих четные значения, меньшие или равные введенному числу
В процедуре используется условный оператор If, который определяет размер массива b в зависимости от четности результата деления нацело введенного числа. Функция Ubound используется для определения количества элементов созданного массива.
Пользовательский тип
Можно определить данные, состоящие из нескольких логически связанных между собой элементов - структура данных (User-Defined Data Type). Каждый пользовательский тип описывается с помощью инструкции Type в области Declarations. Завершение определения пользовательского типа данных - инструкция End Type. Например:
Type sqn
  sqn_zero As Integer
  sqn_unity As Integer
End Type
       
Важно:
• Определяемые пользователем типы данных могут включать в себя один или несколько элементов любого типа данных, в том числе массивы и определенные пользователем типы данных.
• Не допускается номеров строк и меток строк в блоке Type...End Type.
• Можно создавать массивы типов данных, определяемых пользователем. При описании массива фиксированного размера с пользовательским типом данных нельзя использовать переменные для задания размерности массива.
• Структура пользовательского типа данных может быть многоуровневой. Обращение к элементу структуры осуществляется при помощи составного имени для исключения неоднозначности. Полное составное имя включает в себя имена структуры и всех подструктур, в которые входит опеределяемый элемент. Имена подструктур должны следовать в порядке иерархии, т.е. в том же порядке, в котором они определены в структуре.
• Для структур в целом применимы только операторы присваивания, элементы структур можно использовать в выражениях, соответствующих типу элемента.

28. Последовательные линейные структуры данных

Линейная структура данных представляет собой объединение полей, отсутствие групповых полей, вложенных полей.(Групповое поле – массив однотипных полей)(т.е. все поля на одном уровне).
Последовательная структура данных предполагает, что все записи располагаются единым блоком друг за другом. Запись может иметь фиксированную и переменную структуру.
1. ЛИНЕЙНЫЕ СТРУКТУРЫ ДАННЫХ
Линейные структуры - это хорошо знакомые нам списки. Список - это простейшая структура данных, отличающаяся тем, что каждый элемент данных однозначно определяется своим номером в массиве. Проставляя номера на отдельных страницах рассыпанной книги, мы создаем структуру списка. Обычный журнал посещаемости занятий, например, имеет структуру списка, поскольку все студенты группы зарегистрированы в нем под своими номерами, при этом не могут два студента быть зарегистрированы с одним и тем же номером [3, С.27].
При создании любой структуры данных надо решить два вопроса: как разделять элементы между собой и как разыскивать нужные элементы. В журнале посещаемости, например, это решается так: каждый новый элемент списка заносится с новой строки, то есть разделителем является конец строки. Тогда нужный элемент можно разыскать по номеру строки. Пример:
№ п/п Фамилия, Имя, Отчество
1 Аистов Александр Алексеевич
2 Бобров Борис Борисович
3 Воробьева Валентина Владиславовна
27 Сорокин Сергей Семенович
Разделителем может быть и какой-нибудь специальный символ. Нам хорошо известны разделители между словами - это пробелы. В русском и во многих европейских языках общепринятым разделителем предложений является точка. В рассмотренном нами классном журнале в качестве разделителя можно использовать любой символ, который не встречается в самих данных, например символ «*». Тогда наш список выглядел бы так:
Аистов Александр Алексеевич * Бобров Борис Борисович * Воробьева Валентина Владиславовна * … * Сорокин Сергей Семенович
В этом случае для розыска элемента с номером n надо просмотреть список, начиная с самого начала и пересчитать встретившиеся разделители. Когда будет отсчитано n-1 разделителей, начнется нужный элемент. Он закончится, когда будет встречен следующий разделитель.
Еще проще можно действовать, если все элементы списка имеет равную длину. В этом случае разделители в списке вообще не нужны. Для розыска элемента с номером n надо просмотреть список с самого начала и отсчитать а(n-1) символов, где а - длина одного элемента. Со следующего символа начнется нужный элемент. Его длина тоже равна а, поэтому его конец определить нетрудно. Такие упрощенные списки, состоящие из элементов равной длины, называют векторами данных. Работать с ними особенно удобно.
В линейных структурах элементы данных располагаются последовательно, друг за другом. Между соседними элементами данных существует отношение непосредственного предшествования. С каждым элементом данных непосредственно или косвенно сопоставляется его порядковый номер в наборе данных, определяющий его адрес, по которому в свою очередь элемент данных однозначно определяется (рис.1) [1, С.36].
Таким образом, линейные структуры данных (списки) - это упорядоченные структуры, в которых адрес элемента однозначно определяется его номером.

29. Последовательные линейные структуры данных (методы сортировки)

Сортировка предполагает наличие в структуре записи ключа – одного или нескольких полей используемых для упорядочивания записей. Тип данных ключа должен поддерживать реляционные операции(больше, меньше, равно, больше или равно, меньше или равно). В результате сортировки исходная последовательность преобразуется в новую, в которой записи располагаются в порядке возрастания/убывания значений ключа.
Метод сортировки называют устойчивым если не изменяется относительное положение записи с равным значением ключа.
Различают:
• Внутренние
• Внешние сортировки
Если записи массива целиком помещаются в основную память, то используется метод внутренней сортировки.
Внешняя сортировка предполагает использование внешней памяти для промежуточного хранения массивов. Эффективность алгоритмов сортировки определяются необходимым числом сравнений для ключа и общим количеством перестановок для ключа.
Существует множество алгоритмов сортировки, например сортировка со включением, сортировка Шелла, сортировка Пузырьком, сортировка со слиянием…
Для внешней сортировки используются файлы, хранимые во внешней памяти. Ка правило эти файлы целиком не помещаются в основную память.
Существуют следующие методы внешней сортировки:
1. Прямое слияние: файл А содержит набор записей А1,A2…..An . Для сортировки используют 2 вспомогательных файла B и C, размер которых составляет n/2. В  файл B записываются записи с нечетными индексами, в файл C записи с четными.
Начальное слияние производится над парами из разных файлов B и C путем их сравнения. Результат слияния записывается в A.
На втором шаге повторяется формирование файлов B и C и последовательное слияние.
2. Естественное слияние: делается предположение о том, что внутри файла имеется серия последовательных упорядоченных записей. В результате процесс слияния ускоряется.

Данные обычно возникают в неупорядоченной форме.
Перед обработкой, как правило, целесообразно упорядочить
их по значениям ключевых атрибутов, что составляет одну из
основных работ по формированию (подготовке) данных. Процедуру
упорядочения файла часто называют сортировкой.
Упорядоченные данные эффективны для организации быстрого
поиска информации. Выходные документы, выводимые
на печать, полученные на основе отсортированных данных,
удобны для дальнейшего использования человеком. Многие
алгоритмы задач управления вообще рассчитаны на использование
только упорядоченных данных. Отсортированные
данные позволяют организовать быструю обработку нескольких
массивов. Далее будем считать все массивы упорядоченными
по возрастанию значений одного атрибута, когда для
ключа i-й записи p(i) справедливо условие p(i)<=p(i+l).

Сортировка выбором

Идея метода состоит в том, чтобы создавать отсортированную последовательность путем присоединения к ней одного элемента за другим в правильном порядке.
Будем строить готовую последовательность, начиная с левого конца массива. Алгоритм состоит из n последовательных шагов, начиная от нулевого и заканчивая (n-1)-м.
На i-м шаге выбираем наименьший из элементов a[i] ... a[n] и меняем его местами с a[i]. Последовательность шагов при n=5 изображена на рисунке ниже.

Вне зависимости от номера текущего шага i, последовательность a[0]...a[i] (выделена курсивом) является упорядоченной. Таким образом, на (n-1)-м шаге вся последовательность, кроме a[n] оказывается отсортированной, а a[n] стоит на последнем месте по праву: все меньшие элементы уже ушли влево.
template<class T>
void selectSort(T a[], long size) {
  long i, j, k;
  T x;

  for( i=0; i < size; i++) {    // i - номер текущего шага
    k=i; x=a[i];

    for( j=i+1; j < size; j++) // цикл выбора наименьшего элемента
      if (  a[j] < x ) {
        k=j; x=a[j];         // k - индекс наименьшего элемента
      }

    a[k] = a[i]; a[i] = x;    // меняем местами наименьший с a[i]
  }
}
Для нахождения наименьшего элемента из n+1 рассматримаемых алгоритм совершает n сравнений. С учетом того, что количество рассматриваемых на очередном шаге элементов уменьшается на единицу, общее количество операций:
n + (n-1) + (n-2) + (n-3) + ... + 1 = 1/2 * ( n2+n ) = Theta(n2).
Таким образом, так как число обменов всегда будет меньше числа сравнений, время сортировки растет квадратично относительно количества элементов.
Алгоритм не использует дополнительной памяти: все операции происходят "на месте".
Устойчив ли этот метод ? Прежде, чем читать далее, попробуйте получить ответ самостоятельно.

Рассмотрим последовательность из трех элементов, каждый из которых имеет два поля, а сортировка идет по первому из них.

Результат ее сортировки можно увидеть уже после шага 0, так как больше обменов не будет. Порядок ключей 2a, 2b был изменен на 2b, 2a, так что метод неустойчив.
Если входная последовательность почти упорядочена, то сравнений будет столько же, значит алгоритм ведет себя неестественно.
Сортировка пузырьком

Расположим массив сверху вниз, от нулевого элемента - к последнему.
Идея метода: шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.

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

template<class T>
void bubbleSort(T a[], long size) {
  long i, j;
  T x;

  for( i=0; i < size; i++) {            // i - номер прохода
    for( j = size-1; j > i; j-- ) {     // внутренний цикл прохода
      if ( a[j-1] > a[j] ) {
      x=a[j-1]; a[j-1]=a[j]; a[j]=x;
    }
  }
}
}
Среднее число сравнений и обменов имеют квадратичный порядок роста: Theta(n2), отсюда можно заключить, что алгоритм пузырька очень медленен и малоэффективен.
Тем не менее, у него есть громадный плюс: он прост и его можно по-всякому улучшать. Чем мы сейчас и займемся.
Во-первых, рассмотрим ситуацию, когда на каком-либо из проходов не произошло ни одного обмена. Что это значит ?
Это значит, что все пары расположены в правильном порядке, так что массив уже отсортирован. И продолжать процесс не имеет смысла(особенно, если массив был отсортирован с самого начала !).
Итак, первое улучшение алгоритма заключается в запоминании, производился ли на данном проходе какой-либо обмен. Если нет - алгоритм заканчивает работу.
Процесс улучшения можно продолжить, если запоминать не только сам факт обмена, но и индекс последнего обмена k. Действительно: все пары соседих элементов с индексами, меньшими k, уже расположены в нужном порядке. Дальнейшие проходы можно заканчивать на индексе k, вместо того чтобы двигаться до установленной заранее верхней границы i.
Качественно другое улучшение алгоритма можно получить из следующего наблюдения. Хотя легкий пузырек снизу поднимется наверх за один проход, тяжелые пузырьки опускаются со минимальной скоростью: один шаг за итерацию. Так что массив 2 3 4 5 6 1 будет отсортирован за 1 проход, а сортировка последовательности 6 1 2 3 4 5 потребует 5 проходов.
Чтобы избежать подобного эффекта, можно менять направление следующих один за другим проходов. Получившийся алгоритм иногда называют "шейкер-сортировкой".
template<class T>
void shakerSort(T a[], long size) {
  long j, k = size-1;
  long lb=1, ub = size-1; // границы неотсортированной части массива
  T x;

  do {
// проход снизу вверх
    for( j=ub; j>0; j-- ) {
      if ( a[j-1] > a[j] ) {
        x=a[j-1]; a[j-1]=a[j]; a[j]=x;
        k=j;
      }
    }

    lb = k+1;

    // проход сверху вниз
    for (j=1; j<=ub; j++) {
      if ( a[j-1] > a[j] ) {
        x=a[j-1]; a[j-1]=a[j]; a[j]=x;
        k=j;
      }
    }

    ub = k-1;
  } while ( lb < ub );
}
Насколько описанные изменения повлияли на эффективность метода ? Среднее количество сравнений, хоть и уменьшилось, но остается O(n2), в то время как число обменов не поменялось вообще никак. Среднее(оно же худшее) количество операций остается квадратичным.
Дополнительная память, очевидно, не требуется. Поведение усовершенствованного (но не начального) метода довольно естественное, почти отсортированный массив будет отсортирован намного быстрее случайного. Сортировка пузырьком устойчива, однако шейкер-сортировка утрачивает это качество.
На практике метод пузырька, даже с улучшениями, работает, увы, слишком медленно. А потому - почти не применяется.
Сортировка вставками

Сортировка простыми вставками в чем-то похожа на вышеизложенные методы.
Аналогичным образом делаются проходы по части массива, и аналогичным же образом в его начале "вырастает" отсортированная последовательность...
Однако в сортировке пузырьком или выбором можно было четко заявить, что на i-м шаге элементы a[0]...a[i] стоят на правильных местах и никуда более не переместятся. Здесь же подобное утверждение будет более слабым: последовательность a[0]...a[i] упорядочена. При этом по ходу алгоритма в нее будут вставляться (см. название метода) все новые элементы.
Будем разбирать алгоритм, рассматривая его действия на i-м шаге. Как говорилось выше, последовательность к этому моменту разделена на две части: готовую a[0]...a[i] и неупорядоченную a[i+1]...a[n].
На следующем, (i+1)-м каждом шаге алгоритма берем a[i+1] и вставляем на нужное место в готовую часть массива.
Поиск подходящего места для очередного элемента входной последовательности осуществляется путем последовательных сравнений с элементом, стоящим перед ним.
В зависимости от результата сравнения элемент либо остается на текущем месте(вставка завершена), либо они меняются местами и процесс повторяется.

Таким образом, в процессе вставки мы "просеиваем" элемент x к началу массива, останавливаясь в случае, когда
1. Hайден элемент, меньший x или
2. Достигнуто начало последовательности.
template<class T>
void insertSort(T a[], long size) {
  T x;
  long i, j;

  for ( i=0; i < size; i++) {  // цикл проходов, i - номер прохода
    x = a[i];
   
// поиск места элемента в готовой последовательности
    for ( j=i-1; j>=0 && a[j] > x; j--)
      a[j+1] = a[j];  // сдвигаем элемент направо, пока не дошли

// место найдено, вставить элемент
    a[j+1] = x;
  }
}
Аналогично сортировке выбором, среднее, а также худшее число сравнений и пересылок оцениваются как Theta(n2), дополнительная память при этом не используется.
Хорошим показателем сортировки является весьма естественное поведение: почти отсортированный массив будет досортирован очень быстро. Это, вкупе с устойчивостью алгоритма, делает метод хорошим выбором в соответствующих ситуациях.
Алгоритм можно слегка улучшить. Заметим, что на каждом шаге внутреннего цикла проверяются 2 условия. Можно объединить из в одно, поставив в начало массива специальный сторожевой элемент. Он должен быть заведомо меньше всех остальных элементов массива.

Тогда при j=0 будет заведомо верно a[0] <= x. Цикл остановится на нулевом элементе, что и было целью условия j>=0.
Таким образом, сортировка будет происходить правильным образом, а во внутреннем цикле станет на одно сравнение меньше. С учетом того, что оно производилось Theta(n2) раз, это - реальное преимущество. Однако, отсортированный массив будет не полон, так как из него исчезло первое число. Для окончания сортировки это число следует вернуть назад, а затем вставить в отсортированную последовательность a[1]...a[n].

// сортировка вставками со сторожевым элементом
template<class T>
inline void insertSortGuarded(T a[], long size) {
  T x;
  long i, j;
  T backup = a[0];    // сохранить старый первый элемент

  setMin(a[0]);        // заменить на минимальный

  // отсортировать массив
  for ( i=1; i < size; i++) {
    x = a[i];
   
    for ( j=i-1; a[j] > x; j--)
  a[j+1] = a[j];

a[j+1] = x;
  }

  // вставить backup на правильное место
  for ( j=1; j<size && a[j] < backup; j++)
    a[j-1] = a[j];

  // вставка элемента
  a[j-1] = backup;
}
Функция setmin(T& x) должна быть создана пользователем. Она заменяет x на элемент, заведомо меньший(меньший или равный, если говорить точнее) всех элементов массива.

2. Задание «Нормализовать структуру данных (2 НФ)»

4

30. Последовательные линейные структуры данных (методы поиска)

Для поиска задается критерий, которому должен удовлетворять ключ записи. Поиск осуществляется при условии равенства ключа критерию.
Методы:
• Последовательное сканирование(среднее число сканирований = n/2)
• Блочный поиск: массив разбивается на блоки при условии, что массив предварительно упорядочен. Искомый ключ последовательно сравнивается с ключом последней записи в блоке; определяется блок, внутри которого находится запись и внутри него осуществляется последовательное сканирование.(количество просмотров = n/2d+d/2, где d - размер блока, n – количество элементов).
Поиском называется процедура выделения из некоторого
множества записей определенного подмножества, записи которого
удовлетворяют некоторому заранее поставленному
условию. Условие поиска часто называют запросом на поиск.
Простейшим условием поиска является поиск по совпадению,
т. е. равенство значения ключевого атрибута i-й записи
р(0 и некоторого заранее заданного значения q. Алгоритмы
всех разновидностей поиска можно получить из алгоритмов
поиска по совпадению, которые и рассматриваются в дальнейшем.

Базовым методом доступа к массиву является ступенчатый
поиск. Этот метод предполагает упорядоченность обрабатываемых
записей, причем безразлично, по возрастанию
или по убыванию. Для определенности будем считать, что
массив отсортирован по возрастанию значений ключевого
атрибута p(i).
Простейшим вариантом ступенчатого поиска (его можно
назвать одноступенчатым) является последовательный поиск.
Искомое значение q сравнивается с ключом первой записи,
если значения не совпадают, с ключом второй записи и т. д. до
тех пор, пока q не станет больше ключа очередной записи.
Алгоритм последовательного поиска может быть представлен
следующей программой на языке Паскаль:
program poisk;
const M=20;
var i,q:integer;
p: array[l..M] of integer;
begin
шгке('ввод q');
readln(q);
fori:=l toM do
begin
>&тке('ввод', i,' элемента массива'); readln(p[i])
end;
i:=l;
while q < p[i] do i:= i+1;
if q <> p[ij then writeln('B массиве нет значения', q)
else writeln('HOMep ',i,' значение', q)
end.
Число сравнений в цикле while может быть выражено как
С= Z i*r(i), где суммирование по i ведется в пределах от 1 до М.
Поиск с одинаковой вероятностью r(i)=l/M может окончиться
на любой записи, поэтому
С = (1/М)- Е i = (М + 1)/2 или С ~ М.
147
Рассмотрим двухступенчатый поиск в массиве, состоящем
из М записей. Для заданного М выбирается константа dl, называемая
шагом поиска. Если необходимо отыскать запись со
значением ключевого атрибута, равным q, производятся следующие
действия.
Значение q последовательно сравнивается с рядом величин
р(1), p(l+dl), p(l+2*dl),..., p(l+k*dl) до тех пор, пока будет
впервые достигнуто неравенство p(l+m*dl)=>q. Здесь заканчивается
первая ступень поиска. На второй ступени q последовательно
сравнивается со всеми ключами, которые имеют
номер l+m*dl и больше, до тех пор, пока в процессе сравнений
будет достигнут ключ, больший, чем q. Извлеченные при
этом записи с ключом q образуют результат поиска.
Эффективность поиска измеряется количеством произведенных
сравнений. Для двухступенчатого поиска среднее число
сравнений примерно составит:
C = M/(2*dl) + dl/2.
Параметр dl выбираемый и естественно выбрать его так,
чтобы минимизировалось С. Будем считать dl непрерывной
переменной и вычислим производную
C'=-M/(2*dlA2)+l/2.
Из условия С'= 0 получаем dl=SQR(M). Вторая производная
С" в точке х = dl положительна, следовательно, достигнуто
минимальное значение С.
При п-ступенчатом поиске заранее выбираются константы
п и S. На первом этапе ключевые атрибуты для сравнения с
искомым ключом q выбираются из массива по закону арифметической
прогрессии, начиная с р(1) и шагом dl=M/S (округление
в меньшую сторону). Когда будет впервые достигнут
ключ p(k) > q, выбирается шаг d2 = dl/S и организуются
сравнения с этим шагом, начиная с p(k-dl). Описанные действия
повторяются п раз, -причем шаг на последней ступени
поиска dn= 1.
Минимальное число сравнений достигается при S=MA(l/n),
и, кроме того, существует оптимальное п=1п(М).
148
Ступенчатый поиск имеет важный частный вариант -
бинарный поиск, когда S=2.
Для бинарного поиска вводятся левая граница интервала
поиска А и правая граница В. Первоначально интервал охватывает
весь массив, т. е. А=0, В=М+1. Вычисляется середина
интервала i по формуле i=(A+B)/2 с округлением в меньшую
сторону. Ключ i-й записи p(i) сравнивается с искомым значением
q. Если p(i) =q, то поиск заканчивается. В случае p(i)>q
записи с номерами i+1, i+2,..., М заведомо не содержат ключа
q, и надо сократить интервал поиска, приняв B=i. Аналогично
при p(i)<q надо взять A=i. Далее середина интервала вычисляется
заново, и все действия повторяются. Если будет достигнут
нулевой интервал, то требуемой записи в массиве нет.
Алгоритм бинарного поиска может быть представлен следующей
программой на языке Паскаль:
program bin;
const M=10;
var i,A,B,q: integer;
p:array[l..M] of integer;
begin
write('BBOfl q');
readln(q);
fori:=l toMdo
begin
write('BBOfl\ i,' элемента массива'); readln(p[i])
end;
A:=0;B:=M+1;
i:=(A+B) div 2; {определение середины интервала}
{цикл до встречи p[i]=q или до нулевого интервала A=i}
while (p{i]<>q) and (A<i) do
begin
if q>p[i] then A:=i else B:=i;
i:=(A+B) div 2; {середина нового интервала}
end;
149
if A=i then writeln('B массиве нет значения', q)
else writeln('HOMep \i,' значение',^
end.
Достаточно легко оценить максимальное число сравнений
Cm при поиске данных бинарным методом. Сокращение интервала
поиска на каждом шаге в худшем случае приведет к
интервалу нулевой длины, что соответствует отсутствию в
массиве искомого значения ключевого атрибута. После первого
сравнения интервал поиска составит М/2 записей, после
второго - М/4 и т. д. Когда интервал поиска впервые станет
меньше 1, применяемая схема округления результата деления
даст нулевой интервал и поиск закончится. Это соответствует
неравенству
М/(2АСга)<=1
(знак Л обозначает возведение в степень), откуда Cm~log M.
Среднее число сравнений при бинарном поиске составляет
C=log(M) -1. Для обоснования представим все возможные
разветвления алгоритма бинарного поиска в виде дерева. Число
уровней дерева соответствует Ст. Половина возможных
сравнений расположена на последнем уровне и половина— на
первых (log(M)-l) уровнях.
Определение лучшего метода поиска (из рассмотренных
выше последовательного, двухступенчатого и бинарного) опирается
на следующие рассуждения. Во всех трех случаях время
поиска является функцией от числа записей М. Конкретные
выражения составляют:
• для последовательного поиска
Т1~МилиТ1=к1*М;
• для двухступенчатого поиска
T2~SQR(M) или T2=k2(SQR(M));
• для бинарного поиска
ТЗ-logM или T3=k3*logM.
150
Коэффициенты пропорциональности в каждом случае неизвестны
(они определяются в зависимости от быстродействия
ЭВМ и применяемого языка программирования). Однако очевидно,
что функция логарифма растет с увеличением М медленнее,
чем две другие функции (для Т1 и Т2), как это показано
на рис. 3.2.
Рис. 3.2. Сравнение методов поиска данных в массиве
Поэтому можно утверждать даже при неизвестных коэффициентах
kl, k2, k3, что при достаточно большом числе записей
М бинарный метод поиска выполняется, безусловно,
быстрее двух остальных. Значения kl, k2, кЗ влияют на граничную
величину М, выше которой преимущество бинарного
поиска безусловно.

31. Строчные линейные структуры данных (однонаправленные списки)

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

Линейный (однонаправленный) список является динамической структурой данных, данные в которую могут включаться и изыматься в произвольно выбранное место.
    Построим модель списка при помощи определенной структуры данных, состоящей из динамических переменных. Каждый элемент списка представим записью языка Pascal, которая состоит из двух полей:
• информационного поля или поля данных, которое в общем случае может содержать произвольное (фиксированное для данного типа элемента) количество полей разных типов;
• ссылки на следующий элемент списка.
    Каждую такую пару будем называть звеном, а ссылки, содержащиеся в каждом из звеньев, будем использовать для соединения звеньев в цепочку. Такой способ представления упорядоченной последовательности элементов называется сцеплением.
    Каждая компонента списка определяется ключом. Обычно ключ - это либо число, либо строка символов. Ключ располагается в поле данных компоненты, он может занимать как отдельное поле записи, так и быть частью информационного поля записи.
    Рассмотрим схематичное изображение однонаправленного списка:

Рис.1. Схематичное изображение однонаправленного списка без заглавного звена
   
Над списками выполняются следующие операции:
• начальное формирование списка (запись первой компоненты);
• добавление компоненты в конец списка;
• определение первого элемента в линейном списке;
• чтение компоненты с заданным ключом; с заданным свойством;
• вставка компоненты в заданное место списка (обычно до компоненты с заданным ключом или после неё);
• исключение компоненты с заданным ключом из списка.
• упорядочивание узлов линейного списка в определенном порядке.
    Описание компоненты однонаправленного списка дадим следующим образом:
    Type
       PtrRec = ^Rec;
       Rec = Record
             Element : TypeElement;   {Информационное поле}
             pNext   : PtrRec;        {Ссылка на следующую компоненту}
         End;
    Для формирования однонаправленного списка и работы с ним необходимо описать четыре переменных типа указатель на запись. Договоримся, что pBegin определяет начало списка, а pCKey, pPredRec, pAux определим как вспомогательные (указатель на компоненту с заданным ключем, указатель на компоненту перед заданным ключем, временный указатель):
    Var
      pBegin, pCKey, pPredRec, pAux : PtrRec;

32. Строчные линейные структуры данных (двунаправленные списки)

Двунаправленные списки
     Линейный список неудобен тем, что при попытке вставить некоторый элемент перед текущим элементом, требуется обойти почти весь список, начиная с заголовка, чтобы изменить значение указателя в предыдущем элементе списка. Чтобы устранить данный недостаток вводится второй указатель в каждом элементе списка. Первый указатель связывает данный элемент со следующим, а второй √ с предыдущим. Такая организация динамической структуры данных получила название линейного двунаправленного списка (двусвязного списка). На рис. 4 приведена графическая интерпретация двунаправленного списка [3].

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

33. Индексы и инвертированные списки

Для ускорения поиска записей в массиве используется дополнительная информация, организованная в виде массива индексов.
Индексом называется набор ключей и адресов записей, которые выбираются из основного массива по определенному закону. Отдельный элемент набора индексов также называется индексом, хотя это не соответствует значению слова index - список.
Имеются три важные разновидности индексов:
• информация о каждой записи основного массива попадает в индекс (сплошная индексация);
• номера записей, информация о которых выносится в индекс, образуют арифметическую прогрессию с шагом d> 1.
Основной массив, дополненный таким индексом, обычно называется индексно-последовательным;
• ключи записей, информация о которых выносится в индекс, приближенно образуют арифметическую прогрессию.
Сплошной индекс связан с созданием инвертированного массива ключевых атрибутов к основному массиву. Этот случай уже рассмотрен в п. 2.4.
Индексно-последователъный массив представляет собой
последовательный массив, отсортированный по значениям ключевого
атрибута, к которому создается дополнительный массив
индексов.
В индекс выносится информация о записях, номера которых образуют арифметическую прогрессию с шагом d. На рис. 3:11
показаны ключевые атрибуты основного массива и состояние
массива индексов для d=3.
Индекс
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Номера записей
Рис. 3.11. Индексно-последовательная организация данных
172
Поиск значения q в индексно-последовательном массиве происходит в две стадии:
• в массиве индексов (который отсортирован в силу упорядоченности
основного массива);
• среди записей основного массива, расположенных между двумя соседними индексами, найденными на первой стадии.
Применение индексов приводит к ускорению доступа, если основной массив располагается на внешнем запоминающем устройстве, а массив индекса может быть полностью размещен в оперативной памяти ЭВМ. Если ключи записей, информация о которых выносится в индекс, приближенно образуют арифметическую прогрессию,
мы получаем ситуацию с адресной функцией для индекса (рандомизация индекса).
Точное описание рандомизированного индекса состоит в следующем. Индекс с номером n хранит адрес записи основного массива, ключ которой равен или непосредственно больше значения p (1)+z(n-1), где z - константа (шаг арифметической прогрессии);
р(1) - значение ключа первой записи основного массива.
На рис. 3.12 показаны ключевые атрибуты основного массива
(идентичные с предыдущим примером) и состояние массива
рандомизированных индексов для г= 10. Примечательно,
что значения ключей в таком индексе хранить не нужно.
Рассмотрим поиск с использованием рандомизированных индексов.
На первой стадии номер требуемого далее индекса определяется
по формуле
„ - q - p w + i .
Z
Результат деления округляется в меньшую сторону. Интервал
записей основного массива на второй стадии поиска определяется
адресами, указанными в n-м и (п+1)-м индексах.
173
Рандомизированный индекс
24 126 31 I 35 39 42 47 52 54 58 63 66 68 72 75
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Номера записей
Рис. 3.12. Рандомизация индекса
Важной разновидностью доступа к данным, которая требует специальных методов ускорения доступа, является обработка информации по нескольким ключевым признакам. В структуре записи массива определяется несколько ключевых атрибутов, причем в различных прикладных программах требуется доступ к записям по различным сочетаниям этих атрибутов и, возможно, требуется последовательная обработка
всего массива.
Среди ключевых атрибутов записи устанавливается порядок старшинства. Извлекаемые на обработку записи должны быть упорядочены в пределах всего массива по самому старшему ключу. В пределах группы записей с одинаковым значением старшего ключа должна соблюдаться упорядоченность по значениям следующего по старшинству ключа и т. д. Проще всего представить упорядоченность по нескольким ключам с помощью следующей схемы.
Пример
Рассмотрим записи с четырьмя атрибутами в порядке старшинства слева направо А1, А2, A3, А4. Значения А1 упорядочены (для примера) по возрастанию. На каждом множестве записей, которые соответствуют одинаковому значению А1, реализована порядоченность
по возрастанию значений А2 для записей, у которых значение А1 одинаково. Далее, на каждом множестве записей с одинаковыми парами значений атрибутов А1 и А2 соблюдается упорядоченность значений по атрибуту A3. И, наконец, на каждом множестве записей с одинаковыми значениями атрибутов А1, А2, A3 должна  соблюдаться упорядоченность по возрастанию для атрибута А4.             Последовательный массив с такой упорядоченностью может обеспечивать быстрый доступ к данным по следующим сочетаниям ключевых атрибутов al+a2+a3+a4, al+a2+a3, al+a2 и al. Количество сочетаний атрибутов, необходимых для реализации максимально широкого круга запросов, в нашем примере составляет 15. Хранение нескольких по-разному рассортированных дублей массива или систематическая сортировка единственного массива в соответствии с поступающими запросами не является
хорошим решением проблемы.
Рассмотрим возможности создания нескольких массивов индексов в этой ситуации. Индекс удобно формировать не для одного ключевого атрибута, а для набора атрибутов.
Естественно, что индекс ключевых атрибутов al+a2+a3+a4 может также использоваться для быстрого доступа по атрибутам al+a2+a3, al+a2 и al. Поэтому в нашем примере
максимально необходимо создание 4 индексов с упорядоченностью атрибутов al+a2+a3+a4, al+a2+a4, al+a3+a4, а2+аЗ+а4.
Для доступа к данным по нескольким ключевым атрибутам используется также мультисписковая организация данных.
Мультисписком называется множество списков, организованных
на общем множестве записей. Если требуется доступ к записям
по t ключам, то формируется t списков для каждого ключевого
атрибута в отдельности.
Рассмотрим особенности организации мультисписков, которые
предназначены для обработки записей по нескольким
ключевым атрибутам.
Пример
В табл. 3.2 показаны 14 записей с ключевыми атрибутами Фамилия
и Профессия (остальные атрибуты в данном случае несущественны).
На пересечении строки с некоторой фамилией и столбца
с некоторой профессией указан номер записи, которая содержит
именно эти значения в качестве ключей.
175
В простейшем случае мультисписок будет содержать два списка
- с указателем Фамилия - (А(1), А(2), А(3), ... , А(13), А(14)) и
с указателем Профессия- (А(3), А(6), А(12), А(1), А(7), А(10), А(13),
А(2), А(4), А(8), А(14), А(5), А(9), А(11)).
Таблица 3.2. Мультисписок для двух ключевых атрибутов
Фамилия
Бардин
Басов
Батов
Белов
Иванов
Исаев
слесарь
А(3)
А(6)
А(12)
Профессия
токарь
АО)
А(7)
А(Ю)
А(13)
штамповщик
А(2)
А(4)
А(8)
А(14)
электрик
А(5)
А(9)
А(11)
При размещении мультисписка во внешней памяти необходимо
размещать каждый список в небольшом числе рядом расположенных
участков, что позволит уменьшить время доступа.
Эффективная организация мультисписка предполагает
выполнение следующих условий:
• число записей в каждом списке должно быть небольшим,
• адреса хранения записей должны монотонно возрастать.
Для сокращения длины списков в мультисписке необходимо
детализировать содержимое указателей. Например, указатель
Фамилия = "Ба" определяет список (А(1), А(2), А(3), А(4),
А(5), А(6), А(7)), указатель Фамилия = "Бе" - список (А(8),
А(9)), указатель Фамилия = "И" - список (А(10), А(11), А(12),
А(13), А(14)). Поскольку атрибут Профессия содержит четыре
значения, возможно существование следующих четырех
списков: (А(3),А(6),А(12)); (А(1),А(7),А(10),А(13)); (А(2),
А(4),А(8), А(14)); (А(5),А(9),А(11)).
При поиске в сокращенных списках необходимо сначала
проанализировать все указатели, чтобы выбрать одну строку,
заведомо содержащую требуемую информацию.
Рассмотрим запрос с условием
Фамилия ="Иванов" и Профессия = "электрик"
Потребуются три обращения к памяти для выбора списка
(А(10), А,(П), А(12)),А(13), А(14)) и четыре обращения для
выбора списка (А(5),А(9), А(11)). В указателях хранится длина
каждого списка. Вторая строка короче, поэтому она просматривается
полностью до извлечения нужной записи А(11).__

Инвертированные списки
До сих пор мы рассматривали структуры данных, которые использовались для ускорения доступа по первичному ключу. Однако достаточно часто в базах данных требуется проводить операции доступа по вторичным ключам. Напомним, что вторичным ключом является набор атрибутов, которому соответствует набор искомых записей. Это означает, что существует множество записей, имеющих одинаковые значения вторичного ключа. Например, в случае нашей БД "Библиотека" вторичным ключом может служить место издания, год издания. Множество книг могут быть изданы в одном месте, и множество книг могут быть изданы в один год.
Для обеспечения ускорения доступа по вторичным ключам используются структуры, называемые инвертированными списками, которые послужили основой организации индексных файлов для доступа по вторичным ключам.
Инвертированный список в общем случае — это двухуровневая индексная структура. Здесь на первом уровне находится файл или часть файла, в которой упорядоченно расположены значения вторичных ключей. Каждая запись с вторичным ключом имеет ссылку на номер первого блока в цепочке блоков, содержащих номера записей с данным значением вторичного ключа. На втором уровне находится цепочка блоков, содержащих номера записей, содержащих одно и то же значение вторичного ключа. При этом блоки второго уровня упорядочены по значениям вторичного ключа.
И наконец, на третьем уровне находится собственно основной файл.
Механизм доступа к записям по вторичному ключу при подобной организации записей весьма прост. На первом шаге мы ищем в области первого уровня заданное значение вторичного ключа, а затем по ссылке считываем блоки второго уровня, содержащие номера записей с заданным значением вторичного ключа, а далее уже прямым доступом загружаем в рабочую область пользователя содержимое всех записей, содержащих заданное значение вторичного ключа.
Инвертированный (метод вторичного индексирования)
Значения ключей физических записей необязательно находятся в логической последовательности. Метод применяется только для выборки данных. Индекс может быть построен для каждого инвертированного поля. Эффективность доступа зависит от числа записей БД, числа уровней индексации и распределения памяти для размещения индекса.
Инвертированные списки формируются системой для поисковых атрибутов, причем для каждого возможного значения такого атрибута составляется список уникальных номеров записей, в которых это значение атрибутов присутствует. Записи с одним и тем же значением поля группируются, а общее для всей группы значение используется в качестве указателя этой группы. Тогда при поиске записей по значениям поисковых атрибутов системе достаточно отыскать списки, соответствующие требуемым значениям, и выбрать номер записи согласно заданной «схеме» пересечения или объединения условий на значениях поисковых атрибутов, а также отрицания некоторого условия.
Индексные наборы данных  обеспечивают ускорение доступа к записям последовательной или строчной структуры данных. Существует несколько видов индексов:
• Сплошной: каждому элементу индекса соответствует единственная запсись последовательной линейной структуры данных или строки.
• К-индексы: указатель содержит адрес и ключевой реквизит записи. Номера записи образуют арифметическую прогрессию с шагом d.
• А-индексы: в индекс входят ключи записей, которые образуют арифметическую прогрессию. Первый индекс адресует первую запись.
По искомому значению и известному ключу 1 записи, шагу арифметической прогрессии определяется номер записи в А-индексе

2. Задание «Разработать иерархический классификатор»

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

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

Для моделирования бизнес-процессов используется несколько различных методов, основой которых являются как структурный, так и объектно-ориентированный подходы к моделированию. Однако деление самих методов на структурные и объектные является достаточно условным, поскольку наиболее развитые методы используют элементы обоих подходов. К числу наиболее распространенных методов относятся:
• метод функционального моделирования SADT (IDEF0);
• метод моделирования процессов IDEF3;
• моделирование потоков данных DFD;
• метод ARIS;
• метод Ericsson-Penker;
• метод моделирования, используемый в технологии Rational Unified Process.

Метод SADT (Structured Analysis and Design Technique) считается классическим методом процессного подхода к управлению. Основной принцип процессного подхода заключается в структурировании деятельности организации в соответствии с ее бизнес-процессами, а не организационно-штатной структурой.
Метод SADT представляет собой совокупность правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями.
Результатом применения метода SADT является модель, которая состоит из диаграмм, фрагментов текстов и глоссария, имеющих ссылки друг на друга. Диаграммы – главные компоненты модели, все функции организации и интерфейсы на них представлены как блоки и дуги соответственно. Место соединения дуги с блоком определяет тип интерфейса. Управляющая информация входит в блок сверху, в то время как входная информация, которая подвергается обработке, показана с левой стороны блока, а результаты (выход) показаны с правой стороны. Механизм (человек или автоматизированная система), который осуществляет операцию, представляется дугой, входящей в блок снизу.
Одной из наиболее важных особенностей метода SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель.
Построение диаграмм начинается с представления всей системы в виде простейшего компонента – одного блока и дуг, изображающих интерфейсы с функциями вне системы. Поскольку единственный блок отражает систему как единое целое, имя, указанное в блоке, является общим. Это верно и для интерфейсных дуг– они также соответствуют полному набору внешних интерфейсов системы в целом. Затем блок, который представляет систему в качестве единого модуля, детализируется на другой диаграмме с помощью нескольких блоков, соединенных интерфейсными дугами. Эти блоки определяют основные подфункции исходной функции. Данная декомпозиция выявляет полный набор подфункций, каждая из которых показана как блок, границы которого определены интерфейсными дугами. Каждая из этих подфункций может быть декомпозирована подобным образом в целях большей детализации.
Модель SADT представляет собой серию диаграмм с сопроводительной документацией, разбивающих сложный объект на составные части, которые изображены в виде блоков. Детали каждого из основных блоков показаны в виде блоков на других диаграммах. Каждая детальная диаграмма является декомпозицией блока из диаграммы предыдущего уровня. На каждом шаге декомпозиции диаграмма предыдущего уровня называется родительской для более детальной диаграммы.
Общее число уровней в модели (включая контекстный) не должно превышать 5-6. Практика показывает, что этого вполне достаточно для построения полной функциональной модели современного предприятия любой отрасли. Метод SADT в наибольшей степени подходит для описания процессов верхнего уровня управления. Его основные преимущества заключаются в следующем:
• полнота описания бизнес-процесса (управление, информационные и материальные потоки, обратные связи);
• комплексность декомпозиции;
• возможность агрегирования и детализации потоков данных и информации (разделение и слияние дуг);
• наличие жестких требований, обеспечивающих получение моделей стандартного вида;
• простота документирования процессов;
• соответствие подхода к описанию процессов стандарту ISO 9000:2000.
В то же время метод SADT обладает рядом недостатков:
• сложность восприятия (большое количество дуг на диаграммах);
• большое количество уровней декомпозиции;
• трудность увязки нескольких процессов, представленных в различных моделях одной и той же организации.

35 билет
Диаграммы потоков данных (анализ документооборота)
3.3. Моделирование потоков данных
Диаграммы потоков данных (Data Flow Diagrams– DFD) представляют собой иерархию функциональных процессов, связанных потоками данных. Цель такого представления – продемонстрировать, как каждый процесс преобразует свои входные данные в выходные, а также выявить отношения между этими процессами.
Модель системы определяется как иерархия диаграмм потоков данных, описывающих асинхронный процесс преобразования информации от ее ввода в систему до выдачи потребителю. Источники информации (внешние сущности) порождают
информационные потоки (потоки данных), переносящие информацию к подсистемам или процессам. Те, в свою очередь, преобразуют информацию и порождают новые потоки, которые переносят информацию к другим процессам или подсистемам, накопителям данных или внешним сущностям – потребителям информации.
Диаграммы верхних уровней иерархии (контекстные диаграммы) определяют основные процессы или подсистемы с внешними входами и выходами. Они детализируются при помощи диаграмм нижнего уровня. Такая декомпозиция продолжается, создавая многоуровневую иерархию диаграмм, до тех пор, пока не будет достигнут уровень декомпозиции, на котором детализировать процессы далее не имеет смысла.
Состав диаграмм потоков данных
Основными компонентами диаграмм потоков
данных являются:
• внешние сущности;
• системы и подсистемы;
• процессы;
• накопители данных;
• потоки данных.

Внешняя сущность (квадрат с тенью) представляет собой материальный объект или физическое лицо, являющиеся источником или приемником информации, например, заказчики, персонал, поставщики, клиенты, склад. Определение некоторого объекта или системы в качестве внешней сущности указывает на то, что она находится за пределами границ анализируемой системы. В процессе анализа некоторые внешние сущности могут быть перенесены внутрь диаграммы анализируемой системы, если это необходимо, или, наоборот, часть процессов может быть вынесена за пределы диаграммы и представлена как внешняя сущность.
Процесс представляет собой преобразование входных потоков данных в выходные в соответствии с определенным алгоритмом. Физически процесс может быть реализован различными способами: это может быть подразделение организации (отдел), выполняющее обработку входных документов и выпуск отчетов, программа, аппаратно реализованное логическое устройство и т.д.
Накопитель данных – это абстрактное устройство для хранения информации, которую можно в любой момент поместить в накопитель и через некоторое время извлечь, причем способы помещения и извлечения могут быть любыми. Накопитель данных идентифицируется буквой «D» и произвольным числом. Имя накопителя выбирается из соображения наибольшей информативности для проектировщика.
Поток данных определяет информацию, передаваемую через некоторое соединение от источника к приемнику. Реальный поток данных может быть информацией, передаваемой по кабелю между двумя устройствами, пересылаемыми по почте письмами, магнитными лентами или дискетами, переносимыми с одного компьютера на другой и т.д.
Поток данных на диаграмме изображается линией, оканчивающейся стрелкой, которая показывает направление потока. Каждый поток данных имеет имя, отражающее его содержание.
Главная цель построения иерархии DFD заключается в том, чтобы сделать описание системы ясным и понятным на каждом уровне детализации, а также разбить его на части с точно определенными отношениями между ними.

Перекрестки
Перекрестки (Junction) обеспечивают отображение логики взаимодействия стрелок при слиянии и разветвлении.
Таблица 8
Обозначение Наименование Смысл в случае слияния стрелок
(Fan-in-Junction) Смысл в случае разветвления стрелок
(Fan-out-Junction)
Асинхронное «И» Все предшествующие процессы должны быть завершены Все следующие процессы должны быть запущены
Синхронное «И» Все предшествующие процессы завершены одновременно Все следующие процессы запускаются одновременно
Асинхронное «ИЛИ» Один или более предшествующих процессов должны быть завершены Один или несколько следующих процессов должны быть запущены
Синхронное «ИЛИ» Один или более предшествующих процессов завершены одновременно Один или несколько следующих процессов запускаются одновременно
Исключающее «ИЛИ» Только один предшествующий процесс завершен Только один следующий процесс запускается

Перекрестки нумеруются, префикс – J, стрелки могут сливаться или разветвляться только через перекрестки.
Правила создания перекрестков:
1. Каждому перекрестку для слияния должен предшествовать перекресток для разветвления.
2. Перекресток для слияния «И» не может следовать за перекрестком для разветвления типа синхронного или асинхронного «ИЛИ».
3. Перекресток для слияния «И» не может следовать за перекрестком для разветвления типа исключающего «ИЛИ».
4. Перекресток для слияния типа исключающего «ИЛИ» не может следовать за перекрестком для разветвления типа «И».
5. Перекресток, имеющий одну стрелку на одной стороне, должен иметь более одной стрелки на другой стороне.

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

Можно по-разному характеризовать понятие модели данных СУБД. С одной стороны, модель данных СУБД – это способ структурирования данных, которые рассматриваются как некоторая абстракция в отрыве от предметной области. С другой стороны,модель данных СУБД – это инструмент представления концептуальной модели предметной области и динамики ее изменения в виде базы данных.
Учитывая обе вышеуказанные стороны, определим основные структуры моделей данных СУБД, используемые для представления концептуальной модели предметной области (сущностей, атрибутов, связей).
Элемент данных (поле) – наименьшая поименованная единица данных. Используется для представления значения атрибута.
С элементом данных неразрывно связано понятие "тип данных", который может принимать соответствующее поле. В разных СУБД могут использоваться разные типы данных, наиболее распространенными из которых (используемые во многих СУБД) являются следующие: числовой (numeric), символьный (char), дата (date) и т.д.
Запись – поименованная совокупность полей. Используется для представления совокупности атрибутов сущности (записи о сущности).
Экземпляр записи – запись с конкретными значениями полей.
Первичный ключ – минимальный набор полей записи, однозначно идентифицирующих экземпляр записи файла.
Файл – поименованная совокупность экземпляров записей одного типа. Используется для представления однородного набора сущностей.
Набор файлов – поименованная совокупность файлов, обрабатываемых в системе. Используется для представления нескольких наборов сущностей.
Введем понятие "группа", обобщающее понятия "файл" и "запись".
Группа – это поименованная совокупность элементов данных и других групп.
Важнейшим понятием концептуальной модели является понятие связи между сущностями (наборами сущностей). В моделях данных СУБД соответствующее понятие отражается понятием "групповое отношение".
Групповое отношение – поименованное бинарное отношение, заданное на двух множествах экземпляров рассматриваемых групп. По характеру бинарных связей различают групповые отношения вида 1:1, 1:M, M:1, M:N. Пары чисел называют коэффициентами группового отношения. В групповом отношении один член группы назначается владельцем отношения, другой – членом.
База данных – поименованная совокупность экземпляров групп и групповых отношений.
Для представления группового отношения используется две формы:
а) Графовая. Группы изображаются вершинами графа, связи между группами – дугами, направленными от группы-владельца к группе-члену с указанием имени отношения и коэффициента.
По типу графов различают:
• иерархическую модель (граф без циклов – дерево);
• сетевую модель (ориентированный граф общего вида).
б) Табличная. Связь между группами изображается таблицей, столбцы которой представляют ключи соответствующих групп. Для формального описания таблицы используется математическое (теоретико-множественное) понятие отношения. Соответствующаямодель данных называется реляционной моделью.
Модель данных СУБД описывается следующим образом:
• определены возможные типы и характеристики логических структур данных (полей, записей, файлов);
• заданы правила составления структур более общего типа из структур более простых типов (например, записей из полей, файлов из записей и т.д.);
• определен способ представления связей (отношений) между файлами и записями) с помощью дополнительных полей ;
• определены возможные действия над структурами и правила их выполнения, включающие:
o основные элементарные операции над данными;
o обобщенные операции (процедуры);
o средства контроля относительно простых условий корректности операций добавления, обновления или удаления данных (ограничения), реализуемые автоматически запускаемыми при выполнении вышеуказанных операций специальными процедурами (триггерами);
o средства контроля сколь угодно сложных условий корректности выполнения определенных действий (правила);
o специальный класс процедур (триггеры).
В качестве основных элементарных операций обычно рассматриваются следующие: поиск записи с заданным значением ключа, чтение нужной записи, добавление записи, корректировка, удаление. В моделях данных СУБД также предусматриваются специальные операции для установления групповых отношений.
Обобщенные операции или процедуры – последовательность операций, реализующая определенный алгоритм обработки данных. Процедуры могут инициироваться СУБД автоматически, а также могут запускаться пользователем. Примерами процедур являются процедуры копирования БД, восстановления БД, процедуры, вычисляющие значения определенных атрибутов в БД по значениям других атрибутов, и т.п.

Структура данных и операции над ними
Структура данных строится с помощью элементов данных, связанных между собой логич и физич связями, физич положением.
Существуют структуры данных внемашинного и внутримашинного уровня представления. На внемашинном уровне рассматриваются единицы инфы с учетом их связей для бумажных носителей – форм документов, классификаторов и кодификаторов технико-эк. Инфы.
Во внутримашин структуре данных элементами структуры являются поля и логич записи. Логич запись рассматривается как объединение нескольких полей. Набор экземпляров, записей образуют массив(файл).
В качестве основных элементарных операций обычно рассматриваются следующие: поиск записи с заданным значением ключа, чтение нужной записи, добавление записи, корректировка, удаление. В моделях данных СУБД также предусматриваются специальные операции для установлеания групповых отношений.
37 Архитектура многоуровневого представления данных БД
Американск нац институт стандартов разработал многоуровневую модель БД ANSI/SPARC.
В этой модели выделяется 3 уровня абстракции, т.е. 3 различных уровня описания элементов данных. Эти уровни формируют трехуровневую архитектуру, которая охватывает внешний, концептуальный и внутренний уровни. Цель трехуровневой архитектуры заключается в отделении пользовательского представления базы данных от ее физического представления.
Уровень, на котором воспринимают данные пользователи, называется внешним уровнем (external level), тогда как СУБД и операционная система воспринимают данные на внутреннем уровне (internal level). Именно на внутреннем уровне данные реально сохраняются с использованием всех тех структур и файловой организации. Концептуальный уровень (conceptual level) представления данных предназначен для отображения внешнего уровня на внутренний и обеспечения необходимой независимости друг от друга.

Рисунок 1 Трехуровневая архитектура ANSI-SPARC

Внешний уровень. Внешний уровень состоит из нескольких различных внешних представлений БД. Каждый пользователь имеет дело с представлением предметной области, выраженным в наиболее удобной для него форме. Внешнее представление содержит только те сущности, атрибуты и связи предметной области, которые интересны пользователю.
Помимо этого, различные представления могут по-разному отображать одни и те же данные. Например, один пользователь может просматривать даты в формате (день, месяц, год), а другой - в формате (год, месяц, день). Некоторые представления могут включать производные или вычисляемые данные, которые не хранятся в базе данных как таковые, а создаются по мере надобности. Представления могут также включать комбинированные или производные данные из нескольких объектов.
Концептуальный уровень. Промежуточным уровнем в трехуровневой архитектуре является концептуальный уровень. Этот уровень содержит логическую структуру всей базы данных (с точки зрения АБД). Фактически, это полное представление требований к данным, которое не зависит от любых соображений относительно способа их хранения. На концептуальном уровне представлены следующие компоненты: все сущности, их атрибуты и связи; накладываемые на данные ограничения; семантическая информация о данных; информация о мерах обеспечения безопасности и поддержки целостности данных.
Концептуальный уровень поддерживает каждое внешнее представление, в том смысле, что любые доступные пользователю данные должны содержаться (или могут быть вычислены) на этом уровне. Однако этот уровень не содержит никаких сведений о методах хранения данных.
Внутренний уровень. Внутренний уровень описывает физическую реализацию базы данных и предназначен для достижения оптимальной производительности и обеспечения экономного использования дискового пространства. Он содержит описание структур данных и организации отдельных файлов, используемых для хранения данных в запоминающих устройствах. На этом уровне осуществляется взаимодействие СУБД с методами доступа операционной системы с целью размещения данных на запоминающих устройствах, создания индексов, извлечения данных и т.д. На внутреннем уровне хранится следующая информация: сведения о распределении дискового пространства для хранения данных и индексов; описание подробностей сохранения записей (с указанием реальных размеров сохраняемых элементов данных); сведения о размещении записей; сведения о сжатии данных и выбранных методах их шифрования.
38. Иерархическая модель данных
Это также одна из наиболее ранних моделей данных. Реализация групповых отношений в иерархической модели, как и в сетевой, может осуществляться с помощью указателей и представляется в виде графа. Однако, в отличие от сетевой модели, здесь существует ряд принципиальных особенностей.
1. Групповые отношения являются отношениями соподчиненности. Группа (запись) – владелец отношения имеет подчиненные группы – члены отношений. Исходная группа называется предком, подчиненная – потомком.
2. Групповые отношения образуют иерархическую структуру, которую можно описать как ориентированный граф следующего вида:
o имеется единственная особая вершина (соответствующая группе), называемая корнем, в которую не заходит ни одно ребро (группа не имеет предков);
o во все остальные вершины входит только одно ребро (все остальные группы имеют одного предка), а исходит произвольное количество ребер (группы имеют произвольное количество потомков);
o отсутствуют циклы.
3. Иерархическая модель данных может представлять совокупность нескольких деревьев. В терминологии иерархической модели деревья, описывающие структуру данных, называются деревьями описания данных, а сами структурированные данные (база данных) – деревьями данных.
Особенностью реализации операций поиска в иерархической модели является то, что операция всегда начинает поиск с корневой вершины и специфицирует иерархический путь (последовательность связанных вершин) от корня до вершины, экземпляры которой удовлетворяют условиям поиска.
Необходимо отметить, что программы, реализующие операции иерархической модели, существенно проще, чем аналогичные программы для сетевой модели, т.к. здесь много легче осуществлять навигацию по структуре. Целесообразность появления иерархической модели обусловлена, конечно, тем, что большинство организационных систем реального мира имеют иерархическую структуру (административное деление страны, организационная структура предприятия и т.п.). Соответствующее концептуальное представление также будет иметь иерархическую структуру и естественным образом может быть описано в терминах иерархической модели. В качестве недостатков иерархической модели можно назвать вышеуказанные недостатки сетевой.
СУБД, поддерживающие иерархическую модель, достаточно широко использовались на вычислительных системах IBM 360/370 (ЕС ЭВМ). В качестве примеров таких систем можно указать IMS, OKA и широко тиражируемую в СССР отечественную разработку ИНЕС. Примером иерархической СУБД для персональных ЭВМ является отечественная система НИКА (адаптация системы ИНЕС к IBM PC).
Достоинства иерархической модели:
• простота и естественность представления экономических данных;
• минимальный расход памяти по сравнению с другими моделями.
Недостатки иерархической модели:
• сложность отображения связей М : N без увеличения избыточности;
• сложность включения информации о новых объектах и удаления устаревших данных;
• доступ к данным возможен только через корень дерева, следовательно большое время поиска данных для некоторых запросов.

39. Сетевая модель данных
Это одна из наиболее ранних моделей данных СУБД. Типовая сетевая модель данных была предложена рабочей группой по базам данных (Data Base Task Group – DBTG) системного комитета CODASYL (Conference of Data System Languages), основными функциями которого были анализ известных фирменных систем обработки управленческих данных с единых позиций и в единой терминологии, обобщение опыта организации таких систем и разработка рекомендаций по созданию соответствующих систем. Структура данных сетевой модели определяется в терминах раздела 6.1 (элемент, запись, группа, групповое отношение, файл, база данных).
Реализация групповых отношений в сетевой модели осуществляется с использованием специально вводимых дополнительных полей - указателей (адресов связи или ссылок), которые устанавливают связь между владельцем и членом группового отношения. Запись может состоять в отношениях разных типов (1:1, 1:N, M:N). Заметим, что если один из вариантов установления связи 1:1 очевиден (в запись – владелец отношения, поля которой соответствуют атрибутам сущности, включается дополнительное поле – указатель на запись – член отношения), то возможность представления связей 1:N и M:N таким же образом весьма проблематична. Поэтому наиболее распространенным способом организации связей в сетевых СУБД является введение дополнительного типа записей (и соответственно, дополнительного файла), полями которых являются указатели.
Рассмотрим для примера представление группового отношения M:N. В модель вводится дополнительная группа (дополнительный вид записей). Элементы этой записи представляют собой указатели на две исходные группы и указатели на экземпляры рассматриваемой дополнительной записи, связывающие их в список (цепь), соответствующий M и (или) N членам группового отношения (рис. 6.1.).

Рис. 6.1.  Представление связей типа M:N
Представление связей 1:1, 1:M, N:1 является частным случаем связи типа M:N и осуществляется аналогично рассмотренному выше.
Заметим, что группа может быть членом более чем одного группового отношения. В этом случае вводится несколько дополнительных групп-указателей, а в группе – владельце отношений вводится несколько полей – указателей на дополнительные группы. Тогда множество записей (групп) и связей между ними образует некую сетевую структуру (ориентированный граф общего вида). Вершинами графа являются группы; дугами графа, направленными от владельца к члену группового отношения, – связи между группами.
Сетевая модель данных поддерживает все необходимые операции над данными, реализованные как действия со списковыми структурами. Сетевая модель данных является, вероятно, наиболее общей по возможностям представления концептуальной модели. По сути, любая ER-диаграмма без каких-либо изменений представляется средствами сетевой модели. К недостаткам сетевой модели обычно относят сложность получаемой на её основе концептуальной схемы и большую трудоемкость понимания соответствующей схемы внешним пользователем.
Рассмотрим пример записи части ER-диаграммы (СТУДЕНТ и ФАКУЛЬТЕТ) из предыдущей лекции в терминах сетевой СУБД. Для примера рассмотрим несколько экземпляров сущности СТУДЕНТ и сущности ФАКУЛЬТЕТ (рис. 6.2.).

Рис. 6.2.  Примеры экземпляров сущностей
Пусть студенты Иванов, Петров, Мишин учатся на факультете ВМК, Сидоров и Кашин на механико-математическом факультете. Тогдасетевая модель соответствующего фрагмента ER-диаграммы будет выглядеть следующим образом (рис. 6.3).

Рис. 6.3.  Пример сетевой модели концептуального представления
Заметим, что в дополнительном файле один из указателей не потребовался, так как рассматриваемая связь имеет тип 1:N, а не M:N. Значок × обозначает отсутствие дальнейшей связи.
Наиболее существенным недостатком сетевой модели является "жесткость" получаемой концептуальной схемы. Связи закреплены в записях в виде указателей. При появлении новых аспектов использования этих же данных может возникнуть необходимость установления новых связей между ними. Это требует введения в записи новых указателей, т.е. изменения структуры БД, и, соответственно, переформирования всей базы данных.
СУБД, поддерживающие сетевую модель, широко использовались на вычислительных системах серии IBM 360/370 (ЕС ЭВМ). В качестве примеров таких систем можно указать IDMS, UNIBAD (БАНК), и их аналоги СЕДАН, СЕТОР. На персональных компьютерах сетевые СУБД не получили широкого распространения. Примером сетевой СУБД для персонального компьютера является db_VISTA III. Отметим, что система db_VISTA реализована на языке С и поэтому является переносимой. Система может эксплуатироваться на ПЭВМ типа IBM PC, SUN, Macintosh.

Сетевые структуры данных
Если в отношении между данными порожденный элемент имеет более одного исходного, отношение называется сетевой структурой («сетью»): любой элемент может быть связан с любым числом других элементов. Сетевую структуру можно описать с помощью исходных и порожденных элементов. Для сетевых структур данных характерно отношение «многие-ко-многим», рис. 45.

Сетевая модель данных
Отличие сетевой модели от иерархической заключается в том, что в сетевой структуре любой элемент данных может быть связан с любым другим, то есть иерархическая модель является разновидностью сетевой. Различают простую и сложную сетевую структуру. В простой сетевой структуре между исходным и порожденными узлами реализуется связь 1:М. Сложной сетевой структурой называют такую схему, в которой присутствует хотя бы одна связь N : M.



40. Реляционная модель данных
Учитывая отмеченные в предыдущих разделах недостатки сетевых и иерархических моделей, можно сформулировать желательные требования к модели данных:
• модель должна быть понятна пользователю, не имеющему особых навыков в программировании;
• появление новых аспектов использования данных и необходимость введения новых связей не должны приводить к реструктуризации всей модели данных и базы данных в целом.
Моделью данных, удовлетворяющей вышеуказанным требованиям, является реляционная модель, часто называемая также табличной.
Основным используемым понятиям здесь является понятие отношения, представляемого в виде таблицы, столбцы которой соответствуют атрибутам сущности (структура строки таблицы аналогична структуре записи). Каждый атрибут может принимать определенное множество значений, называемое доменом. Строка таблицы с конкретными значениями полей здесь называется кортежем (соответствует понятию "экземпляр записи"). Поля таблицы предполагаются элементарными (неделимыми). Таким образом, понятие "таблица" здесь соответствует понятию "файл" модели данных. Первичный ключ здесь –минимальный набор атрибутов, однозначно идентифицирующий кортеж в отношении.
Групповое отношение может представляться двумя способами. При первом способе в таблицы, соответствующие группам – членам отношения, добавляются столбцы ключевых полей (атрибутов) другого члена отношения (связь описывается через ключевые атрибуты). При втором способе групповое отношение определяется как дополнительная группа (дополнительная таблица). Столбцами этой дополнительной таблицы являются ключи групп – членов отношения. Таким образом, при любом способе соответствующая модель данных представляет собой совокупность структур таблиц.
Рассмотрим пример записи ER-диаграммы (см. рис. 5.2.) в терминах реляционных баз данных.
Сначала представим таблицы, соответствующие сущностям.
Таблица СТУДЕНТ
Код Фамилия Дата рождения Место рождения
Таблица ФАКУЛЬТЕТ
Номер Название
Таблица СПЕЦИАЛЬНОСТЬ
Номер Название
Представим таблицы, описывающие связи.
Таблица "Студент учится на факультете"
Код студента Номер факультета
Таблица "Студент учится по специальности"
Код студента Номер специальности
Таблица "На факультете имеются специальности"
Номер факультета Номер специальности
Заметим, что здесь реализован вышеописанный второй способ представления групповых отношений. Очевидно, что можно построить много вариантов таблиц, представляющих соответствующую ER-диаграмму.
Для приведенных таблиц не указаны домены атрибутов. Отсутствие указания доменов приводит к неоднозначной интерпретации содержания таблицы. Например, две таблицы с одинаковыми атрибутами
Код студента Фамилия Дата рождения Место рождения
могут иметь разное смысловое значение и, соответственно, разное содержание (в одной таблице содержатся сведения о всех студентах факультета, в другой таблице сведения только о старостах факультета). Для устранения неоднозначной интерпретации в случае отсутствия указания доменов используют имя таблицы (СТУДЕНТ; СТАРОСТА)
Для формального описания таблицы используется теоретико-множественное понятие отношения.
Схемой отношения R называется перечень имен атрибутов отношения (соответствующих столбцам таблицы) с указанием доменов этих атрибутов и обозначается R(A1, A2, ..., An); {Ai}   Di, где {Ai} – множество значений, принимаемых атрибутом Ai(i=1,n).
Совокупность схем отношений, используемых для представления концептуальной модели, называется схемой реляционной базы данных, а текущие значения соответствующих отношений – реляционной базой данных.
В качестве основного недостатка реляционной модели можно указать дублирование информации при представлении связей.
Необходимо отметить, что большинство СУБД для персональных ЭВМ поддерживают именно реляционную модель данных. В качестве примеров таких наиболее распространенных СУБД можно указать все dBase-подобные системы, DB2, Paradox, Access, FoxPro, Oracle, MS SQL Server.

Для подчеркивания важности приведенных операций реляционной алгебры, а также для уточнения понятия реляционной СУБД приведем следующее определение одного из ведущих специалистов в области реляционных баз данных К.Дж. Дейта: "Будем называть систему реляционной, если она поддерживает, по крайней мере, реляционные базы данных, т.е. базы данных, которые могут восприниматься пользователем как таблицы и только как таблицы, операции селекции, проекции и соединения реляционной алгебры, не требуя при этом, чтобы каким-то образом были предопределены физические пути доступа для поддержки этих операций".
Краткие итоги: В лекции рассматриваются вопросы, связанные с формализацией наиболее распространенной в настоящее время модели данных СУБД – реляционной модели. Формальное описание реляционной модели и полученные на этой основе математические методы и алгоритмы позволяют формализовать ряд шагов проектирования реляционной базы данных , получить оптимальную (по определенным критериям) структуру базы данных и эффективные алгоритмы обработки. Здесь рассматривается формализованное описание отношений, формальные средства манипулирования данными в реляционной модели (дано понятие реляционного исчисления и реляционной алгебры, приводятся основные операции реляционной алгебры). Приводятся примеры представления запросов как последовательность формальных операций реляционной алгебры.

Реляционные модели
Первой формализованной и общепризнанной моделью данных была реляционная модель Е. Кодда. В этой модели выделялись - структурный, целостный и манипуляционный аспекты:
• структура данных - нормализованное N-арное отношение;
• средства манипуляции данными - совокупность  реляционной алгебры, основу которой   составляет теория множеств, и реляционного исчисления, основанного на логическом аппарате исчисления предикатов первого порядка;
• средства обеспечения целостности данных на уровне сущностей – любое отношение должно обладать первичным ключом) и на уровне ссылок – использование внешних ключей для связи отношений (внешний ключ в одном  отношении является первичным ключом другого отношения). Способы поддержки целостности ссылок:
 запрет удаления кортежа, если на них имеются ссылки ( сначала нужно удалить ссылающиеся кортежи, либо изменить значение их внешнего ключа);
 при удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа автоматически становится неопределенным;
 при удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи (каскадное удаление).
Структуры данных в реляционной модели основываются на плоских нормализованных отношениях, ограничения целостности выражаются с помощью средств логики первого порядка и, наконец, манипулирование данными осуществляется на основе реляционной алгебры или равносильного ей реляционного исчисления. Реляционная модель данных опирается на строгий математический аппарат теории множеств, отношений и логики первого порядка.
Достоинства реляционных баз данных:
• возможность моделирования предметных областей на достаточно точном и интуитивно понятном уровнях с помощью небольшого набора абстракций;
• простой и одновременно мощный математический аппарат(теория множеств, математическая логика), обеспечивающий теоретический базис реляционного подхода к организации баз данных;
• непроцедурное манипулирование данными (без необходимости знания конкретной физической организации баз данных во внешней памяти).
Недостатками реляционных систем являются ограниченность реляционных моделей (следствие их простоты); невозможность адекватного отражения семантики предметной области средствами реляционной модели.

Основные термины:
1) тип данных - соответствует типам данных в языках программирования (символьные, числовые данные, битовые строки, специализированные числовые данные, дата, время);
2) домен - базовый тип данных, к которому относятся элементы домена, а также логическое выражение, применяемое к элементу типа данных (если логического выражения дает истина, элемент данных является элементом домена);
3) атрибут - свойство (реквизит, поле) некоторого объекта или сущности, принадлежащий домену;
4) схема отношений -  именованное множество пар {имя атрибута, имя домена/типа данных)}. Степень  (арность) схемы отношения – мощность этого множества;
5) схема БД - набор именованных схем отношений;
6) кортеж - множество пар {имя атрибута, значение}, имена атрибутов принадлежат схеме отношения, значения атрибутов является допустимыми значениями домена данного атрибута (типа данных). Степень (арность) кортежа - число элементов в нем, совпадает с арностью схемы отношения;
7) первичный ключ – набор атрибутов, значения которых однозначно определяют кортеж отношения;
8) отношение – множество кортежей, соответствующих одной схеме отношения (обычное представление - таблица, заголовок которой - схема отношения, строки - кортежи).
9) реляционная БД – набор отношений, имена которых совпадают с именами схем отношений в схеме БД.
Свойства отношений:
• отсутствие кортежей-дубликатов (множества не содержат одинаковые элементы);
• наличие первичного ключа отношения, обеспечивающего целостность БД;
• отсутствие упорядоченности кортежей;
• отсутствие упорядоченности атрибутов;
• атомарность значений атрибутов (основа нормализации отношений - 1 нормальная форма).

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

5

41. Нормализация отношений реляционной модели данных (1НФ, 2 НФ, 3НФ)

Нормализация отношений
Процесс проектирования реляционной БД представляет собой процесс нормализации схем отношений, каждая следующая нормальная форма обладает свойствами лучшими, чем предыдущая. В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:
1) первая нормальная форма (1НФ);
2) вторая нормальная форма (2НФ);
3) третья нормальная форма (3НФ);
4) нормальная форма Бойса-Кодда БКНФ(BCNF);
5) четвертая нормальная форма (4НФ);
6) пятая нормальная форма, или нормальная форма проекции-соединения (5НФ или PJ/NF).

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

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

Типичная база данных до нормализации
Ненормализованная база данных содержит информацию в одной или нескольких различных таблицах; при этом создается впечатление, что включение данных в ту или иную таблицу не обусловлено никакими видимыми причинами. Такое положение дел может оказывать негативное влияние на безопасность данных, рациональное использование дискового пространства, скорость выполнения запросов, эффективность обновления базы данных и, что, наверное, является наиболее важным, на целостность хранимой информации. База данных перед нормализацией представляет собой структуру, которая логически еще не разбита на более управляемые таблицы меньшего размера.
Нормальная форма — это своеобразный показатель уровня, или глубины, нормализации базы данных. Уровень нормализации базы данных соответствует нормальной форме, в которой она находится.
Вот три наиболее распространенных нормальных формы, в которых может находиться база данных в процессе нормализации:
• Первая нормальная форма
• Вторая нормальная форма
• Третья нормальная форма
Из трех перечисленных нормальных форм каждая последующая зависит от шагов, предпринятых в процессе получения предыдущей нормальной формы.

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

42 Логическая модель "сущность-связь" (ERD)
1. Логическая модель данных является визуальным представлением структур данных, их атрибутов и бизнес-правил. Логическая модель представляет данные таким образом, чтобы они легко воспринимались бизнес-пользователями. Проектирование логической модели должно быть свободно от требований платформы и языка реализации или способа дальнейшего использования данных.
Разработчик модели использует требования к данным и результаты анализа для формирования логической модели данных. Разработчик приводит логическую модель к третьей нормальной форме и проверяет ее на соответствие корпоративной модели данных, если она существует.
Диаграмма сущность-связь является самым высоким уровнем в модели данных и определяет набор сущностей и атрибутов проектируемой системы. Целью этой диаграммы является формирование общего взгляда на систему для ее дальнейшей детализации.

2. Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью.
Логическая модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных. Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь). Одну и ту же ER-модель можно преобразовать как в реляционную модель данных, так и в модель данных для иерархических и сетевых СУБД, или в постреляционную модель данных. Однако, т.к. мы рассматриваем именно реляционные СУБД, то можно считать, что логическая модель данных для нас формулируется в терминах реляционной модели данных.
Решения, принятые на предыдущем уровне, при разработке модели предметной области, определяют некоторые границы, в пределах которых можно развивать логическую модель данных, в пределах же этих границ можно принимать различные решения. Например, модель предметной области складского учета содержит понятия "склад", "накладная", "товар". При разработке соответствующей реляционной модели эти термины обязательно должны быть использованы, но различных способов реализации тут много - можно создать одно отношение, в котором будут присутствовать в качестве атрибутов "склад", "накладная", "товар", а можно создать три отдельных отношения, по одному на каждое понятие.

3. Модели Entity-Relationship (Сущность-Связи)
Модель предложена Ченом (Chen) в 1976 г. Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных. Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность - это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. Имя сущности – это имя типа (а не конкретного экземпляра) .
Связь - графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Ассоциация всегда является бинарной, может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). Для связи указывается имя связи, степень связи (сколько экземпляров данной сущности связывается), обязательность связи. Используются трехточечный вход в прямоугольник сущности, если для этой сущности в связи могут использоваться много (many) экземпляров сущности, и одноточечный вход, если в связи может участвовать только один экземпляр сущности.
Атрибут сущности имеет имя и тип данных. Уникальным идентификатором сущности является атрибут, комбинация атрибутов, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпляров сущности того же типа.
Более сложные элементы модели:
• Подтипы и супертипы сущностей. Имеется возможность наследования типа сущности, исходя из одного или нескольких супертипов.
• Связи many-to-many.
• Уточняемая степень связи.
• Каскадные удаления экземпляров сущностей.
• Домены.
Сущность может быть расщеплена на два или более взаимно исключающих подтипа, каждый из которых включает общие атрибуты и/или связи, которые явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи. Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество.
Требование целостности сущностей - любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. любое отношение должно обладать первичным ключом. Требование целостности по ссылкам (требование внешнего ключа) состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать).
Существуют три подхода, каждый из которых поддерживает целостность по ссылкам:
• запрет удаления кортежа, на который существуют ссылки (т.е. сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значения их внешнего ключа);
• при удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа автоматически становится неопределенным;
• каскадное удаление - при удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи.

4. Модель Сущность-Связь (ER-модель) (англ. entity-relationship model (ERM) или англ. entity-relationship diagram (ERD)) — модель данных, позволяющая описывать концептуальные схемы. Представляет собой графическую нотацию, основанную на блоках и соединяющих их линиях, с помощью которых можно описывать объекты и отношения между ними какой-либо другой модели данных. В этом смысле ER-модель является мета-моделью данных, то есть средством описания моделей данных.
ER-модель удобна при прототипировании (проектировании) информационных систем, баз данных, архитектур компьютерных приложений, и других систем (далее, моделей). С её помощью можно выделить ключевые сущности, присутствующие в модели, и обозначить отношения, которые могут устанавливаться между этими сущностями.
ER-модель является одной из самых простых визуальных моделей данных (графических нотаций). Она позволяет обозначить структуру «крупными мазками», в общих чертах. Это общее описание структуры называется ER-диаграммой или онтологией выбранной предметной области (area of interest).
На этапе перехода к реализации данной ER-диаграммы в виде реальной информационной системы или программы, происходит отображение ER-модели в более детальную модель данных реляционной (объектной, сетевой, логической, или др.) базы данных, которая называется даталогической моделью данных по отношению к исходной ER-диаграмме.

Наиболее распространенной семантической моделью является
модель, названная "сущность-связь". Эта модель использует
графическое представление всех компонентов. Базовыми
элементами в модели "сущность-связь" служат типы
сущностей, обозначаемые далее прямоугольниками, и типы
связей, обозначаемые двойными прямоугольниками. Многие
сущности, рассматриваемые в этой модели, соответствуют физическим
объектам предметной области.
189
Структура предметной области в модели "сущность-связь"
изображается в форме диаграммы. Дуги на диаграмме соединяют
тип сущности с типом связи. На дугах указывается 1 или
m в соответствии с тем, сколько раз идентификатор объекта
может возникнуть в строках отношений, представляющих связи
объектов (1 - один раз, m - несколько раз).
Диаграмма может представлять только объекты и связи или
дополнительно содержать атрибуты, описывающие их свойства.

Представление предметной области с помощью модели
"сущность-связь" позволяет:
• однозначно разработать структуру многоуровневой сетевой
базы данных;
• обеспечить одинаковое понимание всеми пользователями
содержимого базы данных.
Модель "сущность-связь" характеризуется рядом недостатков:
• не содержит изобразительных средств для фиксации организационной
иерархии процессов управления и агрегации
данных по уровням управления;
• принятое в модели правило формирования множества
отношений базы данных создает слишком много отношений
для объектов и связей. В результате диаграмма
объектов и связей реальной задачи быстро становится
громоздкой н необозримой.

43
1. Физическая модель данных под управлением СУБД (DBMD).
СУБД оперирует с так называемой внутренней (физической) моделью данных, которая отображается в физическую базу данных средствами ОС.
Концептуальная схема, специфицированная к СУБД, автоматически отображается в структуру хранения программами СУБД. Внешний пользователь может ничего не знать о том, как его представление о данных физически организовано в памяти вычислительной системы. Тем не менее от физического размещения данных в
памяти ЭВМ существенно зависит время решения прикладных задач.
В связи с этим,  даже на одном из начальных этапов проектирования базы данных – этапе выбора СУБД,  желательно знать возможности физических структур хранения,  представляемых конкретными СУБД,и оценивать временные характеристики  проектируемой базы данных с учетом этих возможностей.
Способы физической организации данных в различных СУБД, как правило,  различны и определяются типом используемой ЭВМ,  инструментальными средствами разработки СУБД,  а также критериями,которыми руководствуются разработчики  СУБД  при выборе методов размещения данных и способов доступа к этим данным. Заметим, что наиболее распространенным критерием служит  время доступа к дан-
ным, однако в качестве критерия может выбираться, например, трудоемкость реализации соответствующих методов.
Физические модели данных служат для отображения моделей данных.  Основными понятиями модели данных являются поле,  логическая запись,  логический файл.  Слово  «логический»  введено,  чтобы отличать понятия, относящиеся к логической модели данных, от понятий, относящихся к физической модели данных.
Основными понятиями физической модели данных, используемыми для представления логической модели данных, являются поле, физическая запись,  физический файл.  В частности,  логическая запись, состоящая из полей, может быть представлена в виде физической записи (из тех же полей), логический файл – в виде физического файла.
Концептуальная модель данных может не отражать некоторых деталей модели данных, которые обязаны присутствовать в физической модели.
Физическая модель данных описывает структуры хранения данных с использованием всех особенностей конкретной СУБД. Она непосредственно учитывает такие аспекты, как архитектуру, безопасность, эффективность доступа и другие.
В результате выполнения этой работы формируется модель хранилища данных, включающая в себя следующие артефакты, «ER-модель», «Реляционная модель данных», «Физическая модель данных».
ER-модель - это модель объектов предметной области в их взаимосвязи, и иерархии среди этих объектов.
Физическая модель представляет собой SQL скрипт, позволяющий создать реальную базу данных. В ряде случаев может потребоваться также включить в физическую модель описание дополнительных настроек СУБД, необходимых для реализации БД.
Физическая модель данных содержит следующую информацию:
• описание базы данных, сегментов отката и табличных областей,
• описания файлов и структуры памяти,
• типы индексов,
• описания объектов, связанных с хранилищем данных (физическое размещение, включая сегментацию).
2. Задание «Разработать помехозащищенный код»
44
1. Характеристика CASE-средств моделирования данных (ППП ER Win, ППП Visio)
Современные CASE-средства охватывают обширную область поддержки многочисленных технологий проектирования ИС: от простых средств анализа и документирования до полномасштабных средств автоматизации, покрывающих весь жизненный цикл ПО.
Наиболее трудоемкими этапами разработки ИС являются этапы анализа и проектирования, в процессе которых CASE-средства обеспечивают качество принимаемых технических решений и подготовку проектной документации. При этом большую роль играют методы визуального представления информации. Это предполагает построение структурных или иных диаграмм в реальном масштабе времени, использование многообразной цветовой палитры, сквозную проверку синтаксических правил. Графические средства моделирования предметной области позволяют разработчикам в наглядном виде изучать существующую ИС, перестраивать ее в соответствии с поставленными целями и имеющимися ограничениями.
В разряд CASE-средств попадают как относительно дешевые системы для персональных компьютеров с весьма ограниченными возможностями, так и дорогостоящие системы для неоднородных вычислительных платформ и операционных сред. Так, современный рынок программных средств насчитывает около 300 различных CASE-средств, наиболее мощные из которых так или иначе используются практически всеми ведущими западными фирмами.
Обычно к CASE-средствам относят любое программное средство, автоматизирующее ту или иную совокупность процессов жизненного цикла ПО и обладающее следующими основными характерными особенностями:
• мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности;
• интеграция отдельных компонент CASE-средств, обеспечивающая управляемость процессом разработки ИС;
• использование специальным образом организованного хранилища проектных метаданных (репозитория).
Интегрированное CASE-средство (или комплекс средств, поддерживающих полный ЖЦ ПО) содержит следующие компоненты;
• репозиторий, являющийся основой CASE-средства. Он должен обеспечивать хранение версий проекта и его отдельных компонентов, синхронизацию поступления информации от различных разработчиков при групповой разработке, контроль метаданных на полноту и непротиворечивость;
• графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм (DFD, ERD и др.), образующих модели ИС;
• средства разработки приложений, включая языки 4GL и генераторы кодов;
• средства конфигурационного управления;
• средства документирования;
• средства тестирования;
• средства управления проектом;
• средства реинжиниринга.
Требования к функциям отдельных компонент в виде критериев оценки CASE-средств приведены в разделе 4.2.
Все современные CASE-средства могут быть классифицированы в основном по типам и категориям. Классификация по типам отражает функциональную ориентацию CASE-средств на те или иные процессы ЖЦ. Классификация по категориям определяет степень интегрированности по выполняемым функциям и включает отдельные локальные средства, решающие небольшие автономные задачи (tools), набор частично интегрированных средств, охватывающих большинство этапов жизненного цикла ИС (toolkit) и полностью интегрированные средства, поддерживающие весь ЖЦ ИС и связанные общим репозиторием. Помимо этого, CASE-средства можно классифицировать по следующим признакам:
• применяемым методологиям и моделям систем и БД;
• степени интегрированности с СУБД;
• доступным платформам.
Классификация по типам в основном совпадает с компонентным составом CASE-средств и включает следующие основные типы:
• средства анализа (Upper CASE), предназначенные для построения и анализа моделей предметной области (Design/IDEF (Meta Software), BPwin (Logic Works));
• средства анализа и проектирования (Middle CASE), поддерживающие наиболее распространенные методологии проектирования и использующиеся для создания проектных спецификаций (Vantage Team Builder (Cayenne), Designer/2000 (ORACLE), Silverrun (CSA), PRO-IV (McDonnell Douglas), CASE.Аналитик (МакроПроджект)). Выходом таких средств являются спецификации компонентов и интерфейсов системы, архитектуры системы, алгоритмов и структур данных;
• средства проектирования баз данных, обеспечивающие моделирование данных и генерацию схем баз данных (как правило, на языке SQL) для наиболее распространенных СУБД. К ним относятся ERwin (Logic Works), S-Designor (SDP) и DataBase Designer (ORACLE). Средства проектирования баз данных имеются также в составе CASE-средств Vantage Team Builder, Designer/2000, Silverrun и PRO-IV;
• средства разработки приложений. К ним относятся средства 4GL (Uniface (Compuware), JAM (JYACC), PowerBuilder (Sybase), Developer/2000 (ORACLE), New Era (Informix), SQL Windows (Gupta), Delphi (Borland) и др.) и генераторы кодов, входящие в состав Vantage Team Builder, PRO-IV и частично - в Silverrun;
• средства реинжиниринга, обеспечивающие анализ программных кодов и схем баз данных и формирование на их основе различных моделей и проектных спецификаций. Средства анализа схем БД и формирования ERD входят в состав Vantage Team Builder, PRO-IV, Silverrun, Designer/2000, ERwin и S-Designor. В области анализа программных кодов наибольшее распространение получают объектно-ориентированные CASE-средства, обеспечивающие реинжиниринг программ на языке С++ (Rational Rose (Rational Software), Object Team (Cayenne)).
Вспомогательные типы включают:
• средства планирования и управления проектом (SE Companion, Microsoft Project и др.);
• средства конфигурационного управления (PVCS (Intersolv));
• средства тестирования (Quality Works (Segue Software));
• средства документирования (SoDA (Rational Software)).
На сегодняшний день Российский рынок программного обеспечения располагает следующими наиболее развитыми CASE-средствами:
• Vantage Team Builder (Westmount I-CASE);
• Designer/2000;
• Silverrun;
• ERwin+BPwin;
• S-Designor;
• CASE.Аналитик.


Вы здесь » Мусорка » Ильина » Билеты