Система управления базой данных объектов гражданской обороны для принятия решений в чрезвычайной ситуацииРефераты >> Военная кафедра >> Система управления базой данных объектов гражданской обороны для принятия решений в чрезвычайной ситуации
В основных таблицах предусмотрена дополнительная информация по тому кто и в какое время ввел данные в таблицу. Это поля:
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 | |