Читайте также: |
|
Если между сущностями установлены связи, то необходимо использовать определенные ограничения при выполнении вставки, модификации и удалении сущностей.Пример:
Целостность связи реализуется на основе триггеров, которые поддерживают определенные правила, например, если мы хотим удалить сущность проект, то возможны 2 варианта поведения триггеров: 1. удалить все сущности «работа» с идентификатором проекта = идентификатору проекта сущности «проект». 2. запретить удаление сущности «проект», если по проекту ведутся какие-либо работы.Правила соответствующие первой альтернативе называются каскадными, А второй – ограничительными. При построении модели необходимо сделать выбор в пользу или каскадных или ограничительных правил. Ограничение целостности в идентифицирующих связях.
Родитель(отдел) | Потомок(служащий) | |
Вставить | Нет ограничений | |
Удалить | 1/2 | Нет ограничений |
изменить | 3/4 | 6/7 |
*
1. – если есть потомки у удаляемой сущности, то выдаем сообщение об ошибке(ограничительная стратегия). 2. – для каскадной стратегии, если есть потомки у удаляемой сущности, то все их удаляем. 3. – ограничительная стратегия, если у родителя меняется ключ, а с этим ключом у него связаны потомки, то выдаем сообщение об ошибке. 4. – для каскадной стратегии в этом случае изменяется значение внешнего ключа для потомков. 5. – для нового потомка должен существовать родитель.Если родитель не существует, то при ограничительной стратегии выдаем ошибку, а при каскадной создаем родителя для вставки потомка. 6. – если у потомка меняется внешний ключ, то его новое значение должно соответствовать некоторой сущности родитель(ограничительная стратегия). 7. - в случае каскадной стратегии, если родитель не существует, то он создается.
Дата добавления: 2015-07-25; просмотров: 80 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Категории сущностей. | | | Ограничение целостности в не идентифицирующих связях. |