Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Коннолли Т. -> "Базы данных. Проектирование, реализация и сопровождение. Теория и практика" -> 70

Базы данных. Проектирование, реализация и сопровождение. Теория и практика - Коннолли Т.

Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика — М.: Вильямc, 2003. — 1440 c.
ISBN 5-8459-0527-3
Скачать (прямая ссылка): bazidannihpproekt2003.djv
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 683 >> Следующая


Если предикат содержит переменную, например в виде "х является сотрудником этой организации", то у этой переменной должна быть соответствующая область определения. При подстановке вместо переменной х одних значений из ее области определения данное суждение может оказаться истинным, а при подстановке других — ложным. Например, если областью определения являются все люди и мы подставим вместо переменной x значение "Джон Уайт", то суждение "Джон Уайт является сотрудником данной организации" будет истинным. Если же вместо переменной x подстав-'ті имя другого человека, который не является сотрудником данной организации, то суждение станет ложным.

Если P — предикат, то множество всех значений переменной х, при которых суждение P становится истинным, можно символически записать следующим образом:

{х p(x)}

Предикаты могут соединячьс* с помощью логических операций л (AND), v (OR) и ~ (NOT) с образованием составных предикатов.

4/2.1 Реляционное исчисление кортежей

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

Например, для указания отношения Staff в качестве области определения переменной кортежа S используется следующая форма записи:

152

Часть II. Реляционная модель и языки Staff (S)

Кроме того, запрос "найти множество всех кортежей S, для которых F(E) является истинным" можно записать следующим образом:

{sIF(S) }

Здесь предикат F называется формулой (в математической логике, правильно построенной формулой — Well-Formed Formula, или сокращенно WFt1). Например, запрос "выбрать атрибуты stftf No, fName, IName, position, sex DOB, salary и branchNo для всех сотрудников, которые получают зарплату больше 10 ООО фунтов стерлингов" можно записать следующим образом:

(S1S^aff(S) л S. salary > 10000}

Здесь выражение 5 salary означает значение атрибута salary для кортежа S. Для выборки одного определенного атрибута (например, salary), можно сформулировать этот запрос иначе:

{S.salary|Staff (S) л S.salary > 10000}

Кванторы существования и общности

Для указания количества экземпляров, к которым должен быть применен предикат, в формулах могут использоваться два типа кванторов. Квантор существования (3), или так называемый символ "существует", используется в формуле, которая должна быть истинной хотя бы для одного экземпляра, например:

Staff(S) л {Зв> (Branch(B) л (В.branchNo=S.branchNo) л В. city=»*London')

Это выражение означает, что в отношении Branch существует кортеж, который имеет такое же значение атрибута branchNo, что и значение атрибута branchNo в текущем кортеже S из отношения Staff, а атрибут city из кортежа В имеет значение 'London1. Квантор общности (V), или так называемый символ "для всех", используется в выражениях, которые относятся ко веем экземплярам, например:

(C1B) (В.city * 'Paris')

Это выражение означает, что ни в одном кортеже отношения Branch значение атрибута city не равно "Paris В отношении логических операций могут применяться следующие правила эквивалентности:

(ЭХ) (F(X)) -¦ ~(VX) (-(F(X) П tVX) (F<X>) = ~ [ЗХ) !-(F(X) }}

ОХ) (F1(X) E F2(X)) = ~{VX) (-(F1(X)) V -(F3IX))) (VX) (F1(X) = F2(X)) = -OX) (-(F1(X)) v -(F2(X)))

Поэтому приведенную выше формулу можно представить следующим образом: - :?) (B.city =lPans' )

В таком виде она означает, что в Париже нет отделений компании. Переменные кортежа называются свободными переменными, если они не квалифицируются кванторами V или 3; в противном случае они называются связанными переменными. В выражение, составленном по правилам реляционного ис-

Глава 4. Реляционная алгебра и реляционное исчисление

153 числения, свободные переменные могут находиться только слева от знака вертикальной черты (I). Например, в следующем запросе единственной свободной переменной является Shb процессе вычисления этого выражения последовательно происходит связывание переменной S с каждым кортежем отгіошения Star f.

{S. fName, S.IName | Staff(S) л (Зв) (Branch(B) л (B.branchNc = S.branchNo) л I city = 'Loncbn1 ) }

Выражения и формулы

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

A1-S11 S2 а2, •••, S17. an ( F (S , -, S1.) } ; га>п

Здесь S1, S _____ Sn,. . ,Slr — переменные кортежа, Si — атрибуты отношения, в

котором определено значение переменной S1, a F — формула
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 683 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100