Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
18. ПИС-госы.doc
Скачиваний:
4
Добавлен:
26.08.2019
Размер:
101.38 Кб
Скачать

Обработка предложений dml Этап 1: Создание курсора

Курсор создается через вызов программного интерфейса. Курсор создается независимо от конкретного предложения SQL. В большинстве предложений создание курсора осуществляется автоматически.

Этап 2: Разбор предложения

Во время разбора (PARSE) предложение SQL передается из пользовательского процесса в ORACLE, и разобранное представление этого предложения загружается в разделяемую область SQL. На этой фазе обработки предложения SQL может быть встречено много ошибок.

Разбор предложения SQL выполняется только в том случае, если в разделяемом пуле не существует разделяемой области SQL, содержащей идентичное предложение SQL.

Обработка запросов

Запросы отличаются от других типов предложений SQL тем, что они возвращают данные как результат своего успешного исполнения. Результаты запроса ВСЕГДА ИМЕЮТ ТАБЛИЧНУЮ ФОРМУ, и строки этого результата ИЗВЛЕКАЮТСЯ (FETCH), либо по строке за раз, либо группами.

Этап 3: Описание результатов

Фаза описания (DESCRIBE) необходима только тогда, когда характеристики результатов запроса неизвестны.

Этап 4: Определение вывода

На фазе определения (DEFINE) для запросов вы специфицируете адреса, размеры и типы данных переменных, которые принимают каждое извлекаемое значение. ORACLE выполняет преобразование типов данных, если необходимо.

Этап 5: Связывание переменных

ORACLE нуждается в значениях всех переменных, участвующих в предложении; Этот процесс называется СВЯЗЫВАНИЕМ ПЕРЕМЕННЫХ (BIND). Программа должна специфицировать местоположение (адрес в памяти), по которому находится значение.

Этап 6: Исполнение предложения

Если это запрос или предложение INSERT, то никаких строк блокировать не требуется, потому что никакие данные не изменяются. Однако, если это предложение UPDATE или DELETE, то все строки, затрагиваемые данным предложением, блокируются от других пользователей базы данных до тех пор, пока не будет выдано очередное предложение COMMIT, ROLLBACK или SAVEPOINT в данной транзакции. Это гарантирует целостность данных.

Этап 7: Извлечение строк результата запроса

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

Обработка предложений DDL

Исполнение предложений DDL отличается от исполнения предложений DML и запросов, потому что успешное выполнение предложения DDL требует операций записи в словарь данных. Такие предложения SQL, как предложения управления транзакциями, управления сессией и управления системой, обрабатываются за две фазы: разбор и исполнение. При повторном выполнении их выполняется лишь фаза исполнения.

Поддержание целостности данных

Использование ограничений целостности

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

Использование ограничений целостности NOT NULL

По умолчанию, все столбцы в таблице допускают пустые значения (т.е. отсутствие значения). Определяйте ограничение NOT NULL только для тех столбцов таблицы, которые действительно требуют, чтобы значение было всегда.

Установка умалчиваемых значений столбцов

Допустимые умалчиваемые значения включают любые литералы, а также выражения, которые НЕ ссылаются на столбец и не содержат LEVEL, ROWNUM или PRIOR. Умалчиваемые значения МОГУТ включать выражения SYSDATE, USER, USERENV и UID. Тип данных литерала или выражения, специфицирующего умалчиваемое значение, должен совпадать с типом данных столбца или быть преобразуемым в него.Если вы явно не определяете умалчиваемого значения для столбца, то его умалчиваемое значение неявно устанавливается в NULL.

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