

15. Автоматизация проектирования данных, стандарт IDEF1X
Нотация IDEF1X
Нотация IDEF1X предоставляет для описания модели данных следующий набор элементов:
· сущности,
· атрибуты,
· домены,
· ключи различного типа,
· связи различного типа.
1 Элементы модели IDEF1X
1.1 Сущности
Сущности в модели описывают типы информационных объектов (предметов, персонажей, действий, событий), хранимых и обрабатываемых в моделируемой предметной области. Каждый тип объекта характеризуется определенным набором свойств и представляется в реальном мире множеством экземпляров.
Сущности согласно нотации IDEF1X делятся на независимые и зависимые сущности. Под независимой сущностью понимается сущность, каждый экземпляр которой уникально идентифицируется без использования связей данной сущности с другими сущностями. В зависимой сущности экземпляры идентифицируются с использованием связей с другими сущностями. В результате зависимая сущность является дочерней сущностью других сущностей и не может существовать самостоятельно. Независимые и зависимые сущности изображаются прямоугольниками соответственно с прямыми и закругленными углами (рисунок 1).
Рисунок 1 - Независимые и зависимые сущности
Над изображением сущности указывается ее уникальное обозначение. Обозначение рекомендуется задавать в виде Наименование/Номер. Для наименования рекомендуется использовать существительное в единственном числе, задаваемое прописными буквами. Номер (при его использовании) должен быть уникальным. Прямоугольник сущности делится горизонтальной чертой на две области: область первичного ключа и неключевую область.
1.2 Атрибуты
Атрибуты описывают свойства сущностей. Каждый атрибут характеризует определенное свойство сущности (например, табельный номер для сущности Сотрудник). Для наименования рекомендуется использовать существительное в единственном числе, задаваемое строчными буквами. Описания атрибутов размещаются (в зависимости от принадлежности к первичному ключу) в области первичного ключа или неключевой области сущности.
1.3 Домены
Домены с точки зрения модели данных представляют собой независимые шаблоны атрибутов. Задание для атрибута подходящего домена позволяет автоматически определить требуемые свойства атрибута и свести описание нового атрибута к определению его имени. Изменение свойств домена автоматически распространяется на все связанные с ним атрибуты.
1.4 Ключи
В модели данных один или несколько атрибутов сущности могут быть объявлены ключом определенного вида. Вид ключа связан с его назначением. Используются три вида ключей:
· Первичный ключ. Используется для уникальной идентификации каждого экземпляра сущности и для организации связей между сущностями. Объявление первичного ключа накладывает требование уникальности на набор атрибутов, составляющих ключ, и требование задания значения для каждого атрибута, входящего в ключ. Для сущности может быть определен только один первичный ключ. В графическом изображении сущности атрибуты первичного ключа размещаются в области первичного ключа.
· Альтернативный ключ. Используется для наложения ограничений на атрибуты, аналогичных ограничениям первичного ключа. Для сущности может быть определено несколько альтернативных ключей. Атрибуты альтернативного ключа отмечаются аббревиатурой AK с указанием номера ключа.
· Внешний ключ. Представляет собой отображение первичного ключа родительской сущности в дочернюю сущность и используется для организации связей между сущностями. Атрибуты внешнего ключа отмечаются аббревиатурой FK.
1.5 Связи
Связь используется в модели данных для описания взаимосвязанности сущностей или для указания связанности экземпляров одной сущности. Используются четыре основные вида связей.
1.5.1 Идентифицирующая связь. Используется для описания сложных составных объектов предметной области. Под составным объектом понимается объект, отдельная часть (или части) которого также представляет собой объект. Формально идентифицирующая связь описывает взаимосвязь между независимой (родительской) и зависимой (дочерней) сущностью. При задании идентифицирующей связи атрибуты первичного ключа родительской сущности отображаются в атрибуты внешнего ключа дочерней сущности. Таким образом, атрибуты, отображаемые по связи, размещаются в области первичного ключа дочерней сущности и, следовательно, используются для идентификации экземпляров дочерней сущности.
Вхождение отображенных атрибутов в первичный ключ дочерней сущности указывает, что каждый экземпляр дочерней сущности связан с одним определенным экземпляром родительской сущности. Так как каждый экземпляр родительской сущности может быть связан с несколькими экземплярами дочерней сущности, то идентифицирующая связь является связью «один-ко-многим» (1: М).
На графическом изображении в нотации IDEF1X идентифицирующая связь представляется сплошной линией между связываемыми сущностями с зачерненным кружком на стороне дочерней сущности (рисунок 2).
Рядом с кружком может быть указана кардинальность связи (возможное число экземпляров дочерней сущности, связываемых с одним экземпляром родительской сущности). Допустимы следующие варианты: P - один и более, Z- ноль или один, число - конкретное указанное количество, два числа, разделенные тире - значения в указанном диапазоне, отсутствие указания кардинальности - любые значения.
Рисунок 2 - Идентифицирующие и не идентифицирующие связи
1.5.2 Неидентифицирующая связь. Используется для описания взаимосвязи между двумя взаимно независимыми сущностями. При задании неидентифицирующей связи атрибуты первичного ключа одной сущности отображаются в атрибуты внешнего ключа другой сущности, причем полученный внешний ключ не входит в состав первичного ключа этой сущности. Таким образом, атрибуты, отображаемые по связи, размещаются в неключевой области принимающей сущности.
Неидентифицирующая связь также является связью «один-ко-многим». На графическом изображении в нотации IDEF1X неидентифицирующая связь представляется пунктирной линией между связываемыми сущностями с зачерненным кружком на множественной стороне (рисунок 2).
Неидентифицирующая связь может быть обязательной и необязательной. При необязательной связи экземпляры сущности, расположенной на множественной стороне связи, могут быть не связаны с экземплярами сущности, расположенной на единичной стороне связи. На графическом изображении это отмечается ромбом на единичной стороне связи (рисунок 2). По сути дела это - указание кардинальности связи для родительской стороны.
Задание кардинальности связи для дочерней стороны выполняется так же, как для идентифицирующей связи.
1.5.3 Категорийная связь. Используется для описания сложных обобщенных объектов предметной области. Под обобщенным объектом понимается объект, экземпляры которого можно разделить на несколько категорий с частично различающимися наборами свойств. Обобщенный объект представляется набором сущностей, объединенных категорийной связью. Одна из сущностей является главной и определяет набор свойств, общих для всех категорий. Каждая из остальных сущностей определяет набор свойств, специфичных для определенной категории. Первичный ключ сущностей категорий совпадает с первичным ключом главной сущности. Каждый экземпляр сущности категории связан с одним определенным экземпляром главной сущности и не может существовать самостоятельно. Экземпляр главной сущности может быть связан с каким-нибудь одним экземпляром из сущностей категорий либо быть не связанным с экземплярами категорий. Для явного указания категории экземпляра в главной сущности может быть введен атрибут-дискриминатор, наименование которого указывается в графическом изображении связи. Если все экземпляры главной сущности связаны с экземплярами сущностей категорий, то категорийная связь называется полной, в противном случае - неполной. Графическое изображение категорийной связи в нотации IDEF1X представлено на рисунке 3.
Рисунок 3 - Категорийная связь
1.5.4 Связь «многие-ко-многим» (М:М). Используется для описания взаимосвязи между двумя сущностями, при котором один экземпляр каждой их сущностей может быть связан с несколькими экземплярами другой сущности.
На графическом изображении в нотации IDEF1X связь «многие-ко-многим» представляется сплошной линией между связываемыми сущностями с зачерненным кружком на каждой стороне.
2. Уровни моделирования IDEF1X
IDEF1X предусматривает три уровня моделирования:
· Модель «сущность-связь»
Начальный уровень моделирования. Связи между сущностями показываются, но не специфицируются. Все сущности рассматриваются как независимые. Прямоугольник сущности не разделяется на область первичного ключа и неключевую область. Атрибуты не указываются или указываются лишь основные атрибуты, атрибуты внешних ключей не указываются. Дискриминатор у графического обозначения связи не указывается, даже если он определен.
· Модель, основанная на ключах
Средний уровень моделирования. Связи многие-ко-многим» исключаются путем введения связующей сущности, все связи между сущностями специфицируются путем определения первичных ключей независимых сущностей и внешних ключей зависимых сущностей. Прямоугольник сущности разделяется на область первичного ключа и неключевую область. Неключевые атрибуты не указываются или указываются частично. Дискриминатор у графического обозначения связи может указываться, если он определен.
· Полноатрибутная модель
Верхний уровень моделирования. Указываются все атрибуты сущностей. Дискриминатор у графического обозначения связи указывается, если он определен.
Нотация IDEF1X предоставляет для описания модели данных следующий набор элементов:
· сущности,
· атрибуты,
· домены,
· ключи различного типа,
· связи различного типа.
1 Элементы модели IDEF1X
1.1 Сущности
Сущности в модели описывают типы информационных объектов (предметов, персонажей, действий, событий), хранимых и обрабатываемых в моделируемой предметной области. Каждый тип объекта характеризуется определенным набором свойств и представляется в реальном мире множеством экземпляров.
Сущности согласно нотации IDEF1X делятся на независимые и зависимые сущности. Под независимой сущностью понимается сущность, каждый экземпляр которой уникально идентифицируется без использования связей данной сущности с другими сущностями. В зависимой сущности экземпляры идентифицируются с использованием связей с другими сущностями. В результате зависимая сущность является дочерней сущностью других сущностей и не может существовать самостоятельно. Независимые и зависимые сущности изображаются прямоугольниками соответственно с прямыми и закругленными углами (рисунок 1).
Рисунок 1 - Независимые и зависимые сущности
Над изображением сущности указывается ее уникальное обозначение. Обозначение рекомендуется задавать в виде Наименование/Номер. Для наименования рекомендуется использовать существительное в единственном числе, задаваемое прописными буквами. Номер (при его использовании) должен быть уникальным. Прямоугольник сущности делится горизонтальной чертой на две области: область первичного ключа и неключевую область.
1.2 Атрибуты
Атрибуты описывают свойства сущностей. Каждый атрибут характеризует определенное свойство сущности (например, табельный номер для сущности Сотрудник). Для наименования рекомендуется использовать существительное в единственном числе, задаваемое строчными буквами. Описания атрибутов размещаются (в зависимости от принадлежности к первичному ключу) в области первичного ключа или неключевой области сущности.
1.3 Домены
Домены с точки зрения модели данных представляют собой независимые шаблоны атрибутов. Задание для атрибута подходящего домена позволяет автоматически определить требуемые свойства атрибута и свести описание нового атрибута к определению его имени. Изменение свойств домена автоматически распространяется на все связанные с ним атрибуты.
1.4 Ключи
В модели данных один или несколько атрибутов сущности могут быть объявлены ключом определенного вида. Вид ключа связан с его назначением. Используются три вида ключей:
· Первичный ключ. Используется для уникальной идентификации каждого экземпляра сущности и для организации связей между сущностями. Объявление первичного ключа накладывает требование уникальности на набор атрибутов, составляющих ключ, и требование задания значения для каждого атрибута, входящего в ключ. Для сущности может быть определен только один первичный ключ. В графическом изображении сущности атрибуты первичного ключа размещаются в области первичного ключа.
· Альтернативный ключ. Используется для наложения ограничений на атрибуты, аналогичных ограничениям первичного ключа. Для сущности может быть определено несколько альтернативных ключей. Атрибуты альтернативного ключа отмечаются аббревиатурой AK с указанием номера ключа.
· Внешний ключ. Представляет собой отображение первичного ключа родительской сущности в дочернюю сущность и используется для организации связей между сущностями. Атрибуты внешнего ключа отмечаются аббревиатурой FK.
1.5 Связи
Связь используется в модели данных для описания взаимосвязанности сущностей или для указания связанности экземпляров одной сущности. Используются четыре основные вида связей.
1.5.1 Идентифицирующая связь. Используется для описания сложных составных объектов предметной области. Под составным объектом понимается объект, отдельная часть (или части) которого также представляет собой объект. Формально идентифицирующая связь описывает взаимосвязь между независимой (родительской) и зависимой (дочерней) сущностью. При задании идентифицирующей связи атрибуты первичного ключа родительской сущности отображаются в атрибуты внешнего ключа дочерней сущности. Таким образом, атрибуты, отображаемые по связи, размещаются в области первичного ключа дочерней сущности и, следовательно, используются для идентификации экземпляров дочерней сущности.
Вхождение отображенных атрибутов в первичный ключ дочерней сущности указывает, что каждый экземпляр дочерней сущности связан с одним определенным экземпляром родительской сущности. Так как каждый экземпляр родительской сущности может быть связан с несколькими экземплярами дочерней сущности, то идентифицирующая связь является связью «один-ко-многим» (1: М).
На графическом изображении в нотации IDEF1X идентифицирующая связь представляется сплошной линией между связываемыми сущностями с зачерненным кружком на стороне дочерней сущности (рисунок 2).
Рядом с кружком может быть указана кардинальность связи (возможное число экземпляров дочерней сущности, связываемых с одним экземпляром родительской сущности). Допустимы следующие варианты: P - один и более, Z- ноль или один, число - конкретное указанное количество, два числа, разделенные тире - значения в указанном диапазоне, отсутствие указания кардинальности - любые значения.
Рисунок 2 - Идентифицирующие и не идентифицирующие связи
1.5.2 Неидентифицирующая связь. Используется для описания взаимосвязи между двумя взаимно независимыми сущностями. При задании неидентифицирующей связи атрибуты первичного ключа одной сущности отображаются в атрибуты внешнего ключа другой сущности, причем полученный внешний ключ не входит в состав первичного ключа этой сущности. Таким образом, атрибуты, отображаемые по связи, размещаются в неключевой области принимающей сущности.
Неидентифицирующая связь также является связью «один-ко-многим». На графическом изображении в нотации IDEF1X неидентифицирующая связь представляется пунктирной линией между связываемыми сущностями с зачерненным кружком на множественной стороне (рисунок 2).
Неидентифицирующая связь может быть обязательной и необязательной. При необязательной связи экземпляры сущности, расположенной на множественной стороне связи, могут быть не связаны с экземплярами сущности, расположенной на единичной стороне связи. На графическом изображении это отмечается ромбом на единичной стороне связи (рисунок 2). По сути дела это - указание кардинальности связи для родительской стороны.
Задание кардинальности связи для дочерней стороны выполняется так же, как для идентифицирующей связи.
1.5.3 Категорийная связь. Используется для описания сложных обобщенных объектов предметной области. Под обобщенным объектом понимается объект, экземпляры которого можно разделить на несколько категорий с частично различающимися наборами свойств. Обобщенный объект представляется набором сущностей, объединенных категорийной связью. Одна из сущностей является главной и определяет набор свойств, общих для всех категорий. Каждая из остальных сущностей определяет набор свойств, специфичных для определенной категории. Первичный ключ сущностей категорий совпадает с первичным ключом главной сущности. Каждый экземпляр сущности категории связан с одним определенным экземпляром главной сущности и не может существовать самостоятельно. Экземпляр главной сущности может быть связан с каким-нибудь одним экземпляром из сущностей категорий либо быть не связанным с экземплярами категорий. Для явного указания категории экземпляра в главной сущности может быть введен атрибут-дискриминатор, наименование которого указывается в графическом изображении связи. Если все экземпляры главной сущности связаны с экземплярами сущностей категорий, то категорийная связь называется полной, в противном случае - неполной. Графическое изображение категорийной связи в нотации IDEF1X представлено на рисунке 3.
Рисунок 3 - Категорийная связь
1.5.4 Связь «многие-ко-многим» (М:М). Используется для описания взаимосвязи между двумя сущностями, при котором один экземпляр каждой их сущностей может быть связан с несколькими экземплярами другой сущности.
На графическом изображении в нотации IDEF1X связь «многие-ко-многим» представляется сплошной линией между связываемыми сущностями с зачерненным кружком на каждой стороне.
2. Уровни моделирования IDEF1X
IDEF1X предусматривает три уровня моделирования:
· Модель «сущность-связь»
Начальный уровень моделирования. Связи между сущностями показываются, но не специфицируются. Все сущности рассматриваются как независимые. Прямоугольник сущности не разделяется на область первичного ключа и неключевую область. Атрибуты не указываются или указываются лишь основные атрибуты, атрибуты внешних ключей не указываются. Дискриминатор у графического обозначения связи не указывается, даже если он определен.
· Модель, основанная на ключах
Средний уровень моделирования. Связи многие-ко-многим» исключаются путем введения связующей сущности, все связи между сущностями специфицируются путем определения первичных ключей независимых сущностей и внешних ключей зависимых сущностей. Прямоугольник сущности разделяется на область первичного ключа и неключевую область. Неключевые атрибуты не указываются или указываются частично. Дискриминатор у графического обозначения связи может указываться, если он определен.
· Полноатрибутная модель
Верхний уровень моделирования. Указываются все атрибуты сущностей. Дискриминатор у графического обозначения связи указывается, если он определен.