Определение отношений между таблицами
Долговременные отношения между таблицами
Контроль целостности данных
Вкладка Rules for Updating (правила обновления )
Вкладка Rules for Deleting (правила удаления)
Вкладка Rules for Inserting (правила вставки )
Таблица после выбранных правил
Временные отношения между таблицами
Пример создания временной связи для таблиц table1, table2, table3
270.00K
Категория: ИнформатикаИнформатика

Определение отношений между таблицами

1. Определение отношений между таблицами

2.

• Cвязь происходит по полям или выражениям,
которые хранят одинаковые значения.
• Поля связи должны быть проиндексированы.

3.

• "Один к одному"
В обеих таблицах поле связи должно быть
проиндексировано как Primary или
Candidate.
• "Один ко многим"
В родительской таблице поле связи должно
быть проиндексировано как Primary или
Candidate, а в дочерней как Regular.

4. Долговременные отношения между таблицами

5.

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

6.

7. Контроль целостности данных

• Разработчик может создать набор правил
для сохранения отношений, определенных
между таблицами при вводе, обновлении
или удалении записей.
• Для установки ссылочной целостности
используется команда меню Edit Referential
Integrity (в контекстном меню на связи или
в главном меню Database).
• После этого открывается окно Referential
Integrity Builder.

8.

Связи в БД

9. Вкладка Rules for Updating (правила обновления )

• Cascade – обновляет все связанные записи
в дочерних таблицах при изменении поля
записи с первичным ключом
• Restrict – запрещает обновление полей, по
которым формируется ключевой индекс, в
записях родительской таблицы, если есть
связанные с ними дочерние таблицы
• Ignore – позволяет свободно обновлять
записи с ключевыми полями

10. Вкладка Rules for Deleting (правила удаления)

• Cascade – удаляет все связанные записи в
дочерних таблицах при удалении записи с
первичным ключом в родительской
таблице
• Restrict – запрещает удаление записей
родительской таблицы, по полям которых
формируется ключевой индекс, если есть
связанные с ними записи дочерних таблиц
• Ignore – позволяет свободно удалять записи
с ключевыми полями

11. Вкладка Rules for Inserting (правила вставки )

• Restrict – запрещает вставку новых
значений полей, по которым формируется
индекс, в записях дочерней таблицы, если
таких значений нет в связанной с ней
родительской таблице
• Ignore – позволяет свободную вставку
новых значений полей, по которым
формируется индекс, в записях дочерней
таблицы

12. Таблица после выбранных правил

13.

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

14. Временные отношения между таблицами

15.

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

16.

• Временные связи создаются с помощью
команды
SET RELATION TO <…> INTO <…>
ключевое выражение
имя дочерней таблицы
• При этом дочерняя таблица должна быть
проиндексирована по ключевому
выражению.
• Если главную таблицу нужно связать с еще
одной дочерней, то в конце команды
добавляется слово ADDITIVE.
SET RELATION TO <…> INTO <…> ADDITIVE

17. Пример создания временной связи для таблиц table1, table2, table3

select table1
set relation to kod into table2 (устанавливаем
связь главной таблицы table1 с дочерней
table2 по выражению kod)
set relation to fam+im+ot into table3 addi
(устанавливаем дополнительно связь главной
таблицы table1 с дочерней table3 по
выражению fam+im+ot)

18.

• При использовании команды set relation to…
будет создана связь один-к-одному.
• Если необходимо создать связь один-комногим, то после команды set relation to…
используют команду
set skip to <имя дочерней таблицы>
Пример:
select table1
set relation to kod into table2
set relation to fam+im+ot into table3 addi
set skip to table2, table3

19.

• Команда SET SKIP TO (без параметров)
используется для обнуления
множественной связи между
таблицами, для таблицы, открытой в
текущей рабочей области.
• Для разрыва связи один-кодному используется команда SET
RELATION TO (без параметров),
выполненная для родительской
таблицы.
English     Русский Правила