Архитектура виртуального сервера. В этой архитектуре клиент подключается не к реальному серверу, а к промежуточному звену (диспетчеру), который выполняет функции диспетчеризации запросов к актуальным сервера. Количество актуальных серверов может быть согласовано с количеством процессоров в системе.
Недостатки: Невозможно направить запрос от конкретного клиента к конкретному серверу. Серверы становятся равноправными, т.е. нет возможности устанавливать приоритеты для обслуживания запросов. Современное решение проблемы СУБД для мультипроцессорных платформ заключается в возможности запуска нескольких серверов БД, в том числе и на различных процессорах. При этом каждый из серверов должен быть многопотоковым. Данная модель называется многонитевая мультисерверная архитектура. Она связана с вопросами распараллеливания выполнения одного пользовательского запроса несколькими серверными процессами.
4. Типы параллелизма
Рассмотрим несколько путей распараллеливания запросов.
Горизонтальный параллелизм возникает, когда хранимая в БД информация распределяется по нескольким физическим устройствам хранения - нескольким дискам. При этом информация из одного отношения разбивается на части по горизонтали. Этот вид параллелизма иногда называют распараллеливанием или сегментацией данных. Параллельность здесь достигается путем выполнения одинаковых операций (например, фильтрации). Результат выполнения целого запроса складывается из результатов выполнения отдельных операций.
Достоинства: Сокращается время выполнения запроса.
Вертикальный параллелизм достигается конвейерным выполнением операций, составляющих запрос пользователя. Этот подход требует серьезного усложнения в модели выполнения реляционных операций ядром СУБД.
Достоинства: Сокращается время выполнения запроса.
Гибридный параллелизм. Эти методы позволяют существенно сократить время выполнения сложных запросов над очень большими объемами данных.
5. Модели транзакций
Транзакцией называется последовательность операций, производимых над БД и переводящих БД из одного непротиворечивого (согласованного) состояния в другое непротиворечивое состояние. Транзакция рассматривается как некоторое неделимое действие над БД, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Разработчик БД определяет семантику совокупности операций на БД, которая моделирует с точки зрения разработчика некоторую одну неразрывную работу (это и составляет транзакцию).
Например, принимается заказ в фирме на изготовление компьютера. Компьютер состоит из комплектующих, которые сразу резервируются за данным заказом в момент его оформления. Тогда транзакцией будет вся последовательность операций, включающая следующие: ввод нового заказа со всеми реквизитами заказчика; изменения состояния для всех выбранных комплектующих на складе на "занято" с привязкой к определенному заказу; подсчет стоимости заказа с формированием платежного документа (например, выставляемого счета к оплате); включение нового заказа в производство.
С точки зрения работника - это единая последовательность операций. Если она будет прервана, то БД потеряет свое целостное состояние.
Свойства транзакций. Способы их завершения
Модели транзакций классифицируются на основании различных свойств:
1. структура транзакции
2. параллельность внутри транзакции
3. продолжительность
4. Типы транзакций:
5. Плоские (классические)
6. Цепочечные.
7. Вложенные.
8. Плоские транзакции характеризуются 4 классическими свойствами:
9. атомарность;
10. согласованность;
11. изолированность;
Долговечность (прочность). Иногда данные транзакции называются ACID-транзакциями. ACID - Atomicity, Consistency, Isolation, Durability. Упомянутые выше свойства означают следующее:
Атомарность - выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.
Согласованность - гарантирует, что по мере выполнения транзакций, данные переходят из одного согласованного состояния в другое, т.е. транзакция не разрушает взаимной согласованности данных.
Изолированность - означает, что конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно.
Долговечность - если транзакция завершена успешно, то те изменения, в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах.
Варианты завершения транзакций:
Если все операторы выполнены успешно и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, то транзакция фиксируется.
Фиксация транзакции - это действие, обеспечивающее запись на диск изменений в БД, которые были сделаны в процессе выполнения транзакций. Фиксация транзакций означает, что все результаты ее выполнения становятся постоянными, и станут видимыми другим транзакциям только после того, как текущая транзакция будет зафиксирована. Если в процессе выполнения транзакций случилось нечто такое, что делает невозможным ее нормальное завершение, БД должна быть возвращена в исходное состояние.
Откат транзакции - это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны операторами SQL в теле текущей незавершенной транзакции.
Каждый оператор в транзакции выполняет свою часть работы, но для успешного завершения всей работы в целом, требуется безусловное завершение всех их операторов. В стандарте ANSI/ISO SQL транзакция завершается одним из 4-х возможных путей:
Оператор COMMIT означает успешное завершение транзакции, его использование делает постоянными изменения, внесенные в БД в рамках текущей транзакции.
Оператор ROLLBACK прерывает транзакцию, отменяя изменения, сделанные в БД в рамках этой транзакции. Новая транзакция начинается непосредственно после использования ROLLBACK.
Успешное завершение программы, в которой была инициирована текущая транзакция, означает успешное завершение транзакции (как будто был использован оператор COMMIT). Ошибочное завершение программы прерывает транзакцию (как будто был использован оператор ROLLBACK).
Список литературы
1. Карпова Т. С. Базы данных: Модели, разработка, реализация/ Т. С. Карпова СПб: Питер 2006 – 98с.
2. Фуфаев Э.В. Разработка и эксплуатация удаленных баз данных/ Э.В. Фуфаев, Д.Э. Фуфаев Изд.: Академия 2008 - 256с.
3. Кренке Д. Теория и практика построения баз данных: пер.с англ / Д. Кренке. - 9 - е изд. - СПб.: Питер, 2005. - 858 с.
4. Петров В.Н. Информационные системы/В.Н. Петров. – СПб.: Питер, 2002 – 123с
5. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А.Д. Хомоненко. - СПб.: КОРОНА 2000. - 416с.