Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa keji

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa kejiBibẹrẹ - wo apakan 1.

3. Awọn iyatọ ti awọn ẹya nigba lilo awọn agbaye

Ẹya kan gẹgẹbi igi ti a paṣẹ ni ọpọlọpọ awọn ọran pataki. Jẹ ki a ro awọn ti o ni iye to wulo nigba ṣiṣẹ pẹlu awọn agbaye.

3.1 Pataki nla 1. Ọkan ipade lai ẹka


Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa kejiAwọn agbaye le ṣee lo kii ṣe bi orun nikan, ṣugbọn tun fẹran awọn oniyipada deede. Fun apẹẹrẹ, bi counter:

Set ^counter = 0  ; установка счётчика
Set id=$Increment(^counter) ;  атомарное инкрементирование

Ni idi eyi, agbaye, ni afikun si itumọ rẹ, tun le ni awọn ẹka. Ọkan ko ni ifesi miiran.

3.2 Pataki nla 2. Ọkan fatesi ati ọpọlọpọ awọn ẹka

Ni gbogbogbo, eyi jẹ ipilẹ iye-bọtini Ayebaye. Ati pe ti a ba ṣafipamọ tuple ti awọn iye bi iye kan, a yoo gba tabili lasan pupọ pẹlu bọtini akọkọ kan.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa keji

Lati ṣe tabili kan lori agbaye, a yoo ni lati ṣe ina awọn ori ila funrara wa lati awọn iye ọwọn, ati lẹhinna fi wọn pamọ si agbaye ni lilo bọtini akọkọ. Lati jẹ ki o ṣee ṣe lati pin okun si awọn ọwọn lẹẹkansi nigba kika, o le lo:

  1. ohun kikọ delimiter.
    Set ^t(id1) = "col11/col21/col31"
    Set ^t(id2) = "col12/col22/col32"
  2. a kosemi eni ninu eyi ti kọọkan oko wa lagbedemeji a predetermined nọmba ti awọn baiti. Bi o ti wa ni ṣe ni ibatan infomesonu.
  3. iṣẹ pataki kan $ LB (wa ni kaṣe), eyi ti o ṣẹda okun iye.
    Set ^t(id1) = $LB("col11", "col21", "col31")
    Set ^t(id2) = $LB("col12", "col22", "col32")

O yanilenu, ko nira lati lo awọn agbaye lati ṣe nkan ti o jọra si awọn atọka keji ni awọn apoti isura data ibatan. Jẹ ki a pe iru awọn ẹya atọka agbaye. Atọka agbaye jẹ igi iranlọwọ fun awọn aaye wiwa ni kiakia ti kii ṣe apakan ti bọtini akọkọ ti agbaye akọkọ. Lati kun ati lo, o nilo lati kọ koodu afikun.

Jẹ ki a ṣẹda atọka agbaye lori iwe akọkọ.

Set ^i("col11", id1) = 1
Set ^i("col12", id2) = 1

Bayi, lati wa alaye ni kiakia ni iwe akọkọ, a ni lati wo inu agbaye ^i ki o wa awọn bọtini akọkọ (id) ti o baamu si iye ti o fẹ ti iwe akọkọ.

Nigbati o ba nfi iye sii, a le ṣẹda awọn mejeeji iye ati atọka agbaye fun awọn aaye ti o nilo. Ati fun igbẹkẹle, jẹ ki a fi ipari si gbogbo rẹ ni idunadura kan.

TSTART
Set ^t(id1) = $LB("col11", "col21", "col31")
Set ^i("col11", id1) = 1
TCOMMIT

Awọn alaye lori bi o ṣe le ṣe lori M tabili lori globals, emulation ti Atẹle atọka.

Iru awọn tabili yoo ṣiṣẹ ni yarayara bi awọn apoti isura infomesonu ibile (tabi paapaa yiyara) ti awọn iṣẹ fun fifi sii / imudojuiwọn / piparẹ awọn ori ila ni a kọ sinu COS / M ati ṣajọ.Mo ṣayẹwo alaye yii pẹlu awọn idanwo lori ọpọ INSERT ati Yan sinu tabili ọwọn meji kan, pẹlu lilo awọn aṣẹ TSTART ati TCOMMIT (awọn iṣowo).

Emi ko ṣe idanwo awọn oju iṣẹlẹ eka diẹ sii pẹlu iraye nigbakanna ati awọn iṣowo afiwera.

Laisi lilo awọn iṣowo, oṣuwọn ifibọ jẹ 778 awọn ifibọ / iṣẹju-aaya fun awọn iye miliọnu.
Pẹlu awọn iye miliọnu 300 - awọn ifibọ 422 / iṣẹju-aaya.

Nigba lilo awọn iṣowo - 572 awọn ifibọ / iṣẹju-aaya fun awọn ifibọ 082M. Gbogbo awọn iṣẹ ṣiṣe ni a ṣe lati koodu M ti a ṣajọ.
Awọn dirafu lile jẹ deede, kii ṣe SSD. RAID5 pẹlu Kọ-pada. Phenom II 1100T isise.

Lati ṣe idanwo aaye data SQL ni ọna kanna, o nilo lati kọ ilana ti o fipamọ ti yoo ṣe awọn ifibọ ni lupu kan. Nigbati idanwo MySQL 5.5 (ibi ipamọ InnoDB), ni lilo ọna yii Mo gba awọn nọmba ko ju awọn ifibọ 11K fun iṣẹju kan.
Bẹẹni, imuse ti awọn tabili lori agbaye n wo eka sii ju ni awọn apoti isura infomesonu ibatan. Nitorinaa, awọn apoti isura infomesonu ile-iṣẹ lori awọn agbaye ni iraye si SQL lati ṣe irọrun iṣẹ pẹlu data tabular.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa kejiNi gbogbogbo, ti eto data ko ba yipada nigbagbogbo, iyara fifi sii ko ṣe pataki ati pe gbogbo ibi ipamọ data le jẹ aṣoju ni irọrun ni irisi awọn tabili deede, lẹhinna o rọrun lati ṣiṣẹ pẹlu SQL, nitori o pese ipele giga ti abstraction. .

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa kejiNinu ọran pataki yii Mo fẹ lati ṣafihan iyẹn globals le sise bi a Constructor fun ṣiṣẹda miiran infomesonu. Bi apejọpọ ninu eyiti awọn ede miiran le kọ. Eyi ni awọn apẹẹrẹ ti bii o ṣe le ṣẹda awọn analogues lori agbaye iye bọtini, awọn atokọ, awọn eto, tabular, awọn apoti isura infomesonu ti o da lori iwe-ipamọ.

Ti o ba nilo lati ṣẹda diẹ ninu awọn iru data ti kii ṣe deede pẹlu ipa diẹ, lẹhinna o yẹ ki o wo si ọna agbaye.

3.3 Ọran pataki 3. Igi ipele meji, ipade kọọkan ti ipele keji ni nọmba ti o wa titi ti awọn ẹka.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa kejiO ṣee ṣe ki o gboju: eyi jẹ imuse yiyan ti awọn tabili lori agbaye. Jẹ ki a ṣe afiwe imuse yii pẹlu ti iṣaaju.

Awọn tabili lori igi ipele meji vs. lori igi ipele kan.

Минусы
Плюсы

  1. Losokepupo fun fifi sii, nitori o nilo lati ṣeto nọmba awọn apa dogba si nọmba awọn ọwọn.
  2. Agbara aaye disk diẹ sii. Niwọn igba ti awọn atọka agbaye (loye bi awọn atọka orun) pẹlu awọn orukọ iwe gba aaye disk ati pe a ṣe ẹda-iwe fun ila kọọkan.

  1. Wiwọle ni iyara si awọn iye ti awọn ọwọn kọọkan, nitori ko si iwulo lati ṣe itupalẹ okun naa. Gẹgẹbi awọn idanwo mi, o jẹ 11,5% yiyara lori awọn ọwọn 2 ati diẹ sii lori nọmba nla ti awọn ọwọn.
  2. Rọrun lati yi eto data pada
  3. Diẹ ko o koodu

Ipari: kii ṣe fun gbogbo eniyan. Niwọn igba ti iyara jẹ ọkan ninu awọn anfani bọtini julọ ti agbaye, aaye kekere wa ni lilo imuse yii, nitori kii yoo ṣe iyara pupọ ju awọn tabili lọ ni awọn apoti isura data ibatan.

3.4 Gbogbogbo nla. Awọn igi ati awọn igi ti a paṣẹ

Eyikeyi igbekalẹ data ti o le ṣe afihan bi igi ni ibamu ni pipe pẹlu awọn agbaye.

3.4.1 Awọn nkan pẹlu awọn koko-ọrọ

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa keji

Eyi ni agbegbe ti lilo aṣa ti awọn agbaye. Ni aaye iṣoogun nọmba nla ti awọn arun, awọn oogun, awọn ami aisan ati awọn ọna itọju. O jẹ aibikita lati ṣẹda tabili kan pẹlu awọn aaye miliọnu kan fun alaisan kọọkan. Pẹlupẹlu, 99% ti awọn aaye yoo jẹ ofo.

Fojuinu aaye data SQL ti awọn tabili: “alaisan” ~ awọn aaye 100, “Medicine” - awọn aaye 000, “Itọju ailera” - awọn aaye 100, “Awọn ilolu” - awọn aaye 000, ati bẹbẹ lọ. ati bẹbẹ lọ. Tabi o le ṣẹda aaye data ti ọpọlọpọ awọn ẹgbẹẹgbẹrun awọn tabili, ọkọọkan fun iru alaisan kan pato (ṣugbọn wọn le ni lqkan!), Awọn itọju, awọn oogun, ati ẹgbẹẹgbẹrun awọn tabili diẹ sii fun awọn asopọ laarin awọn tabili wọnyi.

Awọn agbaye jẹ apẹrẹ fun oogun, bi wọn ṣe gba ọ laaye lati ṣẹda fun alaisan kọọkan ni apejuwe deede ti itan-akọọlẹ iṣoogun rẹ, ọpọlọpọ awọn itọju ailera, ati awọn iṣe ti awọn oogun, ni irisi igi kan, laisi jafara aaye disk afikun lori awọn ọwọn ofo, bi yoo ṣe jẹ. jẹ ọran ni ọran ibatan.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa kejiLilo awọn agbaye o rọrun lati ṣẹda data pẹlu data nipa eniyan, nigbati o jẹ pataki lati accumulate ati ki o systematize kan ti o pọju orisirisi alaye nipa awọn ose. Eyi wa ni ibeere ni oogun, ile-ifowopamọ, titaja, fifipamọ ati awọn agbegbe miiran

.
Nitoribẹẹ, ni SQL o tun le farawe igi kan pẹlu awọn tabili diẹ (EAV, 1,2,3,4,5,6,7,8,9,10), sibẹsibẹ yi ni significantly diẹ idiju ati ki o yoo jẹ losokepupo. Ni pataki, iwọ yoo ni lati kọ agbaye kan ti o ṣiṣẹ lori awọn tabili ati tọju gbogbo iṣẹ pẹlu awọn tabili labẹ Layer abstraction. O jẹ aṣiṣe lati ṣe apẹẹrẹ imọ-ẹrọ ipele-kekere (awọn agbaye) nipa lilo imọ-ẹrọ ipele giga (SQL). Ko yẹ.

Kii ṣe aṣiri pe yiyipada ero data lori awọn tabili nla (ALTER TABLE) le gba iye akoko deede. MySQL, fun apẹẹrẹ, ṣe ALTER TABLE ADD|ỌWỌWỌWỌ nipasẹ didakọ alaye patapata lati tabili atijọ si tabili tuntun (idanwo MyISAM, awọn ẹrọ InnoDB). Eyi ti o le gbe ibi ipamọ data ṣiṣẹ pẹlu awọn ọkẹ àìmọye awọn igbasilẹ fun awọn ọjọ, ti kii ba ṣe awọn ọsẹ.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa kejiYiyipada ọna data ti a ba lo awọn agbaye ko ni idiyele fun wa. Nigbakugba a le ṣafikun eyikeyi awọn ohun-ini tuntun ti a nilo si eyikeyi nkan, ni ipele eyikeyi ti ipo-iṣakoso. Awọn iyipada ti o ni nkan ṣe pẹlu awọn ẹka isọdọtun le ṣee ṣiṣẹ ni abẹlẹ lori ibi ipamọ data nṣiṣẹ.


Nitorinaa, nigbati o ba de titoju awọn nkan pẹlu nọmba nla ti awọn ohun-ini yiyan, agbaye jẹ yiyan nla.

Pẹlupẹlu, jẹ ki n leti pe iraye si eyikeyi awọn ohun-ini jẹ lẹsẹkẹsẹ, nitori ni agbaye gbogbo awọn ọna jẹ awọn igi B.

Awọn apoti isura infomesonu agbaye, ni gbogbogbo, jẹ iru data data ti o da lori iwe-ipamọ pẹlu agbara lati ṣafipamọ alaye logalomomoise. Nitorinaa, awọn apoti isura data ti o da lori iwe-ipamọ le dije pẹlu agbaye ni aaye ti titoju awọn igbasilẹ iṣoogun. Sugbon o tun ko oyimbo kannaJẹ ki a mu MongoDB fun lafiwe. Ni aaye yii o padanu si awọn agbaye fun awọn idi wọnyi:

  1. Iwọn iwe. Ẹka ibi ipamọ jẹ ọrọ ni ọna kika JSON (diẹ sii BSON ni pato) pẹlu iwọn didun ti o pọju ti o to 16MB. Ihamọ naa jẹ pataki ki data data JSON ko ni fa fifalẹ lakoko sisọ ti iwe-ipamọ JSON nla kan ba wa ninu rẹ ati lẹhinna wọle nipasẹ awọn aaye. Iwe yi yẹ ki o ni gbogbo alaye nipa alaisan. Gbogbo wa mọ bi awọn igbasilẹ alaisan ti o nipọn le jẹ. Iwọn kaadi ti o pọju ti 16MB lẹsẹkẹsẹ fi opin si awọn alaisan ti kaadi aisan wọn pẹlu awọn faili MRI, awọn ayẹwo X-ray ati awọn ẹkọ miiran. Ni ẹka kan ti agbaye o le ni gigabytes ati terabyte ti alaye. Ni opo, a le fi opin si eyi, ṣugbọn emi yoo tẹsiwaju.
  2. Akoko ti aiji / iyipada / piparẹ awọn ohun-ini titun ninu chart alaisan. Iru aaye data bẹẹ gbọdọ ka gbogbo maapu sinu iranti (eyi jẹ iye nla!), Ṣatunṣe BSON, ṣafikun / yi / paarẹ ipade tuntun kan, awọn atọka imudojuiwọn, gbe sinu BSON, ki o fi pamọ si disk. Agbaye nikan nilo lati wọle si ohun-ini kan pato ki o ṣe afọwọyi.
  3. Wiwọle yara yara si awọn ohun-ini kọọkan. Pẹlu ọpọlọpọ awọn ohun-ini ninu iwe-ipamọ ati eto ipele-ọpọlọpọ rẹ, iraye si awọn ohun-ini kọọkan yoo yarayara nitori otitọ pe ọna kọọkan ni agbaye jẹ igi B. Ni BSON, o ni lati sọ iwe-ipamọ laini laini lati wa ohun-ini ti o fẹ.

3.3.2 Associative orun

Awọn akojọpọ associative (paapaa pẹlu awọn itọka itẹwọgba) ni ibamu ni pipe lori awọn agbaye. Fun apẹẹrẹ, iru opo lati PHP yoo han ni aworan akọkọ 3.3.1.

$a = array(
  "name" => "Vince Medvedev",
  "city" => "Moscow",
  "threatments" => array(
    "surgeries" => array("apedicectomy", "biopsy"),
    "radiation" => array("gamma", "x-rays"),
    "physiotherapy" => array("knee", "shoulder")
  )
);

3.3.3 Awọn iwe aṣẹ akosoagbasomode: XML, JSON

Tun awọn iṣọrọ ti o ti fipamọ ni awọn agbaye. Le ti wa ni gbe jade ni awọn ọna oriṣiriṣi fun ibi ipamọ.

XML
Ọna to rọọrun lati decompose XML sinu agbaye ni lati tọju awọn abuda tag ni awọn apa. Ati pe ti o ba nilo wiwọle yara yara si awọn abuda tag, lẹhinna a le gbe wọn lọ si awọn ẹka lọtọ.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa keji

<note id=5>
<to>Вася</to>
<from>Света</from>
<heading>Напоминание</heading>
<body>Позвони мне завтра!</body>
</note>

Lori COS eyi yoo ṣe deede si koodu naa:

Set ^xml("note")="id=5"
Set ^xml("note","to")="Саша"
Set ^xml("note","from")="Света"
Set ^xml("note","heading")="Напоминание"
Set ^xml("note","body")="Позвони мне завтра!"

Akiyesi: Fun XML, JSON, awọn akojọpọ alajọṣepọ, o le wa pẹlu ọpọlọpọ awọn ọna oriṣiriṣi ti iṣafihan lori agbaye. Ni idi eyi, a ko ṣe afihan aṣẹ ti awọn subtags ninu aami akọsilẹ. Ni agbaye ^xml subtags yoo han ni lẹsẹsẹ alfabeti. Lati ṣe afihan aṣẹ ni muna, o le lo, fun apẹẹrẹ, ifihan atẹle:

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa keji
JSON.
Aworan akọkọ lati apakan 3.3.1 ṣe afihan iwe-ipamọ JSON yii:

var document = {
  "name": "Vince Medvedev",
  "city": "Moscow",
  "threatments": {
    "surgeries": ["apedicectomy", "biopsy"],
    "radiation": ["gamma", "x-rays"],
    "physiotherapy": ["knee", "shoulder"]
  },
};

3.3.4 Awọn ẹya kanna ti o ni asopọ nipasẹ awọn ibatan akoso

Awọn apẹẹrẹ: eto ti awọn ọfiisi tita, ipo ti awọn eniyan ni eto MLM kan, ibi ipamọ data ti awọn ṣiṣi ni chess.

Debuts database. O le lo iṣiro agbara ikọlu gẹgẹbi iye atọka ti ipade agbaye. Lẹhinna, lati yan gbigbe ti o lagbara julọ, yoo to lati yan ẹka pẹlu iwuwo nla julọ. Ni agbaye, gbogbo awọn ẹka ni ipele kọọkan yoo jẹ lẹsẹsẹ nipasẹ agbara gbigbe.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa keji

Ilana ti awọn ọfiisi tita, eto ti eniyan ni MLM. Awọn apa le fipamọ awọn iye caching kan ti o ṣe afihan awọn abuda ti gbogbo abẹlẹ. Fun apẹẹrẹ, awọn tita iwọn didun ti a fi fun subtree. Ni eyikeyi akoko a le gba nọmba kan ti n ṣe afihan awọn aṣeyọri ti ẹka eyikeyi.

Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn igi. Apa keji

4. Ni awọn ọran wo ni o jẹ anfani julọ lati lo awọn agbaye?

Oju-iwe akọkọ ṣafihan awọn ọran nibiti iwọ yoo gba ere iyara pataki nipa lilo awọn agbaye, ati keji nigbati apẹrẹ tabi awoṣe data yoo jẹ irọrun.

Titẹ
Ease ti data processing / igbejade

  1. Fi sii [pẹlu tito lẹsẹsẹ laifọwọyi ni ipele kọọkan], [titọka nipasẹ bọtini titunto si]
  2. Yiyọ subtrees
  3. Awọn nkan pẹlu ọpọlọpọ awọn ohun-ini itẹ-ẹiyẹ ti o nilo iraye si ẹni kọọkan
  4. Ilana akosori pẹlu agbara lati fori awọn ẹka ọmọ lati eyikeyi ẹka, paapaa awọn ti ko si
  5. Ijinle-akọkọ traversal ti subtrees
  1. Awọn nkan / awọn nkan pẹlu nọmba nla ti awọn ohun-ini / awọn nkan iyan [ati/tabi itẹ-ẹiyẹ]
  2. Eto-kere data. Nigba ti awọn ohun-ini tuntun le han nigbagbogbo ati pe awọn ti atijọ parẹ.
  3. O nilo lati ṣẹda database aṣa kan.
  4. Awọn ipilẹ ọna ati awọn igi ipinnu. Nigbati o rọrun lati ṣe aṣoju awọn ọna bi igi.
  5. Yiyọ awọn ẹya akosoagbasomode kuro laisi lilo isọdọtun

Itesiwaju “Awọn agbaye jẹ awọn idà-iṣura fun titoju data. Awọn akojọpọ fọnka. Apa 3".

be: Nkan yii ati awọn asọye mi si rẹ jẹ ero mi ati pe ko ni ibatan si ipo osise ti InterSystems Corporation.

orisun: www.habr.com

Fi ọrọìwòye kun