Jump to content

ВМДС

VMDS — это сокращение от технологии реляционных баз данных, называемой хранилищем данных с управлением версиями , предоставляемой GE Energy как часть технологической платформы Smallworld и с самого начала разработанной для хранения и анализа очень сложных пространственных и топологических сетей, обычно используемых корпоративными коммунальными предприятиями, такими как распределение электроэнергии и телекоммуникации. .

VMDS была первоначально представлена ​​в 1990 году и с годами улучшалась и обновлялась. Его текущая версия — 6.0.

VMDS была разработана как пространственная база данных . Это дает VMDS ряд отличительных характеристик по сравнению с обычными реляционными базами данных, состоящими только из атрибутов.

Распределенная серверная обработка

[ редактировать ]

VMDS состоит из двух частей: простого, хорошо масштабируемого сервера блоков данных под названием SWMFS (Smallworld Master File Server) и интеллектуального клиентского API, написанного на C и Magik . Пространственные и атрибутивные данные хранятся в блоках данных, которые находятся в специальных файлах, называемых файлами хранилища данных, на сервере. Когда клиентское приложение запрашивает данные, оно обладает достаточным интеллектом, чтобы определить оптимальный набор необходимых блоков данных. Затем этот запрос отправляется в SWMFS, который возвращает данные клиенту через сеть для обработки.

Этот подход особенно эффективен и масштабируем при работе с пространственными и топологическими данными, которые имеют тенденцию передаваться в больших объемах и требуют большей обработки, чем простые атрибутивные данные (например, во время операции перерисовки карты). Такой подход делает VMDS хорошо подходящим для развертывания на предприятии, в котором могут участвовать сотни или даже тысячи одновременных клиентов.

Поддержка длинных транзакций

[ редактировать ]

Реляционные базы данных поддерживают короткие транзакции, в которых изменения данных относительно невелики и непродолжительны по продолжительности (максимальный период между началом и окончанием транзакции обычно составляет несколько секунд или меньше).

VMDS поддерживает длительные транзакции, в которых объем данных, участвующих в транзакции, может быть значительным, а продолжительность транзакции может быть значительной (дни, недели или даже месяцы). Эти типы транзакций распространены в современных сетевых приложениях, используемых, например, в коммунальных предприятиях по распределению электроэнергии.

Из-за временного интервала длительной транзакции в этом контексте объем изменений может быть значительным (не только в рамках транзакции, но и в контексте базы данных в целом). Соответственно, вполне вероятно, что одна и та же запись может быть изменена более одного раза. Чтобы справиться с этим сценарием, VMDS имеет встроенную поддержку автоматического управления такими конфликтами и позволяет приложениям просматривать изменения и принимать только те изменения, которые являются правильными.

Пространственные и топологические возможности

[ редактировать ]

Помимо традиционных функций реляционных баз данных, таких как запросы атрибутов, поля соединения, триггеры и вычисляемые поля, VMDS обладает многочисленными пространственными и топологическими возможностями. Это позволяет хранить и анализировать пространственные данные, такие как точки, тексты, полилинии, многоугольники и растровые данные.

Пространственные функции включают в себя: поиск всех объектов внутри полигона, расчет полигонов Вороного для набора объектов и выполнение кластерного анализа набора точек.

Векторным пространственным данным, таким как точки, полилинии и многоугольники, можно присвоить топологические атрибуты, которые позволяют моделировать сложные сети. Механизмы сетевого анализа предназначены для ответа на такие вопросы, как поиск кратчайшего пути между двумя узлами или как оптимизировать маршрут доставки ( задача коммивояжера ). Механизм топологии можно настроить с помощью набора правил, определяющих, как топологические объекты взаимодействуют друг с другом при добавлении новых данных или редактировании существующих данных.

Абстракция данных

[ редактировать ]

В VMDS все данные представляются приложению в виде объектов. Это отличается от многих реляционных баз данных, которые представляют данные в виде строк из таблицы или результатов запроса, скажем, с использованием JDBC . VMDS предоставляет инструмент моделирования данных и базовую инфраструктуру как часть технологической платформы Smallworld , которая позволяет администраторам связывать таблицу в базе данных с экземпляром (или классом) Magik. Методы получения и установки Magik для экземпляра Magik могут быть автоматически сгенерированы, которые предоставляют поле (или столбец) таблицы. Каждая строка VMDS представляется приложению как экземпляр объекта Magik и называется RWO (или объект реального мира). Таблицы на языке Smallworld называются коллекциями.

 # all_rwos hold all the rwos in the database and is heterogeneous
 all_rwos << my_application.rwo_set()

 # valve_collection holds the valve collection
 valves << all_rwos.select(:collection, {:valve})
 number_of_valves << valves.size

Запросы строятся с использованием объектов-предикатов:

 # find 'open' valves.
 open_valves << valves.select(predicate.eq(:operating_status, "open"))
 number_of_open_valves << open_valves.size
 _for valve _over open_valves.elements()
 _loop
   write(valve.id)
 _endloop

Объединения реализованы как методы родительского RWO. Например, у менеджера может быть несколько сотрудников, которые ему подчиняются:

 # get the employee collection.
 employees << my_application.database.collection(:gis, :employees)
 # find a manager called 'Steve' and get the first matching element
 steve << employees.select(predicate.eq(:name, "Steve").and(predicate.eq(:role, "manager")).an_element()
 # display the names of his direct reports. name is a field (or column)
 # on the employee collection (or table)
 _for employee _over steve.direct_reports.elements()
 _loop
    write(employee.name)
 _endloop

Выполнение транзакции:

 # each key in the hash table corresponds to the name of the field (or column) in
 # the collection (or table)
 valve_data << hash_table.new_with(
   :asset_id, 57648576,
   :material, "Iron")
 # get the valve collection directly
 valve_collection << my_application.database.collection(:gis, :valve)
 # create an insert transaction to insert a new valve record into the collection a
 # comment can be provide that describes the transaction
 transaction << record_transaction.new_insert(valve_collection, valve_data, "Inserted a new valve")
 transaction.run()

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3fe3c33a5e9f63814cedd344a8e43f63__1696667820
URL1:https://arc.ask3.ru/arc/aa/3f/63/3fe3c33a5e9f63814cedd344a8e43f63.html
Заголовок, (Title) документа по адресу, URL1:
VMDS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)