- •1. Структура модулей и преимущества их использования
- •2. Описание объектных типов в языке программирования Pascal. Статические и виртуальные методы.
- •Нетипизированные файлы
- •Текстовые фалы
- •4. Моделирование линейных динамических информационных структур средствами высокого уровня
- •5. Рекурсивные процедуры обхода двоичных деревьев.
- •6. Представление разреженных матриц линейными массивами
- •8. Номенклатура сегментных регистров и способы адресации в младших моделях процессоров Intel.
- •8. Макросредства языка Assembler.
- •9. Основные типы ядра операционной системы
- •11. Семиуровневая модель взаимодействия открытых систем iso.
- •Уровни модели osi
- •12. Технология «клиент-сервер». Назначение прокси-сервера, сервера приложений, web-сервера и т.П.
- •13. Барьерная синхронизация. Флаги и управляющие процессы: крупномодульное решение.
- •15. Алгоритмы сортировки.
- •16. Нормализация. 1нф, н1нф, 2нф, 3нф, нфбк.
- •17. Транзакции. Тупики. Уровни изолированности пользователей.
- •II. Транзакции и параллельная работа
- •III. Транзакции, откаты и восстановление после сбоев
- •18. Язык sql. Таблицы. Запросы. Вставка, удаление и обновление.
- •19. Реляционная алгебра.
- •20. Классические и стандартные технологические процессы.
- •21. Основные технологические подходы.
- •3.5.2.4.
- •23. Создание mdi приложений в Delphi.
- •24. Методы описания языков программирования. Бнф. Классы грамматик языков. Общая схема трансляции. Функции отдельных блоков транслятора.
17. Транзакции. Тупики. Уровни изолированности пользователей.
Объединение нескольких операций в неделимое целое называют транзакцией.
Замечание: Во время выполнения транзакции база может рассогласовываться.
Транзакционный механизм должен обеспечить:
1. Сохранение целостности данных
2. Параллельную работу
3. Восстановление данных при отказах и сбоях.
При отказах информационной системы желательно сохранить сведения о попытке выполнения транзакции. Если при этом транзакция была выполнена частично, то уже выполненную часть операций необходимо откатить. После восстановления системы транзакция должна быть выполнена повторно.
Определение: Транзакция – это последовательность операторов, выполняющаяся как единое целое и переводящая базу данных из одного согласованного состояния в другое согласованное состояние.
В транзакциях используют следующие операторы:
чтения данных;
манипулирования данными;
блокирования / разблокирования ресурсов.
Свойства транзакций АСИД (Английская аббревиатура ACID (Atomicity, Consistency, Isolation, Durability)):
(А) Атомарность. Транзакция выполняется как единое целое (либо все выполняется, либо все не выполняется).
(С) Согласованность. Транзакция переводит базу данных из одного согласованного состояния в другое согласованное состояние. Внутри транзакции согласованность базы
данных может нарушаться.
(И) Изолированность. Транзакции разных пользователей не должны мешать друг другу.
(Д) Долговечность. Результаты работы выполненной транзакции должны сохраниться в базе данных, даже если по завершении транзакции произойдет сбой системы.
Замечание о свойствах АСИД
Свойства транзакций за исключением атомарности не всегда выполняются в полном объеме.
Согласованность. Нарушается внутри транзакции. При неполной изоляции транзакций несогласованные данные могут быть доступны другим транзакциям.
Изоляция. Полной изоляции транзакций можно достигнуть, только если принудительно выстраивать транзакции в очередь и исполнять их строго одну после другой. При этом достаточно одной из транзакций зависнуть или выполняться слишком долго, чтобы остановить все работы. Поэтому вводится несколько уровней неполной изоляции.
Долговечность. Может нарушаться если транзакция T2, вызванная из транзакции T1 будет завершена успешно, а T1 откатится.
Оформление транзакций в языках
Два способа запуска транзакции:
Транзакция обычно начинается автоматически с момента присоединения пользователя к СУБД (пример - Oracle).
Транзакция начинается специальной командой BEGIN TRANSACTION или другой командой аналогичного назначения (например, в Caché).
Транзакция завершается (успешно или не успешно) специальными командами или по событию:
Команда COMMIT [WORK] (зафиксировать транзакцию).
Команда ROLLBACK [WORK] (откатить транзакцию).
Событие “Отключение пользователя от СУБД”.
Событие “Сбой системы”.
Событие “Отключение системы”
Транзакции и ограничения целостности
Нарушения целостности
Определение: База данных находится в согласованном (целостном) состоянии, если выполнены все (процедурные и декларативные) ограничения целостности, определенные в реализации базы данных.
Для распределённых баз данных важна ещё согласованность копий фрагментов данных в узлах. Меру различия между копиями данных в узлах сети называют связанностью данных. Распределённая база не может обеспечить одновременно высокую связность и высокую скорость работы.
Система управления базами данных обязана реагировать на любые попытки нарушения целостности.
Два основных типа реакции СУБД:
Отказ выполнить "недопустимую" операцию.
Выполнение действий, компенсирующих нарушения ограничений целостности. Вариант реализуется процедурно.
Классификация ограничений целостности:
По способам реализации.
По времени проверки.
По области действия.
Классификация ограничений целостности по способам реализации:
Декларативная поддержка ограничений целостности.
Процедурная поддержка ограничений целостности.
