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

2.9 Трансформация ограничений

А) Трансформация ограничений целостности — важный этап перехода от одной модели данных к другой.

Б) Для до­стижения полной эквивалентности наряду с эквивалент­ным преобразованием графа модели необходимо выпол­нить соответствующее эквивалентное преобразование до­полнительных ограничений. В процессе перехода от мо­дели «сложная таблица» к ER-модели появляются новые сущности, в которые переносятся некоторые атрибуты ис­ходной сущности. Это, естественно, требует соответствую­щей корректировки дополнительных ограничений целост­ности

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

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

Новые ограничения уникальности появляются у но­вых сущностей, появившихся в результате преобразова­ния модели. При вычленении «скрытой» сущности в ней идентификатором (первичным ключом) становится соот­ветствующий a при вычленении многозначного агрегата — соответству­ющий компонент иерархического ключа .

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

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

Правила активного поведения, как и другие ограниче­ния целостности, должны быть переформулированы в со­ответствии с новой структурой модели.

Новые правила активности могут возникнуть в ре­зультате вычленения многозначных агрегатов и «скры­тых» сущностей в самостоятельные сущности. Эти прави­ла определяют, как должна вести себя активная база дан­ных в ответ на попытку удаления экземпляра родитель­ской сущности: как поступать в этом случае с экземпляра­ми дочерней сущности, удалять ли их вместе с родитель­ской? Подобные правила относятся к классу правил ссы­лочной целостности3.

Строгое правило удаления (RDR — Restrict Delete Rule) «родителя» заключается в том, что запрещается удалять те экземпляры родительской сущности, у которых име­ются соответствующие экземпляры дочерней сущности. В этом случае удалить «родителя» можно лишь после того, как будут удалены все его «дети». Очевидно, это правило применимо, если связь необязательная со стороны «роди­теля», т. е. если «родитель» может не иметь «детей».

Каскадное правило удаления (CDR — Cascade Delete Rule) «родителя» состоит в том, что вместе с экземпля­ром родительской сущности автоматически удаляются со­ответствующие ему экземпляры дочерней сущности (вме­сте с «родителем» удаляются все его «дети»). Это прави­ло — наиболее естественное для рассматриваемого случая, когда родительская или дочерняя сущность получаются в результате вычленения из исходной сущности. Действи­тельно, в исходной «сложной таблице» при удалении эк­земпляра сущности удаляются все вычлененные значения: как экземпляры многозначного агрегата, содержащегося в сущности, так и экземпляры атрибутов, составляющих «скрытую» сущность.

Правило удаления с образованием «сирот» состоит в том, что при удалении экземпляра родительской сущно­сти, связанные с ним экземпляры дочерней сущности теря­ют экземпляры связей, т.е. становятся «сиротами». Оче­видно, это правило применимо, если связь является необя­зательной со стороны дочерней сущности.

Специальные правила удаления «родителя» могут пре­дусматривать иные стратегии активного поведения в этой ситуации. Например, может быть предусмотрено «удоче­рение детей, потерявших родителя», т.е. прикрепление экземпляров дочерней сущности к специально выделенно­му экземпляру родительской сущности.

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

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

Г)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]