Целостность
Целостность базы данных означает, что она содержит полную и непротиворечивую информацию и удовлетворяет всем заданным ограничениям.
Прежде всего, нужно обеспечить физическую целостность БД, т. е. защитить данные в случае отказа оборудования (например, при отключении питания или выходе из строя жёстких дисков). Периодически (например, раз в неделю или даже чаще) администраторы базы данных создают резервные копии всех данных (на магнитных дисках или DVD-дисках) и ведут журнал изменений. При потере рабочей копии восстанавливается самая последняя сохранённая версия базы данных.
Также используют RAID-массивы жёстких дисков, где информация дублируется и может быть автоматически восстановлена в случае выхода из строя одного или даже нескольких дисков.
Используя дополнительные источники, выясните, от каких слов образовано сокращение RAID и как переводится это выражение на русский язык. Найдите два варианта ответа на этот вопрос.
Теперь представьте себе, что в базе данных отдела кадров по ошибке у работника указан 1698 год рождения, а в поле Зарплата введено отрицательное число. В этих случаях нарушается логическая целостность БД, т. е. непротиворечивость данных. Чтобы этого не произошло, вводят ограничения на допустимые значения полей (контроль данных):
• каждое поле имеет свой тип; например, СУБД не даст записать в поле целого типа произвольный текст — будет выведено сообщение об ошибке;
• некоторые поля (в первую очередь — первичный ключ) объявляются обязательными для заполнения;
• значения в некоторых полях (например, ключевых) не могут повторяться (при повторении значения выдаётся сообщение об ошибке);
• вводятся условия, которые должны выполняться для значений отдельных полей: например, количество учеников в классе должно быть положительно;
• для сложных данных используются шаблоны ввода: например, для ввода семизначного номера телефона можно использовать шаблон ###-##-##, где # означает любую цифру;
• вводятся условия, которые должны выполняться для нескольких полей каждой записи: например, дата увольнения работника не может быть более ранней, чем дата приёма на работу.
Заметим, что целостность БД не гарантирует достоверность (истинность) данных, а только означает, что выполнены все установленные ограничения на эти данные и исключены явные противоречия.
Определите, какие нарушения логической целостности допущены в таблице на рис. 6.7. Сколько ошибок вам удалось найти?
Рис. 6.7
Следующая страница Выводы