Два правила целостности для РБД .
1. Целостность по сущностям: не допускается, чтобы столбец первичного ключа какой-либо таблицы содержал неопределенное значение (null).
2. Целостность по ссылкам: если таблица Т2 содержит внешний ключ fk, соответствующий первичному ключу pk другой таблицы Т1, то каждое значение fk в Т2 должно:
- либо быть равным значению pk для некоторой строки таблицы Т1,
- либо быть неопределенным (иметь значение null).
На Рис.11 и Рис. 12. представлены две одинаковых БД для каждой из которых
ü первичным ключом является поле Код_Факультета таблицы Факультеты,
ü вешним ключом, поле Код_Факультета таблицы Студенты.
На Рис. 11. правила целостности соблюдены
На Рис. 12. правила целостности нарушены (pk имеет nullи значения fk 7 и 13, не соответствуют ни одному значениям pk)
Факультеты Факультеты
| Код_Факультета | Факультет | Код_Факультета | Факультет | |
| ЭФ | ЭФ | |||
| ВМК | ВМК | |||
| ФФ | null | ФФ | ||
| ФФ | ФФ | |||
| ММ | ММ |
Студенты Студенты
| Код_Факультета | Фамилия | Код_Факультета | Фамилия | |
| Четин | Четин | |||
| Яшин | Яшин | |||
| Круглов | Круглов | |||
| Самарин | Самарин | |||
| Ракунов | Ракунов | |||
| Певцов | Певцов | |||
| Москвин | Москвин | |||
| Романов | Романов | |||
| Паршин | Паршин |
Рис. 11. Рис.12.
Правила целостности соблюдены. Правила целостности нарушены.
Правила внешних ключей
Под целостностьюреляционной БД (в дальнейшем РБД) следует понимать выполнение одного из двух правил:
- Каскадное удаление
- Ограниченное удаление
Каскадное удаление: при удалении строки из таблицы Т1удаляются также все строки из таблицы Т2, соответствующие строке из Т1по внешнему ключу.
Ограниченное удаление: при попытке удаления строки из таблицы Т1 проверяется наличие в таблице Т2 строк, соответствующих строке из Т1по внешнему ключу. Если такие строки в таблицах Т2имеются, то удаление отвергается.
Пример каскадного удаления. Рис. 13
Пусть из таблицы «Факультеты», удаляется строка с кодом факультета 3 (pk) Это приводит к удалению из таблицы «Студенты», всех записей у которых внешний ключ равен 3 (fk)

Факультеты Факультеты
| Код_Факультета | Факультет | Код_Факультета | Факультет | |
| ЭФ | ЭФ | |||
| ВМК | ВМК | |||
| ФФ | ФФ | |||
| ФФ |
| ММ | ||
| ММ |
Студенты Студенты
| Код_Факультета | Фамилия | Код_Факультета | Фамилия | |
| Четин | Четин | |||
| Яшин | Самарин | |||
| Круглов | Ракунов | |||
| Самарин | Певцов | |||
| Ракунов | Москвин | |||
| Певцов | Романов | |||
| Москвин | ||||
| Романов | ||||
| Паршин |
Рис. 13.
Аналогично формулируются правила обновления данных в таблицах РБД.
Дата добавления: 2016-05-25; просмотров: 557;
