Навігація
Головна
ПОСЛУГИ
Авторизація/Реєстрація
Реклама на сайті
Тема: Методологічні особливості розвитку технології професіоналізмуМОДЕЛІ, ТЕХНОЛОГІЇ ТА КУРСОВІ ОСОБЛИВОСТІ НАВЧАННЯ ГЕОГРАФИОсобливості розробки продукту та вибору технологічного процесу у...Енергозберігаюча, екологічно безпечна технологія вирощування...Принципи формування технологій вирощування сільськогосподарських...Екстенсивні технологіїОснови Web-дизайну. Особливості технологіїМОДЕЛІ, ТЕХНОЛОГІЇ ТА КУРСОВІ ОСОБЛИВОСТІ НАВЧАННЯ ГЕОГРАФІЇТехнології та методи навчання у сучасній вищій школіОсобливості технологій впливу на свідомість у неокультах
 
Головна arrow Банківська справа arrow Інформаційні системи і технології в банках
< Попередня   ЗМІСТ   Наступна >

Особливості технологій баз даних

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

Іншим прикладом може бути база даних перепису населення. До такої бази даних одночасно можуть звертатися кілька користувачів, оскільки при цьому жоден з них не змінює даних, користувачі лише читають їх. У схожих ситуаціях, коли здійснюється лише читання, для економії часу бажано максимально використовувати паралельні операції. У зв'язку з цим технологія баз даних вимагає опису доступу до її елементів (доцільність доступу, що дозволяє виконувати паралельні операції лише в тому разі, коли вони зберігають цілісність бази даних, і заборона паралельності операцій, коли вони порушують цілісність бази даних).

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

Щоб переконатися в необхідності блокування елементів бази даних, розглянемо дві трансакції – Т1, і Т2. Кожна з них здійснює доступ до елемента А і збільшує його значення на одиницю. Обидві трансакції є "прогоном" програми Р:

Значення А міститься в базі даних. Програма Р читає (Read) значення А у свій робочий простір, додає до нього одиницю і записує (Write) результат

А у базу даних. У табл. 2.27 наведено ці трансакції і відповідні значення А в базі даних на кожному кроці виконання трансакцій.

Таблиця 2.27

Трансакції, що демонструють необхідність блокування елемента А

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

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. Таким чином, аномалія, що показана в табл. 2.27, не може мати місця, оскільки одна із трансакцій, Т1 або Т2, буде виконана повністю перед тим, як почнеться друга, а їх спільним результатом буде збільшення А на два.

До цього часу передбачалося, що кожна трансакція виконується вдало аж до свого логічного завершення. На практиці, однак, різні обставини можуть перешкодити її завершенню:

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

 
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter
< Попередня   ЗМІСТ   Наступна >
 
Дисципліни
Агропромисловість
Банківська справа
БЖД
Бухоблік та Аудит
Географія
Документознавство
Екологія
Економіка
Етика та Естетика
Журналістика
Інвестування
Інформатика
Історія
Культурологія
Література
Логіка
Логістика
Маркетинг
Медицина
Менеджмент
Нерухомість
Педагогіка
Політологія
Політекономія
Право
Природознавство
Психологія
Релігієзнавство
Риторика
РПС
Соціологія
Статистика
Страхова справа
Техніка
Товарознавство
Туризм
Філософія
Фінанси