Добавлен: 25.10.2018
Просмотров: 5088
Скачиваний: 13
Данные отношения необходимо привести к виду специфических отношений, т.е. к отношению сущность-родитель и сущность-потомок, либо отношению категоризации.
Чтобы выполнить это требование, разработчик предлагает варианты детализации в виде диаграмм (диаграммы вариантов детализации).
Диаграммы вариантов детализации обычно делятся на две части:
-
левая часть посвящена субъекту - детализируемому неспецифическому отношению;
-
правая часть – вариант детализации.
На рис. 2.3 показан вариант детализации, относящейся к разрешению отношений типа «многое ко многому».
Рис. 2.3. Детализация не специфического отношения
Процесс детализации отношений приводит или конвертирует каждое неспецифическое отношение в два специфических отношения.
В этом процессе возникают новые сущности.
Неспецифическое отношение на рис. 2.3 указывает, что ГРАБИТЕЛЬ может ограбить много БАНКОВ, а БАНК может быть ограблен многими ГРАБИТЕЛЯМИ.
Однако мы не можем определить, какой ГРАБИТЕЛЬ грабил какой БАНК, пока не введем для разрешения этого неспецифического отношения третью сущность: ОГРАБЛЕНИЕ_БАНКА.
Каждый экземпляр сущности ОГРАБЛЕНИЕ_БАНКА связан с одним БАНКОМ и с одним ГРАБИТЕЛЕМ.
Ранее мы имели дело с сущностями, которые могли бы неформально назвать естественными.
Естественная сущность – это сущность, которую мы, вероятно, будем считать очевидной в списке исходных данных или протоколе исходных материалов при разработке модели.
Естественная сущность будет иметь такие имена, как
־ Заказ на покупку.
־ Служащий.
־ Покупатель.
Сущности пересечения, как видно из приведенного примера, используются для разрешения неспецифических отношений и обычно представляют упорядоченные пары предметов с теми же основными характеристиками (уникальный идентификатор, атрибуты и т.д.), что и исходные естественные сущности.
Хотя в предыдущем примере сущность ОГРАБЛЕНИЕ-БАНКА могла бы рассматриваться как естественная сущность, она в действительности представляет объединение сущностей ГРАБИТЕЛИ и БАНКИ.
Одно из небольших различий между естественной сущностью и сущностью пересечения состоит в именах сущностей.
Именем естественной сущности служит обычно единичное нарицательное существительное; имена сущностей пересечения могут быть составными.
Сущности пересечения являются по своей природе более абстрактными и обычно появляются в результате впервые примененных на стадии определения ключей - правил определения правильности сущностей.
Процесс детализации неспецифических отношений является очень важным этапом детализации объединенной структуры данных и включает:
־ разработку для каждого неспецифического отношения одного или нескольких вариантов детализации;
־ выбор разработчиком предпочтительного варианта, который и будет отражен в модели на данной стадии;
־ обновление информации стадии определения сущностей с целью включения возникших при детализации новых сущностей в сформированный ранее пул сущностей;
־ обновление информации стадии определения отношений с целью определения отношений, связанных с новыми выявленными сущностями, включенными в пул сущностей.
2.5. Определение ключевых атрибутов сущностей
Целями данной стадии являются:
־ Определение ключевых атрибутов для каждой сущности.
־ Перемещение первичных ключей для установления внешних ключей.
־ Проверка правильности отношений и ключей.
Результаты стадии изображаются на одной или нескольких диаграммах (диаграммах ключевого уровня). Помимо определения ключевых атрибутов на данной стадии возможно расширение и последующая дополнительная детализация определения сущностей и отношений между ними.
2.5.1. Определение ключевых атрибутов сущностей
На стадии определения ключевых атрибутов сущностей - ключей методологией IDEF1X идентифицируются и определяются элементы данных об экземплярах сущностей, называемых возможными ключами, первичными ключами, альтернативными ключами и внешними ключами.
Цель определения ключей – установить значения атрибутов, однозначно определяющих каждый экземпляр сущности.
Важно подчеркнуть определение и смысл терминов «экземпляр атрибута» и «атрибут».
Определение. Экземпляр атрибута является свойством или характеристикой экземпляра сущности.
Экземпляры атрибутов составляются из имени и значения.
По своей сути, экземпляр атрибута является элементом информации, известной об отдельном экземпляре сущности.
Экземпляры атрибутов являются описателями, т.е. они по сути скорее подобны прилагательным.
В таблице 2.3 приведены некоторые экземпляры атрибутов и их соответствующие экземпляры сущностей.
Таблица 2.3
Примеры экземпляров атрибутов
Первый экземпляр сущности или индивидуум идентифицируется номером служащего 1, ассоциированное с этим экземпляром сущности имя – Иванов, а профессия этого экземпляра сущности – оператор.
Эти экземпляры атрибутов, взятые вместе, однозначно описывают экземпляр сущности и отделяют его от других аналогичных экземпляров сущностей.
Каждый экземпляр атрибута обладает как типом, так и значением.
Каждый конкретный экземпляр сущности описывает уникальную комбинацию экземпляров атрибутов.
Атрибут представляет множество экземпляров атрибутов одного типа, относящихся к разным экземплярам одной и той же сущности.
Имена атрибутов обычно являются описательными существительными в единственном числе.
В приведенном примере (таблица 2.3) с сущностью СЛУЖАЩИЙ имеется несколько атрибутов:
־ Номер служащего.
־ Имя служащего.
־ Профессия /должность служащего.
В таблице 2.3 также показано, как экземпляры атрибутов представляются в качестве атрибутов.
Экземпляры атрибутов принадлежат экземплярам сущностей.
Но и сами атрибуты принадлежат сущности.
Таким образом, между сущностью и некоторым числом атрибутов устанавливается ассоциация собственности.
У атрибутов есть только один владелец.
Владелец атрибута – это сущность, которой атрибут принадлежит.
В приведенном примере владельцем атрибута НОМЕР-СЛУЖАЩЕГО будет сущность СЛУЖАЩИЙ.
Хотя атрибут имеет только одного владельца, владелец может делить его с другими сущностями. Ниже будет детально рассмотрено, как это происходит.
Атрибут представляет использование экземпляра атрибута для описания отдельного специфического свойства отдельного экземпляра сущности.
Определение. Те атрибуты, которые представляют использование экземпляра атрибута для однозначного установления специфического экземпляра сущности, неформально называются ключевыми атрибутами.
На стадии определения ключей производится идентификация ключевых атрибутов в контексте разрабатываемой модели.
На следующей стадии определения атрибутов устанавливаются и определяются неключевые атрибуты.
Один или несколько атрибутов образуют возможный ключ сущности.
Определение. Возможный ключ определяется как один или несколько ключевых атрибутов для однозначной идентификации каждого экземпляра сущности.
Примером атрибута, используемого в качестве возможного ключа сущности, является номер служащего.
Каждый служащий идентифицируется среди всех других служащих с помощью номера служащего. Поэтому атрибут НОМЕР-СЛУЖАЩЕГО является возможным ключом, который, однозначно определяет каждый элемент сущности СЛУЖАЩИЙ.
Некоторые сущности обладают более чем одной группой атрибутов, которые могут применяться для различения одного экземпляра сущности от других.
Рассмотрим сущность СЛУЖАЩИЙ с атрибутами НОМЕР-СЛУЖАЩЕГО и НОМЕР_СТРАХОВОГО_ПОЛИСА, каждый из которых сам по себе является возможным ключом.
Для такой сущности выбирается один возможный ключ для использования в миграции ключей.
Этот ключ называется первичным ключом, а остальные возможные ключи – альтернативными ключами.
Определение. Если сущность обладает только одним возможным ключом, то он автоматически является первичным ключом.
Таким образом, каждая сущность обладает первичным ключом, а некоторые сущности обладают также альтернативными ключами.
Каждый тип возможных ключей может применяться для идентификации экземпляров сущностей, но только первичный ключ используется в миграции ключей.
На диаграмме IDEF1X-модели в блоке основной сущности проводится горизонтальная линия, и внутри блока, выше этой линии, указывается первичный ключ.
Если в первичном ключе имеется более одного атрибута (например, для идентификации проектных заданий требуются и номер проекта, и номер задания), то они все указываются выше горизонтальной линии.
Если сущность обладает альтернативным ключом, то ему присваивается уникальный номер альтернативного ключа. На диаграмме этот номер указывается в скобках вслед за каждым атрибутом, являющимся частью этого альтернативного ключа.
Если атрибут принадлежит нескольким альтернативным ключам, то каждый из номеров этих ключей указывается в скобках.
Если атрибут принадлежит и альтернативному ключу, и первичному ключу, то он указывается выше горизонтальной линии вместе со следующим после него номером альтернативного ключа.
Если атрибут не принадлежит первичному ключу, то он указывается ниже горизонтальной линии.
На рис. 2.4 приведены различные формы ключей.
Рис. 2.4. Формы ключей
Процесс идентификации ключей включает следующие процедуры:
-
идентификацию возможных ключей сущности;
-
выбор одного из них в качестве первичного ключа сущности.
Поскольку некоторые возможные ключи могут возникнуть в результате миграции, то идентификация ключей представляет собой итеративный процесс.
Идентификацию ключей целесообразно начинать с сущностей, которые не являются ни в каком отношении сущностями-потомками или сущностями-категориями.
Это обычно те сущности, чьи возможные ключи наиболее очевидны.
Они являются также начальными точками для миграции ключей, поскольку не содержат внешних ключей.
2.5.2. Миграция ключей
Определение. Миграция ключей (перемещение первичных ключей) – это процесс копирования первичного ключа одной сущности в другую, связанную с ней сущность. Эта копия называется внешним ключом.
Значение внешнего ключа в каждом экземпляре второй сущности совпадает со значением связанного экземпляра первой сущности. Таким образом, атрибут, принадлежащий одной сущности, разделяется с другой сущностью.
Миграция ключей подчиняется следующим трем правилам:
1. Миграция всегда происходит в отношении от родительской или общей сущности к сущности-потомку или сущности-категории.
2. Весь первичный ключ (т.е. все атрибуты, являющиеся элементами первичного ключа) должен мигрировать по одному разу для каждого отношения, разделяемого парой сущностей.
3. Альтернативный ключ и неключевые атрибуты никогда не мигрируют.
Каждый атрибут внешнего ключа соответствует атрибуту первичного ключа родительской или общей сущности.
Первичный ключ сущности-категории в категориальном отношении должен совпадать с первичным ключом общей сущности.
В других отношениях атрибут внешнего ключа может, но не обязан быть частью первичного ключа сущности-потомка.
Атрибуты внешних ключей не считаются принадлежащими сущностям, в которых они появляются, поскольку они отражают атрибуты родительских сущностей.
Таким образом, каждый атрибут в сущности либо принадлежит этой сущности, либо принадлежит внешнему ключу этой сущности.
В диаграммах модели внешние ключи обозначаются примерно так же, как альтернативные ключи, т.е. после каждого атрибута, принадлежащего внешнему ключу, следует (FK).
Если атрибут принадлежит также первичному ключу, то он располагается выше горизонтальной линии, а если нет, то – ниже.
Определение. Если первичный ключ сущности-потомка содержит все атрибуты внешнего ключа, то сущность-потомок называется зависимой от идентификатора относительно родительской сущности, а отношение называется идентифицирующим отношением.
Определение. Если какие-либо атрибуты внешнего ключа не принадлежат первичному ключу сущности-потомка, то сущность-потомок не является независимой от идентификатора относительно родительской сущности, а отношение называется неидентифицирующим отношением.
На диаграммах IDEF1X сплошными линиями изображаются только идентифицирующие отношения, а неидентифицирующие отношения изображаются пунктирными линиями.
Определение. Сущность, являющаяся сущностью-потомком в одном или нескольких идентифицирующих отношениях, называется зависимой от идентификатора.
Определение. Сущность, являющаяся сущностью-потомком только в неидентифицирующих отношениях (или не являющаяся сущностью-потомком ни в одном из отношений), называется независимой от идентификатора.
В диаграммах блоками с прямыми углами изображаются только идентификаторно-независимые сущности, а идентификаторно-зависимые сущности изображаются блоками с закругленными углами.
Пример миграции ключей приведен на рис. 2.5.
Рис. 2.5. Миграция ключа к зависимой от идентификатора сущности
2.5.3. Проверка правильности ключей и отношений
Идентификация ключей и миграция ключей подчиняется следующим основным правилам:
1. Нельзя использовать синтаксис неспецифических отношений.
2. Миграция ключей от родительских (или общих) сущностей к сущностям-потомкам (или сущностям-категориям) является обязательной.
3. Запрещается использовать атрибуты, которые могут принимать более одного значения для данного экземпляра сущности в одно и то же время (правило неповторяемости).
3. Нельзя использовать атрибуты, обращающиеся в ноль (т.е. не принимающие никакого значения) для некоторого экземпляра сущности (правило необращения в ноль).
5. Сущности с составными ключами не могут быть разбиты на несколько сущностей с более простыми ключами (правило наименьшего ключа).
6. Необходимо объявлять об имеющихся между двумя сущностями двойных путях отношений.
В предыдущих разделах уже рассмотрены первые два правила, поэтому остановимся на оставшихся правилах.
На рис. 2.6 приведена диаграмма, относящаяся к применению правила неповторяемости.
Рис. 2.6. Детализация правила неповторяемости
Из приведенной диаграммы видно, что субъект диаграммы содержит в качестве элементов первичного ключа сущности ЗАКАЗ такие атрибуты, как НОМЕР_ЗАКАЗА и НОМЕР_ПУНКТА_ЗАКАЗА.