Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ТЭИС.doc
Скачиваний:
13
Добавлен:
01.03.2025
Размер:
9 Мб
Скачать
☆

Пример выполнения работы

Рассмотрим 20 вариант. В данном варианте требуется разработать модель БД, в которой сохраняется информация о движении некоторых документов. Согласно заданию, необходимо сохранять следующий минимальный набор атрибутов:

  • Регистрационный номер документа (РН_док);

  • Название документа (Имя_док);

  • Дата документа (Дата_док);

  • Дата передачи документа для ознакомления (Дата_перед);

  • Название отдела, куда передан документ (Имя_отд);

  • Телефон отдела (Тел_отд);

  • Дата возврата документа (Дата_возв).

Назовем исходное отношение «Движение документов» (ДВ_ДОК). Здесь в скобках указаны сокращения, которые будут использоваться далее для обозначения атрибутов и отношения.

Итак, требуется разработать модель БД для хранения отношения ДВ_ДОК(РН_док, Имя_док, Дата_док, Дата_перед, Имя_отд, Тел_отд, Дата_возвр). Данное отношение находится в 1НФ.

В данном отношении ключ составляют следующие атрибуты: РН_док, Имя_отд, Дата_перед. При этом предполагается следующее:

  • любые два различных документа должны иметь различные регистрационные номера (значение атрибута РН_док должно быть уникально);

  • не должно быть отделов с одинаковыми названиями (значение атрибута Имя_отд должно быть уникально);

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

В отношении ДВ_ДОК есть следующие частичные функциональные зависимости:

  1. Атрибуты Имя_док, Дата_док зависят от части составного ключа РН_док.

  2. Атрибут Тел_отд зависит от части составного ключа Имя_отд.

Таким образом, данное отношение не находится во 2 НФ и требует дальнейших преобразований.

Чтобы устранить частичную зависимость в отношении, необходимо разложить отношение на два отношения следующим образом:

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

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

Для устранения первой частичной зависимости в отношении ДВ_ДОК, необходимо выполнить следующие действия:

  1. ДВ1=ДВ_ДОК[РН_док, Имя_отд, Дата_перед, Тел_отд, Дата_возвр].

  2. ДОК=ДВ_ДОК[РН_док, Имя_док, Дата_док].

Итак, исходное отношение ДВ_ДОК разбито на два отношения: ДВ1 и ДОК. В результате разбиения устранена зависимость атрибутов Имя_док, Дата_док от части составного ключа РН_док, которая имелась в отношении ДВ_ДОК. Однако, в полученном отношении ДВ1 еще осталась зависимость атрибута Тел_отд от части составного ключа Имя_отд. Для устранения данной частичной зависимости необходимо выполнить следующие действия:

  1. ДВ=ДВ1[РН_док, Имя_отд, Дата_перед, Дата_возвр].

  2. ОТД=ДВ1[Имя_отд, Тел_отд].

В результате отношение ДВ1 разбито на два отношения: ДВ и ОТД. В данных отношениях частичные зависимости отсутствуют.

Итак, после всех преобразований исходное отношение ДВ_ДОК разбито на три отношения: ДОК, ДВ и ОТД, которые находятся во 2НФ. Поскольку в полученных отношениях отсутствуют функциональные зависимости между неключевыми атрибутами, то эти отношения находятся в 3НФ. Полученная модель данных в виде диаграммы IDEF1X представлена на рис.Л5.1.

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