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

17.Ссылочная целостность.

Ссы́лочная це́лостность (англ. referential integrity) — необходимое качество реляционной базы данных, заключающееся в отсутствии в любом её отношении внешних ключей, ссылающихся на несуществующие кортежи.

Определение

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

определить, с каким кортежем в отношении B связан определённый кортеж отношения A;

найти все кортежи отношения A, имеющие связи с определённым кортежем отношения B.

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

Дана пара отношений A и B, связанных внешним ключом. Первичный ключ отношения B — атрибут B.key. Внешний ключ отношения A, ссылающийся наB — атрибут A.b. Ссылочная целостность для пары отношений A и B имеет место тогда, когда выполняется условие: для каждого кортежа отношения Aсуществует соответствующий кортеж отношения B, то есть кортеж, у которого (B.key = A.b).

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

Если вышеприведённое условие не выполняется, говорят, что в базе данных нарушена ссылочная целостность. Такая БД не может нормально эксплуатироваться, так как в ней разорваны логические связи между зависимыми друг от друга фактами. Непосредственным результатом нарушения ссылочной целостности становится то, что корректным запросом не всегда удаётся получить корректный результат.

21.Квалификатор distinct. Предложение order by.

Запросы с использованием единственной таблицы SELECT список_всех_полей_таблицы | * FROM имя_таблицы; Данная форма оператора SELECT используется, когда не нужно выполнять ни горизонтальную, ни вертикальную фильтрации. Символ «*» заменяет необходимость указания всех полей таблицы. Например: Исключение дубликатов Для исключения дубликатов из результирующего набора записей используют параметр DISTINCT, который указывают сразу после ключевого слова SELECT. Например: SELECT DISTINCT Prod_id FROM Outgoing; Сортировка результирующего набора данных SELECT * FROM DEALERS ORDER BY Name, Procent; Если после параметра ORDER BY указано более одного поля, сортировка сначала осуществляется по первому полю, потом, в случае наличия одинаковых значений, по второму и т.д. В приведенном примере результирующий набор данных сначала будет отсортирован по значениям поля Name, и в том случае, если в каких-то строках имена некоторых дилеров совпадут, эти строки отдельно будут отсортированы по значению поля Procent.

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