Database Programming & Design


Денормализация ERD - часть 4


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

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

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

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

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


- Начало -  - Назад -  - Вперед -