Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1 Шамшерҳои воқеии пойгоҳи додаҳо - глобалӣ - кайҳо боз маълуманд, аммо то ҳол чанд нафар медонанд, ки чӣ тавр онҳоро самаранок истифода баранд ё ин силоҳи супермаркетро умуман надоранд.

Агар шумо дар ҳалли он мушкилоте, ки онҳо дар ҳақиқат хубанд, глобалҳоро истифода баред, шумо метавонед ба натиҷаҳои барҷаста ноил шавед. Хох дар хосилнокии мехнат ва ё дар содда кардани халли масъала (1, 2).

Глобалҳо як роҳи махсуси нигоҳдорӣ ва коркарди додаҳо мебошанд, ки аз ҷадвалҳои SQL комилан фарқ мекунанд. Онхо соли 1966 ба забони руей пайдо шуданд M(UMPS) (инкишофи эволютсионӣ - Cache ObjectScript, минбаъд COS) дар базаи тиббӣ ва ҳоло ҳам вуҷуд дорад фаъолона истифода мебаранд, инчунин ба баъзе соҳаҳои дигаре, ки эътимоднокӣ ва иҷрои баланд талаб карда мешаванд, ворид шудааст: молия, савдо ва ғайра.

Глобалҳо дар DBMS-ҳои муосир транзаксияҳо, сабткунӣ, такрорӣ ва тақсимкуниро дастгирӣ мекунанд. Онхое. онҳо метавонанд барои сохтани системаҳои муосир, боэътимод, тақсимшуда ва зуд истифода шаванд.

Глобалҳо шуморо бо модели муносибатӣ маҳдуд намекунанд. Онҳо ба шумо озодии таҳияи сохторҳои маълумотро медиҳанд, ки барои вазифаҳои мушаххас оптимизатсия шудаанд. Барои бисёре аз барномаҳо, истифодаи оқилонаи глобалӣ метавонад воқеан як силоҳи махфӣ бошад, ки кореро, ки таҳиягарони замимаҳои релятсионӣ танҳо орзу карда метавонанд, таъмин кунад.

Глобалҳо ҳамчун роҳи нигоҳдории маълумот метавонад дар бисёр забонҳои муосири барномасозӣ, ҳам сатҳи баланд ва ҳам дар сатҳи паст истифода шавад. Аз ин рӯ, дар ин мақола ман махсусан ба глобалҳо тамаркуз хоҳам кард, на ба забоне, ки онҳо замоне аз он омадаанд.

2. Глобалҳо чӣ гуна кор мекунанд

Биёед аввал бифаҳмем, ки глобалҳо чӣ гуна кор мекунанд ва ҷиҳатҳои тавонои онҳо чист. Ба ҷаҳониён аз нуқтаи назари гуногун назар кардан мумкин аст. Дар ин қисми мақола мо онҳоро ҳамчун дарахтон дида мебароем. Ё ба монанди анборҳои иерархикии додаҳо.

Оддӣ карда гӯем, глобалӣ массиви доимист. Массив, ки ба таври худкор дар диск захира карда мешавад.
Барои нигоҳ доштани маълумот чизи соддатареро тасаввур кардан душвор аст. Дар код (бо забонҳои COS/M) он аз массиви муқаррарии ассотсиативӣ танҳо бо аломати фарқ мекунад. ^ пеш аз ном.

Барои захира кардани маълумот дар глобалӣ ба шумо лозим нест, ки забони дархости SQL-ро омӯзед; фармонҳои кор бо онҳо хеле соддаанд. Онҳоро дар як соат омӯхтан мумкин аст.

Биёед бо соддатарин мисол оғоз кунем. Дарахти якқабата бо 2 шоха. Намунаҳо дар COS навишта шудаанд.

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

Set ^a("+7926X") = "John Sidorov"
Set ^a("+7916Y") = "Sergey Smith"



Ҳангоми ворид кардани маълумот ба глобалӣ (фармони Set), 3 чиз ба таври худкор рӯй медиҳад:

  1. Захираи маълумот ба диск.
  2. Индексизатсия. Он чизе, ки дар қавс навишта шудааст, калид аст (дар адабиёти англисӣ - “подграф”) ва дар тарафи рости баробар қимат аст (“қимати гиреҳ”).
  3. Мураттабкунӣ. Маълумот аз рӯи калид мураттаб карда мешавад. Дар оянда, ҳангоми гузаштан аз массив, элементи якум "Сергей Смит" ва дуюм "Ҷон Сидоров" хоҳад буд. Ҳангоми гирифтани рӯйхати корбарон аз глобалӣ, пойгоҳи додаҳо вақтро ҷудо намекунад. Ғайр аз он, шумо метавонед баромади рӯйхати мураттабшударо аз ҳама гуна калид, ҳатто аз калиди мавҷуднашуда дархост кунед (баромад аз калиди воқеии аввал, ки пас аз калиди мавҷуд нест, оғоз мешавад).

Ҳамаи ин амалиётҳо бениҳоят зуд ба амал меоянд. Дар компютери хонагии худ ман дар як раванд то 750 варақ дар як сония арзиш мегирифтам. Дар протсессори бисёраслӣ арзишҳо метавонанд ба даст оранд даххо миллионхо ворид мекунад/сек.

Албатта, худи суръати воридкунӣ чандон чизе намегӯяд. Шумо метавонед, масалан, хеле зуд маълумотро ба файлҳои матнӣ нависед - монанди ин аз руи овозахо Коркарди раводид. Аммо дар мавриди глобалӣ, мо дар натиҷа захираи сохтории индексатсия ба даст меорем, ки бо он дар оянда ба осонӣ ва зуд кор кардан мумкин аст.

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

  • Бузургтарин қудрати глобалӣ суръатест, ки дар он гиреҳҳои нав ворид кардан мумкин аст.
  • Маълумот дар ҷаҳон ҳамеша индексатсия карда мешавад. Гузаронидани онҳо ҳам дар як сатҳ ва ҳам дар чуқурии дарахт ҳамеша зуд аст.

Биёед боз чанд шохаи сатњи дуюм ва сеюмро ба глобалї илова кунем.

Set ^a("+7926X", "city") = "Moscow"
Set ^a("+7926X", "city", "street") = "Req Square"
Set ^a("+7926X", "age") = 25
Set ^a("+7916Y", "city") = "London"
Set ^a("+7916Y", "city", "street") = "Baker Street"
Set ^a("+7916Y", "age") = 36

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

Равшан аст, ки дарахтони бисёрсатҳаро дар асоси глобалӣ сохтан мумкин аст. Гузашта аз ин, дастрасӣ ба ҳама гуна гиреҳ бо сабаби индексатсияи худкор ҳангоми воридкунӣ қариб як лаҳза аст. Ва дар ҳама сатҳҳои дарахт, ҳамаи шохаҳо аз рӯи калид мураттаб карда мешаванд.

Тавре ки шумо мебинед, маълумот метавонад ҳам дар калид ва ҳам дар арзиш нигоҳ дошта шавад. Дарозии умумии калид (маҷмӯи дарозии ҳамаи индексҳо) метавонад ба даст ояд Bytes xNUMX, ва арзишҳо 3.6 MB барои кэш. Шумораи сатҳҳо дар дарахт (шумораи андозаҳо) 31 аст.

Боз як нуктаи ҷолиб. Шумо метавонед дарахтро бидуни муайян кардани арзишҳои гиреҳҳои сатҳҳои болоӣ созед.

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

Set ^b("a", "b", "c", "d") = 1
Set ^b("a", "b", "c", "e") = 2
Set ^b("a", "b", "f", "g") = 3

Доираҳои холӣ гиреҳҳое мебошанд, ки арзиши таъиншуда надоранд.

Барои беҳтар фаҳмидани глобалҳо, биёед онҳоро бо дарахтони дигар муқоиса кунем: дарахтони боғ ва дарахтони номи системаи файл.

Биёед дарахтҳоро дар глобалӣ бо сохторҳои иерархикии ба мо шинос муқоиса кунем: бо дарахтони оддӣ, ки дар боғҳо ва саҳроҳо мерӯянд, инчунин бо системаҳои файлӣ.

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

Чунон ки мо дар дарахтони бог мебинем, баргу мевахо танхо дар нуги шохахо пайдо мешаванд.
Системаҳои файлӣ - информатсия танҳо дар нӯги шохаҳо, ки номҳои пурраи файлҳо мебошанд, нигоҳ дошта мешаванд.

Ва ин аст сохтори глобалии маълумот.

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1Фарқиятҳо:

  1. Гиреҳҳои дохилӣ: Маълумот дар глобалӣ метавонад дар ҳар гиреҳ нигоҳ дошта шавад, на танҳо дар охири шохаҳо.
  2. Гиреҳҳои беруна: Глобалӣ бояд дар охири шохаҳо арзишҳои муайян дошта бошад, дар ҳоле ки FS ва дарахтони боғ ин тавр нестанд.



Дар робита ба гиреҳҳои дохилӣ, мо гуфта метавонем, ки сохтори глобалӣ маҷмӯи сохтори дарахтони номҳо дар системаҳои файлӣ ва дарахтони боғ мебошад. Онхое. чандиртар.

Умуман, ҷаҳонӣ аст дарахти фармоишӣ бо қобилияти нигоҳ доштани маълумот дар ҳар як гиреҳ.

Барои беҳтар фаҳмидани кори глобалӣ, тасаввур кунед, ки агар эҷодкунандагони системаҳои файлӣ барои нигоҳ доштани иттилоот равиши шабеҳро ба глобалҳо истифода баранд, чӣ мешавад?

  1. Нест кардани як файл дар директория ба таври худкор директорияро, инчунин ҳамаи директорияҳои болоиро, ки танҳо як феҳристи тозашуда тоза мекунанд, нест мекунад.
  2. Ба феҳристҳо лозим намеояд. Фақат файлҳои зерфайлҳо ва файлҳои бе зерфайлҳо мавҷуданд. Агар бо дарахти оддӣ муқоиса карда мешуд, он гоҳ ҳар як шоха ба мева табдил меёбад.

    Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

  3. Чизҳое мисли файлҳои README.txt шояд лозим набошанд. Ҳама чизеро, ки дар бораи мундариҷаи директория гуфтан лозим буд, метавонист дар худи файли директория навишт. Дар фазои роҳ, номи файл аз номи директория фарқ намекунад, бинобар ин танҳо бо файлҳо кор кардан мумкин буд.
  4. Суръати нест кардани директорияҳо бо зеркаталогҳо ва файлҳои лона гузошташуда ба таври назаррас афзоиш хоҳад ёфт. Борҳо дар Ҳабре мақолаҳо буданд, ки тоза кардани миллионҳо файлҳои хурд то чӣ андоза дароз ва душвор аст (1, 2). Аммо, агар шумо як системаи псевдо-файлро дар глобалӣ созед, он сонияҳо ё фраксияҳои онро мегирад. Вақте ки ман нест кардани зердарахтҳоро дар компютери хонагӣ санҷидам, он 1-96 миллион гиреҳҳоро аз дарахти дуқабата дар HDD (на SSD) дар 341 сония тоза кард. Гузашта аз ин, мо дар бораи нест кардани як қисми дарахт сухан меронем, на танҳо тамоми файл бо глобалҳо.

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1
Бартараф кардани зердарахтҳо боз як нуқтаи қавии глобалӣ мебошад. Барои ин ба шумо рекурсия лозим нест. Ин ба таври бениҳоят зуд рӯй медиҳад.

Дар дарахти мо ин корро бо фармон иҷро кардан мумкин аст куштан.

Kill ^a("+7926X")

Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 1

Барои беҳтар фаҳмидани он, ки кадом амалҳо барои мо дар саросари ҷаҳон дастрасанд, ман ҷадвали кӯтоҳеро пешниҳод мекунам.

Фармонҳо ва функсияҳои асосӣ барои кор бо глобалҳо дар COS

маҷмӯи
Танзими шохаҳо ба гиреҳ (агар ҳанӯз муайян нашуда бошад) ва арзишҳои гиреҳ

Якҷоягӣ кунед
Нусхабардории зердарахт

куштан
Хориҷ кардани зердарахт

ZKill
Нобуд кардани арзиши гиреҳи мушаххас. Зердарахте, ки аз гиреҳ мебарояд, ламс карда намешавад

$Query
Гузариши пурраи дарахт, ба чуқурии дарахт

$ Фармоиш
Гузаронидани шохаҳои гиреҳи мушаххас

$Data
Санҷед, ки оё гиреҳ муайян шудааст

$ афзоиш
Ба таври атомӣ афзоиш додани арзиши гиреҳ. Барои пешгирӣ кардани хондан ва навиштан, барои ACID. Ба наздикӣ тавсия дода шуд, ки ба он иваз карда шавад $ пайдарпай

Ташаккур барои таваҷҷуҳ, мо омодаем ба саволҳои шумо ҷавоб диҳем.

Радди: Ин мақола ва шарҳҳои ман ба он ақидаи мананд ва ба мавқеи расмии InterSystems Corporation иртибот надоранд.

Идома ... Глобалҳо шамшерҳои ганҷ барои нигоҳ доштани маълумот мебошанд. Дарахтон. Қисми 2. Шумо мефаҳмед, ки кадом намуди маълумотро дар глобалҳо намоиш додан мумкин аст ва дар кадом вазифаҳо онҳо фоидаи ҳадди аксар медиҳанд.

Манбаъ: will.com

Илова Эзоҳ