Автор работы: Пользователь скрыл имя, 24 Сентября 2013 в 20:12, реферат
При выполнении запросов, основанных на реляционных выражениях, часто требуется их перефразировать с целью повышения эффективности выполнения. Главными «преступниками» в языках запросов, основанных на реляционной математике, является декартово произведение, либо композиция, включающая декартово произведение (соединения).
Рассмотрим выражение RхS.
При выполнении запросов,
основанных на реляционных выражениях,
часто требуется их перефразировать
с целью повышения
Рассмотрим выражение R ´ S. При реализации этого запроса в основную память загружается максимальное количество блоков отношения R, оставляя пространство для одного блока S. Осуществляется конкатенация всех блоков R с блоком S. Такая стратегия уменьшает число необходимых загрузок каждого блока S с коэффициентом, равным числу записей R, которые могут поместиться в основной памяти.
Пусть:
Тогда число доступов составляет
для чтения R и для S. Общее число доступов:
Для оптимизации реляционных выражений используются следующие законы алгебраически преобразований.
если
В более общем случае если условие F вовлекает атрибуты В1, …, Вm, которых нет среди А1, …, Аn, то
а) Если в формуле F1 используются атрибуты Е1.
б) Если в формуле F1 используются атрибуты Е1, а в формуле F2 – атрибуты Е2.
в) Если в формуле F1 используются атрибуты Е1, а в формуле F2 – атрибуты Е1 и Е2.
Предполагается, что если имена атрибутов Е1 отличны от имен Е2, то формула F модифицируется в F1 и F2, в которых используются соответствующие имена.
F модифицируется в F1 и F2 аналогично (7).
Если имена атрибутов Е1 и Е2 отличаются, то надо заменить их на А1,…,Аn.
Используя законы алгебраических
преобразований, Дж. Ульман предложил
следующий алгоритм оптимизации: исходное
реляционное выражение представ
Шаг 1. Представить каждую селекцию σF1 ^ … ^ Fn(Е) в виде каскада σF1(…(σFn(E))…) по правилу 4.
Шаг 2. Переместить каждую селекцию в дереве насколько это возможно вниз, используя законы 4-8.
Шаг 3. Переместить каждую проекцию в дереве вниз, насколько это возможно, используя законы 3, 5, 9, 10. При этом закон 3 приводит к исчезновению некоторых проекций, а закон 5 расщепляет проекцию на 2, одна из которых может перемещаться по дереву вниз. Проекция исключается, если она проецирует выражение на все атрибуты.
Шаг 4. Комбинировать каждый каскад проекций или селекций в одиночную проекцию или селекцию с последующей проекцией, используя законы 3-5.
Шаг 5. Разбиваем внутренние узлы полученного в результате дерева на группы следующим образом: каждый узел, представляющий двуместный оператор (´, È, –), принадлежит группе, которая образована из предков с операторами селекции или проекции и потомков данного узла с унарными операторами селекции или проекции, завершающимися в листьях. Исключением является случай, когда используется двуместный оператор ´ без последующей селекции, так как в этом случае селекция комбинируется с произведением, образуя Θ-соединение.