VMDS - VMDS

VMDS deb nomlangan relyatsion ma'lumotlar bazasi texnologiyasini qisqartiradi Versiya boshqariladigan ma'lumotlar do'koni tomonidan taqdim etilgan GE Energy uning bir qismi sifatida Kichik dunyo texnologik platforma va boshidan elektr energiyasini taqsimlash va telekommunikatsiya kabi kommunal xizmatlar tomonidan ishlatiladigan juda murakkab fazoviy va topologik tarmoqlarni saqlash va tahlil qilish uchun ishlab chiqilgan.

VMDS dastlab 1990 yilda ishlab chiqarilgan bo'lib, yillar davomida takomillashtirilgan va yangilangan. Uning hozirgi versiyasi 6.0.

VMDS a sifatida ishlab chiqilgan fazoviy ma'lumotlar bazasi. Bu odatiy atribut bilan faqat ma'lumotlar bazalari bilan taqqoslaganda VMDSga bir qator o'ziga xos xususiyatlarni beradi.

Tarqatilgan serverga ishlov berish

VMDS ikki qismdan iborat: oddiy, juda miqyosli ma'lumotlarni blokirovka qiluvchi server deb nomlangan SWMFS (Smallworld Master File Server) va aqlli mijoz API yozilgan C va Magik. Mekansal va atribut ma'lumotlari serverdagi ma'lumotlar do'koni fayllari deb nomlangan maxsus fayllarda joylashgan ma'lumotlar bloklarida saqlanadi. Mijoz dasturi ma'lumotni talab qilganda, talab qilinadigan ma'lumotlar bloklarining eng maqbul to'plamini ishlab chiqish uchun etarli aqlga ega. Ushbu so'rov keyinchalik SWMFS-ga yuboriladi, u ma'lumotlarni qayta ishlash uchun mijozga tarmoq orqali qaytaradi.

Ushbu yondashuv katta hajmlarda oqishga moyil bo'lgan va ko'proq ishlov berishni talab qiladigan fazoviy va topologik ma'lumotlar bilan ishlashda ayniqsa samarali va ko'lamini kengaytiradi (masalan, xaritani qayta chizish paytida). Ushbu yondashuv VMDSni yuzlab va hatto minglab bir vaqtda mijozlarni jalb qilishi mumkin bo'lgan korporativ joylashuvga juda mos keladi.

Uzoq muddatli operatsiyalarni qo'llab-quvvatlash

Relyatsion ma'lumotlar bazalarini qo'llab-quvvatlash qisqa operatsiyalar unda ma'lumotlar o'zgarishi nisbatan kichik va muddati jihatidan qisqa (bitimning boshlanishi va oxiri orasidagi maksimal davr odatda bir necha soniya yoki undan kam).

VMDS uzoq muddatli operatsiyalarni qo'llab-quvvatlaydi, unda bitim ishtirok etadigan ma'lumotlar hajmi sezilarli bo'lishi mumkin va operatsiya davomiyligi muhim (kunlar, haftalar yoki hatto oylar) bo'lishi mumkin. Ushbu turdagi operatsiyalar, masalan, elektr energiyasini taqsimlovchi kommunal xizmatlar tomonidan qo'llaniladigan rivojlangan tarmoq dasturlarida keng tarqalgan.

Ushbu kontekstda uzoq operatsiyani bajarish muddati tufayli o'zgarish miqdori sezilarli bo'lishi mumkin (nafaqat bitim doirasida, balki umuman ma'lumotlar bazasi tarkibida ham). Shunga ko'ra, xuddi shu yozuv bir necha marta o'zgartirilishi mumkin. Ushbu stsenariyni engish uchun VMDS bunday nizolarni avtomatik boshqarish uchun ichki qo'llab-quvvatlaydi va ilovalarga o'zgarishlarni ko'rib chiqish va faqat to'g'ri bo'lgan tahrirlarni qabul qilishga imkon beradi.

Mekansal va topologik imkoniyatlar

Atributlarni so'rash, qo'shilish maydonlari, triggerlar va hisoblangan maydonlar kabi an'anaviy relyatsion ma'lumotlar bazasi xususiyatlari bilan bir qatorda VMDS ko'plab fazoviy va topologik imkoniyatlarga ega. Bu nuqta, matnlar, ko'p satrlar, ko'pburchaklar va raster ma'lumotlar kabi fazoviy ma'lumotlarni saqlash va tahlil qilish imkonini beradi.

Fazoviy funktsiyalarga quyidagilar kiradi: ko'pburchak ichidagi barcha xususiyatlarni toping, hisoblang Voronoy ko'pburchagi saytlar to'plamining to'plami va a klaster tahlili ballar to'plami bo'yicha.

Nuqta, polilin va ko'pburchak kabi vektor fazoviy ma'lumotlarga murakkab tarmoqlarni modellashtirishga imkon beradigan topologik atributlar berilishi mumkin. Tarmoqlarni tahlil qilish dvigatellari ikkita tugun orasidagi eng qisqa yo'lni topish yoki etkazib berish yo'nalishini optimallashtirish kabi savollarga javob berish uchun taqdim etiladi ( sotuvchi muammosi ). Topologiya dvigatelini yangi ma'lumotlar qo'shilganda yoki mavjud ma'lumotlarni tahrirlashda topologik sub'ektlarning bir-biri bilan o'zaro ta'sirini belgilaydigan qoidalar to'plami bilan tuzish mumkin.

Ma'lumotlarni abstraktsiya qilish

VMDS-da barcha ma'lumotlar dasturga ob'ekt sifatida taqdim etiladi. Bu ma'lumotlarning jadvaldan yoki so'rov natijalaridan foydalanib satrlar sifatida satrlarni so'zlar yordamida taqdim etadigan ko'plab relyatsion ma'lumotlar bazalaridan farq qiladi JDBC. VMDS ma'lumotlar bazasini modellashtirish vositasi va uning ostida joylashgan infratuzilmani taqdim etadi Kichik dunyo ma'murlarga ma'lumotlar bazasidagi jadvalni Magik namunasi (yoki sinf) bilan bog'lashga imkon beruvchi texnologik platforma. Magik namunasi uchun Magik olish va o'rnatish usullari jadval maydonini (yoki ustunini) ochib beradigan avtomatik ravishda yaratilishi mumkin. Har bir VMDS qator dasturda o'zini a ning namunasi sifatida namoyon qiladi Magik ob'ekt va an sifatida tanilgan RWO (yoki haqiqiy dunyo ob'ekti). Jadvallar Smallworld tilida to'plam sifatida tanilgan.

 # all_rwos ma'lumotlar bazasidagi barcha qatorlarni ushlab turadi va heterojen all_rwos << my_application.rwo_set () # valve_collection valflarni yig'ish klapanlarini ushlab turadi << all_rwos.select (: collection, {: valve}) valflar soni << valflar.size

So'rovlar predikat ob'ektlari yordamida tuziladi:

 # "ochiq" vanalarni toping. open_valves << valves.select (predicate.eq (: operating_status, "open")) number_of_open_valves << open_valves.size
 _kapana uchun _ ochiq_kapaklar.elements () _loop write (valve.id) _endloop

Birlashmalar ota-ona RWO-da usul sifatida amalga oshiriladi. Masalan, menejerda unga hisobot beradigan bir nechta xodim bo'lishi mumkin:

 # xodimlar to'plamini olish. xodimlar << my_application.database.collection (: gis,: staff)
 # "Stiv" deb nomlangan menejerni toping va birinchi mos keladigan elementni oling steve << коргарон.select (predicate.eq (: ism, "Stiv"). va (predicate.eq (: rol, "menejer")). an_element ( )
 # to'g'ridan-to'g'ri hisobotlarining nomlarini namoyish etadi. ism - bu xodimlar kollektsiyasida (yoki jadvalda) # maydon (yoki ustun) # _for staff _over steve.direct_reports.elements () _loop write (staff.name) _endloop

Bitimni amalga oshirish:

 # xash jadvalidagi har bir kalit # to'plamdagi maydon (yoki ustun) nomiga mos keladi valve_data << hash_table.new_with (: asset_id, 57648576,: material, "Iron")
 # to'g'ridan-to'g'ri vana to'plamini oling valve_collection << my_application.database.collection (: gis,: valve)
 # to'plamga yangi vana yozuvini kiritish uchun operatsiyani qo'shish # tranzaksiya operatsiyasini tavsiflovchi # izoh bo'lishi mumkin << record_transaction.new_insert (valve_collection, valve_data, "Yangi vana kiritildi" )action.run ()

Shuningdek qarang