Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Взаимодействие приложений и СУБД

Транзакции

Для операторов COMMIT и ROLLBACK в языке SQL есть прямые аналоги. Это операторы COMMIT WORK и ROLLBACK WORK соответственно (в обоих случаях слово WORK – необязательное). Но в языке SQL нет явного оператора, соответствующего оператору BEGIN TRANSACTION. Неявно транзакция начинается всякий раз, когда выполняется оператор, способный «инициализировать транзакцию» (transaction-initiating), но только в том случае, когда никакая транзакция не выполняется. Таковыми операторами являются практически все операторы, которые мы обсуждаем в этом разделе.

Замечание. Некоторые реализации языка SQL имеют в своем составе аналоги оператора BEGIN TRANSACTION, которые в явном виде позволяют задавать начало выполнения транзакции. Примером такой реализации может послужить СУБД Microsoft SQL Server 2000.

Для реализации возможности взаимодействия прикладных приложений, написанных прикладными программистами, с реляционной СУБД, использующей язык SQL, возможны несколько вариантов:

§ Первый вариант состоит во внедрении SQL-операторов в синтаксические конструкции того или иного языка и поддержка их на уровне компилятора, который осуществляет достаточно прозрачно взаимодействие с СУБД. Положительными моментами такого варианта является проверка типов и поиск ошибок, что типично при для процесса компиляции. Отрицательным аспектом здесь является загромождение языка программирования дополнительными конструкциями, относящимися только к работе с данными, что делает этот язык весьма специализированным для работы именно с данными. Но для этого и разрабатывался язык SQL, чтобы предоставлять средства именно такого взаимодействия. Поэтому данный вариант в настоящее время редко используется.

§ Второй вариант представляет форму взаимодействия, когда с языком программирования поставляется несколько библиотек, которые реализуют возможность взаимодействия с СУБД, например, посредством включения набора классов, которые упрощает это взаимодействие и упрощающих его. Данный подход является наиболее распространенным в настоящее время и используется, например, в таких языках программирования как C++, C#, Java. При этом SQL-запросы передаются чаще всего в текстовой форме. Для формирования подобных запросов служит часть языка, называемая динамическим SQL. Основной принцип работы в этом случае является передача запроса к СУБД, которая получив его производит компиляцию, оптимизацию и выполнение данного запроса, после чего результаты возвращаются запросившему приложению. В данном случае имеется проигрыш, заключающийся в том, что каждый раз приходится при обращении к СУБД компилировать запросы, что снижает скорость их выполнения. Для решения этой задачи были разработаны так называемые постоянные хранимые модули (PSM) или хранимые процедуры (stored procedures), которые представляют собой набор инструкций SQL-языка, которые имеют параметры и возвращают (или не возвращают) результат своего выполнения. Данные процедуры разрабатываются один раз, компилируются, оптимизируются. После этого они многократно используются, получая лишь параметры для своего выполнения. Подобные процедуры разрабатываются для основных, наиболее часто используемых запросов к БД, что повышает производительность работы СУБД по обработке запросов.

<== предыдущая лекция | следующая лекция ==>
Представления | Домены, отношения и базовые переменные-отношения
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 617; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.