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

1.1.1.
Пример нарушения целостности базы Для иллюстрации возможного нарушения целостности базы данных рассмотрим следующий пример.
Пример 1.
Пусть имеется система, в которой хранятся данные о подразделениях и работающих в них сотрудниках.
Список подразделений хранится в таблице DEPART (Dep_Id,
DepJName, DeptJECol), где Dept_Id идентификатор подразделения, Dept_Name наименование подразделения, Dept_Kol количество сотрудников в подразделении (см.
таблицу 1).
Список сотрудников хранится в таблице PERSON(Pers_Id, Pers_Name, Dept_Id)
(см.
таблицу 2), где Pers__Id идентификатор сотрудника, Pers_Name имя сотрудника, Dept_Id идентификатор подразделения, в котором работает сотрудник: Таблица 1 Список подразделений.
DEPART ■ Dept_Id DeptName ; Dept_Kol 'l Кафедра алгебры 3 •2 Кафедра программирования Таблица 2 Список сотрудников.
PERSON .
Pers_Id j Pers_Name j Deptld 1 1 Иванов j 1 2 1 Петров [ 2 ‘ 3 ) Сидоров j 1 г4 j Пушников 2 5 ; Шарипов ! 1 Ограничение целостности этой базы данных состоит в том, что поле Dept_Kol не может заполняться произвольными значениями это поле должно содержать количество сотрудников, реально числящихся в подразделении.
С учетом этого ограничения можно заключить, что вставка
10
[стр. 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]