{"id":78198,"date":"2020-04-17T13:42:37","date_gmt":"2020-04-17T11:42:37","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge"},"modified":"2020-04-17T13:42:37","modified_gmt":"2020-04-17T11:42:37","slug":"denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge","title":{"rendered":"ERP-s\u00fcsteemide andmebaaside denormaliseerimine ja selle m\u00f5ju tarkvara arengule: avame k\u00f5rtsi Tortugas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere! Minu nimi on Andrei Semjonov, olen Sportmasteri vanemanal\u00fc\u00fctik. Selles postituses tahan ma t\u00f5statada ERP-s\u00fcsteemide andmebaaside denormaliseerimise k\u00fcsimuse. K\u00e4sitleme \u00fcldisi tingimusi ning toome n\u00e4iteks \u2014 \u00fctleme, et see on suurep\u00e4rane monopoolne k\u00f5rts, kus teenindatakse merer\u00f6\u00f6vreid ja meremeestele. Nende arusaamad kaunist ja tarbimismustrid erinevad oluliselt. <\/p>\n<p>Kuidas tagada, et k\u00f5ik oleksid rahul? Kuidas mitte hulluks minna sellise s\u00fcsteemi projekteerimisel ja hooldamisel? Mis siis, kui k\u00f5rtsi hakkavad tulema mitte ainult tuttavad merer\u00f6\u00f6vlid ja meremehed?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/497550\/\"><img decoding=\"async\" alt=\"ERP-s\u00fcsteemide andmebaaside denormaliseerimine ja selle m\u00f5ju tarkvara arengule: avame k\u00f5rtsi Tortugas\" src=\"\/wp-content\/uploads\/2020\/04\/bd0ccbfa3e3649aac20631e09fcb5b16.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>K\u00f5ik on allpool. Kuid liigume j\u00e4rjestikku.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>1. Piirangud ja eeldused<\/h2>\n<p>\nK\u00f5ik \u00fclaltoodud kehtib ainult relatsiooniliste andmebaaside kohta. H\u00e4sti valgustatud, sealhulgas Internetis, on denormaliseerimise tagaj\u00e4rjed, nagu muudatuste, kustutamise ja sisestamise anomaaliad, arvesse v\u00f5tmata. Avaldamise raames j\u00e4\u00e4vad v\u00e4lja juhtumid, kus denormaliseerimine on tavaline, klassikaliste n\u00e4idetega: passiseeria ja -number, kuup\u00e4ev ja kellaaeg ning muud sarnased.<\/p>\n<p>Postituses kasutatakse intuitiivseid ja praktiliselt rakendatavaid m\u00e4\u00e4ratlusi normaalvormidest, ilma viidatud matemaatiliste terminoloogia kasutamiseta. N\u00f5nda, nagu neid saab rakendada reaalse \u00e4ritegevuse (BP) uurimisel ja t\u00f6\u00f6stusliku tarkvara projekteerimisel.<\/p>\n<p>On arvamus, et andmesalvestuslahenduste, aruandlust\u00f6\u00f6riistade ja integratsioonilepingute (milles kasutatakse teavet tabelisarjana) projekteerimine erineb ERP-s\u00fcsteemide andmebaaside projekteerimisest selles osas, et tarbimise mugavus ja selle saavutamiseks kasutatav teadlik denormaliseerimine v\u00f5ivad olla prioriteediks andmete terviklikkuse kaitse \u00fcle. Ma jagan seda arvamust ning allpool kirjeldatu kehtib ainult ERP-s\u00fcsteemide meistrite andmete ja tehingute andmete mudelite kohta.<\/p>\n<p>Normvormide selgitus on esitatud igap\u00e4evaelus m\u00f5istetaval n\u00e4itel enamikule lugejatest. Siiski on punktides 4-5 teadlikult kasutatud v\u00e4ga 'v\u00e4ljam\u00f5eldud' \u00fclesannet kui visuaalset illustreerimist. Vastasel juhul, kui v\u00f5tta mingi klassikaline n\u00e4ide, n\u00e4iteks sama tellimuse salvestamise mudel punktis 2, v\u00f5ib juhtuda, et lugeja t\u00e4helepanu fookus nihkub pakutud protsessi mudeli ja isikliku kogemuse ning arusaama peale selle kohta, kuidas andmete ja s\u00fcsteemide salvestamise protsessid ja mudelid peaksid v\u00e4lja n\u00e4gema. Teisis\u00f5nu, v\u00f5tke kaks kvalifitseeritud IT-anal\u00fc\u00fctikut, laske \u00fchel osutada teenust logistikaekspertidele, kes transpordivad reisijaid, teisel aga logistikaekspertidele, kes transpordivad mikroskeemide tootmiseks vajalikke masinaid. Paluge neil, ilma eelnevalt arutamata automatiseeritavaid \u00e4ri protsesse, koostada andmemudel teabe salvestamiseks raudtee reiside kohta. <\/p>\n<p>On olemas m\u00e4rkimisv\u00e4\u00e4rne t\u00f5en\u00e4osus, et ettepanekud mudelid sisaldavad mitte ainult selgelt erinevaid atribuutide komplekte, vaid ka erinevaid entiteetide kogumeid, kuna iga anal\u00fc\u00fctik tugineb tuttavatele protsessidele ja \u00fclesannetele. Sellises olukorras on v\u00f5imatu \u00f6elda, milline mudel on \u201e\u00f5ige\u201c, kuna puudub hindamiskriteerium.<\/p>\n<h2>2. Normaalsed vormid<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/mz\/vc\/ex\/mzvcexxqfzhzyybzk8zvbndmtcc.png\"><img decoding=\"async\" alt=\"ERP-s\u00fcsteemide andmebaaside denormaliseerimine ja selle m\u00f5ju tarkvara arengule: avame k\u00f5rtsi Tortugas\" src=\"\/wp-content\/uploads\/2020\/04\/e2d3fc5656b59671648511b0a0e5f7b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><b>Esimene normaalsusvorm andmebaasis<\/b> n\u00f5uab k\u00f5ikide atribuutide aatomilisust. <br \/>\nEelk\u00f5ige, kui objekt A-l on mittev\u00f5tmeatribuutide a ja b, nii et c=f(a,b) ja objekti A kirjeldavas tabelis hoitakse atribuutide v\u00e4\u00e4rtust c, siis on andmebaasis esimese normaalsusvormi p\u00f5him\u00f5tte rikutud. N\u00e4iteks, kui tellimusspecifikatsioonis n\u00e4idatakse kogust, mille m\u00f5\u00f5t\u00fchikud s\u00f5ltuvad sissetoodud kauba t\u00fc\u00fcbist: \u00fches juhul v\u00f5ivad need olla t\u00fckid, teises liitrid, kolmandas t\u00fckist koosnevates pakkides (\u00fclemises mudelis Good_count_WR), siis on andmebaasis atribuutide aatomilisus rikutud. Antud juhul, et \u00f6elda, millisena peaks tellimuse specifikatsiooni tabeli kopse v\u00e4lja n\u00e4gema, on vajalik protsessi sihtkirjeldus infots\u00fcsteemis, ja kuna protsessid v\u00f5ivad olla erinevad, v\u00f5ivad olla ka palju \"\u00f5igeid\" versioone.<\/p>\n<p><b>Teine normaalne andmebaasi vorm<\/b> n\u00f5uab esimese vormi j\u00e4rgimist ja iseseisvat tabelit iga osakonna jaoks, mis on seotud infos\u00fcsteemi t\u00f6\u00f6protsessiga. Kui \u00fches tabelis on s\u00f5ltuvused \u0441=f1(a) ja d=f2(b) ning ei ole s\u00f5ltuvust \u0441=f3(b), siis on tabelis teine normaalne vorm rikku. \u00dclaltoodud n\u00e4ites ei ole tabelis 'Tellimus' s\u00f5ltuvust tellimuse ja aadressi vahel. Muutke t\u00e4nava v\u00f5i linna nime, ja see ei m\u00f5juta tellimuse olulisi atribuute. <\/p>\n<p><b>Kolmas normaalne andmebaasi vorm<\/b> n\u00f5uab teise normaalse vormi j\u00e4rgimist ja funktsionaalsete s\u00f5ltuvuste puudumist erinevate osakondade atribuutide vahel. Seda reeglit saab formuleerida nii: \"k\u00f5ik, mida saab arvutada, tuleb arvutada\". Teisis\u00f5nu, kui on olemas kaks objekti A ja B. Tabelis, mis salvestab objekti A atribuute, esindatakse attribuuti C, siis objektil B on atribuut b, nii et on olemas c=f4(b), siis on rikku kolmas normaalne vorm. Allpool toodud n\u00e4ites pretendeerib atribuudi 'T\u00fckihulk' (Total_count_WR) tellimuse kirjes selgelt kolmanda normaalse vormi rikkumisele.<\/p>\n<h2>3. Minu l\u00e4henemine normaliseerimise rakendamisele<\/h2>\n<p>\n1. Ainult sihitud automatiseeritav \u00e4ri protsess suudab pakkuda anal\u00fc\u00fctikale kriteeriume objektide ja atribuutide tuvastamiseks andmemudeli loomisel. Protsessi mudeli loomine on vajalik tingimus normaalse andmemudeli loomiseks.<\/p>\n<p>2. Kolmanda normaalse vormi saavutamine rangelt v\u00f5ib osutuda praktikas ebapraktiliseks ERP-s\u00fcsteemide loomisel, kui kehtivad osaliselt v\u00f5i t\u00e4ielikult j\u00e4rgmised tingimused:<\/p>\n<ul>\n<li>automatiseeritavad protsessid reeglina ei muutu, <\/li>\n<li>uurimis- ja arenduse t\u00e4htajad on l\u00fchikesed, <\/li>\n<li>andmete terviklikkuse n\u00f5uded on tingimuslikult madalad (potentsiaalsed vead t\u00f6\u00f6stuslikus tarkvaras ei too kaasa raha v\u00f5i klientide kaotust tarkvaraarendaja jaoks)<\/li>\n<li>jne.<\/li>\n<\/ul>\n<p>\nKirjeldatud tingimuste korral v\u00f5ivad kulud teatud objektide ja nende atribuutide elu ts\u00fckli tuvastamiseks ja kirjeldamiseks olla majanduslikult p\u00f5hjendamatud.<\/p>\n<p>3. Andmemudeli denormaliseerimise tagaj\u00e4rjed juba loodud infos\u00fcsteemis v\u00f5ivad olla ohustatud p\u00f5hjaliku koodi eelneva uurimise ja testimisega.<\/p>\n<p>4. Denormaalimine on viis, kuidas edasil\u00fckata t\u00f6\u00f6koormust andmeallikate uurimise ja \u00e4ri protsessi projekteerimise etapilt arendusetapile, teisest rakendamisest s\u00fcsteemi arendamise perioodi.<\/p>\n<p>5. Kolmanda normaalvormi poole p\u00fc\u00fcdlemine on p\u00f5hjendatud, kui:<\/p>\n<ul>\n<li>Automatiseeritavate \u00e4ri protsesside muutumise suundumus on keeruliselt prognoositav.<\/li>\n<li>Rakendamise ja\/v\u00f5i arendamise meeskonnas on tugev perifeerne t\u00f6\u00f6jaotus.<\/li>\n<li>Integreerimisringi kuuluvad s\u00fcsteemid arenevad oma plaanide j\u00e4rgi.<\/li>\n<li>Andmete ebak\u00f5la v\u00f5ib kaasa tuua klientide v\u00f5i raha kaotuse ettev\u00f5ttest.<\/li>\n<\/ul>\n<p>\n6. Andmemudeli projekti peab anal\u00fc\u00fctik koostama ainult sihitud \u00e4ri protsessi ja s\u00fcsteemi protsesside kontekstis. Kui andmemudeli projekteerimisega tegeleb arendaja, peab ta s\u00fcvenema teema valdkonda nii palju, et m\u00f5ista atribuutide v\u00e4\u00e4rtuste vahelisi erinevusi \u2014 vajalik tingimus atomaarsete atribuutide eristamiseks. Seega v\u00f5tab ta endale omaseid funktsioone.<\/p>\n<h2>4 \u00dclesanne illustreerimiseks<\/h2>\n<p>\nKujutage ette, et teil on v\u00e4ike automatiseeritud tavern sadamas. Teie sihtr\u00fchm on meremehed ja piraadid, kes tulevad sadamasse ja vajavad puhkust. Meremeestele m\u00fc\u00fcte te t\u00fc\u00fcmiani teed ning piraatidele rummu ja luust kammid habeme kohendamiseks. Teenindust osutab tavernis robot-kelner ja robot-baarmen. T\u00e4nu k\u00f5rgele kvaliteedile ja madalatele hindadele olete te k\u00f5ik konkurendid v\u00e4lja t\u00f5rjunud, nii et iga laeva pealt maha astuv inimene suundub teie tavernisse, mis on sadama ainus.<\/p>\n<p>Taverna infotehnoloogilise s\u00fcsteemi kompleks koosneb j\u00e4rgmistest tarkvara osadest: <\/p>\n<ul>\n<li>Kliendi varajase teavitamise s\u00fcsteem, mis tuvastab tema kategooria iseloomulikest tunnustest<\/li>\n<li>Robot-kelnerite ja robot-baarmeeste juhtimisse s\u00fcsteem<\/li>\n<li>Laohaldus- ja m\u00fc\u00fcgipunkti tarne juhtimisse s\u00fcsteem<\/li>\n<li>Tarnijate suhtlemise juhtimisse s\u00fcsteem (TSJS)<\/li>\n<\/ul>\n<p>\nProtsess:<\/p>\n<p>Varajane teavitamise s\u00fcsteem tuvastab laeva pealt v\u00e4ljuvad inimesed. Kui inimene on siledalt habetunud, m\u00e4\u00e4ratletakse ta meremehena; kui inimesel on habeme, m\u00e4\u00e4ratletakse ta piraadina.<\/p>\n<p>Sisenedes tavernasse kuuleb k\u00fclaline roboti-administraatori tervitust vastavalt oma kategooriale, n\u00e4iteks: \"Ho-ho-ho, lugupeetud piraat, palun istuge lauda nr...\"<\/p>\n<p>K\u00fclaline l\u00e4bib m\u00e4\u00e4ratud lauda, kus robot-baarmen on juba tema kategooriale vastavad kaubad ette valmistanud. Robot-baarmen edastab lao s\u00fcsteemi teabe, et j\u00e4rgmine tarnimine peaks suurenema, lao infos\u00fcsteem, tuginedes s\u00e4ilitamise reservidele, koostab SOUP-is ostupakkumise.<\/p>\n<p>Olgu varajase hoiatamise s\u00fcsteem loodud teie sisemise IT poolt, baarrobotite haldusprogramm loodud v\u00e4list\u00f6\u00f6v\u00f5tja poolt spetsiaalselt teie \u00e4ri jaoks. Laohaldus- ja tarnijasuhete s\u00fcsteemid on kohandatud kastilahendused turult.<\/p>\n<h2>5. Denormaliseerimise n\u00e4idised ja selle m\u00f5ju tarkvaraarendusele<\/h2>\n<p>\n\u00c4riprotsessi projekteerimisel on k\u00fcsitletud valdkonna eksperdid \u00fcheselt v\u00e4itnud, et kogu maailmas joovad piraadid rummi ja kammivad habemeid luust kammidega, samas kui meremehed joovad teed oreganoga ja on alati korralikult raseeritud. <\/p>\n<p>Kliendi t\u00fc\u00fcpide juhend ilmub kahes v\u00e4\u00e4rtuses: 1 - piraadid, 2 - meremehed, mis on \u00fchiselt kogu ettev\u00f5tte teabealal. <\/p>\n<p>Kliendi teavituss\u00fcsteem salvestab kohe pildit\u00f6\u00f6tluse tulemuse tuvastatud kliendi ID-na (ID) ja tema t\u00fc\u00fcbi: meremees v\u00f5i piraat. <\/p>\n<p>Tuvastatud objekti ID<br \/>\nKliendi kategooria<\/p>\n<p>100500<br \/>\nPiraat<\/p>\n<p>100501<br \/>\nPiraat<\/p>\n<p>100502<br \/>\nMeremees<\/p>\n<p>Kordan veel kord, et<\/p>\n<p>1. Meie meremehed on tegelikult raseeritud inimesed<br \/>\n2. Meie piraadid on tegelikult habemega inimesed<\/p>\n<p>Milliseid probleeme tuleb sel juhul lahendada, et meie struktuur p\u00fc\u00fcdleks kolmanda normaalkujundi poole:<\/p>\n<ul>\n<li>atribuutide aatomaaruse rikkumine - Kliendi kategooria<\/li>\n<li>anal\u00fc\u00fcsitava fakti ja j\u00e4relduse segamine \u00fches tabelis <\/li>\n<li>fikseeritud funktsionaalne s\u00f5ltuvus erinevate entiteetide atribuutide vahel. <\/li>\n<\/ul>\n<p>\nNormeeritud kujul oleks meil kaks tabelit: <\/p>\n<ul>\n<li>tuvastamise tulemus tuntud tunnuste kogumina,<\/li>\n<\/ul>\n<p><\/p>\n<p>Tuvastatud objekti ID<br \/>\nN\u00e4o karv<\/p>\n<p>100500<br \/>\nJah<\/p>\n<p>100501<br \/>\nJah<\/p>\n<p>100502<br \/>\nEi<\/p>\n<p><\/p>\n<ul>\n<li>kliendi t\u00fc\u00fcbi m\u00e4\u00e4ramise tulemus, rakendades IS-s sisseehitatud loogikat m\u00e4\u00e4ratud tunnuste t\u00f5lgendamiseks<\/li>\n<\/ul>\n<p>Tuvastatud objekti ID<br \/>\nTuvastamise ID<br \/>\nKliendi kategooria<\/p>\n<p>100500<br \/>\n100001<br \/>\nPiraat<\/p>\n<p>100501<br \/>\n100002<br \/>\nPiraat<\/p>\n<p>100502<br \/>\n100003<br \/>\nMeremees<\/p>\n<p>Kuidas v\u00f5ivad andmete normaliseerimise organisatsioon aidata infotehnoloogia s\u00fcsteemide arendamist? Kujutage ette, et teil tekivad \u00e4kitselt uued kliendid. Olgu need n\u00e4iteks jaapani piraadid, kellel v\u00f5ib puududa habe, kuid kes liiguvad koos papagoiga \u00f5lal, ja keskkonnaalased piraadid, keda tunnete \u00e4ra Greta sinise profiili j\u00e4rgi vasakus rinnas. <\/p>\n<p>Keskkonnaalased piraadid ei saa loomulikult kasutada luust kamme ja n\u00f5uavad nende asemele \u00fcmbert\u00f6\u00f6deldud mereplastikust toodet.<\/p>\n<p>Te peate kohandama programmide t\u00f6\u00f6algoritme vastavalt uutele sisenditele. Kui normaliseerimise reeglid oleksid t\u00e4idetud, piisaks osade s\u00fcsteemide puhul vaid m\u00f5nede protsesside harude sisendite t\u00e4iendamisest ja uute harude loomisest vaid neis infotehnoloogia s\u00fcsteemides, kus on oluline n\u00e4o karvakasv. Kuid kuna reegleid ei ole j\u00e4rgitud, peate anal\u00fc\u00fcsima kogu koodi, igas kontuuris, kus kasutatakse kliendit\u00fc\u00fcbi m\u00e4\u00e4ratlemise v\u00e4\u00e4rtusi, ja selgelt m\u00e4\u00e4rama, et \u00fches olukorras peab algoritm arvesse v\u00f5tma kliendi ametialast tegevust, samas kui teises tuleb arvestada f\u00fc\u00fcsiliste omadustega. <\/p>\n<p>Selles vormis <b><i>p\u00fc\u00fcdleb <\/i><\/b>normaliseeritud, saaksime kaks tabelit operatiivandmetega ja kaks katalooge:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/qn\/pq\/g4\/qnpqg4idbhbsqejhnryzfuilhhy.png\"><img decoding=\"async\" alt=\"ERP-s\u00fcsteemide andmebaaside denormaliseerimine ja selle m\u00f5ju tarkvara arengule: avame k\u00f5rtsi Tortugas\" src=\"\/wp-content\/uploads\/2020\/04\/eea87da839171e8a3a42db0618972124.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<ul>\n<li>tuvastamise tulemus tuntud tunnuste kogumina,<\/li>\n<\/ul>\n<p><\/p>\n<p>Tuvastatud objekti ID<br \/>\nGreta vasakul rinnal<br \/>\nLind \u00f5lal<br \/>\nN\u00e4o karv<\/p>\n<p>100510<br \/>\n1<br \/>\n1<br \/>\n1<\/p>\n<p>100511<br \/>\n0<br \/>\n0<br \/>\n1<\/p>\n<p>100512<\/p>\n<p>1<br \/>\n0<\/p>\n<ul>\n<li>tulemused kliendi t\u00fc\u00fcbi m\u00e4\u00e4ramisel (v\u00f5tame n\u00e4iteks kasutajaliidese, kus v\u00e4ljastatakse kirjeldused kataloogidest)<\/li>\n<\/ul>\n<p>\nKas tuvastatud denormaliseerimine t\u00e4hendab, et s\u00fcsteemi ei saa uute tingimuste j\u00e4rgi kohandada? Muidugi mitte. Kui kujutada ette, et k\u00f5ik infos\u00fcsteemid on loodud \u00fche meeskonna poolt nulli t\u00f6\u00f6tajatega, arendused on h\u00e4sti dokumenteeritud ja teave tiimi sees v\u00e4ljastatakse kaotusteta, siis vajalikud muudatused v\u00f5ivad toimuda v\u00e4heste j\u00f5upingutustega. Kuid kui me naaseme algsete probleemitingimuste juurde, siis ainult koosoleku protokollide v\u00e4ljastamise peale kulub 1,5 klaviatuuri ja veel 0,5 ostumenetluste vormistamisele.<\/p>\n<p>\u00dclaltoodud n\u00e4ites on rikutud k\u00f5iki kolme normaalvormi, proovime neid rikkuda \u00fckshaaval.<\/p>\n<p><b>Esimese normaali rikkumine:<\/b><\/p>\n<p>Kujutage ette, et teie lao tooted toimetatakse tarnijate ladudest iseteeninduse kaudu, kasutades 1,5-tonnist Gazelli, mis kuulub teie tavernale. Teie tellimuste suurus on tarnijate k\u00e4ivetega v\u00f5rreldes nii v\u00e4ike, et need t\u00e4idetakse alati t\u00e4pselt ilma tootmise ootamiseta. Kas sellise \u00e4ritegevuse jaoks on vajalikud eraldi tabelid: transport, transpordivahendid, kas peaksite tellimuste plaani ja tegelikkuse jagama?<\/p>\n<p>Kujutage ette, kui palju \u201e\u00fclem\u00e4\u00e4raseid\u201c \u00fchendusi peavad teie programmeerijad kirjutama, kui programmi arendamiseks kasutada allolevat mudelit.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/bz\/js\/gf\/bzjsgfs0fephwjwqx8xdvunrgva.png\"><img decoding=\"async\" alt=\"ERP-s\u00fcsteemide andmebaaside denormaliseerimine ja selle m\u00f5ju tarkvara arengule: avame k\u00f5rtsi Tortugas\" src=\"\/wp-content\/uploads\/2020\/04\/7309871d1ecc5c1ceb4f077ea4afebff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Kujutage ette, et oleme otsustanud, et pakutud struktuur on liiga keeruline; meie puhul tellimuse plaani ja tegelikkuse jagamine on liigsete andmete esitamine ning koostatud tellimuse spetsifikatsioon kirjutatakse \u00fcmber vastavalt saabunud kauba vastuv\u00f5tu tulemusele; harvad valeartiklid ja ebakvaliteetsed kaubasaated lahendatakse s\u00fcsteemist v\u00e4ljaspool.<br \/>\nJa \u00fchel p\u00e4eval n\u00e4ete, kuidas kogu taverni saal on t\u00e4is rahutute ja hoolimatute merer\u00f6\u00f6vlite. Mis siis juhtus? <\/p>\n<p>Selgus, et koos teie \u00e4ri kasvuga kasvas ka tarbimine. Kunagi tehti juhtimisotsus, et kui gaasiiseeruv t\u00f5stuk osutus koormusest \u00fclek\u00f5rgeks ja\/v\u00f5i kaalult, mis juhtus \u00e4\u00e4rmiselt harva, prioriseeriti tarnija koormust jookide kasuks. <\/p>\n<p>Puudulikud kaubad kanti j\u00e4rgmisse tellimusse ja l\u00e4ksid uue reisi k\u00e4igus, samas kui tavernas oli p\u00fcsiv varude saldo, lubades t\u00e4helepanuta j\u00e4tta ebakorrap\u00e4raseid juhtumeid.<\/p>\n<p>Sadamas suleti viimane konkurent ja ebakorrap\u00e4rane juhtum gaasiiseeruva koormuse \u00fclekohust, mis toodi prioriseerimise kaudu, mis p\u00f5hines oletusel piisavusest p\u00fcsiva varu osas ja perioodisest ebak\u00f5normaalsusest transpordivahendi koormuses, sai tavap\u00e4raseks praktikaks. Loodud s\u00fcsteem t\u00f6\u00f6tab ideaalselt vastavalt s\u00fcsteemi sisestatud algoritmidele ja on vaba igasugusest v\u00f5imalusest j\u00e4lgida s\u00fcsteemset kavandatud tellimuste mittet\u00e4itmist. Ainult rikutud reputatsioon ja rahulolematud kliendid suudavad probleemi avastada.<\/p>\n<p>Hoolikas lugeja on t\u00f5en\u00e4oliselt m\u00e4rganud, et tellimuse spetsifikatsioonis (T_ORDER_SPEC) osades 2 ja 5 olev tellitud kogus v\u00f5ib osutuda esimese normaalkuju n\u00f5udmistele vastavaks v\u00f5i mitte. See s\u00f5ltub sellest, kas valitud kaubavalikus v\u00f5ivad samasse v\u00e4ljasse sattuda erinevad m\u00f5\u00f5t\u00fchikud. <\/p>\n<p><b>Teise normaalkuju rikku mine:<\/b><\/p>\n<p>Teie vajaduste kasvades soetate veel paar erineva suurusega transpordivahendit. \u00dclaltoodud kontekstis on transpordivahendite register liigseks osutunud, mist\u00f5ttu k\u00f5ik andmete t\u00f6\u00f6tluse algoritmid, mis teenindavad ladustamis- ja kohaletoimetamistegevusi, k\u00e4sitlevad laste toimetamist tarnijalt lattu kui \u00fche 1,5-tonnise kaubiku reisi. Seega, koos uute transpordivahendite ostmisega loote siiski transpordivahendite registri, kuid selle t\u00e4iendamise k\u00e4igus peate anal\u00fc\u00fcsima kogu koodi, mis viitab kauba liikumisele, et v\u00e4lja selgitada, kas igas konkreetses kohas viidatakse just sellele autole, mille p\u00f5hjal \u00e4ri algas.<\/p>\n<p><b>Kolmanda normaalvormi rikkumine:<\/b><\/p>\n<p>Mingil hetkel hakkate looma lojaalsusprogrammi ja tekib regulaarse kliendi rekord. Miks raisata aega f\u00fc\u00fcsiliste esinduste loomisele, mis hoiavad kokkuv\u00f5tlikke m\u00fc\u00fcgandmeid konkreetse kliendi kohta, et neid kasutada aruandluses ja edastada anal\u00fc\u00fctilistesse s\u00fcsteemidesse, kui lojaalsusprogrammi k\u00e4ivitamise etapis on k\u00f5ik, mis kliendi jaoks oluline, v\u00f5imalik paigutada kliendi enda rekordisse? Ja t\u00f5epoolest, esmapilgul ei tundu sellel m\u00f5tet olevat. Kuid iga kord, kui teie ettev\u00f5te \u00fchendab n\u00e4iteks uusi m\u00fc\u00fcgikanaleid, peaks teie anal\u00fc\u00fctikute seas olema keegi, kes meenutab, et selline agregatsioon atribuudi olemasolu on oluline. <\/p>\n<p>Iga uue protsessi kavandamisel, n\u00e4iteks Internetis m\u00fc\u00fck, m\u00fc\u00fck kaudu jaotajaid, mis on seotud \u00fchiselt lojaalsuss\u00fcsteemiga, peab keegi meeles pidama, et k\u00f5ik uued protsessid peavad koodi tasandil tagama andmete terviklikkuse. Tuhande tabeliga t\u00f6\u00f6stusliku andmebaasi puhul tundub see peaaegu saavutatmatu \u00fclesanne.<\/p>\n<p>Kogenud arendaja teab muidugi, kuidas lahendada k\u00f5ik eespool mainitud probleemid, kuid minu arvates on kogenud anal\u00fc\u00fcsi\u00fclesanne neid v\u00e4ltida.<\/p>\n<p>Soovin t\u00e4nada v\u00e4\u00e4rtusliku tagasiside eest v\u00e4ljaande ettevalmistamise k\u00e4igus juhtarendajat Jevgeni Jaruhinit.<\/p>\n<h2>Kirjandus<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/254773\/\">https:\/\/habr.com\/en\/post\/254773\/<\/a><\/noindex><br \/>\nConnolly Thomas, Begg Caroline. Andmebaasid. Kavandamine, rakendamine ja hooldus. Teooria ja praktika.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/497550\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0434\u0440\u0435\u0439 \u0421\u0435\u043c\u0435\u043d\u043e\u0432, \u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 ERP-\u0441\u0438\u0441\u0442\u0435\u043c. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u0441\u043a\u0430\u0436\u0435\u043c, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0442\u0430\u0432\u0435\u0440\u043d\u0430-\u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432. \u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432 \u043d\u0430\u0434\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443, \u0438\u0431\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":78199,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-78198","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0434\u0440\u0435\u0439 \u0421\u0435\u043c\u0435\u043d\u043e\u0432, \u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 ERP-\u0441\u0438\u0441\u0442\u0435\u043c. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u0441\u043a\u0430\u0436\u0435\u043c, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0442\u0430\u0432\u0435\u0440\u043d\u0430-\u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432. \u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432 \u043d\u0430\u0434\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443, \u0438\u0431\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0443\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 ERP-\u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u0435\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u041f\u041e: \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0432\u0435\u0440\u043d\u0443 \u043d\u0430 \u0422\u043e\u0440\u0442\u0443\u0433\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0434\u0440\u0435\u0439 \u0421\u0435\u043c\u0435\u043d\u043e\u0432, \u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 ERP-\u0441\u0438\u0441\u0442\u0435\u043c. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u0441\u043a\u0430\u0436\u0435\u043c, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0442\u0430\u0432\u0435\u0440\u043d\u0430-\u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432. \u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432 \u043d\u0430\u0434\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443, \u0438\u0431\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0443\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-17T11:42:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-17T11:42:37+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ERP-s\u00fcsteemide andmebaaside denormaliseerimine ja selle m\u00f5ju tarkvara arengule: avame taverni Tortugas | ProHoster","description":"Tere! Minu nimi on Andrei Semjonov, olen Sportmasteris vanemanal\u00fc\u00fctik. Selles postituses tahan arutada ERP-s\u00fcsteemide andmebaaside denormaliseerimise k\u00fcsimust. Vaatame \u00fcle \u00fcldtingimused ja ka konkreetse n\u00e4ite \u2014 oletame, et see on suurep\u00e4rane monopolistlik tavern piraatide ja meremeeste jaoks, kus piraate ja meremehi tuleb teenindada erinevalt, kuna arusaamad kaunist ja tarbimismustrid on erinevad.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 ERP-\u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u0435\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u041f\u041e: \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0432\u0435\u0440\u043d\u0443 \u043d\u0430 \u0422\u043e\u0440\u0442\u0443\u0433\u0435 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0434\u0440\u0435\u0439 \u0421\u0435\u043c\u0435\u043d\u043e\u0432, \u044f \u0441\u0442\u0430\u0440\u0448\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0432 \u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u0434\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 ERP-\u0441\u0438\u0441\u0442\u0435\u043c. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u0441\u043a\u0430\u0436\u0435\u043c, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0442\u0430\u0432\u0435\u0440\u043d\u0430-\u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432. \u0412 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0438\u0440\u0430\u0442\u043e\u0432 \u0438 \u043c\u043e\u0440\u044f\u043a\u043e\u0432 \u043d\u0430\u0434\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443, \u0438\u0431\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0443","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-17T11:42:37+00:00","article:modified_time":"2020-04-17T11:42:37+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"78198","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:03:32","updated":"2022-09-30 18:32:54"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/78198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=78198"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/78198\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/78199"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=78198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=78198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=78198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}