DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Двухуровневая модель

Двухуровневая модель, или модель клиент/сервер, является традицион­ной для проектирования приложений. Приложение разбивается на две части: клиентскую и серверную. Клиент управляет интерфейсом пользо­вателя, а сервер содержит базу данных. Логика приложения распределя­ется между клиентом и сервером. Система поддержки располагается на сервере, а в некоторых случаях — еще и на машине клиента.
PL/SQL на сервере
Начиная с Oracle версии 6, PL/SQL доступен на сервере базы данных, и сервер является исходным местоположением системы поддержки PL/SQL. Поскольку сервер базы данных обрабатывает также операторы SQL, это означает, что можно посылать в базу данных и там обрабаты­вать как SQL-операторы, так и блоки PL/SQL. Приложение клиента, на­писанное при: помощи средств разработки программ Oracle или средств других производителей, может направлять серверу как SQL-операторы, так и блоки PL/SQL. Примером приложения, в котором SQL-операторы и блоки PL/SQL вводятся в диалоговом режиме в ответ на приглашение SQL, а затем посылаются на сервер для выполнения, является SQL*Plus.
Ниже показан интерактивный сеанс SQL*Plus. Текст вводится пользо­вателем в ответ на приглашение SQL>, a SQL*Plus посылает оператор сер­веру для выполнения и выводит полученный результат. В этом примере строки жирным шрифтом показывают результат, выводимый SQL*Plus. По ходу дела мы подробно рассмотрим синтаксис блоков PL/SQL и опера­торов SQL, таких как оператор CREATE OR REPLACE PROCEDURE.
Внимание
Этот пример, как и многие другие, находится на сайте издательства "Лори"по адресу: www. Югу-press, ru. Подобные примеры помечены комментарием "-- Этот пример содержится в файле имя^файла.эцГ. Более подробную информацию, включая описание всех файлов, можно найти в файле readme.htmlв каталоге code.

Описанный сценарий показан на рис. 2.1. Приложение клиента (в данном случае - SQL*Plus) посылает по сети на сервер блок PL/SQL (содержащий как процедурные, так и SQL-операторы, включая вызов серверной храни­мой процедуры) и отдельный SQL-оператор. На сервере SQL-оператор на­правляется непосредственно обработчику SQL-операторов, а блок PL/SQL передается системе поддержки PL/SQL, где подвергается грамма­тическому разбору. Во время выполнения блока система PL/SQL исполня­ет процедурные операторы (например, операции присваивания и вызовы хранимых процедур), однако все SQL-операторы внутри блока (например, оператор SELECT) направляются обработчику SQL-операторов.
Большая часть приложений, использующих PL/SQL, будет применять систему поддержки PL/SQL на сервере, а не на клиенте. Обычно прило­жение (которое может быть написано на Pro*C, JDBC, OCI или другом языке программирования) находится на клиенте и посылает на сервер как операторы SQL, так и блоки PL/SQL. Как правило, блоки PL/SQL
передаются тем же образом, что и операторы SQL, с дополнительной об­работкой для извлечения значений выходных переменных. Подробную информацию об отправке блоков PL/SQL из определенного клиентского инструментального средства можно найти в документации Oracle.
 









jAntivirus