Proovige järele!
Andmebaasid ja veebirakendused võivad anda suuri ärieeliseid. Andmebaasi kujundamine on oluline eesmärkide saavutamiseks, olenemata sellest, kas soovite hallata töötajate teavet, esitada andmete suhtes iganädalasi aruandeid või jälgida klienditellimusi. Andmebaasikujunduse mõistmiseks aja investeerimine aitab teil luua andmebaase, mis töötavad esimest korda ja mis vastavad muutuvatele vajadustele.
NB!: Accessi veebirakendused erinevad töölauaandmebaasidest. Selles artiklis ei käsitleta veebirakenduste kujundust.
Mõisted ja mõisted
Alustame põhiterminite ja mõistete õppimisest. Kasuliku andmebaasi loomiseks saate luua tabeleid, mis keskenduvad ühele teemale. Tabelites saate väljadele jäädvustada kõik selle teema jaoks vajalikud andmed, mis sisaldavad väikseimat võimalikku andmeühikut.
Relatsioonandmebaasid |
Andmebaas, kus andmed on jagatud tabeliteks, mis on nagu arvutustabelid. Igal tabelil on ainult üks teema, näiteks kliendid (üks tabel) või tooted (teine tabel). |
Kirjed ja väljad |
Eraldi tabeliandmete talletusruum. Ridades (või kirjetes) talletatakse iga kordumatut andmepunkti, näiteks kliendi nime. Veerud (või väljad) isoleerivad iga andmepunkti kohta jäädvustatud teabe väikseima võimaliku ühikuna – eesnimi võib olla üks veerg ja perekonnanimi võib olla teine. |
Primaarvõti |
Väärtus, mis tagab, et iga kirje on kordumatu. Näiteks võib olla kaks samanimelist klienti: Elizabeth Andersen. Kuid ühel Elizabeth Anderseni kirjetest on primaarvõtmeks arv 12 ja teisel primaarvõti 58. |
Ema-tütarsuhted |
Tabelitevahelised ühised seosed. Näiteks võib ühel kliendil olla mitu tellimust. Ematabelitel on primaarvõtmed. Tütartabelitel on välisvõtmed, mis on primaarvõtme väärtused, mis näitavad, kuidas tütartabeli kirjed on ematabeliga lingitud. Need võtmed on seotud seosega. |
Milline on hea andmebaasikonstruktsioon?
Hea andmebaasikujunduse aluspõhimõtted on järgmised.
-
Vältige duplikaatteavet (ehk liigseid andmeid). See raiskab ruumi ja suurendab vigade tõenäosust.
-
Veenduge, et andmed oleksid õiged ja täielikud. Päringutes ja aruannetes voolavad ebatäielikud või valed teabevood ja lõppkokkuvõttes võidakse langetada valesid otsuseid.
Nende probleemide lahendamiseks tehke järgmist.
-
Jagage andmebaasiteave kitsa fookusega teemapõhistesse tabelitesse. Vältige mitmes tabelis teabe dubleerimist. (Näiteks kliendinimed peaksid olema ainult ühes tabelis.)
-
Ühendage tabelid andmete dubleerimise asemel klahvide abil.
-
Kaasake protsessid, mis toetavad ja tagavad andmebaasiteabe täpsuse ja tervikluse.
-
Kujundage andmebaas vastavalt oma andmetöötlus- ja aruandlusvajadustele.
Andmebaaside pikaajalise kasulikkuse parandamiseks järgige viit kujundusjuhist.
1. toiming: andmebaasi otstarbe määratlemine
Enne alustamist seadke oma andmebaasi eesmärk.
Kujunduse fookuse hoidmiseks tehke kokkuvõte andmebaasi eesmärgist ja vaadake kokkuvõtet sageli. Kui soovite näiteks kodupõhise ettevõtte jaoks väikest andmebaasi, võite kirjutada midagi lihtsat, näiteks "Kliendi andmebaas säilitab klienditeabe loendi postituste ja aruannete koostamiseks." Ettevõtteandmebaasis võib teil vaja minna mitut lõiku, et kirjeldada, millal ja kuidas eri rollides inimesed andmebaasi ja selle andmeid kasutavad. Create konkreetne ja üksikasjalik missioon, millele viidatakse kogu konstruktsiooniprotsessi jooksul.
2. juhis: vajaliku teabe otsimine ja korraldamine
Koguge kokku kõik teabetüübid, mida soovite salvestada (nt tootenimed ja tellimuse numbrid).
Alustage olemasoleva teabe ja jälgimismeetoditega. Näiteks võib-olla salvestate praegu ostutellimusi pearaamatusse või hoiate klienditeavet pabervormidel. Nende allikate abil saate loetleda praegu jäädvustatud teabe (nt kõik vormide väljad). Kui te praegu olulist teavet ei jäädvusta, mõelge järele, millist eraldi teavet te vajate. Igast üksikust andmetüübist saab teie andmebaasi väli.
Ärge muretsege esimese loendi täiuslikuks muutmise pärast – saate seda aja jooksul viimistleda. Võtke aga arvesse kõiki inimesi, kes seda teavet kasutavad, ja küsige nende ideid.
Järgmiseks mõelge, mida soovite andmebaasist välja ja millist tüüpi aruandeid või postitusi soovite luua. Seejärel veenduge, et jäädvustaksite nende eesmärkide täitmiseks vajaliku teabe. Kui soovite näiteks aruannet, mis kuvab müüki piirkondade kaupa, peate müügiandmed jäädvustada piirkondlikul tasemel. Proovige aruannet visandada tegeliku teabega, nagu soovite seda näha. Seejärel loetlege andmed, mida peate aruande loomiseks tegema. Tehke sama ka andmebaasist pärinevate postituste või muude väljundite puhul.
Näide
Oletagem, et annate klientidele võimaluse valida regulaarseid meilivärskendusi (või neist välja) ja soovite printida loendi neist, kes on selle lubanud. Tabelis Klient on vaja veergu Saada meilisõnum, mille lubatud väärtused on Jah ja Ei.
Nende jaoks, kes soovivad meilisõnumeid saada, vajate meiliaadressi, mis nõuab ka välja. Kui soovite lisada õige tervituse (nt hr, proua või proua), lisage tervitusväli. Kui soovite klientidega meili teel pöörduda eesnime järgi, lisage väli Eesnimi.
Näpunäide.: Ärge unustage jagada iga teabeühikut vähimaks kasulikuks osaks (nt klienditabeli ees- ja perekonnanimeks). Üldiselt, kui soovite teabeüksuse (nt kliendi perekonnanime) alusel sortida, otsida, arvutada või aruandeid koostada, peaksite selle üksuse paigutama omaette väljale.
3. juhis: teabe jagamine tabeliteks
Jaotage teabeüksused peamisteks olemiteks või teemadeks (nt tooted, kliendid ja tellimused). Igast teemast saab tabel.
Pärast nõutavate andmete loendi hankimist määrake kindlaks peamised olemid (või teemad), mida teil on vaja oma andmete korraldamiseks. Vältige andmete dubleerimist kõigis olemites. Näiteks võib tootemüügi andmebaasi esialgne loend välja näha selline:
Peamised üksused on kliendid, tarnijad, tooted ja tellimused. Alustage neist neljast tabelist: üks klientide kohta, teine tarnijate kohta jne. See ei pruugi olla teie lõplik kujundus, kuid see on hea alguspunkt.
Märkus.: Parimad andmebaasid sisaldavad mitut tabelit. Vältige kiusatust paigutada kogu teave ühte tabelisse. Selle tulemuseks on duplikaatteave, suurem andmebaasimaht ja suuremad tõrked. Kujundage iga fakti salvestamiseks ainult üks kord. Kui leiate end korduva teabe (nt tarnija aadressi) üles, korraldage andmebaas ümber, et paigutada see teave eraldi tabelisse.
Selleks et mõista, miks on rohkem tabeleid parem kui vähem, kaaluge siin esitatud tabelit.
Iga rida sisaldab teavet nii toote kui ka selle tarnija kohta. Kuna teil võib olla mitu sama tarnija toodet, tuleb tarnija nime ja aadressi teavet mitu korda korrata. See raiskab kettaruumi. Selle asemel salvestage tarnija teave ainult üks kord eraldi tabelisse Tarnijad ja seejärel linkige see tabel tabeliga Tooted.
Teine probleem selle kujundusega on ilmne, kui peate tarnija teavet muutma. Oletagem, et teil on vaja tarnija aadressi muuta. Kuna see esineb mitmes kohas, võite andmed muuta küll ühes kohas, kuid kogemata unustada seda teha teises kohas. Tarnija aadressi salvestamine ainult ühes kohas lahendab selle probleemi.
Lõpuks oletagem, et Coho Winery tarnib ainult ühte toodet ja soovite toote kustutada, kuid säilitada tarnija nime ja aadressi. Kuidas kustutaksite selle kujunduse abil tootekirje ilma tarnija teavet kaotamata? See pole võimalik. Kuna iga kirje sisaldab lisaks tarnijaga seotud faktidele ka toote kohta fakte, ei ole võimalik ühte kirjet ilma teist kustutamata kustutada. Nende faktide eraldi hoidmiseks jagage see tabel kaheks: esimene tooteteabe ja teine tarnijateabe jaoks. Seejärel kustutatakse tootekirje kustutamisel ainult toote kohta käivad andmed, mitte tarnija andmed.
4. juhis: teabeüksuste muutmine veergudeks
Otsustage, millist teavet soovite igas tabelis talletada. Need eraldiseisev andmekild muutub tabeliväljadeks. Näiteks võib tabel Töötajad sisaldada välju Perekonnanimi, Eesnimi ja Töölevärbamise kuupäev.
Kui olete andmebaasitabeli teema valinud, peaksid selle tabeli veerud talletama ainult selle teema kohta käivaid fakte. Näiteks peaks tootetabelis talletama fakte ainult toodete, mitte tarnijate kohta.
Tabelis jälgitava teabe valimiseks kasutage varem loodud loendit. Näiteks võib tabel Kliendid sisaldada järgmist: Eesnimi, Perekonnanimi, Aadress, Saada meilisõnum, Tervitus ja Meiliaadress. Iga tabeli kirje (klient) sisaldab sama veerukogumit, nii et talletate iga kliendi kohta täpselt sama teavet.
Create oma esimese loendi ning seejärel vaadake see läbi ja viimistlege seda. Jaotage teave kindlasti väikseimateks võimalikeks väljadeks. Näiteks kui teie algses loendis on väli Aadress, jaotage see aadressiväljaks Tänav, Linn, Maakond ja Sihtnumber või kui teie kliendid on globaalsed, veel rohkematele väljadele. Nii saate näiteks postitusi teha õiges vormingus või koostada aruande tellimuste kohta osariigi järgi.
Pärast iga tabeli andmeveergude piiritlemist olete valmis valima iga tabeli primaarvõtme.
5. juhis: primaarvõtmete määramine
Valige iga tabeli jaoks primaarvõti. Primaarvõti (nt Toote ID või Tellimuse ID) tuvastab iga kirje kordumatult. Kui teil pole ilmset ainuidentifikaatorit, kasutage selle loomiseks Accessi.
Iga tabeli iga rea kordumatuks tuvastamiseks on vaja viisi. Kas mäletate varasemat näidet, kus kahel kliendil on sama nimi? Kuna nad jagavad nime, peate iga nime eraldi tuvastama.
Seega peaks iga tabel sisaldama veergu (või veergude kogumit), mis tuvastab iga rea kordumatult. Seda nimetatakse primaarvõtmeks ja see on sageli kordumatu number , näiteks töötaja ID või seerianumber. Access kasutab primaarvõtmeid mitme tabeli andmete kiireks seostamiseks ja andmete koondamiseks.
Mõnikord koosneb primaarvõti kahest või enamast väljast. Näiteks tabel Tellimuse üksikasjad, kus talletatakse tellimuste reaüksusi, võib primaarvõtmes olla kaks veergu: Tellimuse ID ja Toote ID. Kui primaarvõti sisaldab mitut veergu, nimetatakse seda ka koondvõtmeks.
Kui teil on juba tabelis oleva teabe ainuidentifikaator (nt tootenumbrid, mis tuvastavad kordumatult iga kataloogis oleva toote), kasutage seda, kuid ainult siis, kui väärtused vastavad primaarvõtmete puhul järgmistele reeglitele.
-
Iga kirje identifikaator on alati erinev. Duplikaatväärtused pole primaarvõtmes lubatud.
-
Üksusel on alati väärtus. Igal teie tabeli kirjel peab olema primaarvõti. Kui kasutate võtme loomiseks mitut veergu (nt osapere ja osa number), peavad mõlemad väärtused alati olemas olema.
-
Primaarvõti on väärtus, mis ei muutu. Kuna võtmetele viitavad teised tabelid, tähendab iga muudatus ühes tabelis primaarvõtme muutmist kõikjal, kus sellele viidatakse. Sagedased muudatused suurendavad vigade ohtu.
Kui teil pole ilmset identifikaatorit, kasutage primaarvõtmena suvalist kordumatut numbrit. Näiteks saate igale tellimusele määrata kordumatu tellimusenumbri ainult tellimuse tuvastamiseks.
Näpunäide.: Primaarvõtmena kordumatu numbri loomiseks lisage veerg andmetüübi Automaatnumber abil. Andmetüüp Automaatnumber määrab igale kirjele automaatselt kordumatu arvväärtuse. Seda tüüpi identifikaator ei sisalda faktilist teavet, mis kirjeldaks seda rida, mida see tähistab. See sobib suurepäraselt primaarvõtmena kasutamiseks, kuna numbrid ei muutu – erinevalt rea faktidega primaarvõtmest (nt telefoninumber või kliendi nimi).
Kas soovite lisateavet?
Väljadele, juhtelementidele ja objektidele nime panemise juhised