Целостность БД
Понятие целостности является одним из основополагающих в теории БД. Любая БД содержит в себе информацию об объектах реального мира, находящихся в связи между собой
Под целостностью БД понимается соответствие модели предметной области, хранимой в БД, объектам реального мира и их связям между собой в каждый момент времени. Целостность бывает физической и логической
Поддержание целостности БД включает проверку целостности и ее восстановление в случае обнаружения противоречий
Целостность БД
Целостность БД
Физическая |
|
Логическая |
|
|
|
Возможность физического доступа к данным
в любой момент времени
Структурная целостность: структуры данных должны удовлетворять свойствам реляционных отношений
Ссылочная целостность: обеспечение корректной модификации взаимосвя- занных отношений
Языковая целостность: поддержка стандарта SQL
Семантическая целостность: реализация механизма
ограничений целостности
Целостность БД
Ссылочная целостность
Действия при модификации взаимосвязанных отношений
Кортежи подчиненного отношения должны уничтожаться при удалении кортежа основного отношения, связанного с ними
Кортежи основного отношения можно удалять только при отсутствии связанных с ними кортежей подчиненного отношения
Кортежи подчиненного отношения при удалении кортежа основного отношения, связанного с ними, не удаляются, но модифицируются таким образом, что на месте ключа родительского отношения устанавливается значение NULL
Ограничения
целостности
Ограничения целостности атрибута
Значение по умолчанию
Уникальность
Тип значений
Формат значений
Признак определенного значения
Указание на домен
Диапазон значений
Ограничения целостности кортежа
Ограничения целостности отношения
Ограничения целостности связи между отношениями
Ограничения целостности алгоритмических зависимостей
Ограничения целостности на запрет обновлений
Ограничения целостности взаимосвязанных отношений
Целостность БД
Ограничение целостности связи: значение внешних ключей подчиненной таблицы всегда должны соответствовать одному из значений первичных ключей главной таблицы
Ограничение по существованию: для существования данного объекта в данной таблице необходимо, чтобы
он был связан с определенным объектом в другой таблице
Обратная связь по существованию: запись в основной таблице не может существовать без связанных с ней записей в подчиненной таблице
Кардинальность связи:
число элементов в связи должно находиться в некотором диапазоне – закрытом или открытом
Целостность БД
Ограничение по существованию
|
|
Кафедры |
№_каф |
Название |
Заведующий |
15 |
Экономика |
Морозов В.М. |
23 |
Физика |
Григорьев В.А. |
24 |
Химия |
Федотова Л.И. |
|
|
Сотрудники |
Таб_№ |
ФИО |
Кафедра |
234 |
Глотов С.Ю. |
15 |
246 |
Проклова М.Ы. |
15 |
358 |
Логунов М.П. |
24 |
|
|
|
Для существования записи в таблице “Сотрудники” необходимо, чтобы она была связана с одной из записей в таблице “Кафедры”
|
|
Целостность БД |
|
|
Ограничение по связи |
|
|
|
|
|
Кафедры |
№_каф |
Название |
Заведующий |
15 |
Экономика |
Морозов В.М. |
23 |
Физика |
Григорьев В.А. |
24 |
Химия |
Федотова Л.И. |
|
|
|
|
|
Сотрудники |
Таб_№ |
ФИО |
Кафедра |
234 |
Глотов С.Ю. |
15 |
246 |
Проклова М.Ы. |
NULL |
358 |
Логунов М.П. |
24 |
|
|
|
Запись в таблице “Сотрудники” может быть не связана ни с одной записью в таблице “Кафедры”
Категории контроля целостности
Контроль целостности
Одномоментный |
|
Отложенный |
|
|
|
Режим контроля целостности
Оперативный |
|
Аудиторный |
|
|
|
Описание ограничения целостности
Явное |
|
Неявное |
|
|
|
Ограничения диапазонов значений
Односторонние диапазоны: фиксация либо верхней, либо нижней границы значений
Открытые диапазоны
Двусторонние диапазоны: фиксация верхней и нижней границ значений
Закрытые диапазоны
Открытый односторонний диапазон: в библиотеку записывают читателей не моложе 17 лет
Открытый двусторонний диапазон: база данных не содержит информацию о несовершеннолетних и пенсионерах
Закрытый двусторонний диапазон: на военную службу призывают граждан в возрасте от 18 до 37 лет
Целостность БД
Операторы SQL, обеспечивающие ограничения целостности
UNIQUE – ограничение на уникальность имени
DEFAULT – ограничение на значение по умолчанию
[NOT] NULL – ограничение на задание определенного значения
PRIMARY KEY – ограничение на первичный ключ
FOREIGN KEY – ограничение на внешний ключ
REFERENCES – ключевое слово для ссылки на главную таблицу
CHECK – условие проверки на допустимость значения
CONSTRAINT – ключевое слово, используемое для именования ограничений Обозначения ограничений:
CONSTRAINT PK – для ограничения на первичный ключ CONSTRAINT FK – для ограничения на внешний ключ CONSTRAINT CK – для проверочного ограничения CONSTRAINT U – для ограничения уникальности CONSTRAINT DF – для ограничения значения по умолчанию
