Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Диплом К

.pdf
Скачиваний:
14
Добавлен:
23.03.2016
Размер:
1.22 Mб
Скачать

АННОТАЦИЯ............................................................................................................................................

6

1. РЕФЕРАТ ...............................................................................................................................................

7

Ключевые слова. .................................................................................................................................................

7

2. ВВЕДЕНИЕ ............................................................................................................................................

9

3. КОНСТРУКТОРСКАЯ ЧАСТЬ. ......................................................................................................

13

3.1. ИНФОРМАЦИОННЫЕ СИСТЕМЫ. ...........................................................................................................

13

3.1.1. Информация и проблемы ее обработки. ..................................................................................

13

3.1.2. Базы данных и системы управления базами данных. .............................................................

14

3.1.3. Объектные базы данных. ..........................................................................................................

16

3.1.4. Сетевые баз данных...................................................................................................................

17

3.1.5. Системы обработки документов.............................................................................................

19

3.2. АРХИТЕКТУРА КОМПЛЕКСА. ................................................................................................................

20

3.2.1. Отличительные черты..............................................................................................................

20

3.2.2. Модульная диаграмма. ...............................................................................................................

21

3.2.3. Диаграмма процессов. ................................................................................................................

22

3.3. ФАЙЛ ДАННЫХ .....................................................................................................................................

23

3.3.1. Выбор способа реализации ........................................................................................................

23

3.3.1.1. Резервирование по максимуму............................................................................................................

23

3.3.1.2. Непрерывное.........................................................................................................................................

24

3.3.1.3. Сегментация..........................................................................................................................................

25

3.3.2. Структуры данных ....................................................................................................................

27

3.3.2.1. Страница ...............................................................................................................................................

27

3.3.2.2. Нулевая страница .................................................................................................................................

28

3.3.2.3. Запись ....................................................................................................................................................

30

3.3.2.4. Головная страница записи ...................................................................................................................

30

3.3.2.5. Хвостовые страницы записи ...............................................................................................................

31

3.3.2.6. Список свободных страниц .................................................................................................................

31

3.3.3. Иерархия классов ........................................................................................................................

32

3.3.3.1. Класс dsCache .......................................................................................................................................

33

3.3.3.2. Класс dsPage .........................................................................................................................................

33

3.3.3.3. Класс dsRecord......................................................................................................................................

33

3.3.3.4. Класс dsFPL ..........................................................................................................................................

34

3.3.3.5. Класс dsPool..........................................................................................................................................

34

3.3.3.6. Класс dsFile ...........................................................................................................................................

34

3.3.4. Описание реализации..................................................................................................................

35

3.3.4.1. Конструктор создания файла ..............................................................................................................

35

3.3.4.2. Конструктор открытия файла..............................................................................................................

36

3.3.4.3. Добавление записи ...............................................................................................................................

36

3.3.4.4. Чтение записи .......................................................................................................................................

37

3.3.4.5. Изменение записи.................................................................................................................................

38

3.3.4.6. Удаление записи ...................................................................................................................................

38

3.3.5. Заключение ..................................................................................................................................

38

3.4. ФАЙЛ ИНДЕКСОВ..................................................................................................................................

44

3.4.1. Введение ......................................................................................................................................

44

3.4.2. Выбор структуры индекса ........................................................................................................

44

3.4.3. Особенности реализации ...........................................................................................................

45

3.4.4. Структуры данных ....................................................................................................................

46

3.4.4.1. Общая структура дерева ......................................................................................................................

46

3.4.4.2. Базовый блок дерева ............................................................................................................................

47

3.4.4.3. Блок данных..........................................................................................................................................

49

3.4.4.4. Управляющий блок ..............................................................................................................................

50

3.4.5. Иерархия классов ........................................................................................................................

51

3.4.5.1. Класс btBlock ........................................................................................................................................

51

3.4.5.2. Класс btCtrlBlock ..................................................................................................................................

52

3.4.5.3. Класс btResBlock ..................................................................................................................................

52

3.4.5.4. Класс btTreePath ...................................................................................................................................

52

3.4.5.5. Класс btTree ..........................................................................................................................................

53

3.4.5.6. Класс btTreeStack..................................................................................................................................

54

3.4.5.7. Класс btTreeRes ....................................................................................................................................

55

3.4.5.8. Класс btFind ..........................................................................................................................................

55

3.4.5.9. Класс btCatalog .....................................................................................................................................

55

3.4.5.10. Класс btFile .........................................................................................................................................

56

3.4.6. Алгоритмы управления индексом..............................................................................................

56

3.4.6.1. Алгоритм поиска пары ключ–значение..............................................................................................

57

3.4.6.2. Алгоритм добавления пары ключ–значение ......................................................................................

58

3.4.6.3. Алгоритм удаления пары ключ–значение. .........................................................................................

59

3.4.6.4. Алгоритм разбиения индекса. .............................................................................................................

60

3.4.7. Описание реализации..................................................................................................................

61

3.4.7.1. Конструктор создания ВТ–файла .......................................................................................................

62

3.4.7.2. Конструктор открытия ВТ–файла.......................................................................................................

63

3.4.7.3. Добавление дерева в ВТ–файл ............................................................................................................

63

3.4.7.4. Удаление дерева в ВТ–файл................................................................................................................

64

3.4.7.5. Добавление пары ключ–значение .......................................................................................................

65

3.4.7.6. Удаление пары ключ–значение...........................................................................................................

65

3.4.7.7. Поиск ключа на полное совпадение ...................................................................................................

66

3.4.7.8. Поиск по началу ключа........................................................................................................................

66

3.4.7.9. Поиск по интервалу ключей ................................................................................................................

67

3.4.7.10. Поиск уникальных ключа ..................................................................................................................

67

3.4.8. Заключение ..................................................................................................................................

68

3.5. ЗАКЛЮЧЕНИЕ .......................................................................................................................................

74

3.5.1. Возможные области применения. ............................................................................................

75

3.5.2.

Почему разработанная СУБД не является реляционной? ..............................................

76

4. ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ..................................................................................................

77

4.1. ИССЛЕДОВАНИЕ РЕАЛИЗАЦИИ ФАЙЛА ДАННЫХ ..................................................................................

77

4.1.1. Анализ компактности размещения записей переменной длины. ...........................................

77

4.1.2. Время выполнения базовых операций с записями. ...................................................................

81

4.1.3. Влияние кэширования на скорость работы файла данных. ...................................................

82

4.1.4. Влияние сжатия на объем и скорость работы файла данных. ............................................

83

4.2. ИССЛЕДОВАНИЕ РЕАЛИЗАЦИИ ФАЙЛА ИНДЕКСОВ...............................................................................

83

4.2.1. Анализ компактности хранения ключей и значений в индексе. .............................................

83

4.2.2. Анализ времени поиска ключа в индексе. ..................................................................................

89

4.2.3. Расчет ресурсов оперативной памяти. ...................................................................................

92

5. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ.......................................................................................................

93

5.1. ОБЪЕКТ РАССМОТРЕНИЯ ......................................................................................................................

93

5.2. СЛОЖНОСТЬ ПРОГРАММНЫХ СИСТЕМ .................................................................................................

93

5.2.1. Сложность решаемых проблем ................................................................................................

94

5.2.2. Сложность управления процессом разработки......................................................................

94

5.2.3. Гибкость программных систем................................................................................................

94

5.2.4. Сложность описания поведения отдельных подсистем........................................................

95

5.3. АНАЛИЗ СЛОЖНЫХ СИСТЕМ.................................................................................................................

95

5.3.1. Признаки сложных систем .......................................................................................................

95

5.3.2. Общие принципы анализа сложных систем ............................................................................

96

5.4. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ МЕТОДЫ ПРОЕКТИРОВАНИЯ .............................................................

97

5.4.1. Цель и продукт проектирования ..............................................................................................

97

5.4.2. Определение объектного подхода.............................................................................................

98

5.4.3. Компоненты объектно-ориентированного проектирования ................................................

98

5.5. КЛАССЫ И ОБЪЕКТЫ...........................................................................................................................

100

5.5.1. Объект ......................................................................................................................................

100

5.5.2. Отношения между объектами ...............................................................................................

101

5.5.3. Класс ..........................................................................................................................................

103

5.5.4. Отношения меду классами ......................................................................................................

103

5.6. ПРОЦЕСС ПРОЕКТИРОВАНИЯ..............................................................................................................

106

5.6.1. Идентификация классов и объектов ......................................................................................

107

5.6.2. Определение семантики классов и объектов.........................................................................

107

5.6.3. Разработка связей между классами и объектами. ..............................................................

108

5.6.4. Реализация классов и объектов...............................................................................................

108

5.7. ДОСТОИНСТВА И НЕДОСТАТКИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОЕКТИРОВАНИЯ .....................

108

6. ОРГАНИЗАЦИЯ ТРУДА И ЭКОНОМИКА ................................................................................

111

6.1. ПОСТРОЕНИЕ СЕТЕВОГО ГРАФИКА И ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ РАЗРАБОТКИ

 

ПРОГРАММНОГО ПРОДУКТА .................................................................................................................................

111

6.2. АНАЛИЗ СЕТЕВОГО ГРАФИКА .............................................................................................................

113

6.3. ТЭО РАЗРАБАТЫВАЕМОГО ПРОГРАММНОГО ИЗДЕЛИЯ ......................................................................

115

1. Основная заработная плата .........................................................................................................

115

2. Дополнительная заработная плата. ............................................................................................

116

3. Начисления на фонд оплаты труда .............................................................................................

116

4. Оплата работ, выполняемых сторонними организациями........................................................

116

5. Накладные расходы........................................................................................................................

117

6.4. РАСЧЕТ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ТЕМЫ ..........................................................................

117

7. ОХРАНА ТРУДА...............................................................................................................................

128

7.1. ВВЕДЕНИЕ ..........................................................................................................................................

128

7.2. ГРАФИЧЕСКАЯ СРЕДА .........................................................................................................................

130

7.3. МЕНЮ И ИХ ТИПЫ ..............................................................................................................................

132

7.4. ЗАКЛЮЧЕНИЕ .....................................................................................................................................

134

ЛИТЕРАТУРА .......................................................................................................................................

136

АННОТАЦИЯ

Настоящий документ представляет собой пояснительную записку к дипломной работе на тему “Библиотека классов, реализующих файл данных и файл индексов для системы управления сетевой объектной базой данных”.

Рассматриваются основные способы хранения записей переменой длины и органи-

зации индексов для информационных систем, их преимущества и недостатки. Разрабо-

таны методы хранения записей переменной длины в файле данных и новая модифика-

ция индекса на основе В+деревьев с лучшей скоростью поиска. Описываются библио-

теки, реализующие файл данных и файл индексов для системы управления сетевой объ-

ектной базой данных.

Пояснительная записка включает технологическую и организационно-

экономическую части, раздел по охране труда и промышленной безопасности.

1. РЕФЕРАТ

Настоящая документ представляет собой пояснительную записку к дипломной ра-

боте на тему “Разработка библиотеки классов, реализующих файл данных и файл ин-

дексов для системы управления сетевой объектной базой данных”.

Объем пояснительной записки ___ страниц, формул ___, рисунков ___, таблиц

___, источников Ошибка! Закладка не определена..

Ключевые слова.

База данных, Система управления базами данных, Система обработки документов,

В+деревья, Индексирование, Сегментация данных.

Приведено описание существующих типов информационных систем, показаны их преимущества и недостатки при обработке различных типов данных. Указано место разработки в этой классификации. Развиты теоретические основы построения объект-

ных баз данных, не имеющих логической структуры.

Предпринята разработка инструмента для создания систем, объединяющих в себе преимущества СУБД и полнотекстовых баз данных. Кроме этого, инструмент изначаль-

но строится как сетевая среда, строящаяся в соответствии с архитектурой клиент-

сервер, что позволяет создавать распределенные системы обработки информации.

Описаны различные подходы к построению индексов и файлов данных для хране-

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

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

Операции даны с указанием параметров и возвращаемых результатов.

Разработанные на основе проведенных исследований библиотеки содержат классы с набором операций, достаточных для использования в сложных СУБД. Реализованы методы повышения эффективности работы операций библиотеки за счет введения ме-

ханизмов кэширования.

Характеристики созданных программных средств позволяют сделать вывод о по-

вышении качества автоматизации документооборота по сравнению с существующими

подобными системами на базе реляционных СУБД и о существенном повышении каче-

ства текстового поиска по сравнению с традиционными средствами поиска по формаль-

ному запросу из ключевых слов. Наиболее подходящие области применения разработки приведены в заключении.

Исследовательская часть записки содержит теоретический и экспериментальный анализ временных и затратных параметров в зависимости от режимов работы БД, видов входной информации и объемов данных и индексов.

Технологическая часть содержит изложение объектно-ориентированной техноло-

гии разработки программного обеспечения. В данном разделе развиваются теоретиче-

ские основы объектно-ориентированного подхода в применении к созданию сложных программных комплексов, а также приводятся примеры, иллюстрирующие основные понятия теории. Особое внимание уделено методам коллективной работы над одним проектом. Вводятся единая система обозначений и виды документации для обмена ин-

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

Организационно-экономический раздел содержит технико-экономический анализ разработки с расчетом трудоемкости и таблицей для сетевого графика работ.

Часть охраны труда и промышленной безопасности содержит описание основных принципов построения интерфейса прикладных программ с пользователем с учетом требований промышленной экологии и безопасности. Рассматривается стандарт CUA1и

подчеркивается связь этого стандарта с медицинскими рекомендациями по построению диалогов человека с компьютером.

1Common User Access - стандарт построения пользовательских интерфейсов для прикладных про-

грамм. Разработан фирмой IBM.

2. ВВЕДЕНИЕ

Сейчас никто не будет спорить с тезисом о повсеместном распространении вычис-

лительной техники. Естественно, что чем больше людей начинает взаимодействовать с компьютерами, тем более широкий ассортимент программных средств требуется для удовлетворения их потребностей. Можно утверждать, что не существует отрасли народного хозяйства, где бы не использовалась вычислительная техника [1].

Если сравнить сферы наиболее интенсивного применения вычислительной техни-

ки на заре ее появления и сегодня, то видно явную тенденцию к смещению от выполне-

ния вычислительных задач к задачам обработки информации. Под информацией пони-

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

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

ривается далее.

Информация является очень широким и абстрактным термином. Под информаци-

ей обычно понимают совокупность данных, обрабатываемых программной системой.

Под обработкой информации понимается хранение ее в памяти компьютеров, поиск,

передача на другие узлы вычислительной сети, вывод на принтер и т. п. Основными ви-

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

пьютерной обработке. Они сохраняют свое приоритетное положение и по настоящее время.

Ядром всех программных систем обработки информации являются базы данных1 и

системы управления2 ими. Подробно понятия БД и СУБД будут раскрыты в первом раз-

деле расчетно-пояснительной записки к дипломной работе, а пока ограничимся только вводом этих терминов. Существует много типов СУБД, классифицируемых по различ-

ным категориям, например, по типу доступа к БД, типу организации информации в БД,

1Далее по тексту БД

2Далее по тексту СУБД.

по типу поддерживаемых платформ и т.д. Однако, в подавляющем своем большинстве,

СУБД ориентированы на обработку числовых и символьных данных и практически не приспособлены для полноценной обработки текстовой информации. Только в недавнее время в них появились средства хранения и примитивного поиска текстов переменной длины1.

И раньше и сейчас существует реальная потребность в решении задач полноцен-

ной обработки текстовой информации. В настоящее время доля таких задач составляет не менее 15% и имеет тенденцию к росту. Потребителями выступают государственные структуры и крупные частные корпорации. Таким образом актуальность проблемы оче-

видна. В силу названных недостатков СУБД, для решения задач обработки текстов тра-

диционно применялись специализированные программы, выделяемые в класс так назы-

ваемых полнотекстовых баз данных. Однако, они не учитывают специфику естествен-

ных языков, заключающуюся в их неоднозначности и структурной избыточности, не имеют средств учета фактографических реквизитов текстовых документов, а в ряде за-

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

ции текстовых данных с графическими изображениями и звуком. Проблемы совмеще-

ния остаются нерешенными до сих пор, несмотря на потребность в подобных про-

граммных комплексах.

В настоящей работе предпринята разработка инструмента для создания систем,

объединяющих в себе преимущества СУБД и полнотекстовых баз данных. Кроме этого,

инструмент изначально строится как сетевая среда в соответствии с архитектурой кли-

ент-сервер, что позволяет создавать распределенные системы обработки информации.

Цель работы – создание платформы разработки прикладных программ, предна-

значенных для автоматизации обработки документов с разнородной информацией и ди-

намической структурой2. Смысл применения этих программ – повышение производи-

тельности труда в делопроизводстве.

Большинство реальных документов имеют в своем составе разнородную инфор-

мацию: фактографическую, текстовую, табличную, графические образы, звуковые ме-

1Например, поля BLOB (binary large object) в СУБД Interbase и поля MEMO в dBase III.

2В западной компьютерной прессе уже введен специальный термин - Compound Documents.

лодии , поэтому возникла насущная потребность в программных системах, свободно оперирующих с такими документами. В настоящий момент чрезвычайно активно раз-

виваются средства интеграции разнородной информации в единых документах – multimedia. Это направление также требует СУБД, способных хранить разнообразные данные в одной БД. В компьютерной прессе введена отдельная категория классифика-

ции для программных продуктов этого типа – системы обработки документов (СОД).

Естественно, что разные предметные области используют различные форматы до-

кументов, производят различные операции, имеют различные режимы работы. Для удо-

влетворения различных требований разных пользователей было решено делать не кон-

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

лей только средствами адаптации программного продукта.

Такой инструмент был создан в ходе дипломного проектирования. Его ядро со-

держит: базу данных объектов, систему управления базой данных и набор средств для организации различных документов пользователей. Прикладному программисту предо-

ставлен обширный API1, с помощью которого он разрабатывает приложение для кон-

кретной проблемной области. Подробное описание разработки в целом приведено в первом разделе конструкторской части.

Среди аналогов, на текущий момент, можно назвать Lotus Notes и OS Pick.

Lotus Notes2 – программная платформа для разработки систем автоматизации до-

кументооборота. Сейчас есть версии этого продукта для четырех различных платформ:

Windows, OS/2, UNIX и Mac OS, причем наблюдается резкое возрастание числа при-

кладных программ, разработанных и разрабатываемых в настоящий момент на его ос-

нове. Естественно, что Lotus Notes имеет гораздо более богатый набор сервисных функ-

ций и в данной работе не ставилась задача создать программынй продукт такого же вы-

сокого класса.

1Application Programmer Interface - интерфейс прикладного программиста, представляющий собой множество функций, реализованных в поставляемых инструментальных средствах.

2Первая версия выпущена фирмой Lotus Development Corp. в 1990 году.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]