Главная » SQL, Базы данных » ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ И ПРЕДСТАВЛЕНИЯ

0

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

Поэтому  представления  также  служат  объектом  действия  ограничений  и   имеют предикаты  переменной  отношения  (как  внутренние,  так  и  внешние).   Например, предположим,   что   определено   представление   путем   применения   к   переменной отношения поставщиков операции проекции по атрибутам S#, SNAME и STATUS (что фактически приводит к удалению атрибута  CITY). В таком случае внешний предикат для этого представления определен примерно так, как показано ниже.

Существует некоторый город CITY, такой что работающий по контракту постав

щик S# имеет имя SNAME, статус STATUS и находится в городе CITY.

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

Поставщик s#работает по контракту, имеет имя SNAME, имеет статус STATUS и находится в некотором городе.

Вполне очевидно, что данная версия предиката имеет только три формальных параметра. А что можно в этом случае утверждать в отношении внутреннего предиката? Еще раз рассмотрим шесть примеров, применяемых в данной главе.

1.          Значение статуса каждого поставщика должно находиться в пределах от 1 до 100

включительно.

2.          Каждый поставщик из Лондона имеет статус 20.

3.          Если вообще имеются какие-либо детали, то по меньшей мере одна из них должна

быть синего цвета.

4.          Разные поставщики не могут иметь одинаковые номера поставщиков.

5.          Каждая поставка выполняется существующим поставщиком.

6.          Ни один поставщик со статусом меньше 20 не поставляет любые детали в количе стве больше 500.

Предположим, что рассматриваемое представление (проекция переменной отношения поставщиков по атрибутам s#, SNAME и STATUS) называется SST. В таком случае, если речь идет о представлении SST, то пример 3, безусловно, к нему не относится, по; скольку в нем рассматриваются детали, а не поставщики. А что касается других примеров, то каждый из них в определенной степени связан с представлением SST, но в несколько модифицированной форме. В частности, ниже показана  модифицированная

форма примера 5.

FORALL s# € S#, р# € Р#, q €

QTY  ( IF { S# s#, P# p#, QTY q

} € SP

THEN EXISTS sn € NAME, St € INTEGER

( { S# s#, SNAME sn, STATUS st } € SST ) )

Глава 9. Целостность данных     353

Изменения наблюдаются в третьей и четвертой строках. В них все упоминания об атрибуте CITY удалены, а ссылка на s заменена ссылкой на SST. Обратите внимание на то, что это ограничение для SST может рассматриваться как производное от соответствующего ограничения для S точно так же, как сама переменная отношения SST происходит от переменной отношения S (и в конечном итоге сам внешний предикат для SST является производным от внешнего предиката для S)11.

Аналогичные замечания относятся непосредственно к примерам 1, 2, 4 и 6. Но, как показано ниже, пример 2 немного сложнее, поскольку он требует введения конструкции EXISTS, соответствующей атрибуту, который был удален в результате выполнения операции проекции.

FORALL s# € S#, sn € NAME, st € INTEGER ( IF { S# s#, SNAME sn, STATUS st } €

SST THEN EXISTS SC € CHAR

( { S# s#, SNAME sn, STATUS st, CITY sc } € S AND ( IF sc = ‘London’ THEN st = 20 ) )

Однако и в данном случае это ограничение может рассматриваться как производное от соответствующего ограничения для S.

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии