Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
чудинов_бд.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
584 Кб
Скачать
☆

3. Связывание отношений и простых структур в кимпо

Предлагается единый алгоритм связывания в КИМПО отдельных отношений и простейших структур. Для этого связи между отношения­ми простейших структур предварительно фиксируются, а составляющие их отношения анализируются далее как автономные отношения в соот­ветствии с приведенным ниже алгоритмом. При построении алгоритма учитываем, что:

  • в КИМПО преобладают иерархические зависимости;

  • связь типа комментарий - это связь через единственный атрибут

  • связь типа соединение либо приводит к физическому соединению отношений, либо к наследованию связей каждого с другими отноше­ниями;

  • (3)

    2 riS> Ът

    5

    п

    Е»,

    - J=i

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

Алгоритм построен таким образом, что некоторое отношение (бу­дем называть его анализируемым) последовательно сравнивается с множеством других, уже включенных в базовую КИМПО отношений (будем называть их исследуемыми).

2 Значение коэффициента (2) рассчитано для случая lt=5lk.

3.1. Содержательный (неформализованный) алгоритм связывания отдельных отношений в КИМПО

а) Предварительный этап

Отношения разбиваются на классы с равным числом атрибутов в ключе отношения.

б) Связывание отношений первого класса с отношениями других классов

Для каждого отношения первого класса (анализируемое отноше­ние) проводим анализ на связуемость с отношениями других классов (исследуемые отношения) последовательно, начиная со второго класса.

  1. Если ключ очередного исследуемого отношения является рас­ширением ключа анализируемого отношения первого класса, то фиксируем между ними в таблице 6 связь типа иерархия, в котором старшим является отношение из первого класса.

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

в) Связывание отношений i-го класса (i > 2) с отношениями i + к класса

Для каждого отношения i-ro класса (анализируемого отношения) проводим анализ на связуемость с отношениями i + 1 класса (исследуе­мые отношения), затем с отношением i + 2 класса и т.д. Затем аналогич­но проводим анализ отношений i + 1 класса со всеми последующими классами, i + 2-го и т.д.

Если ключ очередного исследуемого отношения является расшире­нием ключа анализируемого, то фиксируем между ними связь типа ие­рархия, в котором старшим является анализируемое отношение.

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

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

Если такое отношение есть, то с ним фиксируется связь типа ком­ментарий с псевдостаршим по отношению к исходным отношениям.

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

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

  • иерархические связи между несмежными элементами ветви в иерар­хии;

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

Поэтому помечаем как несущественные (транзитивные) связи меж­ду отношениями, удовлетворяющими следующим условиям.

Если между отношением R1 с ключом К1 установлена связь типа иерархия с отношением R2 с ключом (Kl, К2), и связь отношения R2 с отношением R3 с ключом (Kl, К2, КЗ) также связь типа иерархия и ме­жду отношениями R1 и R3 также установлена связь типа иерархия, то последняя может быть помечена как несущественная (транзитивная).

Если между отношением R1 и R2 установлена связь типа соедине­ние, то связи одного из них (соподчиненного или с меньшей мощностью домена) можно пометить как несущественные.

Следует заметить, что связи, несущественные с точки зрения иллю­страции концептуальной модели, могут быть обязательными при ото­бражении концептуальной модели в модель БД конкретной СУБД (т.к. на основе связей формируются ограничения ссылочной целостности).