- •1. Понятия информационного ресурса и информатизации.
- •2. Понятие и классификация информационных систем.
- •Информационная технология. Классификация ит.
- •Основные тенденции развития ит.
- •Проектирование. Массовое проектирование ис.
- •7.Методы проектирования ис.
- •8.Этапы создания ис.
- •9.Техническое обеспечение и его состав.
- •10. Структура ит.
- •11. Нейросетевые технологии.
- •Понятие экономической информации. Понятие адекватности информации.
- •Признаки подразделения экономической информации.
- •Структура информации. Основные свойства экономической информации.
- •Классификация.
- •Кодирование.
- •Проектирование документации и технология ее получения.
- •Электронная форма документа
- •Внутримашинное ио. Абд.
- •21 . Различают следующие типы баз данных:
- •22 Файловые системы
- •24. Типовая организация субд
- •25.Реляционный подход к организации.
- •26. Фундаментальные свойства отношений
- •27. Общая характеристика реляционной модели
- •28. Реляционная алгебра Кодда.
- •29. Операция сединения отношений
- •30. Операция деления отношения
- •31. Функциональные зависимости.
- •32. Ограничение по условию.
- •33.Замыкание множества функциональных зависимостей.
- •34Минимальное покрытие множества функциональных зависимостей.
- •35.Проектирование реляционных бд на основе нормализации.
- •36 Минимальные функц зависимости и 2 нормальная форма.
- •2Нормальная форма
- •37Нетранзитивные функциональные зависимости и третья нормальная форма
- •38 Перекрывающиеся возможные ключи и нормальная форма Бойса-Кодда
- •39 Многозначные зависимости и четвертая нормальная форма.
- •40 Рекурсивная связь.
- •Первая нормальная форма er – диаграммы.
- •42. Вторая нормальная форма er-диаграммы
- •43. Третья нормальная форма er-диаграммы
- •44. Дополнительные элементы er – диаграмм. Получение реляционной схемы из er – диаграммы.
- •45. Транзакции и целостность бд. Управление транзакциями.
- •46.Изолированность пользователей. Сериализация транзакций.
- •1)Отсутствие потерянных изменений (первый уровень изолированности)
- •2)Отсутствие чтения «грязных» данных (второй уровень изолированности)
- •3)Отсутствие неповторяющихся чтений (третий уровень изоляции)
- •47. Метод синхронизационных захватов объектов.
- •Метод временных меток.
- •Хранение отношений во внешней памяти.
- •Журнализация изменений.
3)Отсутствие неповторяющихся чтений (третий уровень изоляции)
Рассмотрим сценарий совместного выполнения транзакций T1 и T2, показанный на рис. 13.3. В момент времени t1 транзакция T1 читает объект базы данных o (выполняет операцию R(o)). До завершения транзакции T1 в момент времени t2 > t1 транзакция T2 изменяет объект o (выполняет операцию W(o)) и успешно завершается оператором COMMIT. В момент времени t3 > t2 транзакция T1 повторно читает объект o и видит его измененное состояние.
Рис. 13.3. Неповторяющиеся чтения
Чтобы избежать неповторяющихся чтений, до завершения транзакции T1 никакая другая транзакция не должна изменять объект o (для этого достаточно заблокировать доступ по записи к объекту o до завершения транзакции T1). Часто это является максимальным требованием к средствам обеспечения изолированности транзакций, хотя, как будет видно немного позже, отсутствие неповторяющихся чтений еще не гарантирует реальной изолированности пользователей.
Методы сериализации транзакций.
Для того, чтобы добиться необходимого уровня изолированности транзакций, нужно организовать регулирование их совместного выполнения.
План выполнения транзакций называют сериальным. Если результат выполнения нескольких транзакций эквивалентен результату их последующего выполнения.
Основная проблема – выбор метода сериализации, т.к. некоторые транзакции можно выполнять одновременно или неважен порядок их выполнения.
Сериализация выполняет предотвращение следующих конфликтов выполнения транзакций:
-
одна транзакция пытается изменить объект, изменённый другой, незакончившейся транзакцией.
-
Возникает, когда транзакция пытается изменить объект, читаемый другой, незакончившейся транзакцией.
-
Транзакция пытается читать объект ,изменённый другой, ещё незаконченной транзакцией.
Методы сериализации транзакций:
-
Метод синхронизационных захватов объектов ( самый распространённый).
-
Метод временных меток.
47. Метод синхронизационных захватов объектов.
Наиболее распространенным в централизованных СУБД (включающих системы, основанные на архитектуре "клиент-сервер") является подход, основанный на соблюдении двухфазного протокола синхронизационных захватов объектов БД. В общих чертах протокол состоит в том, что перед выполнением любой операции в транзакции T над объектом базы данных r от имени транзакции T запрашивается синхронизационный захват объекта r в соответствующем режиме (в зависимости от вида операции).
Основными режимами синхронизационных захватов являются:
-
совместный режим - S (Shared), означающий разделяемый захват объекта и требуемый для выполнения операции чтения объекта;
-
монопольный режим - X (eXclusive), означающий монопольный захват объекта и требуемый для выполнения операций занесения, удаления и модификации.
Для обеспечения сериализации транзакций (третьего уровня изолированности) синхронизационные захваты объектов, произведенные по инициативе транзакции, можно снимать только при ее завершении. Это требование порождает двухфазный протокол синхронизационных захватов - 2PL. В соответствии с этим протоколом выполнение транзакции разбивается на две фазы:
первая фаза транзакции - накопление захватов;
вторая фаза (фиксация или откат) - освобождение захватов.
Достаточно легко убедиться, что при соблюдении двухфазного протокола синхронизационных захватов действительно обеспечивается сериализация транзакций на третьем уровне изолированности. Основная проблема состоит в том, что следует считать объектом для синхронизационного захвата?
В контексте реляционных баз данных возможны следующие альтернативы:
-
файл - физический (с точки зрения базы данных) объект, область хранения нескольких отношений и, возможно, индексов;
-
отношение - логический объект, соответствующий множеству кортежей данного отношения;
-
страница данных - физический объект, хранящий кортежи одного или нескольких отношений, индексную или служебную информацию;
-
кортеж - элементарный физический объект базы данных.
На самом деле, когда мы говорим про операции над объектами базы данных, то любая операция над кортежем, фактически, является и операцией над страницей, в которой этот кортеж хранится, и над соответствующим отношением, и над файлом, содержащем отношение. Поэтому действительно имеется выбор уровня объекта захвата.
Понятно, что чем крупнее объект синхронизационного захвата (неважно, какой природы этот объект - логический или физический), тем меньше синхронизационных захватов будет поддерживаться в системе, и на это, соответственно, будут тратиться меньшие накладные расходы. Более того, если выбрать в качестве уровня объектов для захватов файл или отношение, то будет решена даже проблема фантомов (если это не ясно сразу, посмотрите еще раз на формулировку проблемы фантомов и определение двухфазного протокола захватов).
Но вся беда в том, что при использовании для захватов крупных объектов возрастает вероятность конфликтов транзакций и тем самым уменьшается допускаемая степень их параллельного выполнения. Фактически, при укрупнении объекта синхронизационного захвата мы умышленно огрубляем ситуацию и видим конфликты в тех ситуациях, когда на самом деле конфликтов нет.
Разработчики многих систем начинали с использования страничных захватов, полагая это некоторым компромиссом между стремлениями сократить накладные расходы и сохранить достаточно высокий уровень параллельности транзакций. Но это не очень хороший выбор. Мы не будем останавливаться на деталях, но заметим, что использование страничных захватов в двухфазном протоколе иногда вызывает очень неприятные синхронизационные проблемы, усложняющие организацию СУБД. В большинстве современных систем используются покортежные синхронизационные захваты.
Но при этом возникает очередной вопрос. Если единицей захвата является кортеж, то какие синхронизационные захваты потребуются при выполнении таких операций как уничтожение отношения? Было бы довольно нелепо перед выполнением такой операции потребовать захвата всех существующих кортежей отношения. Кроме того, это не предотвратило бы возможности параллельной вставки в другой транзакции нового кортежа в уничтожаемое отношение.