Denormalizazione di e basa di dati ERP è u so impattu nantu à u sviluppu di u software: apertura di una taverna in Tortuga

Bonghjornu! Mi chjamu Andrey Semenov, sò un analista senior in Sportmaster. In questu post vogliu suscitarà u prublema di a denormalizazione di e basa di dati di u sistema ERP. Fighjemu e cundizioni generale, è ancu un esempiu specificu - dicemu chì seria una maravigliosa taverna di monopoliu per i pirati è i marinari. In quale i pirati è i marinari devenu esse servuti in modu diversu, perchè l'idee di bellezza è i mudelli di cunsumu di sti boni signori sò significativamente diffirenti.

Cumu fà tutti felici? Cumu pudete evità di impazzisce cuncependu è mantene un tali sistema? Cosa da fà se micca solu i soli pirati è marinari cumincianu à vene à a taverna?

Denormalizazione di e basa di dati ERP è u so impattu nantu à u sviluppu di u software: apertura di una taverna in Tortuga

Tuttu hè sottu u cut. Ma andemu in ordine.

1. Limitazioni è supposizioni

Tuttu ciò chì sopra s'applica solu à e basa di dati relazionale. E cunsequenze di a denormalizazione in a forma di mudificazione, eliminazione è anomalie di inserzione, chì sò ben cuparti, ancu in Internet, ùn sò micca cunsiderate. Fora di u scopu di sta publicazione, ci sò casi induve a denormalizazione hè un locu cumuni, cù esempi classici: serie è numeru di passaportu, data è ora, etc.

U post usa definizioni intuitive è praticamenti applicabili di e forme normali, senza riferimentu à i termini matematichi. In a forma in quale ponu esse appiicati à l'esame di i prucessi di cummerciale reali (BP) è u disignu di software industriale.

Hè sustinutu chì u disignu di magazzini di dati, strumenti di rapportu è accordi d'integrazione (chì utilizanu rapprisintazioni tabulari di l'infurmazioni) difiere da u disignu di basa di dati di u sistema ERP in quella facilità di cunsumu è l'usu di denormalizazione cuscente per ottene questu pò piglià a precedenza annantu à l'integrità. dati di prutezzione. I sparte sta opinione, è ciò chì hè descrittu quì sottu s'applica solu à i dati maestri è i mudelli di dati transazzione di i sistemi ERP.

Una spiegazione di e forme nurmali hè datu cù un esempiu chì si capisce à u livellu di ogni ghjornu per a maiò parte di i lettori. In ogni casu, cum'è un'illustrazione visuale, in i paragrafi 4-5, un compitu deliberatamente "fictivu" hè statu deliberatamente utilizatu. Se ùn fate micca questu è pigliate un esempiu di libru di testu, per esempiu, u listessu mudellu di almacenamentu di l'ordine da u puntu 2, pudete truvà in una situazione induve u focu di u lettore serà spustatu da a descomposizione pruposta di u prucessu in un mudellu. à l'esperienza persunale è a percepzione di cumu i prucessi è i mudelli per l'almacenamiento di dati in IS deve esse custruitu. In altre parolle, pigliate dui analisti IT qualificati, chì unu furnisce servizii à i logistici chì trasportanu i passageri, l'altru à i logistici chì trasportanu e macchine per a produzzione di microchips. Dumandate à elli, senza discutiri di BP automatizati in anticipu, per creà un mudellu di dati per almacenà l'infurmazioni nantu à un viaghju in ferrovia.

Ci hè una probabilità non-zero chì in i mudelli pruposti truverete micca solu un inseme notevolmente sfarente di attributi, ma ancu insemi divergenti di entità, perchè ogni analista s'appoghjanu nantu à i prucessi è i travaglii familiari per ellu. È in una tale situazione hè impussibile di dì quale mudellu hè "correttu", perchè ùn ci hè micca un criteriu di valutazione.

2. Forme nurmale

Denormalizazione di e basa di dati ERP è u so impattu nantu à u sviluppu di u software: apertura di una taverna in Tortuga

Prima forma normale di a basa di dati richiede l'atomicità di tutti i attributi.
In particulare, se l'ughjettu A hà attributi micca chjave a è b, cusì chì c = f (a, b) è in a tabella chì descrive l'ughjettu A guardate u valore di l'attributu c, allora a prima forma normale hè violata in a basa di dati. . Per esempiu, se a specificazione di l'ordine indica una quantità, l'unità di misurazione di quale dipende di u tipu di pruduttu: in un casu pò esse pezzi, in un altru litri, in un terzu pacchettu cumpostu di pezzi (in u mudellu sopra Good_count_WR) , allura l'atomicità di l'attributi hè violata in a basa di dati. In questu casu, per dì ciò chì deve esse u cluster di tavula di a specificazione di l'ordine, avete bisognu di una descrizzione mirata di u prucessu di travagliu in l'IS, è postu chì i prucessi ponu esse sfarenti, ponu esse parechje versioni "corrette".

Siconda forma normale di a basa di dati esige u rispettu di a prima forma è a so propria tabella per ogni entità ligata à u prucessu di travagliu in l'IS. Se in una tavula ci sò dipendenze c=f1(a) è d=f2(b) è ùn ci hè micca dependenza c=f3(b), allura a seconda forma normale hè violata in a tavula. In l'esempiu sopra, ùn ci hè micca una dependenza trà l'ordine è l'indirizzu in a tavola di l'Ordine. Cambia u nome di a strada o di a cità è ùn averete micca effettu nantu à l'attributi essenziali di l'ordine.

Terza basa di dati di forma normale richiede u rispettu di a seconda forma normale è l'absenza di dependenzii funziunali trà l'attributi di e diverse entità. Sta regula pò esse formulata cusì: "tuttu ciò chì pò esse calculatu deve esse calculatu". In altri palori, s'ellu ci sò dui ogetti A è B. In a tavula chì guarda l'attributi di l'ughjettu A, l'attributu C hè manifestatu, è l'ughjettu B hà l'attributu b, cusì chì c = f4 (b) esiste, allora a terza forma normale. hè violatu. In l'esempiu quì sottu, l'attributu Quantità di Pezzi (Total_count_WR) nantu à u registru di l'ordine dichjara chjaramente di violà a terza forma normale.

3. U mo approcciu per appiccà a nurmalizazione

1. Solu un prucessu di cummerciale automatizatu di destinazione pò furnisce l'analista cun criteri per identificà entità è attributi quandu creanu un mudellu di almacenamiento di dati. A creazione di un mudellu di prucessu hè un prerequisite per creà un mudellu di dati normale.

2. Assicurà a terza forma nurmale in u sensu strettu pò esse micca praticu in a pratica attuale di creà sistemi ERP, se alcune o tutte e seguenti cundizioni sò cumplette:

  • i prucessi automatizati sò raramente sughjetti à cambià,
  • i termini per a ricerca è u sviluppu sò stretti,
  • i requisiti per l'integrità di e dati sò relativamente bassu (errori potenziali in u software industriale ùn portanu micca à a perdita di soldi o clienti da u cliente di u software)
  • è simili.

In e cundizioni descritte, i costi di identificà è di discrizzione di u ciculu di vita di certi ogetti è i so attributi ùn ponu esse ghjustificate da u puntu di vista di l'efficienza ecunomica.

3. Qualchese cunsequenze di a denormalizazione di u mudellu di dati in un IS digià creatu pò esse mitigatu da un studiu preliminariu approfonditu di u codice è a prova.

4. A denormalizazione hè una manera di trasfiriri i costi di u travagliu da u stadiu di a ricerca di fonti di dati è di cuncepimentu di un prucessu cummerciale à u stadiu di sviluppu, da u periodu di implementazione à u periodu di sviluppu di u sistema.

5. Hè cunsigliatu di strive per a terza forma normale di una basa di dati se:

  • A direzzione di u cambiamentu in i prucessi di cummerciale automatizati hè difficiule di predicà
  • Ci hè una divisione debule di u travagliu in a squadra di implementazione è / o di sviluppu
  • I sistemi inclusi in u circuitu di integrazione si sviluppanu secondu i so piani
  • L'incoerenza di dati pò esse risultatu in una sucità perde clienti o soldi

6. U disignu di un mudellu di dati deve esse realizatu da un analista solu in cunnessione cù i mudelli di u prucessu cummerciale di destinazione è u prucessu in l'IS. Se un sviluppatore cuncepisce un mudellu di dati, duverà immerse in u sughjettu in una tale misura chì, in particulare, capisce a diffarenza trà i valori di l'attributi - una cundizione necessaria per isolà l'attributi atomichi. Cusì, piglià funzioni inusual.

4 Prublemu per l'illustrazione

Diciamu chì avete una piccula taverna robotica in u portu. U vostru segmentu di u mercatu: marinari è pirati chì venenu in portu è necessitanu una pausa. Vendite tè cù timu à i marinari, è rum è pettini d'ossu per pettinare a barba à i pirati. U serviziu in a taverna stessu hè furnitu da un robot hostess è un robot barman. Grazie à a vostra alta qualità è i prezzi bassi, avete cacciatu i vostri cuncurrenti, perchè tutti quelli chì venenu da a nave venenu à a vostra taverna, chì hè l'unicu in u portu.

U cumplessu di sistemi d'informazione di taverna hè custituitu da u software seguente:

  • Un sistema d'alerta anticipata nantu à un cliente chì ricunnosce a so categuria basatu nantu à e caratteristiche caratteristiche
  • Sistema di cuntrollu per robot hostess è robot bartenders
  • Sistema di gestione di magazzinu è consegna à u puntu di vendita
  • Sistema di Gestione di Relazioni cù i Fornitori (SURP)

Proċessu:

U sistema d'alerta precoce ricunnosce e persone chì lascianu a nave. Se una persona hè rasata, l'identifica cum'è un marinaru; se una persona si trova chì hà una barba, allora hè identificatu cum'è un pirata.

Ingressu in a taverna, l'invitatu sente un salutu da u robot hostess in cunfurmità cù a so categuria, per esempiu: "Ho-ho-ho, caru pirate, vai à a tavola No..."

L'invitatu va à a tavula specifica, induve u robot bartender hà digià preparatu merchenzie per ellu in cunfurmità cù a categuria. U robot bartender trasmette infurmazioni à u sistema di magazzinu chì a prossima parte di consegna deve esse aumentata; u magazzinu IS, basatu annantu à i saldi rimanenti in almacenamentu, genera una dumanda di compra in u sistema di gestione.

Mentre chì u sistema d'alerta anticipata pò esse sviluppatu da a vostra IT interna, u prugramma di gestione di robot di bar pò esse statu creatu da un cuntrattu esternu specificamente per a vostra attività. È i sistemi per a gestione di i magazzini è e relazioni cù i fornituri sò solu suluzione persunalizata da u mercatu.

5. Esempii di denormalizazione è u so impattu nantu à u sviluppu di software

Quandu cuncepimentu di un prucessu cummerciale, l'esperti di u sughjettu intervistati anu unanimu chì i pirati di u mondu beie rum è pettinanu a barba cù pettini d'ossu, è i marinari beie tè cù timu è sò sempre rasati.

Un repertoriu di tipi di clientella appare cù dui valori: 1 - pirati, 2 - marinari, cumuni per tuttu u circuitu di l'infurmazioni di a cumpagnia.

U sistema di notificazione di u cliente guarda immediatamente u risultatu di u trattamentu di l'imaghjini cum'è l'identificatore (ID) di u cliente ricunnisciutu è u so tipu: marinaru o pirate.

ID di l'ughjettu ricunnisciutu
categuria di u cliente

100500
Pirata

100501
Pirata

100502
Marinu

Lasciamu nutà una volta chì

1. I nostri marinari sò veramente persone rasate
2. I nostri pirati sò veramente barbuti

Chì prublemi in questu casu deve esse eliminati per chì a nostra struttura strive per a terza forma normale:

  • violazione di l'atomicità di l'attributu - Category Client
  • mischjendu u fattu analizatu è a cunclusione in una tavola
  • relazione funziunale fissa trà l'attributi di e diverse entità.

In a forma nurmalizata, averemu duie tavule:

  • risultatu di ricunniscenza in forma di un inseme di caratteristiche stabilite,

ID di l'ughjettu ricunnisciutu
Capelli facciali

100500
chì

100501
chì

100502
No

  • u risultatu di determinà u tipu di cliente cum'è una applicazione di a logica incrustata in l'IS per interpretà e caratteristiche stabilite

ID di l'ughjettu ricunnisciutu
ID d'identificazione
categuria di u cliente

100500
100001
Pirata

100501
100002
Pirata

100502
100003
Marinu

Cumu pò una urganizazione di almacenamentu di dati normalizata facilità u sviluppu di un cumplessu IP? Diciamu chì di colpu avete novi clienti. Lasciate esse pirati giapponesi chì ùn anu micca a barba, ma caminanu cù un pappagallo nantu à a spalla, è i pirati ambientalisti, pudete facilmente ricunnosce da u prufilu blu di Greta nantu à u pettu manca.

I pirati ambientali, naturalmente, ùn ponu micca aduprà pettini d'ossu è necessitanu un analogu fattu di plastica di mare riciclata.

Avete bisognu di reworking l'algoritmi di u prugramma in cunfurmità cù i novi inputs. Se i reguli di nurmalizazione sò stati seguiti, allora avete solu da supplementà l'inputs per certi rami di prucessu in certi sistemi è creanu novi rami solu per quelli casi è in quelli IS induve importa i capelli faciale. Ma, postu chì e regule ùn sò micca seguite, duverete analizà u codice sanu, in tuttu u circuitu, induve i valori di u repertoriu di u cliente sò usati è stabilisce chjaramente chì in un casu l'algoritmu deve piglià in contu u prufessiunale. l'attività di u cliente, è in l'altri caratteristiche fisiche.

In una forma chì cerca à nurmalizà, averemu duie tavule cù dati operativi è dui cartulari:

Denormalizazione di e basa di dati ERP è u so impattu nantu à u sviluppu di u software: apertura di una taverna in Tortuga

  • risultatu di ricunniscenza in forma di un inseme di caratteristiche stabilite,

ID di l'ughjettu ricunnisciutu
Greta nantu à u pettu manca
Bird nantu à a spalla
Capelli facciali

100510
1
1
1

100511
0
0
1

100512

1
0

  • u risultatu di a determinazione di u tippu di cliente (chì sia una vista persunalizata in quale si mostranu e descrizioni da i cartulari)

A denormalizazione rilevata significa chì i sistemi ùn ponu micca mudificate per scuntrà e novi cundizioni? Di sicuru micca. Se imaginemu chì tutti i sistemi d'infurmazione sò stati creati da una squadra cù u turnover di u persunale zero, i sviluppi sò ben documentati è l'infurmazioni sò trasferiti in a squadra senza perdita, allora i cambiamenti necessarii ponu esse fatti cù pocu sforzu. Ma s'è turnemu à e cundizioni originali di u prublema, i tastieri 1,5 seranu sguassati solu per stampà i protokolli di discussioni cumuni è un altru 0,5 per processà e prucedure di procura.

In l'esempiu di sopra, tutti i trè formi nurmali sò violati, pruvemu di violà separatamente.

Violazione di a prima forma normale:

Diciamu chì e merchenzie sò consegnate à u vostru magazzinu da i magazzini di i fornituri per pick-up usendu una gazelle di 1.5 tonnellate chì appartene à a vostra taverna. A dimensione di i vostri ordini hè cusì chjuca in quantu à u fatturatu di i fornitori chì sò sempre cumpleti unu-à-unu senza aspittà a produzzione. Avete bisognu di tavule separati cù un tali prucessu di cummerciale: veiculi, tippi di veiculi, hè necessariu separà u pianu è u fattu in i vostri ordini à i fornituri partiti?

Immaginate quante cunnessione "extra" chì i vostri programatori anu da scrive si utilizate u mudellu sottu per sviluppà un prugramma.

Denormalizazione di e basa di dati ERP è u so impattu nantu à u sviluppu di u software: apertura di una taverna in Tortuga

Diciamu chì avemu decisu chì a struttura pruposta hè inutilmente cumplessa; in u nostru casu, siparandu u pianu è u fattu in u registru di l'ordine hè infurmazione redundante, è a specificazione di l'ordine generata hè riscritta nantu à i risultati di l'accettazione di e merchenzie ghjunte, rara miss. -a classificazione è l'arrivu di merchenzie di qualità inadegwate sò stallati fora di l'IS.
È po un ghjornu vede cumu tutta a sala di taverna hè piena di pirati indignati è disgraziati. Chi hè successu?

Risulta chì cum'è a vostra attività hà crisciutu, cusì hà fattu u vostru cunsumu. Una volta, una decisione di gestione hè stata presa chì, se una gazelle hè stata sovraccaricata in voluminu è / o pesu, chì era estremamente raru, u fornitore priurità a carica in favore di e bevande.

E merchenzie non consegnate sò finite in u prossimu ordine è partenu in un novu volu; a prisenza di un saldo minimu in u magazzinu à a taverna hà permessu di ùn avè micca avvistu i casi mancanti.

L'ultimu cuncurrente chjusu à u portu, è u casu punitu di a sopracarga di gazelle, bypassed by prioritization based on the assumption of the sufficiency of the minimum balance and period underloading of the vehicle, diventenu pratica cumuni. U sistema creatu idealmente travaglià in cunfurmità cù l'algoritmi incrustati in questu è serà privatu di ogni opportunità per seguità u fallimentu sistematicu per cumpiendu ordini pianificati. Solu una reputazione dannata è i clienti insatisfeti puderanu detectà u prublema.

Un lettore attentu pò avè nutatu chì a quantità urdinata in a specificazione di l'ordine (T_ORDER_SPEC) in a rùbbrica 2 è a rùbbrica 5 pò o micca risponde à u requisitu di prima forma normale. Tuttu dipende chì, datu l'assortiment selezziunatu di merchenzie, essenzialmente diverse unità di misura ponu cascà in u stessu campu.

Violazione di a seconda forma normale:

Quandu i vostri bisogni crescenu, cumprate un paru di veiculi più di diverse dimensioni. In u cuntestu sopra, a creazione di un annuariu di veiculi hè stata cunsiderata redundante; per quessa, tutti l'algoritmi di trasfurmazioni di dati chì servenu i bisogni di consegna è magazzinu percepiscenu u muvimentu di a carica da u fornitore à u magazzinu cum'è u volu di un esclusivamente 1,5-ton. gazelle. Allora, inseme cù l'acquistu di novi veiculi, avete ancu creà un annuariu di veiculi, ma quandu u finalizà, vi tuccherà à analizà tuttu u codice chì riferenzia u muvimentu di a carica per sapè s'ellu in ogni locu specificu i riferimenti sò implicati à e caratteristiche. di u veiculu stessu da quale l'affari hà iniziatu.

Violazione di a terza forma normale:

À un certu puntu avete principiatu à creà un prugramma di fidelizazione, un registru di un cliente regulare appare. Perchè, per esempiu, passanu u tempu per creà viste materiali chì guardanu dati aggregati nantu à a vendita à un cliente individuale per l'usu in rapportu è trasferimentu à i sistemi analitici, se à l'iniziu di un prugramma di fideltà tuttu ciò chì interessa u cliente pò esse piazzatu nantu à u registru di u cliente. ? È, veramente, à u primu sguardu, ùn ci hè nunda. Ma ogni volta chì a vostra attività cunnetta, per esempiu, novi canali di vendita, ci deve esse qualchissia trà i vostri analisti chì ricurdarà chì un tali attributu di aggregazione esiste.

Quandu u disignu di ogni novu prucessu, per esempiu, vendite in Internet, vendite attraversu distributori cunnessi à un sistema di fidelizazione cumuni, qualchissia deve tene in mente chì tutti i novi prucessi devenu assicurà a integrità di dati à u livellu di codice. Per una basa di dati industriale cù mille tavule, questu pare un compitu impussibile.

Un sviluppatore espertu, sicuru, sà cumu piantà tutti i prublemi citati sopra, ma, in u mo parè, u compitu di un analista espertu ùn hè micca di mette in luce.

Vogliu sprime a mo gratitùdine à u sviluppatore principali Evgeniy Yarukhin per i so preziosi feedback durante a preparazione di a publicazione.

Letteratura

https://habr.com/en/post/254773/
Connolly Thomas, Begg Caroline. basa di dati. Cuncepimentu, implementazione è supportu. Teoria è pratica

Source: www.habr.com

Add a comment