Разработка иэксплуатация удаленных баз данных
План
1. ТерминологияУБД
2. Двухуровневыемодели
3. Моделисерверов баз данных
4. Типыпараллелизма
5. Моделитранзакций
Список литературы
1. Терминология УБД
Пользователь БД — этопрограмма или человек, обращающиеся к БД на языке манипулирования данными.
Запрос — это процессобращения пользователя к БД с целью ввода, получения или изменения информации вБД.
Транзакция — этопоследовательность операций модификации данных в БД, переводящая БД из одногонепротиворечивого состояния в другое непротиворечивое состояние.
Логическая структура БД- это определение БД на физически независимом уровне, ближе всегосоответствующем концептуальной модели БД.
Топология БД (структураРБД) — это схема распределения физических БД по сети. Локальная автономностьозначает принадлежность локальному владельцу информации локальной БД исвязанных с ней определенных данных.
Удаленный запрос — этозапрос, который выполняется с использованием модемной связи.
Возможность реализацииудаленной транзакции — это обработка одной транзакции, состоящей из множестваSQL-запросов, на одном удаленном узле.
Поддержкараспределенной транзакции допускает обработку транзакции, состоящей изнескольких SQL-запросов, которые выполняются на нескольких узлах сети(удаленных или локальных), но каждый запрос в этом случае обрабатывается толькона одном узле, т.е. запросы не являются распределенными. При обработке однойраспределенной транзакции разные локальные запросы могут обрабатываться вразных узлах сети.
2. Двухуровневые модели
Этимодели фактически являются распределением пяти указанных функций между двумяпроцессами, которые выполняются на двух платформах — клиенте и сервере.
Модельудаленного управления данными (модель файлового сервера). В этой модели BL и PLрасполагаются на клиенте. На сервере располагаются файлы с данными и доступ кним. Функции управления информационными ресурсами в этой модели находятся наклиенте.
Модельфайл-сервера. В этой модели файлы БД хранятся на сервере, клиент обращается ксерверу с файловыми командами, а механизм управления всеми информационнымиресурсами (база метаданных (БМД)) находится на клиенте.
Достоинства:разделение монопольного приложения на два взаимодействующих процесса. Серверможет обслуживать множество клиентов, которые обращаются к нему с запросами.Алгоритм выполнения запроса клиента. Запрос клиента формируется в командах ЯМД.СУБД переводит этот запрос в последовательность файловых команд. Каждаяфайловая команда вызывает перекачку блока информации на клиента. Далее наклиенте СУБД анализирует полученную информацию и если в полученном блоке несодержится ответ на запрос, то принимается решение о перекачке следующего блокаинформации до тех пор, пока не будет найдено ответа на запрос.
Модельудаленного доступа к данным. В модели удаленного доступа (RDA) база данныххранится на сервере. На нем же находится и ядро СУБД. На клиенте располагаютсяPL и BL приложения. Клиент обращается к серверу с запросами на языке SQL.
Достоинства:перенос компонента представления и прикладного компонента на клиентский ПКсущественно разгружает сервер БД, сводя к минимуму общее число процессов в ОС.Процессор сервера целиком загружается операциями обработки данных, запросов итранзакций. Резко уменьшается загрузка сети, запросы на ввод-вывод и на SQLуменьшаются в объеме, т.е. в ответ на запросы клиент получает только данные,удовлетворяющие данному запросу.
Унификацияинтерфейса клиент-сервер. Стандартным при обращении приложения клиента исервера становится язык SQL.
Недостатки:
Запросына SQL при интерактивной работе клиента могут существенно загрузить сеть. Наклиенте располагаются PL и BL, и если при повторении аналогичных функций вразличных приложениях (других клиентов) их код должен быть повторен для каждогоклиентского приложения, следовательно, дублирование кода приложения. Сервер вэтой модели играет пассивную роль, поэтому функции управления информационнымиресурсами должны выполняться на клиенте => это усложняет клиентскоеприложение.
Модельсервера баз данных. Для того, чтобы избавиться от недостатков модели удаленногодоступа должны быть соблюдены следующие условия. Данные, которые хранятся в БДв каждый момент времени должны быть непротиворечивы. БД должна отображатьнекоторые правила ПО, законы ПО. Необходим постоянный контроль за состояниемБД, отслеживание всех изменений и адекватная реакция на них. Возникновениенекоторой ситуации в БД четко и оперативно должно влиять на ход выполненияприкладной задачи. Одной из важных проблем СУБД является контроль типов данныхчерез язык описания данных (ЯОД).
Модельактивного сервера. Данную модель поддерживают большинство современных СУБД:Informix, Ingres, Sybase, Oracle, MS SQL Server.
Основуданной модели составляет механизм хранимых процедур (как средствапрограммирования SQL-сервера), механизм триггеров (как механизм отслеживаниятекущего состояния информационного хранилища) и механизм ограничений напользовательские типы данных (который иногда называется механизмом поддержкидоменной структуры).
Вэтой модели бизнес логика разделена между клиентом и сервером. На серверебизнес логика реализована в виде хранимых процедур — специальных программныхмодулей, которые хранятся в БД и управляются непосредственно СУБД. Клиентскоеприложение обращается к серверу с командой запуска хранимой процедурой, асервер выполняет эту процедуру и регистрирует все изменения в БД, которые в нейпредусмотрены. Сервер возвращает клиенту данные, релевантные его запросу.Трафик обмена информацией между клиентом и сервером резко уменьшается.
Централизованныйконтроль в данной модели выполняется с использованием механизма триггеров,которые являются частью БД.
Триггер- механизм отслеживания специальных событий, которые связаны с состоянием БД.Триггер в БД является как бы некоторым тумблером, который срабатывает привозникновении определенного события в БД. Ядро СУБД проводит мониторинг всехсобытий, которые вызывают созданные и описанные триггеры в БД, и привозникновении соответствующего события сервер запускает соответствующий триггер=> триггер — это программа, которая выполняется над БД и вызывает хранимыепроцедуры. Данная модель сервера является активной, потому что не толькоклиент, но и сам сервер используют механизм триггеров.
Достоинства:Хранимые процедуры и триггеры хранятся в словаре БД и могут быть использованынесколькими клиентами => уменьшается дублирование алгоритмов обработкиданных в разных клиентских приложениях.
Недостаткомявляется очень большая загрузка сервера. Функции сервера осуществляетмониторинг событий, связанных с описанными триггерами; Обеспечиваетавтоматическое срабатывание триггеров при возникновении связанных с нимисобытий; Обеспечивает исполнение внутренней программы каждого триггера;Запускает хранимые процедуры по запросам пользователей; Запускает хранимыепроцедуры из триггеров; Возвращает требуемые данные клиенту; Обеспечивает всефункции СУБД: доступ к данным, контроль и поддержка целостности данных в БД,контроль доступа, обеспечение корректной работы всех пользователей с единой БД.
Дляразгрузки сервера была предложена 3-уровневая модель сервера: Эта модельявляется расширением двухуровневой модели, т.е. вводится дополнительныйпромежуточный уровень между клиентом и сервером. В этой модели компонентыприложения делятся между тремя исполнителями:
Клиент- обеспечивает логику представления, включая графический пользовательскийинтерфейс, локальные редакторы.
Серверыприложений — составляют новый, промежуточный уровень архитектуры.
Ониспроектированы как исполнение общих не загружаемых функций для клиентов,поддерживают функции клиентов, поддерживают сетевую доменную операционнуюсреду, хранят и исполняют общие правила бизнес логики, поддерживают каталоги сданными, обеспечивают обмен сообщениями и поддержку запросов. Серверы этоймодели занимаются исключительно функциями СУБД, функции создания резервных копийБД и восстановления БД после сбоев, управление выполнением транзакций иподдержки устаревших (унаследованных) приложений.
удаленнаяфайловый сервер триггер
3. Модели серверов базданных
Недостатки: Дляобслуживания большого числа клиентов на сервере должно быть запущено большоеколичество одновременно работающих серверных процессов, а это резко повышаеттребование к ресурсам ЭВМ, на котором запускались все серверные процессы.Каждый серверный процесс в этой модели запускается как независимый, поэтому еслиодин клиент сформировал запрос, который был выполнен другим серверным процессомдля другого клиента, то запрос, тем не менее, выполняется повторно. В этоймодели сложно обеспечить взаимодействие серверных процессов.
Вышеперечисленныенедостатки устраняются в модели (архитектуре) «систем с выделеннымсервером», который способен обрабатывать запросы от многих клиентов.Сервер единственный обладает монополией на управление данными и взаимодействуетодновременно со многими клиентами. Логически каждый клиент связан с серверомотдельной нитью (tread), или потоком, по которому пересылаются запросы. Такаяархитектура получила название многопотоковой односерверной.
Достоинства:Уменьшается нагрузка на ОС, возникающая при работе большого числапользователей.
Многопотоковаяодносерверная архитектура. Недостатки: Т.к. сервер может выполняться только наодном процессоре, возникает ограничение на применение СУБД длямультипроцессорных платформ. Например, если компьютер имеет 4 процессора, тоСУБД с одним сервером использует только один из них, не загружая оставшиеся 3.В некоторых системах эта проблема решается вводом промежуточного диспетчера — архитектура виртуального сервера.
Архитектуравиртуального сервера. В этой архитектуре клиент подключается не к реальномусерверу, а к промежуточному звену (диспетчеру), который выполняет функциидиспетчеризации запросов к актуальным сервера. Количество актуальных серверовможет быть согласовано с количеством процессоров в системе.
Недостатки: Невозможнонаправить запрос от конкретного клиента к конкретному серверу. Серверыстановятся равноправными, т.е. нет возможности устанавливать приоритеты дляобслуживания запросов. Современное решение проблемы СУБД для мультипроцессорныхплатформ заключается в возможности запуска нескольких серверов БД, в том числеи на различных процессорах. При этом каждый из серверов должен бытьмногопотоковым. Данная модель называется многонитевая мультисервернаяархитектура. Она связана с вопросами распараллеливания выполнения одногопользовательского запроса несколькими серверными процессами.
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с.