Связи между классами объектов

 

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

— именованная, значимая ассоциация между двумя классами объектов.

— отношение, которое имеет одна вещь к другой.

Рассматривая связь необходимо видеть её как двустороннюю, двунаправленную.

Например, класс объектов «КАТЕГОРИЯ ДОЛЖНОСТИ» связан с классом объектов «ДОЛЖНОСТЬ». Класс объектов «ДОЛЖНОСТЬ» связан с классом объектов «КАТЕГОРИЯ ДОЛЖНОСТИ».

Каждая связь обладает определенными характеристиками. Одна из характеристик — опциональность связи (минимальное кардинальное число). Это бизнес—правило, указывающее должна ли связь существовать для каждого объекта класса объектов (обязательная связь) или это не требуется (необязательная связь). Например, на предприятии выявлено следующее правило: «каждой конкретной категории должности может соответствовать должность». В некоторый момент времени на предприятии появляется документ о создании новой категории, но нет ещё ни одной должности, ссылающейся на эту категорию. Но с другой стороны есть и правило: «каждая должность на предприятии должна быть отнесена к одной и только одной должности». Таким образом, видно, что между двумя классами объектов («КАТЕГОРИЯ ДОЛЖНОСТИ» и «ДОЛЖНОСТЬ») выявлены две разные ассоциации.

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

Кроме того, каждая сторона связи имеет имя. Это описание правил бизнеса. Например: «соответствует», «относится к». Имена часто составляют пары: «основан на» – «является основой для»; «приобретается у» – «поставляется»; «отвечает за» – «находится под ответственностью».

Имя имеет большое значение, оно показывает, насколько хорошо понята взаимосвязь информации.

Увидев связь, необходимо убедиться в том, что она имеет смысл. Для этого её необходимо проговорить как обычное предложение в обе стороны (любая связь двусторонняя), используя правило произношения связи (таблица 6).

Таблица 6 – Правило чтения связи

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6
Каждый (ая, ое) Имя первого класса объектов Опциональность связи (д.б. или м.б.) Имя связи Мощность связи (одна или много) Имя второго класса объектов

 

Пример чтения связи: «каждое ФИЗИЧЕСКОЕ ЛИЦО может иметь ноль, одну или более ЗАПИСЕЙ ТРУДОВОЙ КНИГИ»; «Каждая ЗАПИСЬ ТРУДОВОЙ КНИГИ должна относиться к одному и только одному ФИЗИЧЕСКОМУ ЛИЦУ».

Рассмотрим более подробно существующие типы (мощности) связей.

1 Связь «один_ко_многим» (1:М). Это самый распространенный тип связи, имеющей мощность один и более в одном направлении и один и только один в другом. Класс объектов, находящийся в этой связи на стороне «один», называют главным или родительским. Класс объектов, находящийся на стороне «много» – подчиненным или потомком.

В большинстве случаев подчиненные классы объектов необязательны, а главные обязательны. То есть, объект главного класса объектов может существовать без подчиненного объекта, а подчиненный без главного нет. С точки зрения базы данных это означает, что сначала в БД создается объект главного класса объектов, а потом объекты подчиненного. Если связь 1:М не обязательная с обеих сторон, объекты могут создаваться произвольно. Связи 1:М обязательные с обеих сторон очень редки и означают, что объекты двух, разных классов объектов не могут существовать друг без друга.

Пример связи 1:М: «каждой СТРУКТУРНОЙ ЕДИНИЦЕ ПРЕДПРИЯТИЯ может соответствовать ноль, одна или более ЗАПИСЕЙ ТРУДОВОЙ КНИГИ». С обратной стороны: «Каждая ЗАПИСЬ ТРУДОВОЙ КНИГИ должна относиться к одной и только одной СТРУКТУРНОЙ ЕДИНИЦЕ ПРЕДПРИЯТИЯ».

2 Связь «многие_ко_многим» (М:М или M:N). Это тоже очень распространенный тип связи, особенно на начальных этапах анализа предметной области. Эта связь имеет мощность «один или более» в обоих направлениях. Пример такой связи: «в каждой СТРУКТУРНОЙ ЕДИНИЦЕ ПРЕДПРИЯТИЯ могут работать много ФИЗИЧЕСКИХ ЛИЦ». С обратной стороны: «каждое ФИЗИЧЕСКОЕ ЛИЦО может работать во многих «СТРУКТУРНЫХ ЕДИНИЦАХ ПРЕДПРИЯТИЯ».

Большинство связей М:М необязательны в обоих направлениях, то есть объект одного класса объектов может существовать без привязки к объекту другого класса объектов, любой экземпляр может появиться первым. Связи М:М, обязательные с обеих сторон очень редки – объекты обоих классов объектов должны быть созданы одновременно.

Необходимо заметить, что в любой предметной области нет связей «многие_ко_многим», в каждый момент времени всё определяется однозначно. Появление такой связи в проектной документации показывает, что предметная область не дообследована. Связь М:М может быть «разорвана» каким—либо документом или позицией документа. Такой класс объектов, разрывающий связь М:М называют «сущностью пересечения». Необходимо только увидеть, найти этот класс объектов. Для выше приведенного примера связи М:М таким классом объектов является «ЗАПИСЬ ТРУДОВОЙ КНИГИ». Если мы его выявили, то связи в предметной области уже звучат так: «каждой СТРУКТУРНОЙ ЕДИНИЦЕ ПРЕДПРИЯТИЯ может соответствовать ноль, одна или более ЗАПИСЕЙ ТРУДОВОЙ КНИГИ». С обратной стороны: «каждая ЗАПИСЬ ТРУДОВОЙ КНИГИ должна относиться к одной и только одной СТРУКТУРНОЙ ЕДИНИЦЕ ПРЕДПРИЯТИЯ». И ещё одна связь: «каждому ФИЗИЧЕСКОМУ ЛИЦУ, работающему на предприятии, может соответствовать ноль, одна или более ЗАПИСЕЙ ТРУДОВОЙ КНИГИ».

3 Связь «один_к_одному» (1:1). Редкая связь, обычно с точки зрения бизнеса это означает, что это не два класса объектов, а один. Эта связь может иметь мощность один и только один в обоих направлениях. Если обнаружится такая связь, следует ещё раз исследовать информационные потоки и может выясниться, что два выявленных класса объектов фактически составляют один.

Пример связи 1:1: «каждый ВЕЛОСИПЕД может использоваться только одним ЧЛЕНОМ КЛУБА». С обратной стороны: «каждый ЧЛЕН КЛУБА может ездить только на одном ВЕЛОСИПЕДЕ»

Связи 1:1, обязательные на обоих концах, когда оба объекта должны появляются одновременно, очень редки.

После выявления любой связи между классами объектов необходимо (для каждой её стороны): установить наличие; выбрать имя; определить мощность; определить опциональность; проверить путем чтения.

Необходимо заметить, что между двумя классами объектов может быть выявлено сколько угодно много связей. Например, между классами объектов «ФИЗИЧЕСКОЕ ЛИЦО» и «АДРЕС» может быть выявлено 2 связи: одна фиксирующая адрес прописки, другая – адрес проживания. Свести итоги выявления связей можно с помощью следующей таблицы (таблица 7):

Таблица 7 — Формализованное описание предметной области. Связи между классами объектов

Связь Опциональность связи со стороны Название связи со стороны Тип связи со стороны  
главн. КО подч. КО главн. КО подч. КО главн. КО подч. КО главн. КО подч. КО
ФИЗИ—ЧЕСКОЕ ЛИЦО АДРЕС   Д.б.   Д.б.   пропи—сано по является местом прописки    
ФИЗИ—ЧЕСКОЕ ЛИЦО ЗАПИСЬ ТРУДО—ВОЙ КНИГИ   М.б.   Д.б.   имеет   соответ—ствует     М
ТРУДО—ВАЯ КНИГА ЗАПИСЬ ТРУДО—ВОЙ КНИГИ   Д.б.   Д.б.   имеет   соответ—ствует     М
ДОЛ—ЖНОСТЬ ЗАПИСЬ ТРУДО—ВОЙ КНИГИ   М.б.   Д.б.   имеет   соответ—ствует     М

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

Выявленные связи проверяются путем чтения. Необходимо помнить, что каждая связь двусторонняя!









Дата добавления: 2016-10-17; просмотров: 1005;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.