Проверяемый текст
(Диссертация 2004)
[стр. 57]

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

Однако особое значение это имеет для многопользовательских систем и, в частности, информационнообразовательных сред, используемых в дистанционном обучении.
Транзакции также являются единицами восстановления данных после сбоев восстанавливаясь, система ликвидирует следы транзакций, не успевших успешно завершиться в результате программного или аппаратного сбоя
[61, 66].
Эти два свойства транзакций определяют атомарность (неделимость) транзакции.
В многопользовательских системах, кроме того, транзакции служат для обеспечения изолированной работы отдельных пользователей пользователям, одновременно работающим с одной базой данных, кажется, что они работают как бы в однопользовательской системе и не мешают друг другу.

Это преимущество также используется при дистанционном обучении.
2.1.1.
Понятие транзакции Транзакция это последовательность операторов манипулирования данными, выполняющаяся как единое целое и переводящая базу данных из одного целостного состояния в другое целостное состояние.
Транзакция обладает четырьмя важными свойствами, известными как свойства АСИД
[38,77]: «(А) Атомарность.
Транзакция выполняется как атомарная операция либо выполняется вся транзакция целиком, либо она целиком не выполняется.

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

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


[стр.,149]

Этот оператор позволяет создавать утверждения т.е.
ограничения, не являющиеся частью определения домена, колонки или таблицы.
Предикат CHECK, входящий в определение утверждения, может быть достаточно сложным и содержать ссылки на несколько таблиц.
Пример 20.
CREATE ASSERTION Check_Pay CHECK (Salespeaple.Salary IS NOT NULL) OR (Salespeaple.Commission IS NOT NULL) DEFERRABLE INITIALLY IMMEDIATE DROP ASSERTION Имя утверждения Этот оператор позволяет удалять имеющееся утверждение.
COMMIT WORK Этот оператор фиксирует транзакцию.
При этом проверяются все отложенные до конца транзакции ограничения.
Если одно из ограничений не выполняется, то транзакция откатывается.
SET CONSTRAINT {Имя ограничения.,..
ALL} {DEFERRED IMMEDIATE} Этот оператор позволяет во время выполнения транзакции менять момент проверки всех (ALL) или некоторых ограничений.
Этот оператор действует только на ограничения, определенные как DEFERRABLE (потенциально откладываемые).
Если ограничение A находилось в состоянии IMMEDIATE (немедленно проверяемое), то оператор SET CONSTRAINT A DEFERRED переводит его в состояние DEFERRED (с отложенной проверкой) и тогда все операции, потенциально могущие нарушить это ограничение, будут выполняться без проверки.
Проверка будет произведена в конце транзакции или в момент подачи команды SET CONSTRAINT A IMMEDIATE.
Выводы Транзакция это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными, выполняющаяся по принципу "все или ничего", и переводящая базу данных из одного целостного состояния в другое целостное состояние.
Транзакция обладает четырьмя важными свойствами, известными как свойства АСИД:
 (А) Атомарность.
 (С) Согласованность.
 (И) Изоляция.
 (Д) Долговечность.
База данных находится в согласованном состоянии, если для этого состояния выполнены все ограничения целостности.
Ограничение целостности это некоторое утверждение, которое может быть истинным или ложным в зависимости от состояния базы данных.
Ограничения целостности классифицируются несколькими способами:

[Back]