Поддержка целостности данных

Целостность данных – согласованность данных между связанными таблицами в реляционных базах данных.

Механизм поддержки целостности данных обеспечивает выполнение работы с данными с учетом следующих правил:

  1. Невозможно ввести в связанное поле подчиненной таблицы значение, которое отсутствует в связанном поле главной таблицы.
  2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.
  3. Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной таблицей.

Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует поручить СУБД выполнение операций Каскадное обновление и/или Каскадное удаление связанных полей.

Операция Каскадное удаление – при удалении записи в главной таблице автоматически удаляются и все связанные записи в подчиненной таблице.

Операция Каскадное обновление – при изменении ключевого поля главной таблицы автоматически будут изменены и соответствующие значения поля связанных записей.


Проблемы реляционного подхода

Основные последствия неправильного проектирования:

· избыточность информации;

  • противоречивость информации;
  • потеря целостности (взаимосвязь между данными).

Можно доказать, что любую структуру данных можно преобразовать в простую двумерную таблицу.

Процесс превращения любой структуры данных в реляционную структуру называется нормализацией.

Технология проектирования баз данных, разработана в 70-х годах Е.Коддом.

Основные правила

Правило 1: Каждое поле таблицы должно представлять уникальный тип информации.
Т.е. необходимо избавиться от повторяющихся полей (групп) и разделить составные поля на отдельные элементы данных.

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

Правило 3: В таблице не должно быть данных, не относящихся к объекту, определяемому первичным ключом.

Правило 4: Независимость полей.
Т.е. возможность изменять значения любого поля (не входящего в первичный ключ) без воздействия на данные других полей.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: