ИК Базы данных. Урок 6. Презентация

Содержание

Слайд 2

Транзакции

Транзакции
Ключевые слова COMMIT и ROLLBACK
Точки сохранения
Режим автозавершения транзакций
Принцип ACID
Уровни изоляции


Транзакции Транзакции Ключевые слова COMMIT и ROLLBACK Точки сохранения Режим автозавершения транзакций Принцип ACID Уровни изоляции

Слайд 3

Транзакции


Состояние базы до транзакции

Состояние базы после транзакции

SELECT

UPDATE

DELETE

INSERT

SELECT

UPDATE

DELETE

Программная ошибка

SELECT

UPDATE

Аппаратный сбой

Транзакции Состояние базы до транзакции Состояние базы после транзакции SELECT UPDATE DELETE

Слайд 4

Перемещение денежных средств


1

4

5000

id

user_id

total

2

3

0

3

2

200

4

NULL

25000

1

4

3000

id

user_id

total

2

9

0

3

2

200

4

4

27000

Перемещение денежных средств 1 4 5000 id user_id total 2 3 0

Слайд 5

Перевод средств


Убедиться, что остаток на счете клиента больше 2000 рублей
Вычесть 2000

Перевод средств Убедиться, что остаток на счете клиента больше 2000 рублей Вычесть
рублей со счета клиента
Добавить 2000 к счету интернет-магазина

Слайд 6

Необратимые команды


CREATE INDEX
DROP INDEX
CREATE TABLE
DROP TABLE
TRUNCATE TABLE
ALTER TABLE

RENAME TABLE
CREATE DATABASE
DROP DATABASE
ALTER

Необратимые команды CREATE INDEX DROP INDEX CREATE TABLE DROP TABLE TRUNCATE TABLE
DATABASE

Слайд 7

Неявное завершение транзакций


ALTER TABLE
BEGIN
CREATE INDEX
CREATE TABLE
CREATE DATABASE
DROP DATABASE
DROP INDEX
DROP TABLE

DROP DATABASE
LOAD

Неявное завершение транзакций ALTER TABLE BEGIN CREATE INDEX CREATE TABLE CREATE DATABASE
MASTER DATA
LOCK TABLES
RENAME
SET AUTOCOMMIT=1
START TRANSACTION
TRUNCATE TABLE

Слайд 8

Точки сохранения


Состояние базы до транзакции

Состояние базы после транзакции

SELECT

DELETE

INSERT

SELECT

SAVEPOINT

DELETE

Программная ошибка

SAVEPOINT

Точки сохранения Состояние базы до транзакции Состояние базы после транзакции SELECT DELETE

Слайд 9

Команды для точек сохранения

SAVEPOINT
ROLLBACK TO SAVEPOINT


Команды для точек сохранения SAVEPOINT ROLLBACK TO SAVEPOINT

Слайд 10

ACID

Atomicy — атомарность
Consistency — согласованность
Isolation — изолированность
Durability — сохраняемость


ACID Atomicy — атомарность Consistency — согласованность Isolation — изолированность Durability — сохраняемость

Слайд 11

Уровни изоляции

READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE


Уровни изоляции READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE

Слайд 12

Базы данных

Транзакции. Переменные. Временные таблицы. Prepared-выражения. Представления.


Урок 6

Базы данных Транзакции. Переменные. Временные таблицы. Prepared-выражения. Представления. Урок 6

Слайд 13

Внутренняя реализация транзакций

Взаимоблокировка
Журнал транзакций
Управление режимом сохранения транзакций
MVCC
Связь MVCC с уровнями изоляции


Внутренняя реализация транзакций Взаимоблокировка Журнал транзакций Управление режимом сохранения транзакций MVCC Связь MVCC с уровнями изоляции

Слайд 14

Журнал транзакций


Журнал транзакций

Журнал транзакций Журнал транзакций

Слайд 15

Управление режимом сохранения журнала транзакций

0 — сохранение журнала раз в секунду
1 —

Управление режимом сохранения журнала транзакций 0 — сохранение журнала раз в секунду
сохранение после каждой транзакции
2 — сохранение журнала раз в секунду и после каждой транзакции


innodb_flush_log_at_trx_commit

Слайд 16

MVCC


2

1

3

4

MVCC 2 1 3 4

Слайд 17

Уровни изоляции и MVCC

READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE


Уровни изоляции и MVCC READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE

Слайд 18

Базы данных

Транзакции. Переменные. Временные таблицы. Prepared-выражения. Представления.


Урок 6

Базы данных Транзакции. Переменные. Временные таблицы. Prepared-выражения. Представления. Урок 6

Слайд 19

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

Пользовательские переменные
Системные переменные
Временные таблицы
Динамические запросы


Переменные, временные таблицы и динамические запросы Пользовательские переменные Системные переменные Временные таблицы Динамические запросы

Слайд 20

Типы системных переменных

GLOBAL — глобальные
SESSION — сеансовые


Типы системных переменных GLOBAL — глобальные SESSION — сеансовые

Слайд 21

Временные таблицы

CREATE TEMPORARY TABLE table_name (
id SERIAL PRIMARY KEY,
name VARCHAR(255),

Временные таблицы CREATE TEMPORARY TABLE table_name ( id SERIAL PRIMARY KEY, name VARCHAR(255), ... );
...
);


Слайд 22

Базы данных

Транзакции. Переменные. Временные таблицы. Prepared-выражения. Представления.


Урок 6

Базы данных Транзакции. Переменные. Временные таблицы. Prepared-выражения. Представления. Урок 6

Слайд 23

Представления

Создание представлений
Вертикальные и горизонтальные представления
Вставка записей в представление
Обновление представлений
Управление представлениями


Представления Создание представлений Вертикальные и горизонтальные представления Вставка записей в представление Обновление представлений Управление представлениями

Слайд 24

Представление таблицы products


1

Intel Core i3-8100

id

name

description

Процессор для...

2

Intel Core i5-7400

Процессор для...

price

7890.00

12700.00

catalog_id

1

1

id

name

catalog_id

1

1

1

Intel Core i3-8100

2

Intel

Представление таблицы products 1 Intel Core i3-8100 id name description Процессор для...
Core i5-7400

Слайд 25

Алгоритм формирования конечного запроса

MERGE
TEMPTABLE
UNDEFINED


Алгоритм формирования конечного запроса MERGE TEMPTABLE UNDEFINED

Слайд 26

Домашнее задание

В базе данных shop и sample присутствуют одни и те же

Домашнее задание В базе данных shop и sample присутствуют одни и те
таблицы, учебной базы данных. Переместите запись id = 1 из таблицы shop.users в таблицу sample.users. Используйте транзакции.
Создайте представление, которое выводит название name товарной позиции из таблицы products и соответствующее название каталога name из таблицы catalogs.