Понятие транзакции. Средства реализации транзакций. Предложения COMMIT и ROLLBACK. |
Проблемы приложений с Web-интерфейсом и способы их решения.
Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Поддержание механизма транзакций является обязательным условием даже однопользовательских СУБД. Но понятие транзакции гораздо более важно в многопользовательских СУБД.
То свойство, что каждая транзакция начинается при целостном состоянии БД и оставляет это состояние целостным после своего завершения, делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к БД.
С управлением транзакциями в многопользовательской СУБД связаны важные понятия сериализации транзакций и сериального плана выполнения смеси транзакций. Под сериализаций параллельно выполняющихся транзакций понимается такой порядок планирования их работы, при котором суммарный эффект смеси транзакций эквивалентен эффекту их некоторого последовательного выполнения. Понятно, что если удается добиться действительно сериального выполнения смеси транзакций, то для каждого пользователя, по инициативе которого образована транзакция, присутствие других транзакций будет незаметно. Существует несколько базовых алгоритмов сериализации транзакций. В централизованных СУБД наиболее распространены алгоритмы, основанные на синхронизационных захватах объектов БД. При использовании любого алгоритма сериализации возможны ситуации конфликтов между двумя или более транзакциями по доступу к объектам БД. В этом случае для поддержания сериализации необходимо выполнить откат (ликвидировать все изменения, произведенные в БД) одной или более транзакций. Это один из случаев, когда пользователь многопользовательской СУБД может реально ощутить присутствие в системе транзакций других пользователей.
Стандарт ISO включает определение модели транзакций, построенной на использовании двух специальных операторов — COMMIT и ROLLBACK. Большинство коммерческих реализаций языка SQL (однако не все) поддерживает эту модель, которая впервые была реализована в СУБД DB2 компании IBM. Транзакциейназывается логическая единица работы, состоящая из одного или нескольких операторов SQL, которая с точки зрения восстановления данных будет рассматриваться и обрабатываться системой как единое неделимое действие. В стандарте указывается, что в языке SQL транзакция автоматически запускается любым инициализирующим транзакцию оператором SQL, выполняемым пользователем или программой (например, SELECT, INSERT или UPDATE). Изменения, внесенные в базу данных в ходе выполнения транзакции, не будут восприниматься любыми другими выполняющимися параллельно транзакциями до тех пор, пока эта транзакция не будет явным образом завершена. Завершение транзакции может быть выполнено одним из следующих четырех способов. Ввод оператора COMMIT означает успешное завершение транзакции. После его выполнения внесенные в базу данных изменения приобретают постоянный характер. После обработки оператора COMMIT ввод любого инициирующего транзакцию оператора автоматически вызовет запуск новой транзакции. Ввод оператора ROLLBACK означает отказ от завершения транзакции, в результате чего выполняется откат всех изменений в базе данных, внесенных при выполнении этой транзакции. После обработки оператора ROLLBACK ввод любого инициирующего транзакцию оператора автоматически вызовет запуск новой транзакции.
Квалификаторы READ ONLY и READ WRITE указывают, что в транзакциях допускается выполнение только операций чтения или чтения и записи. По умолчанию предполагается использование квалификагора READ WRITE. Существуют определенные свойства, которыми должна обладать любая из транзакций, которые принято обозначать аббревиатурой ACID (Atomicity, Consistency, Isolation, Durability — неразрывность, согласованность, изолированность, устойчивость). Неразрывность. Любая транзакция представляет собой неделимую единицу работы, которая может быть либо выполнена вся целиком, либо не выполнена вообще. За обеспечение неразрывности отвечает подсистема восстановления СУБД.Согласованность. Каждая транзакция должна переводить базу данных из одного согласованного состояния в другое. Ответственность за обеспечение согласованности возлагается и на СУБД, и на разработчиков приложений.В СУБД согласованность может обеспечиваться путем выполнения всех ограничений, заданных в схеме базы данных, таких как ограничения целостности и ограничения предметной области. Но подобное условие является недостаточным для обеспечения согласованности.
Web-приложения неприхотливы, требуют для своей работы лишь браузер, не зависят от платформы и не требуют инсталляции. На первый взгляд у них все преимущества, и обычные Windows-приложения обречены на вымирание.
Современный Интернет представляет собой превосходная среда публикации материала. Столь модный в последнее время Web 2.0 со своими социальными сетями и прочим является все той же средой публикации, только более специфической и частной информации.
Неудобный интерфейс. Приложения с Web-интерфейсом (WUI) не могут похвастаться той же интерактивностью и удобством как приложения с графическим интерфейсом (GUI). Использование последних технологий как AJAX, позволяют приблизить Web-интерфейс к GUI. Но всего лишь приблизить, web-приложения не поддерживают клавиатурных комбинаций, не позволяют перетаскивать данные с помощью drag-n-drop и т.д.
Если раньше разработка web-интерфейса более проста, чем GUI. То сегодня все изменилось, появились новые мощные среды разработки такие как Visual Studio 2008, позволяющие с легкостью набросать новый графический интерфейс, в то же время требования к web-интерфейсу значительно возросли.
Очевидно, что для разработки WUI требуются единые стандарты и библиотеки. Под едиными стандартами понимают стандарты позволяющие пользователям использовать различные web-приложения для редактирования данных, разного рода мелкие удобства такие как drag-n-drop и клавиатурные сочетания. Но пока не видно компаний, которые бы занимались их разработкой.
Не стоит забывать и про такой аспект как производительность - код на JavaScript в десятки раз медленнее выполняется, нежели код на C#. Есть еще один очень серьезный аспект - безопасность. Обеспечить безопасное хранение и редактирование документов в сети практически невозможно.
Как видите, WUI-приложениям необходимо решить проблемы с производительностью, безопасностью и удобством использования. Им необходимы единые стандарты и библиотеки WUI.
Значимость WUI-приложений несомненно будет возрастать, но они не смогут вытеснить обычные GUI-приложения.
Серия сообщений "Базы данных":
Часть 1 - Файловые системы. Назначение файловых систем.
Часть 2 - Особенности орган хранения данных
...
Часть 19 - Способы визуализации структур данных. ER-диаграммы.
Часть 20 - Общие понятия реляционного подхода к организации БД. Основные концепции и термины. Основные реляционные СУБД
Часть 21 - Понятие транзакции. Средства реализации транзакций. Предложения COMMIT и ROLLBACK.
Часть 22 - Моделирование сложных структур средствами реляционной СУБД. Рекурсивные деревья. Проблема образования петель.
Часть 23 - Сжатие (упаковка) данных. Основы фракталов. Фрактальные методы в архивации
...
Часть 43 - Метод вспомогательной таблицы для случая произвольного графа. Отличия от случая моделирования иерархий
Часть 44 - Объектно-ориентированная модель и реляционная модель. Сходство и отличия.
Часть 45 - Использование «координатного» метода для моделирования иерархий и произвольных графов. Его достоинства и
Рубрики: |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |