Проверяемый текст
Пушников А.Ю. Введение в системы управления базами данных. Учебное пособие / Изд-е Башкирского ун-та. - Уфа, 1999.
[стр. 78]

данных, кажется, что они работают как бы в однопользовательской системе и не мешают друг другу.
2.1.1 Пример нарушения целостности базы Для иллюстрации возможного нарушения целостности базы данных рассмотрим следующий пример.
Пример 1.
Пусть имеется система, в которой хранятся данные о подразделениях и работающих в них сотрудниках.
Список подразделений хранится в таблице DEPART (Dep_Id, Dep_Name, Dept_Kol), где Dept_Id идентификатор подразделения,
DeptName наименование подразделения, Dept_Kol количество сотрудников в подразделении.
Список сотрудников хранится в таблице PERSON(Pers_Id, Pers_Name, Dept_Id), где
Pers_ld идентификатор сотрудника, Pers Name имя сотрудника, Dept Id идентификатор подразделения, в котором работает сотрудник: Таблица 5 DEPART D e p t l d D e p t N a m e DeptJKol 1 Кафедра ал гебры 3 г 2 Кафедра программирован ия 2 Таблица 6 PERSON Pers_Id P e r s N a m e Dept Id 1 Иванов 1 i 2 Петров 2 ; 3 Сидоров 1 4 Пушников 2 5 [ Шарипов 1 Ограничение целостности этой базы данных состоит в том, что поле Dept_Kol не может заполняться произвольными значениями это поле должно содержать количество сотрудников, реально числящихся в
[стр. 129]

В данной главе, являющейся иллюстрацией к методам ER-моделирования, не рассмотрены более сложные аспекты построения диаграмм, такие как подтипы, роли, исключающие связи, непереносимые связи, идентифицирующие связи и т.п.
Глава 9.
Транзакции и целостность баз данных В данной и в последующих главах изучается фундаментальное понятие транзакции.
Это понятие не входит в реляционную модель данных, т.к.
транзакции рассматриваются не только в реляционных СУБД, но и в СУБД других типов, а также и в других типах информационных систем.
Транзакция это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными.
Для пользователя транзакция выполняется по принципу "все или ничего", т.е.
либо транзакция выполняется целиком и переводит базу данных из одного целостного состояния в другое целостное состояние, либо, если по каким-либо причинам, одно из действий транзакции невыполнимо, или произошло какое-либо нарушение работы системы, база данных возвращается в исходное состояние, которое было до начала транзакции (происходит откат транзакции).
С этой точки зрения, транзакции важны как в многопользовательских, так и в однопользовательских системах.
В однопользовательских системах транзакции это логические единицы работы, после выполнения которых база данных остается в целостном состоянии.
Транзакции также являются единицами восстановления данных после сбоев восстанавливаясь, система ликвидирует следы транзакций, не успевших успешно завершиться в результате программного или аппаратного сбоя.
Эти два свойства транзакций определяют атомарность (неделимость) транзакции.
В многопользовательских системах, кроме того, транзакции служат для обеспечения изолированной работы отдельных пользователей пользователям, одновременно работающим с одной базой данных, кажется, что они работают как бы в однопользовательской системе и не мешают друг другу.
Пример нарушения целостности базы Для иллюстрации возможного нарушения целостности базы данных рассмотрим следующий пример: Пример 1.
Пусть имеется система, в которой хранятся данные о подразделениях и работающих в них сотрудниках.
Список подразделений хранится в таблице DEPART(Dep_Id, Dep_Name, Dept_Kol), где Dept_Id идентификатор подразделения,
Dept_Name наименование подразделения, Dept_Kol количество сотрудников в подразделении.
Список сотрудников хранится в таблице PERSON(Pers_Id, Pers_Name, Dept_Id), где
Pers_Id идентификатор

[стр.,130]

сотрудника, 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.
Транзакция это последовательность операторов манипулирования данными, выполняющаяся как единое целое (все или ничего) и переводящая базу данных из одного целостного состояния в другое целостное состояние.
Транзакция обладает четырьмя важными свойствами, известными как свойства АСИД:  (А) Атомарность.
Транзакция выполняется как атомарная операция либо выполняется вся транзакция целиком, либо она целиком не выполняется.
 (С) Согласованность.
Транзакция переводит базу данных из одного согласованного (целостного) состояния в другое согласованное (целостное) состояние.
Внутри транзакции согласованность базы данных может нарушаться.
 (И) Изоляция.
Транзакции разных пользователей не должны мешать друг другу (например, как если бы они выполнялись строго по очереди).

[Back]