Понятие транзакции 2

Понятие транзакции

Транзакция – это законченная совокупность действий над базой данных, которая переводит ее из одного целостного состояния в другое. 

Управление транзакциями необходимо для поддержания логической целостности в БД. Поддержка транзакции является обязательной для любой СУБД, особенно для РИС. К транзакции предъявляется набор требований АСИД (расшифровка: атомарность – транзакция реализуется по принципу «все или ничего» - либо выполняются все действия и тогда транзакция фиксируется в БД. В случае сбоя, транзакция «откатывается» назад, т. е. не выполняется; согласованность – в результате выполнения транзакции система переходит из одного конкретного состояния в другое; изолированность – при выполнении транзакции, обрабатываемые ими данные не должны быть видны другим транзакциям, пока изменения не будут завершены; долговечность – если транзакция зафиксирована, ее результаты остаются навсегда). 

По типу транзакции бывают: 

- плоская – согласно ее правилам, в распределенной БД должны успешно завершаться все компоненты глобальной транзакции. Если неудачей завершилось изменение хотябы одной удаленной БД, вся глобальная транзакция отменяется, и ее надо выполнить заново.

- контрольная точка – является модификацией плоской транзакции. Они устанавливаются в прикладной программе, чтобы отметить моменты, в которых транзакцию можно повторить. Откат транзакции возможен для любой контрольной точки. 

- многозвенные транзакции позволяют фиксировать часть выполненной транзакции, возможность отката при этом исключается.

		

Параллелизм – возникает при одновременном выполнении операций над БД любым числом пользователей.

Первая проблема – потеря обновлений – запоминаются те обновления, которые будут выполнены  последними.

Вторая проблема – преждевременное чтение – работа с данными, не зафиксированными в системе.

Для разрешения проблем параллелизма в РБД используется механизм блокировок. Блокировка заключается в запрещении операций над данными, если их обрабатывает другой пользователь. Используется правило двухфазного блокирования – ни одна блокировка от имени какой либо транзакции не будет установлена, если не снята ранее установленная блокировка. Блокировки могут быть выполнены над БД, над совокупностью таблиц и над одной таблицей, над совокупностью записей, над одной записью, и над полем.

Блокировки бывают:

- пессимистические, которые запрещают доступ к данным, если какая либо транзакция уже работает с ними.

- оптимистические, которые разрешают параллельное выполнение транзакций, отслеживают возможные конфликты и устраняют их.

При работе в распределенной среде доступ может быть монопольным и разделяемым.



Управление распределенными данными



В современных РИС информация может храниться централизовано и децентрализовано.

Централизовано – проблемы идентичности представления информации для всех пользователей не существует, т.к. внесенные изменения хранятся в одном месте. В распределенных БД информация может меняться в отдельных узлах сети, поэтому необходим контроль за всеми изменениями информации и предоставлении ее в достоверном виде всем пользователям. 

Существуют 2 технологии управления распределенными ресурсами:

- распределенные БД. Такая БД состоит из нескольких фрагментов, размещенных на разных узлах сети.



Часть 1 БД

Часть 2 БД

Часть 3 БД

Запрос

Передаются по сети запросы и их рез-ты

	Информация о местоположении каждой из частей хранится в глобальном словаре данных.

	Достоинством этой технологии является то, при децентрализованном хранении данных пользователи получают информацию с учетом последних изменений.

	- тиражирование данных – она обеспечивает поддержку копий всей БД в узлах сети. Копии БД, которые в последствии могут быть синхронизированы, называются репликой.

	

Копия 1

Копия 2

Копия 3

Запрос

Передаются по сети запросы и их рез-ты

	В течении некоторого времени копии БД могут отличаться друг от друга. Процесс обновления реплик, при котором происходит передача обновляемых записей и согласование дублирующих записей, называется синхронизацией. Синхронизация бывает односторонняя и двусторонняя. 

	

	Виды тиражирования бывают:

	- по моменту внесения изменений реплики разделяют асинхронные и синхронные. При асинхронном тиражировании обновление всех копий может производиться не одновременно. Синхронное тиражирование выполняется только после успешной модификации всех копий.

	- реплики в РБД могут быть равноправными и неравноправными. В неравноправных репликах выделяют основную, которой допускается корректировать все реплики, доступные только для чтения. В равноправной все реплики доступны для чтения и корректировки.

	- если инициатором тиражирования вызывает компьютер-клиент, то такое тиражирование называется обновлением по запросу. Если инициатор – сервер, то это называется принудительная рассылка тиража.

	- обновление содержания реплик выполняется копированием моментального снимка БД.

	

	

	Монитор транзакций

	

	Монитор транзакций (МТ) – это программа, управляющая обменом данных между клиентами и серверами. МТ обеспечивает создание единообразной вычислительной среды, соответствующей концепции управления бизнесом на основе создания единого информационного пространства. МТ выполняет следующие задачи:

	- управление маршрутизацией транзакций;

	- управление распределенными транзакциями – МТ обеспечивает доступ к данным, хранящимся в нескольких и, возможно, разнородных СУБД;

	- уравновешивание нагрузки на серверы – МТ позволяет равномерно распределить клиентские запросы по принципу перенаправления клиентских запросов на менее загруженный сервер. При необходимости, МТ может открыть новый серверный процесс;

	- мультиплексирование соединений – в среде с большим количеством пользователей иногда возникают сложности их одновременного подключения к СУБД. Во многих случаях, пользователю не требуется непрерывный доступ к СУБД. МТ устанавливает соединение с СУБД только до тех пор, пока происходит обмен данными;

	- повышение надежности – МТ обеспечивает непротиворечивость БД. В случае отказа СУБД, МТ перенаправляет транзакцию в другую СУБД или хранит ее в памяти до тех пор, пока работа с СУБД не восстановится. МТ применяются в среде с очень большим объемом транзакций.

	

	Обеспечение целостности РБД

	

	Целостность – это актуальность и непротиворечивость БД, ее защищенность от разрушения и несанкционированного доступа. Для обеспечения целостности РБД может использоваться метод строгой и нестрогой целостности. Строгая гарантирует целостность данных в любой момент времени на основе двухфазного протокола фильтрации. Нестрогая допускает временную задержку между внесением изменений и их доставкой распределенным клиентам. Важнейшей задачей обеспечения целостности БД является их восстановление после разрушения. Для этой цели используется журнал изменений БД – это протокол, в котором в хронологическом порядке регистрируются исходные и обновленные состояния всех записей БД, измененных в процессе исполнения транзакций.

	

	Способы защиты данных

	

	При работе в многопользовательском режиме для защиты от несанкционированного доступа используют:

	- шифрование БД;

	- скрытие объектов средствами ОС;

	- использование пароля;

	- запрещение репликаций БД;

	- использование параметров запуска, при этом задается стартовая форма, которая автоматически открывается при загрузке БД.

	

	Создание и удаление пользователей

	

	В распределенной среде большое значение приобретает понятие «пользователь БД», то есть, владелец определенных объектов БД. Управление пользователями состоит из 3х этапов:

	- создание учетной записи пользователя БД;

	- наделение пользователя привилегиями;

	- удаление учетной записи и привилегий.

	Привилегия – право пользователей на выполнение определенных операций над объектами БД. Главной привилегией в БД является создание таблицы.

	

	
Организация доступа к данным в технологии Клиент-Сервер

	

	При создании РИС, в организации клиентской и серверной части требуется решение следующих задач: 

	Организация запросов к БД со стороны Клиента;

	Разработка клиентского приложения для удаленного доступа к БД со стороны Клиента;

	Перенос персональной БД на Сервер выполняется для обеспечения коллективного доступа к локальной БД путем преобразования данных к формату SQL Server. В Access для этого надо сделать: Сервис – Служебные – Преобразование в SQL-формат.

	Технологией доступа к данным называется система интерфейсов, обеспечивающая взаимодействие между клиентским приложением и БД на любом типе сервера. 

	Унифицированный механизм работы с данными представляет собой программную прослойку, к которой относится: ODBC, OLE DB, ADO, BDE, dbExpress и др.

	ODBC – стандарт системы интерфейсов для доступа к данным БД. Он имеет структуру:

	

Клиентское приложение

Диспетчер драйверов

Драйвер СУБД

СУБД

БД

ODBC





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

	OLE DB – это низкоуровневый интерфейс, обеспечивающий доступ к различным данным – реляционным и нереляционным, к файлам с текстом и графикой, к файлам электронной почты и т.д. 

	

Потребитель OLE DB

Провайдер данных

Провайдер сервисов

Массив данных

OLE DB – это DLL-библиотеки, которые обеспечивают универсальный доступ к данным. OLE DB-технология разбивает все функции СУБД на отдельные фрагменты –  COM-объекты. Некоторые из них отвечают за выполнение запросов. Другие за обновление данных и т.д. и каждая такая функция реализуется отдельным сервисом.

Приложение, использующее OLE DB, является потребителем. Провайдер данных владеет данными. Физически – он это таблица и обслуживает принятие запросов, выбор данных, их обновление, передачу результатов потребителю. Провайдер сервисов управляет транзакциями и может работать с данными минуя провайдер данных.

ADO  (ActiveX Data Objects) – высокоуровневая объектная надстройка над OLE DB. ADO может работать с любым провайдером OLE DB по следующей схеме:



Приложение

ADO

OLE DB

Источник данных



Обзор возможностей MS SQL Server



Это СУБД, обеспечивающая создание ИС с архитектурой Клиент-Сервер, в которой она играет роль сервера. Эта СУБД поддерживает тиражирование данных, коллективный доступ, создание и обработку больших БД на не дорогих аппаратных платформах, работает под управлением OS Windows любой версии.

В состав MS SQL Server входит:

1. БД, представляющая собой логические объекты. Физические БД – это один или несколько файлов.

2. Таблицы – это набор полей и записей. Бывают постоянные и временные.

3. Журнал транзакций, в котором регистрируется информация до и после транзакции.

При установке Сервера создается 4 системные базы, в которых хранятся метаданные для управления всей системой:

Master – управляет пользовательскими базами и содержит учетные записи пользователей, сведения о системных ошибках и БД на сервере, сведения о блокировках, доступных и резервных устройствах БД и т.д. (обязательно создавать резервную копию).

Model – шаблоны баз данных, создаваемых на сервере. Содержат пользовательские типы данных (21), значения по умолчанию, правила проверки ввода данных и т.д.

Tempdb – служит для размещения на диске различных временных объектов.

MSdb – это база-планировщик задач SQL Server’а. здесь находится каталог БД.

Управление распределенными данными в MS SQL Server выполняется следующими службами:

MSSQLSERVER – это ядро системы. В ее задачи входит: регистрация пользователей, контроль их прав доступа, установление соединения и обслуживание пользователей, выполнение хранимых процедур, работа с файлами БД, выполнение транзакций и ведение журнала транзакций, контроль за использованием системных ресурсов, распараллеливание пользовательских запросов между доступными процессами.

SQLServerAgent – эта служба предназначена для автоматизации администрирования работы с удаленными БД.

MS “Full-Text-Search” – полнотекстовый поиск. Используется для поиска символьной информации.

MSDTC (Microsoft Distribution Transaction Coordinator) – позволяет пользователям одновременно работать с несколькими источниками данных и реализует выполнение распределенных транзакций.



WEB-технологии в РСОИ



Интернет представляет собой совокупность взаимосвязанных компьютерных сетей мирового масштаба. Для обеспечения взаимодействия этих сетей в 1982 году был принят стандартный протокол связи TCP\IP. TCP обеспечивает бесперебойную доставку пакетов сообщений с одного компьютера другому, а протокол IP управляет передачей и приемом пакетов на основе 4 -х байтового адреса назначения. Термин TCP\IP применяют к семейству протоколов, работающих на основе TCP/IP. К ним относятся FTP, SMTP, POP, TelNet, DNS. Наиболее популярной является служба www.