Целостность и сохранность баз данных
Обеспечение целостности данных касается защиты от внесения непред-намеренных ошибок и предотвращения последних. Оно достигается за счёт проверки ограничений целостности – условий, которым должны удовлетворять значения данных.
Рассмотрим различные типы ограничений целостности в языке SQL:
- Уникальность значения первичного ключа (PRIMARY KEY).
- Уникальность ключевого поля или комбинации значений ключевых полей:
где A – один или несколько атрибутов, указанных через запятую.
(1,2 – явные структурные ограничения целостности.)
- Обязательность/необязательность значения (NOT NULL/NULL).
- Задание диапазона значений атрибута Field:
- Задание взаимоотношений между значениями атрибутов Field1 и Field2:
- Задание списка возможных значений (констант) для атрибута Field:
- Определение формата атрибута Field (даты, числа и др.). Например:
- Определение домена атрибута на основе значений другого атри Определение формата атрибута Field (даты, числа и др.). Например:
- бута: множество значений некоторого атрибута отношения является под-множеством значений другого атрибута этого или другого отношения (внешний ключ, FOREIGN KEY)./li>
(3.-8. – явные ограничения целостности на значения данных.)
|
|
- Ограничения на обновление данных (например, каждое следующее зна-чение атрибута должно быть больше предыдущего). В SQL напрямую не реализуется, требует использования специальных возможностей СУБД (триггеров).
- Ограничения на параллельное выполнение операций (механизм тран-закций) и проверка ограничений целостности после окончания внесения взаимосвязанных изменений.
Реализация ограничений целостности возлагается на СУБД или выполняется с помощью специальных программных модулей.
СУБД проводит проверку выполнения ограничений целостности для команд DDL до выполнения команды, а для команд DML либо сразу после выполнения команды, либо после выполнения всей транзакции. (По стан-дарту ISO этим можно управлять; по умолчанию проверка проводится после каждой операции DML).
Под функцией безопасности (или физической защиты) данных подразу-мевается предотвращение разрушения или искажения данных в результате программного или аппаратного сбоя. Обеспечение безопасности является внутренней задачей СУБД, поскольку связано с её нормальным функционированием, и решается на уровне СУБД. Цель восстановления базы данных после сбоя – обеспечить, чтобы результаты всех подтверждённых транзакций были отражены в восстановленной БД, и вернуться к нормальному продолжению работы как можно быстрее, изолируя пользователей от проблем, вызванных сбоем.