Oracle - ТЕХНОЛОГИИ СОЗДАНИЯ РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ
2.3.2.4 Процедурное расширение языка SQL - PL/SQL.
$title="Oracle - технологии создания распределенных информационных систем";Oracle также присущи черты, связанные с используемым языком программирования, которые способствуют ускорению разработки и улучшению эффективности серверной части приложений:
Один из основных компонентов Oracle Server - его процессор PL/SQL. (PL - Procedural Language - процедурный язык.)
PL/SQL - язык Oracle четвертого поколения, объединяющий структурированные элементы процедурного языка программирования с языком SQL, разработанный специально для организации вычислений в среде клиент/сервер. Он позволяет передать на сервер программный блок PL/SQL, содержаший логику приложения, как оператор SQL, одним запросом. Используя PL/SQL, можно значительно уменьшить объем обработки в клиентской части приложения и нагрузку на сеть. Например, может понадобиться выполнить различные наборы операторов SQL в зависимости от результата некоторого запроса. Запрос, последующие операторы SQL и операторы условного управления могут быть включены в один блок PL/SQL и пересланы серверу за одно обращение к сети.
При этом вся логика приложений делится на клиентскую и серверную части. Серверная часть может быть релаизована в виде функций, хранимых процедур и пакетов.
Функции. Часть логики приложения ориентированной на выполнение конкретного комплекса операций на сервере, результат которых возвращается в виде значения функции. Откомпилированные функции и их исходные тексты содержатся в базе данных.
Хранимые процедуры. Часть логики приложения, особенно нуждающаяся в доступе к базе данных, может храниться там, где она обрабатывается (на сервере). Хранимые процедуры не возвращают значения результата, обеспечивают удобный и эффективный механизм безопасности. Откомпилированные хранимые процедуры и их исходные тексты содержатся в базе данных.
Пакеты. Часть логики приложений: фукций и пакетов, предназначеных для решениях задач в рамках одного модуля (подсистемы) АИС.
Триггеры базы данных. Можно использовать триггеры, чтобы организовать сложный контроль целостности, выполнять протоколирование (аудит) и другие функции безопасности, реализовать в приложениях выдачу предупреждений и мониторинг.
Декларативная целостность. Ограничения активизируются сервером всякий раз, когда записи вставляются, обновляются или удаляются. В дополнение к ограничениям ссылочной целостности, которые проверяют соответствие первичного и внешнего ключей, можно также накладывать ограничения на значения, содержащиеся в столбцах таблицы. Поддержка целостности на сервере уменьшает размер кода клиентской части, необходимого для проверки допустимости данных, и увеличивает устойчивость бизнес- модели, определенной в базе данных.
Список, зарезервированных слов PL/SQL
Язык PL/SQL также включает зарезервированные слова, имеющие определенное значение в операторах PL/SQL.
ABORT |
DEFINITION |
NOT |
TADAUTH |
ACCEPT |
DELAY |
NULL |
TABLE |
ACCESS |
DELETE |
NUMBER |
TABLES |
ADD |
DELTA |
NUMBER_BASE |
TASK |
ALL |
DESC |
OF |
TERMINATE |
ALTER |
DIGITS |
ON |
THEN |
AND |
DISPOSE |
OPEN |
TO |
ANY |
DISTINCT |
OPTION |
TRUE |
ARRAY |
DO |
OR |
TYPE |
ARRAYLEN |
DROP |
ORDER |
UNION |
AS |
ELSE |
OTHERS |
UNIQUE |
ASC |
ELSIF |
OUT |
UPDATE |
ASSERT |
END |
PACKAGE |
USE |
ASSIGN |
ENTRY |
PARTITION |
VALUES |
AT |
EXCEPTION |
PCTFREE |
VARCHAR |
AUTHORIZATION |
EXCEPTION_INIT |
PRAGMA |
VARCHAR2 |
AVG |
EXISTS |
PRIOR |
VARIANCE |
BEGIN |
EXIT |
PRIVATE |
VIEW |
BETWEEN |
FALSE |
PROCEDURE |
VIEWS |
BODY |
FETCH |
PUBLIC |
WHEN |
BOOLEAN |
FOR |
RAISE |
WHERE |
BY |
FORM |
RANGE |
WHILE |
CASE |
FROM |
REAL |
WITH |
CHAR |
FUNCTION |
RECORD |
WORK |
CHAR_BASE |
GENERIC |
RELEASE |
XOR |
CHECK |
GOTO |
REM |
|
CLOSE |
GRANT |
RENAME |
|
CLUSTER |
GROUP |
RESOURCE |
|
CLUSTERS |
HAVING |
RETURN |
|
COLAUTH |
IDENTIFIED |
REVERSE |
|
COLUMNS |
IF |
REVOKE |
|
COMMIT |
IN |
ROLLBACK |
|
COMPRESS |
INDEX |
ROWNUM |
|
CONNECT |
INDEXES |
ROWTYPE |
|
CONSTANT |
INDICATOR |
RUN |
|
COUNT |
INSERT |
SAVEPOINT |
|
CRASH |
INTEGER |
SCHEMA |
|
CREATE |
INTERSECT |
SELECT |
|
CURRENT |
INTO |
SEPARATE |
|
CURSOR |
IS |
SET |
|
DATABASE |
LEVEL |
SIZE |
|
DATA_BASE |
LIKE |
SPACE |
|
DATE |
LIMITED |
SQL |
|
DBA |
LOOP |
SQLCODE |
|
DEBUGOFF |
MAX |
SQLERRM |
|
DEBUGON |
MIN |
START |
|
DECIMAL |
MINUS |
STATEMENT |
|
DECLARE |
MOD |
STDDEV |
|
DEFAULT |
NEW |
SUBTYPE |
|
NOCOMPRESS |
SUM |