Здавалка
Главная | Обратная связь

Обеспечение целостности данных



Проблема целостности состоит в обеспечении правильности данных в базе в любой момент времени. Это касается защиты данных от непреднаме­ренных ошибок и их предотвращения. Этим проблема целостности отлича­ется от проблемы безопасности, в остальном эти два вопроса тесно соприка­саются.

Имеются два основных вида ограничения целостности, которые должны поддерживаться СУБД:

структурные ограничения. Эти ограничения во многих случаях зада­ются функциональными зависимостями и проверяются путем проверки ра­венства значений соответствующих данных в базе;

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

Существуют и другие ограничения целостности. Например, огра­ничения на условия выполнения параллельных операций над данными в базе; ограничения типа старый—новый, когда БД переходит в новое состояние.

В общем случае целостность может быть нарушена при сбое оборудо­вания, программной ошибке, ошибке человека-оператора, ошибках в исход­ных данных и т.п.

Рассмотрим примеры различных типов ограничений целостности.

1. Значения первичного ключа любого отношения (файла) должны быть уникальны.

2. Отношение (файл), кроме первичного ключа, может содержать воз­можные ключи, значения которых должны быть также уникальными.

Эти два примера соответствуют структурным ограничениям.

3. В заданном отношении для каждого кортежа между значением поля А и значением поля В должно всегда выполняться условие, что первое больше второго. Ограничение специфицируется специальным выражением.

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

5. Для некоторого атрибута (или комбинации атрибутов) может суще­ствовать конечный (небольшой по размеру) набор допустимых значений (например, по атрибуту ОБРАЗОВАНИЕ могут быть только значения НАЧАЛЬНОЕ, НЕПОЛНОЕ СРЕДНЕЕ, СРЕДНЕЕ, НЕПОЛНОЕ ВЫСШЕЕ, ВЫСШЕЕ). Ограничение специфицируется специальным выражением при описании данных.

6. Значения некоторого атрибута должны удовлетворять определен­ному формату.

7. Множество значений одного из атрибутов отношения должно удов­летворять некоторому статистическому условию. Например, конкретное значение не должно превышать более чем в два раза среднее значение. Ог­раничение реализуется СУБД при контроле выполняемых операций.

8. Множество значений некоторого столбца отношения является под­множеством значений другого столбца этого отношения. Ограничение кон­тролируется при выполнении операций.

Рассмотренные примеры 3—8 соответствуют второму виду ограниче­ний — ограничений на значения данных.

9. Требуется ограничить обновление данных в заданном отношении таким образом, чтобы для указанного атрибута имело место в каждом кор­теже некоторое соотношение между старым и новым значениями.

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

10. Если транзакция А (транзакция — это разовый прогон некоторой процедуры) и транзакция В выполняют изменения одних и тех же данных в базе, то в случае их параллельного выполнения может быть нарушена цело­стность данных в базе. В этом случае СУБД должна реализовать специаль­ный режим выполнения параллельных вычислений. Например, транзакция В не может обратиться к данным, пока с ними не закончится работа в тран­закции Л.

11. Если транзакция выполняет несколько изменений в БД которые связаны между собой ограничениями целостности, то в этом случае ограни­чения целостности можно проверять только после выполнения транзакции. Такие ограничения называют отложенными.

Рассмотренных примеров достаточно, чтобы создать представление о составе задач, подлежащих решению при проектировании средств обеспе­чения целостности данных в базе.

Основная идея обеспечения ограничений целостности данных заклю­чается в том, чтобы использовать язык ЯМД как средство выражения этих ограничений. Декларация ограничений целостности содержит две части. В первой из них должно быть выражено само ограничение, а во второй — описывается, когда, при каких условиях должна выполняться сама провер­ка. Языки манипулирования данными реальных систем позволяют в той или иной мере поддерживать если не все, то многие из рассмотренных ограни­чений целостности.

 

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

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

В случае если пользователь нарушил эти условия в операциях обновления или удаления данных в связанных таблицах, Access выводит соответствующее сообщение и не допускает выполнения операции. Access автоматически отслеживает целостность данных, если между таблицами в схеме данных установлена связь с параметрами обеспечения целостности. При вводе некорректных данных в связанные таблицы выводится соответствующее сообщение. Access не позволяет создавать связи с параметрами обеспечения целостности в схеме данных, если ранее введенные в таблицы данные не отвечают требованиям целостности.
Отметим, что установление между двумя таблицами связи типа один к одному или один ко многим и задание параметров целостности данных возможно только при следующих условиях:

  • связываемые поля имеют одинаковый тип данных, причем имена полей могут быть различными;
  • обе таблицы сохраняются в одной базе данных Access;
  • главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы.

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

Структура распределенного банка данных

Банк и база данных, расположенные на одном компьютере, на­зываются локальными, а на нескольких соединенных сетями ПЭВМ называются распределенными. Распределенные банки и базы данных более гибки и адаптивны, менее чувствительны к выходу из строя оборудования.

Назначение распределенных баз и банков данных состоит в предоставлении более гибких форм обслуживания множеству уда ленных пользователей при работе со значительными объемами ин­формации в условиях географической или структурной разобщен­ности. Распределенные системы баз и банков данных обеспечива­ют широкие возможности по управлению сложных многоуровне­вых и многозвенных объектов и процессов.

(тут начинается муть)

В системах обработки распределенных баз данных база данных распределена по множеству компьютеров. На рисунке 1 база данных (или часть ее) хранится на всех n компьютерах. Как показано на рисунке, компьютеры 1, 2 и n обрабатывают и приложения, и базу данных, а компьютер 3 обрабатывает только базу данных.

Пунктирная линия, которой обведены файлы, означает, что база данных включает в себя все сегменты, хранящиеся на всех п компьютерах. Эти компьютеры могут физически размещаться в одном помещении, а могут – в разных концах планеты.
Система с совместным использованием файлов, клиент–серверная системаи система обработки распределенных баз данныхимеют одно важное отличие от системы удаленной обработки данных: у всех них для обработки приложений или СУБД используется более одного компьютера.
Следует обратить внимание, однако, что сама база данных является распределенной только в архитектуре на рисунке 1. Ни в клиент-серверной системе, ни в системе с совместным использованием файлов база данных не распределена по множеству компьютеров.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.