Uue kursuse alguse eelÔhtul oleme koostanud vÀikese autorimaterjali oluliste nÔuannetega andmebaaside koostamiseks. Loodame, et see materjal on teile kasulik.

Andmebaasid on igal pool: alates kĂ”ige lihtsamatest blogidest ja kataloogidest kuni usaldusvÀÀrsete infosĂŒsteemide ja suurte sotsiaalsete vĂ”rgustikeni. Pole nii oluline, kas andmebaas on lihtne vĂ”i keeruline, kuivĂ”rd oluline on selle Ă”ige projekteerimine. Kui andmebaas on projekteeritud ilma mĂ”tlemata ja selge eesmĂ€rgita, ei ole ta mitte ainult ebaefektiivne, vaid ka edasine töö selle kallal on tĂ”eline piin, lĂ€bimatu mets kasutajatele. Siin on mĂ”ned nĂ”uanded andmebaasi koostamiseks, mis aitavad luua kasuliku ja kasutajasĂ”braliku toote.
1. MÀÀrake, milleks tabel on ja milline on selle struktuur

TĂ€napĂ€eval aitavad arengumeetodid, nagu Scrum vĂ”i RAD (kiire rakenduste arendamine), IT-meeskondadel andmebaase kiiresti arendada. Siiski, ajas sÀÀstmise nimel on suur kiusatus kohe andmebaasi ehitamisse sĂŒveneda, ebamugavalt kujutades ette, millised on sellele eesmĂ€rgid ja millised peaksid olema lĂ”pptulemused.
Â
Nagu oleks meeskond suunatud tĂ”husale, kiirele tööle, kuid see on peegeldus. Mida sĂŒgavamale ja kiiremini projektiga edasi minna, seda rohkem aega kulub vigade tuvastamiseks ja muutmiseks andmebaasi projektis.
SeetĂ”ttu on esimene asi, millele keskenduda â mÀÀrata andmebaasi eesmĂ€rk. Millise tĂŒĂŒpi rakenduse jaoks andmebaaz arendatakse? Kas kasutaja töötab peamiselt salvestustega ja on oluline pöörata tĂ€helepanu tehingutele vĂ”i huvitab teda rohkem andmete analĂŒĂŒs? Kus peaks andmebaas olema juurutatud? Kas see jĂ€lgib klientide kĂ€itumist vĂ”i haldab lihtsalt nende vahelisi suhteid?Â
Mida varem suudab projekteerimismeeskond nendele kĂŒsimustele vastata, seda sujuvam ja pehmem on andmebaasi projekteerimise protsess.
2. Millised andmed valida salvestamiseks?

Planeeri ette. MĂ”tle sellele, mida tulevikus koduleht vĂ”i sĂŒsteem, mille jaoks andmebaas projekteeritakse, tegema hakkab. Oluline on mĂ”elda vĂ€lja rahuldavad nĂ”uded, mis ĂŒletavad lihtsaid tehnilisi tingimusi. Aga palun, Ă€ra hakka koheselt mĂ”tlema kĂ”ikidele vĂ”imalikele andmetĂŒĂŒpidetele, mida kasutaja kunagi salvestab. Hoia oma mĂ”tted selles, kas kasutajad saavad postitusi kirjutada, dokumente vĂ”i fotosid ĂŒles laadida vĂ”i teateid vahetada. Kui jah, siis peab andmebaasi neid jaoks ruumi olema.
Tööta meeskonna, osakonna vĂ”i organisatsiooniga, mille jaoks on tulevikus projekti andmebaas toetatav. Suhtle erinevate tasandite inimestega, alates klienditeeninduse spetsialistidest kuni osakonnajuhatajateni. Tagasiside kaudu saad selge ĂŒlevaate ettevĂ”tte nĂ”udmistest.Â
Kasutajate vajadused, isegi ĂŒhe osakonna raames, muutuvad paratamatult konfliktseteks. Kui seda juhtub, siis Ă€ra karda tugineda enda kogemusele ja leida kompromiss, mis rahuldab kĂ”iki osapooli ning toetab andmebaasi lĂ”ppeesmĂ€rki. Ole kindel: tulevikus saad +100500 karmaga ja palju kĂŒpsiseid.
3. Andmete mudeldamine ettevaatlikult

On mitmeid vÔtmeaspekte, millele tÀhelepanu pöörata andmete mudeldamise ajal. Nagu varem mainitud, sÔltub kasutatavad meetodid andmebaasi mÀÀratlemisest. Kui projekteerime andmebaasi operatiivsete kirje töötlemiseks (OLTP), st nende loomise, muutmise ja kustutamise jaoks, siis rakendame tehingute mudeldamist. Kui aga andmebaas peab olema relatsiooniline, siis on parim rakendada mitmemÔÔtmelist mudeldamist.
Mudeldamise kĂ€igus luuakse kontseptuaalsed (CDM), fĂŒĂŒsilised (PDM) ja loogilised (LDM) andmemudelid.Â
Kontseptuaalsed mudelid kirjeldavad maailmas olevaid ĂŒksusi ja andmetĂŒĂŒpe, mida need sisaldavad, samuti nendevahelisi suhteid. Jagage oma andmed loogilisteks osadeks â nii on palju lihtsam elada.
Peamine on mÔÔdukus, Àra liialda.
Kui ĂŒksust on ĂŒhesĂ”naliselt vĂ”i fraasiga vĂ€ga raske klassifitseerida, siis on aeg kasutada alamtĂŒĂŒpe (poegĂŒksused).
Kui entiteet elab oma elu, omab atribuute, mis kirjeldavad selle kĂ€itumist ja vĂ€limust, samuti suhteid teiste objektidega, saab julgelt kasutada mitte ainult alamtĂŒĂŒpi, vaid ka supertĂŒĂŒpi (ĂŒlemine entiteet).Â
Kui seda reeglit eirata, vÔivad teised arendajad teie mudelis segadusse sattuda ja mitte tÀielikult aru saada andmetest ja reeglitest, kuidas neid koguda.
Kontekstselt mudeleid rakendatakse loogiliste mudelite abil. Need mudelid on nagu teekaart fĂŒĂŒsilise andmebaasi projekteerimiseks. Loogilises mudelis tuvastatakse Ă€riandmete entiteedid, mÀÀratakse andmeload, mÀÀratakse vĂ”tme reegli staatus, mis reguleerib andmete suhteid.
SeejĂ€rel seostatakse loogiline andmemudel eelnevalt valitud andmebaasi haldussĂŒsteemiga (SĂB) andmebaaside haldamine) ja saadakse fĂŒĂŒsiline mudel. See kirjeldab andmete fĂŒĂŒsilise salvestamise viisi.
4. Kasutage sobivaid andmeliike

Vale andmeliigi rakendamine vĂ”ib viia vĂ€hem tĂ€psete andmeteni, tabelite ĂŒhendamise ja atribuutide sĂŒnkroonimise raskustele ning failide suuruse paisumiseni.
Info terviklikkuse tagamiseks peab atribuut sisaldama ainult sobivaid andmeliike. Kui andmebaasi kantakse vanus, veenduge, et veerus on salvestatud tÀisarvud maksimaalselt 3 numbriga.
Looge minimaalne tĂŒhjade veergude hulk, mille vÀÀrtus on NULL. Kui loote kĂ”ik veerud NULL-idena, on see suur viga. Kui aga vajate tĂŒhja veergu konkreetses Ă€rifunktsioonis, kui andmed on teadmata vĂ”i veel mĂ”ttetud, looge julgelt. LĂ”ppude lĂ”puks ei saa me eelnevalt tĂ€ita veerge "Surnud kuupĂ€ev" vĂ”i "Vabastamise kuupĂ€ev", me ei ole ennustajad, et sĂ”rme taevasse torgata :-).
Enamik modelleerimise tarkvara (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) vĂ”imaldab luua andmevaldkondade prototĂŒĂŒpe. Nii tagatakse mitte ainult Ă”ige andmeliik, rakenduse loogika ja hea jĂ”udlus, vaid ka kohustuslik vÀÀrtuse mÀÀramine.
5. Eelistage loomulikku

Kui otsustate, millist veergu andmebaasi tabelis vĂ”tmena valida, pöörake alati tĂ€helepanu, milliseid vĂ€lju kasutaja vĂ”ib redigeerida. Ărge kunagi valige neid vĂ”tmena â see on halb idee. KĂ”ik vĂ”ib juhtuda ja te peate tagama unikaalsuse.
Parim on kasutada looduslikku vĂ”i Ă€ri vĂ”tmega (natural key). Sellel on tĂ€hendus, seega vĂ€ldite andmebaasis dubleerimist.Â
Ainult juhul, kui ÀrivÔti ei ole ainulaadne (nimi, perekonnanimi, amet) ja kordub tabeli ridadel vÔi peab see muutuma, tasub mÀÀrata primaarvÔtmena loodud kunstlik, surrogaatvÔti (artificial key).
6. Normaliseerige mÔÔdukalt

Andmete tÔhusaks korraldamiseks andmebaasis on oluline jÀrgida soovituste kogumit ja normaliseerida andmebaasi. On olemas viis normaalsust vormi, millele tuleb jÀrgida.
Normaliseerimise abil vÀldite liigset ja tagate andmete terviklikkuse, mida rakenduses vÔi veebilehel kasutatakse.
Nagu alati, peab kĂ”ike olema mÔÔdukalt, isegi normaliseerimist. Kui andmebaasis on liiga palju tabeleid sama ainulaadse vĂ”tmega, siis olete liialdanud ja normaliseerinud andmebaasi ĂŒlemÀÀra. Liigne normaliseerimine mĂ”jutab andmebaasi jĂ”udlust negatiivselt.
7. Testige varakult, testige tihti

Testimisplaan ja korralik testimine peaksid olema osa andmebaasi projekteerimisest.
Parim on testida andmebaasi pideva integreerimise (Continuous Integration) kaudu. Modellige stsenaarium âĂks pĂ€ev andmebaasi elustâ ja kontrollige, kas kĂ”ik piirjuhtumid on kĂ€sitletud, millised kasutajate interaktsioonid on tĂ”enĂ€olised. Mida varem leidsite vead, seda rohkem sÀÀstate nii aega kui raha.
Need on vaid seitse nÔuannet, mille abil saate projekteerida suurepÀrase andmebaasi jÔudluse ja efektiivsuse osas. Kui jÀrgite neid, vÀldite suurema osa peavalusid tulevikus. Need nÔuanded on vaid jÀÀmÀe tipp andmebaasi modelleerimisel. On palju eluviise, mida te kasutate?
Allikas: habr.com
