Правила ссылочной целостности
Целостность данных является понятием базы данных [20, 21]. ERwin позволяет в модели "сущность-связь" задать правила ссылочной целостности (возможно также задание ограничений на значения атрибутов, но мы не рас- сматриваем эту возможность). При генерации схемы базы данных ERwin ге- нерирует правила декларативной ссылочной целостности и триггеры. То есть, правила ссылочной целостности задаются в модели "сущность-связь", а реализуются в построенной по этой модели реляционной базе данных. Соот- ветствие между моделью и базой данных легко устанавливается, учитывая, что сущностям модели соответствуют отношения реляционной базы данных, а экземплярам сущностей – кортежи отношений.
Так как внешние ключи кортежей дочернего отношения служат ссыл- ками на соответствующие кортежи родительского отношения, то эти ссылки не должны указывать на несуществующие кортежи. Это определяет следую- щее правило целостности внешних ключей (правило ссылочной целостно- сти): для каждого значения внешнего ключа должно существовать соответст-
вующее значение первичного ключа в родительском отношении.
Ссылочная целостность может нарушиться в результате операций с кортежами отношений. Таких операций три: вставка, обновление и удаление кортежей в отношениях. Рассмотрим эти операции для родительского и до- чернего отношений [27].
При операциях с кортежами родительского отношения возможны сле- дующие ситуации:
Вставка кортежа в родительское отношение. Так как допустимо существование кортежей родительского отношения, на которые нет ссылок из дочерних отношений, то вставка кортежа в родительское отношение не нарушает ссылочной целостности.
Обновление кортежа родительского отношения. При обновлении кортежа родительского отношения может измениться значение ключа. Если есть экземпляры дочернего отношения, ссылающиеся на обновляемый кор- теж родительского отношения, то значения их внешних ключей станут не- корректными. Обновление кортежа в родительском отношении может при- вести к нарушению ссылочной целостности, если это обновление затрагива- ет значение ключа.
Удаление кортежа родительского отношения. При удалении кор- тежа родительского отношения удаляется значение ключа. Если есть кортежи дочернего отношения, ссылающиеся на удаляемый кортеж родительского от- ношения, то значения их внешних ключей станут некорректными. Удаление кортежа родительского отношения может привести к нарушению ссылоч- ной целостности.
При операциях с кортежами дочернего отношения возможны следую- щие ситуации:
Вставка кортежа дочернего отношения может привести к нару- шению ссылочной целостности, если вставляемое значение внешнего ключа некорректно.
Обновление кортежа дочернего отношения может привести к на- рушению ссылочной целостности при некорректном изменении значения внешнего ключа.
При удалении кортежа дочернего отношения ссылочная целост- ность не нарушается.
Таким образом, ссылочная целостность в принципе может быть нару- шена при выполнении одной из четырех операций:
обновление кортежа в родительском отношении;
удаление кортежа в родительском отношении;
вставка кортежа в дочернее отношение;
обновление кортежа в дочернем отношении.
Существуют две основные стратегии поддержания ссылочной цело- стности:
Достарыңызбен бөлісу: |