Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_практика_Visual Foxpro.doc
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
1.28 Mб
Скачать

5.2. Определение условий целостности данных

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

Для определения условий целостности данных необходимо в окне конструктора базы данных нажать правую кнопку мыши и выбрать команду Edit Referential Integrity. В результате откроется окно конструктора условий целостности данных Referential Integrity Builder.

Таблица описания условий содержит наименования родительских таблиц – столбец Parent Table, и соответствующих дочерних таблиц – столбец Child Table; наименования индексов, используемых для связей - столбцы Parent Tag и Child Tag; а также типы действий, выполняемых при модификации данных (Update), добавлении (Insert), удалении(Delete) записей в таблицах:

рис 5.3. Окно конструктора условий целостности данных

Окно Referential Integrity Builder содержит три вкладки (Rules for Updating, Rules for Deleting, Rules for Inserting), в каждой из которых находятся переключатели для установки типа выполняемого действия. Однако выбрать тип действия можно и непосредственно из раскрывающегося списка в полях Update, Insert, Delete.

При изменении значений первичного ключа в родительской таблице возможны следующие варианты действий (вкладка Rules for Updating или поле Update):

Наименование

Описание

Cascade

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

Restrict

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

Ignore

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

При изменении значений первичного ключа в родительской таблице возможны следующие варианты действий (вкладка Rules for Deleting или поле Delete):

Наименование

Описание

Cascade

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

Restrict

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

Ignore

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

При добавлении новой записи в дочернюю таблицу или редактировании в ней существующей записи возможны следующие варианты действий (вкладка Rules for Inserting или поле Insert):

Наименование

Описание

Restrict

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

Ignore

При вводе данных не анализируется значение индексного выражения. Целостность данных при этом не поддерживается.

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