![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
SQL-выражения для управления транзакциямиСодержание книги
Поиск на нашем сайте
Для управления транзакциями имеется три выражения: SET TRANSACTION - Начинает транзакцию и определяет ее поведение. COMMIT - Сохраняет изменения, внесенные транзакцией, в базе данных и завершает транзакцию. ROLLBACK - Отменяет изменения, внесенные транзакцией, и завершает транзакцию. Запуск транзакции В общем виде, синтаксис команды SQL для запуска транзакции: SET TRANSACTION [Access mode] [Lock Resolution] [Isolation Level] [Table Reservation] Значения, принимаемые по-умолчанию: SET TRANSACTION READ WRITE WAIT ISOLATION LEVEL SNAPSHOT Access Mode - определяет тип доступа к данным. Может принимать два значения: READ ONLY - указывает, что транзакция может только читать данные и не может модифицировать их. READ WRITE - указывает, что транзакция может читать и модифицировать данные. Это значение принимается по умолчанию. Пример: SET TRANSACTION READ WRITE Isolation Level - определяет порядок взаимодействия данной транзакции с другими в данной базе. Может принимать значения: · SNAPSHOT - значение по умолчанию. Внутри транзакции будут доступны данные в том состоянии, в котором они находились на момент начала транзакции. Если по ходу дела в базе данных появились изменения, внесенные другими завершенными транзакциями, то данная транзакция их не увидит. При попытке модифицировать такие записи возникнет сообщение о конфликте. · SNAPSHOT TABLE STABILITY - предоставляет транзакции исключительный доступ к таблицам, которые она использует. Другие транзакции смогут только читать данные из них. · READ COMMITTED - позволяет транзакции видеть текущее состояние базы. Конфликты, связанные с блокировкой записей происходят в двух случаях: · Транзакция пытается модифицировать запись, которая была изменена или удалена уже после ее старта. Транзакция типа READ COMMITTED может вносить изменения в записи, модифицированные другими транзакциями после их завершения. · Транзакция пытается модифицировать таблицу, которая заблокирована другой транзакцией типа SNAPSHOT TABLE STABILITY. Lock Resolution - определяет ход событий при обнаружении конфликта блокировки. Может принимать два значения: · WAIT - значение по умолчанию. Ожидает разблокировки требуемой записи. После этого пытается продолжить работу. · NO WAIT - немедленно возвращает ошибку блокировки записи. Table Reservation - позволяет транзакции получить гарантированный доступ необходимого уровня к указанным таблицам. Существует четыре уровня доступа:
· PROTECTED READ - запрещает обновление таблицы другими транзакциями, но позволяет им выбирать данные из таблицы. · PROTECTED WRITE - запрещает обновление таблицы другими транзакциями, читать данные из таблицы могут только транзакции типа SNAPSHOT или READ COMMITTED. · SHARED READ - самый либеральный уровень. Читать могут все, модифицировать - транзакции READ WRITE. · SHARED WRITE - транзакции SNAPSHOT или READ COMMITTED READ WRITE могут модифицировать таблицу, остальные - только выбирать данные. Завершение транзакции Когда все действия, составляющие транзакцию успешно выполнены или возникла ошибка, транзакция должна быть завершена, для того, чтобы база данных находилась в непротиворечивом состоянии. Для этого есть два SQL-выражения:
Технологии «клиент-сервер» Сервер – это компьютер, управляющий некоторыми ресурсами и предоставляющий их для коллективного использования. Сервера бывают почтовые, баз данных, вычислительные. Клиент – это программа или компьютер, обращающийся к услугам сервера Существуют разные технологии клиент-сервер. Любая программа может быть представлена из нескольких частей: 1. Ввод/вывод (интерфейсная часть); 2. Вычисление на основе каких-либо бизнес правил; 3. Обращение к данным; 4. Управляющая часть, создает единый алгоритм. В зависимости от того, как поделить эти части между сервером и клиентом, получаются различные технологии. 1 вариант - файловый сервер. Введем обозначения: К – клиент, С – сервер. К выполняет 1,2,4 части, а на С содержится информация, необходимая для запроса, т.е. С выполняет 3 часть.
К С ответ-файл В данной технологии основная нагрузка падает на клиента.
Данная технология позволяет получить только ту информацию, которая нас интересует, а не весь файл.
Запросы пишутся на динамическом SQL. А в ответ получаем ту порцию информации, которую запросили, эта порция информации называется курсором. Динамический SQL - это операторы SQL, которые передаются и выполняются на сервере. Имеют место следующие операторы: Prepare имя_оператора from строка, Select, Insert, Delete, Update Execute имя_оператора – позволяет выполнить запомненный на сервере оператор; Drop имя_оператора – позволяет удалит оператор; Эти операторы передаются в интерактивном режиме, а если хотим записать в рамках какой-то программы, то, например на Паскале, это будет выглядеть так: Exec sql “sql оператор”. Описание курсора на SQL: Declare имя_курсора [scroll] cursor for подзапрос [for update]. Курсор может быть обычным, то есть просматриваемым в одном направлении, от начала к концу, если стоит scroll, то просматривать курсор можно в любом направлении. Если стоит for update, то это значит, что курсор изменяемый, все изменения будут запоминаться на сервере. Операции с курсором: Open имя_курсора – позволяет получить курсор; Fetch имя_курсора – позволяет перейти к следующей записи курсора, если перед именем курсора поставить Last, то перейдем к последней записи, First – к первой записи, Current к текущей; Close имя_курсора – закрытие курсора, но он остается определенным; Free имя_курсора – удаление курсора. 3 вариант – сервер Базы Данных.
Бизнес-правила хранятся на сервере в виде хранимых процедур. Хранимые процедуры – это программы, написанные на некотором языке хранимых процедур с SQL вставками. Их можно написать заранее и поместить в библиотеку.
|
|||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 127; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.36.138 (0.007 с.) |