- •База данных
- •1.3 Первичное описание информационного обеспечения
- •1.4 Вывод
- •2 Выявление ограничений и правил поддержания целостности
- •2.1 Уровень атрибутов
- •2.3 Уровень множеств кортежей
- •2.4 Уровень базы данных
- •2.5 Вывод
- •3.1 Составление локальных исходных er-моделей
- •3.2 Нормализация локальных er-моделей
- •Код сотрудника
- •Код товара
- •Код сотрудника
- •Код сотрудника
- •Дата проверки
- •Код пок-ля
- •Код арендатора
- •Код сотрудника
- •3.3 Спецификация ограничений и правил поддержания целостности
- •5.2 Спецификация ограничений и правил поддержания целостности
- •5.3 Sql-код для создания реляционной модели
- •Create trigger Сотрудник
3.3 Спецификация ограничений и правил поддержания целостности
В данном подразделе ограничения и правила поддержания целостности, сформулированные в разд. 2 в описательной форме, трансформируются применительно к локальным ER-моделям. Анализируется необходимость дополнительных ограничений и правил, не учтенных ранее.
Ограничения доменов для атрибутов остались неизменными и здесь не затрагиваются. Ограничения обязательности значений атрибутов в кортежах сущностей отражены на диаграммах моделей в подразделе 3.2 (затемненные кружки).
Дополнительные ограничения и правила, не учтенные ранее, не обнаружены.
В результате анализа информационного обеспечения функций выявлены и сформулированы ограничения и правила поддержания целостности данных, которые должны быть учтены при дальнейшем проектировании.
3.4 Вывод
В результате проектирования локальных ER-моделей, соответствующих отдельным автоматизируемым функциям, получены нормализованные локальных ER-модели, включающие от 3 до 5 сущностей в третьей нормальной форме. Разработанные спецификации ограничений и правил поддержания целостности включают все ограничения и правила, полученные на предыдущем этапе и трансформированные для локальных ER-моделей.
4 ПРОЕКТИРОВАНИЕ ГЛОБАЛЬНОЙ ER-МОДЕЛИ
Данный раздел посвящен проектированию глобальной ER-модели. Здесь производится выявление эквивалентных сущностей и их слияние, выявление категорий и синтез обобщающих сущностей, выявление и устранение дублирования атрибутов и связей. Строится графическое представление глобальной модели, специфицируются ограничения и правила поддержания целостности на уровне глобальной модели.
4.1 Выявление и устранение эквивалентных сущностей
В данном подразделе были выявлены и устранены следующие эквивалентные сущности: «Арендатор» из модели 2, модели 3, модели 4 и модели 5; «Сотрудник» из всех моделей.
Эквивалентные сущности: телефон (из модели 1), телефон арендатора (из моделей 2, 3, 4). Синтезируем их в одну: телефон.
4.2 Выявление категорий и синтез обобщающих сущностей
В данном подразделе выявлена категория «Персона», которая, в свою очередь, состоит из категории «Сотрудник» и категории «Арендатор». Категория «Сотрудник» состоит из сущностей «Кладовщик», «Администратор» и «Член комиссии».
4.3 Выявление и устранение дублирования атрибутов и связей
В данном подразделе выявлены и устранены несколько дублирующихся атрибутов. При слиянии сущности множество атрибутов расширяются, а дублирующие атрибуты удаляются.
4.4 Графическое представление глобальной ER-модели
В данном подразделе, в результате выявления эквивалентных сущностей и их слияния, выявления категорий и синтеза обобщающих сущностей, выявления и устранения дублирования атрибутов, была построена глобальная ER – модель, представленная на рисунке 4.
4.5 Спецификация ограничений и правил поддержания целостности
В данном подразделе новые спецификации ограничений и правила поддержания целостности не выявлены.
4.6 Вывод
На данном этапе была спроектирована глобальная ER-модель, соответствующая разрабатываемой информационной автоматизированной системе “Рынок ”, которая отражает деятельность рынка.
5 ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННОЙ SQL-МОДЕЛИ
Данный раздел посвящен проектированию реляционной SQL-модели. Здесь выполняется перевод глобальной ER-модели в реляционную форму, специфицируются ограничения и правила поддержания целостности на реляционном уровне, записывается SQL-код для создания реляционной модели.
5.1 Перевод глобальной ER-модели в реляционную форму
В данном подразделе для перевода глобальной ER – модели в реляционную форму сделано следующее:
избавление от связи “многие ко многим” путем превращения связей “Карьера”, “Контакт арендатора”, “Контакт сотрудника”, “Результат” в сущность;
избавление от всех связей путем добавления первичных ключей в качестве внешних в соответствующие сущности;
разбиение категории “Персона” на 2 сущности.
разбиение “Сотрудник” на 3 сущности.
В разработанной реляционной форме глобальной модели используется 21 таблица:
“Персона_арендатор” с полями: код арендатора (первичный ключ), паспортные данные, ФИО_фамилия, ФИО_имя, ФИО_отчество, адрес, номер телефона (внешний ключ);
“Персона_сотрудник” с полями: код сотрудника (первичный ключ), паспортные данные, ФИО_фамилия, ФИО_имя, ФИО_отчество, адрес, номер телефона (внешний ключ);
“Персона_сотрудник_администратор” с полями: код сотрудника (первичный ключ), паспортные данные, ФИО_фамилия, ФИО_имя, ФИО_отчество, адрес, номер телефона (внешний ключ);
“Персона_сотрудник_кладовщик” с полями: код сотрудника (первичный ключ), паспортные данные, ФИО_фамилия, ФИО_имя, ФИО_отчество, адрес, номер телефона (внешний ключ);
“Персона_сотрудник_член комиссии” с полями: код сотрудника (первичный ключ), паспортные данные, ФИО_фамилия, ФИО_имя, ФИО_отчество, адрес, должность, номер телефона (внешний ключ);
“Контракт” с полями: номер контракта (первичный ключ), дата начала аренды, дата конца аренды, арендная плата, код персоны_сотрудника_администратора (внешний ключ), код места (внешний ключ), код оборудования (внешний ключ), код ячейки склада (внешний ключ), код персоны_арендатора (внешний ключ);
“Телефон” с полями: номер (первичный ключ), код, тип;
“Контакт арендатора” с полями: код арендатора (первичный и внешний ключ), номер телефона (первичный и внешний ключ);
“Контакт сотрудника” с полями: код сотрудника (первичный ключ), номер телефона (внешний ключ);
“Должность” с полями: код должности (первичный ключ), название должности;
“Карьера” с полями: номер статьи (первичный ключ), стаж, оклад, код должности (внешний ключ) ;
“Место работы” с полями: номер приказа (первичный ключ), дата приема, дата увольнения, номер статьи (внешний ключ), код организации (внешний ключ), код персоны_сотрудника_администратора (внешний ключ), код персоны_сотрудника_кладовщика (внешний ключ), код персоны_сотрудника_члена комиссии (внешний ключ);
“Организация” с полями: код организации (первичный ключ), название;
“Санконтроль” с полями: порядковый номер (первичный ключ), дата проверки, код персоны_сотрудника_члена комиссии (внешний ключ), код товара (внешний ключ), значение (внешний ключ);
“Место” с полями: код места (первичный ключ), название арендованного места;
“Оборудование” с полями: код оборудования (первичный ключ) и название;
“Место на складе” с полями: код ячейки склада (первичный ключ), название ячейки;
“Товар” с полями: код товара (первичный ключ), название, код персоны_арендатора (внешний ключ);
“Показатели” с полями: код показателя (первичный ключ), название показателя, значение (внешний ключ);
“Результат” с полями: значение (первичный ключ), порядковый номер санконтроля (внешний ключ), код показателя (внешний ключ);
“Выдача” с полями: номер выдачи (первичный ключ), дата выдачи, количество выданного товара, код оборудования (внешний ключ), код ячейки (внешний ключ), код персоны_сотрудника_кладовщика (внешний ключ).