Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Транзакции

Содержание

ОпределениеТранзакция – логически неделимая последовательность операторов, переводящая базу из одного согласованного состояния в другое согласованное состояние.
ТранзакцииГрафеева Н.Г.2015 ОпределениеТранзакция – логически неделимая последовательность операторов, переводящая базу из одного согласованного состояния в другое согласованное состояние. Пример(банковская транзакция) Основные свойства транзакций (ACID)Неделимость (Atomicity). Транзакция либо выполняется полностью, либо не выполняется.Согласованность Как реализуется механизм транзакций? Транзакции стартуютАвтоматически после редактирования данных базы (но не во всех СУБД…).После явного Транзакции завершаютсяПосле явного объявления о завершении транзакции соответствующим оператором.После завершения сеанса пользователя Операторы управления транзакцией (ORACLE)COMMIT [WORK]ROLLBACK [WORK]SAVEPOINT ROLLBACK TO SET TRANSACTION Пример BEGIN  COMMIT;  SAVEPOINT POINT1;     UPDATE Стандартное заблуждения при работе с транзакциямиЛюбую длинную транзакцию надо разбивать на части Пример (длинная транзакция) Пример (много коротких транзакций ) Когда разбиение на меньшие транзакции оправдано?При необходимости провести массовое обновление данных.При операциях Транзакции, ODBC и JDBC драйвераЭти функциональные интерфейсы по умолчанию выполняют Как вернуть контроль над транзакциями?Отказаться от фиксации транзакции по умолчанию. Например:connection conn11G Автономные транзакцииАвтономные транзакции позволяют создать новую транзакцию в пределах текущей,так что можно Использование автономных транзакцийДля фиксации динамических ошибок.Для аудита запрещенных попыток изменения данных.И т.д. Пример (создание процедуры c автономной транзакцией)  create or replace procedure LogInfo Домашнее задание 15(10 баллов) Создать приложение, демонстрирующее как разбиение транзакции (любого содержания,
Слайды презентации

Слайд 2 Определение
Транзакция – логически неделимая последовательность операторов, переводящая базу

ОпределениеТранзакция – логически неделимая последовательность операторов, переводящая базу из одного согласованного состояния в другое согласованное состояние.

из одного согласованного состояния в другое согласованное состояние.


Слайд 3 Пример(банковская транзакция)

Пример(банковская транзакция)

Слайд 4 Основные свойства транзакций (ACID)
Неделимость (Atomicity). Транзакция либо выполняется

Основные свойства транзакций (ACID)Неделимость (Atomicity). Транзакция либо выполняется полностью, либо не

полностью, либо не выполняется.
Согласованность (Consistency). Транзакция переводит базу данных

из одного согласованного состояния в другое.
Изолированность (Isolation). Результаты транзакции становятся доступны для других транзакций только после ее фиксации.
Продолжительность (Durability). После фиксации транзакции изменения становятся постоянными.

Слайд 5 Как реализуется механизм транзакций?

Как реализуется механизм транзакций?

Слайд 6 Транзакции стартуют
Автоматически после редактирования данных базы (но не

Транзакции стартуютАвтоматически после редактирования данных базы (но не во всех СУБД…).После

во всех СУБД…).
После явного объявления начала транзакции с помощью

операторов объявления транзакции.

Слайд 7 Транзакции завершаются
После явного объявления о завершении транзакции соответствующим

Транзакции завершаютсяПосле явного объявления о завершении транзакции соответствующим оператором.После завершения сеанса

оператором.
После завершения сеанса пользователя транзакцию фиксирует среда или инструментальное

средство (но не всегда…).

Слайд 8 Операторы управления транзакцией (ORACLE)
COMMIT [WORK]
ROLLBACK [WORK]
SAVEPOINT
ROLLBACK

Операторы управления транзакцией (ORACLE)COMMIT [WORK]ROLLBACK [WORK]SAVEPOINT ROLLBACK TO SET TRANSACTION

TO
SET TRANSACTION


Слайд 9 Пример
BEGIN
COMMIT;

SAVEPOINT POINT1;

Пример BEGIN COMMIT; SAVEPOINT POINT1;   UPDATE EMP SET SAL

UPDATE EMP SET SAL = 3000

WHERE EMPNO = 7902;

SAVEPOINT POINT2;
SELECT SUM(SAL) INTO varSum FROM EMP;
DBMS_OUTPUT.PUT_LINE('varSum1=' || varSum);

UPDATE EMP SET SAL = SAL + 1000 WHERE EMPNO = 7788;

SELECT SUM(SAL) INTO varSum FROM EMP;
DBMS_OUTPUT.PUT_LINE('varSum2=' || varSum);


IF varSum > 34000 THEN ROLLBACK TO POINT2; END IF;

COMMIT;
SELECT SUM(SAL) INTO varSum FROM EMP;
DBMS_OUTPUT.PUT_LINE('varSum3=' || varSum);

END

Слайд 10 Стандартное заблуждения при работе с транзакциями
Любую длинную транзакцию

Стандартное заблуждения при работе с транзакциямиЛюбую длинную транзакцию надо разбивать на

надо разбивать на части меньшего размера, чтобы она быстрее

исполнялась

Это не всегда так!!!!


Слайд 11 Пример (длинная транзакция)

Пример (длинная транзакция)

Слайд 12 Пример (много коротких транзакций )

Пример (много коротких транзакций )

Слайд 13 Когда разбиение на меньшие транзакции оправдано?
При необходимости провести

Когда разбиение на меньшие транзакции оправдано?При необходимости провести массовое обновление данных.При

массовое обновление данных.
При операциях вставки новых записей, если в

таблице имеется первичный ключ или ограничение целостности, определяющее уникальный атрибут.
При операциях удаления (если новые значения не зависят от старых).

Слайд 14 Транзакции, ODBC и JDBC драйвера
Эти функциональные интерфейсы по

Транзакции, ODBC и JDBC драйвераЭти функциональные интерфейсы по умолчанию выполняют

умолчанию выполняют "автоматическую
фиксацию транзакции". Например, если JDBC драйвер выполняет команды:

update accounts set balance = balance - 1000 where account_id = 123;
update accounts set balance = balance + 1000 where account_id = 456;

Фиксация транзакции будет происходить после каждой команды.

Слайд 15 Как вернуть контроль над транзакциями?
Отказаться от фиксации транзакции

Как вернуть контроль над транзакциями?Отказаться от фиксации транзакции по умолчанию. Например:connection

по умолчанию. Например:

connection conn11G = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:teacher", "scott", "tiger");
conn11G.setAutoCommlt (false);


Слайд 16 Автономные транзакции
Автономные транзакции позволяют создать новую транзакцию в

Автономные транзакцииАвтономные транзакции позволяют создать новую транзакцию в пределах текущей,так что

пределах текущей,
так что можно фиксировать или откатывать ее изменения

независимо от родительской
транзакции. Они позволяют приостановить текущую транзакцию, начать новую, выполнить ряд действий, зафиксировать их или откатить, не влияя на состояние текущей транзакции.

Слайд 17 Использование автономных транзакций
Для фиксации динамических ошибок.
Для аудита запрещенных

Использование автономных транзакцийДля фиксации динамических ошибок.Для аудита запрещенных попыток изменения данных.И т.д.

попыток изменения данных.
И т.д.


Слайд 18 Пример (создание процедуры c автономной транзакцией)
create

Пример (создание процедуры c автономной транзакцией) create or replace procedure LogInfo

or replace procedure LogInfo

( inInfoMessage in varchar2, inSource in varchar2 )
is
PRAGMA AUTONOMOUS_TRANSACTION;
begin
insert into debug_log(id, LogTime, Message)
values (seq_debug_log.nextval, sysdate, inInfoMessage, inSource);
commit;
exception
when others then
return;
end LogInfo;

  • Имя файла: tranzaktsii.pptx
  • Количество просмотров: 122
  • Количество скачиваний: 0