Andmebaasi disain. Parimad tavad

Järgmise voolu alguse ootuses kiirusega "Andmebaas" Oleme koostanud väikese autorimaterjali oluliste näpunäidetega andmebaasi kujundamiseks. Loodame, et see materjal on teile kasulik.

Andmebaasi disain. Parimad tavad

Andmebaasid on kõikjal: alates kõige lihtsamatest ajaveebidest ja kataloogidest kuni usaldusväärsete infosüsteemide ja suurte sotsiaalvõrgustikeni. See, kas andmebaas on lihtne või keeruline, pole nii oluline, kuivõrd oluline on selle korrektne kujundamine. Kui andmebaas on kujundatud mõtlematult ja ilma selge eesmärgi mõistmiseta, pole see mitte ainult ebaefektiivne, vaid edasine töö andmebaasiga on kasutajatele tõeline piin, läbimatu mets. Siin on mõned andmebaasi kujundamise näpunäited, mis aitavad teil luua kasuliku ja hõlpsasti kasutatava toote.

1. Tehke kindlaks, mille jaoks tabel on mõeldud ja milline on selle struktuur

Andmebaasi disain. Parimad tavad

Tänapäeval aitavad IT-meeskondadel andmebaase kiiresti arendada arendusmeetodid nagu Scrum või RAD (Rapid Application Development). Aega taga ajades on aga väga suur kiusatus sukelduda otse baasi rajamisse, kujutledes ähmaselt, mis on eesmärk ise, millised peaksid olema lõpptulemused.
 
Tundub, nagu oleks meeskond keskendunud tõhusale ja kiirele tööle, kuid see on miraaž. Mida kaugemale ja kiiremini sukeldute projekti sügavusse, seda rohkem aega kulub andmebaasi kujunduses vigade tuvastamiseks ja muutmiseks.

Nii et esimene asi, mida peate otsustama, on määratleda oma andmebaasi eesmärk. Mis tüüpi rakenduse jaoks andmebaasi arendatakse? Kas kasutaja töötab ainult kirjetega ja peab tehingutele tähelepanu pöörama või huvitab teda rohkem andmeanalüütika? Kuhu tuleks baasi paigutada? Kas see jälgib klientide käitumist või lihtsalt haldab kliendisuhteid? 

Mida varem disainimeeskond neile küsimustele vastab, seda sujuvam on andmebaasi kujundamise protsess.

2. Milliseid andmeid peaksin salvestamiseks valima?

Andmebaasi disain. Parimad tavad

Planeerige ette. Mõtted selle kohta, mida see sait või süsteem, mille jaoks andmebaasi kavandatakse, tulevikus teeb. Oluline on minna kaugemale tehniliste kirjelduste lihtsatest nõuetest. Ärge lihtsalt hakake mõtlema kõikidele võimalikele andmetüüpidele, mida kasutaja kunagi salvestab. Selle asemel mõelge sellele, kas kasutajad saavad postitusi kirjutada, dokumente või fotosid üles laadida või sõnumeid vahetada. Kui see nii on, peate neile andmebaasis ruumi eraldama.

Töötage meeskonna, osakonna või organisatsiooniga, mille projekteerimisbaasi tulevikus toetatakse. Suhtle erinevate tasandite inimestega klienditeeninduse spetsialistidest osakonnajuhatajateni. Nii saate tagasiside abil selge ettekujutuse ettevõtte nõuetest. 

Paratamatult lähevad isegi sama osakonna kasutajate vajadused vastuollu. Kui sellega kokku puutute, ärge kartke tugineda oma kogemustele ja leida kompromiss, mis sobib kõigile osapooltele ja rahuldab andmebaasi lõppeesmärgi. Võite olla kindel: tulevikus saate karmat +100500 ja küpsisemäe.

3. Modelleerige andmeid hoolikalt

Andmebaasi disain. Parimad tavad

Andmete modelleerimisel tuleb tähelepanu pöörata mitmele põhipunktile. Nagu varem ütlesime, määrab andmebaasi eesmärk, milliseid meetodeid modelleerimisel kasutada. Kui kujundame andmebaasi online-kirjete töötlemiseks (OLTP), teisisõnu kirjete loomiseks, redigeerimiseks ja kustutamiseks, kasutame tehingute modelleerimist. Kui andmebaas peab olema relatsiooniline, on kõige parem kasutada mitmemõõtmelist modelleerimist.

Modelleerimise käigus luuakse kontseptuaalsed (CDM), füüsilised (PDM) ja loogilised (LDM) andmemudelid. 

Kontseptuaalsed mudelid kirjeldavad üksusi ja nendes sisalduvate andmete tüüpe, samuti nendevahelisi seoseid. Jagage oma andmed loogilisteks tükkideks – see teeb elu palju lihtsamaks.
Peaasi on mõõdukus, ära pinguta üle.

Kui olemit on väga raske ühe sõna või fraasi järgi liigitada, siis on aeg kasutada alamtüüpe (alamüksusi).

Kui olem juhib oma elu, tal on atribuudid, mis kirjeldavad tema käitumist ja välimust, aga ka suhteid teiste objektidega, siis võite ohutult kasutada mitte ainult alamtüüpi, vaid ka supertüüpi (ema-olemit). 

Kui jätate selle reegli tähelepanuta, satuvad teised arendajad teie mudelis segadusse ega saa täielikult aru andmetest ja nende kogumise reeglitest.

Kontseptuaalseid mudeleid rakendatakse loogiliste mudelite abil. Need mudelid on nagu teekaart füüsilise andmebaasi kujundamiseks. Loogilises mudelis tuvastatakse äriandmete olemid, määratakse andmetüübid ja reeglivõtme olek, mis reguleerib andmete vahelisi seoseid.

Seejärel võrreldakse loogilist andmemudelit eelvalitud DBMS-i (andmebaasihaldussüsteemi) platvormiga ja saadakse füüsiline mudel. See kirjeldab, kuidas andmeid füüsiliselt salvestatakse.

4. Kasutage õigeid andmetüüpe

Andmebaasi disain. Parimad tavad

Vale andmetüübi kasutamine võib põhjustada ebatäpsemaid andmeid, raskusi tabelite ühendamisel, raskusi atribuutide sünkroonimisel ja ülepaisutatud failisuurusi.
Teabe terviklikkuse tagamiseks peab atribuut sisaldama ainult talle vastuvõetavaid andmetüüpe. Kui vanus on andmebaasi sisestatud, veenduge, et veerg salvestaks maksimaalselt 3-kohalised täisarvud.

Looge minimaalselt NULL väärtusega tühje veerge. Kui loote kõik veerud NULL-ina, on see suur viga. Kui teil on konkreetse ärifunktsiooni täitmiseks vaja tühja veergu, kui andmed on teadmata või neil pole veel mõtet, siis looge see julgelt. Me ei saa ju veerge “Surma kuupäev” või “Valdamise kuupäev” ette täita, me ei ole ennustajad, kes näitavad näpuga taeva poole :-).

Enamik modelleerimistarkvarasid (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) andmed võimaldavad teil luua andmepiirkondade prototüüpe. See tagab mitte ainult õige andmetüübi, rakendusloogika ja hea jõudluse, vaid ka selle, et väärtus on nõutav.

5. Mine loomulikult

Andmebaasi disain. Parimad tavad

Kui otsustate, millist tabeli veergu võtmena kasutada, võtke alati arvesse, milliseid välju kasutaja saab muuta. Ärge kunagi valige neid võtmeks – halb mõte. Kõike võib juhtuda, kuid peate tagama, et see on ainulaadne.

Parim on kasutada looduslikku või ärivõtit. Sellel on semantiline tähendus, nii et väldite andmebaasis dubleerimist. 

Kui ärivõti pole unikaalne (eesnimi, perekonnanimi, ametikoht) ja seda korratakse tabeli erinevatel ridadel või kui see peab muutuma, tuleks genereeritud tehisvõti määrata esmaseks võtmeks.

6. Normaliseerige mõõdukalt

Andmebaasi disain. Parimad tavad

Andmete tõhusaks korraldamiseks andmebaasis peate järgima juhiseid ja normaliseerima andmebaasi. Järgida tuleb viit tavalist vormi.
Normaliseerimisega väldite liiasust ja tagate oma rakenduses või saidil kasutatavate andmete terviklikkuse.

Nagu alati, peaks kõik olema mõõdukas, isegi normaliseerimine. Kui andmebaasis on liiga palju samade unikaalsete võtmetega tabeleid, siis olete sattunud ja andmebaasi ülenormaliseerinud. Liigne normaliseerimine mõjutab negatiivselt andmebaasi jõudlust.

7. Testige varakult, testige sageli

Andmebaasi disain. Parimad tavad

Testimisplaan ja nõuetekohane testimine peaksid olema andmebaasi disaini osa.

Parim viis andmebaasi testimiseks on pidev integreerimine. Simuleerige "päeva andmebaasi elus" stsenaariumi ja kontrollige, kas kõiki äärejuhtumeid käsitletakse ja millised kasutaja interaktsioonid on tõenäolised. Mida varem vead leiate, seda rohkem säästate nii aega kui ka raha.

Need on vaid seitse näpunäidet, mille abil saate luua suurepärase tootlikkuse ja tõhususe andmebaasi. Kui neid järgite, väldite tulevikus enamikku peavaludest. Need näpunäited on andmebaasi modelleerimisel vaid jäämäe tipp. Eluhäkke on tohutult palju. Milliseid sa kasutad?

Allikas: www.habr.com

Lisa kommentaar