![](https://cv01.studmed.ru/view/709b37ed11c/bg103.png)
Хранимыэ
процедуры
259
Однако когда
мы
рассматривали модели
«клиент-сервер»,
применяемые
в
БД,
тр
одределили,
что в
развитых моделях серверов
баз
данных большая часть
бизнес-логики клиентского
приложения
выполняется
именно
на
сервере,
а не
па
клиенте.
Для
этого используются
специальные
объекты, которые называют-
ся
хранимыми процедурами
и
хранятся
в
БД,
как
таблицы,
и
другие
базовые
объекты,
В
связи
с
этим фактом
курсоры,
которые могут быть использованы
в
приложе-
ниях, обычно
делятся
на
курсоры
.сервера
и
курсоры клиента. Курсор
сервера
создается
и
выполняется
на
сервере, данные,
связанные
с
ним,
не
пересылаются
на
компьютер клиента. Курсоры сервера определяются обычно
в
хранимых про-
цедурах
или
триггерах.
Курсоры клиента
— это те
курсоры, которые определяются
в
прикладных
про^
граммах,
выполняемых
на
клиенте.
Набор
строк,
связанный
с
данным курсором,
пересылается
на
клиент
и там
обрабатывается. Если
с
курсором связан боль-
шой
набор
данных,
то
операция пересылки набора строк, связанных
с
курсором,
может
занять
значительное
время
и
значительные
ресурсы
сети
и
клиентского
компьютера,
Конечно,
курсоры сервера более
экономичны
и
выполняются быстрее. Поэтому
последней рекомендацией, связанной
с
использованием
курсоров, будет реко-
мендация
трансформировать логику работы вашего приложения, чтобы
как
можно
чаще вместо курсоров клиента
использовать
курсоры сервера.
Хранимые процедуры
С
точки
зрения
приложений,
работающих
с БД,
хранимые процедуры
(Stored
Procedure)
— это
подпрограммы, которые выполняются
на
сервере.
По
отноше-
нию
к БД - это
объекты,
которые создаются
и
хранятся
в БД. Они
могут быть
вызваны
из
клиентских приложений.
При
ртом
одна
процедура может быть
ис-
пользована
в
любом количестве клиентских приложений,
что
позволяет
сущест-
венно сэкономить трудозатраты
на
создание
прикладного
программного обеспе-
чения
и
эффективно
применять
стратегию повторного использования
кода.
Так
же как и
любые процедуры
в
стандартных языках
программирования,
хранимые
процедуры могут
иметь
входные
и
выходные параметры
или не
иметь
их
вовсе.
Хранимые
процедуры
могут
быть
активизированы
не
только
пользовательски-
ми
приложениями,
но
и
триггерами.
Хранимые
процедуры
пишутся
на
специальном
встроенном языке программи-
рования,
они
могут включать любые операторы SQL,
а
также включают некото-
рый
набор операторов, управляющих ходом выполнения программ, которые
во
многом
схожи
с
подобными
операторами
процедурно
ориентированных
языков
программирования.
В
коммерческих СУБД
для
написания
текстов хранимых
процедур
используются собственные языки программирования, так,
в
СУБД
Oracle
для
этого
используется
язык
PL
/SQL,
а в MS SQL
Server
u
Systemll
фирмы
Sybase
используется язык
Transact
SQL.
В
последних
версиях Oracle
объявлено
использование языка
Java
для
написания хранимых процедур.