Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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 часть. запрос К С ответ-файл В данной технологии основная нагрузка падает на клиента. 2 вариант – удаленный доступ. Данная технология позволяет получить только ту информацию, которая нас интересует, а не весь файл.
Запросы пишутся на динамическом 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; просмотров: 125; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.196.141 (0.008 с.) |