Навигация
Главная
 
Главная arrow Банковское дело arrow Информационные технологии в банках - Страхарчук АЯ
Предыдущая   СОДЕРЖАНИЕ   Следующая

244 Особенности технологий баз данных

На практике доступ к базе данных зачастую имеет одна программа (один пользователь) Однако бывают ситуации, когда одновременно (параллельно) выполняется несколько программ или несколько прогонов одной и той же прогр рамы В системе продажи проездных билетов, например, продавать билеты и изменять таким образом количество мест могут одновременно несколько агентов Здесь следует позаботиться о правилах, регулирующих д оступ к базе данных двух или более программ, в противном случае не исключена возможность продажи билетов на одно и то же место двум пассажирам Таким образом, не следует допускать параллельного выполнения двух о процессов, которые читают и изменяют значение одного и того же объекта Аналогичный пример можно привести с платежной технологии по переводу денежных средств с одного счета на другойінший.

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

Одним из способов избежания параллельного чтения и изменения одного и того же объекта является блокирование отдельных элементов базы База данных разбивается на отдельные части, которые можно блокировать Блокируя определенную части ину, трансакция (разовый"прогон"программы) может препятствовать доступу других транзакций к этой части базы до того момента, пока она не разблокирует ее Функциональный компонент СУБД (управление Блокировка нням) назначает и регистрирует блокировки, а также играет роль арбитра между двумя (и более) запросами на блокировку одной и той же части базы данных Элементами блокировки в реляционной модели данных могу во быть отдельные компоненты кортежей, отдельные кортежи, блок кортежей и даже отношениеення.

Чтобы убедиться в необходимости блокировки элементов базы данных, рассмотрим две сделки - Т1, и Т2 Каждая из них осуществляет доступ к элементу А и увеличивает его значение на единицу Обе трансакции являются"прогоном"программы РР:

Значение А содержится в базе данных Программа Р читает (Read) значение А в свое рабочее пространство, добавляет к нему единицу и записывает (Write) результат

А в базу данных В табл 227 приведены эти трансакции и соответствующие значения А в базе данных на каждом шаге выполнения транзакций

Таблица 227

Сделки, демонстрирующие необходимость блокировки элемента А

Значение А в базе данных

7

7

7

7

8

8

Трансакция Т1

Трансакция Т2

Значение А в рабочем пространстве Т1

Значение А в рабочем пространстве Т2

Read А

7

Read А

7

7

A: = A 1

8

7

А: = А 1

8

8

Write А

8

8

Write А

8

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

Решение этой проблемы - в обеспечении блокировку элемента А Перед тем как прочитать А, транзакция Т имеет его блокировать, что позволит предотвратить доступ второго трансакции к нему, пока Тх не завершит работу с А Программу Р с блокировкой элемента А можно представить следующим образомом:

Р: Lock A; Read А, А: = А 1; Write A; Unlock А

Если Т1 и Т2 - два исполнения программы Р и первой начинается Т1, то она начинается с блокирования А Система предоставляет это блокирование с условием, что другая транзакция не заблокировала А, тогда транзакция Т1 (и только е она одна) получает доступ кА.

Если Т2 начинается до завершения Т1 то как только Т2 попытается выполнить команду Блокировать A (Lock А), система заставит ее ждать до выполнения первой трансакции команды Разблокировать A (Unlock А) Только п после этого система позволит выполнения транзакции Т2 Таким образом, аномалия, показана в табл 227, не может иметь места, поскольку одна из транзакций, Т1 или Т2, будет выполнена полностью перед тем, как по чнеться друга, а их общим результатом будет увеличение А на дв два.

К этому времени предполагалось, что каждая транзакция выполняется удачно вплоть до своего логического завершения На практике, однако, разные обстоятельства могут помешать ее завершению:

• по тем или иным причинам, связанных с оборудованием или программным обеспечением, может произойти отказ системы, в этом случае все активные транзакции не могут завершиться Отказы системы породжуют во серьезные проблемы - нужно не только найти множество транзакций, работу которых надо"аннулировать\", чтобы вернуть систему в прежнее состояние, но и убедиться в том, что есть какой-то способ восстановления такого в состояния; • выполнение транзакции может быть принудительно завершен еще до ее завершения (деление на ноль и т.д.) В связи с этим следует предусматривать периодическое копирование базы данных, служебная программа для копиров Ання должна сама быть сделкой с блокировкой данных Следует сохранять на диске историю (журнал) всех изменений в базе данных Записи журнала, как правило, включают: уникальный номер транзакции, повлекшая с мины в базе данных; предыдущие значения элементов базы, новые значения элементов тощтощо.

 
Предыдущая   СОДЕРЖАНИЕ   Следующая
 
Дисциплины
Банковское дело
БЖД
Бухучет и Аудит
География
Документоведение
Экология
Экономика
Этика и Эстетика
Журналистика
Инвестирование
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Медицина
Менеджмент
Педагогика
Политология
Политэкономия
Право
Естествознание
Психология
Религиоведение
Риторика
РПС
Социология
Статистика
Страховое дело
Товароведение
Туризм
Философия
Финансы