Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л-р 1-4.doc
Скачиваний:
22
Добавлен:
20.02.2016
Размер:
814.08 Кб
Скачать

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

Целостность данных является одним из самых важных требований, предъявляемым к базе данных. Для задания условий целостности служат установленные между таблицами отношения. Что же представляет собой условие целостности данных?

Условиями целостности данных называют набор правил, используемых в MS Access для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связанных данных. Например, если связаны таблицы Специальности и Группы, то нельзя удалить запись специальности, для которой имеются записи в таблице Группа при условии задания обеспечения целостности данных. Обеспечение целостности данных выполняется при следующих условиях:

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

  • Связанные поля имеют одинаковый тип данных. Исключением является связь полей типа Счетчик и Числовой, например, поле КодСп в таблице Специальности и поле КодСп в таблице Группы.

  • Обе таблицы принадлежат одной базе данных.

При определении условий целостности данных действуют следующие ограничения:

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

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

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

Целостность данных в связанных таблицах обеспечивается при создании связей между таблицами (см. предыдущий раздел данных методических указаний).

В окне диалога Схема данных после выполнения указанных действий на линии связи будет задана ссылка на тип отношения Один ко многим (около главной таблицы стоит символ 1, а рядом с подчиненной таблицей символ - бесконечность).

Теперь любая попытка выполнить действие, нарушающее перечисленные выше ограничения, приведет к открытию окна диалога с предупреждением, а само действие выполнено не будет. Например, попытайтесь удалить запись из таблицы Специальности, для которой имеются записи в таблице Группы, и вы убедитесь, что это невозможно.

7.Использование каскадных операций

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

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

Каскадные удаления. При попытке удалить запись в главной таблице, связанной по типу «один-ко-многим» с подчиненной таблицей при не установленной опции Каскадное удаление связанных полей, будет выдано сообщение об ошибке (например, в случае удаления записи специальности, для которой в таблице Группы есть одна или более записей групп). Однако, если выбрана опция Каскадное удаление связанных полей, вы можете удалить запись из главной таблицы. Связанные с нею записи в подчиненных таблицах также будут автоматически удалены. Таким образом, будут соблюдены правила целостности данных. Другим словами, если выбрана опция Каскадное удаление связанных полей, то все связанные поля из подчиненной таблицы удаляются, как только удаляется запись из главной таблицы. Режим Каскадное удаление связанных полей удобно использовать для чистки базы данных. Например, если из базы данных Контингент необходимо удалить записи студентов, окончивших институт, то при включенной опции Каскадное удаление связанных полей достаточно удалить записи соответствующих групп из главной таблицы.

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

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