Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_normalnye_kit.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
129.94 Кб
Скачать

15. Реляционная целостность: целостность отношений, ссылочная целостность.

В целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности сущностей. Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Как мы видели в предыдущем разделе, это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений.

Второе требование называется требованием целостности по ссылкам и является несколько более сложным. Очевидно, что при соблюдении нормализованности отношений сложные сущности реального мира представляются в реляционной БД в виде нескольких кортежей нескольких отношений.

Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать). Для нашего примера это означает, что если для сотрудника указан номер отдела, то этот отдел должен существовать.

Ограничения целостности сущности и по ссылкам должны поддерживаться СУБД. Для соблюдения целостности сущности достаточно гарантировать отсутствие в любом отношении кортежей с одним и тем же значением первичного ключа. С целостностью по ссылкам дела обстоят несколько более сложно.

Понятно, что при обновлении ссылающегося отношения (вставке новых кортежей или модификации значения внешнего ключа в существующих кортежах) достаточно следить за тем, чтобы не появлялись некорректные значения внешнего ключа.

16. Операции реляционной алгебры: объединение, пересечение, декартово произведение, разность, проекция, выборка, соединение, деление.

Программные средства, обеспечивающие обработку реляционных таблиц, выполняют  над отношениями:

-традиционные операции над множествами: пересечение, вычитание, декартово произведение;

-специальные операции: проекция, выбор, соединение, деление.

Операции объединения, пересечения, вычитания производятся над двумя исходными отношениями R1 и R 2 с одинаковой структурой. Результатом является отношение такой же структуры, включающее:

-кортежи, присутствующие в каждом из отношений R1 и R 2 одновременно - если выполнялось пересечение R1 R 2 ;

-кортежи и из R1, и из R 2, за исключением дубликатов-кортежей - если выполнялось пересечение R1 R 2;

-кортежи из R1, которых нет в R 2 - если выполнялось вычитание R1-R 2.

Декартово произведение является операцией над двумя отношениями R1 и R 2, имеющими в общем случае разную структуру. Результат - отношение R1* R 2   -  содержит число кортежей, равное произведению количеств кортежей в исходных отношениях.

Операция выбора выполняется над одним отношением -  по заданному условию производится выборка подмножества кортежей.

Проекция – операция выбора, которая переносит в результирующее отношение домены исходного отношения, указанные в условии операции.

Соединение отношений выполняется над двумя отношениями R1 и R 2 и создает одно результирующее. Каждый кортеж R1 сопоставляется со всеми кортежами R 2 и, если для этой пары кортежей соблюдается условие соединения, то они сцепляются и образуют очередной кортеж в результирующем отношении.

Деление – операция над двумя отношениями R1 и R 2, имеющими в общем случае разные структуры и некоторые одинаковые домены. Структура результирующего отношения получается исключением из множества доменов в R1 множества доменов в R 2. Среди кортежей не должно быть дубликатов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]