- •2005.552800.Бд.Кп.Пз т28-320.13
- •5 Проектирование реляционной и внешних моделей
- •5.1 Устранение категорий и явных связей
- •5.3 Разработка моделей внешних представлений
- •5.4 Вывод
- •6 Разработка sql-кода базы данных
- •6.1 Sql-код создания таблиц
- •6.2 Sql-код создания триггеров базы данных
- •6.3 Sql-код реализации внешних представлений
- •6.4 Вывод
- •Заключение
- •Список литературы
2005.552800.Бд.Кп.Пз т28-320.13
Рисунок 4.1 — Глобальная ER-модель базы данных
5 Проектирование реляционной и внешних моделей
Данный раздел посвящен проектированию реляционной и внешних моделей. Здесь выполняется перевод глобальной ER-модели в реляционную форму, специфицируются ограничения и правила поддержания целостности на реляционном уровне. Для приведения ER-модели к реляционной форме производится устранение категорий и замена явных связей неявными, основанными на общих атрибутах. Специфицируются ограничения целостности и операционные правила на уровне концептуальной реляционной модели. Разрабатываются модели внешних представлений базы данных для отдельных функций. Здесь выбираются способы и формы внешних представлений, строятся модели соединения таблиц базы данных в представлениях.
5.1 Устранение категорий и явных связей
В данном подразделе в глобальной ER-модели устраняются категории сущностей либо путем расщепления обобщенной сущности, либо путем слияния категорий, либо путем выделения категорий в отдельные сущности. Затем устраняются явные связи типа «многие ко многим» и «один ко многим», в результате чего модель переходит в реляционную форму. Графическое представление реляционной модели приведено на рис. 5.1 в конце раздела.
5.1.1 Устранение категорий сущностей
Категория обобщающей сущности «Сотрудник» устранена путем объединения сущностей «Дежурный» и «Оперативник» в единую сущность «Сотрудник».
5.1.2 Устранение явных связей типа «многие ко многим»
Явные связи типа «многие ко многим» устранены путем замены их одноименной сущностью с копированием идентификаторов связываемых сущностей в состав атрибутов для сохранения неявных связей. В результате появились новые сущности: «Место», «Группа», «Дежурство».
5.1.3 Устранение явных связей типа «один ко многим»
Явные связи типа «один ко многим» заменены неявными путем копирования атрибутов-идентификаторов родительской сущности в множество атрибутов дочерней сущности. Такое копирование произведено для сущностей «Дети», «Имущество», «Вызов», «Сотрудник».
5.2 Спецификации ограничений и правил
В данном подразделе ограничения и правила, сформулированные в разд. 4 для глобальной ER-модели, трансформированы применительно к реляционной модели, а именно:
– ограничения атрибутов сущностей (таблица 5.1);
– ограничения кортежей (таблица 5.2);
– ограничения уникальности (таблица 5.3);
– динамические ограничения (таблица 5.4);
– прочие ограничения (таблица 5.5);
– операционные правила (таблица 5.6);
– стандартные ссылочные правила (таблица 5.7) .
При этом динамические и прочие ограничения, а также операционные правила преобразованы к событийно-ориентированной форме для последующей реализации в виде триггеров базы данных.
Таблица 5.1
Ограничения атрибутов
Имя атрибута или агрегата |
Источник (разд. 3.1) |
Тип |
Размер |
Границы или допустимые значения |
Структура |
Условие |
Значение по умолчанию |
1. Сотрудник.ФИО |
1.1 | строка рус. букв |
<=40 |
|
2) |
|
|
2. Сотрудник.Личный номер |
1.2 |
строка цифр |
6 |
|
|
| |
3. Сотрудник.Пасп. данные |
2.2 |
строка цифр |
11 |
|
|
|
|
4. Сотрудник.Телефон |
2.3 |
строка цифр |
6 |
|
|
| |
5. Сотрудник.Сем. положение |
2.4 |
положит. целое |
1 |
|
|
| |
6. Сотрудник.Образование |
2.5 |
строка рус. букв |
<=30 |
А…Яя |
|
|
|
7. Сотрудник.Зар. плата |
2.6 |
строка цифр |
|
|
| ||
8. Сотрудник.Д/рождения |
2.7 |
дата |
|
3) |
| ||
9. Сотрудник.Группа крови |
2.9 |
положит. целое |
2 |
1...4, +,- |
|
|
|
10. Сотрудник.Код звания |
+ |
строка цифр |
3 |
|
|
|
|
11. Сотрудник.Код должности |
+ |
строка цифр |
3 |
|
|
|
|
13. Вызов.Нпп вызова |
1.3 |
положит.целое |
|
|
5) | ||
11. Вызов.Дата |
1.4 |
дата |
|
|
|
|
тек. дата |
12. Вызов.Время |
1.5 |
время |
|
|
|
|
тек. время |
13. Вызов.Причина |
1.6 |
строка рус. букв |
<=50 |
|
|
|
|
14. Вызов.Адрес |
1.7 |
строка рус. букв |
<=100 |
|
|
|
|
15. Вызов.Степень риска |
1.8 |
число |
1 |
1) |
|
|
|
16. Вызов.Номер опер. группы |
1.9 |
строка цифр |
3 |
|
|
|
|
16. Вызов.Л/номер дежурного |
+ |
строка цифр |
6 |
|
|
|
|
17. Вызов.Телефон звонившего |
+ |
строка цифр |
<=10 |
|
|
|
|
18. Звонивший.ФИО |
1.10 | агрегат |
|
|
|
|
|
19. Звонивший.Телефон |
1.11 | строка цифр |
<=10 |
|
|
|
|
20. Дети.Нпп |
2.10 |
положит. Целое |
|
|
|
5) | |
21. Дети.Дата рождения |
2.11 |
дата |
|
4) |
| ||
22. Дети.Пол |
2.12 |
символ |
|
|
| ||
23. Дети.Л/номер сотрудника |
+ |
строка цифр |
6 |
|
|
| |
24. Место.Нпп |
2.13 |
положит. целое |
|
|
|
|
5) |
25. Место.Дата назначения |
2.14 |
дата |
|
|
|
4) |
тек. дата |
26. Место.Дата увольнения |
2.15 |
дата |
|
|
|
4) |
|
27. Место.Код подр-ия |
+ |
строка цифр |
6 |
|
|
|
|
28. Место.Личный номер |
+ |
строка цифр |
6 |
|
|
|
|
29. Должность.Название |
2.16 |
строка рус. букв |
<=30 |
А…Яя |
|
|
|
30. Должность.Код |
2.17 |
строка цифр |
3 |
|
|
|
|
31. Звание.Звание |
2.18 |
строка рус. букв |
<=30 |
А…Яя |
|
|
|
32. Звание.Код |
2.19 |
строка цифр |
3 |
|
|
|
|
33. Подразделение.Код |
2.20 |
строка цифр |
6 |
|
|
|
|
34. Подразделение.Название |
2.21 |
строка рус. букв |
<=30 |
|
|
|
|
35. Имущество Название |
3.3 |
строка рус. букв |
<=30 |
|
|
|
|
36. Имущество Идент. номер |
3.4 |
строка цифр |
6 |
|
|
|
|
37. Дежурство.Нпп |
4.1 |
положит. целое |
|
|
|
|
5) |
38. Дежурство Дата заст-ия |
4.2 |
дата |
|
|
|
|
|
39. Дежурство.Л/номер деж-ого |
+ |
строка цифр |
6 |
|
|
|
|
40. Дежурство.Нпп наряда |
+ |
полож..целое |
|
|
|
|
5) |
41. Наряд.Нпп |
4.3 |
полож. целое |
|
|
|
|
5) |
42. Наряд.Номер группы |
+ |
строка цифр |
3 |
|
|
|
|
43. Отчет.Нпп вызова |
+ |
полож. целое |
|
|
|
|
5) |
44. Отчет.Номер протокола |
5.2 |
строка цифр |
6 |
|
|
|
|
45. Отчет.Мероприятия |
5.3 |
текст |
<=256 |
|
|
|
|
46. Отчет.Примечания |
5.4 |
текст |
<=256 |
|
|
|
|
47. Группа.Номер группы |
+ |
строка цифр |
6 |
|
|
|
|
48. Группа.Л/номер сотрудника |
+ |
полож. целое |
6 |
|
|
|
|
Примечания:
1) Определяется одним из 3 значений: 1- «Нет риска», 2 – «Повышенное внимание», «Особая опасность».
2) Для упрощения здесь и далее структура агрегата ФИО не раскрывается (см. табл. 2.1).
3) Дата рождения > Текущая дата – 100 лет; Дата рождения < Текущая дата – 20 лет.
4) Значение даты <= Текущей даты.
5) Следующее значение (инкремент).
Таблица 5.2.
Ограничения кортежей
№ п/п |
Источник (табл. 4.2) |
Группа атрибутов |
Ограничение |
1 |
2.1 |
Сотрудник.Дата рождения, Место.Дата назначения |
Дата назначения – Дата рождения >= 20 лет |
2 |
2.2 |
Место.Дата назначения, Дата увольнения |
Дата увольнения > Дата назначения |
3 |
2.3 |
Дети.Дата рождения, Сотрудник.Дата рождения |
Дети.Дата рождения > Сотрудник.Дата рождения |
4 |
4.1 |
Сотрудник.Дежурный.Личный номер, Сотрудник.Оперативник. Личный номер |
Дежурный.Личный номер ≠ Оперативник. Личный номер |
Ограничения уникальности
Таблица 5.3.
№ п/п |
Источник (табл 4.3) |
Группа атрибутов |
1 |
1.1 |
Вызов.Нпп |
2 |
1.2 |
Сотрудник.Личный номер |
3 |
2.2 |
Сотрудник.ФИО |
4 |
2.3 |
Сотрудник.Паспортные данные |
5 |
2.4 |
Дети.Нпп, Сотрудник.Личный номер |
6 |
2.5 |
Место.Нпп, Сотрудник.Личный номер |
7 |
2.6 |
Место.Дата назначения, Сотрудник.Личный номер |
8 |
2.7 |
Место.Дата увольнения, Сотрудник.Личный номер |
9 |
2.8 |
Звание.Код |
10 |
2.9 |
Подразделение.Код |
11 |
2.10 |
Должность.Код |
12 |
3.1 |
Имущество.Инвентарный номер |
13 |
4.1 |
Дежурство.Нпп дежурства |
14 |
4.2 |
Дежурство.Дата заступления |
15 |
4.3 |
Наряд.Нпп |
16 |
5.1 |
Вызов.Нпп вызова |
17 |
5.2 |
Отчет.Номер протокола |
18 |
+ |
Группа.Номер группы |
Динамические ограничения
Динамические ограничения не выявлены
Таблица 5.5.
Другие ограничения
№ п/п |
Источн. табл 4.5 |
Событие |
Группа атрибутов |
Ограничение |
1.1 |
1.1 |
Вставка или обновление экз. сущн. Вызов |
Вызов.Нпп |
Последовательность номеров, соответствующая вызовам, должна начинаться с 1 и не иметь пропусков |
1.2 |
1.2 |
Вставка или обновление экз. сущн. Вызов |
Вызов.Нпп, Дата вызова, время вызова |
Хронологическая последовательность значений «Дата вызова», «Время вызова» упорядоченных по «Нпп» |
2.1 |
2.1 |
Вставка или обновление экз. сущн. Место |
Место.Дата увольнения |
«Дата увольнения», соответствующая данному сотруднику, может быть незаполненной только для последнего места его работы (текущей) |
2.2 |
2.2 |
Вставка или обновление экз. сущн. Место |
Место.Нпп, Дата назначения, Дата увольнения |
Хронологическая последовательность значений «Дата назначения», «Дата увольнения» в связях «Место», соответствующих одному сотруднику, упорядоченных по «Нпп» |
2.3 |
2.3 |
Вставка или обновление экз. сущн. Место |
Место.Нпп |
Последовательность номеров, соответствующая должностям, должна начинаться с 1 и не иметь пропусков |
2.4 |
2.4 |
Вставка или обновление экз. сущн. Дети |
Дети.Нпп, Дата рождения |
Хронологическая последовательность значений «Дата рождения» в агрегате «Дети», соответствующих одному сотруднику, упорядоченных по «Нпп» |
2.5 |
2.5 |
Вставка или обновление экз. сущн. Дети |
Дети.Нпп |
Последовательность номеров, соответствующая должностям, может начинаться с 0 и не иметь пропусков |
4.1 |
4.1 |
Вставка или обновление экз. сущн. Дежурство |
Дежурство.Нпп, Дата заступления |
Хронологическая последовательность значений «Дата заступления» упорядоченных по «Нпп» |
4.2 |
4.2 |
Вставка или обновление экз. сущн. Дежурство |
Дежурство.Нпп |
Последовательность номеров, соответствующая номерам дежурств, должна начинаться с 1 и не иметь пропусков |
4.3 |
4.3 |
Вставка или обновление экз. сущн. Наряд |
Наряд.Нпп |
Последовательность номеров, соответствующая нарядам, должна начинаться с 1 и не иметь пропусков |
Таблица 5.6.
Операционные правила
№ п/п |
Источник (табл. 4.6) |
Событие |
Группа атрибутов |
Ограничение |
1 |
2.1 |
Удаления экземпляра сущности «Сотрудник» |
Атрибуты, относящиеся к сотруднику: Личный номер, Фамилия, Имя, Отчество, … и т.д. |
При удалении записи о каком-либо сотруднике все сведения о нем переносятся в архивную базу с указанием даты-времени, причины удаления и имени пользователя, выполнившего удаление. Эти сведения хранятся в архивной базе не менее 1 года, а затем могут быть автоматически удалены |
2 |
3.1 |
Удаления экземпляра сущности «Имущество» |
Атрибуты относящиеся к имуществу: Название, Идент. номер. |
При удалении записи о каком-либо имуществе все сведения о нем переносятся в архивную базу с указанием даты-времени, причины удаления и имени пользователя, выполнившего удаление. Эти сведения хранятся в архивной базе не менее 1 года, а затем могут быть автоматически удалены |
Таблица 5.7
Стандартные ссылочные правила
№ п/п |
Источник (табл. 4.7) |
Родительская сущность/связь |
Дочерняя сущность/связь |
Правило удаления |
Правило обновления |
Правило вставки |
1 |
|
Сотрудник |
Имущество |
строгое |
каскадное |
строгое |
2 |
|
Сотрудник |
Дежурство |
каскадное |
« |
« |
3 |
|
Сотрудник |
Место |
каскадное |
« |
« |
4 |
|
Сотрудник |
Вызов |
строгое |
« |
« |
5 |
|
Сотрудник |
Дети |
каскадное |
« |
« |
6 |
|
Звание |
Сотрудник |
строгое |
« |
« |
7 |
|
Должность |
Сотрудник |
строгое |
« |
« |
8 |
|
Подразделение |
Место |
строгое |
« |
« |
9 |
|
Наряд |
Дежурство |
каскадное |
« |
« |
10 |
|
Группа |
Наряд |
каскадное |
« |
« |
11 |
|
Сотрудник |
Группа |
каскадное |
« |
« |
12 |
|
Вызов |
Отчет |
каскадное |
« |
« |
13 |
|
Звонивший |
Вызов |
каскадное |
« |
« |
14 |
+ |
Группа |
Вызов |
строгое |
« |
« |