Cтраница 2
Мы можем также задавать вопросы, основанные на родствен ных фактах ( это соответствует использованию операций селекции и соединения из реляционной алгебры, описанной в гл. [16]
Заметим, что это преобразование может противоречить эвристике делай проекцию как можно раньше, но после минутного размышления мы приходим к выводу, что более эффективно выполнить все операции селекции, а затем все операции проекции за один просмотр отношения, чем чередовать эти операции в нескольких просмотрах. [17]
Значительные успехи в оптимизации запросов часто могут быть достигнуты просто путем изменения порядка выполнения операций. Например, переставляя операции селекции так, чтобы они выполнялись до соединений, а не после них, мы часто можем ответить на запрос быстрее. Это происходит потому, что операции типа соединения и декартова произведения работают как генераторы, создавая большое количество кортежей; поэтому, если мы сможем выполнить некоторые из операций селекции вначале, то уменьшим количество генерированных кортежей. Это один из примеров применения общего принципа: всегда следует использовать присущую данной задаче информацию для того, чтобы уменьшить количество информации на выходе генератора, управляя ее источником, вместо того чтобы ожидать вывода всей информации и потом отбрасывать ненужные элементы. [18]
Операция, являющаяся дополнением к теоретико-множественным операциям. К числу специальных относятся операции селекции, проекции, соединения и дел -: я 1 тнсь. [19]
Операция объединения, как и операция insert, в явном виде пользователю ДБПЛ не предоставляется. Вместо этого она комбинируется с описанной выше операцией селекции в виде объединенного конструктора отношений. [20]
Кроме того, селектировать объекты можно, выбирая их с учетом результатов работы фильтра, а также выбирая объекты, связанные с указанными записями в таблице. Все перечисленные операции можно выполнять, добавляя, пересекая или исключая результат операции из текущей селекции объектов. Многообразие операций селекции позволяет селектировать объекты по сложной смеси геометрических и логических критериев. Все вышеперечисленное позволяет отвечать на нетривиальные запросы, объединяющие пространственную и табличную информацию. Выполнив операцию селекции по указанному кварталу, получаем в селекции объектов здания, расположенные в квартале. Затем открываем окно просмотра таблицы с указанием, что отображаться должны только те записи таблицы, которые присоединены к объектам, попавшим в селекцию. [21]
Приведенные выше законы можно применять для оптимизации реляционных выражений. Получаемые в результате оптимизированные выражения удовлетворяют принципам, изложенным в разд. Мы попытаемся перемещать операции селекции и проекции, насколько это возможно, вниз в дереве разбора выражения, хотя нам хотелось бы организовать каскад таких операций в виде одной селекции с одной последующей проекцией. По возможности будем также группировать операции селекции и проекции с предшествующей двуместной операцией, такой, как объединение, декартово произведение или разность множеств. [22]
![]() |
Дерево разбора выражения. [23] |
Первый шаг оптимизации заключается в расщеплении селекции по условию F на две с условиями КНИГИ. Далее мы перемещаем каждую из трех операций селекции как можно ниже в дереве. [24]
В параллельных системах операции агрегации обычно выполняются за две фазы. На первой фазе каждая ВМ вычисляет свое локальное значение. Кортежи считываются аналогично тому, как в операции селекции. На второй фазе глобальное значение вычисляется с использованием всех локальных значений и помещается либо в определенную ВМ, либо в управляющую ЭВМ. [25]
![]() |
Окончательное дерево с группированием операторов. [26] |
Рассмотрим теперь несколько подробнее алгоритм, используемый в процессоре языка QUEL. Этот алгоритм, хотя и разработан для языка, основанного на исчислении, может быть также использован для алгебраических языков. Помимо идеи из предыдущего раздела о том, что операции селекции должны выполняться возможно ранее, в алгоритме процессора языка QUEL заложена, по крайней мере, еще одна важная идея, с которой мы до сих пор не встречались, - о разумной декомпозиции декартовых произведений и соединений. [27]
Как мы уже видели, соединение, в особенности эквисоединение, может быть выполнено значительно дешевле декартова произведения тех же самых отношений. В том случае, когда результат декартова произведения R x S является аргументом какой-либо операции селекции и эта операция включает логическое ы сравнений между атрибутами R и S, совокупность произведения и селекции представляет собой в действительности соединение. [28]
Предполагается, что шаги 1 и 2 реализуются за один просмотр отношения операнда. В результате создается временное отношение. Шаги типа 3 реализуются путем применения, если это требуется в данном случае, операции селекции и ( или) проекции к каждому кортежу отношений-операндов всякий раз при осуществлении доступа к ним, с использованием при необходимости последующих операций селекции и ( или) проекции к каждому кортежу, генерируемому как часть результирующего отношения. Результат помещается во временное отношение. [29]
![]() |
Внешний вид интегратора института катализа СО АН СССР ( слева блок иормн-усилителей, в центре-экстренатор, справа-блок накопительных счетчиков и. [30] |