Кафедра «Информационные технологии»
Базы данных
Курс лекций по дисциплине «Базы данных» для специальности направления 1-40 01 02‑01 «Информационные системы и технологии (в проектировании и производстве)»
автор-составитель , доцент, канд. физ.-мат. наук
Основы языка Transact-SQL Лекция 3
9. Хранимые процедуры
9.1. Общие сведения о хранимых процедурах
9.2. Хранимые процедуры в среде MS SQL Server
10. Триггеры
2
9. Хранимые процедуры
9.1. Общие сведения о хранимых процедурах
При создании приложения, связанного с БД (в частности, с БД SQL Server), - проблема организации программного взаимодействия с БД. Для решения - 2 основные возможности:
3
Последний подход лучше, т.к. позволяет отделить интерфейс пользователя от интерфейса данных и в результате: уменьшить вероятность ошибок; повысить защиту данных; уменьшить передачу данных по сети. Одно из средств реализации такого подхода – хранимые процедуры (ХП), которые чаще всего используются в качестве программных модулей на стороне сервера. Выполнить ХП часто гораздо проще, чем последовательность отдельных операторов SQL.
4
ХП представляют собой фрагменты программного кода на T-SQL, которые выполняются на сервере. ХП могут запускаться вызывающим их приложением, правилами проверки целостности данных или триггерами. ХП может иметь параметры, позволяющие передавать в нее и получать обратно значения, выбираемые из таблиц или вычисляемые при работе ХП.
5
Основное преимущество ХП - высокая оперативность обработки информации, обусловленная использованием, как правило, мощного компьютера-сервера (как для хранения, так и для обработки данных) и тем, что для доступа к данным не тратится лишнее время, поскольку БД размещается на сервере.
6
Кроме того, ХП обладают следующими преимуществами: • В сравнении с использованием динамических операторов языка SQL ХП работают быстрее (как правило), так как они компилируются при первом выполнении с использованием оптимизации доступа к информации из таблиц.
7
• ХП поддерживают модульное программирование, так как позволяют разбивать большие задачи на самостоятельные, более мелкие и удобные в управлении части. • ХП могут вызывать другие ХП и функции. • ХП могут быть вызваны из прикладных программ других типов.
8
• ХП проще использовать: они могут состоять из десятков и сотен команд, но для их запуска достаточно указать всего лишь имя нужной ХП. Это позволяет уменьшить размер запроса, посылаемого от клиента на сервер, а значит, и нагрузку на сеть.
9
• Хранение процедур в том же месте, где они исполняются, обеспечивает уменьшение объема передаваемых по сети данных и повышает общую производительность системы. • Применение ХП упрощает сопровождение сложных программных комплексов и внесение изменений в них.
10
Для обеспечения целостности данных, а также в целях безопасности, приложение обычно не получает прямого доступа к данным – вся работа с ним ведется путем вызова тех или иных ХП. Подобный подход упрощает модификацию алгоритмов обработки данных, при этом изменения сразу становятся доступными для всех пользователей сети.
11
12
ХП существуют независимо от таблиц или каких-либо других объектов БД. Они вызываются клиентской программой, другой ХП или триггером. Разработчик может управлять правами доступа к ХП, разрешая или запрещая ее выполнение.
13
Изменять код ХП разрешается только ее владельцу или члену фиксированной роли БД. При необходимости можно передать права владения ХП от одного пользователя к другому.
14
9.2. Хранимые процедуры в среде MS SQL Server
15
Системные ХП размещаются в системной БД Master, используются сервером и служат для выполнения различных административных действий. Их имена начинаются с символов sp_. Для создания собственной системной ХП нужно присвоить
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.