Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Проверка правильности ключей и отношений
Идентификация и миграция ключей подчиняется следующим основным правилам:
В предыдущих разделах мы уже рассмотрели первые два правила, поэтому остановимся на оставшихся. На рис. 4-16 приведена диаграмма, относящаяся к применению правила неповторяемости. Обратите внимание, что субъект диаграммы содержит в качестве элементов первичного ключа сущности ЗАКАЗ атрибуты НОМЕР_ЗАКАЗА и НОМЕР_ПУНКТА_ЗАКАЗА. Однако, рассмотрев использование НОМЕРА_ПУНКТА_ЗАКАЗА, мы увидим, что один и тот же экземпляр сущности ЗАКАЗ может быть ассоциирован со многими НОМЕРАМИ_ПУНКТА_ЗАКАЗА, по одному на каждый заказываемый пункт. Для правильного отражения этого факта в модели данных должна быть создана новая сущность, называющаяся ПУНКТ_ЗАКАЗА с добавлением дуги и метки отношения, синтаксиса и определения. Таким образом, начинают выясняться истинные характеристики связи между заказами на покупку и пунктами заказов на покупку. Рис. 4-16. Детализация правила неповторяемости На рис. 4-17 приведена диаграмма вариантов детализации, относящаяся к применению правила необращения в ноль. Заметим, что НОМЕР_ДЕТАЛИ промигрировал к ПУНКТУ_ЗАКАЗА. Эта ассоциация установилась в связи с тем, что пункты заказа связаны некоторым образом с деталями. Однако показано, что диаграмма утверждает ассоциированность каждого пункта заказа на покупку в точности, с одним номером детали. Исследование (или, возможно, комментарий рецензента) показывает, что не все пункты заказа на покупку ассоциируются с деталями. Некоторые из них могут быть связаны с услугами или другими товарами, не имеющими номеров деталей. Это запрещает миграцию НОМЕРА_ДЕТАЛИ непосредственно в сущность ПУНКТА_ЗАКАЗА и требует в нашем примере установления новой сущности ЗАКАЗАННАЯ_ДЕТАЛЬ. Рис. 4-17. Детализация правила необращения в ноль Как только новая сущность установлена, в соответствии с правилом миграции обязательно должна произойти миграция ключа, и разработчик будет снова проверять правильность соответствия структуры сущность-отношение правилам необращения в ноль и неповторяемости. Каждый составной ключ должен проверяться на соответствие правилу наименьшего ключа. Это правило требует, чтобы любая сущность с составным ключом не могла разделяться на несколько сущностей с более простыми ключами (на меньшие компоненты) без потери некоторой информации. Это правило является комбинацией и расширением четвертой и пятой нормальных форм в реляционной теории. Другие правила нормализации, такие, как правило полной функциональной зависимости или правило отсутствия транзитивной зависимости, не могут применяться до тех пор, пока на стадии 4 неключевые атрибуты не будут отражены в модели. В связи со стадией 2 упоминалась тенденция выявления избыточных отношений. Однако на стадии 2 анализ, в основном, проводится разработчиком по его усмотрению. Установив ключи, разработчик может быть более точным в анализе. Двойной путь отношений существует тогда, когда существует сущность-потомок с двумя отношениями, ведущими, в конечном итоге, обратно (через одно или несколько отношений) к общей " корневой" сущности-родителю. В случае существования двойных путей требуется утверждение пути, чтобы определить, являются ли пути равными, неравными или неопределенными. Пути равны, если для каждого экземпляра сущности-потомка оба пути отношений всегда ведут к одному и тому же экземпляру корневой родительской сущности. Пути являются неравными, если для каждого экземпляра сущности-потомка оба пути отношений всегда ведут к различным экземплярам корневой родительской сущности. Пути являются неопределенными, если они равны для некоторых экземпляров сущности-потомка и не равны для остальных экземпляров. Если один из путей состоит только из одного отношения и пути равны, то путь из одного отношения является излишним и должен быть удален. Простейшим случаем отношения, имеющего двойственные пути является отношение, в котором оба пути состоят из единственного отношения. Пример такой структуры приведен на рис. 4-15. Поскольку каждый экземпляр сущности СХЕМА_СБОРКИ может быть связан с двумя различными экземплярами сущности ДЕТАЛЬ, избыточности нет. В этом случае утверждение пути будет требовать, чтобы пути были неравны, поскольку ДЕТАЛЬ не может быть вмонтирована в себя. Если один из путей содержит несколько отношений, а другой путь содержит одно отношение, то такая структура называется триадой. На рис. 4-18 приведен пример триады. В этом случае СЛУЖАЩИЙ связан с ОТДЕЛЕНИЯМИ как прямо, так и косвенно, через ОТДЕЛ. Если утверждение пути состоит в том, что ОТДЕЛЕНИЕ, которому принадлежит СЛУЖАЩИЙ, содержит ОТДЕЛ, которому принадлежит СЛУЖАЩИЙ, то отношение между сущностями ОТДЕЛЕНИЯ и СЛУЖАЩИЙ является избыточным и должно быть удалено. Заметим, что если некоторые, но не все, СЛУЖАЩИЕ могут в действительности принадлежать двум различным отделениям, то должна быть добавлена еще одна сущность; такая, как ВРЕМЕННЫЙ_СЛУЖАЩИЙ, чтобы НОМЕР_ОТДЕЛЕНИЯ удовлетворял правилу необращения в ноль в качестве внешнего ключа сущности СЛУЖАЩИЙ. Рис. 4-18. Пример триады Утверждения могут также применяться к отношениям двойственных путей, когда оба пути раскрывают более одного отношения. В приведенном на рис. 4-19 примере между сущностями ОТДЕЛ и ИСПОЛНИТЕЛЬ_ЗАДАНИЯ существуют два пути отношений. Если СЛУЖАЩИЙ может быть приписан только к тому ПРОЕКТУ, которым руководит его ОТДЕЛ, то пути равны. Если СЛУЖАЩИЙ может быть приписан только к тому ПРОЕКТУ, которым руководит не его отдел, то пути не равны. Если СЛУЖАЩИЙ может быть приписан к ПРОЕКТУ независимо от того, руководит его ОТДЕЛ ПРОЕКТОМ или нет, то пути являются неопределенными. Обычно, пути предполагаются неопределенными, если только утверждения точно не определены. Утверждения должны быть добавлены в качестве примечаний к диаграммам стадии 3 и включены в определение сущности-потомка. Рис. 4-19. Утверждения пути После идентификации элементов первичного ключа производятся записи в пул атрибутов. Для идентификации распределения и использования атрибутов в модели может применяться матрица сущность/атрибут. Эта матрица обладает следующими свойствами:
Пример матрицы сущность/атрибут приведен на рис.4-20. Эта матрица является основным средством поддержки целостности модели.
* Таблица №1
Рис. 4-20. Матрица " Сущности/Атрибуты"
Популярное:
|
Последнее изменение этой страницы: 2016-07-13; Просмотров: 523; Нарушение авторского права страницы