Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Проверка правильности ключей и отношений




Идентификация и миграция ключей подчиняется следующим основным правилам:

  1. Нельзя использовать синтаксис неспецифических отношений.
  2. Миграция ключей от родительских (или общих) сущностей к сущностям-потомкам (или сущностям-категориям) является обязательной.
  3. Запрещается использовать атрибуты, которые могут принимать более одного значения для данного экземпляра сущности в одно и то же время (правило неповторяемости).
  4. Нельзя использовать атрибуты, обращающиеся в ноль (т.е. не принимающие никакого значения) для некоторого экземпляра сущности (правило необращения в ноль).
  5. Сущности с составными ключами не могут быть разбиты на несколько сущностей с более простыми ключами (правило наименьшего ключа).
  6. Необходимо объявлять об имеющихся между двумя сущностями двойных путях отношений.

В предыдущих разделах мы уже рассмотрели первые два правила, поэтому остановимся на оставшихся.

На рис. 4-16 приведена диаграмма, относящаяся к применению правила неповторяемости. Обратите внимание, что субъект диаграммы содержит в качестве элементов первичного ключа сущности ЗАКАЗ атрибуты НОМЕР_ЗАКАЗА и НОМЕР_ПУНКТА_ЗАКАЗА. Однако, рассмотрев использование НОМЕРА_ПУНКТА_ЗАКАЗА, мы увидим, что один и тот же экземпляр сущности ЗАКАЗ может быть ассоциирован со многими НОМЕРАМИ_ПУНКТА_ЗАКАЗА, по одному на каждый заказываемый пункт. Для правильного отражения этого факта в модели данных должна быть создана новая сущность, называющаяся ПУНКТ_ЗАКАЗА с добавлением дуги и метки отношения, синтаксиса и определения. Таким образом, начинают выясняться истинные характеристики связи между заказами на покупку и пунктами заказов на покупку.

Рис. 4-16. Детализация правила неповторяемости

На рис. 4-17 приведена диаграмма вариантов детализации, относящаяся к применению правила необращения в ноль. Заметим, что НОМЕР_ДЕТАЛИ промигрировал к ПУНКТУ_ЗАКАЗА. Эта ассоциация установилась в связи с тем, что пункты заказа связаны некоторым образом с деталями. Однако показано, что диаграмма утверждает ассоциированность каждого пункта заказа на покупку в точности, с одним номером детали. Исследование (или, возможно, комментарий рецензента) показывает, что не все пункты заказа на покупку ассоциируются с деталями. Некоторые из них могут быть связаны с услугами или другими товарами, не имеющими номеров деталей. Это запрещает миграцию НОМЕРА_ДЕТАЛИ непосредственно в сущность ПУНКТА_ЗАКАЗА и требует в нашем примере установления новой сущности ЗАКАЗАННАЯ_ДЕТАЛЬ.

Рис. 4-17. Детализация правила необращения в ноль

Как только новая сущность установлена, в соответствии с правилом миграции обязательно должна произойти миграция ключа, и разработчик будет снова проверять правильность соответствия структуры сущность-отношение правилам необращения в ноль и неповторяемости.

Каждый составной ключ должен проверяться на соответствие правилу наименьшего ключа. Это правило требует, чтобы любая сущность с составным ключом не могла разделяться на несколько сущностей с более простыми ключами (на меньшие компоненты) без потери некоторой информации. Это правило является комбинацией и расширением четвертой и пятой нормальных форм в реляционной теории. Другие правила нормализации, такие, как правило полной функциональной зависимости или правило отсутствия транзитивной зависимости, не могут применяться до тех пор, пока на стадии 4 неключевые атрибуты не будут отражены в модели.

В связи со стадией 2 упоминалась тенденция выявления избыточных отношений. Однако на стадии 2 анализ, в основном, проводится разработчиком по его усмотрению. Установив ключи, разработчик может быть более точным в анализе. Двойной путь отношений существует тогда, когда существует сущность-потомок с двумя отношениями, ведущими, в конечном итоге, обратно (через одно или несколько отношений) к общей "корневой" сущности-родителю. В случае существования двойных путей требуется утверждение пути, чтобы определить, являются ли пути равными, неравными или неопределенными. Пути равны, если для каждого экземпляра сущности-потомка оба пути отношений всегда ведут к одному и тому же экземпляру корневой родительской сущности. Пути являются неравными, если для каждого экземпляра сущности-потомка оба пути отношений всегда ведут к различным экземплярам корневой родительской сущности. Пути являются неопределенными, если они равны для некоторых экземпляров сущности-потомка и не равны для остальных экземпляров. Если один из путей состоит только из одного отношения и пути равны, то путь из одного отношения является излишним и должен быть удален.

Простейшим случаем отношения, имеющего двойственные пути является отношение, в котором оба пути состоят из единственного отношения. Пример такой структуры приведен на рис. 4-15. Поскольку каждый экземпляр сущности СХЕМА_СБОРКИ может быть связан с двумя различными экземплярами сущности ДЕТАЛЬ, избыточности нет. В этом случае утверждение пути будет требовать, чтобы пути были неравны, поскольку ДЕТАЛЬ не может быть вмонтирована в себя.

Если один из путей содержит несколько отношений, а другой путь содержит одно отношение, то такая структура называется триадой. На рис. 4-18 приведен пример триады. В этом случае СЛУЖАЩИЙ связан с ОТДЕЛЕНИЯМИ как прямо, так и косвенно, через ОТДЕЛ. Если утверждение пути состоит в том, что ОТДЕЛЕНИЕ, которому принадлежит СЛУЖАЩИЙ, содержит ОТДЕЛ, которому принадлежит СЛУЖАЩИЙ, то отношение между сущностями ОТДЕЛЕНИЯ и СЛУЖАЩИЙ является избыточным и должно быть удалено. Заметим, что если некоторые, но не все, СЛУЖАЩИЕ могут в действительности принадлежать двум различным отделениям, то должна быть добавлена еще одна сущность; такая, как ВРЕМЕННЫЙ_СЛУЖАЩИЙ, чтобы НОМЕР_ОТДЕЛЕНИЯ удовлетворял правилу необращения в ноль в качестве внешнего ключа сущности СЛУЖАЩИЙ.

Рис. 4-18. Пример триады

Утверждения могут также применяться к отношениям двойственных путей, когда оба пути раскрывают более одного отношения. В приведенном на рис. 4-19 примере между сущностями ОТДЕЛ и ИСПОЛНИТЕЛЬ_ЗАДАНИЯ существуют два пути отношений. Если СЛУЖАЩИЙ может быть приписан только к тому ПРОЕКТУ, которым руководит его ОТДЕЛ, то пути равны. Если СЛУЖАЩИЙ может быть приписан только к тому ПРОЕКТУ, которым руководит не его отдел, то пути не равны. Если СЛУЖАЩИЙ может быть приписан к ПРОЕКТУ независимо от того, руководит его ОТДЕЛ ПРОЕКТОМ или нет, то пути являются неопределенными. Обычно, пути предполагаются неопределенными, если только утверждения точно не определены. Утверждения должны быть добавлены в качестве примечаний к диаграммам стадии 3 и включены в определение сущности-потомка.

Рис. 4-19. Утверждения пути

После идентификации элементов первичного ключа производятся записи в пул атрибутов. Для идентификации распределения и использования атрибутов в модели может применяться матрица сущность/атрибут. Эта матрица обладает следующими свойствами:

  1. Все имена сущностей изображаются с краю.
  2. Все имена атрибутов изображаются наверху.
  3. Использование атрибутов сущностями изображается в соответствующей строке с помощью следующей кодировки: "О" = владелец, "К" = первичный ключ, "I" = наследуемый.

Пример матрицы сущность/атрибут приведен на рис.4-20. Эта матрица является основным средством поддержки целостности модели.

СУЩНОСТИ * Имена соответствующих атрибутов приведены в таблице 1
                                           
Условия покупки   OK I                                        
Покупатель     OK                                        
Продавец       OK                                      
Заказ     I I                         OK            
Оформитель                         OK                    
Деталь                                              
Пункт заказа   IK                                          
Строка заказа   IK                                          
Администратор       IK                                      
Поставщик                                              

 

* Таблица №1

АТРИБУТЫ АТРИБУТЫ
  Номер условий покупки   Имя оформителя
  Код покупателя   Код отдела
  Код продавца   Послать через …
  Код заказа   Имя покупателя
  Номер изменения   Номер заказа
  Пункт назначения   Дата пункта заказа
  Имя продавца   Код получателя
  Адрес продавца   Код налога
  Код подтверждения   Код дилера
  Имя подтверждающего лица   Номер бланка
  Код дополнительных копий   Условия платежа

 

Рис. 4-20. Матрица "Сущности/Атрибуты"

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...