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

Условие на значение “Парус” or “Волна” or “Лотос”

В результате попытка ввести в поле Название магазина другие значения будет восприниматься как ошибка.

Если известно, что цены товаров должны находиться в диапазоне от 100 до 100 000 рублей, ограничение целостности для поля Цена должно иметь вид:

Условие на значение >= 100 AND <=100000

Частным случаем определения домена можно считать автоматическое (по умолчанию) задание конкретного значения данных в некотором поле (в MS Access свойство поля Значение по умолчанию).

Некоторые нарушения целостности полей таблиц базы данных СУБД контролирует автоматически. Например, в поле, для которого определен тип данных дата/время, невозможно ввести значения 10.15.05 или 35.01.05.

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

Для полей таблиц могут поддерживаться и другие ограничения целостности.

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

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

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

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

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

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

Для задания этого ограничения целостности в MS Access необходимо вызвать диалоговое окно свойств таблицы и в свойстве Условие на значение ввести необходимые условия:

[Наличие товара] >= [Продано]

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

Эти ограничения целостности проверяют согласованность данных в различных записях одной таблицы.

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

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

Ограничения целостности для таблиц в основном реализуются специально созданными для этого программами (процедурами) [ 3 ].

Ограничения целостности для связей между таблицами

Ограничения целостности этого типа позволяют обеспечить согласованность данных в связующих полях (первичном и внешнем ключах) нескольких таблиц.

Рассмотрим таблицы Поставщики (табл. 1.1) и Поставки товаров (табл. 1.2). Эти таблицы связаны между собой с помощью ключевых полей Код и Шифр поставщика. Таблица Поставщики является главной таблицей, таблица Поставки товаров – подчиненной. Значения данных в связующих полях получены из одного домена, представляющего в рассматриваемом примере множество положительных целых трехзначных чисел.

Нарушение целостности связи между таблицами возможно при возникновении следующих ситуаций:

1. В главной таблице удаляется запись, для которой существуют связанные записи в подчиненной таблице. Действительно, если в таблице Поставщики удалить первую запись (код поставщика равен 345), база данных будет находиться в несогласованном состоянии – неизвестно, какая фирма осуществила поставки, представленные первой, четвертой и пятой записями таблицы Поставки товаров (см. табл. 1.2).

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

2. В главной таблице изменяются значения данных в поле (полях) первичного ключа, если существуют связанные с ними значения в поле (полях) внешнего ключа подчиненной таблицы (например, в таблице Поставщики код поставщика, равный 345, изменяется на значение 725, а такого значения в поле Шифр поставщика таблицы Поставки товаров нет).

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

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

Если возникает необходимость удаления или обновления связанных записей в таблицах БД при сохранении целостности данных, в диалоговом окне Связи требуется установить флажки Каскадное обновление связанных полей и Каскадное удаление связанных полей. При установке первого из этих флажков изменения данных в поле (полях) первичного ключа главной таблицы приводят к автоматическому изменению соответствующих значений в связанных полях подчиненных таблиц. Установка второго флажка позволяет автоматически удалить все записи в подчиненных таблицах, связанные с удаляемой записью в главной таблице.

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

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

Ограничения целостности могут создаваться при описании баз данных (декларативный способ) или в программах обработки данных (процедурный способ). Рекомендуется применять декларативный способ, так как создаваемые с его помощью только один раз ограничения целостности будут использоваться многократно при выполнении различных действий с данными. Кроме того, в декларативном способе используется более высокий уровень языковых средств [ 3 ].

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