L_9

advertisement
Целостность БД
Понятие целостности является одним из основополагающих в
теории БД. Любая БД содержит в себе информацию об объектах
реального мира, находящихся в связи между собой
Под целостностью БД понимается соответствие модели
предметной области, хранимой в БД, объектам реального мира
и их связям между собой в каждый момент времени.
Целостность бывает физической и логической
Поддержание целостности БД включает проверку целостности
и ее восстановление в случае обнаружения противоречий
Целостность БД
Целостность БД
Физическая
Логическая
Возможность физического
доступа к данным
в любой момент времени
Ссылочная целостность:
обеспечение корректной
модификации взаимосвязанных отношений
Структурная целостность:
структуры данных должны
удовлетворять свойствам
реляционных отношений
Языковая целостность:
поддержка стандарта SQL
Семантическая целостность:
реализация механизма
ограничений целостности
Целостность БД
Ссылочная целостность
Действия при модификации
взаимосвязанных отношений
Кортежи подчиненного отношения должны уничтожаться при
удалении кортежа основного отношения, связанного с ними
Кортежи основного отношения можно удалять только при
отсутствии связанных с ними кортежей подчиненного
отношения
Кортежи подчиненного отношения при удалении кортежа
основного отношения, связанного с ними, не удаляются, но
модифицируются таким образом, что на месте ключа
родительского отношения устанавливается значение NULL
Ограничения
целостности
Ограничения целостности
атрибута
Значение по умолчанию
Ограничения целостности
кортежа
Ограничения целостности
отношения
Уникальность
Тип значений
Формат значений
Признак определенного
значения
Указание на домен
Диапазон значений
Ограничения целостности
связи между
отношениями
Ограничения целостности
алгоритмических
зависимостей
Ограничения целостности
на запрет обновлений
Целостность БД
Ограничение целостности связи:
значение внешних ключей подчиненной
таблицы всегда должны соответствовать
одному из значений первичных ключей
главной таблицы
Ограничения целостности
взаимосвязанных
отношений
Ограничение по существованию:
для существования данного объекта
в данной таблице необходимо, чтобы
он был связан с определенным объектом
в другой таблице
Обратная связь по существованию:
запись в основной таблице не может
существовать без связанных с ней записей
в подчиненной таблице
Кардинальность связи:
число элементов в связи должно находиться
в некотором диапазоне – закрытом или
открытом
Целостность БД
Ограничение по существованию
Кафедры
№_каф
Название
Заведующий
15
Экономика
Морозов В.М.
23
Физика
Григорьев В.А.
24
Химия
Федотова Л.И.
Сотрудники
Таб_№
ФИО
Кафедра
234
Глотов С.Ю.
15
246
Проклова М.Ы.
15
358
Логунов М.П.
24
Для существования записи в таблице “Сотрудники” необходимо, чтобы она
была связана с одной из записей в таблице “Кафедры”
Целостность БД
Ограничение по связи
Кафедры
№_каф
Название
Заведующий
15
Экономика
Морозов В.М.
23
Физика
Григорьев В.А.
24
Химия
Федотова Л.И.
Сотрудники
Таб_№
ФИО
234
Глотов С.Ю.
246
Проклова М.Ы.
358
Логунов М.П.
Кафедра
15
NULL
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 – для ограничения значения по умолчанию
Download