Реляционное исчисление
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: электронный реферат, виды понятий реферат
| Добавил(а) на сайт: Бородин.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
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)
6. Средства языка SQL.
Как уже говорилось в разделе «Сравнительный анализ реляционного
исчисления и реляционной алгебры», в основу реляционного языка могут быть
положены как реляционная алгебра, так и реляционное исчисление. Что же
положено в основу языка SQL? Ответом будет №частично и то, и другое, а
частично ни то, ни другое…». Когда язык SQL только разрабатывался, предполагалось что он будет отличаться как от реляционной алгебры, так и от
реляционного исчисления. Действительно, именно этим мотивировалось введение
в язык конструкции IN . Однако со временем выяснилось, что язык
SQL нуждается в определённых средствах как реляционной алгебры, так и
исчисления, поэтому он был расширен для включения этих функций. На
сегодняшний день ситуация складывается таким образом, что язык SQL в чём-то
похож на реляционную алгебру, в чём-то на реляционное исчисление, а в чем-
то отличается от них обоих.
Запросы в языке SQL формулируется в виде табличных выражений, которые потенциально могут иметь очень высокую степень сложности.
6.1.
Примеры.
> Для всех деталей указать номер и вес в граммах
SELECT P.P#, P.WEIGHT * 454 AS GMWT
FROM P;
Спецификация AS GMWT вводит соответствующее имя результирующего столбца.
Таким образом, два столбца результирующей таблицы будут называться P# и
GMWT. Если бы спецификация AS GMWT была опущена, то соответствующий столбец был бы фактически безымянным. Отметим, что хотя в подобных случаях правила языка SQL в действительности не требуют от пользователя указания имени результирующего столбца.
> Выбрать информацию обо всех парах поставщиков и деталей, находящихся в одном городе
В языке SQL существует несколько способов формулирования этого запроса.
Приведем три самых простых.
1. SELECT S.*, P.P#, P.NAME, P.COLOR, P.WEIGHT
FROM S, P
WHERE S.CITY =P.CITY;
2. S JOIN P USING CITY;
3. S NATURAL JOIN P;
Результатом в каждом случае будет естественное соединение таблиц S и P (по атрибуту города CITY).
Первая формулировка заслуживает более подробного обсуждения. Именно одна из трёх предложенных вариантов является допустимой в первоначальной версии языка SQL (явная операция JOIN была добавлена в стандарт SQL/92).
Концептуально можно рассматривать реализацию этой версии запроса следующим образом.
. Во-первых, после выполнения предложения FROM мы получаем декартово произведение S TIMES P. (Строго говоря, перед вычислением произведения следовало бы позаботится о переименовании столбцов. Для простоты мы этого не делаем.)
. Во-вторых, после выполнения предложения WHERE мы получаем выборку из этого произведения, в которой два значения атрибута CITY в каждой строке равны (иначе говоря, выполнено соединение таблиц поставщиков и деталей по эквивалентности их атрибутов городов).
. В-третьих, после выполнения предложения SELECT мы получаем проекцию выборки по столбцам, указанным в предложении SELECT. Конечным результатом будет естественное соединение указанных таблиц.
Следовательно, предложение FROM в языке SQL соответствует декартову произведению, предложение WHERE - операции выборки, а совместное применение предложений SELECT-FROM-WHERE - проекции выборки произведения.
7. Заключение.
Мы рассмотрели реляционное исчисление, альтернативное реляционной
алгебре.
Внешне два подхода очень отличаются: исчисление имеет описательный
характер, тогда как характер алгебры - предписывающий, но на более низком
уровне они представляют собой одно и то же, поскольку любые выражения
исчисления могут быть преобразованы в семантически эквивалентные выражения
алгебры и наоборот.
Реляционное исчисление существует в двух версиях: исчисление кортежей и исчисление доменов. Основное различие между ними состоит в том, что переменные исчисления кортежей изменяются на отношениях, а переменные исчисления доменов изменяются на доменах.
Выражение исчисления кортежей состоит из прототипа кортежа и необязательного предложения WHERE, содержащего логическое выражение или формулу WFF («правильно построенную формулу»). Подобная формула WFF может включать кванторы (EXISTS и FORALL), свободные и связанные ссылки на переменные, логические (булевы) операторы (AND, OR, NOTи др.) и т.д. Каждая свободная переменная, которая встречается в формуле WFF, также должна быть упомянута в прототипе кортежа.
Замечание. Здесь этот вопрос явно не затрагивался, но выражения реляционного исчисления предназначены, по существу, для тех же целей, что и выражения реляционной алгебры.
На примере было показано[1], как алгоритм редукции Кодда может
использоваться для преобразования произвольного выражения реляционного
исчисления в эквивалентное выражение реляционной алгебры, таким образом
подготавливая почву для выбора возможной стратегии реализации исчисления.
Вновь обратившись к вопросу реляционной полноты, мы кратко обсудили, каким
образом можно доказать, что некоторый язык L является полным в этом смысле.
Кроме того, здесь обсуждалось, как можно расширить исчисление
кортежей с целью поддержки определённых вычислительных возможностей
(аналогичные возможности в реляционной алгебре обеспечиваются операциями
EXTEND и SUMMARIZE). Затем нам было представлено краткое введение в
исчисление доменов и отмечено (правда, без попытки доказать это), что оно
также является реляционно полным. Таким образом, исчисление кортежей, исчисление доменов и реляционная алгебра эквивалентны.
Рекомендуем скачать другие рефераты по теме: реферат традиции, реферат газ.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата