SlideShare a Scribd company logo
1 of 22
Транзакции в БД и клиент- 
серверные приложения 
Спецкурс ОмГУ-2014 
Занятие 8
Пример: в БД студентов нужно 
сменить старосту группы, не 
нарушая условие, что в каждый 
момент времени в группе 
ровно 1 староста. 
Спецкурс ОмГУ-2014 
Транзакции
Транзакция – группа 
последовательных операций, 
которая логически неделима, и 
выполняется целиком или не 
выполняется вовсе. 
Спецкурс ОмГУ-2014 
Транзакции
Atomicity (атомарность) – 
гарантирует, что транзакция 
фиксируется в системе только 
полностью (гарантируется 
СУБД). 
Спецкурс ОмГУ-2014 
Свойства транзакций
Consistency (согласованность) – 
если система находилась в 
согласованном состоянии до 
транзакции, то будет в этом 
состоянии и после фиксации 
транзакции (зависит от 
разработчиков). 
Спецкурс ОмГУ-2014 
Свойства транзакций
Isolation (изолированность) – 
гарантирует, что параллельно 
исполняющиеся транзакции могут 
видеть только разрешенные 
данные друг друга (гарантируется 
СУБД, управляется 
разработчиками). 
Спецкурс ОмГУ-2014 
Свойства транзакций
Durability (надежность) – 
гарантирует, что результат 
зафиксированной транзакции 
останется в системе даже после 
отключения питания 
(гарантируется СУБД). 
Спецкурс ОмГУ-2014 
Свойства транзакций
Параллельные транзакции 
MySQL server 
Спецкурс ОмГУ-2014 
Соединение (connection) 
Память
Спецкурс ОмГУ-2014 
Параллельные транзакции 
select * from 
student where id = 3; 
delete from 
student where id = 3;
Проблемы параллельных транзакций 
Non-repeatable read 
(неповторяемое чтение) – при 
повторном чтении данных в 
рамках транзакции они могут 
оказаться удаленными или 
измененными другой 
транзакцией. 
Спецкурс ОмГУ-2014
Проблемы параллельных транзакций 
Phantom reads (фантомное 
чтение) – при повторном чтении 
одних и тех же данных в рамках 
транзакции возможны отличия 
(новые строки, значения столбцов 
и т.д.). 
Спецкурс ОмГУ-2014
Проблемы параллельных транзакций 
Lost update (потерянное 
обновление) – при 
параллельном обновлении 
одних и тех же данных одно из 
обновлений теряется. 
Спецкурс ОмГУ-2014
Проблемы параллельных транзакций 
Dirty read («грязное» чтение) – 
чтение незафиксированных 
данных другой транзакции, 
которая в последствии 
откатится. 
Спецкурс ОмГУ-2014
Уровни изолированности транзакций 
Serializable (упорядоченный) – 
идентичен ситуации, когда все 
транзакции выполняются строго 
последовательно. Решает все 
упомянутые проблемы. 
Спецкурс ОмГУ-2014
Уровни изолированности транзакций 
Repeatable read (повторяемое 
чтение) – гарантирует 
повторяемость чтения, отсутствие 
«грязного» чтения и отсутствие 
потерянных обновлений. 
Возможны фантомные чтения. 
Спецкурс ОмГУ-2014
Уровни изолированности транзакций 
Read commited (чтение 
зафиксированных данных) – 
гарантирует отсутствие «грязного» 
чтения и потерянных обновлений. 
Возможны фантомные и 
неповторяемые чтения. 
Спецкурс ОмГУ-2014
Уровни изолированности транзакций 
Read uncommited (чтение 
незафиксированных данных) – 
гарантирует отсутствие 
потерянных обновлений. 
Возможны «грязные», фантомные 
и неповторяемые чтения. 
Спецкурс ОмГУ-2014
Уровни изолированности транзакций 
«+» - предотвращает, «-» - нет 
Спецкурс ОмГУ-2014
Соединения приложения с БД 
Спецкурс ОмГУ-2014 
Операция установления 
соединения с БД – очень 
«дорогая» по времени и 
ресурсам
Соединения приложения с БД 
Пул соединений (connection pool) 
– модуль, осуществляющий 
контроль за открытием, 
переиспользованием и закрытием 
подключений к БД 
Спецкурс ОмГУ-2014
Соединения приложения с БД 
Connection pool для Java: dbcp 
Спецкурс ОмГУ-2014
Спецкурс ОмГУ-2014 
Вопросы? 
Email: at@7bits.it 
Skype: anna_tarasenko 
Web: 7bits.ru

More Related Content

Viewers also liked

Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БДСтажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД7bits
 
Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)
Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)
Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)7bits
 
Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...
Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...
Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...7bits
 
Спецкурс 2014, занятие 6. Базы данных
Спецкурс 2014, занятие 6. Базы данныхСпецкурс 2014, занятие 6. Базы данных
Спецкурс 2014, занятие 6. Базы данных7bits
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 7
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 7Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 7
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 77bits
 
Стажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt up
Стажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt upСтажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt up
Стажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt up7bits
 
Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS3
Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS3Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS3
Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS37bits
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод7bits
 
This is a dedication to a lovely friend
This is a dedication to a lovely friendThis is a dedication to a lovely friend
This is a dedication to a lovely friendHoneyy P Freeman
 
Work-Life-Balance (By Arsalan Memon)
Work-Life-Balance (By Arsalan Memon)Work-Life-Balance (By Arsalan Memon)
Work-Life-Balance (By Arsalan Memon)Arsalan Memon
 
CASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓN
CASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓNCASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓN
CASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓNcirugiarinofacial
 
CASOS CLÍNICOS REJUVENECIMIENTO
CASOS CLÍNICOS REJUVENECIMIENTOCASOS CLÍNICOS REJUVENECIMIENTO
CASOS CLÍNICOS REJUVENECIMIENTOcirugiarinofacial
 
CASOS CLÍNICOS DE RINOPLASTÍA
CASOS CLÍNICOS DE RINOPLASTÍACASOS CLÍNICOS DE RINOPLASTÍA
CASOS CLÍNICOS DE RINOPLASTÍAcirugiarinofacial
 
Kegagalan Pendedahan Akta Pekerja 1955 di Malaysia
Kegagalan Pendedahan Akta Pekerja 1955 di MalaysiaKegagalan Pendedahan Akta Pekerja 1955 di Malaysia
Kegagalan Pendedahan Akta Pekerja 1955 di Malaysiaihsan ali satria
 
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.7bits
 
Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.7bits
 
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)7bits
 
Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-2013
Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-2013Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-2013
Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-20137bits
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 087bits
 
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)7bits
 

Viewers also liked (20)

Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БДСтажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
 
Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)
Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)
Стажировка-2013, разработчики, занятие 12. Базы данных (продолжение)
 
Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...
Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...
Стажировка-2013, разработчики, занятие 5. Исключительные ситуации, журналиров...
 
Спецкурс 2014, занятие 6. Базы данных
Спецкурс 2014, занятие 6. Базы данныхСпецкурс 2014, занятие 6. Базы данных
Спецкурс 2014, занятие 6. Базы данных
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 7
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 7Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 7
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 7
 
Стажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt up
Стажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt upСтажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt up
Стажировка-2013, общее, 13 занятие. Бизнес-модели, Lean Stsrt up
 
Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS3
Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS3Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS3
Стажировка-2014, занятие 7. Языки разметки, HTML5, CSS3
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
 
This is a dedication to a lovely friend
This is a dedication to a lovely friendThis is a dedication to a lovely friend
This is a dedication to a lovely friend
 
Work-Life-Balance (By Arsalan Memon)
Work-Life-Balance (By Arsalan Memon)Work-Life-Balance (By Arsalan Memon)
Work-Life-Balance (By Arsalan Memon)
 
CASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓN
CASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓNCASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓN
CASOS CLÍNICOS DE RINOPLASTÍA DE REVISIÓN
 
CASOS CLÍNICOS REJUVENECIMIENTO
CASOS CLÍNICOS REJUVENECIMIENTOCASOS CLÍNICOS REJUVENECIMIENTO
CASOS CLÍNICOS REJUVENECIMIENTO
 
CASOS CLÍNICOS DE RINOPLASTÍA
CASOS CLÍNICOS DE RINOPLASTÍACASOS CLÍNICOS DE RINOPLASTÍA
CASOS CLÍNICOS DE RINOPLASTÍA
 
Kegagalan Pendedahan Akta Pekerja 1955 di Malaysia
Kegagalan Pendedahan Akta Pekerja 1955 di MalaysiaKegagalan Pendedahan Akta Pekerja 1955 di Malaysia
Kegagalan Pendedahan Akta Pekerja 1955 di Malaysia
 
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
 
Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.Стажировка-2014, занятие 4. Планирование процесса тестирования.
Стажировка-2014, занятие 4. Планирование процесса тестирования.
 
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
Стажировка-2014, занятие 8. Обзор CakePHP framework (PHP)
 
Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-2013
Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-2013Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-2013
Стажировка-2013, дизайнеры, занятие 1. История веб-дизайна. Тренды-2013
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 08
 
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
 

Similar to Спецкурс 2014, занятие 8. Транзакции в БД

Транзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаТранзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаNikolay Gondin
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Базы данных лекция №9
Базы данных лекция №9Базы данных лекция №9
Базы данных лекция №9Vitaliy Pak
 
SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)
SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)
SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)Vitaliy Popovych
 
Software craftsmanship 2
Software craftsmanship 2Software craftsmanship 2
Software craftsmanship 2Pavel Veinik
 
вебинар транзакционные блокировки
вебинар транзакционные блокировкивебинар транзакционные блокировки
вебинар транзакционные блокировкиHelen Kopteva
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных системDima Dzuba
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014Andrey Korshikov
 
SE2016 Exotic Elena Morgun "GIL in different programming languages"
SE2016 Exotic Elena Morgun "GIL in different programming languages"SE2016 Exotic Elena Morgun "GIL in different programming languages"
SE2016 Exotic Elena Morgun "GIL in different programming languages"Inhacking
 

Similar to Спецкурс 2014, занятие 8. Транзакции в БД (12)

Транзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаТранзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практика
 
лекц5
лекц5лекц5
лекц5
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Базы данных лекция №9
Базы данных лекция №9Базы данных лекция №9
Базы данных лекция №9
 
SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)
SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)
SQL Saturday #377 Kyiv 2015 (Transaction log – how it works)
 
Software craftsmanship 2
Software craftsmanship 2Software craftsmanship 2
Software craftsmanship 2
 
Управление данными (транзакции)
Управление данными (транзакции)Управление данными (транзакции)
Управление данными (транзакции)
 
вебинар транзакционные блокировки
вебинар транзакционные блокировкивебинар транзакционные блокировки
вебинар транзакционные блокировки
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных систем
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014
 
SE2016 Exotic Elena Morgun "GIL in different programming languages"
SE2016 Exotic Elena Morgun "GIL in different programming languages"SE2016 Exotic Elena Morgun "GIL in different programming languages"
SE2016 Exotic Elena Morgun "GIL in different programming languages"
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 

More from 7bits

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? 7bits
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта7bits
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать7bits
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи 7bits
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE 7bits
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT7bits
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring7bits
 
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBCКурс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBC7bits
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP7bits
 
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mockКурс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mock7bits
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web7bits
 
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточностьКурс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточность7bits
 
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекцииКурс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции7bits
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java7bits
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub7bits
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics7bits
 
курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения7bits
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven7bits
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию7bits
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий7bits
 

More from 7bits (20)

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring
 
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBCКурс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBC
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP
 
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mockКурс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mock
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
 
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточностьКурс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточность
 
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекцииКурс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
 
курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию
 
Спецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версийСпецкурс-2015. Занятие 05. Системы контроля версий
Спецкурс-2015. Занятие 05. Системы контроля версий
 

Спецкурс 2014, занятие 8. Транзакции в БД

  • 1. Транзакции в БД и клиент- серверные приложения Спецкурс ОмГУ-2014 Занятие 8
  • 2. Пример: в БД студентов нужно сменить старосту группы, не нарушая условие, что в каждый момент времени в группе ровно 1 староста. Спецкурс ОмГУ-2014 Транзакции
  • 3. Транзакция – группа последовательных операций, которая логически неделима, и выполняется целиком или не выполняется вовсе. Спецкурс ОмГУ-2014 Транзакции
  • 4. Atomicity (атомарность) – гарантирует, что транзакция фиксируется в системе только полностью (гарантируется СУБД). Спецкурс ОмГУ-2014 Свойства транзакций
  • 5. Consistency (согласованность) – если система находилась в согласованном состоянии до транзакции, то будет в этом состоянии и после фиксации транзакции (зависит от разработчиков). Спецкурс ОмГУ-2014 Свойства транзакций
  • 6. Isolation (изолированность) – гарантирует, что параллельно исполняющиеся транзакции могут видеть только разрешенные данные друг друга (гарантируется СУБД, управляется разработчиками). Спецкурс ОмГУ-2014 Свойства транзакций
  • 7. Durability (надежность) – гарантирует, что результат зафиксированной транзакции останется в системе даже после отключения питания (гарантируется СУБД). Спецкурс ОмГУ-2014 Свойства транзакций
  • 8. Параллельные транзакции MySQL server Спецкурс ОмГУ-2014 Соединение (connection) Память
  • 9. Спецкурс ОмГУ-2014 Параллельные транзакции select * from student where id = 3; delete from student where id = 3;
  • 10. Проблемы параллельных транзакций Non-repeatable read (неповторяемое чтение) – при повторном чтении данных в рамках транзакции они могут оказаться удаленными или измененными другой транзакцией. Спецкурс ОмГУ-2014
  • 11. Проблемы параллельных транзакций Phantom reads (фантомное чтение) – при повторном чтении одних и тех же данных в рамках транзакции возможны отличия (новые строки, значения столбцов и т.д.). Спецкурс ОмГУ-2014
  • 12. Проблемы параллельных транзакций Lost update (потерянное обновление) – при параллельном обновлении одних и тех же данных одно из обновлений теряется. Спецкурс ОмГУ-2014
  • 13. Проблемы параллельных транзакций Dirty read («грязное» чтение) – чтение незафиксированных данных другой транзакции, которая в последствии откатится. Спецкурс ОмГУ-2014
  • 14. Уровни изолированности транзакций Serializable (упорядоченный) – идентичен ситуации, когда все транзакции выполняются строго последовательно. Решает все упомянутые проблемы. Спецкурс ОмГУ-2014
  • 15. Уровни изолированности транзакций Repeatable read (повторяемое чтение) – гарантирует повторяемость чтения, отсутствие «грязного» чтения и отсутствие потерянных обновлений. Возможны фантомные чтения. Спецкурс ОмГУ-2014
  • 16. Уровни изолированности транзакций Read commited (чтение зафиксированных данных) – гарантирует отсутствие «грязного» чтения и потерянных обновлений. Возможны фантомные и неповторяемые чтения. Спецкурс ОмГУ-2014
  • 17. Уровни изолированности транзакций Read uncommited (чтение незафиксированных данных) – гарантирует отсутствие потерянных обновлений. Возможны «грязные», фантомные и неповторяемые чтения. Спецкурс ОмГУ-2014
  • 18. Уровни изолированности транзакций «+» - предотвращает, «-» - нет Спецкурс ОмГУ-2014
  • 19. Соединения приложения с БД Спецкурс ОмГУ-2014 Операция установления соединения с БД – очень «дорогая» по времени и ресурсам
  • 20. Соединения приложения с БД Пул соединений (connection pool) – модуль, осуществляющий контроль за открытием, переиспользованием и закрытием подключений к БД Спецкурс ОмГУ-2014
  • 21. Соединения приложения с БД Connection pool для Java: dbcp Спецкурс ОмГУ-2014
  • 22. Спецкурс ОмГУ-2014 Вопросы? Email: at@7bits.it Skype: anna_tarasenko Web: 7bits.ru