Замечание о значении отношений

Как отмечалось в главе 4, каждое отношение имеет ассоциируемое с ним значение или предикат, и пользователи должны обращать внимание на эти предикаты, чтобы правильно использовать базу данных. Заметьте, что сказанное относится как к выборке данных, так и к их обновлению. Однако вопрос возникает прежде всего в связи с обнов­лением, поскольку, как объяснялось в главе 4, предикат - это критерий допустимости обновления для данного отношения, с помощью которого можно установить, например, будет ли корректной определенная операция обновления (как вы действительно убедились при обсуждении операций обновления в приведенном выше примере).

Предикаты для базовых отношений предполагаются известными - они содержат, главным образом, всякие ограничения целостности (например, ограничения потенци­альных ключей, внешних ключей и, возможно, другие ограничения), предъявляемые к данному отношению. Ну а как же насчет производных отношений? Для этого, оче­видно, нам нужен такой набор правил, которые позволяют установить предикат для результата произвольной реляционной операции, если известен предикат или преди­каты для входных данных этой операции.

На самом деле очень просто определить такой набор правил - они непосредст­венно следуют из определений операций. Например, если А и В - два произвольных совместимых по типу отношения, а их соответствующие предикаты- РА и РВ, то предикат РС для выражения (назовем его С) А INTERSECT В будет, очевидно, (PA) AND (PB); т.е. кортеж t будет принадлежать С, если и только если PA(t) - истина и РВ(t) - истина. Так, например, если мы определяем С как представление и пыта­емся вставить кортеж t в это представление, то кортеж t должен удовлетворять преди­кату

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

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

R WНERE condition

будет такой: (PR) AND (condition), где PR - предикат для отношения R.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: