Система управления базой данных объектов гражданской обороны для принятия решений в чрезвычайной ситуации (Диплом)
внешнем виде форм, его составляющих. Лучше придерживаться уже
установленного стиля пользовательских интерфейсов, потому что
пользователю будет легче освоить знакомый интерфейс приложения. Шрифты,
цвета фона, размеры элементов изображений, расположение панели
инструментов должны быть согласованы с другими приложениями.
2. Выбор функций, вводимых в приложение. Не надо вводить ненужные свойства.
Перегрузка пользователя бесполезной информацией вызовет напрасные потери
времени. Надо определить какие свойства полезны, а какие нет.
3. Построение иерархии для форм и отчетов. Создание для приложения формы
верхнего уровня, из которой будут происходить все другие формы, облегчит
внесение изменений аспектов всех форм приложения, так как изменения
придется вносить только в верхнюю форму. Иерархия форм поможет
придерживаться последовательности при переходе от формы к форме.
4. Форма не должна включать более одного типа исходного документа
одновременно. Формы должны составляться как можно проще. Не следует
вводить на экран разные типы информации в одной форме.
5. Для лучшего восприятия человеческим глазом информации надо использовать
для форм нейтральный цвет фона.
6. Для отображения текущего режима работы приложения можно использовать
группы кнопок панели инструментов. Установив свойство набора кнопок
панели GroupIndex равное ненулевому числу, можно установить групповой
режим работы панели. Можно также установить свойство группы AllowAllUp
равное False. Если щелкнуть на одной из кнопок панели инструментов,
определенных таким образом, она будет оставаться в нажатом состоянии до
тех пор, пока пользователь не щелкнет на другой кнопке из этой группы.
7. Большие кнопки и легко отыскиваемые группы переключателей позволяют
легко манипулировать управляющими средствами приложения.
8. Для большой экономии времени пользователей, которые предпочитают
использовать клавиатуру, а не мышь, можно продублировать функции каждой
кнопки панели инструментов командами соответствующих меню и включить в
него также команды, которые не представлены кнопками формы.
9. Для часто используемых команд меню надо включить акселераторы меню. Для
этого нужно создать фиктивный элемент меню с соответствующей комбинацией
клавиш, а затем «привязать» код, который надо выполнить, к событию
OnClick этого элемента.
10. Установка на форме горячие клавиши для ключевых полей. Для этого
сначала определяют горячую клавишу метки с помощью свойства Caption
управляющего элемента метки (для обозначения горячей клавиши используют
символ «&»). Затем устанавливают в свойстве метки FocusControl имя
компонента, который предназначен для получения фокуса ввода при нажатии
горячей клавиши.
11. Расположение и функции устройств навигации должны быть одинаковыми для
всех форм и даже приложений. Если поместить управляющий элемент
DBNavigator внизу одной формы и вверху следующей, то тем самым будет
нарушена согласованность внутри приложения и пользователи могут
запутаться. Лучше размещать средства управления, которые выполняют
аналогичные или похожие функции, в одном и том же месте каждой формы.
12. Элементы пользовательского интерфейса должны быть как можно более
ненавязчивыми. Пользователь не должен останавливать свою работу и
напрягать зрение, пытаясь прочесть метку на кнопке. Лучше сделать
отдельные кнопки размером больше.
13. Шрифты без засечек читаются легче, чем шрифты с засечками. Поэтому
лучше использовать шрифт Arial, вместо Times New Roman.
14. Использование всплывающих подсказок предоставляет пользователю
великолепную возможность узнать, что делает данный элемент, не щелкая на
нем (это особенно важно для кнопок панели управления.). Всплывающие
подсказки представляют собой маленькие всплывающие метки, которые
отображаются, когда курсор мыши останавливается над определенными
значащими элементами экрана.
15. Включение интерактивной справки. Профессиональные приложения Windows
содержат полную справочную базу данных, которая включает связи между
родственными темами. Следует оснащать свои формы контекстно-
чувствительной справкой. Это можно сделать с помощью свойства HelpContext
формы и ее управляющих элементов. Когда будет затребована справка по
элементу формы, обладающему фокусом ввода, управление справкой Windows
автоматически будет передано соответствующей теме вашей справочной базы
данных.
16. Создание окна формы About (О программе). В него включают имя
приложения, номер текущей версии и название компании. Можно также внести
туда телефонный номер отдела технического сопровождения, отметку об
авторских правах и информацию об использовании ресурсов Windows. Название
продукта, номер версии и отметка об авторских правах должны быть включены
в приложение с помощью ресурса Windows VERSIONINFO.
17. Можно использовать страницы и вкладки для размещения большого числа
управляющих элементов на относительно маленькой площади экрана.
18. Для представления приложения в соответствующем меню или папке Windows
надо связать его с подходящей пиктограммой (важно, чтобы пользователи
могли отличить ее от пиктограмм других приложений). Для приложений Dephi
пиктограммы устанавливаются с помощью меню Project ( Options (
Applications.
19. Надо проектировать формы для самого низкого разрешения экрана. Скорее
всего, это будет разрешение VGA, поэтому в формах можно безопасно
установить разрешение 640*480. Для реализации этого лучше всего
переключить разрешение на видеоадаптере на VGA. Формы, разработанные в
расчете на большую разрешающую способность, чем стандарт VGA, не смогут
целиком появиться на экране.
20. Не надо перекладывать на оперативную справку объяснение, как
пользоваться приложением. В большинстве случаев его применение должно
быть интуитивным и не должно вынуждать пользователя закапываться в
руководство или читать оперативную справку.
11.3. Формы выдачи решений
Формы выдачи решений обычно используются людьми, которые не являются самыми
осведомленными в компьютерной области, но, как правило, обладают большим
влиянием, чем другие типы пользователей. Именно им нужны приложения
принятия решений, поскольку они играют определенную роль в процессе
выработки решений. Основная задача форм выдачи решений состоит в том, чтобы
они оставались простыми и достаточно информативными.
1. Максимальное использование экранной площади. Как правило, пользователи
предпочитают видеть вещи в максимально упрощенном и развернутом виде.
Можно также допустить, что пользователи редко запускают под управлением
Windows более одного приложения одновременно, поэтому позволительна
максимизация практически всех окон форм.
2. Надо избегать беспорядочного расположения на форме большого числа
деталей или табулированных данных. Обычно пользователя интересуют только
факты, и они хотят получить их в приятном и простом для понимания виде.
3. Использование графических диаграмм для визуального отображения
соответствия одних данных другим может стать мощным средством общения
сложных наборов данных. Если пользователь не прочь отказаться от сырых
цифр в пользу их графического представления, то диаграммы придадут
приложению изысканный и профессиональный вид при минимуме затраченных
усилий. Но при этом необходимо по-прежнему поддерживать средства доступа
к лежащим в их основе необработанным данным на случай, если пользователь
захочет знать из диаграмм точные цифры.
4. Если приложение ограничивается только чтением данных можно удалить
компоненты модификации данных. Можно обойтись компонентами DBText или
TLabel, чтобы отображать поля описательного типа, не прибегая к таким
насыщенным компонентам, как список или комбинированный список.
5. Не следует включать в приложение функций, которыми пользователь не
сможет воспользоваться. Необходимо избегать серых (недоступных) команд
меню и запрещенных кнопок, присутствие которых может вызвать недоумение.
Если какая-нибудь опция недоступна для данного пользователя,
устанавливают ее свойство Visible равным False, что сделает ее невидимой
(или совсем убрать ее) вместо того, чтобы просто запретить.
11.4. Интерактивные формы.
Интерактивные формы чаще всего встречаются в приложениях. Они
предоставляют средства ввода, редактирования и удаления данных. Типичный
пользователь таких форм, как правило, обладает высокой компьютерной
грамотностью. Интерактивная форма должна быть максимально простой и
благоприятной для эффективной навигации между данными и манипулирования
ими.
1. Желательно рассмотреть возможность увеличения и замены кнопок навигатора
Dilphi стандартными кнопками. Несмотря на мощность и простоту применения,
управляющим элементам DBNavigator недостает таких свойств, как средства
поиска и возможность присваивать клавиши ускоренного доступа или метки их
встроенным кнопкам.
2. Чтобы выбор управляющих средств был логичен и происходил интуитивно,
группируют управляющие средства по каждому применению и соответственно
размещают их. Располагают связанные элементы в тесной близости друг к
другу, выравнивают зависимые элементы группы переключателей, располагают
связанные кнопки близко друг от друга. Это помогает пользователю быстрее
познакомиться с приложением и избежать ошибок при работе с ним.
3. Для любителей работы с клавиатурой, используют комбинации клавиш для
командных кнопок и полей ввода. Надо расположить комбинации клавиши в
логическом, а не позиционном порядке, отдавая предпочтение кнопкам, а не
меткам. Другими словами, если есть поле вверху экрана, метка которого
начинается с буквы А, и, кроме того, есть кнопка, расположенная внизу
экрана с названием Add, устанавливают клавишу ускоренного доступа для
кнопки, а не для поля, равной .
4. Устанавливают логический порядок работы клавиши табуляции, который бы
позволил пользователю логически переходить на форме от поля к полю и от
кнопки к кнопке, а именно слева направо и сверху вниз.
5. Чтобы установить кнопки OK или Cancel используют свойство Kind
управляющего элемента Delphi TBitBtn (кнопка с растровым изображением).
Установка кнопки OK автоматически устанавливает ее свойство Default
равным True, делая тем самым ее кнопкой, которая действует для данной
формы по умолчанию. Это значит, что для завершения редактирования текущей
записи пользователь может нажать , а для отмены ввода- .
6. Для активизации всплывающего меню вместо командных кнопок или как
дополнение к ним рассматривают использование правого щелчка мыши.
Некоторые пользователи отдают предпочтение именно этому виду меню,
которое приобрело популярность благодаря продуктам Borland.
11.5.Формы ввода данных.
Формы ввода данных используются для интенсивного ввода данных, в
основном, в базы данных. Внимание здесь больше уделяется скорости, а не
эстетике экрана или таким деталям, как всплывающие подсказки или
раскрывающиеся списки. Формы ввода данных обычно в достаточной степени
лаконичны и включают только самые необходимые элементы. Как правило,
пользователями таких форм являются операторы ввода данных, которые во время
работы смотрят в основном на исходные документы, а не на экран. Особое
внимание уделяется здесь клавиатуре, поскольку использование мыши требует
визуального взаимодействия.
1. Когда скорость ввода является решающим фактором, используют полужирный
моноширинный шрифт, который легче читается с одного взгляда.
2. Убирают ненужные кнопки и поля, а также управляющие элементы, которые
оказываются лишними для быстрого ввода данных. Например, если
пользователю никогда не понадобится номер счета, надо убрать с формы
соответствующую кнопку - она только занимает экранную площадь. Если в
формах обработки транзакций некоторые элементы создают удобства, то
быстрому вводу данных они могут просто мешать.
3. Используют акселераторы, которые легко нажимать. Назначают клавиши
ускоренного доступа с учетом их применения, а не в зависимости от позиции
на экране. Если два управляющих элемента должны по идее иметь одну и ту
же горячую клавишу, отдают ее тому, который используется чаще, а не тому,
который позиционно расположен на форме первым. Для другого элемента
придумывают новый акселератор. Для самых часто используемых элементов
отводят самые простые клавиши.
4. Там, где это уместно, делают действующей по умолчанию не кнопку OK, а
кнопку Add, которая добавляет новую запись. Это относится к формам, в
которых главной функцией является добавление записей, в отличие от
обычных форм обработки транзакций. Это будет способствовать более быстрой
работе с приложением, когда пользователю приходится добавлять несколько
записей подряд.
5. Не делают больших форм. В отличие от других тип форм, эта форма должна
быть как можно меньше, поскольку это позволит переместить ее в удобное
для пользователя место и снизить утомляемость глаз. Пользователи этого
типа обычно смотрят на исходные документы, а не на экран, поэтому
открывают эту форму в нормальном окне (а не в максимизированном или
минимизированном).
11.6. Проектирование отчетов.
1. Используют для проектирования отчетов компоненты QuickReport. Их легче
настраивать и использовать, чем внешние построители отчетов.
2. Для отчетов, которые слишком сложны для компонентов QuickReport,
используют графические построители отчетов. Особой популярностью
пользуются утилиты ReportSmith, R&R SQL Report Writer for Windows и
Crystal Reports. Применение графического построителя отчетов имеет много
преимуществ. Во-первых, отчеты создаются и модифицируются визуально, Это
легче, быстрее и рождает меньше ошибок, чем создание отчетов с помощью
исходного кода Object Pascal. Во-вторых, такие механизмы, как управление
разбивкой, заголовки, сноски и суммирование, встроены во все приличные
построители отчетов - для их использования не нужно писать программный
код. В-третьих, можно позволить пользователям модифицировать отчеты или
на их основе создать новые, причем без необходимости модифицировать
исходный код приложения.
3. В заголовок отчетов включают имя отчета, текущие дату и время, а также
имя пользователя, запускающего отчет. Включение даты и времени поможет
отличить друг от друга несколько версий одного и того же отчета и даст
представление о времени ее создания, если его просматривали в более
поздний срок. Включение внутреннего имени отчета поможет отследить
«источник» для отчета, который может пригодиться для работы в дальнейшем.
Имя пользователя, если оно записано в заголовке отчета, может
способствовать развитию контакта с пользователем для обсуждения будущих
проблем.
4. Включают любой критерий, используемый для отбора данных, отображаемых в
отчете в его страничном заголовке. Если в интерфейсном приложении
пользователь поддерживал даты или другой критерий, надо внести их в
заголовок страниц отчета. Это необходимо сделать, потому что данные могут
быть выпущены из отчета из-за того, что критерий был задан в интерфейсе.
Это может запутать пользователя. Вероятность такого события особенно
повышается, когда между моментом запуска отчета и моментом его просмотра
прошло значительное время.
5. Для заголовков используют пропорциональные шрифты, а для данных -
моноширинные. Пропорциональные шрифты придают отчету более изысканный вид
и в полной мере используют преимущества высокоорганизованных принтеров,
которые получили широкое распространение в наши дни. Более того,
пропорциональные шрифты отличают отчеты, сгенерированные современными
системами PC, от созданных на более старых и менее развитых системах. К
сожалению, пропорциональные шрифты обладают недостатком, который
выражается в трудностях выравнивания табличных данных. Поскольку цифра 1
оказывается уже цифры 5, то колонки данных не будут идеально
выровненными. Вместо этого используются шрифты с фиксированным шагом.
Обычно в заголовках отчета используется такой пропорциональный шрифт, как
Arial или Times New Roman, а в самом отчете - такой непропорциональный
шрифт, как Courier New.
6. Если в отчете необходимо подчеркивание, надо использовать атрибут
подчеркивания шрифта. Во многих построителях можно встраивать в
создаваемые отчеты графические элементы, включая линии и прямоугольники.
Графика, реализованная таким путем, занимает память принтера и замедляет
построение отчета, поскольку линия представляет собой графический, а не
текстовый элемент или элемент шрифта. Другой способ выделения текста,
который остался от времен использования матричных принтеров, является
символ подчеркивания ( _ ).Линии, нарисованные таким способом, зря
расходуют целую строку под той строкой, которую они должны подчеркивать.
Поэтому, когда нужно подчеркнуть в отчете какие-нибудь элементы, надо
применять в любом шрифте вместо перечисленных способов атрибут
подчеркивания.
7. При представлении нумерованных данных используют правое выравнивание, а
для числовых идентификаторов - левое (например, для номеров заготовок или
номеров отчетов).
8. Для выделения элементов отчета можно использовать прогрессивные
возможности форматирования при печати, например, такие атрибуты шрифта,
как печать с тенью или полужирное начертание. Но надо иметь в виде, что
принтер пользователя должен обладать теми средствами, которые
предполагали при построении отчета.
12. ВЫВОДЫ
В результате работы над дипломным проектом были подробно изучены
современные операционные системы, базы данных, методы построения приложений
и языки программирования. В результате анализа этого была поставлена
задача создания программы по управлению базой данных объектов гражданской
обороны. Разработанный программный продукт позволяет обеспечить:
Ведение данных:
. объектов экономики;
. защитных сооружениях;
. опасных веществах;
. техники;
. материально-технических средств;
. формирований;
. обучаемых на УМЦ;
Формирование списков:
. объектов экономики;
. защитных сооружениях;
. опасных веществах;
. техники;
. материально-технических средств;
. формирований;
. обучаемых на УМЦ;
Составление любой(!!!) статистической информации по введенным данным.
Данный программный продукт автоматизирует процесс подготовки к
принятию решений при возникших ЧС; регистрацию объектов экономики и
составление списка характеристик объекта;
регистрацию наличия и численности различных составляющих объекта; снижает
расходы на подготовку и уточнения списков объектов; учета готовности
объекта к ЧС; учета проведения занятий с обучающимися в УМЦ; уменьшает
время на подготовку списков объектов экономики и списков обучающихся на УМЦ
по различным критериям;
Также в дипломном проекте были рассмотрены следующие вопросы:
Организационно-экономическая часть -
Экономическое обоснование создания программного продукта. Расчет
затрат на НИР. Определение затрат программного продукта. Оценка
экономической эффективности разработки;
Охрана труда и экология -
Оптимизация условия труда инженера-программиста при разработке
программного обеспечения;
Гражданская оборона -
Применение ЭВМ для повышения эффективности работы штаба ГО объекта
экономики;
Эргономическая часть -
Эргономическая оценка информационного обеспечения ЭВМ.
.
13. ЛИТЕРАТУРА
1. Атаманюк, Л.Г. Ширшев Гражданская оборона, Москва “Высшая школа”
1986г;
2. Журнал PCWEEK 30 сентября 1997 (65стр);
3. Журнал PCWEEK 19 августа 1997 (20стр);
4. Журнал ComputerWorld, Статья Делерри Хелд «Где же этот хваленый
универсальный сервер», 1997 21 номер;
5. Кен Хендерсон, Руководство разработчика баз данных в Delphi 2;
6. Журнал LAN апрель 1995, Статья Дж. Салеми;
7. Журнал LAN декабрь 1995, Статья Билла Лазарья;
8. Журнал СУБД 1995г №4 стр 50-57;
9. Dr. E.F. Codd "A Relational Model of Data for Large Share Data Banks",
1970;
10. Стивен Бобровски, Oracle 7 вычисление клиент/сервер;
11. С.Орлик, Секреты Delphi;
12. Сергей Дунаев, Borland технологии;
13. Эндрю Возневич, Освой самостоятельно Delphi;
14. А.Федоров, Создание Windows-приложений в среде Delphi;
15. Мартин Грабер, Введение в SQL;
16. А.М. Епанешников, Программирование в среде Delphi 2.0
17. B.Ю. Баженова, Windows SQL
18. В.В. Фаронов Библиотека Turbo Vision 6.0
19. Справочник по функциям и процедурам Borland Pascal 7.0
20. Подборка статей из эхо-конференции RU.DELPHI, RU.DELPHI.DB в сети
FIDONET (от сентября по декабрь1997 года).
ПРИЛОЖЕНИЕ 1
П.1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
П.1.1 Общие сведения
Система по управлению базой данных GOBASE предназначена для учета
объектов экономики, ведения базы данных о объектах экономики, учет
готовности объекта в случае возможных чрезвычайных ситуациях (ЧС),
формирования и печати списков объектов, а так же для учета обучаемых в
учебно-методическом центре (УМЦ).
GOBASE разрабатывается для использования в автоматизированной
системе оповещения при ЧС.
П.1.2. Постановка задачи
Спроектировать программный продукт, представляющий собой
доступ и управление базой данных в локальной вычислительной сети.
Разработка программы основывается на следующих документах:
1). Справочная литература по программированию на Delphi 2.0 для
Windows.
2). Справочная литература по работе с распределенной базой данных
Oracle.
3). Справочная литература по работе с операционной системой Windows.
4). Справочная литература по работе с операционной системой Novell
Netware.
Разработанный программный продукт необходимо представить в виде
исполняемых файлов.
П.1.3. Основания для разработки
Основанием для разработки является задание на дипломное проектирование.
Основанием для разработки также является договор на создание научно-
технической продукции между: Сафроновым С.О. и управлением по делам ГО и
ЧС ЮЗАО г.Москва.
П.1.4. Назначение и цели создания программного продукта
Данное программное обеспечение предназначено для выполнения
технологических функции в интересах системы предупреждения и ликвидации
ЧС.
Целью работы является создание программного продукта,
обеспечивающего:
1) автоматизацию процесса подготовки и принятия решения при
предупреждении и ликвидации ЧС;
2) регистрацию объектов экономики и их характеристик;
3) наличие и численного состава:
. техники;
. защитных сооружений;
. химически опасных веществ;
. материально-технических средств;
. формирований на объекте;
4) снижение времени на подготовку и уточнения данных по объектам ГО;
5) готовность объекта к ЧС;
6) проведение занятий с обучающимися в УМЦ;
7) контроль однократности учета объектов и обучающихся;
В состав функционального комплекса должны входить:
1) задача первоначального ввода информации об объектах экономики;
2) задача первоначального ввода информации об обучаемых на УМЦ;
3) задача формирования и печати списков объектов экономики;
4) задача формирования и печати списков обучаемых на УМЦ;
Необходимо спроектировать программу, содержащую стандартные элементы
управления. Программа должна удовлетворять эргономическим требованиям.
П.1.5. Требования к программе
Данная программа должна поддерживать интерфейс с пользователем
(верхний уровень) и интерфейс с распределенной базой данных (нижний
уровень). Программа GOBASE предназначена для работы под управлением
операционной среды Windows. Интерфейс пользователя должны соответствовать
стандартам Windows.
Для удобства отладки и тестирования программу целесообразно разделить
на отдельные блоки в соответствии с выполняемыми задачами.
При проектировании следует учитывать, что большинство пользователей
не является специалистами в вычислительной технике. Их знания компьютера
находятся на уровне оператора ЭВМ. Для работы с программой - пользователям
необходимо освоить работу в Windows на уровне оператора ЭВМ и ознакомиться
с руководством пользователя GOBASE.
В программе необходимо предусмотреть меры защиты от некорректных
действий пользователя. В частности предусмотреть запрос подтверждения
выполнения тех команд, выполнение которых может привести к значительным
потерям времени или к потери данных.
Программа должна обладать достаточной надежностью, работать под
операционной системой Windows 95 или Windows NT. Занимать не более 4Mb
оперативной памяти и не более 5Мб на диске в рабочем состоянии.
П.1.6. Состав и содержание работ по созданию программы
1). проектирование структуры базы данных;
2). проектирование прикладных процессов, необходимых для реализации
задачи;
3). разработка алгоритма программы;
4). кодирование алгоритма;
5). тестирование программы;
Следует учитывать, что при проектировании Windows - приложения
стирается грань между разработкой алгоритма и кодированием. При этом можно
начинать тестирование отдельных логически завершенных фрагментов программы
до завершения написания всей программы. Руководства по установке и
эксплуатации программного продукта могут входить в состав справочной
системы, к которой можно обращаться из основного исполнимого модуля
программы.
П.1.7. Входная информация
Входной информацией для функционального комплекса являются:
1). данные об объекте:
- наименование объекта;
- адрес объекта;
- количество работающих;
- наибольшая работающая смена;
- степень опасности;
- перечень хранимых опасных веществ;
- количество хранимых веществ;
- наличие и класс защитных сооружений;
- территориальная принадлежность к району;
- род деятельности;
- форма собственности;
- особенности объекта;
- подчиненность объекта;
- регистрационный номер объекта;
- Ф.И.О. руководителя объекта;
- занимаемая должность руководителя объекта;
- рабочий телефон руководителя объекта;
- домашний телефон руководителя объекта;
- Ф.И.О. начальника штаба ГО объекта;
- занимаемая должность начальника штаба ГО объекта;
- рабочий телефон начальника штаба ГО объекта;
- домашний телефон начальника штаба ГО объекта;
- телефон дежурного по объекту;
- телефон факса;
- телефон модема;
- время работы модема;
2). данные об обучаемых в УМЦ:
- Ф.И.О. обучаемого;
- индивидуальный номер обучаемого;
- категория обучаемого;
- занимаемая должность обучаемого;
- занимаемая должность обучаемого по ГО;
- рабочий телефон обучаемого;
- домашний телефон обучаемого;
- домашний адрес обучаемого;
- дата последнего обучения;
- дата планируемого обучения;
П.1.8. Выходная информация
Выходной информацией функционального комплекса являются:
1). списки объектов экономики установленной формы:
- в алфавитном порядке;
- по территориальной принадлежности к району;
2). списки обучаемых на УМЦ установленной формы:
- в алфавитном порядке;
- в порядке даты следующего обучения;
- в порядке принадлежности к объекту.
П.1.9. Порядок контроля и приемки программы
Контроль работоспособности программы возложить на Beta-тестеров
входящих в подразделение заказчика (не менее 3 человек).
П.1.10. Требования к составу и содержанию работ по установке программы на
рабочем месте оператора
Установка программы производится путем инсталляции программы с гибкого
диска изготовителя на жесткий диск компьютера. Перенос программы на другие
машины без разрешения изготовителя запрещен.
П.1.11. Требования к документированию
Изготовитель программного продукта обязан предоставить следующие
документы:
1). руководство пользователя программы GOBASE;
2). руководство по установке;
Эти документы должны быть включены в состав справочной системы
программы.
П.1.12. Источники разработки
Техническое задание на создание программы управления базой данных
локальной вычислительной сети.
ПРИЛОЖЕНИЕ 2
СОСТОЯНИЕ И ПЕРСПЕКТИВЫ РАЗВИТИЯ МОСКОВСКОЙ
ГОРОДСКОЙ СИСТЕМЫ ПРЕДУПРЕЖДЕНИЯ
И ЛИКВИДАЦИИ ЧРЕЗВЫЧАЙНЫХ СИТУАЦИЙ
Е.М. Кистанов
Начальник Штаба ГОЧС Москвы, генерал-майор
Город Москва - крупнейший политический, научный и
промышленный центр страны, важнейший транспортный узел.
речной порт и центр воздушных перевозок.
Площадь - 1061,0 кв.км. Население - 8,7 млн.чел. Москва
относится к химически опасным городам, на ее территории размещается большое
количество взрыво- и пожароопасных объектов.
Ежедневно железнодорожным и автомобильным транспортом в город
поступают и провозятся транзитом опасные грузы.
Большинство химически, -взрыво, -пожаро и других потенциально опасных
объектов размещаются в непосредственной близости от жилой зоны. Высокая
концентрация промышленных предприятий и автомобильного транспорта создают
сложную экологическую обстановку (задымление, загазованность) со
значительными превышениями предельно-допустимых концентраций.
В настоящее время в городе расположено около 70 химически опасных
объектов с общим запасом сильнодействующих ядовитых веществ 4600 т, в том
числе хлора 1300 т, аммиака 2300 т. различных кислот свыше 1000 т.
Наиболее крупными объектами являются по запасам хлора:
водопроводные станции - 4 (от 330 до 350 т); Московский электродный завод -
до 30 т.;
по запасам аммиака: 12 хладокомбинатов (от 10 до 120 т); 15 оптово-
розничных плодоовощных объединений (от 2 до 170 т);
по запасам кислот: Акционерное общество Желатиновый
завод - до 300 т соляной кислоты; Чертановская база кислот - 168
т азотной и соляной кислоты; Институт легких сплавов - 80 т
азотной кислоты; Московский завод полиметаллов - до 36 т азотной кислоты;
завод им. Войкова - до 70 т соляной кислоты.
В городской черте размещено: Московский нефтеперерабатывающий завод
(Капотня), 3 нефтебазы, около 200 АЗС.
Город Москва имеет развитую систему водо, газо, энергоснабжения.
Аварии на энергетических и инженерных сетях могут привести к нарушению
жизнедеятельности населения отдельных
районов и прекращению работы промышленных предприятий.
На территории города расположены три радиационно опас-
ных объекта (институт им.Курчатова - Северо-Западный АО, Мо-
сковский инженерно-физический институт - Южный АО, ВНИ-
КИЭТ - Центральный АО).
Город имеет большую сеть водных артерий (реки Москва,
Яуза, Сетунь, Сходня, канал им. Москвы), 2 речных вокзала
(Северный. Южный) и три речных порта (Северный, Западный и
Южный). Зона возможного катастрофического затопления может
составить свыше 80 кв.км. с населением 268,9 тыс.человек.
Через 20 железнодорожных станций на предприятия города
ежесуточно поступают под выгрузку до 30 вагонов со СДЯВ (хлор,
аммиак, кислоты) общим весом до 1800 т. В случае аварии при транспортировке
сильнодействующих ядовитых веществ зоны возможного химического заражения
будут соизмеримы с зонами соответствующих химически опасных объектов.
Практически при аварии на них угроза населению может возникнуть в любой
точке города.
Вот очень коротко о потенциальных опасностях для населе-
ния и территорий г. Москвы, не касаясь проблем экологии, геоло-
гического риска и вопросов медицины.
Анализ аварий и происшествий показывает, что характер
происшествий при перевозке СДЯВ и легковоспламеняющихся
жидкостей автомобильным и железнодорожным транспортом закономерно
повторяются принося значительный материальный и экологический ущерб. За
1996 год у нас зарегистрировано 14 производственных аварий на химически и
пожароопасных объектах.
шесть случаев с выбросом аммиака. Не уменьшается число происшествий на
метрополитене города. В 1996 году было 11 аварийных
ситуаций.
Увеличилось количество случаев обнаружения взрывоопасных устройств -
98 случаев. Трижды были обнаружены источники
радиоактивных веществ. Из-за неправильного использования и
хранения бытового газа в 11 случаях погибло 5 и пострадало 24
человека. Растет количество умышленных подрывов взрывных устройств.
Продолжают будоражить город анонимные звонки о минировании общественных и
жилых зданий, автомобилей. В каждом
таком случае проводится целый комплекс мероприятий, включающих оцепление,
эвакуацию, вызов дежурных подразделений и
т.д. И только в 0,3% из 1000 звонков были обнаружены взрывные
устройства.
В настоящее время важное социальное и экономическое
значение имеют профилактика, прогнозирование и ликвидации
последствий чрезвычайных ситуаций, возникающих в результате
аварий, катастроф и стихийных бедствий.
Снижение уровня техногенной нагрузки города Москвы.
который неоправданно велик, является одной из важнейших задач
перспективного генерального плана развития Москвы.
ПРИЛОЖЕНИЕ 3
spool build.log
connect internal
startup nomount pfile=STAS:ORANW722\DATABASE\initorcl.ora
create database gobase
controlfile reuse
logfile 'STAS:ORANW722\DATABASE\log1orcl.ora' size 200K reuse,
'STAS:ORANW722\DATABASE\log2orcl.ora' size 200K reuse
datafile 'STAS:ORANW722\DATABASE\sys1orcl.ora' size 100M reuse
autoextend on
next 100M maxsize 2000M
character set CL8MSWIN1251;
create rollback segment rb_temp;
alter rollback segment rb_temp online;
@build_db.sql
@STAS:ORANW722\RDBMS72\admin\catalog.sql
@STAS:ORANW722\RDBMS72\admin\catalog6.sql
@STAS:ORANW722\RDBMS72\admin\catproc.sql
connect system/manager
@STAS:ORANW722\RDBMS72\admin\catdbsyn.sql
@pupbld.sql
connect internal
alter rollback segment rb_temp offline;
shutdown;
spool off
ПРИЛОЖЕНИЕ 4
CREATE TABLE ACTIVITY
(ACTIVITY_ID NUMBER(7) NOT NULL,
ACTIVITY_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKACTIVITY
ON ACTIVITY
(
ACTIVITY_ID ASC
);
ALTER TABLE ACTIVITY
ADD ( PRIMARY KEY (ACTIVITY_ID) ) ;
CREATE TABLE BUILDING
(BUILDING_ID NUMBER(7) NOT NULL,
BUILDING_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKBUILDING
ON BUILDING
(
BUILDING_ID ASC
);
ALTER TABLE BUILDING
ADD ( PRIMARY KEY (BUILDING_ID) ) ;
CREATE TABLE BUILDINGOB
(OBJECT_ID NUMBER(9) NOT NULL,
BUILDING_ID NUMBER(7) NOT NULL,
BUILDINGNUM NUMBER(9) NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(100) NULL
);
CREATE UNIQUE INDEX IPKBUILDINGOB
ON BUILDINGOB
(
OBJECT_ID ASC,
BUILDING_ID ASC
);
CREATE INDEX IFKOBBUILDINGOB
ON BUILDINGOB
(
OBJECT_ID ASC
);
CREATE INDEX IFKBUBUILDINGOB
ON BUILDINGOB
(
BUILDING_ID ASC
);
ALTER TABLE BUILDINGOB
ADD ( PRIMARY KEY (OBJECT_ID, BUILDING_ID) ) ;
CREATE TABLE CATEGORY
(CATEGORY_ID NUMBER(7) NOT NULL,
CATEGORY_TYPE NUMBER(1) NOT NULL,
CATEGORY_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKCATEGORY
ON CATEGORY
(
CATEGORY_ID ASC
);
ALTER TABLE CATEGORY
ADD ( PRIMARY KEY (CATEGORY_ID) ) ;
CREATE TABLE CATTEMA
(TEMA_ID NUMBER(7) NOT NULL,
CATEGORY_ID NUMBER(7) NOT NULL,
CATTEMANUM NUMBER(4) NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(100) NULL
);
CREATE UNIQUE INDEX IPKCATTEMA
ON CATTEMA
(
TEMA_ID ASC,
CATEGORY_ID ASC
);
CREATE INDEX IFKTECATTEMA
ON CATTEMA
(
TEMA_ID ASC
);
CREATE INDEX IFKCACATTEMA
ON CATTEMA
(
CATEGORY_ID ASC
);
ALTER TABLE CATTEMA
ADD ( PRIMARY KEY (TEMA_ID, CATEGORY_ID) ) ;
CREATE TABLE DEPARTAMENT
(DEPARTAMENT_ID NUMBER(7) NOT NULL,
DEPARTAMENT_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKDEPARTAMENT
ON DEPARTAMENT
(
DEPARTAMENT_ID ASC
);
ALTER TABLE DEPARTAMENT
ADD ( PRIMARY KEY (DEPARTAMENT_ID) ) ;
CREATE TABLE FORMIROV
(FORMIROV_ID NUMBER(7) NOT NULL,
FORMIROV_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKFORMIROV
ON FORMIROV
(
FORMIROV_ID ASC
);
ALTER TABLE FORMIROV
ADD ( PRIMARY KEY (FORMIROV_ID) ) ;
CREATE TABLE FORMIROVOB
(FORMIROV_ID NUMBER(7) NOT NULL,
OBJECT_ID NUMBER(9) NOT NULL,
READY_ID NUMBER(7) NOT NULL,
FORMIROVNUM NUMBER(9) NULL,
PEOPLENUM NUMBER(9) NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(100) NULL
);
CREATE UNIQUE INDEX IPKFORMIROVOB
ON FORMIROVOB
(
FORMIROV_ID ASC,
OBJECT_ID ASC
);
CREATE INDEX IFKFOFORMIROVOB
ON FORMIROVOB
(
FORMIROV_ID ASC
);
CREATE INDEX IFKOBFORMIROVOB
ON FORMIROVOB
(
OBJECT_ID ASC
);
CREATE INDEX IFKREFORMIROVOB
ON FORMIROVOB
(
READY_ID ASC
);
ALTER TABLE FORMIROVOB
ADD ( PRIMARY KEY (FORMIROV_ID, OBJECT_ID) ) ;
CREATE TABLE GOBASEUSER
(GOBASEUSER_ID NUMBER(7) NOT NULL,
NAME VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKGOBASEUSER
ON GOBASEUSER
(
GOBASEUSER_ID ASC
);
ALTER TABLE GOBASEUSER
ADD ( PRIMARY KEY (GOBASEUSER_ID) ) ;
CREATE TABLE MATERIAL
(MATERIAL_ID NUMBER(7) NOT NULL,
MATERIAL_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKMATERIAL
ON MATERIAL
(
MATERIAL_ID ASC
);
ALTER TABLE MATERIAL
ADD ( PRIMARY KEY (MATERIAL_ID) ) ;
CREATE TABLE MATERIALOB
(OBJECT_ID NUMBER(9) NOT NULL,
MATERIAL_ID NUMBER(7) NOT NULL,
MATERIALNUM NUMBER(9) NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(100) NULL
);
CREATE UNIQUE INDEX IPKMATERIALOB
ON MATERIALOB
(
OBJECT_ID ASC,
MATERIAL_ID ASC
);
CREATE INDEX IFKOBMATERIALOB
ON MATERIALOB
(
OBJECT_ID ASC
);
CREATE INDEX IFKMAMATERIALOB
ON MATERIALOB
(
MATERIAL_ID ASC
);
ALTER TABLE MATERIALOB
ADD ( PRIMARY KEY (OBJECT_ID, MATERIAL_ID) ) ;
CREATE TABLE MATTEH
(MATTEH_ID NUMBER(7) NOT NULL,
SERVIS_ID NUMBER(7) NOT NULL,
MATTEH_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKMATTEH
ON MATTEH
(
MATTEH_ID ASC
);
CREATE INDEX IFKSEMATTEH
ON MATTEH
(
SERVIS_ID ASC
);
ALTER TABLE MATTEH
ADD ( PRIMARY KEY (MATTEH_ID) ) ;
CREATE TABLE MATTEHOB
(OBJECT_ID NUMBER(9) NOT NULL,
MATTEH_ID NUMBER(7) NOT NULL,
MATTEHNUM NUMBER(9) NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(100) NULL
);
CREATE UNIQUE INDEX IPKMATTEHOB
ON MATTEHOB
(
OBJECT_ID ASC,
MATTEH_ID ASC
);
CREATE INDEX IFKMAMATTEHOB
ON MATTEHOB
(
MATTEH_ID ASC
);
CREATE INDEX IFKOBMATTEHOB
ON MATTEHOB
(
OBJECT_ID ASC
);
ALTER TABLE MATTEHOB
ADD ( PRIMARY KEY (OBJECT_ID, MATTEH_ID) ) ;
CREATE TABLE OBECONOM
(OBJECT_ID NUMBER(9) NOT NULL,
OBJECTNO NUMBER(7) NOT NULL,
POSTGO_ID NUMBER(7) NOT NULL,
POST_ID NUMBER(7) NOT NULL,
DEPARTAMENT_ID NUMBER(7) NOT NULL,
RISK_ID NUMBER(7) NOT NULL,
PROPERTY_ID NUMBER(7) NOT NULL,
ACTIVITY_ID NUMBER(7) NOT NULL,
REGION_ID NUMBER(7) NOT NULL,
PECULIAR_ID NUMBER(7) NOT NULL,
GLAVOBJECT_ID NUMBER(7) NOT NULL,
OBJECTNAME VARCHAR2(100) NULL,
ADDRESS_IND CHAR(6) NULL,
TOWN_ID NUMBER(9) NULL,
ADDRESS_CHAR VARCHAR2(150) NULL,
WORKNUMBER NUMBER(7) NULL,
NRSM NUMBER(7) NULL,
NRSV NUMBER(7) NULL,
DIRECTIONNAME VARCHAR2(50) NULL,
DIRECTIONWTEL CHAR(7) NULL,
DIRECTIONHTEL CHAR(7) NULL,
ZAMNAME VARCHAR2(50) NULL,
ZAMWTEL CHAR(7) NULL,
ZAMHTEL CHAR(7) NULL,
COMANDGONAME VARCHAR2(50) NULL,
COMANDGOWTEL CHAR(7) NULL,
COMANDGOHTEL CHAR(7) NULL,
P1NAME VARCHAR2(50) NULL,
P1WTEL CHAR(7) NULL,
P1HTEL CHAR(7) NULL,
P2NAME VARCHAR2(50) NULL,
P2WTEL CHAR(7) NULL,
P2HTEL CHAR(7) NULL,
P3NAME VARCHAR2(50) NULL,
P3WTEL CHAR(7) NULL,
P3HTEL CHAR(7) NULL,
DUTYTEL CHAR(7) NULL,
DUTY2TEL CHAR(7) NULL,
FAXTEL CHAR(7) NULL,
MODEMTEL CHAR(7) NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(200) NULL
);
CREATE UNIQUE INDEX IPKOBECONOM
ON OBECONOM
(
OBJECT_ID ASC
);
CREATE INDEX IFKPEOBECONOM
ON OBECONOM
(
PECULIAR_ID ASC
);
CREATE INDEX IFKRIOBECONOM
ON OBECONOM
(
RISK_ID ASC
);
CREATE INDEX IFKPROBECONOM
ON OBECONOM
(
PROPERTY_ID ASC
);
CREATE INDEX IFKACOBECONOM
ON OBECONOM
(
ACTIVITY_ID ASC
);
CREATE INDEX IFKREOBECONOM
ON OBECONOM
(
REGION_ID ASC
);
CREATE INDEX IFKDEOBECONOM
ON OBECONOM
(
DEPARTAMENT_ID ASC
);
CREATE INDEX IFKPOOBECONOM
ON OBECONOM
(
POST_ID ASC
);
CREATE INDEX IFKPGOBECONOM
ON OBECONOM
(
POSTGO_ID ASC
);
ALTER TABLE OBECONOM
ADD ( PRIMARY KEY (OBJECT_ID) ) ;
CREATE TABLE ORAUSER
(ORAUSER_ID INTEGER NOT NULL,
GOBASEUSER_ID NUMBER(7) NOT NULL
);
CREATE UNIQUE INDEX IPKORAUSER
ON ORAUSER
(
ORAUSER_ID ASC
);
CREATE INDEX IFKGORAUSER
ON ORAUSER
(
GOBASEUSER_ID ASC
);
ALTER TABLE ORAUSER
ADD ( PRIMARY KEY (ORAUSER_ID) ) ;
CREATE TABLE PECULIAR
(PECULIAR_ID NUMBER(7) NOT NULL,
PECULIAR_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKPECULIAR
ON PECULIAR
(
PECULIAR_ID ASC
);
ALTER TABLE PECULIAR
ADD ( PRIMARY KEY (PECULIAR_ID) ) ;
CREATE TABLE POST
(POST_ID NUMBER(7) NOT NULL,
POST_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKPOST
ON POST
(
POST_ID ASC
);
ALTER TABLE POST
ADD ( PRIMARY KEY (POST_ID) ) ;
CREATE TABLE POSTGO
(POSTGO_ID NUMBER(7) NOT NULL,
POSTGO_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKPOSTGO
ON POSTGO
(
POSTGO_ID ASC
);
ALTER TABLE POSTGO
ADD ( PRIMARY KEY (POSTGO_ID) ) ;
CREATE TABLE PROPERTY
(PROPERTY_ID NUMBER(7) NOT NULL,
PROPERTY_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKPROPERTY
ON PROPERTY
(
PROPERTY_ID ASC
);
ALTER TABLE PROPERTY
ADD ( PRIMARY KEY (PROPERTY_ID) ) ;
CREATE TABLE READY
(READY_ID NUMBER(7) NOT NULL,
READY_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKREADY
ON READY
(
READY_ID ASC
);
ALTER TABLE READY
ADD ( PRIMARY KEY (READY_ID) ) ;
CREATE TABLE REGION
(REGION_ID NUMBER(7) NOT NULL,
REGION_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKREGION
ON REGION
(
REGION_ID ASC
);
ALTER TABLE REGION
ADD ( PRIMARY KEY (REGION_ID) ) ;
CREATE TABLE RISK
(RISK_ID NUMBER(7) NOT NULL,
RISK_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKRISK
ON RISK
(
RISK_ID ASC
);
ALTER TABLE RISK
ADD ( PRIMARY KEY (RISK_ID) ) ;
CREATE TABLE SERVIS
(SERVIS_ID NUMBER(7) NOT NULL,
SERVIS_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKSERVIS
ON SERVIS
(
SERVIS_ID ASC
);
ALTER TABLE SERVIS
ADD ( PRIMARY KEY (SERVIS_ID) ) ;
CREATE TABLE SPOST
(SPOST_ID NUMBER(7) NOT NULL,
SPOST_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKSPOST
ON SPOST
(
SPOST_ID ASC
);
ALTER TABLE SPOST
ADD ( PRIMARY KEY (SPOST_ID) ) ;
CREATE TABLE STUDY
(STUDY_ID NUMBER(9) NOT NULL,
OBJECT_ID NUMBER(9) NOT NULL,
SPOST_ID NUMBER(7) NOT NULL,
CATEGORY_ID NUMBER(7) NOT NULL,
NAME VARCHAR2(50) NULL,
WORKTEL CHAR(7) NULL,
LASTDATE DATE NOT NULL,
NEXTDATE DATE NOT NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(200) NULL
);
CREATE UNIQUE INDEX IPKSTUDY
ON STUDY
(
STUDY_ID ASC
);
CREATE INDEX IFKCASTUDY
ON STUDY
(
CATEGORY_ID ASC
);
CREATE INDEX IFKOBSTUDY
ON STUDY
(
OBJECT_ID ASC
);
CREATE INDEX IFKSPSTUDY
ON STUDY
(
SPOST_ID ASC
);
ALTER TABLE STUDY
ADD ( PRIMARY KEY (STUDY_ID) ) ;
CREATE TABLE TEHNICA
(TEHNICA_ID NUMBER(7) NOT NULL,
TEHNICA_CHAR VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX IPKTEHNICA
ON TEHNICA
(
TEHNICA_ID ASC
);
ALTER TABLE TEHNICA
ADD ( PRIMARY KEY (TEHNICA_ID) ) ;
CREATE TABLE TEHNICAOB
(OBJECT_ID NUMBER(9) NOT NULL,
TEHNICA_ID NUMBER(7) NOT NULL,
TEHNICANUM NUMBER(9) NULL,
NAMEADD_ID NUMBER(7) NOT NULL,
DATEADD DATE NOT NULL,
NAMEINS_ID NUMBER(7) NOT NULL,
DATEINS DATE NOT NULL,
PRIM VARCHAR2(100) NULL
);
CREATE UNIQUE INDEX IPKTEHNICOB
ON TEHNICAOB
(
OBJECT_ID ASC,
TEHNICA_ID ASC
);
CREATE INDEX IFKTETEHNICAOB
ON TEHNICAOB
(
TEHNICA_ID ASC
);
CREATE INDEX IFKOBTEHNICAOB
ON TEHNICAOB
(
OBJECT_ID ASC
);
ALTER TABLE TEHNICAOB
ADD ( PRIMARY KEY (OBJECT_ID, TEHNICA_ID) ) ;
CREATE TABLE TEMA
(TEMA_ID NUMBER(7) NOT NULL,
TEMA_CHAR VARCHAR2(255) NULL
);
CREATE UNIQUE INDEX IPKTEMA
ON TEMA
(
TEMA_ID ASC
);
ALTER TABLE TEMA
ADD ( PRIMARY KEY (TEMA_ID) ) ;
ALTER TABLE BUILDINGOB
ADD ( FOREIGN KEY (BUILDING_ID)
REFERENCES BUILDING ) ;
ALTER TABLE BUILDINGOB
ADD ( FOREIGN KEY (OBJECT_ID)
REFERENCES OBECONOM ) ;
ALTER TABLE CATTEMA
ADD ( FOREIGN KEY (CATEGORY_ID)
REFERENCES CATEGORY ) ;
ALTER TABLE CATTEMA
ADD ( FOREIGN KEY (TEMA_ID)
REFERENCES TEMA ) ;
ALTER TABLE FORMIROVOB
ADD ( FOREIGN KEY (READY_ID)
REFERENCES READY ) ;
ALTER TABLE FORMIROVOB
ADD ( FOREIGN KEY (OBJECT_ID)
REFERENCES OBECONOM ) ;
ALTER TABLE FORMIROVOB
ADD ( FOREIGN KEY (FORMIROV_ID)
REFERENCES FORMIROV ) ;
ALTER TABLE MATERIALOB
ADD ( FOREIGN KEY (MATERIAL_ID)
REFERENCES MATERIAL ) ;
ALTER TABLE MATERIALOB
ADD ( FOREIGN KEY (OBJECT_ID)
REFERENCES OBECONOM ) ;
ALTER TABLE MATTEH
ADD ( FOREIGN KEY (SERVIS_ID)
REFERENCES SERVIS ) ;
ALTER TABLE MATTEHOB
ADD ( FOREIGN KEY (MATTEH_ID)
REFERENCES MATTEH ) ;
ALTER TABLE MATTEHOB
ADD ( FOREIGN KEY (OBJECT_ID)
REFERENCES OBECONOM ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (POSTGO_ID)
REFERENCES POSTGO ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (POST_ID)
REFERENCES POST ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (DEPARTAMENT_ID)
REFERENCES DEPARTAMENT ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (REGION_ID)
REFERENCES REGION ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (ACTIVITY_ID)
REFERENCES ACTIVITY ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (PROPERTY_ID)
REFERENCES PROPERTY ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (RISK_ID)
REFERENCES RISK ) ;
ALTER TABLE OBECONOM
ADD ( FOREIGN KEY (PECULIAR_ID)
REFERENCES PECULIAR ) ;
ALTER TABLE ORAUSER
ADD ( FOREIGN KEY (GOBASEUSER_ID)
REFERENCES GOBASEUSER ) ;
ALTER TABLE STUDY
ADD ( FOREIGN KEY (SPOST_ID)
REFERENCES SPOST ) ;
ALTER TABLE STUDY
ADD ( FOREIGN KEY (OBJECT_ID)
REFERENCES OBECONOM ) ;
ALTER TABLE STUDY
ADD ( FOREIGN KEY (CATEGORY_ID)
REFERENCES CATEGORY ) ;
ALTER TABLE TEHNICAOB
ADD ( FOREIGN KEY (OBJECT_ID)
REFERENCES OBECONOM ) ;
ALTER TABLE TEHNICAOB
ADD ( FOREIGN KEY (TEHNICA_ID)
REFERENCES TEHNICA ) ;
/
DROP INDEX IFKGORAUSER;
CREATE UNIQUE INDEX IFKGORAUSER
ON ORAUSER
(
GOBASEUSER_ID ASC
);
DROP INDEX IFKNOOBECONOM;
CREATE UNIQUE INDEX IFKNOOBECONOM
ON OBECONOM
(
OBJECTNO ASC
);
/
ALTER TABLE GO.OBECONOM ADD
(
FOREIGN KEY ( GLAVOBJECT_ID )
REFERENCES
GO.OBECONOM(OBJECT_ID)
);
ALTER TABLE GO.STUDY ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.STUDY ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.OBECONOM ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.OBECONOM ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.MATERIALOB ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.MATERIALOB ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.BUILDINGOB ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.BUILDINGOB ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.TEHNICAOB ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.TEHNICAOB ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.FORMIROVOB ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.FORMIROVOB ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.MATTEHOB ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.MATTEHOB ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.CATTEMA ADD
(
FOREIGN KEY ( NAMEADD_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
ALTER TABLE GO.CATTEMA ADD
(
FOREIGN KEY ( NAMEINS_ID )
REFERENCES
GO.GOBASEUSER(GOBASEUSER_ID)
);
/
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;
/
CREATE TRIGGER IU_OBECONOM BEFORE INSERT OR UPDATE ON GO.OBECONOM
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;
/
CREATE TRIGGER IU_MATERIALOB BEFORE INSERT OR UPDATE ON GO.MATERIALOB
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;
/
CREATE TRIGGER IU_BUILDINGOB BEFORE INSERT OR UPDATE ON GO.BUILDINGOB
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;
/
CREATE TRIGGER IU_FORMIROVOB BEFORE INSERT OR UPDATE ON GO.FORMIROVOB
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;
/
CREATE TRIGGER IU_TEHNICAOB BEFORE INSERT OR UPDATE ON GO.TEHNICAOB
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;
/
CREATE TRIGGER IU_MATTEHOB BEFORE INSERT OR UPDATE ON GO.MATTEHOB
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;
/
CREATE TRIGGER IU_CATTEMA BEFORE INSERT OR UPDATE ON GO.CATTEMA
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;
/
CREATE SEQUENCE S_STUDY;
CREATE SEQUENCE S_CATEGORY;
CREATE SEQUENCE S_TEMA;
CREATE SEQUENCE S_SPOST;
CREATE SEQUENCE S_OBECONOM;
CREATE SEQUENCE S_PECULIAR;
CREATE SEQUENCE S_REGION;
CREATE SEQUENCE S_RISK;
CREATE SEQUENCE S_DEPARTAMENT;
CREATE SEQUENCE S_PROPERTY;
CREATE SEQUENCE S_ACTIVITY;
CREATE SEQUENCE S_POST;
CREATE SEQUENCE S_POSTGO;
CREATE SEQUENCE S_MATERIAL;
CREATE SEQUENCE S_BUILDING;
CREATE SEQUENCE S_TEHNICA;
CREATE SEQUENCE S_MATTEH;
CREATE SEQUENCE S_SERVIS;
CREATE SEQUENCE S_FORMIROV;
CREATE SEQUENCE S_READY;
/
Страницы: 1, 2, 3, 4, 5, 6
|