- •История развития баз данных.
- •Файлы и файловые системы.
- •Распределенные бд.
- •Архитектура бд. Физическая и логическая независимость.
- •Процесс прохождения пользовательского запроса.
- •Пользователи банков данных.
- •4. Первоначальная загрузка и ведение бд:
- •5. Защита данных:
- •Классификация моделей данных.
- •Иерархическая модель данных.
- •Сетевая модель данных.
- •Реляционная модель данных основные понятия.
- •Реляционная алгебра операции над отношениями.
- •История развития sql .
- •Структура языка sql.
- •Типы данных sql.
- •Системный анализ предметной области.
- •Инфологическая модель данных. "Сущность-связь". Основные понятия.
- •Характеристика связей и язык инфологического моделирования.
- •Классификация сущностей.
- •Элементы расширенного языка er-диаграмм.
- •Даталогическое проектирование.
- •Нормализация данных.
- •Нормальные формы.
- •Архитектура "клиент-сервер" в технологии баз данных.
- •Модели серверов баз данных.
- •Модели транзакций. Свойства транзакций.
- •Журнал транзакций.
- •Журнализация и буферизация транзакций.
- •Параллельное выполнение транзакций.
- •Хранимые процедуры.
- •Встроенный sql.
Модели транзакций. Свойства транзакций.
Модели транзакций. Транзакцией называется последовательность операций, производимых над БД и переводящих БД из одного непротиворечивого (согласованного) состояния в другое непротиворечивое состояние. Транзакция рассматривается как некоторое неделимое действие над БД, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Разработчик БД определяет семантику совокупности операций на БД, которая моделирует с точки зрения разработчика некоторую одну неразрывную работу (это и составляет транзакцию). Например, принимается заказ в фирме на изготовление компьютера. Компьютер состоит из комплектующих, которые сразу резервируются за данным заказом в момент его оформления. Тогда транзакцией будет вся последовательность операций, включающая следующие:
ввод нового заказа со всеми реквизитами заказчика;
изменения состояния для всех выбранных комплектующих на складе на "занято" с привязкой к определенному заказу;
подсчет стоимости заказа с формированием платежного документа (например, выставляемого счета к оплате);
включение нового заказа в производство.
С точки зрения работника - это единая последовательность операций. Если она будет прервана, то БД потеряет свое целостное состояние. Свойства транзакций. Способы их завершения. Модели транзакций классифицируются на основании различных свойств:
структура транзакции
параллельность внутри транзакции
продолжительность
Типы транзакций:
Плоские (классические)
Цепочечные.
Вложенные.
Плоские транзакции характеризуются 4 классическими свойствами:
атомарность;
согласованность;
изолированность;
долговечность (прочность).
Иногда данные транзакции называются ACID-транзакциями. ACID - Atomicity, Consistency, Isolation, Durability. Упомянутые выше свойства означают следующее: Атомарность - выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе. Согласованность - гарантирует, что по мере выполнения транзакций, данные переходят из одного согласованного состояния в другое, т.е. транзакция не разрушает взаимной согласованности данных. Изолированность - означает, что конкурирующие за доступ к БД транзакции физически обрабатываются последовательно, изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно. Долговечность - если транзакция завершена успешно, то те изменения, в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах.
Журнал транзакций.
Реализация в СУБД принципа сохранения промежуточных состояний, подтверждения или отката транзакции обеспечивается специальным механизмом, для поддержки которого создается некоторая системная структура, называемая журналом транзакций. Он предназначен для обеспечения надежного хранения данных в БД, а также для возможности восстановления согласованного состояния БД после любого рода аппаратных и программных сбоев. Для выполнения восстановления необходима некоторая дополнительная информация, которая поддерживается в виде журнала изменений в БД. Журнализация и восстановление тесно связаны с понятием транзакции. Общие принципы восстановления:
Результаты зафиксированных транзакций должны быть сохранены в восстановленном состоянии БД.
Результаты незафиксированных транзакций должны отсутствовать в восстановленном состоянии БД.
Это означает, что восстанавливается последнее по времени согласованное состояние БД. Ситуации, при которых требуется производить восстановление состояния БД:
Индивидуальный откат транзакции. Должен быть применен в следующих случаях:
оператор ROLLBACK;
аварийное завершение программы;
принудительный откат транзакции в случае взаимной блокировки при параллельном выполнении транзакций. Для выхода из тупика данная транзакция может быть выбрана в качестве "жертвы" и принудительно прекращено ее выполнение ядром СУБД.
восстановление после внезапной потери содержимого ОП (мягкий сбой). Случаи:
при аварийном выключении электропитания;
при возникновении неустранимого сбоя процессора. Такая ситуация характеризуется потерей той части БД, которая к моменту сбоя содержалась в буферах ОП.
восстановление после поломки основного внешнего носителя БД (жесткий сбой). Происходит очень редко, но тем не менее СУБД должна быть в состоянии восстановить базу данных даже в этом случае. Основой восстановления является архивная копия и журнал изменений БД.
Возможны два основных варианта ведения журнальной информации:
Для каждой транзакции поддерживается отдельный локальный журнал изменений БД этой транзакцией (локальные журналы). Они используются для индивидуальных откатов транзакций и могут поддерживаться в виртуальной памяти.
Общий журнал изменений БД, используемый для восстановления состояния БД после мягких и жестких сбоев.
Достоинства:
Позволяет выполнять индивидуальные откаты транзакций.
Недостатки:
Приводит к дублированию информации в локальном и общем журналах, => лучше использовать второй вариант.