4. Базы данных. Транзакции. Триггеры и хранимые процедуры | Технострим HD
Слайды лекции: https://bozaro.github.io/tech-db-lectures/04/ ► Другие лекции курса: https://www.youtube.com/playlist?list=PLrCZzMib1e9oOFQbuOgjKYbRUoA8zGKnj Подробнее о курсе: https://park.mail.ru/curriculum/program/discipline/218/ Лекция читается в рамках образовательного проекта "Технопарк Mail.ru Group" при МГТУ им.Баумана. КРАТКОЕ СОДЕРЖАНИЕ: Лекция посвящена транзакциям, триггерам и хранимым процедурам. Хронометраж: 00:00:05 О теме лекции 00:00:20 Введение в транзакции 00:01:34 ACID - требования к транзакционной системе 00:02:03 Atomicity - Атомарность 00:02:53 Consistency - Согласованность 00:03:35 Isolation - Изолированность 00:04:01 Durability - Долговечность 00:05:28 Как выглядят транзакции (синтаксически)? Пример транзакции 00:06:22 Для чего нужна транзакционная система? 00:07:10 Журнал транзакций (долговечность и атомарность) 00:08:15 Две проблемы устройств хранения информации 00:09:57 Общий алгоритм работы с журналом транзакций 00:11:20 Что происходит в случае сбоя? 00:14:15 Важное ограничение: минимальное время транзакции 00:14:40 Вопрос из зала: что произойдет если сбой случится во время сброса данных на диск? 00:15:40 IOPS - количество записей операций на устройство хранения в секунду 00:16:44 Несколько способов сократить время записи на устройство хранения 00:22:23 Журнал транзакций еще один момент (резервная копия журнала транзакций) 00:23:40 Вопрос из зала: как долго хранится журнал транзакций? 00:23:53 Point in time recovery и Репликация 00:25:19 Два подхода к изолированности (Isolation) 00:26:34 MVCC (мультиверсионность) 00:40:10 Слайд с Блокировками 00:44:23 Уровни изолированности транзакций 00:47:22 Потерянное обновление (Lost Update) (см. слайд с блокировками) 00:51:33 "Грязное" чтение (Dirty Read) 00:53:52 Неповторяющееся чтение (Non-Repeatable Read) 00:55:42 Чтение "фантомов" (Phantom Reads) 00:58:04 Аномалии сериализации (Serializable) 01:05:08 Случай из практики 01:06:43 Требования к размеру транзакций, транзакции на чтение 01:08:59 Хранимые процедуры 01:10:23 Хранимые процедуры в PostgreSQL 01:13:37 Плюсы хранимых процедур 01:14:58 Минусы хранимых процедур 01:16:22 Хранимые процедуры: пример 01:17:27 Поддержка нескольких языков для хранимых процедур в PostgreSQL 01:18:28 Язык PL/pgSQL 01:20:51 Триггеры 01:25:12 Триггеры: переменные 01:27:19 Триггеры: пример 01:31:27 XA-транзакции (распределенные транзакции) 01:34:04 Три роли, участвующие в распределенной транзакции 01:38:38 XA-транзакции: пример 01:41:09 Плюсы распределенных транзакций 01:42:01 Минусы распределенных транзакций 01:46:16 Персистентные очереди 01:57:55 Плюсы персистентных очередей 02:00:35 Минусы персистентных очередей ------------------------ ЦЕЛЬ КУРСА: Знать: - Концепция и принципы реляционной модели данных - Методы проектирования баз данных – Методику построения запросов - Подходы к профилированию производительности – Методику оптимизации запросов к БД MySQL – Подходы к администрированию хранилища данных на основе БД MySQL