Два правила целостности для РБД .
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; просмотров: 499;