{"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\/ro\/blog\/administrirovanie\/denormalizacziya-baz-dannyh-erp-sistem-i-ee-vliyanie-na-razvitie-po-otkryvaem-tavernu-na-tortuge","title":{"rendered":"Denormalizarea bazelor de date din sistemele ERP \u0219i impactul acesteia asupra dezvolt\u0103rii software-ului: deschidem o tavern\u0103 \u00een Tortuga","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bun\u0103! M\u0103 numesc Andrei Semenov, sunt analist senior la Sportmaster. \u00cen aceast\u0103 postare vreau s\u0103 aduc \u00een discu\u021bie problema denormaliz\u0103rii bazelor de date din sistemele ERP. Vom examina condi\u021biile generale, precum \u0219i un exemplu concret \u2014 s\u0103 spunem, va fi o tavern\u0103 minunat\u0103-monopol pentru pira\u021bi \u0219i marinari. \u00cen care pira\u021bii \u0219i marinarii trebuie deservi\u021bi diferit, deoarece viziunea asupra frumosului \u0219i comportamentele de consum ale acestor buni domni se deosebesc semnificativ. <\/p>\n<p>Cum s\u0103 facem astfel \u00eenc\u00e2t toat\u0103 lumea s\u0103 fie mul\u021bumit\u0103? Cum s\u0103 nu o luam razna, proiect\u00e2nd \u0219i \u00eentre\u021bin\u00e2nd un astfel de sistem? Ce s\u0103 facem dac\u0103 la tavern\u0103 \u00eencep s\u0103 vin\u0103 nu doar pira\u021bi \u0219i marinari obi\u0219nui\u021bi?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/497550\/\"><img decoding=\"async\" alt=\"Denormalizarea bazelor de date din sistemele ERP \u0219i impactul acesteia asupra dezvolt\u0103rii software-ului: deschidem o tavern\u0103 \u00een Tortuga\" src=\"\/wp-content\/uploads\/2020\/04\/bd0ccbfa3e3649aac20631e09fcb5b16.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Totul este sub cat. Dar s\u0103 lu\u0103m lucrurile pe r\u00e2nd.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>1. Restric\u021bii \u0219i presupuneri<\/h2>\n<p>\nTot ce este prezentat se refer\u0103 doar la bazele de date rela\u021bionale. Consecin\u021bele bine cunoscute, inclusiv pe internet, ale denormaliz\u0103rii sub form\u0103 de anomalii ale modific\u0103rii, \u0219tergerii \u0219i inser\u0103rii nu sunt luate \u00een considerare. Cazurile \u00een care denormalizarea este un loc comun, cu exemple clasice: seria \u0219i num\u0103rul pa\u0219aportului, data \u0219i ora etc. r\u0103m\u00e2n \u00een afara publica\u021biei.<\/p>\n<p>\u00cen postare sunt folosite defini\u021bii intuitive \u0219i practic aplicabile ale formelor normale, f\u0103r\u0103 referiri la termeni matematici. \u00cen forma \u00een care pot fi aplicate la examinarea proceselor de afaceri reale (BPA) \u0219i proiectarea software-ului industrial.<\/p>\n<p>Exist\u0103 o opinie c\u0103 proiectarea depozitelor de date, a instrumentelor de generare a rapoartelor \u0219i a acordurilor de integrare (\u00een care se utilizeaz\u0103 o prezentare tabelar\u0103 a informa\u021biilor), se deosebe\u0219te de proiectarea bazelor de date ERP prin faptul c\u0103 confortul consumului \u0219i aplicarea denormaliz\u0103rii con\u0219tiente pentru atingerea acestuia poate avea prioritate fa\u021b\u0103 de protec\u021bia integrit\u0103\u021bii datelor. \u00cemp\u0103rt\u0103\u0219esc aceast\u0103 opinie, iar ceea ce este descris mai jos se refer\u0103 exclusiv la modelele de date de baz\u0103 \u0219i datele tranzac\u021bionale ale sistemelor ERP.<\/p>\n<p>Explica\u021bia formelor normale este prezentat\u0103 printr-un exemplu pe care majoritatea cititorilor \u00eel pot \u00een\u021belege la nivel de baz\u0103. Totu\u0219i, ca ilustra\u021bie vizual\u0103, \u00een punctele 4-5 a fost folosit \u00een mod con\u0219tient un exemplu \u201einventat\u201d. Dac\u0103 nu se face acest lucru \u0219i se ia un exemplu clasic, cum ar fi modelul de stocare a unei comenzi din pct. 2, s-ar putea ajunge \u00een situa\u021bia \u00een care aten\u021bia cititorului este deturnat\u0103 de propunerea de descompunere a procesului \u00eentr-un model, c\u0103tre experien\u021ba personal\u0103 \u0219i percep\u021bia modului \u00een care ar trebui s\u0103 fie construite procesele \u0219i modelele de stocare a datelor \u00een SIS. Cu alte cuvinte, lua\u021bi doi anali\u0219ti IT califica\u021bi, l\u0103sa\u021bi-l pe unul s\u0103 ofere servicii logisticienilor care transport\u0103 pasageri, iar pe cel\u0103lalt logisticienilor care transport\u0103 ma\u0219ini pentru produc\u021bia de microcipuri. Ruga\u021bi-i, f\u0103r\u0103 a discuta \u00een prealabil despre procesele de afaceri automatizabile, s\u0103 elaboreze un model de date pentru stocarea informa\u021biilor despre cursele feroviare. <\/p>\n<p>Exist\u0103 o probabilitate non-zero c\u0103 \u00een modelele propuse ve\u021bi g\u0103si nu doar un set de atribute semnificativ diferit, ci \u0219i seturi de entit\u0103\u021bi necorelate, deoarece fiecare analist se va baza pe procesele \u0219i sarcinile cunoscute de el. \u0218i este imposibil s\u0103 se declare, \u00een aceast\u0103 situa\u021bie, care model este \u201ecorect\u201d, deoarece nu exist\u0103 un criteriu de evaluare.<\/p>\n<h2>2. Forme normale<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/mz\/vc\/ex\/mzvcexxqfzhzyybzk8zvbndmtcc.png\"><img decoding=\"async\" alt=\"Denormalizarea bazelor de date din sistemele ERP \u0219i impactul acesteia asupra dezvolt\u0103rii software-ului: deschidem o tavern\u0103 \u00een Tortuga\" src=\"\/wp-content\/uploads\/2020\/04\/e2d3fc5656b59671648511b0a0e5f7b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><b>Prima form\u0103 normal\u0103 a unei baze de date<\/b> cere atomicitatea tuturor atributelor. <br \/>\n\u00cen special, dac\u0103 un obiect A are atribute ne-cheie a \u0219i b, astfel \u00eenc\u00e2t c=f(a,b) \u0219i \u00een tabelul care descrie obiectul A stoca\u021bi valoarea atributului c, atunci baza de date \u00eencalc\u0103 prima form\u0103 normal\u0103. De exemplu, dac\u0103 \u00een specifica\u021bia comenzii se indic\u0103 o cantitate, unit\u0103\u021bile de m\u0103sur\u0103 ale c\u0103ror valori depind de tipul de produs: \u00eentr-un caz pot fi buc\u0103\u021bi, \u00een altul litri, iar \u00een al treilea ambalaje formate din buc\u0103\u021bi (\u00een modelul de mai sus Good_count_WR), atunci baza de date \u00eencalc\u0103 atomicitatea atributelor. \u00cen acest caz, pentru a spune cum ar trebui s\u0103 fie structura tabelelor din specifica\u021bia comenzii, este necesar\u0103 o descriere \u021bint\u0103 a procesului de lucru \u00een SIS, \u0219i cum procesele pot fi diferite, atunci \u0219i versiunile \u201ecorecte\u201d pot fi numeroase.<\/p>\n<p><b>A doua form\u0103 normal\u0103 a unei baze de date<\/b> necesit\u0103 respectarea primei forme \u0219i o tabel\u0103 proprie pentru fiecare entitate legat\u0103 de procesul de lucru \u00een SI. Dac\u0103 \u00eentr-o tabel\u0103 exist\u0103 dependen\u021be cu=f1(a) \u0219i d=f2(b) \u0219i nu exist\u0103 o dependen\u021b\u0103 cu=f3(b), atunci \u00een tabel\u0103 este \u00eenc\u0103lcat\u0103 a doua form\u0103 normal\u0103. \u00cen exemplul de mai sus, \u00een tabela \u201eComand\u0103\u201d nu exist\u0103 o dependen\u021b\u0103 \u00eentre comand\u0103 \u0219i adres\u0103. Schimba\u021bi numele str\u0103zii sau ora\u0219ului \u0219i nu ve\u021bi avea niciun impact asupra atributelor esen\u021biale ale comenzii. <\/p>\n<p><b>A treia form\u0103 normal\u0103 a BD<\/b> necesit\u0103 respectarea celei de-a doua forme normale \u0219i absen\u021ba dependen\u021belor func\u021bionale \u00eentre atributele diferitelor entit\u0103\u021bi. Aceast\u0103 regul\u0103 poate fi formulat\u0103 astfel: \u201etot ceea ce poate fi calculat, trebuie s\u0103 fie calculat\u201d. Cu alte cuvinte, dac\u0103 exist\u0103 dou\u0103 obiecte A \u0219i B. \u00cen tabela care stocheaz\u0103 atributele obiectului A, este prezent atributul C, iar obiectul B are un atribut b, astfel \u00eenc\u00e2t exist\u0103 c=f4(b), atunci a treia form\u0103 normal\u0103 este \u00eenc\u0103lcat\u0103. \u00cen exemplul de mai jos, atributul \u201eNum\u0103r de articole\u201d (Total_count_WR) din \u00eenregistrarea comenzii pretinde \u00een mod evident c\u0103 \u00eencalc\u0103 a treia form\u0103 normal\u0103.<\/p>\n<h2>3. Abordarea mea pentru aplicarea normaliz\u0103rii<\/h2>\n<p>\n1. Numai procesul de afaceri \u021bint\u0103 care poate fi automatizat poate oferi analistului criteriile pentru identificarea entit\u0103\u021bilor \u0219i atributelor \u00een timpul cre\u0103rii modelului de stocare a datelor. Crearea modelului de proces este o condi\u021bie esen\u021bial\u0103 pentru crearea modelului normal de date.<\/p>\n<p>2. Atingerea celei de-a treia forme normale \u00een sens strict poate s\u0103 nu fie justificate \u00een practica real\u0103 a cre\u0103rii sistemelor ERP \u00een cazul \u00een care se \u00eendeplinesc par\u021bial sau total urm\u0103toarele condi\u021bii:<\/p>\n<ul>\n<li>procesele automatizate sunt rareori supuse schimb\u0103rilor, <\/li>\n<li>termenii pentru cercetare \u0219i dezvoltare sunt str\u00e2n\u0219i, <\/li>\n<li>cerin\u021bele de integritate a datelor sunt relativ sc\u0103zute (erorile poten\u021biale \u00een software-ul industrial nu duc la pierderi financiare sau la clien\u021bi pentru furnizorul de software)<\/li>\n<li>etc.<\/li>\n<\/ul>\n<p>\n\u00cen condi\u021biile descrise, cheltuielile pentru identificarea, descrierea ciclului de via\u021b\u0103 al anumitor obiecte \u0219i al atributelor lor pot fi nejustificate din punct de vedere al eficien\u021bei economice.<\/p>\n<p>3. Orice consecin\u021be ale denormaliz\u0103rii modelului de date \u00een SI deja creat pot fi mitigate printr-o cercetare \u0219i testare atent\u0103 a codului.<\/p>\n<p>4. Denormalizarea este o metod\u0103 de a transfera efortul de munc\u0103 de la faza de cercetare a surselor de date \u0219i proiectare a procesului de afaceri la faza de dezvoltare, de la perioada de implementare la perioada de dezvoltare a sistemului.<\/p>\n<p>5. Este recomandat s\u0103 se aspire la a treia form\u0103 normal\u0103 a Bazei de Date, dac\u0103:<\/p>\n<ul>\n<li>Direc\u021bia modific\u0103rii proceselor de afaceri automatizate este dificil de prev\u0103zut.<\/li>\n<li>\u00centre echipa de implementare \u0219i\/sau dezvoltare exist\u0103 o separare slab\u0103 a muncii.<\/li>\n<li>Sistemele incluse \u00een conturul de integrare se dezvolt\u0103 conform propriilor planuri.<\/li>\n<li>Incoeren\u021ba datelor poate duce la pierderi de clien\u021bi sau bani pentru companie.<\/li>\n<\/ul>\n<p>\n6. Proiectarea modelului de date trebuie s\u0103 fie realizat\u0103 de analist doar \u00een leg\u0103tur\u0103 cu modelele procesului de afaceri vizat \u0219i procesul din IS. Dac\u0103 proiectarea modelului de date este realizat\u0103 de un dezvoltator, acesta va trebui s\u0103 se aprofundeze \u00een domeniul de aplicare p\u00e2n\u0103 la un punct \u00een care s\u0103 \u00een\u021beleag\u0103, \u00een special, diferen\u021ba dintre valorile atributelor - o condi\u021bie necesar\u0103 pentru eviden\u021bierea atributelor atomice. Astfel, \u00ee\u0219i asum\u0103 func\u021bii care nu \u00eei sunt caracteristice.<\/p>\n<h2>4 Sarcin\u0103 pentru ilustrare<\/h2>\n<p>\nS\u0103 presupunem c\u0103 ave\u021bi o mic\u0103 tavern\u0103 robotizat\u0103 \u00een port. Segmentul dumneavoastr\u0103 de pia\u021b\u0103: marinarii \u0219i pira\u021bii care vin \u00een port \u0219i au nevoie de relaxare. Marinarii cump\u0103r\u0103 ceai cu cimbru, iar pira\u021bii rom \u0219i piepteni din os pentru piept\u0103natul barbii. Serviciul din tavern\u0103 este asigurat de un robot-hostess \u0219i un robot-barman. Datorit\u0103 calit\u0103\u021bii \u00eenalte \u0219i pre\u021burilor mici, a\u021bi eliminat to\u021bi competitorii, astfel \u00eenc\u00e2t fiecare sosind din nav\u0103 vine la taverna dumneavoastr\u0103, care este singura din port.<\/p>\n<p>Complexul de sisteme informa\u021bionale ale tavernei const\u0103 \u00een urm\u0103toarele software-uri: <\/p>\n<ul>\n<li>Sistem de avertizare timpurie despre clien\u021bi, care recunoa\u0219te categoria acestora \u00een func\u021bie de caracteristici specifice.<\/li>\n<li>Sistem de gestionare a robo\u021bilor-hostess \u0219i robo\u021bilor-barman.<\/li>\n<li>Sistem de gestionare a stocurilor \u0219i livr\u0103rilor \u00een punctul de v\u00e2nzare.<\/li>\n<li>Sistem de gestionare a rela\u021biilor cu furnizorii (SRF).<\/li>\n<\/ul>\n<p>\nProces:<\/p>\n<p>Sistemul de avertizare timpurie recunoa\u0219te persoanele care debarc\u0103 din nav\u0103. Dac\u0103 o persoan\u0103 este bine \u00eent\u00e2rziat\u0103, aceasta este identificat\u0103 ca marinar, iar dac\u0103 are barb\u0103, este recunoscut\u0103 ca pirat.<\/p>\n<p>Intr\u00e2nd \u00een taverna, oaspetele aude salutul robotului hostes \u00een func\u021bie de categoria sa, de exemplu: \u201eHo-ho-ho, stimate pirat, v\u0103 rug\u0103m s\u0103 merge\u021bi la masa nr.&#8230;\u201d<\/p>\n<p>Oaspetele se \u00eendreapt\u0103 spre masa specificat\u0103, unde robotul-barman a preg\u0103tit deja produsele pentru el, conform categoriei. Robotul-barman transmite informa\u021bia c\u0103tre sistemul de stocare c\u0103 urm\u0103toarea livrare trebuie s\u0103 fie crescut\u0103, iar sistemul de management al stocurilor formeaz\u0103 o solicitare de achizi\u021bie \u00een baza stocului disponibil.<\/p>\n<p>Sistemul de avertizare timpurie a fost dezvoltat de IT-ul vostru intern, iar programul de gestionare a robo\u021bilor de bar a fost creat de un contractor extern special pentru afacerea voastr\u0103. Sistemele de gestionare a stocurilor \u0219i a rela\u021biilor cu furnizorii sunt solu\u021bii standard personalizate de pe pia\u021b\u0103.<\/p>\n<h2>5. Exemple de denormalizare \u0219i influen\u021ba sa asupra dezvolt\u0103rii software-ului<\/h2>\n<p>\n\u00cen proiectarea procesului de afaceri, exper\u021bii din domeniu au afirmat \u00een unanimitate c\u0103, \u00een \u00eentreaga lume, pira\u021bii beau rom \u0219i \u00ee\u0219i perie b\u0103rbile cu piepteni din os, \u00een timp ce marinarii beau ceai cu cimbru \u0219i sunt \u00eentotdeauna bine b\u0103rbieri\u021bi. <\/p>\n<p>Se introduce un ghid al tipurilor de clien\u021bi cu dou\u0103 valori: 1 - pira\u021bi, 2 - marinari, comun pentru \u00eentreaga re\u021bea informa\u021bional\u0103 a companiei. <\/p>\n<p>Sistemul de alert\u0103 pentru clien\u021bi salveaz\u0103 imediat rezultatul proces\u0103rii imaginii ca identificator (ID) al clientului recunoscut \u0219i tipul s\u0103u: marinar sau pirat. <\/p>\n<p>ID-ul obiectului recunoscut<br \/>\nCategoria clientului<\/p>\n<p>100500<br \/>\nPirate<\/p>\n<p>100501<br \/>\nPirate<\/p>\n<p>100502<br \/>\nMarinar<\/p>\n<p>S\u0103 subliniem din nou c\u0103<\/p>\n<p>1. Marinarii no\u0219tri sunt de fapt b\u0103rba\u021bi t\u0103ia\u021bi<br \/>\n2. Pira\u021bii no\u0219tri sunt de fapt b\u0103rba\u021bi cu barb\u0103<\/p>\n<p>Ce probleme trebuie s\u0103 rezolv\u0103m pentru ca structura noastr\u0103 s\u0103 tind\u0103 spre a treia form\u0103 normalizat\u0103:<\/p>\n<ul>\n<li>\u00eenc\u0103lcarea atomicit\u0103\u021bii a atributului - Categoria clientului<\/li>\n<li>amestecarea faptului analizat \u0219i a concluziei \u00eentr-un singur tabel <\/li>\n<li>dependen\u021ba func\u021bional\u0103 fixat\u0103 \u00eentre atributele diferitelor entit\u0103\u021bi. <\/li>\n<\/ul>\n<p>\n\u00cen form\u0103 normalizat\u0103, am ob\u021bine dou\u0103 tabele: <\/p>\n<ul>\n<li>rezultatul recunoa\u0219terii sub form\u0103 de set de caracteristici stabilite,<\/li>\n<\/ul>\n<p><\/p>\n<p>ID-ul obiectului recunoscut<br \/>\nP\u0103rul facial<\/p>\n<p>100500<br \/>\nDa<\/p>\n<p>100501<br \/>\nDa<\/p>\n<p>100502<br \/>\nNu<\/p>\n<p><\/p>\n<ul>\n<li>rezultatul determin\u0103rii tipului de client ca aplica\u021bie a logicii \u00eencorporate \u00een sistem pentru interpretarea caracteristicilor stabilite<\/li>\n<\/ul>\n<p>ID-ul obiectului recunoscut<br \/>\nID-ul identific\u0103rii<br \/>\nCategoria clientului<\/p>\n<p>100500<br \/>\n100001<br \/>\nPirate<\/p>\n<p>100501<br \/>\n100002<br \/>\nPirate<\/p>\n<p>100502<br \/>\n100003<br \/>\nMarinar<\/p>\n<p>Cum poate normalizarea organiz\u0103rii datelor s\u0103 faciliteze dezvoltarea sistemelor informa\u021bionale? S\u0103 presupunem c\u0103, dintr-o dat\u0103, ave\u021bi clien\u021bi noi. S\u0103 fie pira\u021bi japonezi care poate nu au barb\u0103, dar vin cu un papagal pe um\u0103r, \u0219i pira\u021bi-ecologi, pe care \u00eei ve\u021bi recunoa\u0219te dup\u0103 profilul albastru al Gretei de pe pieptul st\u00e2ng. <\/p>\n<p>Pira\u021bii-ecologi, desigur, nu pot folosi piepteni din os \u0219i solicit\u0103 un analog din plastic reciclat din mare.<\/p>\n<p>Trebuie s\u0103 v\u0103 adapta\u021bi algoritmii programelor la noile date. Dac\u0103 regulile de normalizare ar fi fost respectate, atunci ar fi fost suficient s\u0103 completa\u021bi intr\u0103rile pentru unele ramuri ale proceselor \u00een anumite sisteme \u0219i s\u0103 crea\u021bi ramuri noi doar pentru acele cazuri \u0219i \u00een acele sisteme informa\u021bionale unde conteaz\u0103 aspectul p\u0103rului facial. Dar, av\u00e2nd \u00een vedere c\u0103 regulile nu au fost respectate, va trebui s\u0103 analiza\u021bi \u00eentregul cod, \u00een \u00eentreaga schem\u0103, unde sunt utilizate valorile din catalogul tipurilor de clien\u021bi \u0219i s\u0103 stabili\u021bi cu certitudine c\u0103, \u00een un caz, algoritmul trebuie s\u0103 \u021bin\u0103 cont de activitatea profesional\u0103 a clientului, iar \u00een altul de caracteristicile fizice. <\/p>\n<p>Sub forma \u00een care <b><i>tinde <\/i><\/b>spre normalizare, am ob\u021bine dou\u0103 tabele cu date opera\u021bionale \u0219i dou\u0103 cataloage:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/qn\/pq\/g4\/qnpqg4idbhbsqejhnryzfuilhhy.png\"><img decoding=\"async\" alt=\"Denormalizarea bazelor de date din sistemele ERP \u0219i impactul acesteia asupra dezvolt\u0103rii software-ului: deschidem o tavern\u0103 \u00een Tortuga\" src=\"\/wp-content\/uploads\/2020\/04\/eea87da839171e8a3a42db0618972124.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<ul>\n<li>rezultatul recunoa\u0219terii sub form\u0103 de set de caracteristici stabilite,<\/li>\n<\/ul>\n<p><\/p>\n<p>ID-ul obiectului recunoscut<br \/>\nGreta de pe pieptul st\u00e2ng<br \/>\nPapagalul de pe um\u0103r<br \/>\nP\u0103rul facial<\/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>rezultatul determin\u0103rii tipului de client (s\u0103 fie o reprezenta\u021bie utilizator, \u00een care sunt afi\u0219ate descrierile din cataloage)<\/li>\n<\/ul>\n<p>\n\u00censeamn\u0103 c\u0103 denormalizarea descoperit\u0103 face imposibil\u0103 adaptarea sistemelor la noile condi\u021bii? Desigur, nu. Dac\u0103 ne imagin\u0103m c\u0103 toate sistemele informa\u021bionale au fost create de o singur\u0103 echip\u0103 f\u0103r\u0103 fluctua\u021bii de personal, c\u0103 dezvoltarea este bine documentat\u0103 \u0219i informa\u021biile circul\u0103 \u00een echip\u0103 f\u0103r\u0103 pierderi, modific\u0103rile necesare pot fi realizate cu un efort neglijabil. Dar dac\u0103 ne \u00eentoarcem la condi\u021biile ini\u021biale ale problemei, doar pentru tip\u0103rirea protocoalelor discu\u021biilor comune s-ar consuma 1,5 tastaturi \u0219i \u00eenc\u0103 0,5 pentru formalizarea procedurilor de achizi\u021bii.<\/p>\n<p>\u00cen exemplul dat mai sus, toate cele trei forme normale sunt \u00eenc\u0103lcate, hai s\u0103 \u00eencerc\u0103m s\u0103 le \u00eenc\u0103lc\u0103m pe r\u00e2nd.<\/p>\n<p><b>\u00cenc\u0103lcarea primei forme normale:<\/b><\/p>\n<p>S\u0103 presupunem c\u0103 produsele sunt livrate \u00een depozitul dvs. de c\u0103tre furnizori prin autoturisme de 1,5 tone care apar\u021bin tavernei dvs. Dimensiunea comenzilor dvs. este at\u00e2t de mic\u0103 \u00een raport cu volumele furnizorilor, \u00eenc\u00e2t acestea sunt \u00eentotdeauna executate exact, f\u0103r\u0103 a a\u0219tepta producerea. Este necesar, \u00een aceast\u0103 situa\u021bie, s\u0103 exist\u0103 tabele separate: vehicule, tipuri de vehicule, trebuie s\u0103 separa\u021bi planul \u0219i realitatea \u00een comenzile dvs. \u00eenaintate furnizorilor?<\/p>\n<p>Imagina\u021bi-v\u0103 c\u00e2te \u201econexiuni suplimentare\u201d va trebui s\u0103 scrie\u021bi programatorilor dvs. dac\u0103 vor folosi modelul de mai jos pentru dezvoltarea programului.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/bz\/js\/gf\/bzjsgfs0fephwjwqx8xdvunrgva.png\"><img decoding=\"async\" alt=\"Denormalizarea bazelor de date din sistemele ERP \u0219i impactul acesteia asupra dezvolt\u0103rii software-ului: deschidem o tavern\u0103 \u00een Tortuga\" src=\"\/wp-content\/uploads\/2020\/04\/7309871d1ecc5c1ceb4f077ea4afebff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>S\u0103 spunem c\u0103 am decis c\u0103 structura propus\u0103 este excesiv de complicat\u0103, \u00een cazul nostru separarea planului \u0219i realit\u0103\u021bii \u00een \u00eenregistrarea comenzii reprezint\u0103 o informa\u021bie redundant\u0103, iar specifica\u021bia comenzii create se rescrie pe baza rezultatelor accept\u0103rii produselor primite, iar cazurile rare de sortare gre\u0219it\u0103 \u0219i sosirea produselor de calitate nesatisf\u0103c\u0103toare sunt gestionate \u00een afara sistemului informa\u021bional.<br \/>\n\u0218i iat\u0103 c\u0103 \u00eentr-o zi observa\u021bi cum \u00eentreaga sal\u0103 a tavernei este plin\u0103 de pira\u021bi furio\u0219i \u0219i ne\u00eengriji\u021bi. Ce s-a \u00eent\u00e2mplat? <\/p>\n<p>Se pare c\u0103, odat\u0103 cu cre\u0219terea afacerii dvs., a crescut \u0219i consumul. C\u00e2ndva s-a luat decizia de management c\u0103, dac\u0103 autoturismul era suprasolicitat \u00een volum \u0219i\/sau greutate, ceea ce se \u00eent\u00e2mpla extrem de rar, furnizorul prioritiza \u00eenc\u0103rc\u0103tura \u00een favoarea b\u0103uturilor. <\/p>\n<p>Produsele nedeliverate erau incluse \u00een urm\u0103toarea comand\u0103 \u0219i plecau \u00een noua curs\u0103, disponibilitatea unui stoc minim \u00een depozitul de l\u00e2ng\u0103 tavern\u0103 permitea ignorarea cazurilor lips\u0103.<\/p>\n<p>\u00cen port, ultimul concurent s-a \u00eenchis, iar cazul de suprasolicitare a autoturismului, ocolit prin prioritizarea bazat\u0103 pe presupunerea c\u0103 exist\u0103 un stoc minim suficient \u0219i o \u00eenc\u0103rc\u0103tur\u0103 periodic\u0103 insuficient\u0103 a vehiculului, a devenit o practic\u0103 obi\u0219nuit\u0103. Sistemul creat va func\u021biona perfect conform algoritmilor integra\u021bi \u0219i va fi lipsit de orice posibilitate de a urm\u0103ri ne\u00eendeplinirea sistematic\u0103 a comenzilor planificate. Doar reputa\u021bia deteriorat\u0103 \u0219i clien\u021bii nemul\u021bumi\u021bi vor putea descoperi problema.<\/p>\n<p>Cititorul atent a observat, f\u0103r\u0103 \u00eendoial\u0103, c\u0103 cantitatea comandat\u0103 \u00een specifica\u021bia comenzii (T_ORDER_SPEC) din sec\u021biunea 2 \u0219i din sec\u021biunea 5 poate corespunde sau nu cerin\u021bei primei forme normale. Totul depinde de faptul dac\u0103, av\u00e2nd sortimentul de produse ales, pot fi incluse \u00een acela\u0219i c\u00e2mp unit\u0103\u021bi de m\u0103sur\u0103 diferite prin natura lor. <\/p>\n<p><b>\u00cenc\u0103lcarea celei de-a doua forme normale:<\/b><\/p>\n<p>Pe m\u0103sur\u0103 ce cerin\u021bele dumneavoastr\u0103 cresc, achizi\u021biona\u021bi \u00eenc\u0103 c\u00e2teva vehicule de transport de dimensiuni diferite. \u00cen contextul prezentat mai sus, crearea unui ghid al vehiculelor a fost considerat\u0103 redundant\u0103, rezult\u00e2nd c\u0103 toate algoritmii de lucru cu datele, care sprijin\u0103 nevoile de livrare \u0219i de depozitare, percep mi\u0219carea m\u0103rfurilor de la furnizor la depozit ca o curs\u0103 exclusiv de 1,5 tone. A\u0219adar, \u00eempreun\u0103 cu achizi\u021bia de noi vehicule de transport, totu\u0219i crea\u021bi un ghid al vehiculelor, dar \u00een cursul adapt\u0103rii va trebui s\u0103 analiza\u021bi tot codul care se refer\u0103 la mi\u0219carea m\u0103rfurilor pentru a determina dac\u0103, \u00een fiecare loc specific, se fac referiri la caracteristicile vehiculului cu care a \u00eenceput afacerea.<\/p>\n<p><b>\u00cenc\u0103lcarea celei de-a treia forme normale:<\/b><\/p>\n<p>\u00centr-un anumit moment, \u00eencepe\u021bi s\u0103 crea\u021bi un program de loialitate, apare \u00eenregistrarea unui client fidel. De ce, de exemplu, s\u0103 pierde\u021bi timpul cre\u00e2nd reprezent\u0103ri materiale care stocheaz\u0103 date agregate despre v\u00e2nz\u0103rile unui client pentru utilizarea \u00een raportare \u0219i transmiterea \u00een sisteme analitice, dac\u0103 \u00een etapa de start a programului de loialitate tot ce \u00eei intereseaz\u0103 clientului poate fi plasat \u00een \u00eenregistrarea clientului \u00eensu\u0219i? \u0218i, \u00eentr-adev\u0103r, la prima vedere, nu exist\u0103 sens. Dar de fiecare dat\u0103 c\u00e2nd afacerea dumneavoastr\u0103 va conecta, de exemplu, noi canale de v\u00e2nzare, printre anali\u0219tii dumneavoastr\u0103 ar trebui s\u0103 fie cineva care s\u0103-\u0219i aduc\u0103 aminte c\u0103 exist\u0103 un astfel de atribut de agregare. <\/p>\n<p>Proiect\u00e2nd fiecare nou proces, de exemplu, v\u00e2nz\u0103rile pe Internet, v\u00e2nz\u0103rile prin distribuitori conecta\u021bi la sistemul comun de loialitate, cineva trebuie s\u0103 aib\u0103 \u00een vedere c\u0103 toate noile procese trebuie s\u0103 asigure, la nivel de cod, integritatea datelor. Pentru o baz\u0103 de date industrial\u0103 cu o mie de tabele, aceasta pare o sarcin\u0103 pu\u021bin plauzibil\u0103.<\/p>\n<p>Un dezvoltator experimentat \u0219tie, desigur, cum s\u0103 gestioneze toate problemele men\u021bionate mai sus, dar, \u00een opinia mea, sarcina unui analist experimentat este de a evita ajungerea la acestea.<\/p>\n<p>Vreau s\u0103 exprim recuno\u0219tin\u021ba mea pentru feedback-ul valoros oferit \u00een timpul preg\u0103tirii publica\u021biei de c\u0103tre principalul dezvoltator Evgheni Iaruhin.<\/p>\n<h2>Literatur\u0103<\/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 Carolyn. Baze de date. Proiectare, implementare \u0219i \u00eentre\u021binere. Teorie \u0219i practic\u0103<br \/>\n<br \/>Sursa: <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 5.0.2.1 - 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.\" \/>\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\/ro\/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) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/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\udd47Denormalizarea bazelor de date din sistemele ERP \u0219i impactul s\u0103u asupra dezvolt\u0103rii software-ului: deschidem o tavern\u0103 \u00een Tortuga | ProHoster","description":"Bun\u0103! Numele meu este Andrei Semenov, sunt analist senior la Sportmaster. \u00cen aceast\u0103 postare, vreau s\u0103 ridic problema denormaliz\u0103rii bazelor de date din sistemele ERP.","canonical_url":"https:\/\/prohoster.info\/ro\/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":"ro_RO","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.","og:url":"https:\/\/prohoster.info\/ro\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/78198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=78198"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/78198\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/78199"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=78198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=78198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=78198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}