Семантика и правила вставки, удаления и модификации
Поддержка согласованности данных после вставки, удаления и модификации данных в базе данных всегда представляет сложную проблему. Одна из основных причин заключается в том, что семантика и последствия операций вставки, удаления и модификации обычно четко не определяются; поэтому трудно найти набор правил, которые могут поддерживать согласованность данных. Мы покажем,что при использовании модели сущность-связь проблема согласованности данных упрощается.
В таблицах I-III мы обсуждаем семантику и правила
операций вставки, удаления и модификации и на уровне 1, и на уровне 2. Уровень 1 используется для того, чтобы семантика была более понятной.
Таблица I. Вставка
Уровень 1
Уровень 2
операция:
- вставить сущность в множество сущностей
|
| операция:
- создать кортеж сущности с некоторым PK сущности
проверка:
- существует ли уже PK или является допустимым?
|
|
операция:
- вставить связь в множество связей
проверка:
|
| операция:
- создать кортеж связей с данными PK сущностей
проверка:
- существуют ли PK сущностей?
|
|
операция:
- вставить свойства сущности или связи
проверка:
|
| операция:
- вставить значения в кортеж сущности или связи
проверка:
|
|
Таблица II. Изменение
Уровень 1
Уровень 2
операция:
- изменить значение атрибута сущности
|
| операция:
- модифицировать значение атрибута сущности
последующие действия:
- если это не часть PK сущности, последующих действий нет
- если это часть PK сущности,
- изменить PK сущностей во всех связанных отношениях связи
- изменить PK других сущностей, которые используют это значение как часть своих PK (например, в PK сущностей DEPENDENT используется PK сущности EMPLOYEE)
|
|
операция:
- изменить значение атрибута связи
|
| операция:
- модифицировать значение (заметим, что атрибут связи не будет являться PK связи)
|
|
Таблица III. Удаление
Уровень 1
Уровень 2
операция:
последующие действия:
- удалить любую сущность, существование которой зависит от этой сущности
- удалить все связи, включающие эту сущность
- удалить все связанные свойства
|
| операция:
последующие действия:
- удалить любой набор сущностей, существование которого зависит от этого набора сущностей
- удалить наборы связей, ассоциированные с этой сущностью
|
|
операция:
последующие действия:
- удалить все связанные свойства
|
| операция:
|
|
Содержание раздела