Тема_9 (1122360), страница 2
Текст из файла (страница 2)
Базы данных17УправлениОбщее понятие транзакции и основные характеристикитранзакций (14) Транзакции и целостность баз данных (7)Простое и элегантное решение этой проблемы предлагают Дейт и ДарвенАвторы предлагают отказаться от откладываемых ограниченийцелостности базы данных, а вместо этого ввести составные операторыизменения базы данныхПосле выполнения каждого такого блоканечто наподобие блоков BEGIN … END, поддерживаемых в языкахпрограммированияили отдельного оператора изменения базы данных, используемого безоператоров начала и конца блокабаза данных должна находится в целостном состоянииЕсли составной оператор нарушает ограничение целостности, то онцеликом отвергается, и вырабатывается соответствующий код ошибкиТранзакция в этом случае не откатываетсяПпри использовании такого подхода при выполнении оператора COMMITне требуется проверять ограничения целостности,и каждая зафиксированная транзакция будет оставлять базу данных в целостномсостоянии03.12.2009С.Д.Кузнецов.
Базы данных18УправлениОбщее понятие транзакции и основные характеристикитранзакций (15) Транзакции и целостность баз данных (8)Для реализации описанного подхода нетребуются какие-либо новые механизмы,крометочек сохранения транзакции,насильственной проверки ограниченийцелостности ичастичных откатов транзакций,а отмеченные ранее проблемы снимаютсяК сожалению, этот подход на практикепока не применяется03.12.2009С.Д.Кузнецов. Базы данных19УправлениОбщее понятие транзакции и основные характеристикитранзакций (15) Изолированность транзакций (1)В многопользовательских системах содной базой данных одновременно можетработать несколько пользователей илиприкладных программПредельной задачей системы являетсяобеспечение изолированностипользователей,т.е. создание достоверной и надежнойиллюзии того, что каждый из пользователейработает с базой данных в одиночку03.12.2009С.Д.Кузнецов. Базы данных20УправлениОбщее понятие транзакции и основные характеристикитранзакций (16) Изолированность транзакций (2)В связи со свойством сохранения целостностибазы данных транзакции являются подходящимиединицами изолированности пользователейДействительно, если с каждым сеансом работыпользователя или приложений с базой данныхассоциируется транзакция, токаждый пользователь начинает работу ссогласованным состоянием базы данных,oт.е.
с таким состоянием, в котором база данных могла бынаходиться, даже если бы пользователь работал с ней водиночку03.12.2009С.Д.Кузнецов. Базы данных21УправлениОбщее понятие транзакции и основные характеристикитранзакций (17) Изолированность транзакций (3)При соблюдении обязательноготребования поддержки целостностибазы данных возможно наличиенескольких уровней изолированноститранзакцийВпервые эти уровни изолированноститранзакций были установлены иописаны участниками проекта SystemR03.12.2009С.Д.Кузнецов.
Базы данных22УправлениОбщее понятие транзакции и основные характеристикитранзакций (18) Изолированность транзакций (4)Потерянные изменения (1)В момент времени t1транзакция T1 изменяетобъект базы данных o(выполняет операцию W(o))До завершения транзакцииT1 в момент времени t2 > t1транзакция T2 также изменяетобъект oВ момент времени t3 > t2 транзакция T2завершается оператором ROLLBACK (например,по причине нарушения ограниченийцелостности)03.12.2009С.Д.Кузнецов.
Базы данных23УправлениОбщее понятие транзакции и основные характеристикитранзакций (19) Изолированность транзакций (5)Потерянные изменения (2)Тогда при повторномчтении объекта oвыполнении операцииR(o)в момент времени t4 > t3транзакция T1 не видитсвоих изменений этого объекта,произведенных ранеев частности, из-за этого может не удастся фиксацияэтой транзакции, что, возможно, повлечет потерюизменений у еще одной транзакции и т.д.03.12.2009С.Д.Кузнецов.
Базы данных24УправлениОбщее понятие транзакции и основные характеристикитранзакций (19) Изолированность транзакций (5)Потерянные изменения (3)Такая ситуация называется ситуацией потерянныхизмененийЕстественно, она противоречит требованиюизолированности пользователейЧтобы избежать такой ситуации в транзакции T1 требуется,чтобы до завершения транзакции T1 никакая другаятранзакция не могла изменять никакой измененныйтранзакцией T1 объект o в частности, достаточно заблокировать доступ по изменениюк объекту o до завершения транзакции T1Отсутствие потерянных изменений является минимальнымтребованием к СУБД при обеспечении изолированностиодновременно выполняемых транзакций03.12.2009С.Д.Кузнецов.
Базы данных25УправлениОбщее понятие транзакции и основные характеристикитранзакций (20) Изолированность транзакций (6)Отсутствие чтения «грязных» данных (1)В момент времени t1транзакция T1 изменяетобъект базы данных o выполняет операцию W(o)В момент времени t2 > t1транзакция T2 читает объект o выполняет операцию R(o)Поскольку транзакция T1 ещене завершена, транзакция T2 видит несогласованные«грязные» данныеВ частности, в момент времени t3 > t2 транзакция T1 можетзавершиться откатом например, по причине нарушения ограничений целостности03.12.2009С.Д.Кузнецов. Базы данных26УправлениОбщее понятие транзакции и основные характеристикитранзакций (21) Изолированность транзакций (7)Отсутствие чтения «грязных» данных (2)Эта ситуация тоже не соответствует требованиюизолированности пользователейкаждый пользователь начинает свою транзакцию присогласованном состоянии базы данных и имеет правовидеть только согласованные данныеЧтобы избежать ситуации чтения "грязных"данных, до завершения транзакции T1,изменившей объект базы данных o, никакаядругая транзакция не должна читать объект oнапример, достаточно заблокировать доступ по чтениюк объекту o до завершения изменившей его транзакцииT103.12.2009С.Д.Кузнецов.
Базы данных27УправлениОбщее понятие транзакции и основные характеристикитранзакций (22) Изолированность транзакций (8)Отсутствие неповторяющихся чтений (1)В момент времени t1транзакция T1 читаетобъект базы данных oДо завершения транзакцииT1 в момент времени t2 > t1транзакция T2 изменяетобъект oвыполняет операцию R(o)выполняет операцию W(o)и успешно завершается оператором COMMITВ момент времени t3 > t2 транзакция T1повторно читает объект o и видит егоизмененное состояние03.12.2009С.Д.Кузнецов. Базы данных28УправлениОбщее понятие транзакции и основные характеристикитранзакций (23) Изолированность транзакций (9)Отсутствие неповторяющихся чтений (2)Чтобы избежать неповторяющихся чтений, дозавершения транзакции T1 никакая другаятранзакция не должна изменять объект oдля этого достаточно заблокировать доступ по записи кобъекту o до завершения транзакции T1Часто это является максимальным требованиемк средствам обеспечения изолированноститранзакций, хотя отсутствие неповторяющихсячтений еще не гарантирует реальнойизолированности пользователей03.12.2009С.Д.Кузнецов.
Базы данных29УправлениОбщее понятие транзакции и основные характеристикитранзакций (24) Изолированность транзакций (10)Существует возможность обеспечения разных уровнейизолированности для разных транзакций, выполняющихся водной системе баз данных соответствующие операторы были предусмотрены уже встандарте SQL:1992Как уже отмечалось, для корректного соблюденияограничений целостности достаточен первый уровеньСуществует ряд приложений, которым хватает первогоуровня изолированности например, прикладные или системные статистическиеутилиты, для которых некорректность индивидуальныхданных несущественнаПри этом удается существенно сократить накладныерасходы СУБД и повысить общую эффективность.03.12.2009С.Д.Кузнецов. Базы данных30УправлениОбщее понятие транзакции и основные характеристикитранзакций (25) Изолированность транзакций (11)Проблема фантомов (1)К более тонким проблемамизолированности транзакцийотносится так называемаяпроблема кортежей«фантомов», приводящаяк ситуациям, которые такжепротиворечат изолированностипользователейВ момент времени t1 транзакция T1 выполняетоператор выборки кортежей таблицы Tab сусловием выборки Sт.е.
выбирается часть кортежей таблицы Tab,удовлетворяющих условию S03.12.2009С.Д.Кузнецов. Базы данных31УправлениОбщее понятие транзакции и основные характеристикитранзакций (26) Изолированность транзакций (12)Проблема фантомов (2)До завершениятранзакции T1 в моментвремени t2 > t1 транзакцияT2 вставляет в таблицу Tabновый кортеж r, удовлетворяющий условию S, иуспешно завершаетсяВ момент времени t3 > t2 транзакция T1повторно выполняет тот же оператор выборки, ив результате появляется кортеж, которыйотсутствовал при первом выполнении оператора.03.12.2009С.Д.Кузнецов. Базы данных32УправлениОбщее понятие транзакции и основные характеристикитранзакций (27) Изолированность транзакций (13)Проблема фантомов (3)Конечно, такая ситуация противоречит идееизолированности транзакций и может возникнутьдаже на третьем уровне изолированноститранзакцийЧтобы избежать появления кортежей-фантомов,требуется более высокий «логический» уровеньизоляции транзакцийИдеи требуемого механизмапредикатные синхронизационные блокировкипоявились также еще во время выполненияпроекта System R, но в большинстве систем нереализованы.03.12.2009С.Д.Кузнецов.