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

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


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

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

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

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

Презентация на тему Работа с базами данных

Содержание

Принципы построения БДТема 8Часть 2Восстановление при сбоях Гл.17Управление параллельным доступом Гл.18Обработка транзакций Гл.19
Принципы построения БДТема 8Принципы построения и работы баз данных   Тема Принципы построения БДТема 8Часть 2Восстановление при сбоях 			Гл.17Управление параллельным доступом	Гл.18Обработка транзакций 				Гл.19 Принципы построения БДТема 8Целостность и корректность данныхХотели бы вы, чтобы данные были Принципы построения БДТема 8Ограничения целостностиУсловия, которым долны удовлетворять данныеПримеры:- x является ключом Принципы построения БДТема 8Определения:Согласованное состояние: состояние, в котором выполняются все ограничения целостности Принципы построения БДТема 8Ограничения целостности (как мы их знаем ) могут не Принципы построения БДТема 8Пример 2   База данных должна отражать реальный Принципы построения БДТема 8Наблюдение: БД не может быть согласована постоянно из-за необходимости Принципы построения БДТема 8Транзакция: совокупность действий, сохраняющая согласованность БД  Согласов.БДСогласов.БДTВажное предположениеЕсли Принципы построения БДТема 8Как могут быть нарушены ограничения целостности?Ошибка в алгоритме транзакцииОшибка Принципы построения БДТема 8Как можно предотвратить/исправить нарушения?Глава 17: только при сбоях системыChapter Принципы построения БДТема 8Восстановление при сбояхПервое, что нужно сделать – описать модель Принципы построения БДТема 8Желательные события: то, что программа должна делать в соответствии Принципы построения БДТема 8Является ли эта модель приемлемой?Подход: Добавить низко уровневые проверки Принципы построения БДТема 8Второй важный момент после выбора модели:Иерархия памятиОперацииInput (x): Принципы построения БДТема 8Ключевая проблема Незавершенная транзакцияПример Принципы построения БДТема 8Файл протокола (журнал регистрации)Протокол – последовательность записей о том Принципы построения БДТема 8T1:	Read (A,t); t ← t×2 Принципы построения БДТема 8Одно “осложнение”Протокол сначала заносится в память, а потом уже Принципы построения БДТема 8Протокол сначала заносится в память, а потом уже на Принципы построения БДТема 8Правила протокола-возврата (Undo logging rules)(1) Для каждого действия создать Принципы построения БДТема 8Правила восстановления:   протокол-возвратаДля каждой транзакции Ti, для Принципы построения БДТема 8Правила восстановления:  протокол-возвратаПусть S = множество транзакций с Принципы построения БДТема 8Дальнешее обсуждение:Протокол-восстановления(повтора)Протокол-возврата-повтора, почему оба?Действия в реальностиКонтрольные точкиСбои физических носителей информации Принципы построения БДТема 8Протокол-повтора  (отложенная модификация)T1: 	Read(A,t); t  t×2; write Принципы построения БДТема 8Правила протокола-повтора  (Redo logging rules)(1) Для каждого действия Принципы построения БДТема 8Для каждой транзакции Ti, для которой в протоколе имеется Принципы построения БДТема 8(1) Пусть S = множество транзакций, для которыз в Принципы построения БДТема 8Восстановление очень медленное!Протокол-повтора:Первая			T1 записала A,B		Послед.запись			Завершена год назад		Запись(1 год назад) Принципы построения БДТема 8Решение: Использование контрольных точек (простая версия)Периодически, создавать контрольную точку:(1) Принципы построения БДТема 8Пример: Что делать при восстановлении?Протокол-повтора (на диске):Сбой.................. Принципы построения БДТема 8Основные недостатки:Протокол-возврата: не может восстановить сопию текущего состояния БДПротокол-повтора: Принципы построения БДТема 8ПравилаПеред изменением на диске элемента Х БД, вызываемого транзакцией Принципы построения БДТема 8«Не останавливающие» контрольные точкиLOG  для  возврата		измененные Принципы построения БДТема 8Примеры:что делать при восстановлении?							 нет T1 commitLOGT1,-a...CkptT1...Ckptend...T1-b... отменить T1 Принципы построения БДТема 8Процесс восстановления:Обратный проход (с конца протокола до места начала Принципы построения БДТема 8Действия в реальном миреНапример, выдача денег в банкомате	Ti = Принципы построения БДТема 8						  банкоматВыдать $$(сумма, Tid, время)$выдать(сумма)посл.Tid:время: Принципы построения БДТема 8Сбои внешних носителей   A: 16Решение: Иметь несколько копий данных Принципы построения БДТема 8Пример 1 Тройная избыточностьПоддерживать 3 копии на различных дискахOutput(X) Принципы построения БДТема 8Пример #2  Избыточная запись, единственное чтениеПоддерживать N копий Принципы построения БДТема 8Пример #3:  Резервная копия БД + протоколрезервнаякопия БДтекущаяБДпротокол Принципы построения БДТема 8Когда протокол (или его часть) становится ненужным?Контр.точкаКопияБДПосл.записьдля возвр.Не нужен Принципы построения БДТема 8ИтогСогласованность данныхОдин источник проблем - сбои:	- Использование протоколов	- ИзбыточностьДругой
Слайды презентации

Слайд 2 Принципы построения БД
Тема 8
Часть 2
Восстановление при сбоях Гл.17
Управление

Принципы построения БДТема 8Часть 2Восстановление при сбоях 			Гл.17Управление параллельным доступом	Гл.18Обработка транзакций 				Гл.19

параллельным доступом Гл.18
Обработка транзакций Гл.19


Слайд 3 Принципы построения БД
Тема 8
Целостность и корректность данных
Хотели бы

Принципы построения БДТема 8Целостность и корректность данныхХотели бы вы, чтобы данные были правильными постоянно  EMPNameWhiteGreenGrayAge5234211

вы, чтобы данные были правильными постоянно

EMP

Name

White
Green
Gray

Age

52
3421
1


Слайд 4 Принципы построения БД
Тема 8
Ограничения целостности
Условия, которым долны удовлетворять

Принципы построения БДТема 8Ограничения целостностиУсловия, которым долны удовлетворять данныеПримеры:- x является

данные
Примеры:
- x является ключом отношения R
- выполняется функциональная зависимость

x → y для всех кортежей из R
- Domain(x) = {Red, Blue, Green}
- никто из служащих не должен иметь зарплату, превышающую среднюю более чем в 2 раза

Слайд 5 Принципы построения БД
Тема 8
Определения:
Согласованное состояние: состояние, в котором

Принципы построения БДТема 8Определения:Согласованное состояние: состояние, в котором выполняются все ограничения

выполняются все ограничения целостности
Согласованная БД: База данных в

согласованном состоянии

Слайд 6 Принципы построения БД
Тема 8
Ограничения целостности (как мы их

Принципы построения БДТема 8Ограничения целостности (как мы их знаем ) могут

знаем ) могут не обеспечивать «полную корректность»
Пример 1

Условия на транзакции
Когда зарплата обновляется,
новая зарплата > старая зарплата
Кода удаляется запись счета в банке,
остаток = 0
можно имитировать простым ограничением


Слайд 7 Принципы построения БД
Тема 8
Пример 2 База

Принципы построения БДТема 8Пример 2  База данных должна отражать реальный

данных должна отражать реальный мир


БД
Реальность

Ограничения целостности (как мы их

знаем ) могут не обеспечивать «полную корректность»

Слайд 8 Принципы построения БД
Тема 8
Наблюдение: БД не может быть

Принципы построения БДТема 8Наблюдение: БД не может быть согласована постоянно из-за

согласована постоянно из-за необходимости изменений!
Пример: a1 + a2 +….

an = Итог (ограничение)
Добавить $100 к a2: a2 ← a2 + 100
Итог ← Итог + 100


а2

Итог



Слайд 9 Принципы построения БД
Тема 8
Транзакция: совокупность действий, сохраняющая согласованность

Принципы построения БДТема 8Транзакция: совокупность действий, сохраняющая согласованность БД Согласов.БДСогласов.БДTВажное предположениеЕсли

БД

Согласов.БД
Согласов.БД
T
Важное предположение
Если T начинается в согласованном состоянии

и выполняется изолированно (т.е.без конкуренции с другими действиями над БД), то после ее завершения БД остается в согласованном состоянии

Слайд 10 Принципы построения БД
Тема 8
Как могут быть нарушены ограничения

Принципы построения БДТема 8Как могут быть нарушены ограничения целостности?Ошибка в алгоритме

целостности?
Ошибка в алгоритме транзакции
Ошибка в СУБД
Сбой оборудования, например, сбой

диска, в результате которогь изменяется остато ра счете
Общие данные
T1: увеличить на 10% зарплату программистам из списка
T2: изменить программистов из списка на системных аналитиков

Слайд 11 Принципы построения БД
Тема 8
Как можно предотвратить/исправить нарушения?
Глава 17:

Принципы построения БДТема 8Как можно предотвратить/исправить нарушения?Глава 17: только при сбоях

только при сбоях системы
Chapter 18: только из-за общих данных
Chapter

19: при сбоях системы и общих данных

Не будем рассматривать:
Как писать правильные транзакции
Как писать правильные СУБД
Проверку и восстановление ограничений
Рассматриваемые здесь решения не знают обограничениях



Слайд 12 Принципы построения БД
Тема 8
Восстановление при сбоях
Первое, что нужно

Принципы построения БДТема 8Восстановление при сбояхПервое, что нужно сделать – описать модель сбояСобытия	 Желательные			 Нежелательные 		Ожидаемые								Неожидаемые												Процессор	Память					ДискCPUMD

сделать – описать модель сбоя

События Желательные
Нежелательные

Ожидаемые
Неожидаемые

Процессор

Память Диск

CPU

M

D


Слайд 13 Принципы построения БД
Тема 8
Желательные события: то, что программа

Принципы построения БДТема 8Желательные события: то, что программа должна делать в

должна делать в соответствии с ее руководством.

Нежелательные ожидаемые события


- зависание или сбой системы,
- потеря памяти,
- остановка процессора, сброс
Нежелательные неожидаемые события
- все остальное ( необъянимая потеря данных, землетрясение, нападение террористов)


Слайд 14 Принципы построения БД
Тема 8
Является ли эта модель приемлемой?
Подход:

Принципы построения БДТема 8Является ли эта модель приемлемой?Подход: Добавить низко уровневые

Добавить низко уровневые проверки + избыточность для увеличения вероятности,

что система выживет при сбое

Например,
поддержка точной копии диска или дискового массива
Проверка четности при обращении к памяти
Проверки процессора



Слайд 15 Принципы построения БД
Тема 8
Второй важный момент после выбора

Принципы построения БДТема 8Второй важный момент после выбора модели:Иерархия памятиОперацииInput (x):

модели:
Иерархия памяти




Операции
Input (x): блок с элементом БД x

→ память
Output (x): блок с элементом БД x → диск
Read (x,t): если нужно выполнить input(x), копировать в переменную t ← значение x из блока
Write (x,t): если нужно выполнить input(x),
значение x в блоке ← t



Память Диск

x

x


Слайд 16 Принципы построения БД
Тема 8
Ключевая проблема Незавершенная транзакция
Пример

Принципы построения БДТема 8Ключевая проблема Незавершенная транзакцияПример

Ограничение: A=B

T1: A ← A × 2
B ← B × 2


Память


Диск

T1: Read (A,t); t ← t×2
Write (A,t);
Read (B,t); t ← t×2
Write (B,t);
Output (A);
Output (B); - сбой

A: 8
B: 8

A: 8
B: 8


16

Необходима (А)томарность (неделимость) транзакции – выполнение либо всех действий транзакции либо никаких.


Слайд 17 Принципы построения БД
Тема 8
Файл протокола (журнал регистрации)
Протокол –

Принципы построения БДТема 8Файл протокола (журнал регистрации)Протокол – последовательность записей о

последовательность записей о том что происходит с каждой транзакцией.
Эти

последовательности для разных транзакций могут перекрываться.
При сбое системы происходит просмотр протокола, незавершенные по протоколу транзакции должны быть либо повторены, либо полностью отменены (каждое действие, отмеченное в протоколе).
Типы записей: START, COMMIT, ABORT

Слайд 18 Принципы построения БД
Тема 8
T1: Read (A,t); t ← t×2

Принципы построения БДТема 8T1:	Read (A,t); t ← t×2	   A=B			Write

A=B
Write (A,t);
Read (B,t); t ←

t×2
Write (B,t);
Output (A);
Output (B);

A:8
B:8

A:8
B:8

память

диск


протокол



Одно из решений - протокол-возврата (немедленная модификация)


Слайд 19 Принципы построения БД
Тема 8
Одно “осложнение”
Протокол сначала заносится в

Принципы построения БДТема 8Одно “осложнение”Протокол сначала заносится в память, а потом

память, а потом уже на диск (для эффективной буферизации)
Не

записывается на диск при каждом действии память
БД


Протокол

A: 8 16
B: 8 16
Log:




A: 8
B: 8



Слайд 20 Принципы построения БД
Тема 8
Протокол сначала заносится в память,

Принципы построения БДТема 8Протокол сначала заносится в память, а потом уже

а потом уже на диск (для эффективной буферизации)
Не записывается

на диск при каждом действии память
БД



Протокол

A: 8 16
B: 8 16
Log:





A: 8
B: 8




...


Слайд 21 Принципы построения БД
Тема 8
Правила протокола-возврата (Undo logging rules)
(1) Для

Принципы построения БДТема 8Правила протокола-возврата (Undo logging rules)(1) Для каждого действия

каждого действия создать запись в протоколе-возврата (содержащую старое значение)
(2)

Перед изменением x на диске, запись, содержащая старое значение x должна быть уже записана в файл протокола-возврата
(3) Перед записью <Соmmit T> в файл протокола все операции записи действий транзакции на диск должны быть уже завершены

Слайд 22 Принципы построения БД
Тема 8
Правила восстановления: протокол-возврата
Для каждой

Принципы построения БДТема 8Правила восстановления:  протокол-возвратаДля каждой транзакции Ti, для

транзакции Ti, для которой в протоколе имеется запись

Ti >:
Если для нее в ротоколе имеется также запись или , то ничего не делать
Иначе для всех записей в протоколе: write (X, v)
output (X )
записать в протокол




Слайд 23 Принципы построения БД
Тема 8
Правила восстановления: протокол-возврата
Пусть S

Принципы построения БДТема 8Правила восстановления: протокол-возвратаПусть S = множество транзакций с

= множество транзакций с записями в протоколе,

но без записей (или )
Для каждой записи в протоколе в обратном порядке (более поздние обрабатываются раньше) выполнить:
- если Ti ∈ S то - write (X, v)
- output (X)
Для каждой транзакции Ti ∈ S записать в протокол
Что еcли произойдет сбой во время восстановления?
Нет проблем! Восстановления с использованием протокола возврата – идемпотентно (т.е.X * X = X)



Слайд 24 Принципы построения БД
Тема 8
Дальнешее обсуждение:
Протокол-восстановления(повтора)
Протокол-возврата-повтора, почему оба?
Действия в

Принципы построения БДТема 8Дальнешее обсуждение:Протокол-восстановления(повтора)Протокол-возврата-повтора, почему оба?Действия в реальностиКонтрольные точкиСбои физических носителей информации

реальности
Контрольные точки
Сбои физических носителей информации


Слайд 25 Принципы построения БД
Тема 8
Протокол-повтора (отложенная модификация)
T1: Read(A,t); t

Принципы построения БДТема 8Протокол-повтора (отложенная модификация)T1: 	Read(A,t); t t×2; write (A,t);

t×2; write (A,t);
Read(B,t); t t×2; write

(B,t);
Output(A); Output(B)

A: 8
B: 8


A: 8
B: 8


память

БД

протокол


Слайд 26 Принципы построения БД
Тема 8
Правила протокола-повтора (Redo logging rules)
(1)

Принципы построения БДТема 8Правила протокола-повтора (Redo logging rules)(1) Для каждого действия

Для каждого действия создать запись в протоколе-повтора (содержащую новое

значение)
(2) Перед модификацией X на диске (БД), все записитранзакции, модифицирующие X (включая commit) должны быть записаны на диск
(3) Очистить буфер протокола (записать его содержимое на диск) при завершении (commit) транзакции

Слайд 27 Принципы построения БД
Тема 8
Для каждой транзакции Ti, для

Принципы построения БДТема 8Для каждой транзакции Ti, для которой в протоколе

которой в протоколе имеется запись :
Для всех

записейl этой транзакции :
Write(X, v)
Output(X)

Правила восстановления: протокол-повтора



Слайд 28 Принципы построения БД
Тема 8
(1) Пусть S = множество

Принципы построения БДТема 8(1) Пусть S = множество транзакций, для которыз

транзакций, для которыз в протоколе-повтора имеется запись
(2)

Для каждой записи в порядке от начала к концу протокола выполнить:
- если Ti ∈ S то Write(X, v)
Output(X)
(3) Для каждой незавершенной транзакции (Ti ∈ S) записать в протокол


Правила восстановления: протокол-повтора




Слайд 29 Принципы построения БД
Тема 8
Восстановление очень медленное!
Протокол-повтора:



Первая T1 записала A,B Послед.
запись Завершена

Принципы построения БДТема 8Восстановление очень медленное!Протокол-повтора:Первая			T1 записала A,B		Послед.запись			Завершена год назад		Запись(1 год

год назад Запись
(1 год назад) --> Тем

не менне, нужно
повторить после сбоя!!


...

...

...

Сбой



Слайд 30 Принципы построения БД
Тема 8
Решение: Использование контрольных точек (простая

Принципы построения БДТема 8Решение: Использование контрольных точек (простая версия)Периодически, создавать контрольную

версия)
Периодически, создавать контрольную точку:
(1) Прервать прием новых транзакций
(2) Подождать

завершения всех текущих транзакций
(3) Очистить буферы протокола (записать на диск)
(4) Записать буферы БД на диск (не очищая буферы)
(5) Записать информацию о котрольной точке (“checkpoint”) в протокол и на диск
(6) Возобновить обработку транзакций

Слайд 31 Принципы построения БД
Тема 8
Пример: Что делать при восстановлении?
Протокол-повтора

Принципы построения БДТема 8Пример: Что делать при восстановлении?Протокол-повтора (на диске):Сбой..................

(на диске):
Сбой
...
...
...
...
...
...


Слайд 32 Принципы построения БД
Тема 8
Основные недостатки:
Протокол-возврата: не может восстановить

Принципы построения БДТема 8Основные недостатки:Протокол-возврата: не может восстановить сопию текущего состояния

сопию текущего состояния БД
Протокол-повтора: необходимо держать в памяти все

модифицированные блоки до завершения транзакции

Решение: протокол-возврата-повтора!
Запись протокола ⇒




Слайд 33 Принципы построения БД
Тема 8
Правила
Перед изменением на диске элемента

Принципы построения БДТема 8ПравилаПеред изменением на диске элемента Х БД, вызываемого

Х БД, вызываемого транзакцией Т, необходимо записать на диск

соответствующую запись протокола


Слайд 34 Принципы построения БД
Тема 8
«Не останавливающие» контрольные точки
L
O
G

Принципы построения БДТема 8«Не останавливающие» контрольные точкиLOG для возврата		измененные

для
возврата измененные

буферы памяти
записываются на диск

Start-ckpt
Актив. TR:
Ti,T2,...


end
ckpt

...

...

...

...




Слайд 35 Принципы построения БД
Тема 8
Примеры:что делать при восстановлении?
нет

Принципы построения БДТема 8Примеры:что делать при восстановлении?							 нет T1 commitLOGT1,-a...CkptT1...Ckptend...T1-b... отменить

T1 commit
L
O
G
T1,-
a
...
Ckpt
T1
...
Ckpt
end
...
T1-
b
...


 отменить T1 (возвратить a,b)
L
O
G
...
T1
a
...
...
T1
b
...
...
T1
c
...
T1
cmt
...
ckpt-
end
ckpt-s
T1

 Повторить T1: (повторить

b,c)

Слайд 36 Принципы построения БД
Тема 8
Процесс восстановления:
Обратный проход (с конца

Принципы построения БДТема 8Процесс восстановления:Обратный проход (с конца протокола до места

протокола до места начала последней контрольной точки)
Построить множество S

завершенных транзакций
Отменить действия транзакций, не вошедших в S
Отменить активные транзакции контр.точки
Пройти по цепочке возврата для транзакций из (список активных транзакций контр.точки) - S
Прямой проход (от начала последней контрольной точки до конца протокола)
Повторить действия транзакций из S

Обратный проход

Прямой проход

начать
контр.-
точку




Слайд 37 Принципы построения БД
Тема 8
Действия в реальном мире
Например, выдача

Принципы построения БДТема 8Действия в реальном миреНапример, выдача денег в банкомате	Ti

денег в банкомате
Ti = a1 a2 …... aj …...

an

$

Решение
Выполнять реальнве действия после завершения
транзакции
(2) Желательно, чтобы транзакция была идемпотентной


Слайд 38 Принципы построения БД
Тема 8
банкомат
Выдать $$
(сумма, Tid,

Принципы построения БДТема 8						 банкоматВыдать $$(сумма, Tid, время)$выдать(сумма)посл.Tid:время:

время)

$
выдать(сумма)


посл.Tid:
время:


Слайд 39 Принципы построения БД
Тема 8
Сбои внешних носителей

Принципы построения БДТема 8Сбои внешних носителей  A: 16Решение: Иметь несколько копий данных


A: 16
Решение: Иметь несколько копий данных


Слайд 40 Принципы построения БД
Тема 8
Пример 1 Тройная избыточность
Поддерживать 3

Принципы построения БДТема 8Пример 1 Тройная избыточностьПоддерживать 3 копии на различных

копии на различных дисках
Output(X) --> 3 операции вывода
Input(X) -->

3 операции ввода + голосование

X1

X2

X3


Слайд 41 Принципы построения БД
Тема 8
Пример #2 Избыточная запись,

Принципы построения БДТема 8Пример #2 Избыточная запись, единственное чтениеПоддерживать N копий

единственное чтение
Поддерживать N копий на различных дисках
Output(X) --> N

операций вывода
Input(X) --> чтение 1 копии - если шибок нет- принять
- иначе читать копию
 Предполагается, что можно определить, являются ли прочитаннве данные ошибочными



Слайд 42 Принципы построения БД
Тема 8
Пример #3: Резервная копия БД

Принципы построения БДТема 8Пример #3: Резервная копия БД + протоколрезервнаякопия БДтекущаяБДпротокол

+ протокол
резервная
копия БД
текущая
БД

протокол
если текущая БД потеряна,
восстановить резервную

копию
восстановить текущее состояние, использую протокол

Слайд 43 Принципы построения БД
Тема 8
Когда протокол (или его часть)

Принципы построения БДТема 8Когда протокол (или его часть) становится ненужным?Контр.точкаКопияБДПосл.записьдля возвр.Не

становится ненужным?

Контр.
точка
Копия
БД
Посл.
запись
для возвр.



Не нужен для
восстановления диска
Не нужен для возврата
при

сбоях системы

Не нужен для повтора
при сбоях системы

log

время


  • Имя файла: rabota-s-bazami-dannyh.pptx
  • Количество просмотров: 130
  • Количество скачиваний: 0