Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных_учпос_Любицкий Ю.В..doc
Скачиваний:
9
Добавлен:
20.04.2019
Размер:
618.5 Кб
Скачать

2. Целостность баз данных

Одной из важнейших задач, решаемой СУБД, является поддержание в любой момент времени взаимной непротиворечивости, правильности и точности данных, хранящихся в БД. Этот процесс называется обеспечением целостности базы данных.

Следует различать проблемы обеспечения целостности базы данных и защиты базы данных от несанкционированного доступа (см. п. 6). Поддержание целостности базы данных может интерпретироваться как защита данных от неправильных действий пользователей или некоторых случайных внешних воздействий. В обеих ситуациях нарушения целостности базы данных имеют непреднамеренный характер.

Целостность базы данных может быть нарушена в результате сбоя оборудования; программной ошибки в СУБД, операционной системе или прикладной программе; неправильных действий пользователей. Эти ситуации могут возникать даже в хорошо проверенных и отлаженных системах, несмотря на применяемые системы контроля. Поэтому СУБД должна иметь средства обнаружения таких ситуаций и восстановления правильного состояния базы данных.

Целостность базы данных поддерживается с помощью набора специальных логических правил, накладываемых на данные, называемых ограничениями целостности. Ограничения целостности представляют собой утверждения о допустимых значениях отдельных информационных единиц и связях между ними [ 3 ]. Ограничения целостности хранятся в словаре БД.

Ограничения целостности могут определяться:

  • спецификой предметной области (возраст сотрудников организации может находиться в диапазоне от 16 до 80 лет);

  • непосредственно информационными характеристиками (артикул товара должен быть целым числом).

В процессе работы пользователя с базой данных СУБД проверяет, соответствуют ли выполняемые действия установленным ограничениям целостности. Действия, нарушающие целостность базы данных, отменяются, при этом обычно выводится соответствующее информационное сообщение.

Рассмотрим проблемы поддержания целостности баз данных на примере реляционной СУБД. Следует отметить, что приводимые далее рассуждения в общем виде справедливы и для других моделей данных [ 3 ].

Ограничения целостности в реляционной модели данных могут относиться к полям, записям, таблицам, связям между таблицами.

Ограничения целостности для полей

Большая часть ограничений целостности для полей обеспечивает выполнение требования, приведенного в п. 1.2 – данные в одном поле могут иметь значения только из некоторой совокупности допустимых значений, называемой домéном. Практическая реализация этого требования может осуществляться разными способами:

1. Для поля устанавливается конкретный тип данных: текстовый, числовой, дата/время, логический и т. д. Это не позволяет вводить, например, в числовое поле текст или даты, в поле с типом данных дата/время – числа.

2. Домен указывается непосредственно – перечислением входящих в него значений или с помощью указания диапазона допустимых значений.

Проиллюстрируем процесс создания рассмотренных ограничений целостности для полей на примере СУБД MS Access. Все они легко задаются при формировании структуры таблицы в режиме Конструктора.

Тип данных создаваемого поля выбирается из предложенного списка доступных типов. При необходимости с помощью свойства поля Размер поля можно уточнить область определения размещаемых в нем данных. Указывается максимальный размер данных, сохраняемых в поле: количество символов для тестовых полей; размеры поля для числовых полей: байт (целое число от 0 до 255), целое (число в диапазоне от минус 32768 до 32768), одинарное с плавающей точкой и т. д.

При непосредственном задании домена необходимые параметры можно указать в свойстве поля Условие на значение. Например, если в структуру торгового предприятия входят три магазина: «Парус», «Волна» и «Лотос», для поля Название магазина некоторой таблицы, в которое вводятся соответствующие значения, целесообразно предусмотреть следующее ограничение целостности:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]