4. Вычислительные возможности.

Несмотря на то что ранее об этом не упоминалось, в определённом нами реляционном исчислении уже есть аналоги алгебраических операторов EXTEND и SUMMARIZE, и вот почему.

-   Одной из допустимых форм прототипа кортежа является параметр <операция выборки кортежа>, компонентами которого могут быть произвольные подпараметры  <выражение>.

-   В параметре <логическое выражение> сравниваемыми элементами могут быть произвольные подпараметры <выражение>.

-   Первым или единственным аргументом в параметре <вызов обобщающей функции> является подпараметр <реляционная операция>.

 4.1. Примеры.

Ø  Для каждой детали выбрать номер и общий объём поставки в штуках

(PX.P#, SUM (SPX WHERE SPX.P# = PX.P#, QTY) AS TOTQTY)

Ø  Определить общее количество поставляемых деталей

SUM (SPX, QTY) AS GRANDTOTAL)

Ø  Определить номера и вес в граммах всех типов деталей, вес которых превышает 10000г

(PX.P#, PX.WEIGHT * 454 AS GMWT)

 WHERE PX.WEIGHT * 454 > WEIGHT (10000)

Обратите внимание, что спецификация AS GMWT в прототипе кортежа даёт имя соответствующему атрибуту результата. Поэтому такое имя недоступно для использования в предложении WHERE и выражение PX.WEIGHT * 454 должно быть указано в двух местах.

5. Исчисление доменов.

Как указывалось в «Введении», реляционное исчисление, ориентированное на домены (или исчисление доменов), отличается от исчисления кортежей тем, что в нём вместо переменных кортежей используется переменные доменов, т.е. переменные, принимающие свои значения в пределах домена, а не отношения. С практической точки зрения большинство очевидных различий между версиями исчисления доменов и исчисления кортежей основано на том, что версия для доменов поддерживает форму параметра <логическое выражение>, который мы будем называть условием принадлежности. В общем виде условие принадлежности можно записать так.

R (пара, пара, …)

Здесь R─ имя отношения, а каждый параметр пара имеет вид A: v, где A ─ атрибут отношения R, а v ─ имя переменной домена или литерал. Проверка условия даёт значение истина тогда и только тогда, когда в текущем значении отношения R существует кортеж, имеющий указанные значения для указанных атрибутов. Например, рассмотрим результат вычисления следующего выражения.

SP (S# : S# (‘S1’), P# : P# (‘P1’) )

Он будет иметь значение истина тогда и только тогда, когда в отношении SP будет существовать кортеж со значением атрибута S#, равным ‘S1’, и значением атрибута P#, равным ‘P1’. Аналогично условие принадлежности

SP (S# : SX, P# : PX)

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

Далее будем подразумевать существования следующих переменных доменов.

Домен  Переменная домена

S# SX, SY, …

P# PX, PY, …

NAME NAMEX, NAMEY, …

COLOR COLORX, COLORY, …

WEIGHT  WEIGHTX, WEIGHTY, …

QTY QTYX, QTYY, …

CHAR CITYX, CITYY, …

INTEGER STATUSX, STATUSY, …

Ниже приведено несколько примеров выражений исчисления доменов.

SX

SX WHERE S (S# : SX)

SX WHERE S (S# : SX, CITY : ‘London’)

(SX, CITYX) WHERE S (S# : SX, CITY : ‘London’)

AND SP (S# : SX, P# : P# (‘P2’) )

(SX,PX) WHERE S (S# : SX, CITY : CITYX)

AND P (P# : PX, CITY : CITYY)

AND CITYX ≠ CITYY

Если говорить нестрого, первое выражение означает множество всех номеров поставщиков, второе ─ множество всех номеров поставщиков из Лондона. Следующее выражение ─ это выраженный в терминах исчисления доменов запрос «Определить номера поставщиков и названия городов, в которых находятся поставщики детали с номером ‘P2’» (вспомните, что в этом запросе, выраженном в терминах исчисления кортежей, использовался квантор существования). И последнее выражение ─ это представленный в терминах исчисления доменов запрос «Найти все такие пары номеров поставщиков и номеров деталей, для которых поставщик и деталь находятся в одном городе».

5.1. Примеры.

Ø  Найти все такие пары номеров поставщиков, в которых два поставщика находятся в одном городе

(SX AS SA, SY AS SB) WHERE EXISTS CITYZ

 (S (S# : SX, CITY : CITYZ) AND

S (S# : SY, CITY : CITYZ) AND

SX < SY)

Ø  Определить имена поставщиков по крайней мере одной красной детали

NAMEX WHERE EXISTS SX EXISTS PX

(S (S# : SX, SNAME : NAMEX)

AND SP (S# : SX, P# : PX)

AND P (P# : PX, COLOR : COLOR (‘Red’) ) )

Ø  Выбрать имена поставщиков всех типов деталей

NAMEX WHERE EXISTS SX (S (S# : SX, SNAME : NAMEX)

AND FORALL PX (IF P (P# : PX)

THEN SP (S# : SX, P# : PX)

 END IF)


Информация о работе «Реляционное исчисление»
Раздел: Информатика, программирование
Количество знаков с пробелами: 50262
Количество таблиц: 13
Количество изображений: 0

Похожие работы

Скачать
27174
0
0

... ) AND FORALL СОТР2 (СОТР1.СОТР_ЗАРП > СОТР2.СОТР_ЗАРП) Здесь мы имеем два связанных вхождения переменной СОТР2 с совершенно разным смыслом. 5.2.2. Целевые списки и выражения реляционного исчисления Итак, WFF обеспечивают средства формулировки условия выборки из отношений БД. Чтобы можно было использовать исчисление для реальной работы с БД, требуется еще один компонент, который определяет ...

Скачать
16689
1
1

... 2935 Петров 144,000 310 2936 Сидоров 92,000 313 2937 Федоров 110,000 310 2938 Иванова 112,000 315 Нормализованные отношения составляют основу классического реляционного подхода к организации баз данных. Они обладают некоторыми ограничениями (не любую информацию удобно представлять в виде плоских таблиц), но существенно упрощают манипулирование данными. Рассмотрим, например, два ...

Скачать
48738
8
0

... , но не совпадающие понятия. Различия между отношениями и таблицами будут рассмотрены ниже. Термины, которыми оперирует реляционная модель данных, имеют соответствующие "табличные" синонимы: Реляционный термин Соответствующий "табличный" термин База данных Набор таблиц Схема базы данных Набор заголовков таблиц Отношение Таблица Заголовок отношения Заголовок таблицы Тело ...

Скачать
30181
0
4

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

0 комментариев


Наверх