Тема_1 (1122328), страница 6
Текст из файла (страница 6)
Но ведь, как правило, бухгалтерскиесистемы покупаются в виде готовых и отдельных продуктов, неприспособленных к подобному «внедрению».Можно скопировать метаданные системы регистрации служащих вбухгалтерскую систему. Но метаданные (как и данные) не обязательноявляются статичными. Структура базы данных может со временемизменяться, могут исчезать одни правила целостности и появлятьсядругие. Как согласовывать копии метаданных, поддерживаемыенезависимыми информационными системами?03.09.2009С.Д. Кузнецов. Базы данных.64 Технология БД. ФунОсновные функции и компоненты СУБД (3)СУБД как независимый системный компонент (3)Так мы приходим к следующей организации системыЗдесь мы видим триИС, которые черезодну СУБД работаютс двумя разнымибазами данных,причем первая ивторая системыработают с общей базой данных.Это возможно, поскольку метаданные каждой базыданных содержатся в самих базах данных, идостаточно лишь указать СУБД, с какой базойданных желает работать данное приложение.03.09.2009С.Д.
Кузнецов. Базы данных.65 Технология БД. ФунОсновные функции и компоненты СУБД (4)СУБД как независимый системный компонент (4)Поскольку СУБД функционирует отдельно отприложений, и ее работа с базами данныхрегулируется метаданными, совместное использованиеодной базы данных двумя информационнымисистемами не вызовет потери согласованности данных,и доступ к данным будет должным образомсинхронизироваться.Рисунок вплотную приближает нас к наиболеераспространенной в последние десятилетияархитектуре «клиент-сервер».СУБД играет роль «сервера», обсуживающегонескольких «клиентов» – прикладных информационныхсистем.03.09.2009С.Д. Кузнецов.
Базы данных.66 Технология БД. ФунОсновные функции и компоненты СУБД (5)Функции СУБД (1)Мы выявили несколько потребностейинформационных систем, которые непокрываются возможностями систем управленияфайлами:поддержка логически согласованного набора файлов;восстановление согласованного состояния данныхпосле разного рода сбоев; обеспечение высокогоуровня параллелизма работы несколькихпользователей;поддержка языка манипулирования данными.Эти и другие функции традиционноподдерживаются СУБД.Обсудим функции СУБД более строго.03.09.2009С.Д.
Кузнецов. Базы данных.67 Технология БД. ФунОсновные функции и компоненты СУБД (6)Функции СУБД (2). Непосредственное управление данными во внешней памятиЭта функция обеспечивает поддержку необходимыхструктур внешней памяти как для хранения данных иматаданных, непосредственно входящих в БД, так и дляслужебных целей, например, для убыстрения доступа кданным (индексы).В некоторых реализациях СУБД активно используютсявозможности существующих ФС, в других работапроизводится на уровне устройств внешней памяти.Но подчеркнем, что в развитых СУБД пользователи в любомслучае не обязаны знать, использует ли СУБД ФС, и, еслииспользует, то как организованы файлы.В частности, в СУБД обычно поддерживается собственнаясистема именования объектов БД.03.09.2009С.Д.
Кузнецов. Базы данных.68 Технология БД. ФунОсновные функции и компоненты СУБД (7)Функции СУБД (3). Управление буферами оперативной памятиСУБД обычно работают с БД значительного размера; по крайнеймере, этот размер обычно существенно больше объема доступнойОП.Если при обращении к любому элементу данных будетпроизводиться обмен с внешней памятью, то вся система будетработать со скоростью устройства внешней памяти.Единственным способом реального увеличения этой скоростиявляется буферизация данных в оперативной памяти.Даже если операционная система производит общесистемнуюбуферизацию данных (как, например, в случае ОС UNIX), этогонедостаточно для целей СУБД, которая располагает гораздобольшей информацией о полезности буферизации той или инойчасти БД.Поэтому в развитых СУБД поддерживается собственный наборбуферов оперативной памяти с использованием собственнойдисциплиной замены буферов.03.09.2009С.Д.
Кузнецов. Базы данных.69 Технология БД. ФунОсновные функции и компоненты СУБД (8)Функции СУБД (4). Управление транзакциями (1)Транзакция - это последовательность операций над БД,рассматриваемых СУБД как единое целое:либо транзакция успешно выполняется, и СУБД фиксирует (выполняетоперацию COMMIT) изменения БД, произведенные этой транзакцией, вовнешней памяти,либо ни одно из этих изменений никак не отражается на состоянии БД.Понятие транзакции необходимо для поддержания логическойцелостности БД.Если вспомнить наш пример ИС с файлами СЛУЖАЩИЕ иОТДЕЛЫ, то единственным способом не нарушить целостность БДпри выполнении операции приема на работу нового служащегоявляется объединение элементарных операций над файламиСЛУЖАЩИЕ и ОТДЕЛЫ в одну транзакцию.Таким образом, поддержание механизма транзакций являетсяобязательным условием даже однопользовательских.Но понятие транзакции гораздо более важно вмногопользовательских СУБД.03.09.2009С.Д.
Кузнецов. Базы данных.70 Технология БД. ФунОсновные функции и компоненты СУБД (9)Функции СУБД (5). Управление транзакциями (2)То свойство, что каждая транзакция начинается при целостном состоянииБД и оставляет это состояние целостным после своего завершения, делаеточень удобным использование понятия транзакции как единицы активностипользователя по отношению к БД.При соответствующем управлении посредством СУБД параллельновыполняемыми транзакциями каждый пользователь может в принципеощущать себя единственным пользователем СУБД.С управлением транзакциями в многопользовательской СУБД связаныважные понятия сериализации транзакций.Под сериализацией параллельно выполняемых транзакций понимаетсятакой порядок планирования выполнения операций, при которомсуммарный эффект смеси транзакций эквивалентен эффекту их некоторогопоследовательного выполнения.Понятно, что если удается добиться действительно сериальноговыполнения смеси транзакций, то для каждого пользователя, поинициативе которого образована транзакция, присутствие другихтранзакций будет незаметно (если не считать некоторого замедленияработы по сравнению с однопользовательским режимом).03.09.2009С.Д.
Кузнецов. Базы данных.71 Технология БД. ФунОсновные функции и компоненты СУБД (10)Функции СУБД (6). Управление транзакциями (3)Существует несколько базовых алгоритмов сериализациитранзакций.Наиболее распространены алгоритмы, основанные насинхронизационных блокировках объектов БД.При использовании любого алгоритма сериализациивозможны конфликты между двумя или более транзакциямипо доступу к объектам БД.В этом случае для поддержки сериализации необходимовыполнить откат (ликвидировать все изменения,произведенные в БД) одной или более транзакций.Это один из случаев, когда пользовательмногопользовательской СУБД может реально (и достаточнонеприятно) ощутить присутствие в системе транзакцийдругих пользователей.03.09.2009С.Д.
Кузнецов. Базы данных.72 Технология БД. ФунОсновные функции и компоненты СУБД (11)Функции СУБД (7). Журнализация (1)Одним из основных требований к СУБД является надежностьхранения данных во внешней памяти.Под надежностью хранения понимается то, что СУБД должна бытьв состоянии восстановить последнее согласованное состояние БДпосле любого аппаратного или программного сбоя.Обычно рассматриваются два возможных вида аппаратных сбоев:Примерами программных сбоев могут бытьмягкие сбои, которые можно трактовать как внезапную остановкуработы компьютера (например, аварийное выключение питания),и жесткие сбои, характеризуемые потерей информации на носителяхвнешней памяти.аварийное завершение работы СУБД (по причине ошибки в программеили в результате некоторого аппаратного сбоя)или аварийное завершение пользовательской программы, в результатечего некоторая транзакция остается незавершенной.Первую ситуацию можно рассматривать как особый вид мягкогоаппаратного сбоя; при возникновении последней требуетсяликвидировать последствия только одной транзакции.03.09.2009С.Д.
Кузнецов. Базы данных.73 Технология БД. ФунОсновные функции и компоненты СУБД (12)Функции СУБД (8). Журнализация (2)В любом случае для восстановления БД нужно располагатьнекоторой дополнительной информацией.Другими словами, для обеспечения надежного храненияданных в БД требуется хранение избыточных данных,причем та часть данных, которая используется длявосстановления БД, должна храниться особо надежно.Наиболее распространенным методом поддержания такойизбыточной информации является ведение журналаизменений БД.Журнал - это особая часть БД, недоступная пользователямСУБД и поддерживаемая с особой тщательностью(например, можно поддерживать две копии журнала,располагаемые на разных физических дисках), в которуюпоступают записи обо всех изменениях основной части БД.03.09.2009С.Д. Кузнецов. Базы данных.74 Технология БД.
ФунОсновные функции и компоненты СУБД (13)Функции СУБД (9). Журнализация (3)В разных СУБД изменения БД журнализуются на разных уровнях:иногда запись в журнале соответствует некоторой логической операцииизменения БД (например, операции удаления строки из таблицыреляционной БД),иногда - минимальной внутренней операции модификации страницывнешней памяти;в некоторых системах одновременно используются оба подхода.Во всех случаях принято придерживаться стратегии«упреждающей» записи в журнал (так называемого протокола WriteAhead Log – WAL).Грубо говоря, эта стратегия заключается в том, что запись обизменении любого объекта БД должна попасть во внешнюю памятьжурнала раньше, чем измененный объект попадет во внешнююпамять основной части БД.Известно, что если в СУБД корректно соблюдается протокол WAL,то с помощью журнала можно решить все проблемывосстановления БД после любого сбоя.03.09.2009С.Д.