Реляционное исчисление
Категория реферата: Рефераты по информатике, программированию
Теги реферата: электронный реферат, виды понятий реферат
Добавил(а) на сайт: Бородин.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
5 кортежей
PX : Все кортежи отношения P
6 кортежей
JX : Кортежи отношения J, в которых CITY = ‘Athens’
2 кортежа
SPJX : Кортежи отношения SPJ, в которых CITY ? 50
24 кортежа
Этап 2. Строим декартово произведение диапазонов, выбранных на первом этапе. Вот результат.
|S5 |Adams |30 |Athens |J4 |Console |Athens |
(Теперь у нас есть место, чтобы показать отношение полностью, без
сокращений.)
1.(EXISTS JX) Проецируем, исключая атрибуты отношения J (J.J#, J.NAME и
J.CITY). В результате получаем следующее.
|S# |SN |STATUS |CITY |
|S5 |Adams |30 |Athens |
Этап 5. Проецируем результат этапа 4 в соответствии со спецификациями в прототипе кортежа. В нашем примере имеет следующий вид.
(SX.SNAME, SX.CITY)
Значит, конечный результат вычислений будет таков.
|SNAME |CITY |
|Adams |Athens |
Из сказанного выше следует, что начальное выражение исчисления семантически эквивалентно определённому вложенному алгебраическому выражению, и, если быть более точным, это проекция от проекции результата деления проекции выборки из произведения четырёх выборок (!).
И хотя многие подробности в пояснениях были упущены, этот пример вполне адекватно отражает общую идею работы алгоритма редукции.
Теперь моно объяснить одну из причин (и не только одну) определения Коддом ровно восьми алгебраических операторов. Эти восемь реляционных операторов образуют удобный целевой язык как средство возможной реализации реляционного исчисления. Другими словами, для заданного языка, построенного на основе реляционного исчисления (подобно языку QUEL), один из возможных подходов реализации заключается в том, что организуется получение запроса в том виде, в каком он представляется пользователем. По существу, он будет являться просто выражением реляционного исчисления, к которому затем можно будет применить определённый алгоритм редукции, чтобы получить эквивалентное алгебраическое выражение. Это алгебраическое выражение, конечно, будет включать набор алгебраических операций, которые по определению реализуемы по самой своей природе.
Также следует отметить, что восемь алгебраических операторов Кодда являются мерой оценки выразительной силы любого языка баз данных.
Некоторый язык принято называть реляционно полным, если он по
своим возможностям по крайней мере не уступает реляционному исчислению.
Иначе говоря, любое отношение, которое можно определить с помощью
реляционного исчисления, можно определить и с помощью некоторого выражения
рассматриваемого языка. («Реляционно полный» значит «не уступающий по
возможностям реляционной алгебре», а не исчислению, но это одно и то же, как мы вскоре убедимся. По сути, из самого существования алгоритма редукции
Кодда немедленно следует, что реляционная алгебра обладает реляционной
полнотой.)
Реляционную полноту можно как основную меру выразительной силы
языков баз данных в самом общем случае. В частности, так как реляционное
исчисление и реляционная алгебра обладают реляционной полнотой, они могут
служить основой для проектирования не уступающих им по выразительности
языков без необходимости выполнять пересортировку для организации циклов.
Это замечание особенно важно, если язык предназначается для конечных
пользователей, хотя оно также существенно, если язык предназначается для
использования прикладными программистами.
Далее, поскольку алгебра обладает реляционной полнотой, для
доказательства того, что некоторый язык L также обладает реляционной
полнотой, достаточно показать, что в языке L есть аналогии всех восьми
алгебраических операций (на самом деле достаточно показать, что в нём есть
аналоги пяти примитивных операций) и что операндами любой операции языка L
могут быть любые выражения этого языка. Язык SQL - это пример языка, реляционную полноту которого можно доказать указанным способом. Язык QUEL -
ещё один пример подобного языка. В действительности на практике часто проще
показать то, что в языке есть эквиваленты операций реляционной алгебры, чем
то, что в нём существуют эквиваленты выражений реляционного исчисления.
Именно поэтому реляционная полнота обычно определяется в терминах
алгебраических выражений, а не в терминах выражений реляционного
исчисления.
При этом важно понимать, что реляционная полнота необязательно влечёт за собой полноту какого-либо другого рода. Например, желательно, чтобы язык также обеспечивал «вычислительную полноту», т.е. позволял вычислять результаты всех вычислимых функций. Заметим, что согласно нашему определению исчисление не обладает полнотой такого рода, хотя на практике подобная полнота для языка баз данных весьма желательна. Вычислительная полнота - это один из факторов, побудивших ввести в реляционную алгебру операции EXTEND и SUMMARIZE. В следующем разделе описано, как можно расширить реляционное исчисление, чтобы обеспечить в нём наличие аналогов этих операций.
Вернёмся к вопросу эквивалентности алгебры и исчисления. Мы на примере показали, что любое выражение исчисления можно преобразовать в его некоторый алгебраический эквивалент, а значит, алгебра по крайней мере не уступает по своей мощности исчислению. Можно показать обратное: каждое выражение реляционной алгебры можно преобразовать в эквивалентное выражение реляционного исчисления, а значит, исчисление по крайней мере не уступает по своей мощности реляционной алгебре. Отсюда следует, что реляционная алгебра и реляционное исчисление эквивалентны.
4. Вычислительные возможности.
Рекомендуем скачать другие рефераты по теме: реферат традиции, реферат газ.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата