КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Программирование транзакций
Проблемы одновременного доступа к данным Транзакции
При создании систем на основе технологии "клиент-сервер" возникает ряд технических проблем, в частности, — получение на стороне клиента достоверной информации. Один из способов решения этой задачи основывается на применении механизма транзакций. Смысл использования транзакций достаточно прост: несколько команд, связанных логикой выполнения, объединяется в одну операцию. Невыполнение какой-либо из них может привести к общему неверному результату, исправить который будет достаточно сложно. Транзакция — это группа инструкций SQL, исполняемых как единое целое. Невыполнение одной инструкции приводит к откату состояния данных на начало транзакции. При параллельной работе нескольких пользователей может возникнуть рассогласование данных. Выделю четыре нежелательных последствия доступа клиентов к одним и тем же данным: - Потеря обновления. Ситуация возникает при использовании неизолированных друг от друга транзакции. По этой причине несколько транзакций могут считывать и изменять одни и те же данные. В результате все - "Грязное" чтение. Если одни и те же данные будут одновременно читаться и изменяться разными транзакциями, то полученная информация может оказаться противоречивой. Причины тому, по крайней мере, две: • транзакция еще не закончила все изменения данных (например, корректировка в связанных таблицах — часть данных уже изменилась, • поскольку транзакция еще не закончена, то вообще неочевидно, что - Неповторяющиеся считывания. Если одна транзакция в процессе работы многократно считывает данные, а в это время вторая транзакция их изменяет, то первая транзакция, по крайней мере, дважды получит разные значения одних и тех же данных. - Фантомные считывания. Проблема возникает, когда одна транзакция считывает данные из таблицы, а вторая в этот момент вставляет (или удаляет) строки. Результат выполнения первой транзакции может оказаться для клиента весьма неожиданным.
При работе на стороне сервера может оказаться недостаточным использование исключительно автоматических транзакций, т. к. они действуют только в рамках одной команды. И вам придется управлять транзакциями программным путем. Довольно часто в транзакцию включают весь код хранимой процедуры.
Дата добавления: 2014-01-04; Просмотров: 733; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |