Zbirko podatkov poimenujemo in jo ustvarimo.

Namizna zbirka podatkov (desktop database managament system) je združena pod okrilje ene same datoteke. Pri programu Microsoft Office Access je zbirka podatkov oziroma podatkovna zbirka v celoti shranjena v eni datoteki s končnico .mdb (ali .accdb za format Access 2007). Po zagonu programa moramo najprej ustvariti prazno zbirko podatkov. V Accessu to storimo z ukazom Datoteka–Nova (Ctrl+N). Program zahteva, da ji določimo naziv in jo shranimo v želeno mapo. Zbirko receptov bom poimenoval »Moji recepti.mdb« in jo shranil v mapo \Zbirke podatkov\Moji recepti.

Oblikovanje prve tabele

Prva pomembna informacija, ki jo moramo vedeti ob oblikovanju tabele, je njen naziv. Izbrali bomo množinski naziv Recepti. Če komu morda bolj ustreza edninska različica Recept, se bo odločil za to. Pomembno je le to, da smo pri poimenovanju tabel dosledni (vedno uporabljamo bodisi množinski bodisi edninski naziv). Tako bomo ohranili skladnost. Povzemimo strukturo tabele Recepti še enkrat.

Recepti(Naziv recepta, Slasten namig, Recept namenjen pripravi, Sestavine, Priprava, Nasvet)
ali
Recepti(NazivRecepta, SlastenNamig, ReceptNamenjenPripravi, Sestavine, Priprava, Nasvet)

V nadaljevanju bomo za nazive polj oziroma vseh elementov uporabljali nazive brez presledkov.

Oblikovanje tabele v Accessu je preprosto opravilo. Tabelo lahko ustvarimo na tri načine: jo načrtujemo, uporabimo čarovnika ali jo ustvarimo z vnašanjem podatkov. Zaradi analize, ki smo jo celovito opravili, bomo uporabili najtežji način in tabelo ustvarili z načrtovanjem (v pogledu načrta).

Tabelo ustvarimo v pogledu načrta

Odpre se obrazec, imenovan »Tabela1: Tabela«. Obrazec služi vpisu oziroma definiciji polj tabele. Definirali bomo polja, ki smo si jih zamislili ob analizi. V prvi stolpec vpišemo naziv oziroma ime polja, v drugi stolpec podatkovni tip in v tretjega kratek opis. Vpis v prva dva stolpca sta obvezna, vendar tudi tretjega ne pustimo praznega. Informacija opisa bo dobrodošla v vseh nadaljnjih korakih. Prikazovala se bo v vrstici stanja oziroma v opravilni vrstici v spodnjem levem delu okna v fazi vnosa ali spreminjanja podatkov.

Obrazec za definicijo polj tabele

Vsa polja tabele »Recepti« so znakovna. Privzeti podatkovni tip je »Besedilo«, ki je privzeto nastavljen na dolžino 50 znakov. Za naziv recepta, slasten namig, recept, namenjen pripravi, in nasvet uporabimo podatkovni tip Besedilo (text) različnih dolžin. Za sestavine in seznam priprave uporabimo podatkovni tip Zapisek (memo), ki ga izberemo s seznama. V spodnjem levem kotu so dodatne lastnosti posameznega polja, na katerem smo trenutno. Lastnosti polja so razdeljene na dva zavihka: Splošno in Iskanje. Med zgornjim in spodnjim obrazcem za vpis definicij tabele se lahko premikamo s tipko F6.

Za vsako polje bomo najprej določili splošne lastnosti. Lastnost iskanja bomo uporabili le pri nekaterih poljih.

Prva splošna lastnost je dolžina. Odločimo se o pričakovani največji dolžini: naziv recepta in slasten namig 80 znakov, recept, namenjen pripravi, 40 znakov in nasvet največ 255 znakov. Sestavine in priprava pa sta tipa Zapisek. Njuna največja dolžina je 65.000 znakov, če vnašamo podatke sami oziroma 1 GB če vnašamo podatke s pomočjo programa. Torej več kot dovolj za naše potrebe.

Dodatno bomo v spodnjem levem kotu za vsako polje določili še lastnosti »Napis« in »Zahtevano«. Lastnost »Napis« uporabi Access v treh primerih: ob odpiranju tabele v načinu »Pogled« (posamezno polje prikazano kot stolpec nosi poljuben naziv) in pri oblikovanju obrazca ali poročila kot naziv pripadajočega polja. Če lastnosti »Napis« ne vnesemo, se bo v vseh primerih prikazal naziv polja (glej stolpec Ime polja).

Lastnost »Zahtevano« postavimo na »Da« za naslednja polja: »ReceptNamenjenPripravi«, »Sestavine«, »Priprava«. Vnos teh podatkov bo v trenutku vpisa novega recepta oziroma v trenutku vpisa nove vrstice v tabelo obvezen.

Oblikovanje nove tabele je korak pred koncem. Preden tabelo shranimo in jo pred tem poimenujemo, oblikujmo še dodano lastnost, imenovano primarni ključ (primary key). Izmed vseh polj si izberemo tistega, za katero vemo, da se njegova vrednost ne bo pojavila več kot enkrat. Tehnično povedano – vsaka vrednost se bo pojavila natanko enkrat. Takšni vrednosti pravimo enolična vrednost (unique value).

Recept ima zagotovo vsaj eno takšno polje. Trenutno je to polje »NazivRecepta«. Seveda lahko kaj hitro temu nasprotujemo. Prav gotovo obstajata vsaj dva recepta, imenovana »Lazanja z bolonjsko omako« (npr. enega najdemo v knjigi, drugega na spletni strani). V takšnem primeru lahko postopamo na dva načina. Nazivu recepta dodamo še eno polje, npr. »IzvorRecepta« (naziv knjige, naziv spletne strani). Drugi način je, da oblikujemo dodatno polje z nazivom »IdentifikatorRecepta« ali »ZaporednaStevilkaRecepta« ali »OznakaRecepta«, ki mu priredimo enolično vrednost, npr. 1, 2, 3 ali »Bolonjska lazanja, Sončna kuhinja«, »Bolonjska lazanja, Ankini recepti«.

V našem primeru bomo polje »NazivRecepta« označili in izvedli ukaz Urejanje–Primarni ključ ali v orodjarni poiskali gumb z motivom zlatega ključa in ga pritisnili. Polje »NazivRecepta« je postal primarni ključ tabele »Recepti«. Tehnično gledano program ustvari indeksno strukturo, imenovano »PrimaryKey«, ki je edinstvena. Skrbela bo za hiter dostop, predvsem pa za enoličen vnos receptov. Z drugimi besedami – vsi recepti bodo morali imeti različen (enoličen) naziv. O uspešnosti oblikovanja primarnega ključa se prepričamo z izvedbo ukaza Pogled–Indeksi, ki prikazuje oblikovan primarni ključ.

Primarni ključ tabele je oblikovan nad poljem »NazivRecepta«.

Tabelo shranimo. Program zahteva naziv oziroma ime tabele. Vnesemo naziv »Recepti«. Uspešno smo oblikovali prvo tabelo.

Začetni načrt tabele Recepti je končan

Vnos podatkov v prvo tabelo

Napočil je čas preizkusa vnosa prvih podatkov v tabelo receptov. Spet bomo posegli po kuharskih knjigah. Slutimo, da z vnosom namenoma malce prehitevamo. Vendar moramo kot oblikovalci začutiti, da je za dober podatkovni model treba začeti vnašati podatke že v zelo zgodnji fazi. Takšen pristop je sicer počasnejši, a nam zagotavlja trden podatkovni model. Preprosteje rečeno, naša zbirka podatkov bo imela tak podatkovni model, kot ga resnično potrebujemo, obenem pa bo že vsebovala realne podatke. Tudi z zornega kota programerja programa (to bomo seveda mi sami) nam bodo podatki sami predstavili vse potrebne oblikovne potrebe našega končnega programa. Naštejmo nekatere od potrebnih podatkov za oblikovanje programa: seznam obveznih polj, nazivi in opisi vseh polj, primerna širina vnosnih polj, povezave na sezname (referenčni podatki ali po domače šifranti). Pri tabeli Recepti je informacija o viru referenčni podatek oziroma seznam.

Za primer vnosa odpremo tabelo Recepti. Prikaže se prva prazna vrstica tabele. Podatke vnašamo neposredno v tabelo Recepti. V odprti tabeli opazimo, da so nazivi stolpcev nazorni in natančno predstavljajo vsebino. To smo dosegli z vpisovanjem lastnosti »Napis«. Dodaten opis oziroma razlaga vsebine polja, v katerem smo, pa se prikazuje tudi v opisni vrstici v levem spodnjem kotu. To smo dosegli z vpisovanjem lastnosti »Opis«.

Prazna tabela Recepti še ne vsebuje nobenega recepta

Pogled na ozko vrstico in dejstvo, da moramo vnesti veliko podatkov, nas ne bosta zbegala. Stolpec lahko namreč poljubno širimo s potegom miške, obenem pa lahko za polje, na katerem smo, uporabljamo še kombinacijo tipk Shift+F2. Vsebina polja se potem prikaže v ločenem oknu, imenovanem Zoom, kjer lahko vidimo vse besedilo naenkrat. Če želimo pri vpisovanju v oknu Zoom skočiti v novo vrstico, pritisnemo kombinacijo tipk Ctrl+Enter. Samo pritisk tipke Enter, kot smo navajeni v urejevalniku besedila, zaključi vnos in okno zapre.

Primer okna Zoom pri vnosu seznama sestavin

V prvo vrstico vnesemo recept »Lazanja z bolonjsko omako«. Recept se shrani takoj, ko skočimo v naslednjo (drugo) vrstico tabele. Nadaljujemo z vnosom drugega in preostalih receptov. Pri vnosu tretjega recepta se nam zatakne pri vnosu vsebine slastnega namiga. Namig je namreč daljši od 80 znakov. Imamo dve možnosti. Vnos prekinemo s pritiskom tipke Esc. Vse, kar smo vpisali, se zbriše.

Lahko pa uberemo drugo pot. Slastnega namiga ne vpišemo v celoti. Vnos drugih polj pa zaključimo. Tako imamo vpisan tudi tretji recept, vendar vemo, da moramo vsebino slastnega namiga še dopolniti. Da lahko vsebino slastnega namiga vpišemo do konca, moramo razširiti velikost polja »SlastenNamig« na vrednost 255 znakov, kar je največja vrednost znakovnega polja. Zato tabelo odpremo v pogledu načrta, označimo polje »SlastenNamig« in spremenimo lastnost »Velikost polja« z 80 na 255 znakov. Če tudi največja dolžina ne bo zadostovala, bomo morali podatkovni tip slastnega namiga pretvoriti v podatkovni tip »Zaznamek«.

Dolžino polja »SlastenNamig« razširimo na maksimalnih 255 znakov.

Pogled na vse recepte bo bolje viden po razširitvi višine posamezne vrstice ter po razširitvi širine enega ali več stolpcev. Razširitev vrstice je zelo preprosta. Z miško se približamo vzporedni ločilni črti v prvem praznem stolpcu tabele. Nato primerno razširimo vrstico. Kot vidimo, se razširijo vse vrstice. Podobno kot pri prilagajanju višine vrstic postopamo tudi pri prilagajanju širine enega ali več stolpcev, z dodatno možnostjo, da ločilno črto med stolpcema dvokliknemo. Širina stolpca se samodejno prilagodi njeni vsebini. Ne pozabimo, da lahko vsebino posameznega polja vedno prikažemo v oknu Zoom z uporabo tipk Shift+F2.

Prvi trije recepti

Opazimo zanimivo lastnost zbirke podatkov. Zapisi receptov niso urejeni v takšnem vrstnem redu, kot so bili vneseni. Urejeni so po naraščajočem vrstnem redu polja »NazivRecepta« oziroma po primarnem ključu tabele. To je zelo pomembna lastnost relacijskih zbirk podatkov. Posplošeno povedano – podatki so logično neodvisni od fizične shrambe. Do njih dostopamo povsem poljubno, na primer: urejamo jih poljubno, prikazujemo podmnožico zapisov ali podmnožico stolpcev, ne da bi morali vedeti, kako so ti fizično shranjeni v zbirki podatkov.

Po vnosu vseh receptov, s pomočjo katerih smo pripravili osnovni model tabele »Recepti«, razširimo svoje želje.

Najprej bi želeli vsakemu receptu dodati izvor informacij. Naš izvor bo lahko listek, ki nam ga je narekovala babica ali prijateljica, kuharska knjiga iz knjižnice ali spletna stran. Najpreprosteje bi ravnali in tabeli Recepti dodali polje z nazivom »IzvorInformacije« ali »Vir«. Vendar si želimo pri knjigah ali spletnih straneh dodatno zapomniti informacije, kot so ISBN-številka knjige, avtorji, hiperpovezava do spletne strani. Kaj hitro razpoznamo, da se bodo podatki za recepte, ki so povzeti iz iste knjige, ponavljali pri vsakem od receptov. Zato bomo oblikovali novo tabelo, imenovano »Viri«. Obenem pa bomo izkoristili priložnost in spoznali nov pojem oziroma element zbirke podatkov – relacijo.

Moj mikro, Marec 2010 | Štefan Hozjan |