Правила внешних ключей
Под целостностью реляционной БД (в дальнейшем РБД) следует понимать выполнение одного из двух правил:
Каскадное удаление
Ограниченное удаление
Каскадное удаление: при удалении строки из таблицы Т1 удаляются также все строки из таблицы Т2, соответствующие строке из Т1 по внешнему ключу.
Ограниченное удаление: при попытке удаления строки из таблицы Т1 проверяется наличие в таблице Т2 строк, соответствующих строке из Т1 по внешнему ключу. Если такие строки в таблицах Т2 имеются, то удаление отвергается.
Пример каскадного удаления (Рис. 13).
Пусть из таблицы «Факультеты», удаляется строка с кодом факультета 3 (pk). Это приводит к удалению из таблицы «Студенты» всех записей, у которых внешний ключ равен 3(fk).
Рис. 13
Аналогично формулируются правила обновления данных в таблицах РБД.
57
Нормализация таблиц
Нормализация таблиц - это набор правил по составлению таблиц в целях устранения избыточности данных и приведения таблицы к третьей нормальной форме (ЗНФ). При практической разработке БД рассматривают 3 основные формы: ЩФ, 2НФ, ЗНФ.
Первая нормальная форма (1НФ)
Первая нормальная форма требует, чтобы каждое поле таблицы БД отвечало следующим требованиям:
неделимость,
не содержало повторяющихся групп.
Рис. 15
Неделимость - означает, что содержимое поля не должно делиться на более мелкие значения (например, Рис. 14, Рис. 15).
Повторяющимися называются поля, содержащие одинаковые по смыслу значения. Например, таблица - «Экзаменационная ведомость» (Рис. 16).
Рис. 16
Причиной, по которой устраняют повторяющиеся группы, является ситуация, когда, например, число экзаменов изменяется: стало не два, как было, а пять. Для этого необходимо менять структуру таблицы, что не всегда возможно. Поэтому поле для экзамена создают одно (Предмет), но увеличивают число записей в соответствии с количеством
предметов.
Вторая нормальная форма (2НФ)
Вторая нормальная форма требует, чтобы все поля таблицы зависели от первичного ключа. То есть первичный ключ (рк) должен однозначно определяет запись и не должен быть избыточным. Те поля, которые зависят от части первичного ключа должны быть выделены в отдельную таблицу.
Пример приведения ко второй НФ таблицы Университет (Рис. 17).
Факультет
Рис. 18
Внимание
Если таблица находиться в 1НФ, и первичным ключом является одно поле, то таблица
уже находиться во 2НФ.
59
Третья нормальная форма (ЗНФ)
Третья нормальная форма требует, чтобы в таблице не имелось зависимостей между не ключевыми полями, т.е. чтобы значение одного поля не зависело от значения другого поля.
Пример: Имеется таблица склад, в которой учитывается вид товара, количество каждого товара, цена единицы товара, и стоимость каждого вида товара как произведения количества на цену единицы товара (Рис. 19).
Поле «Стоимость» является лишним информационным звеном в таблице, так как зависит от поля «Колич.» и может быть всегда рассчитано. Поэтому устраним зависимость, приведя таблицу к ЗНФ (Рис. 20).
Рис. 19
Рис. 20
Склад
Нормализация базы данных выгодна со многих точек зрения. Далее перечислены некоторые из основных преимуществ, которые она дает:
Лучшая общая организация базы данных;
Сокращение избыточности информации;
Непротиворечивость информации внутри базы данных;
Более гибкий проект базы данных.