Similar presentations:
Определение отношений между таблицами
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 table1set 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 (без параметров),
выполненная для родительской
таблицы.