Атрибут

Атрибут – это некоторое свойство объекта реального мира. Каждая сущность (как отражение некоторого объекта предметной области) должна обладать определенным набором атрибутов. Для всех экземпляров одной сущности набор атрибутов одинаков, но их значения для каждого конкретного экземпляра сущности могут различаться.

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

Существует два основных типа доменов: базовый (основной) домен и типизированный домен.

К базовым доменам обычно относятся следующие:

· множество символьных строк любой длины и структуры, в состав которых входят символы любого алфавита (например, домен с именем СТРОКА);

· множество числовых значений (например, домен с именем ЧИСЛО);

· множество булевских данных (например, домен с именем БУЛЕВА ПЕРЕМЕННАЯ).

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

Например, типизированный домен с именем ФАМИЛИЯ может быть определен следующим образом. Домен ФАМИЛИЯ строится на базовом домене СТРОКА и содержит множество строк любой длины, составленных из букв кириллицы по правилам построения фамилии в русском языке. Другой пример. Типизированный домен с именем ЦЕЛОЕ ПОЛОЖИТЕЛЬНОЕ строится на базовом домене ЧИСЛО и содержит множество целых положительных чисел. Еще один пример. Типизированный домен с именем ЦЕЛОЕ ПОЛОЖИТЕЛЬНОЕ, КОТОРОЕ БОЛЬШЕ ИЛИ РАВНО 43 И МЕНЬШЕ 100 строится на типизированном домене ЦЕЛОЕ ПОЛОЖИТЕЛЬНОЕ и содержит целые положительные числа в диапазоне от 43 до 99.

Каждому атрибуту назначается имя (имя атрибута, базовое имя), представляющее собой некоторую осмысленную фразу. Причем имя атрибута должно быть уникальным в рамках всей модели. Например, все экземпляры сущности, входящие в сущность ТОВАР, обладают следующим набором атрибутов: НАИМЕНОВАНИЕ ТОВАРА, ИЗГОТОВИТЕЛЬ, ЦЕНА ЕДИНИЦЫ ТОВАРА. Все экземпляры сущности, входящие в сущность ПРОДАВЕЦ, обладают следующим набором атрибутов: ТАБЕЛЬНЫЙ НОМЕР ПРОДАВЦА, ФАМИЛИЯ ПРОДАВЦА, ДОМАШНИЙ АДРЕС, ОКЛАД, СТАЖ РАБОТЫ. Все экземпляры сущности, входящие в сущность ПОКУПКА, обладают следующим набором атрибутов: ДАТА ПОКУПКИ, КОЛИЧЕСТВО КУПЛЕННОГО ТОВАРА, ЦЕНА ПОКУПКИ. Все экземпляры сущности, входящие в сущность ПОКУПАТЕЛЬ, обладают следующим набором атрибутов: НАИМЕНОВАНИЕ ПОКУПАТЕЛЯ, ЮРИДИЧЕСКИЙ АДРЕС ПОКУПАТЕЛЯ, РАСЧЕТНЫЙ СЧЕТ ПОКУПАТЕЛЯ.

Каждому атрибуту может быть назначено имя роли. Имя роли (функциональное имя) – это синоним атрибута, который обычно показывает роль данного атрибута в данной сущности. Если атрибуту присвоено имя роли, то полное имя атрибута включает в себя функциональное имя и базовое имя, разделенные символом "точка". Например, пусть атрибуту с базовым именем ТАБЕЛЬНЫЙ НОМЕР ПРОДАВЦА присвоено функциональное имя РУКОВОДИТЕЛЬ. Тогда полное имя этого атрибута будет иметь следующий вид:

РУКОВОДИТЕЛЬ. ТАБЕЛЬНЫЙ НОМЕР ПРОДАВЦА

Механизм использования в инфологическом проектировании функциональных имен атрибутов будет рассмотрен ниже.

Атрибут или группа атрибутов, значения которых позволяют, исходя из семантики предметной области, однозначно определить (идентифицировать) конкретный экземпляр из множества экземпляров одной сущности, называется возможным ключом. Если возможный ключ состоит из одного атрибута, то он называется простым. Если возможный ключ состоит из группы атрибутов, то – составным. Для одной сущности может существовать нуль, один или более возможных ключей. Например, для описанной выше сущности ПРОДАВЕЦ в качестве возможного ключа можно выбрать следующие атрибуты: ТАБЕЛЬНЫЙ НОМЕР ПРОДАВЦА, ФАМИЛИЯ ПРОДАВЦА. Для сущности ПОКУПАТЕЛЬ в качестве возможного ключа можно выбрать только один атрибут – НАИМЕНОВАНИЕ ПОКУПАТЕЛЯ.

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

Каждой сущности обязательно должен быть назначен первичный ключ. В качестве первичного ключа сущности выбирают один (и только один) из ее возможных ключей. Выбор первичного ключа является очень важной задачей, так как методика проектирования баз данных реляционного типа тесно связана с этим понятием. Если для сущности определен только один возможный ключ, то он объявляется первичным ключом. Когда для сущности определено более одного возможного ключа, то при выборе одного из них в качестве первичного можно руководствоваться следующими соображениями:

· если среди возможных ключей имеются простые и составные, то предпочтение отдается простым ключам или тем составным ключам, которые включают в себя меньшее число атрибутов;

· предпочтение отдается возможным ключам, которые построены на числовых или целочисленных доменах, менее предпочтительными являются возможные ключи, построенные на символьных доменах;

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

Возможные ключи, не ставшие первичным ключом, объявляются как альтернативные ключи. Каждому альтернативному ключу присваивается порядковый номер. В документации к проекту каждый альтернативный ключ дополнительно помечается заключенными в круглые скобки буквами AK (Alternative Key), за которыми следует порядковый номер ключа. Такая пометка располагается справа от имени каждого атрибута, входящего в альтернативный ключ. Один атрибут может быть отмечен как часть более чем одного альтернативного ключа. Атрибуты первичного ключа также могут быть частью альтернативного ключа.

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

Рассмотрим пример. Пусть для сущности ПРОДАВЕЦ в качестве возможных ключей выбраны следующие атрибуты: ТАБЕЛЬНЫЙ НОМЕР ПРОДАВЦА, ФАМИЛИЯ ПРОДАВЦА. Пусть, исходя из семантики предметной области, атрибут ТАБЕЛЬНЫЙ НОМЕР определен на домене, представляющем собой множество целочисленных значений, а атрибут ФАМИЛИЯ ПРОДАВЦА определен на домене, представляющем собой множество русских фамилий. Тогда в качестве первичного ключа выбираем атрибут ТАБЕЛЬНЫЙ НОМЕР ПРОДАВЦА, а атрибут ФАМИЛИЯ ПРОДАВЦА объявляем как альтернативный ключ с пометкой AK1.

При проектировании баз данных реляционного типа широко используется понятие внешнего ключа. Внешний ключ – это атрибут некоторой сущности, который принудительно добавляется в другую сущность для организации связи между этими сущностями. Внешний ключ может быть простым или составным. Каждому внешнему ключу присваивается порядковый номер. В документации проекта каждый внешний ключ дополнительно помечается заключенными в круглые скобки буквами FK (Foreign Key), за которыми следует порядковый номер ключа. Если внешний ключ является составным, то для каждого атрибута, входящего в состав этого ключа, в пометке дополнительно (через разделитель "точка") указывается также его порядковый номер в этом ключе.

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

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

Пример. Пусть для сущности ПРОДАВЕЦ/Е1 в качестве первичного ключа определен атрибут ТАБЕЛЬНЫЙ НОМЕР, в качестве составного альтернативного ключа 1 (АК1) – атрибуты ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, в качестве составного альтернативного ключа 2 (АК2) – атрибуты НОМЕР ПАСПОРТА, СЕРИЯ ПАСПОРТА, в качестве простого альтернативного ключа 3 (АК3) – ИНН (индивидуальный номер налогоплательщика). Пусть для этой сущности определены еще атрибуты ДАТА РОЖДЕНИЯ, ДОМАШНИЙ АДРЕС и простой внешний ключ НОМЕР ОТДЕЛА (FK1). Графическое представление сущности ПРОДАВЕЦ/Е1 приведено на рис. 2.2.

Рис. 2.2. Пример графического представления атрибутов

Связь

Обычно выделенные в предметной области сущности взаимодействуют друг с другом. Это взаимодействие отражается посредством связи. Связь представляет собой логическое соотношение между сущностями. При инфологическом проектировании обычно используют бинарные связи, так как они проще в определении и понимании, чем "n-арные" связи, и имеют простое графическое отображение. Кроме того, любая "n-арная" связь может быть представлено с помощью n бинарных связей. В методологии IDEF1X рассматриваются только бинарные связи.

Каждая бинарная связь определяется (именуется) глаголом или глагольной фразой, выражающей некоторое ограничение или бизнес-правило. Причем именование бинарной связи осуществляется обязательно в двух направлениях. Таким образом, имя бинарной связи состоит из двух фраз (именование связи в обе стороны), которые разделяются символом "прямая косая" (/). Пример. Пусть между сущностями ПОКУПАТЕЛЬ и ПОКУПКА определена бинарная связь, смысл которой можно сформулировать следующим образом: ПОКУПАТЕЛЬ делаетПОКУПКУ, ПОКУПКА делаетсяПОКУПАТЕЛЕМ. В качестве имени этой связи можно выбрать следующее – делает/делается.

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

Rх,

где х – уникальное для каждой связи (в рамках модели) целое положительное число.

Важной характеристикой каждого конца связи является мощность. Мощностью (кардинальным числом) конца связи называется число экземпляров сущности, находящейся на данном конце связи, соответствующих одному экземпляру другой сущности, вовлеченной в эту связь. Значения мощности связи являются основой классификации типов связей.

В нотациях IDEF1X определяются следующие основные типы связей:

· определенная связь (отражает отношение между сущностями типа "один ко многим");

· неопределенная связь (отражает отношение между сущностями типа "многие ко многим");

· связь типа категория (отражает отношение между сущностями типа "род-вид", связь типа "один к одному").

Определенная связь. При организации этой связи между двумя сущностями устанавливается связь типа "один ко многим": мощность одного конца связи соответствует значению "много", другого – значению "один". Сущность, находящаяся в этой связи со стороны "один", называется родительской, а со стороны "много" – дочерней.

В нотациях IDEF1X для определенной связи в качестве ее имени достаточно указать только одну глагольную фразу – ту, которая характеризует отношение родительской сущности к дочерней. Например, пусть между сущностями ПОКУПАТЕЛЬ и ПОКУПКА имеется следующая определенная связь: один ПОКУПАТЕЛЬ может сделать нуль, одну или несколько ПОКУПОК, а одна конкретная ПОКУПКА делается только одним ПОКУПАТЕЛЕМ. Таким образом, в этой связи сущность ПОКУПАТЕЛЬ является родительской, а сущность ПОКУПКА – дочерней. В качестве имени этой бинарной связи можно выбрать следующее: делает.

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

В зависимости от значения мощности связи со стороны дочернего конца различают:

· общий случай: одному экземпляру родительской сущности соответствует нуль, один или много экземпляров дочерней сущности. При графическом отображении такая связь не помечается дополнительно каким-либо символом (рис. 2.3,а);

· исключено нулевое значение: одному экземпляру родительской сущности соответствует один или много экземпляров дочерней сущности. При графическом отображении на дочерней стороне связи ставится символ P (рис. 2.3,б);

· исключены множественные значения: одному экземпляру родительской сущности соответствует нуль или один экземпляр дочерней сущности. При графическом отображении на дочерней стороне связи ставится символ Z (рис. 2.3,в);

· точное значение: одному экземпляру родительской сущности соответствует заданное число экземпляров дочерней сущности. При графическом отображении на дочерней стороне связи указывается целое число, соответствующее этому значению (рис. 2.3,г);

· диапазон значений: одному экземпляру родительской сущности соответствует число экземпляров дочерней сущности, ограниченное некоторым заданным диапазоном. При графическом отображении на дочерней стороне связи указывается заданный диапазон целых чисел (рис. 2.3,д).

Определенные связи бывают идентифицирующими и не идентифицирующими. Соответственно, дочерние сущности, вовлеченные в эти связи, могут быть зависимыми или независимыми по идентификации.

Рис. 2.3. Графическое изображение мощности определенной связи: а - общий случай; б - исключено нулевое значение; в - исключены множественные значения; г - точное значение (10); д - диапазон значений (от 7 до 34)

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

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

В не идентифицирующей определенной связи экземпляры дочерней сущности идентифицируются независимо от экземпляров родительской сущности. Дочерняя сущность, вовлеченная в эту связь, является независимой по идентификации. Такая связь организуется посредством внешнего ключа, который не входит в состав первичного ключа дочерней сущности.

Рис. 2.4. Представление идентифицирующей определенной связи

Не идентифицирующая определенная связь может быть обязательной или необязательной.

В обязательной не идентифицирующей определенной связи любой экземпляр дочерней сущности не может существовать без некоторого экземпляра соответствующей родительской сущности (каждому экземпляру родительской сущности соответствует нуль, один или несколько экземпляров дочерней сущности, а каждому экземпляру дочерней сущности соответствует в точности один экземпляр родительской сущности). Дочерняя сущность, вовлеченная в эту связь, является зависимой по существованию и независимой по идентификации. При графическом отображении обязательная не идентифицирующая определенная связь обозначается пунктирной линией между связываемыми сущностями с жирной точкой на дочернем конце связи, а родительская и дочерняя сущности – в виде прямоугольников с прямыми углами (рис. 2.5).

Рис. 2.5. Представление обязательной не идентифицирующей определенной связи

В необязательной не идентифицирующей определенной связи каждому экземпляру родительской сущности соответствует нуль, один или несколько экземпляров дочерней сущности, а каждому экземпляру дочерней сущности – нуль или один экземпляр родительской сущности. Дочерняя сущность, вовлеченная в эту связь, является независимой по существованию и по идентификации. При графическом отображении необязательная не идентифицирующаяопределенная связь обозначается пунктирной линией между связываемыми сущностями с жирной точкой на дочернем конце связи и прозрачным ромбом на родительском конце связи, а родительская и дочерняя сущности обозначаются в виде прямоугольников с прямыми углами (рис. 2.6).

Если некоторая дочерняя сущность участвует в связях с несколькими родительскими сущностями и хотя бы в одной из этих связей является зависимой по идентификации, то графически эта сущность отображается в виде прямоугольника со скругленными углами.

Рис. 2.6. Представление необязательной не идентифицирующей определенной связи

Тип определенной связи (идентифицирующая или не идентифицирующая, обязательная или необязательная) определяется бизнес правилами соответствующей предметной области и принимаемыми на этапе проектирования решениями.

Пример. В предметной области определены следующие сущности: сущность ОТДЕЛ, представляющая собой множество научных подразделений некоторого предприятия, и сущность СОТРУДНИК – множество людей, находящихся в штатном расписании этого предприятия. Пусть правила приема сотрудников на работу на это предприятие заключаются в следующем:

· каждый сотрудник обязательно зачисляется только в один конкретный отдел;

· в один отдел может быть зачислено до 40 сотрудников;

· число сотрудников в любом отделе не может быть меньше 10.

Таким образом, между сущностями ОТДЕЛ и СОТРУДНИК определена связь (например, с именем состоит из), которая является определенной. Сущность ОТДЕЛ является родительской, а сущность СОТРУДНИК – дочерней. Мощность связи определяется диапазоном 10-40.

Пусть для идентификации каждого сотрудника требуется указывать отдел, в котором он работает. Такая связь будет идентифицирующей определенной (рис. 2.7).

Рис. 2.7. Пример отображения идентифицирующей определенной связи

Пусть для идентификации каждого сотрудника не требуется указывать отдел, в котором он работает. В этом случае связь будет обязательной не идентифицирующей определенной (рис. 2.8).

Рис. 2.8. Пример отображения обязательной не идентифицирующей определенной связи

Другой пример. Пусть правила приема сотрудников на предприятие несколько другие. Каждый сотрудник при приеме на работу может быть зачислен в штат конкретного отдела или в штат другого подразделения предприятия (не отдела). Но если сотрудник зачисляется в штат отдела, то правила остаются теми же, что и в предыдущем примере. Поскольку экземпляр сущности СОТРУДНИК может существовать и вне отдела, для его идентификации не может быть использовано указание отдела. Следовательно, данная связь является необязательной не идентифицирующей определенной (рис. 2.9). Мощность связи определяется диапазоном 10-40.

Рис. 2.9. Пример отображения необязательной не идентифицирующей

определенной связи

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

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

Пример. Сущность СОТРУДНИК/E1 определяет объект реального мира, характеризующий сотрудников некоторого предприятия. Пусть иерархия подчиненности сотрудников данного предприятия имеет древовидную структуру, т.е. каждый СОТРУДНИК-руководитель может иметь одного или нескольких СОТРУДНИКОВ-подчиненных, а каждый СОТРУДНИК-подчиненный может иметь нуль или одного СОТРУДНИКА-руководителя. Отношение между экземпляром СОТРУДНИК-руководитель и экземпляром СОТРУДНИК-подчиненный (экземплярами одной сущности СОТРУДНИК/E1) можно отразить с помощью иерархической рекурсивной связи. Этой связи можно дать следующее имя: руководит/подчиняется. Графическое отображение этого примера приведено на рис. 2.10.

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

Рис. 2.10. Пример отображения иерархической рекурсивной связи

Неопределенные связи обычно отражают бизнес правила или бизнес процессы, которые широко распространены в окружающем нас реальном мире. Например. Пусть в предметной области выявлены две сущности: ВРАЧ и БОЛЬНОЙ. Между этими сущностями существует связь типа "многие ко многим", так как каждый ВРАЧ может лечить одного или нескольких БОЛЬНЫХ или не лечить никого, а каждый БОЛЬНОЙ может лечиться у одного или нескольких ВРАЧЕЙ или вообще не ходить к ВРАЧАМ. По определению такая связь является неопределенной. По правилам IDEF1X имя неопределенной связи должно обязательно включать в себя две глагольные фразы, разделяемые символом "прямая косая" (/). На графическом отображении первая глагольная фраза соответствует прочтению связи слева направо или сверху вниз. Таким образом, можно дать следующее имя связи между сущностями ВРАЧ и БОЛЬНОЙ: лечит/лечится ( ВРАЧ лечит БОЛЬНОГО,БОЛЬНОЙ лечится у ВРАЧА). Графическое отображение рассмотренного примера приведено на рис. 2.11.

Среди неопределенных связей особо можно выделить сетевую рекурсивную связь. Сетевая рекурсивная связь устанавливает зависимость типа "многие ко многим" между отдельными экземплярами одной и той же сущности.

Рис. 2.11. Пример отображения неопределенной связи

Например, сущность РОДСТВЕННИК определяет объект реального мира, характеризующий людей, находящихся в родственных отношениях (отец-сын, мать-дочь, брат-сестра, внук-дед, муж-жена и т.п.), т.е. каждый экземпляр этой сущности находится в связи типа "многие ко многим" с другими экземплярами этой же сущности. Это отображается с помощью сетевой рекурсивной связи. Графическое отображение примера приведено на рис. 2.12.

Рис. 2.12. Пример отображения сетевой рекурсивной связи

Наличие неопределенных связей в инфологической модели реляционного типа допускается только на начальной стадии инфологического проектирования и требует обязательного приведения этих связей к определенному виду. Методика преобразования неопределенных связей в определенные будет рассмотрена ниже.

Связь типа категория (иерархия наследования). Эта связь представляет собой особый тип отношения сущностей ("род-вид"), когда связываемые экземпляры сущностей отражают один и тот же объект реального мира. При организации этой связи одна из связываемых сущностей (родовая, супертип) включает в себя полное множество экземпляров некоторого объекта реального мира, а другая связываемая сущность (категория, подтип) – только часть экземпляров этого множества объектов, объединенных некоторой совокупностью одинаковых свойств, т.е. представляет собой подтип родовой сущности.

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

В качестве атрибутов родовой сущности выделяются свойства, общие для всех сущностей категория, вовлеченных в эту связь. В качестве атрибутов для каждой сущности категория выбираются специфические свойства, характеризующие именно этот подтип объекта реального мира. Для каждой связи типа категория указывается дискриминатор – атрибут родовой сущности, который позволяет отличить сущности типа категория, участвующие в этой связи, друг от друга.

Пример. В учебном институте работают сотрудники, относящиеся к администрации, и преподаватели. Для этой предметной области в качестве родовой можно определить сущность с именем СОТРУДНИК, атрибутами которой будут следующие общие свойства сотрудников администрации и преподавателей: ФАМИЛИЯ, ДАТА РОЖДЕНИЯ, ДОМАШНИЙ АДРЕС, ТИП СОТРУДНИКА. В качестве сущностей типа категория можно определить сущность АДМИНИСТРАЦИЯ с атрибутом НОМЕР ПОДРАЗДЕЛЕНИЯ (к которому относится данный сотрудник администрации) и сущность ПРЕПОДАВАТЕЛЬ с атрибутами ПРЕПОДАВАТЕЛЬСКИЙ СТАЖ, НОМЕР КАФЕДРЫ (к которой относится преподаватель). В качестве дискриминатора этой связи выбран атрибут родовой сущности ТИП СОТРУДНИКА (предполагается, что этот атрибут может принимать только два значения: сотрудник администрации или преподаватель).

Если каждый экземпляр родовой сущности обязательно связан с каким-либо экземпляром сущностей категория, то связь типа категория называется полной. Если в родовой сущности имеется экземпляр (экземпляры), который не связан ни с одним из экземпляров сущностей категории, то связь типа категория называется неполной.

Графически родовая сущность изображается в виде прямоугольника с прямыми углами, а сущности категории – в виде прямоугольника со скругленными углами (сущность категория является зависимой по идентификации). Связи отображаются в виде сплошных линий, соединяющих родовую сущность с каждой сущностью категория. Обозначение полноты связи типа категория приведены на рис. 2.13.

Рис. 2.13. Обозначение полноты связи типа категория:
а - полная категория; б - неполная категория

Полнота связи типа категория определяется семантикой предметной области. В рассмотренном выше примере связь типа категория будет полной, если экземплярами сущности СОТРУДНИК являются только преподаватели и сотрудники администрации. Однако если среди экземпляров сущности СОТРУДНИК имеются такие, которые описывают людей, не являющихся ни преподавателями, ни сотрудниками администрации (например, рабочие), то эта связь будет неполной (рис. 2.14). Чтобы эта связь стала полной, необходимо определить еще одну сущность категорию (например, с именем РАБОЧИЙ и атрибутами СПЕЦИАЛЬНОСТЬ, КВАЛИФИКАЦИЯ), которая будет описывать именно этих людей (рис. 2.15). В этом случае дискриминатор ТИП СОТРУДНИКА может принимать следующие значения: сотрудник администрации, преподаватель, рабочий.

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

Рис. 2.14. Пример неполной связи типа категория

Рис. 2.15. Пример полной связи типа категория

но являются взаимно исключающими. При наличии нескольких связей типа категория одна сущность может быть определена как родовая для нескольких групп категорий (т.е. для разных связей типа категория). Сущности типа категория из одной группы (т.е. участвующие в одной связи типа категория) могут не являться взаимно исключающими относительно сущностей типа категория из другой группы. Например, сущность СЛУЖАЩИЙ может участвовать в двух связях типа категория, т.е. быть родовой сущностью в группе категорий, включающей в себя сущности категории СЛУЖАЩИЙ-ЖЕНЩИНА и СЛУЖАЩИЙ-МУЖЧИНА, и в группе категорий, включающей в себя сущности СЛУЖАЩИЙ-РАБОЧИЙ и СЛУЖАЩИЙ-УЧЕНЫЙ. Другими словами, один экземпляр сущности СЛУЖАЩИЙ может быть связан с одним экземпляром категории сущности СЛУЖАЩИЙ-РАБОЧИЙ или СЛУЖАЩИЙ-УЧЕНЫЙ и с одним экземпляром категории сущности СЛУЖАЩИЙ-ЖЕНЩИНА или СЛУЖАЩИЙ-МУЖЧИНА.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: