РефератыВоенная кафедраСиСистема управления базой данных объектов гражданской обороны для принятия решений в чрезвычайной ситуации (Диплом)

Система управления базой данных объектов гражданской обороны для принятия решений в чрезвычайной ситуации (Диплом)


Государственный
Комитет Российской
Федерации по



высшему
образованию



Московский
Государственный
Институт
Радиотехники,
Электроники
и Автоматики
(Технический
Университет)


Факультет
ВМС



Кафедра
Кибернетики



Шифр АВ-4-92156


Дипломный
Проект


Тема: Система
управления
базой данных
объектов Гражданской
Обороны для
принятия решений
в чрезвычайных
ситуациях.


Исполнитель:
Сафронов С.
О.


Руководитель
проекта: Мошкин
В. В.


Консультант
по спец. части:
Юсупов Э. И.


Консультант
по организационно-



экономической
части: Забродина
М. В.


Консультант
по технике



безопасности:
Ахобадзе Г.И.


Консультант
по гражданской



обороне:
к.т.н. Манукалов
В.В.


Консультант
по эргономике:
Пименов А.И.


Рецензент:


«Допущен
к защите»



Зав. Кафедрой:


МОСКВА - 1998 г.

ЗАДАНИЕ
РЕФЕРАТ


Темой
разработанного
дипломного
проекта является
"Система управления
базой данных
объектов Гражданской
Обороны для
принятия решений
в чрезвычайных
ситуациях".



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



Дипломный
проект содержит
_____ страниц текста,
____ рисунков и
____ таблиц. Приложения
занимают ____
страниц. Список
литературы
содержит ____
наименований.



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



Данная
программа
позволяет
полностью
автоматизировать
существующую
систему сбора
и хранения
информации.
Заменяет книги
учёта объектов
Гражданской
Обороны и облегчает
корректировку
и поиск любой
необходимой
информации.

ОГЛАВЛЕНИЕ


ЗАДАНИЕ 3



РЕФЕРАТ 3



ОГЛАВЛЕНИЕ
5



СОКРАЩЕНИЯ 8



1. ВВЕДЕНИЕ 9



2. ВЫБОР ОПЕРАЦИОННОЙ
СИСТЕМЫ 11



2.1. Определение
операционной
системы 11



2.2. ОС как система
управления
ресурсами 12



2.3. Классификация
ОС 13



2.3.1. Особенности
алгоритмов
управления
ресурсами 13



2.3.1.1. Поддержка
многозадачности. 13



2.3.1.2. Поддержка
многопользовательского
режима. 14



2.3.1.3. Вытесняющая
и невытесняющая
многозадачность
14



2.3.1.4. Поддержка
многонитевости 15



2.3.1.5. Многопроцессорная
обработка 15



2.3.1.6. Поддержка
сети 16



2.3.2. Особенности
аппаратных
платформ 16



2.3.3. Особенности
областей
использования 18



2.3.3.1. Системы
пакетной обработки
18



2.3.3.2. Системы
разделения
времени 19



2.3.3.3. Системы
реального
времени 20



2.4.Обзор сетевых
операционных
систем 21



2.5. Выбор операционной
системы 23



3. ВЫБОР БАЗЫ
ДАННЫХ 28



3.1. Определение
СУБД 28



3.2. Основные
функции СУБД 28



3.2.1. Непосредственное
управление
данными во
внешней памяти 29



3.2.2. Управление
буферами оперативной
памяти 29



3.2.3. Управление
транзакциями 29



3.2.4. Журнализация 31



3.2.5. Поддержка
языков БД 33



3.3. Варианты
построения
информационных
приложений
с использованием
СУБД 35



3.3.1. Централизованные
многотерминальные
системы 37



3.3.2. Файл-серверные
приложения 38



3.3.3.Приложения
клиент-сервер 39



4. ВЫБОР ЯЗЫКА
ПРОГРАММИРОВАНИЯ 42



4.1.Традиционные
системы программирования
43



4.2. Инструменты
для создания
файл-серверных
приложений 44



4.3. Средства
разработки
приложений
клиент-сервер 46



4.3.1. Среды разработки
приложений
для серверов
баз данных 46



4.3.2. Средства
поддержки
распределенных
информационных
приложений 48



5. ВЫВОДЫ ПО
ВЫБОРУ ОПЕРАЦИОННОЙ
СИСТЕМЫ, ЯЗЫКА
ПРОГРАММИРОВАНИЯ
И БАЗЫ ДАННЫХ 52



6. СТРУКТУРА
И ОСНОВНЫЕ
ЗАДАЧИ УПРАВЛЕНИЯ
ПО ДЕЛАМ ГРАЖДАНСКОЙ
ОБОРОНЫ И
ЧРЕЗВЫЧАЙНЫМ
СИТУАЦИЯМ 56



6.1. Определение
ГО 56



6.2. Основные
задачи ГО 56



6.3. Схема управления
по делам ГО и
ЧС 57



7. РАЗРАБОТКА
ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
ДЛЯ СИСТЕМЫ
УПРАВЛЕНИЯ
БАЗОЙ ДАННЫХ
ОБЪЕКТОВ ГО.
58



7.1. Назначение
и цели создания
программного
продукта 58



7.2. Решаемые
задачи 59



7.3. Определение
необходимых
таблиц базы
данных 59



7.4. Нормализация
базы данных 62



7.4.1. Первая
нормальная
форма 63



7.4.2. Вторая
нормальная
форма 63



7.4.3. Третья
нормальная
форма 63



7.4.4. Четвертая
нормальная
форма 64



7.4.5. Пятая нормальная
форма 64



7.5. Определение
столбцов в
таблицах 64



7.6. Создание
SQL сценария 80



7.6.1. Создание
базы данных 80



7.6.2. Создание
таблиц 81



7.6.3. Создание
индексов 81



7.6.4. Определение
первичных
ключей 81



7.6.5. Определение
вторичных
ключей 82



7.6.6. Создание
триггеров 82



7.6.7. Создание
последовательностей 82



7.7.Выбор типа
создаваемого
приложения 83



7.8. Соглашение
о название
компонентов
в программе
GOBASE 83



7.9. Структура
главного меню 85



7.9.1. Меню «Файлы» 86



7.9.2. Меню «Таблицы» 87



7.9.3. Меню «Отчеты» 88



7.9.4. Меню «Помощь» 88



7.10. Проектирование
иерархий форм
и отчетов 88



7.11. Иерархия
форм программы 89



7.12. Основные
органы управления
форм программы
GOBase 90



7.13. Основные
формы программы 92



7.13.1. Форма ввода
объектов
экономики 92



7.13.2. Форма ввода
учащихся в
УМЦ 93



7.13.3. Форма отчетов
(управления) 96



7.14. Экспорт
в Excel 98



7.15. Требования
к аппаратуре
и программным
средствам 99



7.16. Установка
программы 100



8. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЙ
РАЗДЕЛ 100



8.1. Введение 100



8.2. Описание
программы 102



8.3. Последовательность
выполнения
работ 102



8.4. Оценка
издержек на
разработку
программы. 109



8.4.1. Статья I.
Оплата труда 110



8.4.2. Статья II.
Материальные
ресурсы 112



8.4.3. Статья III.
Отчисления
на социальные
нужды 113



8.4.4. Статья IV.
Накладные
расходы 113



8.5. Цена программного
продукта 114



8.6. Анализ
эффективности
внедрения
программы 114



9. МЕРОПРИЯТИЯ,
ОБЕСПЕЧИВАЮЩИЕ
ОПТИМАЛЬНЫЕ
УСЛОВИЯ ТРУДА
ПОЛЬЗОВАТЕЛЯ
НА РАБОЧЕМ
МЕСТЕ 117



9.1. Специфика
дипломного
проекта 117



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



9.3.1. Работа с
монитором 118



9.3.2. Кресло 118



9.3.3. Клавиатура 119



9.3.4. Эффекты
отражения и
рабочий стол. 119



9.3.5. Оригиналодержатель 119



9.3.6. Шумы 119



9.3.7. Выделение
избытков теплоты 120



9.4. Анализ
категории
тяжести труда
инженера-программиста. 120



9.5. Анализ
освещения на
рабочем месте
программиста. 126



10. ПРИМЕНЕНИЕ
ЭВМ ДЛЯ ПОВЫШЕНИЯ
ЭФФЕКТИВНОСТИ
РАБОТЫ ШТАБА
ГО 131



10.1. Задачи
гражданской
обороны. 131



10.2. Основной
расчет поражающих
факторов ядерного
взрыва 132



10.2.1. Исходные
данные: 132



10.2.2. Выходные
данные: 133



10.3. Текст программы 133



10.4. Проврка
работоспособности 134



10.5. Выводы: 135



11. ЭРГОНОМИЧЕСКАЯ
ОЦЕНКА ИНФОРМАЦИОННОГО
ОБЕСПЕЧЕНИЯ
ЭВМ 135



11.1. Введение 135



11.2. Проектирование
форм 136



11.3. Формы выдачи
решений 139



11.4. Интерактивные
формы. 140



11.5.Формы ввода
данных. 142



11.6. Проектирование
отчетов. 143



12. ВЫВОДЫ 145



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



ПРИЛОЖЕНИЕ
1 149



П.1. ТЕХНИЧЕСКОЕ
ЗАДАНИЕ 149



П.1.1 Общие
сведения 149



П.1.2. Постановка
задачи 149



П.1.3. Основания
для разработки 149



П.1.4. Назначение
и цели создания
программного
продукта 150



П.1.5. Требования
к программе 151



П.1.6. Состав
и содержание
работ по созданию
программы 151



П.1.7. Входная
информация 152



П.1.8. Выходная
информация 153



П.1.9. Порядок
контроля и
приемки программы 153



П.1.10. Требования
к составу и
содержанию
работ по установке
программы на
рабочем месте
оператора 153



П.1.11. Требования
к документированию 154



П.1.12. Источники
разработки 154



ПРИЛОЖЕНИЕ
2 154



ПРИЛОЖЕНИЕ
3 157



ПРИЛОЖЕНИЕ
4 158


СОКРАЩЕНИЯ




























































































































































BL (Business or Application
Logic)
Прикладная
логика
DL (Data Logic Логика
управления
данными
DS (Data Services) Операции
с БД
FK


Foreign
Key (вторичный
ключ)


FS (File Services) Файловые
операции
ID идентификатор

ODBC



Open
DataBase Connectivity


PK


Primary
Key (первичный
ключ)


PL (Presentation Logic) Логика
представлений
PS (Presentation Services) средства
представления.
RAD (Rapid Application
Development)
Средства
быстрой разработки
приложений
АС Автоматизированная
система
АСУ


Автоматизированная
система управления


БД База
данных
ВТ Вычислительная
техника
ГО Гражданская
Оборона
ДП Дипломный
проект
КЧС Комиссия
по ЧС
МТС Материально-технические
средства
ОП Оперативная
память
ОП Особый
период
ОС Операционная
система
ОТ Охрана
труда
ПК Персональный
компьютер
ПО Программное
обеспечение
ПП Прикладная
программа
ППП Пакет
ПП
ПУФ


Повышение
устойчивости
функционирования


ПЭВМ Персональная
ЭВМ
РФ Российская
Федерация
РФ Российская
Федерация
СУБД Система
управления
базами данных
ТЗ Техническое
задание
ТП Техническое
предложение
УМЦ Учебно-методический
центр
ЦП Центральный
процессор
ЧС Чрезвычайные
ситуации
ЭВМ Электронно-вычислительная
машина
ЭЛТ Электронно-лучевая
трубка
1. ВВЕДЕНИЕ


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



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



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



Как свидетельствует
анализ статистических
данных большая
часть ЧС возникает
в РФ в регионах
с высокой
концентрацией
предприятий
угольной, химической,
нефтяной и
газовой промышленности,
с разветвленной
сетью автомобильных
и железных
дорог, а также
в крупных городах.
В основном это
ЧС техногенного
характера
(свыше 70% от общего
числа) [1]. (См. ПРИЛОЖЕНИЕ
2)



Для решения
задач предотвращения
и ликвидации
ЧС, снижения
возможных
потерь населения
и ущерба экономике
в случае их
возникновения
в РФ создана
и действует
единая государственная
система предупреждения
и ликвидации
ЧС. В соответствии
с законом “О
защите населения
и территорий
от ЧС природного
и технического
характера”
в стране функционирует
единая государственная
система предупреждения
и ликвидации
ЧС, которая
располагает
органами управления,
силами, техническими
средствами
и другими
материальными
ресурсами для
того чтобы
защитить население
и национальное
достояние от
воздействий
аварий, катастроф,
экологических
и стихийных
бедствий или
уменьшить их
воздействия.



Основной
целью создания
этой системы
является объединение
усилий центральных
органов исполнительной
власти, органов
представительной
и исполнительной
власти республик
в составе РФ,
краев, областей,
городов и районов,
а также организаций,
учреждений
и предприятий,
их сил средств
в деле предупреждения
и ликвидации
ЧС.



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



К сожалению,
на сегодняшний
момент не существует
единой базы
данных объектов
ГО, даже для
такого крупного
города как
Москва. Существующее
хранение информации
только с использованием
картотек становится
не приемлемым
в складывающейся
ситуации.



В данной
дипломной
работе разработана
программа по
управлению
базой данных
объектов экономики,
с помощью которой
можно оперативно
собрать все
необходимые
данные (о находящейся
в распоряжении
техники, защитных
сооружений,
близ находящиеся
объектах и
другой информации)
об объектах
экономики
округа или
города в чрезвычайной
ситуации при
планировании
и организации
спасательных
и других неотложных
работ и тем
самым сократить
время на сбор
информации,
которая так
необходима
в первые минуты
ЧС, когда каждая
минута промедления
может стоить
жизни людей. Результатом
дипломного
проектирования
является
разработанная
база данных
по объектам
экономики,
объектам гражданской
обороны и учащихся
в учебно-методическом
центре. А так
же программа
по управлению
базой данных,
которая позволяет
производить
различные
действия:
введение,
корректировку
данных, построение
отчетов и составление
различной
статистической
информации.

2.
ВЫБОР ОПЕРАЦИОННОЙ
СИСТЕМЫ
2.1. Определение
операционной
системы


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


2.2. ОС
как система
управления
ресурсами


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



планирование
ресурса - то
есть определение,
кому, когда, а
для делимых
ресурсов и в
каком количестве,
необходимо
выделить данный
ресурс;



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



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



Так, например,
алгоритм управления
процессором
в значительной
степени определяет,
является ли
ОС системой
разделения
времени, системой
пакетной обработки
или системой
реального
времени.


2.3. Классификация
ОС


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



Ниже приведена
классификация
ОС по нескольким
наиболее основным
признакам.


2.3.1. Особенности
алгоритмов
управления
ресурсами


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


2.3.1.1. Поддержка
многозадачности.


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



однозадачные
(например, MS-DOS,
MSX)



многозадачные
(OC EC, OS/2, UNIX, Windows 95/NT).



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



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


2.3.1.2. Поддержка
многопользовательского
режима.


По числу
одновременно
работающих
пользователей
ОС делятся на:



однопользовательские
(MS-DOS, Windows 3.x, ранние
версии OS/2);



многопользовательские
(UNIX, Windows NT).



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


2.3.1.3. Вытесняющая
и невытесняющая
многозадачность


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



невытесняющая
многозадачность
(NetWare, Windows 3.x);



вытесняющая
многозадачность
(Windows NT, OS/2, UNIX).



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

2.3.1.4. Поддержка
многонитевости


Важным
свойством
операционных
систем является
возможность
распараллеливания
вычислений
в рамках одной
задачи. Многонитевая
ОС разделяет
процессорное
время не между
задачами, а
между их отдельными
ветвями (нитями).


2.3.1.5. Многопроцессорная
обработка


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



В наши дни
становится
общепринятым
введение в ОС
функций поддержки
многопроцессорной
обработки
данных. Такие
функции имеются
в операционных
системах Solaris 2.x
фирмы Sun, Open Server 3.x компании
Santa Crus Operations, OS/2 фирмы IBM,
Windows NT фирмы Microsoft и
NetWare 4.1 фирмы Novell.



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


2.3.1.6. Поддержка
сети


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



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


2.3.2. Особенности
аппаратных
платформ


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



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



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



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



Другие
требования
предъявляются
к операционным
системам кластеров.
Кластер - слабо
связанная
совокупность
нескольких
вычислительных
систем, работающих
совместно для
выполнения
общих приложений,
и представляющихся
пользователю
единой системой.
Наряду со специальной
аппаратурой
для функционирования
кластерных
систем необходима
и программная
поддержка со
стороны операционной
системы, которая
сводится в
основном к
синхронизации
доступа к разделяемым
ресурсам, обнаружению
отказов и
динамической
реконфигурации
системы. Одной
из первых разработок
в области кластерных
технологий
были решения
компании Digital
Equipment на базе компьютеров
VAX. Недавно этой
компанией
заключено
соглашение
с корпорацией
Microsoft о разработке
кластерной
технологии,
использующей
Windows NT. Несколько
компаний предлагают
кластеры на
основе UNIX-машин.



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


2.3.3. Особенности
областей
использования


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



системы
пакетной обработки
(например, OC EC),



системы
разделения
времени (UNIX, VMS),



системы
реального
времени (QNX, RT/11).


2.3.3.1. Системы
пакетной обработки


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


2.3.3.2.
Системы разделения
времени


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

2.3.3.3. Системы
реального
времени


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



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


2.4.Обзор
сетевых операционных
систем


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



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



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



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



совместимостью
с другими
продуктами,
то есть способностью
работать в
сложной гетерогенной
среде интерсети
в режиме plug-and-play.



Корпоративная
сетевая ОС
должна поддерживать
более сложные
сервисы. Подобно
сетевой ОС
рабочих групп,
сетевая ОС
масштаба предприятия
должна позволять
пользователям
разделять
файлы, приложения
и принтеры,
причем делать
это для большего
количества
пользователей
и объема данных
и с более высокой
производительностью.
Кроме того,
сетевая ОС
масштаба предприятия
обеспечивает
возможность
соединения
разнородных
систем - как
рабочих станций,
так и серверов.
Например, даже
если ОС работает
на платформе
Intel, она должна
поддерживать
рабочие станции
UNIX, работающие
на RISC-платформах.
Аналогично,
серверная ОС,
работающая
на RISC-компьютере,
должна поддерживать
DOS, Windows и OS/2. Сетевая
ОС масштаба
предприятия
должна поддерживать
несколько
стеков протоколов
(таких как TCP/IP,
IPX/SPX, NetBIOS, DECnet и OSI), обеспечивая
простой доступ
к удаленным
ресурсам, удобные
процедуры
управления
сервисами,
включая агентов
для систем
управления
сетью.



Важным
элементом
сетевой ОС
масштаба предприятия
является
централизованная
справочная
служба, в которой
хранятся данные
о пользователях
и разделяемых
ресурсах сети.
Такая служба,
называемая
также службой
каталогов,
обеспечивает
единый логический
вход пользователя
в сеть и предоставляет
ему удобные
средства просмотра
всех доступных
ему ресурсов.
Администратор,
при наличии
в сети централизованной
справочной
службы, избавлен
от необходимости
заводить на
каждом сервере
повторяющийся
список пользователей,
а значит избавлен
от большого
количества
рутинной работы
и от потенциальных
ошибок при
определении
состава пользователей
и их прав на
каждом сервере.



Важным
свойством
справочной
службы является
ее масштабируемость,
обеспечиваемая
распределенностью
базы данных
о пользователях
и ресурсах.



Такие сетевые
ОС, как Banyan Vines, Novell NetWare
4.x, IBM LAN Server, Sun NFS, Microsoft LAN Manager и Windows
NT Server, могут служить
в качестве
операционной
системы предприятия,
в то время как
ОС NetWare 3.x, Personal Ware, Artisoft LANtastic больше
подходят для
небольших
рабочих групп.


2.5. Выбор
операционной
системы


Критериями
для выбора ОС
масштаба предприятия
являются следующие
характеристики:



Органичная
поддержка
многосерверной
сети;



Высокая
эффективность
файловых операций;



Возможность
эффективной
интеграции
с другими ОС;



Наличие
централизованной
масштабируемой
справочной
службы;



Хорошие
перспективы
развития;



Эффективная
работа удаленных
пользователей;



Разнообразные
сервисы: файл-сервис,
принт-сервис,
безопасность
данных и
отказоустойчивость,
архивирование
данных, служба
обмена сообщениями,
разнообразные
базы данных
и другие;



Разнообразные
программно-аппаратные
хост-платформы:
IBM SNA, DEC NSA, UNIX;



Разнообразные
транспортные
протоколы:
TCP/IP, IPX/SPX, NetBIOS, AppleTalk;



Поддержка
многообразных
операционных
систем конечных
пользователей:
DOS, UNIX, OS/2, Mac;



Поддержка
сетевого
оборудования
стандартов
Ethernet, Token Ring, FDDI, ARCnet;



Наличие
популярных
прикладных
интерфейсов
и механизмов
вызова удаленных
процедур RPC;



Возможность
взаимодействия
с системой
контроля и
управления
сетью, поддержка
стандартов
управления
сетью SNMP.



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


Таблица.
2.1.
Основные
характеристики
сетевых ОС




















Novell



NetWare 4.1




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



Ограниченные
средства для
использования
в качестве
сервера приложений:
не имеет средств
виртуальной
памяти и вытесняющей
многозадачности,
а поддержка
симметричного
мультипроцесcирования
отсутствовала
до самого
недавнего
времени. Отсутствуют
API основных
операционных
сред, используемых
для разработки
приложений,
- UNIX, Windows, OS/2



Серверные
платформы:
компьютеры
на основе
процессоров
Intel, рабочие станции
RS/6000 компании
IBM под управлением
операционной
системы AIX с
помощью продукта
NetWare for UNIX



Поставляется
с оболочкой
для клиентов:
DOS, Macintosh, OS/2, UNIX, Windows (оболочка
для Windows NT разрабатывается
компанией
Novell в настоящее
время, хотя
Microsoft уже реализовала
клиентскую
часть NetWare в Windows NT)



Организация
одноранговых
связей возможна
с помощью ОС
PersonalWare



Имеет
справочную
службу NetWare Directory
Services (NDS), поддерживающую
централизованное
управление,
распределенную,
полностью
реплицируемую,
автоматически
синхронизируемую
и обладающую
отличной
масштабируемостью



Поставляется
с мощной службой
обработки
сообщений
Message Handling Service (MHS), полностью
интегрированную
(начиная с версии
4.1) со справочной
службой



Поддерживаемые
сетевые протоколы:
TCP/IP, IPX/SPX, NetBIOS, Appletalk



Поддержка
удаленных
пользователей:
ISDN, коммутируемые
телефонные
линии, frame relay, X.25 - с
помощью продукта
NetWare Connect (поставляется
отдельно)



Безопасность:
аутентификация
с помощью открытых
ключей метода
шифрования
RSA; сертифицирована
по уровню C2



Хороший
сервер коммуникаций



Встроенная
функция компрессии
диска



Сложное
обслуживание




Banyan



VINES 6.0 и ENS



(Enterprise



Network



Services) 6.0




Серверные
платформы:



ENS for UNIX: работает
на RISC-компьютерах
под управлением
SCO UNIX, HP-UX, Solaris, AIX ENS for NetWare: работает
на Intel-платформах
под управлением
NetWare 2.x, 3.x, 4.x



VINES работает
на Intel-платформах



Клиентские
платформы:
DOS, Macintosh, OS/2, UNIX, Windows for Workgroups, Windows NT



Хороший
сервер приложений:
поддерживаются
вытесняющая
многозадачность,
виртуальная
память и симметричное
мультипроцессирование
в версии VINES и в
ENS-версиях для
UNIX. Поддерживаются
прикладные
среды UNIX, OS/2, Windows



Поддержка
одноранговых
связей - отсутствует



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



Согласованность
работы с другими
сетевыми ОС:
хорошая; серверная
оболочка работает
в средах NetWare и
UNIX; пользователи
NetWare, Windows NT и LAN Server могут
быть объектами
справочной
службы Streettalk III



Служба
сообщений -
Intelligent Messaging, интегрирована
с другими службами



Поддерживаемые
сетевые протоколы:
VINES IP, TCP/IP, IPX/SPX, Appletalk



Поддержка
удаленных
пользователей:
ISDN, коммутируемые
телефонные
линии, X.25



Служба
безопасности:
поддерживает
электронную
подпись (собственный
алгоритм),
избирательные
права доступа,
шифрацию; не
сертифицирована



Простое
обслуживание



Хорошо
масштабируется



Отличная
производительность
обмена данными
между серверами,
хуже - при обмене
сервер-ПК




Microsoft



Windows NT Server



3.51 и 4.0




Серверные
платформы:
компьютеры
на базе процессоров
Intel,



PowerPC, DEC Alpha, MIPS



Клиентские
платформы:
DOS, OS/2, Windows, Windows for Workgroups, Macintosh



Организация
одноранговой
сети возможна
с помощью Windows
NT Workstation и Windows for Workgroups



Windows NT Server представляет
собой отличный
сервер приложений:
он поддерживает
вытесняющую
многозадачность,
виртуальную
память и симметричное
мультипроцессирование,
а также прикладные
среды DOS, Windows, OS/2, POSIX



Справочные
службы: доменная
для управления
учетной информацией
пользователей
(Windows NT Domain Directory service), справочные
службы имен
WINS и DNS



Хорошая
поддержка
совместной
работы с сетями
NetWare: поставляется
клиентская
часть (редиректор)
для сервера
NetWare (версий 3.х и
4.х в режиме
эмуляции 3.х,
справочная
служба NDS поддерживается,
начиная с версии
4.0), выполненная
в виде шлюза
в Windows NT Server или как
отдельная
компонента
для Windows NT Workstation; недавно
Microsoft объявила
о выпуске
серверной
части NetWare как
оболочки для
Windows NT Server



Служба обработки
сообщений -
Microsoft Mail



NT - Microsoft Message Exchange, интегрированная
с остальными
службами Windows
NT Server



Поддерживаемые
сетевые протоколы:
TCP/IP, IPX/SPX, NetBEUI, Appletalk



Поддержка
удаленных
пользователей:
ISDN, коммутируемые
телефонные
линии, frame relay, X.25 - с
помощью встроенной
подсистемы
Remote Access Server (RAS)



Служба
безопасности:
мощная, использует
избирательные
права доступа
и доверительные
отношения
между доменами;
узлы сети,
основанные
на Windows NT Server, сертифицированы
по уровню C2



Простота
установки и
обслуживания



Отличная
масштабируемость


IBM LAN Server 4.0


Серверные
платформы:
операционные
системы MVS и VM
для мейнфреймов;
AS/400 с OS/400, рабочие
станции RS/6000 с
AIX, серверы Intel 486
или Pentium под OS/2



Поставляется
с оболочками
для клиентов:
DOS, Macintosh, OS/2, Windows, Windows NT, Windows for Workgroups



Серверы
приложений
могут быть
организованы
с помощью LAN
Server 4.0 в операционных
средах MVS, VM, AIX, OS/2,
OS/400. В среде OS/2
поддерживаются:
вытесняющая
многозадачность,
виртуальная
память и симметричное
мультипроцессирование



Организация
одноранговых
связей возможна
с помощью ОС
Warp Connect



Справочная
служба - LAN Server Domain, то
есть основа
на доменном
подходе



Поддерживаемые
сетевые протоколы:
TCP/IP, NetBIOS, Appletalk



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



Служба обработки
сообщений -
отсутствует



Высокая
производительность



Недостаточная
масштабируемость


3.
ВЫБОР БАЗЫ
ДАННЫХ
3.1. Определение
СУБД


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



поддержание
логически
согласованного
набора файлов;



обеспечение
языка манипулирования
данными;



восстановление
информации
после разного
рода сбоев;



реально
параллельная
работа нескольких
пользователей.



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


3.2. Основные
функции СУБД


Более точно,
к числу функций
СУБД принято
относить следующие:

3.2.1. Непосредственное
управление
данными во
внешней памяти


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


3.2.2. Управление
буферами оперативной
памяти


СУБД обычно
работают с БД
значительного
размера; по
крайней мере
этот размер
обычно существенно
больше доступного
объема оперативной
памяти. Понятно,
что если при
обращении к
любому элементу
данных будет
производиться
обмен с внешней
памятью, то вся
система будет
работать со
скоростью
устройства
внешней памяти.
Практически
единственным
способом реального
увеличения
этой скорости
является буферизация
данных в оперативной
памяти. При
этом, даже если
операционная
система производит
общесистемную
буферизацию
(как в случае
ОС UNIX), этого
недостаточно
для целей СУБД,
которая располагает
гораздо большей
информацией
о полезности
буферизации
той или иной
части БД. Поэтому
в развитых СУБД
поддерживается
собственный
набор буферов
оперативной
памяти с собственной
дисциплиной
замены буферов.


3.2.3. Управление
транзакциями


Транзакция
- это последовательность
операций над
БД, рассматриваемых
СУБД как единое
целое. Либо
транзакция
успешно выполняется,
и СУБД фиксирует
(COMMIT) изменения
БД, произведенные
этой транзакцией,
во внешней
памяти, либо
ни одно из этих
изменений никак
не отражается
на состоянии
БД. Понятие
транзакции
необходимо
для поддержания
логической
целостности
БД. Таким образом,
поддержание
механизма
транзакций
является обязательным
условием даже
однопользовательских
СУБД (если, конечно,
такая система
заслуживает
названия СУБД).
Но понятие
транзакции
гораздо более
важно в многопользовательских
СУБД.



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



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



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


3.2.4. Журнализация


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



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



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



Во всех
случаях придерживаются
стратегии
"упреждающей"
записи в журнал
(так называемого
протокола Write
Ahead Log - WAL). Грубо говоря,
эта стратегия
заключается
в том, что запись
об изменении
любого объекта
БД должна попасть
во внешнюю
память журнала
раньше, чем
измененный
объект попадет
во внешнюю
память основной
части БД. Известно,
что если в СУБД
корректно
соблюдается
протокол WAL, то
с помощью журнала
можно решить
все проблемы
восстановления
БД после любого
сбоя.



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



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



Для восстановления
БД после жесткого
сбоя используют
журнал и архивную
копию БД. Грубо
говоря, архивная
копия - это полная
копия БД к моменту
начала заполнения
журнала (имеется
много вариантов
более гибкой
трактовки
смысла архивной
копии). Конечно,
для нормального
восстановления
БД после жесткого
сбоя необходимо,
чтобы журнал
не пропал. Как
уже отмечалось,
к сохранности
журнала во
внешней памяти
в СУБД предъявляются
особо повышенные
требования.
Тогда восстановление
БД состоит в
том, что исходя
из архивной
копии по журналу
воспроизводится
работа всех
транзакций,
которые закончились
к моменту сбоя.
В принципе,
можно даже
воспроизвести
работу незавершенных
транзакций
и продолжить
их работу после
завершения
восстановления.
Однако в реальных
системах это
обычно не делается,
поскольку
процесс восстановления
после жесткого
сбоя является
достаточно
длительным.


3.2.5. Поддержка
языков БД


Для работы
с базами данных
используются
специальные
языки, в целом
называемые
языками баз
данных. В ранних
СУБД поддерживалось
несколько
специализированных
по своим функциям
языков. Чаще
всего выделялись
два языка - язык
определения
схемы БД (SDL - Schema
Definition Language) и язык
манипулирования
данными (DML - Data
Manipulation Language). SDL служил
главным образом
для определения
логической
структуры БД,
т.е. той структуры
БД, какой она
представляется
пользователям.
DML содержал набор
операторов
манипулирования
данными, т.е.
операторов,
позволяющих
заносить данные
в БД, удалять,
модифицировать
или выбирать
существующие
данные.



В современных
СУБД обычно
поддерживается
единый интегрированный
язык, содержащий
все необходимые
средства для
работы с БД,
начиная от ее
создания, и
обеспечивающий
базовый пользовательский
интерфейс с
базами данных.
Стандартным
языком наиболее
распространенных
в настоящее
время реляционных
СУБД является
язык SQL (Structured Query Language).



Прежде
всего, язык SQL
сочетает средства
SDL и DML, т.е. позволяет
определять
схему реляционной
БД и манипулировать
данными. При
этом именование
объектов БД
(для реляционной
БД - именование
таблиц и их
столбцов)
поддерживается
на языковом
уровне в том
смысле, что
компилятор
языка SQL производит
преобразование
имен объектов
в их внутренние
идентификаторы
на основании
специально
поддерживаемых
служебных
таблиц-каталогов.
Внутренняя
часть СУБД
(ядро) вообще
не работает
с именами таблиц
и их столбцов.



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



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



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


3.3. Варианты
построения
информационных
приложений
с использованием
СУБД


Групповые
и корпоративные
информационные
системы
и соответствующие
приложения
могут
строиться
различными
способами:



многотерминальные
централизованные
вычислительные
системы;



системы
на
основе
локальной
сети
ПК (файл-серверные
приложения);



системы
с архитектурой
клиент-сервер;



Для
лучшего
понимания
ограничений
различных
архитектур
информационных
систем,
разделим
приложения
на
типовые.





Типовые
компоненты
информационных
приложений



Выделим
в информационном
приложении
типовые функциональные
компоненты,
достаточные
для формирования
любого приложения
на основе БД.



PS (Presentation Services) - средства
представления.
Обеспечиваются
устройствами,
принимающими
ввод от пользователя
и отображающим
то, что сообщает
ему компонент
логики представления
PL, плюс соответствующая
программная
поддержка.
Может быть
текстовым
терминалом
или Х-терминалом,
а также ПК или
рабочей станцией
в режиме программной
эмуляции терминала
или Х-терминала.



PL (Presentation Logic) - логика
представления.
Управляет
взаимодействием
между пользователем
и ЭВМ. Обрабатывает
действия пользователя
по выбору
альтернативы
меню, по нажатию
кнопки или при
выборе элемента
из списка.



BL (Business or Application Logic) -
прикладная
логика. Набор
правил для
принятия решений,
вычислений
и операций,
которые должно
выполнить
приложение.



DL (Data Logic) - логика
управления
данными. Операции
с базой данных
(SQL-операторы
SELECT, UPDATE и INSERT), которые
нужно выполнить
для реализации
прикладной
логики управления
данными.



DS (Data Services) - операции
с базой данных.
Действия СУБД,
вызываемые
для выполнения
логики управления
данными, такие
как манипулирование
данными, определения
данных, фиксация
или откат транзакций
и т. п. СУБД обычно
компилирует
SQL - предложения.



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


Таблица
3.1. Схем построения
информационных
систем
















































Описание
схемы




Клиент



Сервер




Пример
реализации


1 Централизованная
многотерминальная
система
PS PL, BL, DL, DS, FS Сервер Sun с
X-терминалами
в среде ОС Solaris
2 Локальная
сеть ПК с файл
серверными
приложениями
PS, PL, BL, DL DS, FS


Локальная
сеть ПК в среде
NetWare, программы
на FoxPro, Clipper и др.


3 Удаленный
доступ к данным
на сервере
БД
PS, PL, BL, DL DS, FS Система
клиент-сервер
с доступом
ПК к серверу
БД: Informix (NetWare)
4


Удаленный
доступ к БД
с использованием
хранимых процедур


PS, PL, DL BL, DS, FS Система
клиент-сервер,
доступ ПК к
серверу ORACLE в
среде SCO Unix
5


Удаленный
доступ к БД
с разделением
логики приложения


PS, PL, BL, DL BL, DL, DS, FS


Система
клиент-сервер,
доступ ПК к
серверу ORACLE
на Sun (Solaris)


3.3.1. Централизованные
многотерминальные
системы


В централизованной
системе, характерной
для Unix, терминал
реализует лишь
функции представления
данных PS, тогда
как остальные
функции обеспечивает
центральный
узел. Центр
должен реагировать
на каждый запрос
пользователя
(PL), выполнять
логику приложения
(BL, DL) и извлекать
данные из БД
(DS, FS). Имеются две
серьезные
проблемы для
централизованной
схемы: трудно
обеспечить
графический
интерфейс;
каждый дополнительный
пользователь
и приложение
вносят существенную
нагрузку на
сервер, теряется
масштабируемость.


3.3.2. Файл-серверные
приложения


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




Рисунок
3.1.



Варианты
построения
файл-серверных
приложений.


Объектами
разработки
в файл-серверном
приложении
являются компоненты
приложения,
определяющие
логику диалога
PL, а также логику
обработки BL и
управления
данными DL. Разработанное
приложение
реализуется
либо в виде
законченного
загрузочного
модуля или в
виде специального
кода для интерпретации.



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



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


3.3.3.Приложения
клиент-сервер


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



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



Большинство
конфигураций
клиент-сервер
использует
двухзвенную
модель, состоящую
из клиента,
который обращается
к услугам сервера
(сх. 3-5 в таблице
3.1, рисунок 3.2). Для
эффективной
реализации
такой схемы
часто применяют
неоднородную
сеть. Как минимум,
предполагается,
что диалоговые
компоненты
PS и PL размещаются
на клиенте, что
позволяет
обеспечить
графический
интерфейс.
Далее возможно
разместить
компоненты
управления
данными DS и FS на
сервере, а диалог
(PS, PL), логику BL и DL на
клиенте - сх. 3
в таблице 3.1).
Типовое определение
архитектуры
клиент-сервер
- приложение
на клиенте,
СУБД - на сервере
- использует
эту схему.




Рисунок
3.2.



Варианты
построения
приложений
клиент-сервер.


Поскольку
эта схема предъявляет
наименьшие
требования
к серверу, она
обладает наилучшей
масштабируемостью.
Однако сложные
приложения,
вызывающие
большое взаимодействие
с БД, могут жестко
загрузить как
клиента, так
и сеть. Результаты
SQL-запроса должны
вернуться
клиенту для
обработки,
потому что там
находится
логика принятия
решения. Такая
схема возлагает
дополнительное
бремя администрирования
приложений,
разбросанных
по различным
клиентским
узлам.



Можно
сократить
нагрузку на
клиента и сеть,
переместив
целиком компонент
BL на сервер, при
этом вся логика
принятия решений
оформлена в
виде хранимых
процедур и
выполняется
на сервере БД.
Хранимая процедура
- процедура с
операторами
SQL для доступа
к БД, вызываемая
по имени с передачей
требуемых
параметров
и выполняемая
на сервере БД.
Компиляция
повышает скорость
исполнения
хранимых процедур
и сокращает
нагрузку на
сервер. Но,
перегрузив
хранимые процедуры
прикладной
логикой, можно
потерять преимущества
по производительности.
Хранимые процедуры
улучшают целостность
приложений
и БД, гарантируют
актуальность
коллективно
используемых
операций и
вычислений.
Улучшается
сопровождение
таких процедур,
а также безопасность
(нет прямого
доступа к данным).



Переместив
с клиента часть
логики приложения
на сервер, получим
систему клиент-сервер
с разделенной
логикой. Часть
прикладной
логики может
быть реализована
на клиенте, а
другая часть
логики - в виде
обработчиков
событий (триггеров)
и хранимых
процедур на
сервере БД.
Такая схема
при удачном
разделении
логики приводит
к сбалансированной
загрузке клиентов
и сервера, но
при этом затрудняется
сопровождение
приложений.





Рисунок
3.3.



Приложения
клиент-сервер
на основе
многотерминальной
системы.


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

4. ВЫБОР
ЯЗЫКА ПРОГРАММИРОВАНИЯ


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



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



традиционные
системы
программирования;



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



средства
разработки
приложений
клиент-сервер;



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


4.1.Традиционные
системы
программирования


Традиционные
системы программирования
представлены
средствами
создания приложений
на языках третьего
поколения 3GL:
C, Pascal, Basic и др. Среди
них по способам
подготовки
и выполнения
программных
модулей различают
системы компилирующего
и интерпретирующего
типа. Инструментальные
средства
программирования
могут быть
представлены
набором отдельных
утилит (редактор
текстов, компилятор,
компоновщик
и отладчик) или
интегрированной
средой программирования.



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



Свойствами
объектно-ориентированных
языков, обуславливающими
их преимущества,
являются сокрытие
деталей реализации
объекта (инкапсуляция),
наследование
процедурных
и информационных
частей от
объектов-родителей,
полиморфизм
как возможность
настройки на
различные типы
данных и др.
Примерами
объектно-ориентированных
систем программирования
являются C++ и
Object Pascal.



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



Систему
программирования
Visual Basic можно использовать
для создания
простых автономных
приложений
и компонентов
VBX и OCX, для расширения
и интеграции
функциональных
пакетов (Word, Excel,
Access), а также как
средство
программирования
для расширения
систем документооборота
и для создания
утилит администрирования.



С момента
выхода продано
существенно
больше копий
Delphi, чем Visual Basic. Применение
продукта возможно
для создания
расчетно-аналитических
программ, для
разработки
DLL, для сопровождения
и развития
разработок,
выполненных
на Turbo и Borland Pascal, а также
для быстрого
прототипирования
будущих приложений.
В ряде случаев
решающим для
выбора будут
умеренные
требования
Delphi-приложения
к системно-техническому
обеспечению.



С++ применяется
для расширения
системного
программного
обеспечения,
для разработки
крупных проектов,
специальных
приложений,
создания библиотек
и классов для
предметной
области, разработки
динамических
библиотек DLL,
создания программного
обеспечения
для серверов
приложений,
разработки
ОСХ, использования
совместно с
CASE-системами,
обеспечения
многоплатформенности
и переносимости
(по стандарту
ANSI).


4.2. Инструменты
для создания
файл-серверных
приложений


Основой
разработки
файл-серверных
приложений
для локальных
сетей ПК является
инструментальное
окружение
различных
"персональных"
СУБД: FoxPro, Clipper, Paradox, Clarion,
Paradox, dBase и т.п. Такие
средства, как
правило, реализованы
в виде диалоговой
интегрированной
среды, предоставляющих
три уровня
доступа:



программирование
и создание
приложений
на языке, сочетающем
возможности
языка 3GL с некоторыми
возможностями
языков четвертого
поколения 4GL;



создание
и ведение структуры
БД и индексов,
а также интерактивная
генерация
макетного
приложения
и его компонентов
(меню, форм или
окон, отчетов,
запросов и
программных
модулей);



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



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



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



СУБД для
ПК MS Access может
использоваться
для создания
масштабируемых
одиночных и
групповых
информационных
приложений
и для разработки
клиентской
части приложений
клиент-сервер,
а также как
средство
автоматизации
делопроизводства
в составе MS-Office.



Традиционные
инструментальные
средства класса
xBase (такие как
FoxPro, Clipper, dBase и др.) теряют
рынок (число
их продаж значительно
сокращается)
из-за несоответствия
современным
требованиям.
По мере того,
как предприятия
все шире используют
СУБД MS Access и новые
средства разработки,
такие как Visual
Basic и Delphi, популярность
среды Xbase уменьшается.
Более того,
Microsoft может прекратить
поддержку
FoxPro, так как эта
СУБД с устаревшим
языком и сокращающейся
рыночной долей
не вписывается
в долговременную
стратегию
развития средств
разработки,
которую Microsoft строит
вокруг Visual Basic и
Access. Новые "визуальные"
инструменты
этого класса
(Visual FoxPro, CA-Visual Objects, Visual dBase) пытаются
сохранить и
расширить
прежний ареал.
Они могут быть
рекомендованы
для сопровождения
и развития
прежних xBase-разработок,
для создания
масштабируемых
одиночных и
групповых
файл-серверных
приложений
и для переноса
и адаптации
приложений
в архитектуру
клиент-сервер
с использованием
интерфейса
ODBC. Но нужно четко
осознавать,
что при применении
нового инструментария
для создания
диалога и с
переходом на
SQL-операторы
от прежних
xBase-приложений
остается ничтожно
мало, а, кроме
того, существенно
меняется подход
к разработке,
и прежние навыки
вряд ли будут
востребованы.



Инструментальное
средство MS Access
хорошо зарекомендовало
себя в разработке
файл-серверных
приложений
с возможностью
масштабирования,
так как оно
имеет удобные
средства визуального
конструирования,
отладки и возможности
использования
как Access Basic, так и
SQL. Интерфейс
ODBC открывает
широкие возможности
интероперабельности
с различными
СУБД. В 1995 г. на
долю MS Access пришлось
57% рынка настольных
баз данных, а
FoxPro и dBase - 9% и 2%, соответственно


4.3. Средства
разработки
приложений
клиент-сервер


Группу
инструментальных
средств для
создания
информационных
приложений
с архитектурой
клиент-сервер
можно разделить
на следующие
подгруппы:



среды
разработки
приложений
для серверов
баз данных,
независимые
от СУБД инструменты
для создания
приложений
клиент-сервер;



средства
поддержки
распределенных
информационных
приложений.


4.3.1. Среды
разработки
приложений
для серверов
баз данных


Среды
разработки
приложений
для серверов
БД представляют
собой системы
программирования
четвертого
поколения 4GL
или инструментальные
средства быстрой
разработки
приложений
RAD (Rapid Application Development). Особенностями
этой подгруппы
средств являются:
реализация
удаленного
доступа к СУБД
по двухзвенной
схеме клиент-сервер;
связь клиентских
приложений
с серверами
БД с помощью
непроцедурного
языка структурированных
запросов SQL (кроме
серверов Btrieve);
обеспечение
целостности
БД, включая
целостность
транзакций;
поддержка
хранимых процедур
на серверах
БД; реализация
клиентских
и серверных
триггеров-процедур;
генерация
элементов
диалогового
интерфейса
и отчетов.



В качестве
примера можно
назвать инструменты
Informix/4GL,
Oracle*Forms и др. Сейчас
новые среды
разработки
SQL-серверов БД
(Informix NewEra и Oracle Power Objects) развиваются
в сторону независимых
от СУБД инструментов.
Независимые
инструментальные
средства,
ориентированные
на многие платформы
СУБД, представлены
в виде средств
быстрой разработки
приложений
RAD. Для таких
средств создания
приложений
клиент-сервер
характерны:
возможность
распределения
приложения
на клиентах
и/или серверах;
создание приложений
для разных
серверов БД;
поддержка
спецификации
ODBC для доступа
к различным
серверам БД,
включая СУБД
для ПК; связь
с мониторами
транзакций
для организации
трехзвенной
архитектуры
приложений
клиент-сервер;
объектно-ориентированное
программирование
приложений;
визуальный
характер генерации
приложения;
ведение репозитария
объектов и их
свойств, что
облегчает
интеграцию
со средствами
автоматизации
проектирования
программ CASE;
управление
проектами и
версиями приложений;
интеграция
приложения
с электронной
почтой и средствами
офисной автоматизации.



Известными
примерами
независимых
инструментальных
средств разработки
являются: ErWin,
SQLWindows, PowerBuilder, JAM и
Uniface.

4.3.2. Средства
поддержки
распределенных
информационных
приложений


Средства
поддержки
распределенных
приложений
относятся к
категории
промежуточного
программного
обеспечения
middleware для организации
серверов приложений.
Сюда входят
разнообразные
библиотеки
и наборы инструментальных
средств: интерфейсы
доступа к базам
данных ODBC и IDAPI; шлюзы
для систем
управления
базами данных;
протоколы и
команды мониторов
обработки
транзакций;
почтовые интерфейсы
MAPI, VIM, MHS, X.400 и EDI; средства
обмена сообщениями
MOM; протоколы
связывания
и включения
объектов OLE и
динамического
обмена данными
DDE; протоколы
удаленного
вызова процедур
RPC и именованных
конвейеров
Named Pipes, средства
коммуникационного
ввода-вывода
BSD Sockets и WinSock.



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


Таблица
4.1.
Инструментальные
наборы для
разработки
приложений
клиент-сервер


































































Продукт/компания


Объектно-ориен-



тированная
инфраструктура




Распределение
приложений
между клиентом
и сервером




Поддержка
мониторов
транзакций




CASE-репо-



зитарий




Перенос
приложений
и контроль
версий


JAM компании
JYACC
нет да да нет нет


New Era компаниии
Informix


да нет нет да да
Developer 2000 компании
Oracle
нет да да да да
Power Builder да нет да да да
Delphi компании
Borland
да нет да да да
MS-Access компании
Microsoft
нет нет нет нет нет
Oracle Power Object компании
Oracle
да нет нет нет да


Кроме того,
развитие современных
программных
средств приводит
к расширению
их функциональных
возможностей,
в результате
чего программные
обеспечения
разных типов
конкурируют
друг с другом.
Так, продукт
Borland C++ Builder превращающий
компилятор
Borland Visual C++ в полноценную
среду разработки
приложений
в архитектуре
клиент-сервер.
Предлагаемый
продукт дополняет
C++ визуальными
"дизайнерами",
интуитивными
"мастерами"
и средствами
доступа к
объектно-ориентированным
данным, сохраняя
знакомое окружение
Visual C++.



Мощное
средство Oracle Forms
из набора
Developer/2000 предназначено
для создания
приложений
баз данных в
среде клиент/сервер,
которые могут
быть перенесены
на платформы
с различными
графическими
и символьными
пользовательскими
интерфейсами.
Oracle Forms является
частью Developer/2000, который
поддерживает
разработку
приложений
во время всего
жизненного
цикла. Приложения,
созданные с
помощью Developer/2000,
полностью
масштабируемы
и применимы
на любом уровне:
от систем поддержки
принятия решений
для небольших
рабочих групп
до проектов
с большим объемом
транзакций,
которые поддерживают
сотни пользователей.
Приложения,
созданные с
помощью Developer/2000,
оптимизированы
с целью использования
всех преимуществ
сервера Oracle7, поэтому
они должны быть
основными
средствами
при разработке
приложений
в среде Oracle7.



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



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



Анализ
и апробация
возможностей
MS Access показал, что
это инструментальное
средство хорошо
зарекомендовало
себя как в разработке
файл-серверных
приложений,
так и для разработки
клиентской
части приложений
в архитектуре
клиент/сервер,
наличие поддержки
языка SQL и интерфейса
ODBC открывает
доступ к SQL-серверам
БД. Имеется
средство для
миграции приложений
MS Access в среду MS SQL Server.
К достоинствам
Access следует отнести
и пониженные
требования
к ресурсам. К
сожалению,
последние
версии пакета
ориентированы
лишь на офисную
автоматизацию
и не содержат
runtime-компонент
для создания
законченного
информационного
приложения.



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



Пакет Oracle
Power Object предназначен
для разработчиков,
впервые приступающих
к разработке
приложений
клиент-сервер
и переходящих
от таких систем,
как FoxPro или Clipper, и
наиболее пригоден
для создания
прототипов
больших систем.



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



Все три
средства - JAM,
Oracle Power Object и Delphi - пригодны
для создания
быстрых прототипов,
и их использование
в таком качестве
может иметь
определенные
достоинства.

5. ВЫВОДЫ
ПО ВЫБОРУ
ОПЕРАЦИОННОЙ
СИСТЕМЫ, ЯЗЫКА
ПРОГРАММИРОВАНИЯ
И БАЗЫ ДАННЫХ


Первоочередной
задачей является
выбор варианты
построения
информационных
приложений
с использованием
СУБД. Из рассмотренных
вариантов
системы
с архитектурой
клиент-сервер
наиболее эффективная
и дешевая для
больших баз
данных и множества
пользователей,
которым нужен
доступ к «свежим»
данным. В масштабе
предприятия
вычисления
клиент/сервер
— пред­ставляют
собой ни что
иное,
как распределение
обработки в
многопользователь­ской
базе данных
по нескольким
компьютерам
(ПК и рабочим
станциям).



Что же дает
вычисление
клиент/сервер
по сравнению
с традиционной
однокомпью­терной
средой (с одной
большой ЭВМ)?
При корректной
реализации
системы клиент/сервер
получается
система управления
информацией
с намного лучшим
отношением
«цена/производительность»,
которую можно
наращивать
и легко приспосабливать
к меняющимся
требованиям.
Другой причиной
выбора технологии
клиент/сервер
является то
обстоятельство,
что менеджерам
уже более не
нужно отслеживать
сотни, а то и
тысячи программ,
нуждающихся
в обновлении
и перекомпилировании
каждый раз при
небольшом
изменении в
базе данных.
К плюсам технологии
клиент/сервер
можно отнести
простоту и
удобство
пользовательских
интерфейсов,
открытость
систем, эффективную
среду разработки
(особенно при
наличии
объектно-ориентированных
инструментов)
и быстроту
решений.



На сегодняшний
момент только
четыре базы
являются приемлемыми
для надежного
хранения больших
данных и удобства
использования:
Oracle, Informix,
Sysbase,
Ingres.



Исходя
из популярности
в России (в ВПК)
и на основе
проведенного
анализа по
литературе
в частности
[2],[3],[4]
и из опыта работы
компаний
«Рос.вооружение»,
НИИ «Восход»,
«Инком
Банк» была
выбрана база
данных Oracle.



Вторая
задача это
выбор операционной
системы. На
основании
выводов



в главе
2.5.
и таблицы 2.1
была выбрана
Novell Netware 4.11 как
основная система
для работы базы
данных Oracle.
Определяющими
параметрами
при выборе
были:
надежность
и стабильность
работы, небольшее
требование
к ресурсам
системы и стоимость,
возможность
безболезненного
переноса на
платформу
Windows/NT.
Ввиду полномасштабного
использования
компьютеров
типа Pentium
и операционной
системы Windows
95, а так же
удобством
разработки,
использования
проектируемого
продукта, работы
с отчетными
программами,
в качестве
клиентских
приложений
была выбрана
Windows 95.



На основании
главы 4.3.2. и таблицы
4.1, а так же прочитанной
литературы
[5],[6],[7],[8]
и опыта
программистов
фирм:
«Формоза-центр»,
«Инком Банк»,
«Рос.вооружение»
был выбран язык
программирования
Delphi,
как наиболее
удобный для
работы с клиент/серверными
приложениями,
а так же в плане
перевода локальных
баз данных на
архитектуру
клиент/сервер.
Данный язык,
как никакой
другой, поддерживает
основные
тенденции(направления)
современного
языка программирования.



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



Другое
направление,
возникшее во
многом благодаря
объектной
ориентации,
- визуальные
средства быстрой
разработки
приложений
(RAD - Rapid Application Development), основанные
на компонентной
архитектуре.



Третья
тенденция -
использование
компиляции,
а не интерпретации.
Это объясняется
тем, что скоростные
характеристики
компилируемых
приложений
в десятки раз
лучше, чем у
систем, использующих
интерпретатор.
При этом повышается
легкость
отчуждаемости
готовых систем,
так как отпадает
необходимость
"таскать за
собой" сам
интерпретатор
(run-time), выполненный
обычно в виде
динамической
библиотеки
и занимающий
в лучшем случае
несколько сотен
килобайт (а
большинстве
случаев - два-три
мегабайта).
Отсюда и меньшая
ресурсоемкость
у скомпилированных
систем.



Четвертая
тенденция -
возможность
работы с базами
данных универсальными
(единообразными)
методами. Если
мы попытаемся
оценить процент
систем, которые
так или иначе
требуют обработки
структурированной
информации
(как для внутрикорпоративного
использования,
так и для коммерческого
или иного
распространения),
то окажется,
что цифра 60- 70%
может представлять
лишь нижнюю
границу. Важным
свойством
средств обеспечения
доступа к базам
данных является
их масштабируемость,
как возможность
не только
количественного,
но и качественного
роста системы.
Например, обеспечение
перехода от
локальных ,в
том числе,
файл-серверных
данных к архитектуре
клиент-сервер
или тем более
к многоуровневой
N-tier схеме.



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



Delphi использует
язык 3-го поколения
Object Pascal, обладающий
полной реализаций
основных признаков
объектной
ориентации
(инкапсуляция,
наследование,
полиморфизм),
поддержкой
RTTI-RunTime Type Information и встроенной
обработкой
исключительных
ситуаций (Exception
handling). Компонентная
архитектура
Delphi является
прямым развитием
поддерживаемой
объектной
модели. Все
компоненты
являются объектными
типами (классами),
с возможностью
неограниченного
наследования.
Компоненты
Delphi поддерживают
PME-модель (Property, Method,
Events), позволяющую
изменять поведение
компонентов
без необходимости
создания новых
классов.



Компоненты
Delphi 2.Delphi 2 Client/Server Suite включает
систему контроля
версий Intersolv PVCS,
поддерживает
работу со словарем
данных (Data Dictionary) и
Репозитарием
объектов (Object
Repository). Среда визуальной
разработки
Delphi позволяет
единообразно
работать как
с предопределенными,
так и с пользовательскими
компонентами,
которые разрабатываются
на том же языке
(Object Pascal), на котором
создаются и
конечные приложения.



Borland Database Engine (BDE) обеспечивает
единообразную
работу с локальными
данными (Paradox, dBase) и
серверами БД
(Oracle, Sybase, MS SQL Server, InterBase и т.д.),
за счет применения
навигационных
методов доступа
к серверным
СУБД (двунаправленные
курсоры, закладки
и т.п.) и SQL - к локальным
форматам
(подмножество
Local SQL).



Компилятор
Delphi является самым
быстрым; имеет
общий генератор
кода с Borland C++ (Delphi 2 & BC++
5). Компилятор
Delphi (точнее, Object Pascal)
является продолжением
линии компиляторов
Turbo Pascal / Borland Pascal.



Открытые
интерфейсы
Delphi - Open Tools API - обеспечивают
контроль над
средой разработки
"из вне" и доступ
к информации
о проекте.




Рисунок
7.1. Borland Database Engine

6. СТРУКТУРА
И ОСНОВНЫЕ
ЗАДАЧИ УПРАВЛЕНИЯ
ПО ДЕЛАМ ГРАЖДАНСКОЙ
ОБОРОНЫ И
ЧРЕЗВЫЧАЙНЫМ
СИТУАЦИЯМ
6.1. Определение
ГО


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



Гражданская
оборона объединяет:



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



организации(объекты),
независимо
от формы собственности
и ведомственной
принадлежности.



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


6.2. Основные
задачи ГО


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



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



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



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



Оповещения
населения о
возникновении
чрезвычайной
ситуации и
порядке действий
в сложившейся
обстановке.



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


6.3. Схема
управления
по делам ГО и
ЧС




Рисунок
6.1. Схема управления
по делам ГО и
ЧС


Из существующей
схемы управления
по делам ГО и
ЧС видно, что



данная организация
разбита на 7
основных групп
в которой есть
свои отделы.



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



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



Данный проект
позволяет вести
необходимую
информацию
о объектах ГО
и оценить в ЧС
складывающеюся
обстановку.

7. РАЗРАБОТКА
ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
ДЛЯ СИСТЕМЫ
УПРАВЛЕНИЯ
БАЗОЙ ДАННЫХ
ОБЪЕКТОВ ГО.
7.1. Назначение
и цели создания
программного
продукта


Данное
программное
средство должно
выполнять
технологические
функции в интересах
системы предупреждения
и ликвидации
ЧС.



Целью работы
является создание
одного из программных
средств, обеспечивающего:



автоматизацию
процесса подготовки
к принятию
решений при
возникших ЧС;



регистрацию
объектов экономики
и составление
списка характеристик
объекта;



регистрацию
наличия и
численности:



техники;



защитных
сооружений;



химически
опасных веществ;



материально-технических
средств;



формирований
на объекте;



снижение
расходов на
подготовку
и уточнения
списков объектов;



учета готовности
объекта к ЧС;



учета проведения
занятий с
обучающимися
в УМЦ.



уменьшение
времени на
подготовку
списков объектов
экономики и
списков обучающихся
на УМЦ по различным
критериям;


7.2. Решаемые
задачи


Ведение
данных:



объектов
экономики;



защитных
сооружениях;



опасных
веществах;



техники;



материально-технических
средств;



формирований;



обучаемых
на УМЦ;



Формирование
списков:



объектов
экономики;



защитных
сооружениях;



опасных
веществах;



техники;



материально-технических
средств;



формирований;



обучаемых
на УМЦ;



Составление
статистической
информации.

7.3. Определение
необходимых
таблиц базы
данных


Рассмотрев
определенные
выше задачи
можно спроектировать
основные таблицы
базы данных.
Для реализации
данных задач
потребуются
следующие
таблицы:



таблица
объектов экономики;



таблица-словарь
территориальной
принадлежности
объектов;



таблица-словарь
степени опасности
объектов;



таблица-словарь
характера
деятельности
в опасный период;



таблица-словарь
ведомственной
принадлежности
объектов;



таблица-словарь
формы собственности
объектов;



таблица-словарь
рода деятельности
объектов;



таблица-словарь
гражданских
должностей
руководителей
объектов;



таблица-словарь
должностей
по ГО начальников
ГО объектов;



таблица
опасных веществ
на объектах;



таблица-словарь
опасных веществ;



таблица
защитных сооружений
на объектах;



таблица-словарь
защитных сооружений;



таблица
технических
средств на
объектах;



таблица-словарь
технических
средств;



таблица
формирований
на объектах;



таблица-словарь
формирований;



таблица-словарь
степени готовности
формирований;



таблица-словарь
служб ГО;



таблица
материально-технических
средств на
объектах;



таблица-словарь
материально-технических
средств;



таблица
обучаемых на
УМЦ;



таблица-словарь
должностей
обучаемых;



таблица-словарь
категории
обучаемых;



таблица тем
обучения по
категориям;



таблица-словарь
тем обучения;



таблица
пользователей
программы;



таблица
соответствия
идентификаторов
пользователей
программы и
базы данных
Oracle;



Этот список
строился из
следующей цепи
рассуждений:



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



Вторая
из основных
задач - это ввод
дополнительной
информации,
к примеру, о
хранимых
материально-технических
средствах на
объекте. Все
эти данные
можно было бы
хранить и в
основной таблице,
но тогда встает
проблема в
количестве
резервирования
столбцов в
главной таблице
под каждый вид
средства. Можно
было бы создать
отдельную
таблицу хранимых
материально-технических
средств на
объекте для
каждого отдела.
Но это не удобно,
так как нужно
создавать
столько таблиц,
сколько отделов.
Так же встает
вопрос при
хранении новых
материально-технических
средств при
создании нового
отдела(службы).
Именно по этой
причине создана
отдельная
таблица, в которой
содержится
информация
о всех хранимых
МТС с ссылкой
на название
отдела.



Соответственно
дополнение
к таблице объектов
экономики
служат таблицы:



опасных
веществ на
объектах;



защитных
сооружений
на объектах;



технических
средств на
объектах;



формирований
на объектах;



материально-технических
средств на
объектах;



обучаемых
на УМЦ;



В свою
очередь каждая
такая таблица
имеет таблицу-словарь(и)
на которую она
ссылается.



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



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



В основных
таблицах
предусмотрена
дополнительная
информация
по тому кто и
в какое время
ввел данные
в таблицу. Это
поля:


















DATEADD Дата ввода
информации
NAMEADD_ID


Идентификатор
пользователя,
который ввел
данные


DATEINS Дата последней
коррекции
NAMEINS_ID Идентификатор
пользователя,
который изменил
данные


Для ввода
дополнительной
информации
в основных
таблицах
предусмотрено
поле PRIM.



При проектировании
таблиц важно
уделять внимание
нормализации
базы данных.

7.4. Нормализация
базы данных


Процесс
трансформации
данных в реляционную
форму называется
нормализацией[9].
Говоря проще,
нормализация
- это удаление
избыточных
данных из каждой
таблицы в базе
данных. У нормализации
двойная цель
-
удалить лишние
копии данных
и обеспечить
максималь­ную
гибкость как
в структурах
таблиц, так и
в интерфейсных
приложениях
на случай возможных
будущих изменений
в базах данных.



О нормализации
таблиц в базе
данных нужно
заботится на
раннем этапе
проектирования
приложения,
так как при
«живых»
данных довольно
трудно менять
структуру базы.
Иногда процесс
нормализации
порождает
добавочные
таблицы, которые
были не включены
в первона­чальный
проект. Узнав
об этом как
можно раньше,
не придется
зря тратить
силы на их
разработку.



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

7.4.1. Первая
нормальная
форма


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



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



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

7.4.2. Вторая
нормальная
форма


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


7.4.3. Третья
нормальная
форма


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

7.4.4. Четвертая
нормальная
форма


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



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

7.4.5. Пятая
нормальная
форма


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



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

7.5. Определение
столбцов в
таблицах


Таблицы 7.1














































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































OBECONOM Таблица
объектов
экономики
Столбец Наименование Ключ
OBJECT_ID


ID - уникальный
ключ строки
в таблице


PK
OBJECTNO регистрационный
номер объекта
OBJECTNAME


наименование
объекта


ADDRESS_IND почтовый
индекс
ADDRESS_CHAR адрес объекта
WORKNUMBER


количество
работающих


NRSM


наибольшая
работающая
смена в мирное
время


NRSW


наибольшая
работающая
смена в военное
время


DEPORTAMENT_ID


ведомственная
принадлежность


FK
PECULIAR_ID


характер
деятельности
в особый период
(FK)


RISK_ID степень
опасности
FK
REGION_ID территориальная
принадлежность
FK
ACTIVITY_ID род деятельности FK
PROPERTY_ID


форма
собственности


FK
GLAVOBJECT_ID


подчиненность
объекта


FK
DIRECTIONNAME Ф.И.О. руководителя
объекта
POST_ID занимаемая
должность
руководителя
объекта
FK
DIRECTIONWTEL


рабочий
телефон руководителя
объекта


DIRECTIONHTEL


домашний
телефон руководителя
объекта


COMMANDGONAME Ф.И.О. начальника
штаба ГО объекта
POSTGO_ID


должность
начальника
штаба ГО объекта


FK
COMMANDGOWTEL


рабочий
телефон начальника
штаба ГО объекта


COMMANDGOHTEL


домашний
телефон начальника
ГО объекта


ZAMNAME Ф.И.О. заместителя
руководителя
ZAMWTEL


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


ZAMHTEL


домашний
телефон заместителя
руководителя


P1NAME Ф.И.О. председателя
КЧС
P1WTEL рабочий
телефон председателя
КЧС
P1HTEL домашний
телефон КЧС
P2NAME Ф.И.О. председателя
ЭК
P2WTEL рабочий
телефон председателя
ЭК
P2HTEL домашний
телефон ЭК
P3NAME Ф.И.О. председателя
ПУФ
P3WTEL рабочий
телефон председателя
ПУФ
P3HTEL домашний
телефон ПУФ
DUTYTEL телефон
дежурного
по объекту
DUTY2TEL телефон
секретаря
FAXTEL факс
MODEMTEL модем
NAMEADD_ID владелиц FK
DATEADD дата ввода
NAMEINS_ID корректировщик FK
DATEINS дата последней
коррекции
PRIM примечание
DEPARTAMENT Таблица-словарь
ведомств
DEPARTAMENT_ID


ID - уникальный
ключ строки
в таблице


PK
DEPARTAMENT_CHAR Наименование
PECULIAR Таблица-словарь
деятельностей
в ОП
PECULIAR_ID


ID - уникальный
ключ строки
в таблице


PK
PECULIAR_CHAR Наименование
деятельностей
в ОП
REGION Таблица-словарь
районов
REGION_ID


ID - уникальный
ключ строки
в таблице


PK
REGION_CHAR Наименование
районов
RISK Таблица-словарь
степени опасности
объектов
RISK_ID


ID - уникальный
ключ строки
в таблице


PK
RISK_CHAR


Наименование
степени опасности
объектов


PROPERTY Таблица-словарь
форм собственности
PROPERTY_ID


ID - уникальный
ключ строки
в таблице


PK
PROPERTY_CHAR Наименование
форм собственности
ACTIVITY Таблица-словарь
рода деятельности
объектов
ACTIVITY_ID


ID - уникальный
ключ строки
в таблице


PK
ACTIVITY_CHAR


Наименование
рода
деятельности
объектов


POST


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


POST_ID


ID - уникальный
ключ строки
в таблице


PK
POST_CHAR


Наименование
гражданских
должностей


POSTGO Таблица-словарь
должностей
по ГО
POSTGO_ID


ID - уникальный
ключ строки
в таблице


PK
POSTGO_CHAR


Наименование
должностей
по ГО


MATERIALOB таблица
опасных веществ
на объектах
MATERIAL_ID


ID -
составной
уникальный
ключ (MATERIAL_ID,
OBJECT_ID)




[pk]


FK


OBJECT_ID


ID -
составной
уникальный
ключ (MATERIAL_ID,
OBJECT_ID)




[pk]


FK


MATERIALNUM количество
NAMEADD_ID владелиц FK
DATEADD дата ввода
NAMEINS_ID корректировщик FK
DATEINS дата последней
коррекции
PRIM примечание
MATERIAL Таблица-словарь
опасных веществ
MATERIAL
_ID


ID - уникальный
ключ строки
в таблице


PK
MATERIAL
_CHAR


Наименование
опасных
веществ




BUILDINGOB




таблица
защитных
сооружений
на объектах;


BUILDING_ID


ID -
составной
уникальный
ключ



(BUILDING
_ID,
OBJECT_ID)




[pk]


FK


OBJECT_ID


ID -
составной
уникальный
ключ (BUILDING_ID,OBJECT_ID)




[pk]


FK


BUILDINGNUM количество
NAMEADD_ID владелиц FK
DATEADD дата ввода
NAMEINS_ID корректировщик FK
DATEINS дата последней
коррекции
PRIM примечание
BUILDIN


Таблица-словарь
защитных
сооружений


BUILDIN
_ID


ID - уникальный
ключ строки
в таблице


PK
BUILDIN
_CHAR


Наименование
опасных
веществ


TEHNICAOB


таблица
техники
на объектах;


TEHNICA_ID


ID -
составной
уникальный
ключ



(TEHNICA
_ID,
OBJECT_ID)




[pk]


FK


OBJECT_ID


ID -
составной
уникальный
ключ (TEHNICA_ID,OBJECT_ID)




[pk]


FK


TEHNICANUM количество
NAMEADD_ID владелиц FK
DATEADD дата ввода
NAMEINS_ID корректировщик FK
DATEINS дата последней
коррекции
PRIM примечание
TEHNICA Таблица-словарь
техники
TEHNICA
_ID


ID - уникальный
ключ строки
в таблице


PK
TEHNICA
_CHAR


Наименование
опасных
веществ


FORMIROVOB


таблица
формирований
на объектах;


FORMIROV_ID


ID -
составной
уникальный
ключ



(FORMIROV
_ID,
OBJECT_ID)




[pk]


FK


OBJECT_ID


ID -
составной
уникальный
ключ (FORMIROV_ID,OBJECT_ID)




[pk]


FK


READY_ID готовность FK
PEOPLENUM количество
людей
FORMIROVNUM количество
формирований
NAMEADD_ID владелиц FK
DATEADD дата ввода
NAMEINS_ID корректировщик FK
DATEINS дата последней
коррекции
PRIM примечание
FORMIROV Таблица-словарь
формирований
FORMIROV
_ID


ID - уникальный
ключ строки
в таблице


PK
FORMIROV_CHAR


Наименование
формирований


READY Таблица-словарь
готовности
READY
_ID


ID - уникальный
ключ строки
в таблице


PK
READY_CHAR


Наименование
готовности


MATTEHOB


таблица
МТС на
объектах


MATTEH_ID


ID -
составной
уникальный
ключ



(MATTEH
_ID,
OBJECT_ID)




[pk]


FK


OBJECT_ID


ID -
составной
уникальный
ключ (MATTEH_ID,OBJECT_ID)




[pk]


FK


MATTEH
NUM
количество
NAMEADD_ID владелиц FK
DATEADD дата ввода
NAMEINS_ID корректировщик FK
DATEINS дата последней
коррекции
PRIM примечание
MATTEH Таблица-словарь
МТС
MATTEH
_ID


ID - уникальный
ключ строки
в таблице


PK
MATTEH_CHAR


Наименование
МТС


SERVIS_ID Служба(отдел) FK
SERVIS Таблица-словарь
служб
SERVIS
_ID


ID - уникальный
ключ строки
в таблице


PK
SERVIS
_CHAR


Наименование
службы


STUDY


таблица
обучаемых
на УМЦ


STUDY_ID


ID - уникальный
ключ строки
в таблице


PK
OBJECT_ID объект экономики FK
CATEGORY_ID категория
обучаемого
FK
NAME Ф.И.О. обучаемого
SPOST_ID занимаемая
должность
FK
WORKTEL рабочий
телефон
LASTDATE дата прошлого
обучения
NEXTDATE дата следующего
обучения
NAMEADD_ID владелиц FK
DATEADD дата ввода
NAMEINS_ID корректировщик FK
DATEINS дата последней
коррекции
PRIM примечание
SPOST


Таблица-словарь
должностей
обучаемых


SPOST
_ID


ID - уникальный
ключ строки
в таблице


PK
SPOST
_CHAR


Наименование
должностей
обучаемых


CATEGORY Таблица-словарь
категорий
обучаемых
CATEGORY_ID


ID - уникальный
ключ строки
в таблице


PK
CATEGORY_CHAR


Наименование
обучаемых


CATEGORY_TYPE Тип категории
CATTEMA Таблица
категорированых
тем
TEMA_ID


ID -
составной
уникальный
ключ



(TEMA_ID,
CATEGORY_ID)




[pk]


FK


CATEGORY_ID


ID -
составной
уникальный
ключ



(TEMA_ID,
CATEGORY_ID)




[pk]


FK


CATTEMANUM количество
часов
PRIM примечание
TEMA Таблица-словарь
тем обучения
TEMA_ID


ID - уникальный
ключ строки
в таблице


PK
TEMA_CHAR Наименование
темы
GOBASEUSER таблица
пользователей
программы
GOBASEUSER_ID


ID - уникальный
ключ строки
в таблице


PK
NAME Имя пользователя
ORAUSER


таблица
соответствия
идентификаторов
пользователей
программы и
базы данных
Oracle


ORAUSER_ID


UID - идентификатор
базы данных
Oracle


PK
GOBASEUSER_ID


идентификаторов
пользователей
программы


FK


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



Внешний
ключ(FK)
— это поле
или поля таблицы,
которые, не
будучи употребленными
в качестве
идентификатора,
часто используются
при объединении
с другими таблицами.
В таблице объектов,
например, поле
номера района
служит в качестве
внешнего ключа.
Поле номера
района не уникально
определяет
конкретные
записи объектов
- для одного
района может
быть несколько
объектов.



Таблицы 7.2

























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































OBECONOM Таблица
объектов
экономики
Столбец


Тип данных

размер
OBJECT_ID NUMBER NOT
NULL
9
OBJECTNO NUMBER NOT
NULL
7
OBJECTNAME VARCHAR2 NULL 100
ADDRESS_IND CHAR NULL 6
ADDRESS_CHAR VARCHAR2 NULL 150
WORKNUMBER NUMBER NULL 7
NRSM NUMBER NULL 7
NRSW NUMBER NULL 7
DEPORTAMENT_ID NUMBER NOT
NULL
7
PECULIAR_ID NUMBER NOT
NULL
7
RISK_ID NUMBER NOT
NULL
7
REGION_ID NUMBER NOT
NULL
7
ACTIVITY_ID NUMBER NOT
NULL
7
PROPERTY_ID NUMBER NOT
NULL
7
GLAVOBJECT_ID NUMBER NOT
NULL
7
DIRECTIONNAME VARCHAR2 NULL 50
POST_ID NUMBER NOT
NULL
7
DIRECTIONWTEL CHAR NULL 7
DIRECTIONHTEL CHAR NULL 7
COMMANDGONAME VARCHAR2 NULL 50
POSTGO_ID NUMBER NOT
NULL
7
COMMANDGOWTEL CHAR NULL 7
COMMANDGOHTEL CHAR NULL 7
ZAMNAME VARCHAR2 NULL 50
ZAMWTEL CHAR NULL 7
ZAMHTEL CHAR NULL 7
P1NAME VARCHAR2 NULL 50
P1WTEL CHAR NULL 7
P1HTEL CHAR NULL 7
P2NAME VARCHAR2 NULL 50
P2WTEL CHAR NULL 7
P2HTEL CHAR NULL 7
P3NAME VARCHAR2 NULL 50
P3WTEL CHAR NULL 7
P3HTEL CHAR NULL 7
DUTYTEL CHAR NULL 7
DUTY2TEL CHAR NULL 7
FAXTEL CHAR NULL 7
MODEMTEL CHAR NULL 7
NAMEADD_ID NUMBER NOT
NULL
7
DATEADD DATE NOT
NULL
-
NAMEINS_ID NUMBER NOT
NULL
7
DATEINS DATE NOT
NULL
-
PRIM VARCHAR2 NULL 200
DEPARTAMENT Таблица-словарь
ведомств
DEPARTAMENT_ID NUMBER NOT
NULL
7
DEPARTAMENT_CHAR VARCHAR2 NULL 50
PECULIAR Таблица-словарь
деятельностей
в ОП
PECULIAR_ID NUMBER NOT
NULL
7
PECULIAR_CHAR VARCHAR2 NULL 50
REGION Таблица-словарь
районов
REGION_ID NUMBER NOT
NULL
7
REGION_CHAR VARCHAR2 NULL 50
RISK


Таблица-словарь
степени опасности
объектов


RISK_ID NUMBER NOT
NULL
7
RISK_CHAR VARCHAR2 NULL 50
PROPERTY


Таблица-словарь
форм собственности


PROPERTY_ID NUMBER NOT
NULL
7
PROPERTY_CHAR VARCHAR2 NULL 50
ACTIVITY


Таблица-словарь
рода деятельности
объектов


ACTIVITY_ID NUMBER NOT
NULL
7
ACTIVITY_CHAR VARCHAR2 NULL 50
POST


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


POST_ID NUMBER NOT
NULL
7
POST_CHAR VARCHAR2 NULL 50
POSTGO Таблица-словарь
должностей
по ГО
POSTGO_ID NUMBER NOT
NULL
7
POSTGO_CHAR VARCHAR2 NULL 50
MATERIALOB Таблица
опасных веществ
на объектах
MATERIAL_ID NUMBER NOT
NULL
7
OBJECT_ID NUMBER NOT
NULL
9
MATERIALNUM NUMBER NULL 9
NAMEADD_ID NUMBER NOT
NULL
7
DATEADD DATE NOT
NULL
-
NAMEINS_ID NUMBER NOT
NULL
7
DATEINS DATE NOT
NULL
-
PRIM VARCHAR2 NULL 100
MATERIAL


Таблица-словарь
опасных веществ


MATERIAL
_ID
NUMBER NOT
NULL
7
MATERIAL
_CHAR
VARCHAR2 NULL 50


BUILDINGOB




Таблица
защитных
сооружений
на объектах


BUILDING_ID NUMBER NOT
NULL
7
OBJECT_ID NUMBER NOT
NULL
9
BUILDINGNUM NUMBER NULL 9
NAMEADD_ID NUMBER NOT
NULL
7
DATEADD DATE NOT
NULL
-
NAMEINS_ID NUMBER NOT
NULL
7
DATEINS DATE NOT
NULL
-
PRIM VARCHAR2 NULL 100
BUILDIN


Таблица-словарь
защитных
сооружений


BUILDIN
_ID
NUMBER NOT
NULL
7
BUILDIN
_CHAR
VARCHAR2 NULL 50
TEHNICAOB


Таблица
техники
на объектах


TEHNICA_ID NUMBER NOT
NULL
7
OBJECT_ID NUMBER NOT
NULL
9
TEHNICANUM NUMBER NULL 9
NAMEADD_ID NUMBER NOT
NULL
7
DATEADD DATE NOT
NULL
-
NAMEINS_ID NUMBER NOT
NULL
7
DATEINS DATE NOT
NULL
-
PRIM VARCHAR2 NULL 100
TEHNICA Таблица-словарь
техники
TEHNICA
_ID
NUMBER NOT
NULL
7
TEHNICA
_CHAR
VARCHAR2 NULL 50
FORMIROVOB


Таблица
формирований
на объектах


FORMIROV_ID NUMBER NOT
NULL
7
OBJECT_ID NUMBER NOT
NULL
9
READY_ID NUMBER NOT
NULL
7
PEOPLENUM NUMBER NULL 9
FORMIROVNUM NUMBER NOT
NULL
9
NAMEADD_ID NUMBER NOT
NULL
7
DATEADD DATE NOT
NULL
-
NAMEINS_ID NUMBER NOT
NULL
7
DATEINS DATE NOT
NULL
-
PRIM VARCHAR2 NULL 100
FORMIROV


Таблица-словарь
формирований


FORMIROV
_ID
NUMBER NOT
NULL
7
FORMIROV
_CHAR
VARCHAR2 NULL 50
READY


Таблица-словарь
готовности


READY
_ID
NUMBER NOT
NULL
7
READY_CHAR VARCHAR2 NULL 50
MATTEHOB


Таблица
МТС на
объектах


MATTEH_ID NUMBER NOT
NULL
7
OBJECT_ID NUMBER NOT
NULL
9
MATTEH
NUM
NUMBER NULL 9
NAMEADD_ID NUMBER NOT
NULL
7
DATEADD DATE NOT
NULL
-
NAMEINS_ID NUMBER NOT
NULL
7
DATEINS DATE NOT
NULL
-
PRIM VARCHAR2 NULL 100
MATTEH Таблица-словарь
МТС
MATTEH
_ID
NUMBER NOT
NULL
7
MATTEH_CHAR VARCHAR2 NULL 50
SERVIS_ID NUMBER NOT
NULL
7
SERVIS Таблица-словарь
служб
SERVIS
_ID
NUMBER NOT
NULL
7
SERVIS
_CHAR
VARCHAR2 NULL 50
STUDY


Таблица
обучаемых
на УМЦ


STUDY_ID NUMBER NOT
NULL
9
OBJECT_ID NUMBER NOT
NULL
9
CATEGORY_ID NUMBER NOT
NULL
7
NAME VARCHAR2 NULL 50
SPOST_ID NUMBER NOT
NULL
7
WORKTEL CHAR NULL 7
LASTDATE DATE NULL -
NEXTDATE DATE NULL -
NAMEADD_ID NUMBER NOT
NULL
7
DATEADD DATE NOT
NULL
-
NAMEINS_ID NUMBER NOT
NULL
7
DATEINS DATE NOT
NULL
-
PRIM VARCHAR2 NULL 200
SPOST Таблица-словарь
должностей
обучаемых
SPOST
_ID
NUMBER NOT
NULL
7
SPOST
_CHAR
VARCHAR2 NULL 50
CATEGORY


Таблица-словарь
категорий
обучаемых


CATEGORY_ID NUMBER NOT
NULL
7
CATEGORY_CHAR VARCHAR2 NULL 50
CATEGORY_TYPE NUMBER NULL 1
CATTEMA Таблица
категорированых
тем
TEMA_ID NUMBER NOT
NULL
7
CATEGORY_ID NUMBER NOT
NULL
7
CATTEMANUM NUMBER NULL 9
PRIM VARCHAR2 NULL 100
TEMA


Таблица-словарь
тем обучения


TEMA_ID NUMBER NOT
NULL
7
TEMA_CHAR VARCHAR2 NULL 50
GOBASEUSER


Таблица
пользователей
программы


GOBASEUSER_ID NUMBER NOT
NULL
7
NAME VARCHAR2 NULL 50
ORAUSER


Таблица
соответствия
идентификаторов
пользователей
программы и
базы данных
Oracle


ORAUSER_ID INTEGER NOT
NULL
GOBASEUSER_ID NUMBER NOT
NULL
7


NOT NULL - должно
иметь значение



Рисунок
7.2. Диаграмма
потоков данных
(взаимосвязь
таблиц)


7.6. Создание
SQL сценария


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

7.6.1. Создание
базы данных


Перед
созданием базы
данных ее необходимо
спроектировать.
Этап проектирования
базы данных
включает в себя
планирование
огра­ничений
файлов и включение
файлов а новую
базу данных.
Этап создания
состоит в выполнении
этого плана
с помощью команды
SQL CREATE DATABASE и некоторых
сценариев.



Основные
задачи включают
в себя следующее:



Определение
соответствующих
значений в
команде
CREATE DATABASE. для
параметров
ограничений
файлов.



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



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



Определение
набора символов
для хранения
информации
базы данных.



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



Сценарий
с файлами
инициализации
базы данных
приведены в
ПРИЛОЖЕНИИ
3.


7.6.2. Создание
таблиц


Таблицы
создаются с
помощью оператора
SQL CREATE TABLE.



Фрагмент
из ПРИЛОЖЕНИЯ
4:



CREATE TABLE ACTIVITY



(



ACTIVITY_ID
NUMBER(7) NOT NULL,



ACTIVITY_CHAR VARCHAR2(50) NULL



);



Полный
сценарий приведен
в ПРИЛОЖЕНИИ
4.


7.6.3. Создание
индексов


Индексы
облегчают поиск
и сортировку
данных. Индексы
создаются с
помощью оператора
SQL CREATE INDEX.
Фрагмент из
ПРИЛОЖЕНИЯ
4:



CREATE UNIQUE INDEX
IPKACTIVITY
ON ACTIVITY



(



ACTIVITY_ID
ASC



);


7.6.4. Определение
первичных
ключей


Добавление
определения
первичного
ключа к существующей
таблице:



ALTER TABLE ACTIVITY



ADD ( PRIMARY KEY (ACTIVITY_ID) ) ;



Полный
сценарий приведен
в ПРИЛОЖЕНИИ
4.

7.6.5. Определение
вторичных
ключей


Добавление
определения
вторичного
ключа к существующей
таблице:



ALTER TABLE OBECONOM



ADD ( FOREIGN KEY (ACTIVITY_ID)



REFERENCES ACTIVITY ) ;



Полный
сценарий приведен
в ПРИЛОЖЕНИИ
4.


7.6.6. Создание
триггеров


Триггер
- это скомпилированная
программа SQL,
которая выполняется,
когда в таблице
происходит
данное событие.
С триггером,
как правило,
связываются
три самых
распространенных
события: вставка,
удаление и
обновление
строки.



CREATE TRIGGER IU_STUDY BEFORE INSERT OR UPDATE ON
GO.STUDY



FOR EACH ROW



BEGIN



IF INSERTING THEN



SELECT GOBASEUSER_ID INTO :NEW.NAMEADD_ID



FROM GO.ORAUSER



WHERE ORAUSER_ID=UID;



:NEW.DATEADD := SYSDATE;



END IF;



SELECT GOBASEUSER_ID INTO :NEW.NAMEINS_ID



FROM GO.ORAUSER



WHERE ORAUSER_ID=UID;



:NEW.DATEINS := SYSDATE;



END;



Полный
сценарий приведен
в ПРИЛОЖЕНИИ
4.



В частности
в данной программе
с помощью триггеров
выполняется
автоматическая
регистрация
вводимых данных
(кто вел, когда).


7.6.7. Создание
последовательностей


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



CREATE SEQUENCE S_STUDY



Полный
сценарий
приведен
в ПРИЛОЖЕНИИ
4.

7.7.Выбор
типа создаваемого
приложения


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



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

7.8. Соглашение
о название
компонентов
в программе
GOBASE


Соглашение
о название
компонентов
Таблица 7.3














































































































































































































































































































































Компонент Аббревиатура Компонент Аббревиатура
AutoObject ao QRDBText qt
BatchMove bm QRDetailLink qd
Bevel be QRGroup qg
BiGauge bg QRLabel ql
BiPict bp QRMemo qm
Biswitch bs QRPreview qp
BitBtn bb QRShape qh
Button bu QRSysData qs
Calendar ca Query qu
ChartFX ch QuickReport qr
CheckBox ck RadioButton rb
ColorDialog c_ RadioGroup rg
ColorGrid сg ReplaceDialog r_
ComboBox cb Report rp
Database db RichEdit re
DataModule, DBMemo dm SaveDialog s_
DataSource ds ScrollBar sa
DBCheckBox dk ScrollBox sx
DBComboBox dc Session se
DBEdit de SpeedButton sb
DBGrid gr SpinButton su
DBImage di SpinEdit sd
DBListBox di StatusBar st
DBLookupComboBox, DBLookupCombo lc FindDialog n_


DBLookupListBox,



DBLookupList


ll Font Dialog f_
DBNavigator na Form fm
DBRadioGroup dg Gauge ga
DBText te Graphics Server gs
DdeClientConv cc GroupBox gs
DdeCI lent Item ci Header he
DdeServerConv sc HeaderControi hc
DdeServerItem si HotKey hk
DirectoryListBox dy IBEventAierter ie
DirectoryOutline do Image im
DrawGrid dr Image List il
DriveCoitiboBox rc Label la
Edit ed ListBox lb
FileListBox fl ListView lv
FilterComboBox fc MainMenu mm
MaskEdit md StoredProc sp
MediaPlayer mp StringGrid sg
Memo me TabbedNotebook tn
Notebook nb TabControi tc
OleContainer ol Table ta
OpenDialog od TabSet ts
OutLine ou Thread th
PageControl pc Timer ti
PaintBox pb TrackBar tb
Panel pa TreeView tv
PopupMenu pu UpdateSQL us
PrintDialog p_ UpDown ud
PrinterSetupDialog i_ VCFirstImpression vf
ProgressBar pr VCFormulaOne vo
QRBand qb VCSpeller vs
QRDBCalc qc
Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Система управления базой данных объектов гражданской обороны для принятия решений в чрезвычайной ситуации (Диплом)

Слов:21261
Символов:220923
Размер:431.49 Кб.