- •Метод декомпозиции
- •Рекомендации по разбиению.
- •Алгоритм декомпозиции
- •Четвёртая нормальная форма
- •Контроль целостности данных. Контроль целостности связи.
- •Доменно-ключевая нормальная форма (дкнф)
- •Теоретические языки запросов
- •Реляционная алгебра
- •Переименование атрибутов
- •Расширение
- •Подведение итогов
Контроль целостности данных. Контроль целостности связи.
В случае БД большое значение имеет контроль целостности связи.
1:∞; в этом случае есть таблица основная и дополнительная (подчинённая).
Одной записи из основной таблицы может соответствовать несколько записей из дополнительной.
В любой момент времени каждой записи подчинённой таблицы должна соответствовать одна запись основной таблицы.
Это условие может быть обеспечено следующим образом:
Основные операции с БД:
1). Заполнение или добавление.
2). Изменение.
3). Удаление.
1). Добавление:
Приоритет имеет основная таблица.
Ограничение накладывается для увеличения поля для связи.
В поле для связи допускаются только такие значения, которые присутствуют в основной таблице.
Записи добавляются любым способом (только бы не было дублирования первичного ключа).
2). Изменение:
Изменения дополнительной таблицы могут проводиться произвольно, значения в поле для связи могут быть изменены, но в пределах той записи, которая есть в основной таблице.
Записи в основной таблице, которые не связаны с подчинённой, могут исправляться произвольно. Для связанных же добавляются некоторые ограничения для связи.
Здесь возможны 2 подхода:
1. Запретить редактирование поля для связи, для которой есть связанные записи в дополнительной таблице.
2. Изменение поля основной таблицы автоматически меняет поле связанной таблицы (В Access: «Каскадное обновление»).
3). Удаление:
В дополнительной таблице ограничений по удалению записей нет.
Любая запись, не имеющая связи с дополнительной таблицей, свободно удаляется.
Для удаления связанных записей существует 2 подхода:
1. Запретить удаление.
2. При удалении записи основной таблицы автоматически удалять все связанные записи дополнительной таблицы (В Access: «Каскадное удаление»).
Доменно-ключевая нормальная форма (дкнф)
ДКНФ была предложена в 1981 году.
Отношение, находящееся в ДКНФ, считается свободным от аномалий.
Отношение находится в ДКНФ, если все ограничения являются следствием определения домена и ключей.
Пример:
Слушатели, аспиранты и студенты.
Уч. Процесс(NP, FIOP, SA, NS, FIOS)
NP – ADDD; A=1; D0..Y;
FIOP, FIOS – стр.;
SA – логич.;
NS – FDDD, F1; для аспир. F=9.
Соглашения:
Один преподаватель может иметь несколько слушателей.
Для каждого слушателя имеется только один преподаватель; причём для аспиранта может быть преподавателем только сотрудник аспирантуры.
NPFIOP;
NPSA;
NSFIOS; (сотрудник аспирантуры);
NSNP.
Возможный ключ: весь набор атрибутов.
Т.о.: необходимо нормализовать:
Препод. (NP, FIOP, SA), NP = ADDD, A=1.
ФЗ является следствием того, что NP – первичный ключ.
NP – уникален, т.к. ВК.
NP = ADDD, A=1; - следует из определения домена. Значит отношение находится в ДКНФ.
Студент (NS, FIOS, NP), NS = FDDD, F1.
Номер аспиранта = 9; не является следствием из определения домена или ВК.
Разобьём отношение Слушатели на 2 методом выборки:
Студент(NSS, FIOSS, NP), NSS=BDDD, B=2..8;
Аспирант(NSA, FIOSA, NP), NSA=CDDD, C=9.
В отношении Студент нет ограничений(NP начинается с 1). Это следует из определения домена; BDDD, B=2..8; - следует из определения домена NSS.
Отношение Студент находится в ДКНФ.
Аналогично для Аспирант.
NP начинается с 1.
Преподаватель должен быть сотрудником аспирантуры (следует из Домена и ВК).