Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРБД_Ч2.doc
Скачиваний:
6
Добавлен:
25.11.2018
Размер:
813.57 Кб
Скачать

Контроль целостности данных. Контроль целостности связи.

В случае БД большое значение имеет контроль целостности связи.

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.

Преподаватель должен быть сотрудником аспирантуры (следует из Домена и ВК).