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

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

Общая характеристика действий, выполняемых в диалоговом окне 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
Сейчас читают про: