- •Файловый подход:
- •2. Организация интегрированной информационной базы сои – сущность подхода, достоинства и недостатки.
- •3. Понятие субд, основные функции субд.
- •4. Обеспечения безопасности и секретности данных.
- •5.Избирательный подход к обеспечению безопасности данных.Обязательный подход к обеспечению безопасности данных.
- •6. Контрольный след файла, модификация запроса как подходы к обеспечению безопасности данных.
- •7. Безопасность в статистических бд.
- •8. Проблемы обеспечения управляемой избыточности и целостности данных.
- •9. Понятие транзакции, свойства транзакции, способы завершения транзакции.
- •10.Основные подходы к обеспечению параллельного выполнения транзакций. Проблемы параллельного выполнения транзакций.
- •11. Проблема пропавших изменений.
- •12. Проблема промежуточных данных.
- •13. Проблема несогласованных данных.
- •14. Проблема данных–призраков.
- •15. Синхронизация запросов к бд с использованием блокировок. Элементы бд. Необходимость блокировки элементов бд. Элемент как примитив синхронизации. Легальное расписание.
- •16. Бесконечные ожидания. Решение проблемы бесконечного ожидания.
- •17. Тупики. Способы предотвращения тупиков.
- •18. Понятие расписания совокупности транзакций. Сериализуемое расписание.
- •19. Понятие протокола. Двухфазный протокол. Двухфазные транзакции. Типы блокировок.
- •20. Стратегия временных отметок, оптимистические стратегии.
- •21. Защита бд от отказов. Типы отказов. Архивные копии бд, Журнал бд. Зафиксированные транзакции. Стратегия двухфазной фиксации
- •23. Администрирование бд
- •25. Трехуровневая архитектура бд
- •27.Инфологический и даталогический уровни моделирования предметной области.
- •28. Классификация моделей данных
- •30. Инфологическое моделирование. Модель «сущность–связь»: Сущности,классификация и характеристика сущностей.
- •31. Инфологическое моделирование. Модель «сущность–связь»: Атрибуты, классификация и характеристика атрибутов.
- •32. Инфологическое моделирование. Модель «сущность–связь»: Связи, классификация и характеристика связи.
- •33. Инфологическое моделирование. Модель «сущность–связь»: Первичные и внешние ключи.
- •34. Инфологическое моделирование. Модель «сущность–связь»: ограничение целостности.
- •35. Документальные,тезаурусные и дескрипторные модели данных.
- •Операции над данными, определенные в иерархической модели:
- •Ограничения целостности.
- •Недостатки
- •Особенности построения сетевой модели данных
- •Преимущества
- •Недостатки
- •Операции над данными сетевой модели
- •38. Реляционная модель данных Состав реляционной модели данных
- •Достоинства и недостатки реляционной модели данных
- •40. Нормализованные отношения. Первичные и вторичные ключи отношений. Моделирование связей в реляционной модели данных. Внешние ключи
- •52. Реляционное исчисление.
- •60. Язык sql. Назначения языка. Стандарты sql. Подмножества языка.
18. Понятие расписания совокупности транзакций. Сериализуемое расписание.
Расписанием называется упорядоченная последовательность действий, предпринимаемых в процессе выполнения одной или нескольких транзакции.
Расписание последовательно, если оно подразумевает выполнение всех действий одной транзакции, а затем всех действий другой транзакции, и т.д.
Расписание называется условно-последовательным, если результат его реализации оказывается аналогичным результату реализации последовательного расписания.
Сериализация (в программировании) — процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации (структуризации) — восстановление начального состояния структуры данных из битовой последовательности.
// К сожалению, нормальную инфу найти не удалось
• Расписание называется сериализуемым, если оно эквивалентно по конфликтам серийному
19. Понятие протокола. Двухфазный протокол. Двухфазные транзакции. Типы блокировок.
Протокол передачи данных — набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при взаимодействии программного обеспечения разнесённой в пространстве аппаратуры, соединённой тем или иным интерфейсом.
Протокол двухфазной блокировки
Важную роль в обеспечении корректной параллельной обработки транзакций играет «протокол двухфазной блокировки» (Two Phase Locking – 2PL). Существует соответствующая теорема, что сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют правилу: "Ни одна блокировка от имени какой-либо транзакции не должна устанавливаться, пока не будет снята ранее установленная блокировка". Это правило известно под названием двухфазовое блокирование.
Суть 2PL в том, что нельзя снять однажды наложенную блокировку до тех пор, пока не наложены все блокировки, необходимые транзакции. Таким образом, работа с блокировками в транзакции делится на две фазы: фаза наложения блокировок и фаза снятия. В практических реализациях, как правило, применяется строгий протокол двухфазной блокировки – Strict 2PL. Его особенность в том, что фаза снятия блокировок наступает после фиксации транзакции.
Двухфазные транзакции
Распределенные системы обычно включают несколько компьютеров - серверов баз данных, называемых узлами. Данные физически распределены между ними. На каждом узле содержится некоторая локальная база данных, содержащая фрагмент данных из общей распределенной базы. В распределенных базах транзакция, выполнение которой заключается в обновлении данных на нескольких узлах сети, называется глобальной или распределенной транзакцией.
Внешне выполнение распределенной транзакции выглядит как обработка транзакции к локальной базе данных. Тем не менее распределенная транзакция включает в себя несколько локальных транзакций, каждая из которых завершается двумя путями - фиксируется или прерывается. Распределенная транзакция фиксируется только в том случае, когда зафиксированы все локальные транзакции, ее составляющие. Если хотя бы одна из локальных транзакций была прервана, то должна быть прервана и распределенная транзакция. Как на практике учесть это требование?
Для этого в современных СУБД предусмотрен так называемый протокол двухфазовой (или двухфазной) фиксации транзакций (two-phase commit). Название отражает тот факт, что фиксация распределенной транзакции выполняется в две фазы.
Фаза 1 начинается, когда при обработке транзакции встретился оператор COMMIT. Сервер распределенной БД (или компонент СУБД, отвечающий за обработку распределенных транзакций) направляет уведомление "подготовиться к фиксации" всем серверам локальных БД, выполняющим распределенную транзакцию. Если все серверы приготовились к фиксации (то есть откликнулись на уведомление и отклик был получен), сервер распределенной БД принимает решение о фиксации. Серверы локальных БД остаются в состоянии готовности и ожидают от него команды "зафиксировать". Если хотя бы один из серверов не откликнулся на уведомление в силу каких-либо причин, будь то аппаратная или программная ошибка, то сервер распределенной БД откатывает локальные транзакции на всех узлах, включая даже те, которые подготовились к фиксации и оповестили его об этом.
Фаза 2 - сервер распределенной БД направляет команду "зафиксировать" всем узлам, затронутым транзакцией, и гарантирует, что транзакции на них будут зафиксированы. Если связь с локальной базой данных потеряна в интервал времени между моментом, когда сервер распределенной БД принимает решение о фиксации транзакции, и моментом, когда сервер локальной БД подчиняется его команде, то сервер распределенной БД продолжает попытки завершить транзакцию, пока связь не будет восстановлена.
Типы блокировок:
Принудительное упорядочение транзакций обеспечивается с помощью механизма блокировок. Суть этого механизма в следующем: если для выполнения некоторой транзакции необходимо, чтобы некоторый объект базы данных (кортеж, набор кортежей, отношение, набор отношений,..) не изменялся непредсказуемо и без ведома этой транзакции, такой объект блокируется. Основными видами блокировок являются:
блокировка со взаимным доступом, называемая также S-блокировкой (от Shared locks) и блокировкой по чтению.
монопольная блокировка (без взаимного доступа), называемая также X-блокировкой от (eXclusive locks) или блокировкой по записи. Этот режим используется при операциях изменения, добавления и удаления объектов.
Применение механизма блокировки приводит к замедлению обработки транзакций, поскольку система вынуждена ожидать пока освободятся данные, захваченные конкурирующей транзакцией. Решить эту проблему можно за счет уменьшения фрагментов данных, захватываемых транзакцией.
В зависимости от захватываемых объектов различают несколько уровней блокировки:
блокируется вся база данных - очевидно, этот вариант неприемлим, поскольку сводит многопользовательский режим работы к однопользовательскому
блокируются отдельные таблицы
блокируются страницы (страница - фрагмент таблицы размером обычно 2-4 Кб, единица выделения памяти для обработки данных системой)
блокируются записи
блокируются отдельные поля