Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
52
Добавлен:
26.04.2015
Размер:
166.91 Кб
Скачать

31. Транзакция. Основные понятия.

Транзакция - это последов операторов манипулирования данными, выполняющаяся как единое целое и переводящая бд из одного целостного состояния в другое целостное состояние.Св-ва:

•(А)Атомарность. Транзакция выполняется как атомарная операция - либо выполняется вся транзакция целиком, либо она целиком не выполняется.

•(С)Согласованность. Транзакция переводит бд из одного согласованного (целостного) состояния в другое соглас (цел) сост. Внутри транзакции согласованность бд может нарушаться.

•(И) Изоляция. Транзакции разных пользователей не должны мешать друг другу .

•(Д)Долговечность. Если транзакция выполнена, то рез-ты ее работы должны сохраниться в бд, даже если в след момент произойдет сбой системы.

Транзакция начинается автоматически с момента присоединения пользователя к СУБД и продолжается пока не произойдет одно из следующих событий: •Подана команда COMMIT WORK (зафиксировать транзакцию). •Подана команда ROLLBACK WORK (откатить транзакцию). •Произошло отсоединение пользователя от СУБД. •Произошел сбой системы.

Команда COMMIT WORK завершает текущую транзакцию и автоматически начинает новую транзакцию. При этом гарантируется, что рез-ты работы завершенной транзакции сохраняются в БД. Команда ROLLBACK WORK приводит к тому, что все изменения, сделанные текущей транзакцией откатываются. При отсоединении пользователя от СУБД происходит автоматическая фиксация транзакций. При сбое системы: при последующем запуске системы происходит анализ выполнявшихся до момента сбоя транзакций. Те транзакции, для кот была подана команда COMMIT WORK, но рез-ты работы которых не были занесены в базу данных выполняются снова. Те транзакции, для кот не была подана команда COMMIT WORK, откатываются. Св-ва АСИД транзакций не всегда выполняются в полном объеме. Особенно это относится к свойству И. Простейший способ обеспечить абсолютную изолированность: выстроить транзакции в очередь и выполнять их строго одну за другой. При этом теряется эффективность работы системы. Поэтому реально одновременно выполняется несколько транзакций. Различ несколько уровней изоляции транзакций. На низшем уровне изоляции транзакции могут реально мешать друг другу, на высшем они полностью изолированы. За большую изоляцию транзакций приходится платить большими накладными расходами системы и замедлением работы. Users или админы сис-мы могут по своему усмотрению задавать различ уровни всех или отдельн транзакций. Св-во Д также не явля абсолют свойством, т.к. некоторые сис-мы допускают вложенные транзакции.

32.Ограничения целостности

Ограничение целостности - это некоторое утверждение, кот может быть истинным или ложным в зависимости от состояния бд. Бд находится в согласованном (целостном) состоянии, если выполнены все ограничения целостности, опред для бд. В опред должны быть выполнены не все ограничения предметной области, а те, кот опред в бд. Для этого необх, чтобы СУБД обладала развитыми средствами поддержки ограничений целостности. Если какая-либо СУБД не может отобразить все необх ограничения предметной области, то такая БД хотя и будет находиться в целостном состоянии с точки зрения СУБД, но это состояние не будет правильным с точки зрения пользователя. Согласованность БД есть формальное свойство БД. БД не понимает "смысла" хранимых данных. "Смыслом" данных для СУБД явл весь набор ограничений целостности. Если все ограничения выполнены, то СУБД считает, что данные корректны. Система должна должным образом реагировать, если операция приводит к нарушению целостности. Два типа реакции на попытку нарушения целостности: 1.Отказ выполнить "незаконную" операцию. 2.Выполнение компенсирующих действий.

Классиф огранич целостн по способам реализации: •Декларативная поддержка ограничений целостности. •Процедурная поддержка ограничений целостности. Деклар поддержка ограничений целост заключ в опред ограничений средствами яз определения данных DDL. Средства деклар поддержки целост опред ограничения на значения доменов и атрибутов, целостность сущностей и ссылочную целостность (целостность внешних ключей). Деклар ограничения целос можно использ при создании и модификации таблиц средствами яз DDL или в виде отдельных утверждений. Процедурная поддержка ограничений целостности заключ в использ триггеров и хранимых процедур. Не все ограничения целост можно реализовать деклар. Классиф огранич целост по времени проверки: •Немедленно проверяемые ограничения. •Ограничения с отложенной проверкой. Немедленно проверяемые ограничения проверяются непосредственно в момент выполнения операции, могущей нарушить ограничение. Транзакция, внутри кот произошло нарушение немедленно проверяемого утверждения целостности, обычно откатывается. Ограничения с отложенной проверкой проверяется в момент фиксации транзакции оператором COMMIT WORK. Внутри транзакции ограничение может не выполняться. Если в момент фиксации транзакции обнаруживается нарушение ограничения с отложенной проверкой, то транзакция откатывается. Класси огранич целост по области действия: •Ограничения домена •Ограничения атрибута •Ограничения кортежа •Ограничения отношения •Ограничения бд. Ограничения целостности домена представляют собой ограничения, накладываемые только на допустимые значения домена. Ограничения домена обязаны явл частью определения домена. Ограничение целост атрибута представляют собой огранич, наклад на допустимые значения атрибута вследствие того, что атрибут основан на каком-либо домене. Отличие ограничений атрибута от ограничений домена в том, что ограничения атрибута проверяются. Ограничение атрибута явл немедленно проверяемым ограничением. Ограничения целост кортежа представляют собой огранич, наклад на допустимые значения отдельного кортежа отношения, и не явл ограничением целост атрибута. Ограничения целост отношения представляют огранич, наклад только на допустимые значения отдельного отношения, и не явл ограничением целост кортежа. Ограничения целост бд представляют огранич, наклад на значения двух или более связанных между собой отношений (в том числе отношение может быть связано само с собой). Ограничение бд может быть как немедленно проверяемым ограничением, так и ограничением с отложенной проверкой.

Соседние файлы в папке Подмога_БД_Лапшин