
- •1. Основные понятия
- •2. Преимущества БнД
- •3. Недостатки БнД
- •1. Инфологическое проектирование
- •2. Определение требований к операционной обстановке
- •3. Выбор субд и других программных средств
- •4. Логическое проектирование бд
- •5. Физическое проектирование бд
- •1. Уточнение понятия концептуальной модели
- •2. Основные компоненты концептуальной модели
- •3. Требования, предъявляемые к концептуальной модели
- •4. Преимущества использования er-моделирования
- •1. Понятия «объект» и «класс объектов»
- •2. Разновидности объектов
- •3. Изображение простого объекта
- •1. Понятия «объект» и «класс объектов»
- •2. Разновидности объектов
- •3. Изображение простого объекта
- •1. Связи между объектами
- •2.2.4. Описание свойств объекта. Разновидности свойств
- •Ключевые атрибуты
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Четвертая нормальная форма
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Четвертая нормальная форма
- •1. Аномалии модификации данных
- •2. Нормализация отношений
- •3.4. Проектирование логической структуры реляционной базы данных
- •3.4.1. Вводные положения
- •3.4.2. Алгоритм перехода от базовой er-модели к схеме реляционной базы данных
- •3.1. Общие сведения о даталогическом проектировании
- •3.2. Критерии оценки бд
- •5)Поддержание наличия возможных ключей в таблице.
- •4.9.2. Ограничения целостности связи
- •4 Запросы с подгруппировкой
- •Пример.
- •Добавление новых элементов.
- •2) Многострочный оператор
- •Удаление существующих данных
- •Обновление существующих данных
- •На это следует обратить внимание
- •Распределенные бд. Технология клиент-сервер.
- •10.4.2. Блокировки
- •10.4.3. Режимы доступа к информации
- •10.4.4. Уровни изоляции в sql
- •10.4.5. Использование хранимых процедур и триггеров для контроля целостности бд
10.4.2. Блокировки
Проблемы, возникающие при одновременном обращении, нуждаются в своем разрешении. Наиболее популярные алгоритмы управления одновременным доступом основаны на механизме блокировок. Блокировка заключается в запрещении некоторых операций над данными (чаще - корректировки информации), если ее обрабатывает (корректирует) другой пользователь. В такой схеме всякий раз, когда транзакция пытается получить доступ к какой-либо единице данных, на эту единицу накладывается блокировка.
Обобщенная схема классификации блокировок приведена на рис. 10.6.
Блокировки накладываются в соответствии с правилами совместимости блокировок, исключающими конфликты чтение-запись, запись-чтение и запись-запись. Сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют следующему правилу: «Ни одна блокировка от имени какой-либо транзакции не должна устанавливаться, пока не будет снята ранее установленная блокировка». Это правило известно под названием двухфазового блокирования, поскольку транзакция проходит при этом сначала фазу роста, когда она устанавливает блокировки, а затем фазу сжатия, когда блокировки снимаются. В общем случае снятие блокировок до завершения транзакции проблематично, поэтому в большинстве алгоритмов управления одновременным доступом применяется подход, когда блокировки не снимаются до конца транзакции.
Блокировка может выполняться автоматически, а может и управляться пользователем. Включение автоматической группировки обусловливается выполняемой над данными операцией. Желательно, чтобы как можно больше ответственности за блокировку было перенесено с разработчика или пользователя на систему управления базой данных.
В зависимости от блокируемых информационных единиц можно выделить следующие уровни блокирования: база данных, совокупность связанных таблиц, таблица, совокупность связанных записей, запись, поле. Выше были названы логические единицы реляционных баз данных.
Бывает, что уровни блокирования определяются в терминах физических единиц информации. Уровень блокирования может зависеть не только от СУБД, но и от операционной системы и даже от архитектуры компьютера. В этом случае необходимо знать специфику конкретной платформы, на которой реализована система. Объектами блокирования могут являться страница (page), группа страниц, область базы данных (dbspace) и др. Терминология и реализация в значительной степени зависят от конкретной системы.
Физическая единица может включать как часть таблицы, так и несколько разных таблиц. Все это скажется на частоте возникновения конфликтов и времени обработки, что необходимо учитывать при физическом проектировании БД и при управлении параллельным доступом.
В конкретных СУБД могут быть реализованы не все, а только некоторые из перечисленных уровней блокировок. Так, практически нигде не реализована блокировка на уровне поля. В Microsoft SQL Server только начиная с версии 6.5 был добавлен уровень блокировки записи, и то только для операций типа INSERT. В dBase, FoxPro предусматривается блокировка на уровне таблиц и записей.
Блокировка на нижних уровнях приводит к перегрузке менеджера блокировок и, как следствие, к падению производительности системы. С другой стороны, блокировка на более высоком уровне мешает конкурирующим пользователям получить доступ к нужным данным.
Некоторые системы предусматривают динамическую схему блокировки, заключающуюся в том, что сначала транзакция блокирует большую информационную единицу, например страницу. Если проявляется другая транзакция, претендующая на какую-то запись внутри этой страницы, то первая транзакция автоматически уменьшит зону блокировки до уровня записи.
Различают пессимистические и оптимистические блокировки. Пессимистические блокировки запрещают доступ к данным других транзакций, когда какая-то транзакция уже работает с ними. Последующие операции, которые могут привести к конфликту, либо ставятся в очередь, либо отменяются.
Оптимистические блокировки разрешают параллельное выполнение транзакций, отслеживают случаи возникновения конфликтов и обеспечивают их разрешение.