Целостность данных
Основными проблемами в процессе проектирования баз данных является обеспечение целостности, согласованности, восстанавливаемости, безопасности и эффективности, а также возможное возникновение последствий предполагаемого роста баз данных в будущем.
База данных обладает свойством целостности, если она удовлетворяет определенным ограничениям на значения и структуру данных. Возможны следующие виды ограничений на значения данных:
1) Данные должны находиться в заданном диапазоне. Например, зарплата служащего не может быть выше зарплаты директора, или год поступления в институт меньше года рождения. Если база заполнена записями, то такой контроль ограничений значений данных осуществляется проверкой попадания в указанный диапазон и удалением некорректных записей. В дальнейшем, это ограничение должно контролироваться всякий раз, когда в базу добавляется новая запись. Из смысла этого ограничения следует, что оно не должно проверяться при операции удаления записей из базы данных.
2) Данные могут принимать значения из некоторого множества значений (например, название профессий), при этом создаются специальные файлы данных (базы данных) – словари, связанные с исходным файлом, из которых без набора с клавиатуры данных, вводятся нужные данные, что уменьшает возможные ошибки, учитывает ограничения на данные (должен быть машинист, а не машинистка).
3) Если поле является первичным ключом, то значение этого поля должно быть уникально. Система управления базы данных должна отклонить любую попытку ввести в базу данных кортеж (запись) со значением первичного ключа, повторяющем уже имеющееся значение.
4) Отношение может иметь кроме первичного ключа также возможные ключи (вторичные), значения которых должны быть также уникальными либо могут повторяться и использоваться для связи один ко многим. Для спецификации этого типа ограничений достаточно фразы UNIQUE (A) при описании модели данных, где А – атрибут или комбинация атрибутов.
5) В заданном отношении для каждого кортежа между значением атрибутов А и В должно всегда выполняться некоторое условие (например, что первый атрибут больше второго). Ограничение специфицируется специальным выражением.
6) Множество значений одного атрибута вычисляется через операции над другими. Реализуется с использованием функций СУБД.
Ограничения на структуру данных:
1) Контроль типа поля данных при всех операциях над базой (например, если целое поле, то заполнять, заменять и т.д. на строковое нельзя).
2) Ограничение на число полей в записи.
3) Ссылочная целостность означает, что все изменения во взаимосвязанных отношениях должны выполняться согласованно.
Основная идея обеспечения ограничений целостности заключается в том, чтобы использовать язык манипулирования данными как средство выражения этих ограничений. Описание ограничений целостности содержит две части. В первой – выражается собственно ограничение, во второй – описывается то, когда и при каких условиях должна выполняться проверка.