
- •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.3. Режимы доступа к информации
При работе в многопользовательской среде файлы могут быть открыты в одном из режимов - разделяемом или исключительном. При исключительном (монопольном, эксклюзивном) режиме доступа с данной информационной единицей может работать только тот пользователь, который первый открыл файл. Эксклюзивное использование иногда называют блокировкой типа X (eXclusive lock), а разделяемое (блокировка с взаимным доступом) - S (Shared lock). Исключительные блокировки используются для операторов, изменяющих структуру таблицы или значения тех или иных полей.
Возможные сочетания видов блокировок приведены ниже.
|
X |
S |
- |
X |
N |
N |
Y |
S |
N |
Y |
Y |
- |
Y |
Y |
Y |
Эти же виды блокировок могут быть использованы и при блокировании других информационных единиц, например записи. Выбор вида (блокировки и информационной единицы, к которой она относится, зависит от того, какая операция выполняется, как много таких операций, каковы ограничения по времени выполнения обработки. Например, если осуществляется массовая корректировка какого-либо файла, то лучше открыть его в эксклюзивном режиме, чем последовательно блокировать каждую запись.
На рис. 10.7 изображен механизм использования блокировок при выполнении параллельных операций над данными. На этом рисунке представлена тупиковая ситуация, когда две транзакции одновременно ждут снятия блокировки. СУБД должны иметь механизмы разрешения тупиковых ситуаций.
10.4.4. Уровни изоляции в sql
Подходы к разрешению проблем параллелизма в SQL претерпевали изменения по мере развития языка. Первоначально стандарт предписывал такую организацию одновременного выполнения операторов, чтобы это соответствовало ситуации, когда ни один из операторов не вводится до полного завершения предыдущего. В этой ситуации в любой момент времени только одна транзакция может иметь возможность изменять данные. Однако при большом числе одновременных корректирующих обращений такой подход может значительно снизить производительность системы. Поэтому (в тех случаях, когда это возможно, ищется компромисс между обеспечением строгой целостности базы данных в любой момент времени и производительностью.
В SQL-92 определены так называемые уровни изоляции (isolation level).
Уровень SERIALIZABLE (последовательное выполнение) -обеспечивает максимальную степень целостности и соответствует требованиям предыдущих стандартов. Обычно именно этот уровень устанавливается по умолчанию. При его выборе каждая транзакция выполняется изолированно.
Уровень REPEATABLE READ (повторяющееся чтение) - допускает вставку новой записи в таблицу, обрабатываемую транзакцией. При этом в принципе может возникать эффект так называемой фантомной вставки.
Уровень READ COMMITTED (чтение с фиксацией) - допускает выполнение запроса при условии, что результаты параллельных транзакций были зафиксированы.
Уровень READ UNCOMMITTED (чтение без фиксации) - допускает выполнение запроса независимо от того, были зафиксированы результаты параллельных транзакций или нет.
Если транзакция объявлена как READ ONLY, то это переводит ее на уровень READ UNCOMMITTED.
Уровень изоляции определяется в предложении SET TRANSACTION, которое имеет следующий синтаксис:
SET TRANSACTION {ISOLATION LEVEL
{READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SERIALIZABLE}
| {READ ONLY | READ WRITE}
| {DIAGNOSTICS SIZE число условий}}.,..;
Предложение DIAGNOSTICS SIZE определяет количество элементов, используемых для сохранения диагностической информации.
Уровень изоляции и характер транзакции (только чтение или чтение/запись) являются взаимозависимыми. Если задано READ WRITE, то ISOLATION LEVEL не может быть READ UNCOMMITTED. Если ISOLATION LEVEL определен как READ UNCOMMITTED, транзакция становится по умолчанию READ ONLY. В противном случае транзакция по умолчанию считается READ WRITE.