Главная страница
Навигация по странице:

  • Dept_Id Dept_Name Dept_Kol

  • Таблица 1 DEPART Pers_Id

  • Таблица 2 PERSON

  • Введение в системы управления баз данных. !Пушников Введение в системы управления базами данных. В системы управления базами данных 2 Оглавление 2 Глава


    Скачать 2.18 Mb.
    НазваниеВ системы управления базами данных 2 Оглавление 2 Глава
    АнкорВведение в системы управления баз данных
    Дата04.02.2020
    Размер2.18 Mb.
    Формат файлаdoc
    Имя файла!Пушников Введение в системы управления базами данных.doc
    ТипДокументы
    #107076
    страница18 из 26
    1   ...   14   15   16   17   18   19   20   21   ...   26

    Глава 9. Транзакции и целостность баз данных


    В данной и в последующих главах изучается фундаментальное понятие транзакции. Это понятие не входит в реляционную модель данных, т.к. транзакции рассматриваются не только в реляционных СУБД, но и в СУБД других типов, а также и в других типах информационных систем.

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

    Пример нарушения целостности базы


    Для иллюстрации возможного нарушения целостности базы данных рассмотрим следующий пример:

    Пример 1. Пусть имеется система, в которой хранятся данные о подразделениях и работающих в них сотрудниках. Список подразделений хранится в таблице DEPART(Dep_Id, Dep_Name, Dept_Kol), где Dept_Id - идентификатор подразделения, Dept_Name - наименование подразделения, Dept_Kol - количество сотрудников в подразделении. Список сотрудников хранится в таблице PERSON(Pers_Id, Pers_Name, Dept_Id), где Pers_Id - идентификатор сотрудника, Pers_Name - имя сотрудника, Dept_Id - идентификатор подразделения, в котором работает сотрудник:

    Dept_Id

    Dept_Name

    Dept_Kol

    1

    Кафедра алгебры

    3

    2

    Кафедра программирования

    2

    Таблица 1 DEPART

    Pers_Id

    Pers_Name

    Dept_Id

    1

    Иванов

    1

    2

    Петров

    2

    3

    Сидоров

    1

    4

    Пушников

    2

    5

    Шарипов

    1

    Таблица 2 PERSON

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

    С учетом этого ограничения можно заключить, что вставка нового сотрудника в таблицу не может быть выполнена одной операцией. При вставке нового сотрудника необходимо одновременно увеличить значение поля Dept_Kol:

    • Шаг 1. Вставить сотрудника в таблицу PERSON: INSERT INTO PERSON (6, Муфтахов, 1)

    • Шаг 2. Увеличить значение поля Dept_Kol: UPDATE DEPART SET Dept=Dept+1 WHERE Dept_Id=1

    Если после выполнения первой операции и до выполнения второй произойдет сбой системы, то реально будет выполнена только первая операция и база данных остается в нецелостном состоянии.
    1   ...   14   15   16   17   18   19   20   21   ...   26


    написать администратору сайта