Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по IDEF1x.doc
Скачиваний:
21
Добавлен:
28.09.2019
Размер:
671.74 Кб
Скачать

5.2. Преобразование неопределенных отношений.

Если при идентификации отношений и при создании диаграммы сущностей неопределенные отношения между сущностями были допустимы, то на этапе определения ключевых атрибутов, эти неопределенные отношения надо устранить. Стандарт IDEF1X требует перед началом определения ключевых атрибутов заменить все неопределенные отношения. При описании отношений уже был представлен пример замены неопределенного отношения двумя определенными отношениями связи с введением соединяющей сущности. Следует заметить, что для разрешения неопределенных отношений, приходится использовать дополнительные соединяющие сущности, которые не были внесены в список естественных сущностей. Например, имеем сущность МАРКА-МАТЕРИАЛА – перечень всех марок материалов, используемых на предприятии в процессе производства, и сущность ГОСТ-ТУ – перечень всех государственных стандартов и технических условий. Одна марка материала может быть описана в одном или нескольких ГОСТах и ТУ, в то же время, в одном ГОСТе могут быть установлены нормы на ноль, одну или сразу же на несколько марок материалов. Таким образом, имеем неопределенное отношение между сущностями. Преобразовать это отношение с помощью идентифицированных естественных сущностей не представляется возможным. Тогда, вводим дополнительную «искусственную» сущность ВЫБОР_ГОСТ. Каждый экземпляр сущности ВЫБОР_ГОСТ связан только с одним экземпляром сущности МАРКА_МАТЕРИАЛА и только с одним экземпляром сущности ГОСТ-ТУ, при этом экземпляр сущности МАРКА_МАТЕРИАЛА может быть связан с одним или несколькими экземплярами сущности ВЫБОР_ГОСТ, а экземпляр сущности ГОСТ-ТУ может быть связан с ноль, одним или несколькими экземплярами сущности ВЫБОР_ГОСТ. Таким образом, одно неопределенное отношение мы превратили в два определенных отношения связи, в которых сущность ВЫБОР_ГОСТ является сущностью-потомком.

Рис. V 1. Преобразование неопределенного отношения

Все искусственные сущности, введенные при замене неопределенных отношений, должны быть описаны в глоссарии.

5.3. Что такое атрибут?

В диаграмме IDEF1X атрибут - это свойство или характеристика, являющаяся общей для некоторых или для всех экземпляров сущности. Определенная характеристика отдельного экземпляра сущности называется экземпляром атрибута. Экземпляр атрибута определяется типом характеристики и ее значением (значением атрибута). Экземпляр сущности будет обычно иметь единственное определенное значение для каждого связанного атрибута. Например, ФАМИЛИЯ-ИМЯ-ОТЧЕСТВО и ГОД-РОЖДЕНИЯ могут быть атрибутами, связанными с сущностью СОТРУДНИК. Экземпляр сущности СОТРУДНИК может иметь атрибуты со значением «Иванов Иван Петрович» и «1953». Может оказаться, что при создании экземпляра сущности, (например, при внесении в список нового сотрудника), значение атрибута неизвестно, (например, неизвестен год рождения), и тогда атрибут в течение некоторого периода времени может не иметь никакого значения. В другом

случае атрибут может быть применим для одного экземпляра сущности и не применим для другого. Например, сущность МАРКА-МАТЕРИАЛА имеет атрибут СРОК-ХРАНЕНИЯ. Для одного экземпляра сущности СРОК-ХРАНЕНИЯ имеет значение «3 года». Для другого -может не иметь никакого значения, что означает, что срок хранения не ограничен.

Имя атрибута обозначается фразой, состоящей из существительного с зависимыми словами, которая описывает характеристику, представленную атрибутом. Существительное находится в именительном падеже единственного числа. Сокращения разрешаются, однако, имя атрибута должно быть значимо и непротиворечиво для всей модели. Атрибут должен быть описан в глоссарии, наряду с другими элементами модели. Правила для атрибутов см. в Приложении 3.

На диаграмме имена атрибутов помещают внутрь блока, обозначающего сущность.

Рис. V 2 Атрибуты и первичный ключ 5.4. Первичный и альтернативный ключи сущности.

Сущность всегда должна иметь атрибут или комбинацию атрибутов, значения которых однозначно идентифицируют каждый экземпляр сущности. Эти атрибуты формируют «первичный ключ» сущности. Например, атрибут КОД-СОТРУДНИКА может служить

первичным ключом для сущности СОТРУДНИК, так как каждый сотрудник имеет уникальный код, в то время как атрибуты ФАМИЛИЯ-ИМЯ-ОТЧЕСТВО и ГОД-РОЖДЕНИЯ будут не ключевыми атрибутами, так как на предприятии могут оказаться сотрудники с одинаковыми фамилией, именем и отчеством и с одинаковым годом рождения. Для определения первичного ключа сущности надо выявить предполагаемые или «потенциальные» ключи сущности.

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

В некоторых случаях сущность может иметь больше, чем один атрибут или одну группу атрибутов, которые однозначно идентифицируют экземпляры сущности. Например, экземпляр сущности МАРКА_МАТЕРИАЛА может быть однозначно идентифицирован как с помощью атрибута КОД-МАТЕРИАЛА, так и с помощью атрибута НАИМЕНОВАНИЕ-МАРКА-МАТЕРИАЛА. Если существует несколько потенциальных ключей, то один потенциальный ключ обозначается как «первичный ключ», а другие потенциальные ключи обозначаются как «альтернативные ключи». Если существует только один потенциальный ключ, то он и является первичным ключом. Первичные и альтернативные ключи должны содержать только те атрибуты, которые требуются для однозначной идентификации (т.е. если какой-либо атрибут изъять из ключа, то каждый экземпляр сущности не может быть однозначно идентифицирован; Правило минимального ключа). Например, сущность НАКЛАДНАЯ имеет составной альтернативный ключ, состоящий из двух атрибутов: НОМЕР-НАКЛАДНОЙ и ДАТА-НАКЛАДНОЙ. Если из данного альтернативного ключа удалить хотя бы один атрибут, мы не сможем однозначно идентифицировать экземпляры накладной.

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

Каждый альтернативный ключ обозначается уникальным целым числом. Надпись АК и номер альтернативного ключа помещаются в скобки, например (АК1), и записываются справа от каждого атрибута данного альтернативного ключа. Сущность может иметь любое количество альтернативных ключей. Отдельный атрибут может быть частью нескольких альтернативных ключей. Атрибут первичного ключа также может быть частью альтернативного ключа.