
- •Файловый подход:
- •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. Подмножества языка.
16. Бесконечные ожидания. Решение проблемы бесконечного ожидания.
Ожидание и тупики. При использовании механизма блокировок сталкиваются с такими двумя нежелательными явлениями, как бесконечные ожидания и тупиковые ситуации.
Пример бесконечного ожидания:
Tранзакция Т2 |
время |
TранзакцияТ1 |
Tранзакция Т3 |
TранзакцияТ4 |
|
т1 |
Блокиро—вание Д |
|
|
|
|
Чтение Д |
|
|
Попытка блокиро—вания Д – отказ |
тк |
|
|
|
ожидание... |
тк+1 |
Разблоки—рование Д |
|
|
|
|
|
Блокиро—вание Д(раньше, чем Т2) |
|
|
|
|
Чтение Д |
Блокиро—вание Д – отказ |
|
|
|
|
ожидание… |
Предположим, что транзакции T1, T2, Т3, Т4 исполнения программы, содержащей следующие действия: блокирование Д; чтение Д; изменение Д; подтверждение сохранения Д; разблокирование Д. Не исключена возможность того, что транзакция Т2 будет бесконечно находиться в состоянии ожидания, тогда как некоторые другие транзакции постоянно осуществляют блокировку Д, хотя и существует неограниченное число моментов, когда Т2 имеет шансы заблокировать Д. Состояние такого рода называется бесконечным ожиданием. Подобная проблема потенциально может возникнуть в любой обстановке, предусматривающей параллельное исполнение процессов (задача продажи билетов).
Теоретиками предлагаются различные пути решения этой проблемы. Простой способ заключается в том, что система предоставления блокировок должна регистрировать все неудовлетворенные немедленно запросы и предоставлять возможность блокировки элемента Д после его разблокирования первой запросившей его транзакции из числа ожидающих. Стратегия «первый вошел – первым обслужился» устраняет бесконечное ожидание, однако она может привести к тупикам.
17. Тупики. Способы предотвращения тупиков.
Использование блокировок может привести к различным нежелательным эффектам, таким как бесконечные ожидания и тупики.
Тупики возникают как правило из-за применения стратегии устранении бесконечного ожидания «первый вошел – первым обслужился».
Пример ситуации тупика приведен на рисунке 37. Есть две транзакции: транзакция Т1, содержащая команды, работающие с элементами данных А и В: LOCK(A); LOCK (B); …; UNLOCK (A); UNLOCK (B) и транзакция Т2: LOCK(B); LOCK (A); …; UNLOCK (B); UNLOCK (A). При этом не имеет значения, для каких процессов требуются элементы данных А и В в транзакциях Т1 и Т2 (команда LOCK – заблокировать элемент данных, команда UNLOCK – разблокировать элемент данных).
Транзакция T1 время Транзакция T2
Пример ситуации тупика:
LOCK(A) Т1 LOCK(В)
LOCK(В) НЕТ! Т2 LOCK(A) НЕТ!
Т3
ожидание ожидание
Каждая из транзакций ожидает, пока другая разблокирует требуемый для неё элемент. Ожидание будет бесконечным. Ситуация, при которой каждая из множества двух или более транзакций ожидает, когда ей будет предоставлена возможность заблокировать элемент, заблокированный в данный момент времени какой—либо иной транзакцией из рассматриваемого множества, называется тупиком.
Способы предотвращения тупиков являются объектом исследования в области теории БД. Предлагаются различные методы разрешения тупиков.
1) Выполняется линейное упорядочивание элементов по какому—либо признаку (например, последовательно перечисляются все элементы, подлежащие блокированию) и вводится системное требование на составление запросов (программ): все запросы должны выполнять блокировки в этом порядке.
2) Вводится системное требование, чтобы в каждом запросе (программе) каждой транзакции все требуемые блокировки запрашивались сразу. Это позволяет СУБД управлять транзакциями без тупиковых ситуаций.
3) Никакие системные требования не вводятся. СУБД просто следит за возникновением тупиковых ситуаций. При обнаружении тупика действие одной из транзакций останавливается, все выполненные ею изменения в БД устраняются, транзакция переводится либо в состояние ожидания, либо полностью аннулируется. При этом все данные об этой транзакции СУБД фиксирует в системных журналах для возможного последующего перезапуска.