Методы оптимизации выполнения запросов в реляционных СУБД


Семантическая оптимизация запросов


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

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

В качестве начальных примеров преобразований запросов на основе семантической информации можно рассмотреть подходы известных СУБД System R и INGRES к обеспечению работы с базами данных через представления [1, 9]. Эти преобразования не были ориентированы на оптимизацию запросов, но имеют к ней непосредственное отношение.

Напомним, что представление базы данных в терминах языков SQL и QUEL - это именованный каталогизированный запрос, представляющий собой с точки зрения пользователей такой же объект базы данных, как и отношение. В частности, поля представления

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

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


Начало  Назад  Вперед



Книжный магазин