Вы находитесь на странице: 1из 2

Целостность данных в БД.

Целостность данных необходимо отличать от других смежных понятий:


актуальность данных, надежность данных, безопасность данных.
Актуальность – соответствие данных реального мира тем данным, которые
хранятся в БД
Безопасность – вопросы шифрования, пароли, разграничение прав доступа и т.д.
Надежность – вопросы восстановления данных после сбоев, работа без сбоев,
резервное копирование и архивирование
Целостность – это согласованность, непротиворечивость, интегрированность
данных в БД.
Все виды целостности разбиты на несколько групп:
1. Целостность по сущностям (сущностная)
2. Целостность по ссылкам (ссылочная)
3. Доменная целостность
4. Семантическая (смысловая) целостность
Целостность обеспечивается введением правил целостности (ограничений
целостности, ограничений на данные для поддержания целостности).
Целостность по сущностям
Ограничение целостности по сущностям требует, чтобы в рамках одной сущности
все экземпляры этой сущности были отличимы друг от друга (уникальны), не должно
быть дублей и неопределенных экземпляров. Классическим инструментом для
поддержания этого вида целостности является первичный ключ.
Целостность по ссылкам
Нарушением этого вида целостности будет ситуация, когда в дочерней сущности
упоминается экземпляр, не существующий в родительской сущности, другими словами,
дочерняя сущность ссылается на несуществующий экземпляр родительской сущности.
Например, в сущности Состав блюда БД «Кафе» встречается код продукта 107, но
в родительской сущности Продукты нет продукта с таким кодом. Следовательно, данные
рассогласованны, противоречивы.
Примечание. Если в дочерней сущности в качестве ссылки встречается NULL-
значение – это допустимо, так как противоречия данных здесь не возникает.
Классическим инструментом для поддержания этого вида целостности является
внешний ключ.
Для каждого внешнего ключа необходимо ответить на три вопроса:
 Возможно ли в качестве внешнего ключа NULL-значение
 Что должно случится при попытке удаления экземпляра родительской
сущности, на который ссылается внешний ключ
 Что должно происходить при попытке обновления первичного ключа
родительской сущности, на который ссылается некоторый внешний ключ
Ответы на эти вопросы зависят от предметной области (от фактической ситуации в
ПрО)
Проблемы в логической структуре схемы БД:
1. Не выполняются требования реляционной модели данных
(неатомарные поля, множественные значения полей, повторяющиеся группы
полей и т.д.)
В реляционной модели значения всех атрибутов должны бать «атомарные»,
то есть «неделимые» (в рамках этой модели).
Атомарность значений требуется для правильного манипулирования
данными.
2. Избыточность
(данные многих столбцов многократно повторяются, повторяются даже
наборы столбцов/данных)
Избыточность порождает аномалии:
 Аномалия обновления (может приводить к потенциальной
противоречивости данных)
 Аномалия включения новых данных
 Аномалия удаления данных
Для избавления от проблемы аномалий в логической структуре используется
процедура нормализации. Окончательная цель нормализации – получение
такой схемы БД, в которой каждый факт появляется лишь в одном месте, то
есть исключена избыточность данных.