Реферат: Базы данных 10

Общие ограничения целостности задаются с помощью оператора CREATE ASSERTION.

Синтаксис оператора:

CREATEASSERTION имя CHECK (условное выражение);

Здесь в параметре имя задается имя правила, а в параметре условное выражение – соответствующее условие ограничения.

Пример .

CREATE ASSERTION ABC1 CHECK

(NOT EXISTS (SELECT * FROM P

WHERE NOT (P.WEIGHT>0)));

Здесь применительно к таблице Р выполняется проверка, что каждый товар имеет положительный вес.

Лекция 10

1.19. Проблема параллелизма

При одновременном исполнении нескольких транзакций (при параллельной работе) между ними могут возникать конфликты, приводящие к нарушению целостности БД.

Рассмотрим пример нарушения целостности БД двумя параллельно действующими транзакциями, представленный в табл. .

Время

Операции

транзакции А

Операции

транзакции В

Результат

t1 Читает запись i 10
t2 Читает запись i 10
t3 К записи iприбавляет число 10

20

t4 К записи iприбавляет число 15

25

В момент t1 транзакция А читает запись i, которая содержит число 10.

В момент t2 другая транзакция читает это же число. В момент t3 транзакция А модифицирует прочитанное число, прибавляя к нему число 10. В результате в БД оказывается число 20. Но в следующий момент транзакция В модифицирует прочитанное число, прибавляя к нему число 15. Таким образам, в записи i оказывается число 25. Это результат параллельной работы этих транзакций. Очевидно, что результат неправильный, т.к. две транзакции в сумме прибавили число 25. Значит, окончательным результатом должно было быть число 35, а не 25.

Фактически результат модификации, выполненной транзакцией А, пропал.

1.20. Блокирование информационных объектов базы данных

Все современные СУБД ориентированы на поддержку одновременной работы многих пользователей, а следовательно, на параллельную обработку транзакций. Для кор­ректной обработки параллельных транзакций без возникновения конфликтных ситуаций необходимо использовать некоторыйметод управления параллелизмом. Основным методом управления параллелизмом является блокирование (альтернативными являются метод временных меток и оптимистичные технологии).

Его основная идея очень проста: в случае, когда для выполнения некоторой транзакции необходимо, чтобы некоторый объект базы данных (например, отдельный кортеж таблицы или вся таблица) не изменялся непредсказуемо и без ведома этой транзакции, такой объект блокируется. Таким образом, эффект блокирования состоит в том, чтобы "заблокировать доступ к этому объекту со стороны других транзакций", а значит, пре­дотвратить непредсказуемое изменение этого объекта. Следовательно, первая транзакция в состоянии выполнить всю необходимую обработку с учетом того, что обрабатываемый объект остается в стабильном состоянии настолько долго, насколько это нужно.

Реально блокирование может быть выполнено посредством установки некоторого бита в соответствующем объекте, означающего, что этот объект базы данных является заблокированным. Второй подход состоит в организации списка заблокированных объектов. Существуют и другие способы реализации механизма блокирования.

Для пояснения идеи блокирования рассмотрим пример, приведенный на рис.1.18.


Рис.1.18. Пример блокирования таблиц БД

К-во Просмотров: 768
Бесплатно скачать Реферат: Базы данных 10