1626434812-e667f6b6e7e69d3a0798830a58e9075b (844135), страница 6
Текст из файла (страница 6)
Время ожидания выполнения типичных запросов в таких системах не должно превышать нескольких секунд. Сфера применения таких систем — это системы платежей, резервирования мест в поездах, самолетах, гостиницах, банковские и биржевые системы. Логическая единица функционирования систем операционной обработки данных — транзакция. Транзакция — это некоторое законченное, с точки зрения пользователя, действие над базой данных. В современной литературе ~8~ для обозначения систем операционной обработки часто используют термин ОЕТР (Оп-Ьше Тгапзас1~оп Ргосейп8 — оперативная обработка транзакций или выполнение транзакций в режиме реального времени). Ниже мы определим понятие транзакции, рассмотрим, как происходит выполнение транзакций в 01 ТР-системах, как в них поддерживается целостность БД и какие средства используются для эффективного управления ресурсами в распределенных системах операционной обработки данных.
Другой класс информационных систем — системы поддержки принятия решений (аналитические системы) (91. Эти системы ориентированы на выполнение более сложных запросов, требующих статистической обработки исторических (накопленных за некоторый промежуток времени) данных, моделирования процессов предметной области, прогнозирования развития тех или иных явлений. Аналитические системы также часто включают средства обработки информации на основе методов искусственного интеллекта, средства графического представления данных. Эти системы оперируют большими объемами исторических данных, позволяя выделить из них содержательную информацию — получить знания из данных.
Современные требования к скорости и качеству анализа привели к появлению систем оперативной аналитической обработки (ОЬАР— Оп-Ьше Апа!уыв Ргосезз1пп). Оперативность обработки больших объемов данных в таких системах достигается за счет применения мощной, в том числе многопроцессорной вычислительной техники, сложных методов анализа, а также специальных хра- Глава 2. Системы обработки транзакиий нилищ данных, накапливающих информацию из различных источников за большой период времени и обеспечивающих быстрый доступ к ней. Оба класса систем основаны на СУБД, но типы выполняемых ими запросов сильно различаются.
Например, в 01 ТР-системе продажи железнодорожных билетов допустим такой запрос: "Есть ли свободное свободные места в купе поезда Москва-Сочи, отправляющегося 20 августа в 23.15?". В аналитической системе запрос может быть таким: "Каким будет объем продажи железнодорожных билетов в денежном выражении в следующие три месяца с учетом сезонных колебаний?". Принципиально отличаются и структуры баз данных для высокопроизводительных ОЬАР и ОЬТР систем. Эти отличия, а также особенности обработки данных в 01 ТР и ОЬАР системах будут рассмотрены далее. 2.2. Обработка транзакций в ОЬТР-системах Транзакцией называют неделимую с позиции воздействия на БД последовательность операций манипулирования данными.
Транзакция может состоять из операций чтения, удаления„вставки, модификации данных. В ОЬТР-системах транзакция реализует некоторое осмысленное, с точки зрения пользователя, действие, например, перевод денег со счета на счет в платежной системе банка, резервирование места в поезде системой оформления железнодорожных билетов. Традиционно понятие "обработка транзакций" использовалось применительно к крупномасштабным системам обработки данных — системам, осуществлявшим международные банковские операции и др. Теперь ситуация меняется, Информационные системы в различных областях человеческой деятельности становятся все более распределенными и неоднородными, в них остро стоят проблемы сохранения целостности данных и разграничения доступа.
Одно из направлений решения этих проблем — использование средств обслуживания транзакций в информационных системах. Чтобы использование механизмов обработки транзакций позволило обеспечить целостность данных и изолированность пользователей, транзакция должна обладать четырьмя основными свойствами: атомарности (а1огп1сйу), согласованности (сопа1йепсу), изолированности (1зо1а11оп), долговечности (4агаЬЙ1у). Транзакции, обладающие перечисленными свойствами, иногда называют АС1Р-транзакциями по первым буквам их английских названий.
Свойство атомарности означает, что транзакция должна выполняться как единая операция доступа к БД. Она должна быть выполнена полностью либо не выполнена совсем. То есть должны быть выполнены все операции манипулирования данными, которые входят в транзакцию, либо, если по каким-то причинам выпол- Базы оанных. Интеллектуальная обработка инфорл~аиии нение части операций невозможно, ни одна из опсраций не должна выполняться. Свойство атомарности обычно коротко выражают фразой: "все или ничего". Свойство согласованности гарантирует взаимную целостность данных, то есть выполнение ограничений целостности БД после окончания обработки транзакции. Следует отметить, что база данных может обладать такими ограничениями целостности, которые сложно не нарушить, выполняя только один оператор сс изменения.
Например, если в отношении А хранится число кортежей отношения В, то добавить новый кортеж в отношение В, не нарушив ограничений целостности. невозможно, Поэтому такое нарушение внутри транзакции допускается, но к моменту ес завершения база данных должна быть в целостном состоянии. Несоблюдение в системах со средствами контроля целостности этого условия приводит к отмене всех операции транзакции. В многопользовательских системах с одной БД одновременно могут работать несколько пользователей или прикладных программ. Поскольку каждая транзакция может изменять разделяемые данные, данные могут временно находиться в несогласованном состоянии.
Доступ к этим данным другим транзакциям должен быть запрещен, пока изменения не будут завершены. Свойство изолированности транзакций гарантирует, что они будут выполняться отдельно друг от друга. Свойство долговечности означает, что если транзакция выполнена успешно, то произведенные ею изменения в данных не будут потеряны ни при каких обстоятельствах. Результатом выполнения транзакции может быть ее фиксация или откат. Фиксация транзакции — это действие, обеспечивающее запись в БД всех изменений, которые были произведены в процессе ее выполнения. До того как транзакция зафиксирована, возможна отмена всех сделанных изменений н возврат базы данных в то состояние, в котором она была до начала выполнения транзакции.
Фиксация транзакции означает, что все результаты ее выполнения становятся видимыми другим транзакциям. Для фиксации транзакции необходимо успешное выполнение всех ее операторов. Если нормальное завершение транзакции невозможно, например, нарушены ограничения целостности БД, или пользователь выдал специальную команду, происходит откат транзакции. База данных возвращается в исходное состояние, все изменения аннулируются. Механизм корректного отката и фиксации транзакций основан на использовании журнала транзакций. Для того чтобы иметь возможность сделать откат, СУБД должна сохранять все изменения, которые транзакция внесла в БД. Однако необходимости каждый раз сохранять всю информацию базы данных нет.
Реляционные операции изменяют строки отношений БД, поэтому, чтобы обеспечить возможность отката, СУБД должна хранить те строки, которые были Глава 2. Системы обработки транзакций модифицированы. При выполнении любой операции, изменяющей базу данных, СУБД автоматически сохраняет в журнале транзакций состояние модифицируемых строк до операции и после нее. Только после этого изменения вносятся в БД, Если по окончании обработки транзакция фиксируется, то в журнале делается соответствующая отметка. Если же производится откат транзакции, то СУБД по журналу восстанавливает те строки отношений, которые были модифицированы, отменяя, таким образом, все изменения, Для того чтобы оперировать транзакцией как единой логической единицей, СУБД должна уметь определять ее границы, то есть первую и последнюю входящую в нее операции.
Стандарт языка Я)1 предусматривает следующий принцип выделения транзакции как некоторой законченной последовательности действий. Предполагается, что транзакция начинается с первого Я)1.-оператора, вводимого пользователем или содержащегося в прикладной программе. Все следующие далее операторы составляют тело транзакции. Тело транзакции завершается Ц1 -операторами СОММ1Т ЖОКК или КО1.1.ВАСК %ОКК. Выполнение транзакции заканчивается также при завершении программы, которая сгенерировала транзакцию.
Транзакция фиксируется, если ее тело оканчивается оператором СОММ1Т %ОКК, либо при успешном завершении программы, сформировавшей транзакцию. Откат транзакции производится при достижении оператора КОИ ВАСК ФОКК, либо в случае, когда приложение, сгенерировавшее транзакцию, завершилось с ошибкой, Возможные варианты завершения выполнения транзакции представлены на рис, 2.1. Рассмотрим пример транзакции„модифицирующей телефон ~атрибут РЬопе) сотрудника с фамилией (атрибут Хаше) "Петров" в отношении Отдел 10ерагппеп1). Транзакция завершается фиксацией по достижении оператора СОМ М1Т %ОКК. 13РРАТЕ Верагппеп1 ЯЕТ Р11опе = "5388" %НЕКЕ Наше = "Петров" СОММ1Т %ОКК Некоторые диалекты языка 8()1, например, диалект, принятый в СУБД ЯуЬаяе, включают специальные операторы, позволяющие производить промежуточную фиксацию транзакции. В теле транзакции могут быть определены точки, в которых сохраняется состояние базы данных.