Andmebaasi projekteerimine. Parimad praktikad

Kursuse jÀrgse voolu alguse eel Andmebaasid oleme koostanud vÀikese autoriartikli, kus on olulised nÀpunÀited andmebaasi koostamiseks. Loodame, et see materjal on teile kasulik.

Andmebaasi projekteerimine. Parimad praktikad

Andmebaasid on igal pool: alates kĂ”ige lihtsamatest blogidest ja kataloogidest kuni usaldusvÀÀrsete infosĂŒsteemide ja suurte sotsiaalsete vĂ”rgustikeni. Ei ole nii oluline, kas andmebaas on lihtne vĂ”i keeruline, vaid kui oluline on selle Ă”ige projekteerimine. Kui andmebaas on projekteeritud mĂ”tlematult ja selge eesmĂ€rgita, ei ole see mitte ainult ebaefektiivne, vaid edasine töö andmebaasiga on kasutajatele tĂ”eline piin ja lĂ€bimatu mets. Siin on mĂ”ned nĂ€punĂ€ited andmebaasi koostamiseks, mis aitavad luua kasuliku ja kasutajasĂ”braliku toote.

1. MÀÀrake, milleks tabel on ja milline on selle struktuur

Andmebaasi projekteerimine. Parimad praktikad

TÀna aitavad sellised arendusmeetodid nagu Scrum vÔi RAD (kiire rakenduste arendus) IT-meeskondadel andmebaase kiiresti arendada. Kuid ajahimu tÔttu on vÀga suur kiusatus sukelduda otse andmebaasi ehitamisse, halvasti mÔistes, mis on eesmÀrk ja millised peaksid olema lÔpptulemused.
 
KĂ€ib nagu meeskond, kes sihib efektiivset ja kiiret tööd, kuid see on peaaegu illusioon. Mida kaugemale ja kiiremini projekti sĂŒvenetakse, seda rohkem aega kulub vigade tuvastamiseks ja muutmiseks andmebaasi projektis.

SeetĂ”ttu on esimene asi, mida tuleb lahendada, mÀÀrata oma andmebaasi eesmĂ€rk. Millise rakenduse jaoks andmebaas vĂ€lja töötatakse? Kas kasutaja töötab lihtsalt kirjetega ja tuleb pöörata tĂ€helepanu tehingutele vĂ”i huvitab teda rohkem andmete analĂŒĂŒs? Kuidas andmebaas peab olema ĂŒles seatud? Kas see jĂ€lgib klientide kĂ€itumist vĂ”i haldab lihtsalt nende vahelisi suhteid? 

Mida varem projekteerimismeeskond nendele kĂŒsimustele vastab, seda sujuvam ja lihtsam on andmebaasi projekteerimisprotsess.

2. Millised andmed valida talletamiseks?

Andmebaasi projekteerimine. Parimad praktikad

Plaanige ette. MĂ”elge sellele, mida tulevikus veebisait vĂ”i sĂŒsteem, mille jaoks andmebaas on kavandatud, teeb. Oluline on ĂŒletada tavalised tehnilise ĂŒlesande nĂ”udmised. Kuid palun, Ă€rge alustage kohe mĂ”tlemist kĂ”ikidele vĂ”imalikele andmetĂŒĂŒpidele, mida kasutaja kunagi salvestada vĂ”ib. MĂ”elge pigem sellele, kas kasutajad saavad kirjutada postitusi, ĂŒles laadida dokumente vĂ”i fotosid vĂ”i vahetada sĂ”numeid. Kui jah, siis peab andmebaasis nende jaoks ruumi olema.

Töötage meeskonna, osakonna vÔi organisatsiooniga, kelle jaoks kavandatud andmebaasi tulevikus toetatakse. Suhelge eri tasandite inimestega, alates klienditeeninduse spetsialistidest kuni osakonnajuhatajateni. Nii saad tagasiside abil selge arusaama ettevÔtte nÔudmistest. 

Kasutajate vajadused isegi ĂŒhe osakonna raames on paratamatult konfliktis. Kui te selle otsaga silmitsi seisate, Ă€rge kartke toetuda oma kogemusele ja leida kompromiss, mis rahuldab kĂ”iki osalisi ja teenib andmebaasi lĂ”ppeesmĂ€rki. Olge kindel: tulevikus saad +100500 karma ja mĂ€gi kĂŒpsiseid.

3. Modelleerige andmeid ettevaatlikult

Andmebaasi projekteerimine. Parimad praktikad

Andmete modelleerimisel on mĂ”ned olulised punktid, millele tasub tĂ€helepanu pöörata. Nagu me varem ĂŒtlesime, sĂ”ltub andmebaasi otstarve sellest, milliseid meetodeid kasutada modelleerimisel. Kui me projekteerime andmebaasi operatiivseks kirje töötlemiseks (OLTP), teisisĂ”nu nende loomiseks, redigeerimiseks ja kustutamiseks, siis kasutame tehingute modelleerimist. Kui andmebaas peab olema relatsiooniline, siis on kĂ”ige parem rakendada mitmemÔÔtmelist modelleerimist.

Modelleerimise kĂ€igus luuakse kontseptuaalsed (CDM), fĂŒĂŒsilised (PDM) ja loogilised (LDM) andmemudelid. 

Kontseptuaalsed mudelid kirjeldavad subjekte ja andmetĂŒĂŒpe, mida need sisaldavad, ning nendevahelisi suhteid. Jagage oma andmed loogilisteks tĂŒkkideks — nii on elu palju lihtsam.
Peamine on mÔÔt, Àrge liialdage.

Kui subjekti on vĂ€ga raske ĂŒhe sĂ”na vĂ”i fraasiga klassifitseerida, on aeg kasutada alamtype (tĂŒtarsubjekte).

Kui subjekt elab oma elu, omab atribuutide, mis kirjeldavad selle kĂ€itumist ja vĂ€limust, samuti suhteid teiste objektidega, vĂ”ib julgelt kasutada mitte ainult alamtype, vaid ka ĂŒlemtype (vanemsubjekt). 

Kui seda reeglit ei jÀrgita, segad teised arendajad teie mudelis Àra ja nad ei saa tÀielikult aru andmetest ja reeglitest, kuidas neid koguda.

Kontseptuaalsed mudelid viiakse ellu loogiliste mudelite kaudu. Need mudelid nagu maakaart fĂŒĂŒsilise andmebaasi projekteerimiseks. Loogilises mudelis tuvastatakse Ă€riliste andmete subjektiid, mÀÀratakse andmetĂŒĂŒbid, vĂ”tme staatuse reeglid, mis reguleerivad andmete vahelisi suhteid.

SeejĂ€rel sĂ€titakse Loogiline andmemudel valitud eelnevalt platvormi SÜDB (sĂŒsteemi database management) ja se loob fĂŒĂŒsilise mudeli. See kirjeldab andmete fĂŒĂŒsilise salvestamise viisi.

4. Kasutage sobivaid andmetĂŒĂŒpe

Andmebaasi projekteerimine. Parimad praktikad

Vale andmetĂŒĂŒbi kasutamine vĂ”ib pĂ”hjustada vĂ€hem tĂ€pseid andmeid, raskusi tabelite ĂŒhendamisel, atribuutide sĂŒnkroonimisel ja suurte failide tekkimist.
Teabe terviklikkuse tagamiseks peab atribuut sisaldama ainult sobivaid andmetĂŒĂŒpe. Kui andmebaasi kantakse vanus, siis veenduge, et veerus on salvestatud maksimaalselt 3-kohalised tĂ€isarvud.

Looge minimaalselt tĂŒhje veerge, millel on NULL vÀÀrtus. Kui kĂ”ik veerud on NULL, siis on see tĂ”sine viga. Kui aga vajate tĂŒhja veergu konkreetse Ă€ritegevuse funktsiooni tĂ€itmiseks olukordades, kus andmed on teadmata vĂ”i veel ei oma tĂ€hendust, siis looge see julgelt. LĂ”ppude lĂ”puks ei saa me ette tĂ€ita veerge 'Surma kuupĂ€ev' vĂ”i 'KĂŒsimiseks kuupĂ€ev', me ei ole ennustajad, kes plaksutavad Ă”hku :-).

Enamik modelleerimistarkvarasid (ER/Studio, MySQL Workbench, SQL DBM, gliffy.andmete struktuur vĂ”imaldab luua andmevaldkondade prototĂŒĂŒpe. See tagab mitte ainult Ă”ige andmetĂŒĂŒbi, rakenduse loogika ja hea jĂ”udluse, vaid ka vajalikud vÀÀrtuse mÀÀramise.

5. Eelistage loomulikku

Andmebaasi projekteerimine. Parimad praktikad

Otsustades, millist tabeli veergu valida vĂ”tmena, pöörake alati tĂ€helepanu, milliseid vĂ€lju kasutaja saab redigeerida. Ärge kunagi valige neid vĂ”tmena — see on halb mĂ”te. KĂ”ike vĂ”ib juhtuda, ja te peate tagama unikaalsuse.

Parim on kasutada loomulikku, ehk Àri vÔtme (natural key). See omab tÀhenduslikku sisu, nii vÀltite andmebaasis dubleeritust. 

Kui aga Àri vÔti ei ole unikaalne (nimi, perekonnanimi, amet) ja kordub erinevates tabeliridades vÔi kui see peab muutuma, tuleks esmaseks vÔtmiseks mÀÀrata genereeritud kunstlik, surrogaatvÔti (artificial key).

6. Normaliseerige mÀÀral

Andmebaasi projekteerimine. Parimad praktikad

Andmete tÔhusaks korraldamiseks andmebaasis on vajalik jÀrgida teatud soovitusi ja normaliseerida andmebaasi. On olemas viis normaalset vormi, millega tuleb arvestada.
Normaliseerimise abil vÀltite liigset kordumist ja tagate rakenduses vÔi veebisaidil kasutatavate andmete terviklikkuse.

Nagu alati, peab kĂ”ike olema mÔÔdukalt, sealhulgas normaliseerimist. Kui andmebaasis on liiga palju tabeleid, millel on sama unikaalne vĂ”ti, olete liialdanud ja normaliseerinud andmebaasi liialt. ÜlemÀÀrane normaliseerimine mĂ”jutab andmebaasi jĂ”udlust negatiivselt.

7. Testige varakult, testige tihti

Andmebaasi projekteerimine. Parimad praktikad

Testimisplaan ja korralik testimine peavad olema andmebaasi projekteerimise osa.

Andmebaasi on kĂ”ige parem testida pideva integreerimise (Continuous Integration) kaudu. Modelleerige stsenaarium "Üks pĂ€ev andmebaasi elust" ja kontrollige, kas kĂ”ik piirjuhtumid on hallatud ning millised kasutajate interaktsioonid on tĂ”enĂ€olised. Mida varem leidate vead, seda rohkem sÀÀstate aega ja raha.

Need on ainult seitse nÔuannet, mille abil saate kujundada suurepÀrase andmebaasi jÔudluse ja tÔhususe osas. Kui jÀrgite neid, suudate vÀltida enamikku tulevikus tekkivaid peavalusid. Need nÔuanded on vaid jÀÀmÀe tipp andmebaasi modelleerimises. On tohutult palju nippe. Milliseid kasutate?

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster