Основные действия

Ссылочное ОЦ на практике

Общая характеристика действий по редактированию

ссылочной целостности данных в связанных таблицах

И возможностей настроек для выполнения операций в диалоговом окне

Referential Integrity Builder (описание общего построения)

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

Теперь научимся определенным правилам СУБД (UpDate, Delete и Insert), обеспечивающим ссылочное ограничение целостности при редактировании записей в связанных таблицах.

Предварительные действия

В среде VFP в диалоговом окне (ДО) Project Manager выполнить следующие действия:

§ Создать вторую БД (2-й контейнер) с именем Data2, для чего выполнить команду Главного меню (ГМ) File->New, в появившемся ДО включить радио-кнопку Database. Если контейнер не добавился в проект, то в окне Project Manager встать на строку Databases и нажать кнопку ADD для добавления новой базы в проект.

§ Открыть контейнер с именем Database Designer: Data2 командой ГМ File->Open.

§ Создать новый программный файл (под любым именем) для получения в нем копий таблиц-оригиналов базы Data1 в виде свободных таблиц (Detl_k1, Poshk_k1, Poski_k1, Proek_k1), не принадлежащих этой базе, по следующей программе:

Close table all

Use Detl

Copy to Detl_k1

Use Poshk

Copy to Poshk_k1

и т.д.

  • Добавить все копии таблиц в созданный контейнер Database Designer: Data2, выделив для этого в диалоговом окне Project Manager строку Tables в контейнере Data2 и нажав кнопку ADD, или на рабочем поле Database Designer: Data2 в контекстном меню выбрать команду АDD.
  • Создать в таблице Poski_k1 три вторичных индекса с типом Regular для полей nomp, nomd, nomr соответственно под именами nomp_i1, nomd_i1, nomr_i1, a в таблицах Poshk_k1, Detl_k1, Proek_k1 первичные индексы Primary соответственно по таким же полям под именами nomp_i, nomd_i, nomr_i.

Основные действия

Для создания правил ссылочного ОЦ необходимо:

1. Открыть контейнер Database Designer БД Data2 и разместить в нем образы таблиц таким образом, чтобы файл-процесс Poski_k1 был в центре между файлами-справочниками Detl_k1, Poshk_k1, Proek_k1.

2.Связать сначала только первичный ключи nomp_i файла-справочника Poshk_k1 совторичнымключом nomp_i1 файла-процесса Poski_k1 (направление связи – от первичного ключа к вторичному).

Далее аналогично последовательно связать первичные ключи nomd_i, nomr_i файлов-справочников Detl_k1, Proek_k1 с соответствующими ключами nomd_i1, nomr_i1 файла-процесса Poski_k1.

3. Выбрать команду Edit Referential Integrity (редактирование ссылочной целостности) одним из 3-х способов:

либо в пункте View Главного меню выбрать строку Database Designer, затем в контекстном меню окна Database Designer выбрать команду Edit Referential Integrity, вызывающую контекстное меню окна Database Designer;

либо непосредственно в контекстном меню окна Database Designer выбрать ту же команду;

либо в пункте Database Designer Главного меню выбрать ту же команду Edit Referential Integrity.

Результат: появляется диалоговое окно Referential Integrity Builder (англ. refer- ссылаться на что-либо, передавать какие-либо сведения, направлять к кому-либо),т.е. окно Построителя ссылочной (передаваемой) целостности данных, представленное на рис.9.1. В окне Построителя производится настройка, определяющая характер связи между родительскими и дочерними таблицами, т.е. характер состояния записей в дочерней таблице при изменении, удалении или добавлении данных в родительскую таблицу.

Окно Построителя имеет:

3 вкладки (Rules of Updating, Rules of Deleting, Rules of Inserting);

меню из 3-х радио-кнопок с режимами выбора связи Cascade, Ignore или Restrict (каскадное изменение всех связанных записей в дочерней ТБД с новым значением ключа, заданное по умолчанию; ограничение запрета на изменение, если имеются связанные записи в дочерней ТБД; разрешение всегда изменять и "оставлять в покое" записи в дочерней ТБД);

таблицу из 7-ми столбцов. Два левых столбца Parent Таble и Child Таblе служат для автоматической фиксации имен связываемых родительской и дочерней таблиц, два правых столбца - для автоматической фиксации имен индексов связи в родительской и дочерней таблицах. Три средних столбца под управлением пользователя с помощью своих заголовков, имеющих раскрывающиеся списки, дублируют назначение вкладок окна и служат для выбора операции (команды или опции) связи.

При раскрытии списка столбцов Update (Изменение) и Delete (Удаление) возникают 3строки с командами связи Cascade, Restrict (ограничение) и Ignore, при раскрытии списка столбца Insert (Добавление) – 2 строки с командами связи Restrict и Ignore (назначение этих команд см. в лекции).

4. Пользователю надо выбрать опцию изменения, удаления или добавления данных в родительской таблице одним из 2-х способов: либо выбрать соответствующую вкладку Rules of Updating, Rules of Deleting, Rules of Inserting и установить в ней с помощью меню из радио-кнопок определенный режим; либо щелкнуть по заголовку соответствующего столбца Update, Delete или Insert и в раскрывшемся списке строк заголовка столбца выбрать строку Cascade, Ignore или Restrict.

Рис. 9.1 Окно создания правил для ссылочного ОЦ в ТБД

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: