Классика баз данных - статьи

       

Семантика и правила вставки, удаления и модификации


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

В таблицах 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

операция:

  • удалить сущность

последующие действия:

  • удалить любую сущность, существование которой зависит от этой сущности
  • удалить все связи, включающие эту сущность
  • удалить все связанные свойства

операция:

  • удалить кортеж сущности

последующие действия:

  • удалить любой набор сущностей, существование которого зависит от этого набора сущностей
  • удалить наборы связей, ассоциированные с этой сущностью

операция:

  • удалить связь

последующие действия:

  • удалить все связанные свойства

операция:

  • удалить набор связей



Содержание раздела