программных файлов, описаний форм ввода-вывода, отчетов). Например, если
для файла БД имеется связанная с ним форма отчета, то при удалении из файла
поля, вывод которого предусмотрен в этой форме, возникает ошибка при выводе
отчета. Нарушения целостности могут возникнуть, если изменяется тип данных,
хранящихся в поле, и во многих других случаях.
Некоторые СУБД имеют специальный механизм, позволяющий
отслеживать согласованность различных информационных компонентов банка
данных. Например, в системе Paradox имеется понятие “семейство”,
включающее в себя файлы БД и относящиеся к ним индексы, отчеты, формы и
т.п. Для отслеживания взаимосвязи между всеми информационными
компонентами БнД должны использоваться словари данных.
Задание ограничений целостности и их проверка являются важной частью
проектирования и функционирования БнД.
Ограничения целостности, присущие той или иной ПО, должны быть
выявлены при обследовании и зафиксированы в ИЛМ. Вопрос о необходимости
проверки ОЦ при функционировании БнД должен решаться на основе анализа
эффективности проекта, так как в некоторых случаях для реализации проверки
ОЦ требуются значительные затраты времени.
ОЦ в БнД могут задаваться либо при описании структуры таблиц БД (т.е.
в схеме БД), либо в программах обработки данных. Первый подход
предпочтительнее и не только потому, что описательный (декларативный)
способ задания ОЦ представляет собой более высокий уровень контроля, но и
потому, что заданные ограничения будут контролироваться при выполнении
всех операций над данными.
Разные СУБД обладают различным набором средств для обеспечения
целостности данных. Так, некоторые РСУБД поддерживают концепцию ключа,
домена и внешнего ключа. При этом соответствующие проверки ОЦ
выполняются автоматически. В некоторых системах при описании структуры БД
для поля можно задать запрет содержать пустое значение (понятие NOT NULL),
можно определить диапазон допустимых значений и другие ОЦ.
При проектировании БнД необходимо изучит, какие возможности по
контролю целостности предоставляет используемая СУБД. Если СУБД