Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Упрощение

Целью выполнения процедуры упрощения является выявление избыточных уточнителей, исключение общих подвыражений и преобразование запроса в семантически эквивалентную форму, позволяющую упростить требуемые вычисления или повысить эффективность их выполнения. На этой же стадии обычно рассматриваются существующие ограничения доступа, раскрываются определения используемых представлений и учитываются ограничения целостности данных, т.е. выполняются те процедуры, которые также могут стать источником избыточности условий запроса. Если пользователь не имеет необходимых прав доступа ко всем без исключения компонентам запроса, выполнение этого запроса отменяется. После получения подтверждения того, что пользователь обладает всеми требуемыми правами доступа, текст запроса подвергается предварительной оптимизации на основе широко известных правил эквивалентности реляционной алгебры:

р (р) = р

р (р) = р

р false = false

р false = p

р true = p

р true = true

р (~p) = false

р (~p) = true

р (p q) = p

р (p q) = p

Пример 9.3.

Рассмотрим определение представления и запрос, обращающийся к данным в этом представлении:

CREATE VIEW Студент3

AS SELECT НомерЗачетки, НазаниеГруппы, ФИО Студента, ПБалл

FROM СТУДЕНТ

WHERE НазаниеГруппы =’TM’

SELECT*

FROM Студент3

WHERE (НазаниеГруппы =’TM’ AND ПБалл >4.8);

На этапе раскрытия представление этот запрос будет преобразован следующим образом:

SELECT НомерЗачетки, ФИО Студента, ПБалл

FROM СТУДЕНТ

WHERE (НазаниеГруппы =’TM’ AND ПБалл > 4.8)

AND НазаниеГруппы =’TM’;

Текст условия WHERE данного запроса можно сократить до вида (НазаниеГруппы =’TM’ AND ПБалл > 4,8).

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

CREATE ASSERTION ТолькоНаивысшаяОценка

CHECK ((Статус <> ‘Отличник’ AND ПБалл < 4.8)

OR (Статус =’Отличник’ AND ПБалл > 4.8));

Затем определим, к какому результату приводит выполнение следующего запроса:

SELECT *

FROM СТУДЕНТ

WHERE (Статус =’Отличник’ AND ПБалл < 3.8);

Предикат, заданный в конструкции WHERE данного запроса, в котором выполняется поиск данных о студенте-отличнике с проходным баллом менее 3.8, противоречит введенному выше ограничению целостности, поэтому ему не соответствует ни одна строка.

Реструктуризация запросов

На финальной стадии этапа декомпозиции запрос преобразуется таким образом, чтобы обеспечить наиболее эффективную его реализацию.

Эвристический подход к оптимизации запросов

В этом разделе рассматриваются эвристические методы оптимизации запросов, которые предусматривают использование правил преобразования для трансформации выражения реляционной алгебры в некоторую эквивалентную форму, обработка которой будет заведомо более эффективной. Более эффективно выполнять операции выборки из таблиц до того, как эти таблицы будут использованы в операциях соединения, чем выполнять эти же действия в обратном порядке. Далее показано, что существуют определенные правила преобразования, позволяющие изменять порядок выполнения операций соединения и выборки таким образом, чтобы операции выборки выполнялись в первую очередь. После обсуждения того, какие виды преобразования запросов являются допустимыми, далее приведен набор эвристических правил, которые заведомо позволяют получить достаточно хорошие стратегии выполнения запросов, хотя и не всегда оптимальные.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]