Работа с базами данных
<<  Триггеры баз данных Управление базами данными  >>
Принципы построения и работы баз данных
Принципы построения и работы баз данных
Управление параллельным доступом
Управление параллельным доступом
Целостность и корректность данных
Целостность и корректность данных
Ограничения целостности
Ограничения целостности
Определения
Определения
Ограничения целостности
Ограничения целостности
База данных должна отражать реальный мир
База данных должна отражать реальный мир
БД не может быть согласована постоянно
БД не может быть согласована постоянно
Транзакция
Транзакция
Как могут быть нарушены ограничения целостности
Как могут быть нарушены ограничения целостности
Как можно предотвратить/исправить нарушения
Как можно предотвратить/исправить нарушения
Восстановление при сбоях
Восстановление при сбоях
Желательные события
Желательные события
Является ли эта модель приемлемой
Является ли эта модель приемлемой
Второй важный момент после выбора модели
Второй важный момент после выбора модели
Ключевая проблема
Ключевая проблема
Файл протокола (журнал регистрации)
Файл протокола (журнал регистрации)
Немедленная модификация
Немедленная модификация
Одно “осложнение”
Одно “осложнение”
Протокол сначала заносится в память, а потом уже на диск
Протокол сначала заносится в память, а потом уже на диск
Правила протокола-возврата
Правила протокола-возврата
Правила восстановления: протокол-возврата
Правила восстановления: протокол-возврата
Множество транзакций
Множество транзакций
Дальнешее обсуждение
Дальнешее обсуждение
Отложенная модификация
Отложенная модификация
Правила протокола-повтора
Правила протокола-повтора
Правила восстановления
Правила восстановления
В протоколе-повтора имеется запись
В протоколе-повтора имеется запись
Восстановление очень медленное
Восстановление очень медленное
Использование контрольных точек
Использование контрольных точек
Что делать при восстановлении
Что делать при восстановлении
Основные недостатки
Основные недостатки
Правила
Правила
«Не останавливающие» контрольные точки
«Не останавливающие» контрольные точки
Что делать при
Что делать при
Процесс восстановления
Процесс восстановления
Действия в реальном мире
Действия в реальном мире
Принципы построения БД
Принципы построения БД
Сбои внешних носителей
Сбои внешних носителей
Тройная избыточность
Тройная избыточность
Избыточная запись, единственное чтение
Избыточная запись, единственное чтение
Резервная копия БД + протокол
Резервная копия БД + протокол
Когда протокол (или его часть) становится ненужным
Когда протокол (или его часть) становится ненужным
Согласованность данных
Согласованность данных
Презентация «Работа с базами данных». Размер 188 КБ. Автор: С.Перфилов.

Загрузка...

Работа с базами данных

содержание презентации «Работа с базами данных.ppt»
СлайдТекст
1 Принципы построения и работы баз данных

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

Принципы построения и работы баз данных Тема 08: Восстановление при сбоях. Принципы построения БД. Тема 8. 1.

2 Управление параллельным доступом

Управление параллельным доступом

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

3 Целостность и корректность данных

Целостность и корректность данных

Целостность и корректность данных. Хотели бы вы, чтобы данные были правильными постоянно EMP. Name. Age. White Green Gray. 52 3421 1. Принципы построения БД. Тема 8. 3.

4 Ограничения целостности

Ограничения целостности

Ограничения целостности. Условия, которым долны удовлетворять данные Примеры: - x является ключом отношения R - выполняется функциональная зависимость x ? y для всех кортежей из R - Domain(x) = {Red, Blue, Green} - никто из служащих не должен иметь зарплату, превышающую среднюю более чем в 2 раза. Принципы построения БД. Тема 8. 4.

5 Определения

Определения

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

6 Ограничения целостности

Ограничения целостности

Ограничения целостности (как мы их знаем ) могут не обеспечивать «полную корректность». Пример 1 Условия на транзакции Когда зарплата обновляется, новая зарплата > старая зарплата Кода удаляется запись счета в банке, остаток = 0 можно имитировать простым ограничением. Принципы построения БД. Тема 8. 6.

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

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

Пример 2 База данных должна отражать реальный мир. Ограничения целостности (как мы их знаем ) могут не обеспечивать «полную корректность». Реальность. Бд. Принципы построения БД. Тема 8. 7.

8 БД не может быть согласована постоянно

БД не может быть согласована постоянно

Наблюдение: БД не может быть согласована постоянно из-за необходимости изменений! Пример: a1 + a2 +…. an = Итог (ограничение) Добавить $100 к a2: a2 ? a2 + 100 Итог ? Итог + 100 а2 Итог. Принципы построения БД. Тема 8. 8.

9 Транзакция

Транзакция

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

10 Как могут быть нарушены ограничения целостности

Как могут быть нарушены ограничения целостности

Как могут быть нарушены ограничения целостности? Ошибка в алгоритме транзакции Ошибка в СУБД Сбой оборудования, например, сбой диска, в результате которогь изменяется остато ра счете Общие данные T1: увеличить на 10% зарплату программистам из списка T2: изменить программистов из списка на системных аналитиков. Принципы построения БД. Тема 8. 10.

11 Как можно предотвратить/исправить нарушения

Как можно предотвратить/исправить нарушения

Как можно предотвратить/исправить нарушения? Глава 17: только при сбоях системы Chapter 18: только из-за общих данных Chapter 19: при сбоях системы и общих данных Не будем рассматривать: Как писать правильные транзакции Как писать правильные СУБД Проверку и восстановление ограничений Рассматриваемые здесь решения не знают обограничениях. Принципы построения БД. Тема 8. 11.

12 Восстановление при сбоях

Восстановление при сбоях

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

13 Желательные события

Желательные события

Желательные события: то, что программа должна делать в соответствии с ее руководством. Нежелательные ожидаемые события - зависание или сбой системы, - потеря памяти, - остановка процессора, сброс Нежелательные неожидаемые события - все остальное ( необъянимая потеря данных, землетрясение, нападение террористов). Принципы построения БД. Тема 8. 13.

14 Является ли эта модель приемлемой

Является ли эта модель приемлемой

Является ли эта модель приемлемой? Подход: Добавить низко уровневые проверки + избыточность для увеличения вероятности, что система выживет при сбое Например, поддержка точной копии диска или дискового массива Проверка четности при обращении к памяти Проверки процессора. Принципы построения БД. Тема 8. 14.

15 Второй важный момент после выбора модели

Второй важный момент после выбора модели

Второй важный момент после выбора модели: Иерархия памяти Операции Input (x): блок с элементом БД x ? память Output (x): блок с элементом БД x ? диск Read (x,t): если нужно выполнить input(x), копировать в переменную t ? значение x из блока Write (x,t): если нужно выполнить input(x), значение x в блоке ? t. x. x. Память Диск. Принципы построения БД. Тема 8. 15.

16 Ключевая проблема

Ключевая проблема

Ключевая проблема Незавершенная транзакция. Пример Ограничение: 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. Необходима (А)томарность (неделимость) транзакции – выполнение либо всех действий транзакции либо никаких. Принципы построения БД. Тема 8. 16.

17 Файл протокола (журнал регистрации)

Файл протокола (журнал регистрации)

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

18 Немедленная модификация

Немедленная модификация

Одно из решений - протокол-возврата (немедленная модификация). A:8 B:8. A:8 B:8. T1: Read (A,t); t ? t?2 A=B Write (A,t); Read (B,t); t ? t?2 Write (B,t); Output (A); Output (B); <T1, B, 8> <T1, commit> Диск. Память. Протокол. Принципы построения БД. Тема 8. 18.

19 Одно “осложнение”

Одно “осложнение”

Одно “осложнение”. Протокол сначала заносится в память, а потом уже на диск (для эффективной буферизации) Не записывается на диск при каждом действии память БД Протокол. A: 8 B: 8. A: 8 16 B: 8 16 Log: <T1,start> <T1, A, 8> <T1, B, 8> Принципы построения БД. Тема 8. 19.

20 Протокол сначала заносится в память, а потом уже на диск

Протокол сначала заносится в память, а потом уже на диск

Протокол сначала заносится в память, а потом уже на диск (для эффективной буферизации) Не записывается на диск при каждом действии память БД Протокол. A: 8 16 B: 8 16 Log: <T1,start> <T1, A, 8> <T1, B, 8> <Commit T1> A: 8 B: 8. ... <T1, B, 8> <Commit T1> Принципы построения БД. Тема 8. 20.

21 Правила протокола-возврата

Правила протокола-возврата

Правила протокола-возврата (Undo logging rules). (1) Для каждого действия создать запись в протоколе-возврата (содержащую старое значение) (2) Перед изменением x на диске, запись, содержащая старое значение x должна быть уже записана в файл протокола-возврата (3) Перед записью <Соmmit T> в файл протокола все операции записи действий транзакции на диск должны быть уже завершены. Принципы построения БД. Тема 8. 21.

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

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

Правила восстановления: протокол-возврата. Для каждой транзакции Ti, для которой в протоколе имеется запись <Start Ti >: Если для нее в ротоколе имеется также запись <Commit,Ti> или <Abort, Ti>, то ничего не делать Иначе для всех записей <Ti, X, v> в протоколе: write (X, v) output (X ) записать <Abort Ti> в протокол. Принципы построения БД. Тема 8. 22.

23 Множество транзакций

Множество транзакций

Правила восстановления: протокол-возврата. Пусть S = множество транзакций с записями <Start Ti> в протоколе, но без записей <Commit Ti> (или <Abort Ti >) Для каждой записи <Ti, X, v> в протоколе в обратном порядке (более поздние обрабатываются раньше) выполнить: - если Ti ? S то - write (X, v) - output (X) Для каждой транзакции Ti ? S записать <Abort Ti> в протокол Что еcли произойдет сбой во время восстановления? Нет проблем! Восстановления с использованием протокола возврата – идемпотентно (т.е.X * X = X). Принципы построения БД. Тема 8. 23.

24 Дальнешее обсуждение

Дальнешее обсуждение

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

25 Отложенная модификация

Отложенная модификация

Протокол-повтора (отложенная модификация). 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. Бд. Память. Протокол. Принципы построения БД. Тема 8. 25.

26 Правила протокола-повтора

Правила протокола-повтора

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

27 Правила восстановления

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

Правила восстановления: протокол-повтора. Для каждой транзакции Ti, для которой в протоколе имеется запись <Commit Yi> : Для всех записейl этой транзакции <Ti, X, v>: Write(X, v) Output(X). Принципы построения БД. Тема 8. 27.

28 В протоколе-повтора имеется запись

В протоколе-повтора имеется запись

Правила восстановления: протокол-повтора. (1) Пусть S = множество транзакций, для которыз в протоколе-повтора имеется запись <Commit Ti> (2) Для каждой записи <Ti, X, v> в порядке от начала к концу протокола выполнить: - если Ti ? S то Write(X, v) Output(X) (3) Для каждой незавершенной транзакции (Ti ? S) записать <Abort Ti> в протокол. Принципы построения БД. Тема 8. 28.

29 Восстановление очень медленное

Восстановление очень медленное

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

30 Использование контрольных точек

Использование контрольных точек

Решение: Использование контрольных точек (простая версия). Периодически, создавать контрольную точку: (1) Прервать прием новых транзакций (2) Подождать завершения всех текущих транзакций (3) Очистить буферы протокола (записать на диск) (4) Записать буферы БД на диск (не очищая буферы) (5) Записать информацию о котрольной точке (“checkpoint”) в протокол и на диск (6) Возобновить обработку транзакций. Принципы построения БД. Тема 8. 30.

31 Что делать при восстановлении

Что делать при восстановлении

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

32 Основные недостатки

Основные недостатки

Основные недостатки: Протокол-возврата: не может восстановить сопию текущего состояния БД Протокол-повтора: необходимо держать в памяти все модифицированные блоки до завершения транзакции Решение: протокол-возврата-повтора! Запись протокола ? <T, X, новое значение X, старое значение X > Принципы построения БД. Тема 8. 32.

33 Правила

Правила

Правила. Перед изменением на диске элемента Х БД, вызываемого транзакцией Т, необходимо записать на диск соответствующую запись протокола <T, X, новое значение X, старое значение X > Принципы построения БД. Тема 8. 33.

34 «Не останавливающие» контрольные точки

«Не останавливающие» контрольные точки

«Не останавливающие» контрольные точки. L O G для возврата измененные буферы памяти записываются на диск. end ckpt. ... ... ... ... Start-ckpt Актив. TR: Ti,T2,... Принципы построения БД. Тема 8. 34.

35 Что делать при

Что делать при

Примеры:что делать при восстановлении? Нет T1 commit L O G. ? Отменить T1 (возвратить a,b). ? Повторить T1: (повторить b,c). ... T1,- a. ... Ckpt T1. ... Ckpt end. ... T1- b. L O G. ... T1 a. ... ckpt-s T1. ... T1 b. ... ckpt- end. ... T1 c. ... T1 cmt. ... Принципы построения БД. Тема 8. 35.

36 Процесс восстановления

Процесс восстановления

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

37 Действия в реальном мире

Действия в реальном мире

Действия в реальном мире. Решение Выполнять реальнве действия после завершения транзакции (2) Желательно, чтобы транзакция была идемпотентной. Например, выдача денег в банкомате Ti = a1 a2 …... aj …... an. $. Принципы построения БД. Тема 8. 37.

38 Принципы построения БД

Принципы построения БД

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

39 Сбои внешних носителей

Сбои внешних носителей

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

40 Тройная избыточность

Тройная избыточность

Пример 1 Тройная избыточность. Поддерживать 3 копии на различных дисках Output(X) --> 3 операции вывода Input(X) --> 3 операции ввода + голосование. X3. X1. X2. Принципы построения БД. Тема 8. 40.

41 Избыточная запись, единственное чтение

Избыточная запись, единственное чтение

Пример #2 Избыточная запись, единственное чтение. Поддерживать N копий на различных дисках Output(X) --> N операций вывода Input(X) --> чтение 1 копии - если шибок нет- принять - иначе читать копию ? Предполагается, что можно определить, являются ли прочитаннве данные ошибочными. Принципы построения БД. Тема 8. 41.

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

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

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

43 Когда протокол (или его часть) становится ненужным

Когда протокол (или его часть) становится ненужным

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

44 Согласованность данных

Согласованность данных

Итог. Согласованность данных Один источник проблем - сбои: - Использование протоколов - Избыточность Другой источник проблем – совместное использование данных: -> следующая тема. Принципы построения БД. Тема 8. 44.

«Работа с базами данных»
Сайт

5informatika.net

115 тем
5informatika.net > Работа с базами данных > Работа с базами данных.ppt