Управление транзакциями базы геоданных
Транзакции являются группами операций, которые вносят изменения в базы данных. Базы данных Географических информационных систем (ГИС), как и другие приложения баз данных, должны поддерживать обновляемые транзакции, обеспечивающие целостность данных и поведение приложения. Во многих случаях пользователи могут использовать механизм транзакций системы управления базой данных (СУБД) для управления редактированием и обновлением баз геоданных.
Однако пользователи ГИС также имеют некоторые особые условия для транзакций. Например:
- Часто многочисленные записи обновляются синхронно, как одна транзакция.
- Многочисленные транзакции должны охватывать большие периоды времени (иногда дни и месяцы, а не секунды и минуты).
Кроме того, пользователи должны быть способны отменять и восстанавливать изменения. Сеансы редактирования могут охватывать несколько часов или даже дней. Часто правка должна выполняться в системе, отсоединенной от центральной общей базы данных.
Поскольку рабочие процессы ГИС могут охватывать дни или месяцы, база данных ГИС должна оставаться постоянно доступной для ежедневных операций, где каждый пользователь может иметь личный вид или состояние общей базы данных ГИС. В многопользовательской базе данных транзакции ГИС должны управляться с помощью механизма коротких транзакций СУБД. В ходе этих операций технология ArcSDE играет ключевую роль, управляя сложными транзакциями ГИС высокого уровня с помощью простого механизма транзакций СУБД.
Пользователи ГИС часто оказываются в ситуации, когда процесс длинной транзакции крайне важен. В большинстве случаев, благодаря использованию многопользовательской СУБД и ArcSDE, появляется возможность управлять обновлениями центральной базы данных ГИС с помощью работы с версиями, подробнее о которой будет рассказано ниже.
Далее приведены примеры процессов сбора и обработки данных ГИС, которые требуют модели транзакций, основанной на версии:
- Многократные сеансы редактирования — Простое обновление базы данных ГИС может потребовать множества изменений, охватывающих многократные сеансы редактирования, происходившие в течение несколько дней или недель.
- Многопользовательское редактирование — Несколько редакторов часто нуждаются в согласованном обновлении одних и тех же пространственно интегрированных объектов. Каждый пользователь нуждается в работе с персонализированным режимом базы данных, чтобы видеть собственные обновления и игнорировать обновления других редакторов. В конечном счете, каждый пользователь нуждается в обмене и согласовании обновлений с другими редакторами, чтобы выявлять и разрешать любые конфликты.
- Прикрепление/открепление транзакций — Часто бывает необходимо открепить часть базы данных для определенной области или района и обновить ее информацию в неподключенном состоянии, которое может длиться дни или недели, или увезти ее, чтобы отредактировать или обновить на месте. Эти обновления должны быть перенесены в главную базу данных.
- История — Иногда бывает полезно сохранять историческую версию каждого объекта в базе данных ГИС даже после того, как текущая версия была обновлена, чтобы сохранить в архиве копию удаленных и измененных объектов, или чтобы проследить историю отдельного объекта, например, происхождение участков или свойства обновления объектов в базе данных карт страны.
- Перенос обновлений, включающих только изменения — многопользовательские базы данных и инфраструктура пространственных данных, в которых информация распространяется среди предприятий, являются плодом совместных усилий и требуют передачи обновлений через интернет на расширяемом языке разметки (XML) для обмена обновлениями, включающими только изменения, между базами данных.
- Копии распределенных баз географических данных — региональная база данных может быть частичной копией главной многопользовательской базы данных ГИС для отдельного географического района. Периодические две базы данных должны бы синхронизированы с помощью обмена обновлениями.
- Неточная репликация между СУБД — часто данные ГИС должны быть синхронизированы на нескольких копиях (репликах) баз данных, где каждый сайт выполняет собственные обновления своей локальной базы данных. Часто базы данных лишь время от время подключаются к всемирной сети. На регулярной основе обновления должны передаваться от одной реплики базы данных другим, а их содержимое синхронизироваться. Часто бывает так, что СУБД отличаются друг от друга, например, репликация наборов данных между Microsoft SQL Server, Oracle и IBM DB2.
Модель транзакций базы геоданных: Работа с версиями
Механизм базы геоданных для управлениями этими и многими другими важными процессами ГИС заключается в поддержании множества состояний в базе геоданных, и что самое важное, это сопровождается обеспечением целостности географической информации, правил и поведения. Эта возможность управлять, работать и видеть множество состояний основывается на работе с версиями. Уже из названия понятно, что работа с версиями подразумевает запись версий отдельных объектов, когда они изменяются, добавляются и удаляются в различных состояниях. Каждая версия записывает каждое состояние объекта или пространственного объекта в виде строки таблицы с важной информацией о транзакции. Любое количество пользователей могут одновременно работать и управлять множеством версий.
Версии позволяют записывать все транзакции в виде серий изменений базы данных во времени. Это значит, что разные пользователи могут работать с разными видами и состояниями базы геоданных. Целью является открытый, быстрый, многопользовательский доступ. Например, система должна работать быстро и эффективно поддерживать использование наборов данных, содержащих сотни миллионов записей, к которым подключены одновременно тысячи пользователей.
Модель транзакций базы геоданных, основанная на версиях, относительно проста — обновления записываются в таблицы изменений.
Версии точно записывают состояния объектов базы геоданных в две дельта-таблицы:
- Таблица добавлений
- Таблица удалений
Для просмотра и работы с нужным состоянием базы геоданных используются простые запросы, например, для просмотра состояния базы данных на заданный момент времени или для просмотра текущей версии конкретного пользователя и внесенных им изменений.
ArcSDE играет важную роль в создании версий приложений баз геоданных и используется для управления длинными транзакциями в каждой СУБД, используя механизм коротких транзакций, а также для работы с различными СУБД.
![]() |
В примере таблицы версий, участок (номер 45) обновляется и становится участком номер 47. Используя работу с версиями, исходный участок сохраняется в таблице удалений, а новый участок – в таблице добавлений. Другие мета-таблицы записывают информацию о версии транзакции, например, время и порядок каждого обновления, название версии и ID состояния каждого обновления. Также каждая версия имеет собственные права безопасности и доступа.
Это позволяет большинству пользователей работать с версией по умолчанию, в то время как редакторы одновременно обновляют свои собственные версии базы данных.
Каждая версия может быть многократно обновлена, а пользователи подключаются и работают с обновленной версией, когда вносят дополнительные изменения в данные. Когда пользователи готовы поделиться обновлениями со всем предприятием, выполняется операция согласования и фиксации для передачи изменений, содержащихся в обновленной версии, главной версии (по умолчанию). Процесс разрешения используется для выявления и согласования любых потенциальных конфликтов в ходе процесса.
Дополнительные сведения о версиях см. в разделе Работа с версиями (Understanding versioning).