Dezajno de datumbazo. Plej bonaj praktikoj

En antaŭĝojo de la komenco de la sekva fluo kun la rapideco "Datumbazo" Ni preparis materialon de malgranda aŭtoro kun gravaj konsiloj por desegni datumbazon. Ni esperas, ke ĉi tiu materialo estos utila al vi.

Dezajno de datumbazo. Plej bonaj praktikoj

Datumbazoj estas ĉie: de la plej simplaj blogoj kaj adresaroj ĝis fidindaj informsistemoj kaj grandaj sociaj retoj. Ĉu la datumbazo estas simpla aŭ kompleksa, ne tiom gravas, kiom gravas desegni ĝin ĝuste. Kiam datumbazo estas desegnita senpripense kaj sen klara kompreno de la celo, ĝi ne nur estas senefika, sed plua laboro kun la datumbazo estos vera turmento, nepenetrebla arbaro por uzantoj. Jen kelkaj datumbazaj dezajnaj konsiletoj, kiuj helpos vin krei utilan kaj facile uzeblan produkton.

1. Determini por kio estas la tabelo kaj kia estas ĝia strukturo

Dezajno de datumbazo. Plej bonaj praktikoj

Hodiaŭ, evolumetodoj kiel ekzemple Scrum aŭ RAD (Rapid Application Development) helpas IT-teamojn evoluigi datumbazojn rapide. Tamen, en la serĉado de tempo, la tento estas tre granda plonĝi rekte en konstruadon de bazo, malklare imagante, kio estas la celo mem, kiaj devus esti la finaj rezultoj.
 
Estas kvazaŭ la teamo koncentriĝas pri efika, rapida laboro, sed ĉi tio estas miraĝo. Ju pli kaj pli rapide vi plonĝas en la profundon de la projekto, des pli da tempo necesos por identigi kaj ŝanĝi erarojn en la datumbaza dezajno.

Do la unua afero, kiun vi devas decidi, estas difini la celon por via datumbazo. Por kia aplikaĵo estas disvolvita la datumbazo? Ĉu la uzanto nur laboros kun rekordoj kaj bezonos atenti transakciojn, aŭ ĉu li pli interesiĝas pri datuma analizo? Kie la bazo estu deplojita? Ĉu ĝi spuros klientan konduton aŭ simple administros klientajn rilatojn? 

Ju pli frue la dezajnteamo respondas ĉi tiujn demandojn, des pli milda estos la datumbaza dezajna procezo.

2. Kiajn datumojn mi elektu por stokado?

Dezajno de datumbazo. Plej bonaj praktikoj

Planu antaŭe. Pensoj pri tio, kion faros la retejo aŭ sistemo por kiu la datumbazo estas desegnita estonte. Gravas iri preter la simplaj postuloj de la teknikaj specifoj. Nur bonvolu ne ekpensi pri ĉiuj eblaj specoj de datumoj, kiujn uzanto iam stokos. Anstataŭe, pensu ĉu uzantoj povos skribi afiŝojn, alŝuti dokumentojn aŭ fotojn aŭ interŝanĝi mesaĝojn. Se ĉi tio estas la kazo, tiam vi devas asigni spacon por ili en la datumbazo.

Laboru kun la teamo, fako aŭ organizo, por kiu la dezajnbazo estos subtenata estonte. Komuniku kun homoj je malsamaj niveloj, de klientservaj specialistoj ĝis departementestroj. Tiel, helpe de sugestoj, vi havos klaran ideon pri la postuloj de la kompanio. 

Neeviteble, la bezonoj de uzantoj ene de la sama fako konfliktos. Se vi renkontas ĉi tion, ne timu fidi vian propran sperton kaj trovi kompromison, kiu konvenas al ĉiuj partioj kaj kontentigas la finfinan celon de la datumbazo. Estu trankvila: estonte vi ricevos +100500 en karmo kaj monton da kuketoj.

3. Modelaj datumoj zorge

Dezajno de datumbazo. Plej bonaj praktikoj

Estas pluraj ŝlosilaj punktoj por atenti dum modelado de datumoj. Kiel ni diris antaŭe, la celo de la datumbazo determinas kiujn metodojn uzi en modeligado. Se ni desegnas datumbazon por interreta rekorda prilaborado (OLTP), alivorte por krei, redakti kaj forigi rekordojn, ni uzas transakcian modeladon. Se la datumbazo devas esti interrilata, tiam plej bone estas uzi plurdimensian modeladon.

Dum modeligado, koncipaj (CDM), fizikaj (PDM), kaj logikaj (LDM) datummodeloj estas konstruitaj. 

Koncipaj modeloj priskribas unuojn kaj la specojn de datumoj kiujn ili inkludas, same kiel la rilatojn inter ili. Dividu viajn datumojn en logikaj partoj - ĝi multe pli facilas la vivon.
La ĉefa afero estas modereco, ne troigu ĝin.

Se ento estas tre malfacile klasebla en unu vorto aŭ frazo, tiam estas tempo uzi subtipojn (infanaj estaĵoj).

Se ento kondukas sian propran vivon, havas atributojn, kiuj priskribas sian konduton kaj ĝian aspekton, kaj ankaŭ rilatojn kun aliaj objektoj, tiam vi povas sekure uzi ne nur subtipon, sed ankaŭ supertipon (gepatra ento). 

Se vi neglektas ĉi tiun regulon, aliaj programistoj konfuziĝos en via modelo kaj ne plene komprenos la datumojn kaj la regulojn pri kiel kolekti ĝin.

Konceptaj modeloj estas efektivigitaj uzante logikojn. Ĉi tiuj modeloj estas kiel vojmapo por fizika datumbaza dezajno. En la logika modelo, komercaj datumunuoj estas identigitaj, datumtipoj estas determinitaj, kaj la statuso de la regulŝlosilo estas determinita kiu regas la rilatojn inter datenoj.

Tiam la Logika Datuma Modelo estas komparata kun la antaŭselektita DBMS (datumbaza administradsistemo) platformo kaj Fizika Modelo estas akirita. Ĝi priskribas kiel datumoj estas fizike konservitaj.

4. Uzu la ĝustajn datumtipojn

Dezajno de datumbazo. Plej bonaj praktikoj

Uzi la malĝustan datumtipon povas rezultigi malpli precizajn datumojn, malfacilaĵojn en kunigo de tabeloj, malfacilaĵo sinkronigi atributojn kaj ŝvelintajn dosiergrandojn.
Por certigi informintegrecon, atributo devas enhavi nur datumtipojn kiuj estas akcepteblaj al ĝi. Se aĝo estas enigita en la datumbazon, certigu, ke la kolumno stokas entjerojn de maksimume 3 ciferoj.

Kreu minimumon da malplenaj kolumnoj kun NULL-valoro. Se vi kreas ĉiujn kolumnojn kiel NULL, ĉi tio estas granda eraro. Se vi bezonas malplenan kolumnon por plenumi specifan komercan funkcion, kiam la datumoj estas nekonataj aŭ ankoraŭ ne havas sencon, tiam bonvolu krei ĝin. Post ĉio, ni ne povas anticipe plenigi la kolumnojn "Dato de morto" aŭ "Dato de maldungo"; ni ne estas antaŭdiroj montrantaj niajn fingrojn al la ĉielo :-).

Plej modeliga programaro (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) datumoj permesas krei prototipojn de datenregionoj. Ĉi tio certigas ne nur la ĝustan datumtipo, aplikan logiko kaj bonan rendimenton, sed ankaŭ ke la valoro estas postulata.

5. Iru natura

Dezajno de datumbazo. Plej bonaj praktikoj

Kiam vi decidas kiun kolumnon en tabelo uzi kiel ŝlosilon, ĉiam konsideru kiujn kampojn la uzanto povas redakti. Neniam elektu ilin kiel ŝlosilon - malbona ideo. Io povas okazi, sed vi devas certigi, ke ĝi estas unika.

Plej bone estas uzi naturan aŭ komercan ŝlosilon. Ĝi havas semantikan signifon, do vi evitos duobligon en la datumbazo. 

Krom se la komerca ŝlosilo estas unika (antaŭnomo, familia nomo, pozicio) kaj estas ripetita en malsamaj vicoj de la tabelo aŭ ĝi devas ŝanĝiĝi, tiam la generita artefarita ŝlosilo devus esti nomumita kiel la ĉefa ŝlosilo.

6. Normaligi en modereco

Dezajno de datumbazo. Plej bonaj praktikoj

Por efike organizi datumojn en datumbazo, vi devas sekvi aron da gvidlinioj kaj normaligi la datumbazon. Estas kvin normalaj formoj por sekvi.
Kun normaligo, vi evitas redundon kaj certigas la integrecon de la datumoj uzataj en via aplikaĵo aŭ retejo.

Kiel ĉiam, ĉio estu en modereco, eĉ normaligo. Se estas tro da tabeloj en la datumbazo kun la samaj unikaj ŝlosiloj, tiam vi forportiĝis kaj tro normaligis la datumbazon. Troa normaligo negative influas datumbazan rendimenton.

7. Testu frue, provu ofte

Dezajno de datumbazo. Plej bonaj praktikoj

Testplano kaj taŭga testado devus esti parto de datumbaza dezajno.

La plej bona maniero testi vian datumbazon estas per Daŭra Integriĝo. Simulu scenaron de "tago en la vivo de datumbazo" kaj kontrolu ĉu ĉiuj randkazoj estas pritraktitaj kaj kiaj uzantinteragoj estas verŝajnaj. Ju pli frue vi trovos cimojn, des pli vi ŝparos kaj tempon kaj monon.

Ĉi tiuj estas nur sep konsiletoj, kiujn vi povas uzi por desegni bonegan datumbazon pri produktiveco kaj efikeco. Se vi sekvas ilin, vi evitos plej multajn kapdolorojn en la estonteco. Ĉi tiuj konsiletoj estas nur la pinto de la glacimonto en datumbaza modelado. Estas grandega nombro da vivhakoj. Kiujn vi uzas?

fonto: www.habr.com

Aldoni komenton