- генерация плана доступа к ресурсам (план доступа - это двоичное представление выполнимого кода по отношению к данным, сохраняемым в БД);
- оптимизация плана доступа, которая включает подстановку действительных имен таблиц и колонок БД в представление, идентификацию возможных вариантов выполнения запроса, определение стоимости выполнения каждого варианта, выбор наилучшего варианта на основе внутренней статистики;
- выполнение запроса.
В настоящее время оптимизатор является составной частью любой промышленной реализации SQL. Работа оптимизатора основана на сборе статистики о выполняемых запросах и выполнении эквивалентных алгебраических преобразований с отношениями БД. Такая статистика сохраняется в системном каталоге БД. Системный каталог является словарем данных для каждой БД и содержит информацию о таблицах, представлениях, индексах, колонках, пользователях и их привилегиях доступа. Каждая БД имеет свой системный каталог, который представляет совокупность предопределенных таблиц БД.
Таблица 2.3. Основные запросы SQL
|
Запрос Описание |
|
|
Язык определения данных (DDL) |
|
|
CREATE DOMAIN |
Определяет новый домен |
|
DROP DOMAIN |
Удаляет домен |
|
ALTER DOMAIN |
Изменяет домен |
|
CREATE TABLE |
Создает в БД новую базовую таблицу |
|
DROP TABLE |
Удаляет базовую таблицу из БД |
|
ALTER TABLE |
Изменяет структуру существующей базовой таблицы |
|
CREATE VIEW |
Добавляет в БД новое представление |
|
DROP VIEW |
Удаляет представление из БД |
|
CREATE INDEX |
Создает индекс для столбца |
|
DROP INDEX |
Удаляет индекс столбца |
|
ALTER INDEX |
Изменяет индекс |
|
Язык манипулирования данными (DML) |
|
|
INSERT |
Добавляет новые строки в таблицы БД |
|
DELETE |
Удаляет строки из таблиц БД |
|
UPDATE |
Обновляет данные, существующие в таблицах БД |
|
Язык выборки данных (DQL) |
|
|
SELECT Считывает данные из таблиц БД |
|
|
Язык управления доступом (DCL) |
|
|
GRANT |
Предоставляет пользователю права доступа |
|
REVOKE |
Отменяет права доступа |
|
Язык управления транзакциями |
|
|
COMMIT |
Завершает текущую транзакцию |
|
ROLLBACK |
Отменяет текущую транзакцию |
|
SAVEPOINT |
Назначает контрольную точку внутри транзакции |
|
Язык администрирования базы данных |
|
|
CREATE DATABASE |
Физически создает БД |
|
CONNECT |
Подключает к существующей базе данных |