Predstavili bomo oblikovanje zbirke podatkov, imenovane »Moji recepti«. Pa ne zato, da bi resnično uporabili računalnik kot pripomoček pri kuhanju. Naš namen je približati zmogljivost zbirk podatkov v domačem in delovnem okolju za potrebe premostitve tistih opravil, ki se ponavljajo iz meseca v mesec in potrebujejo pri tem tudi shranjevanje podatkov za trajnejše obdobje. Pokazali bomo, kako oblikujemo zbirke podatkov v znanem namiznem programskem paketu Microsoft Office Access.
Orodje sodi v skupino sistemov za upravljanje s podatkovnimi zbirkami (Database Managament System). Access je torej opisan kot sistem za upravljanje s podatki in poimenovanje je več kot upravičeno. Access namreč še zdaleč ni samo zbirka, kjer se podatki shranijo. To je kompleksen program, katerega naloga je resnično upravljanje s podatki. Številne funkcionalnosti tega programa, ki omogočajo tako upravljanje podatkov kot njihovo nadzorovanje, pa so uporabnikom tako rekoč skrite in jih ne obremenjujejo. Nekako tako, kot to velja za operacijski sistem. Za nas uporabnike je pomembno predvsem, da operacijski sistem deluje, in enako je pri podatkovnih zbirkah: pomembno je, da nam shranjujejo podatke, izvajajo nad podatki določena opravila (strokovno jim rečemo pravila poslovanja) in nam, kot najpomembnejše, dovoljujejo možnost iskanja in vrnitve točno tiste informacije ali podatka, ki ga iščemo. Ker pa sodi orodje Access v skupino namiznih programskih paketov, lahko z njim oblikujemo tudi obrazec (vmesnik za komunikacijo med uporabnikom in podatki) ali celo zaključen program, ki bo v celoti zajel naše potrebe tako po hranjenju kakor predstavitvi, iskanju in upravljanju s podatki. Končni cilj je v našem primeru lahko obrazec, kot je prikazan v primeru.
RECEPT ZA ZBIRKO KUHARSKIH RECEPTOV
Za pripravo zbirke podatkov bomo sledili določenemu postopku oziroma receptu. Začeli pa bomo tako, da bomo predpostavili, da ne vemo prav ničesar o vsebini in načinu oblikovanja.
Najprej si moramo odgovoriti na vprašanje »Kako bi opisal posamezni recept?« in odgovor zlahka najdemo: v kuharskih knjigah. Te so v večini primerov zelo lepo vsebinsko in oblikovno urejene in bodo tudi nam temeljno vodilo pri pripravi osnovne podatkovne oblike. Želimo pa dodati še nekaj več – vsak kuharski recept želimo opremiti še s komentarjem, po tem, ko smo kuharski recept preizkusili v praksi. Končni cilj, ki mu bomo sledili, je priprava takšne zbirke podatkov, v katero bomo lahko shranili recepte iz katerega koli izvora, naj bo v slovenščini ali kakšnem drugem jeziku (vsebine receptov namenoma ne bomo prevajali), njihova vsebina pa bo, če smo recept že preizkusili, dopolnjena še z našimi osebnimi praktičnimi izkušnjami in komentarji.
PODATKI IN PODATKOVNA OBLIKA
Preden nadaljujemo z vsebino zbirke podatkov, se seznanimo z osnovnim elementom vsake zbirke podatkov. To je tabela. Ta hrani elemente, ki jim pravimo zapisi. Preprosto jim lahko rečemo kar vrstice. Vrstice so razdeljene na posamezne lastnosti, imenovane tudi polja. Polje je osnovni element hranjenja. To je za zdaj vse, kar moramo vedeti.
Pogled v kuharico
Da bi si delo malce olajšali, bomo izbrali štiri priljubljene kuharske knjige, iz katerih bomo pripravili želeno podatkovno obliko oziroma osnovno tabelo receptov. Naslovi knjig so »Sončna kuhinja«, »Ice Cream!«, »Sodobna vegetarijanska kuhinja« in »Ankini recepti« Vse knjige posamezni recept opisujejo z enakimi lastnostmi, vsaka od njih pa vsebuje tudi sebi lastne in zelo zanimive dodatke, ki jih preprosto ne želimo prezreti. Vsako lastnost recepta bo predstavljalo določeno polje v zbirki podatkov. Lastnost bomo najprej predstavili s primerom, nato pa bomo polje primerno poimenovali.
LASTNOSTI RECEPTA
Najprej bomo izluščili skupne lastnosti oziroma podatke izbranih receptov iz omenjenih knjig.
Vsak recept ima naziv: »Lazanja z bolonjsko omako«, »Caramel ice cream«, »Solata iz hrušk, rukvice in parmezana«, »Rezanci s pestom«. To lastnost oziroma polje v podatkovni tabeli bomo poimenovali »Naziv recepta« ali »NazivRecepta«.
Avtorji receptov nas v podnaslovu želijo še dodatno pritegniti, in sicer z naslednjimi stavki: »Divine« za karamelni sladoled in »Za pretanjen začetek imenitne pogostitve ponudimo to preprosto solato iz slastnih hrušk, svežega parmezana in aromatične rukvice« za solato. Tej lastnosti bomo dali naziv »Slasten namig« ali »SlastenNamig«. Ker opazimo, da recept za lazanjo tega podnaslova nima, si ga lahko izmislimo sami, kar nam še posebej pri lazanji verjetno ne bo težko. Lahko uporabimo slikovit Garfieldov opis te slastne jedi in v podatkovno polje vpišemo »Hrana bogov«, lahko pa se odločimo, da podatka ne bomo vpisali in to potem pozneje pri oblikovanju tega polja v zbirki podatkov upoštevamo tako, da za polje določimo, da vnos podatka ni obvezen.
Koliko oseb bomo osrečili s pripravljeno hrano, je lahko opisano takole: »(prazno)«, »Makes 600 ml (1 pt)« in »Za 4 osebe«. Lastnosti bomo dali naziv »Recept, namenjen pripravi« ali »ReceptNamenjenPripravi«. Kuharica »Sončna kuhinja« ima podatek napisan takoj za vsebinskim kazalom: »Recepti v knjigi so za 4 osebe.« Avtorici sta se odločili, da informacije ne bosta iz recepta v recept ponavljali, mi pa lahko na tem mestu spoznamo novo lastnost, ki jo lahko ima določeno podatkovno polje – polje ima lahko privzeto vrednost (default value). Vsebine polja s takšno lastnostjo nam pri vnosu novega recepta ni treba vpisovati, ker nas že čaka vpisana. Če bi torej želeli naenkrat vnesti več receptov iz kuharske knjige »Sončna kuhinja«, bi nam bilo delo nekoliko olajšano, saj nam vsebine polja »ReceptNamenjenPripravi« ne bi bilo treba vsakič znova vpisovati. Ker pa bomo mi zbirali recepte iz različnih virov, to polje ne bo imelo privzete vrednosti.
Branje seznama potrebnih sestavin je odločilno pri izbiri recepta. Kljub mamljivim predhodnim namigom, se namreč priprave ne bomo lotili, če nam primanjkuje katera od naštetih sestavin. Tej lastnosti bomo dali preprost naziv »Sestavine«. Za preprostim nazivom polja pa se skriva ne tako preprosta struktura. Polje pravzaprav sestavljajo vrstice sestavin, te pa so sestavljene iz dveh, treh ali več podatkov – torej so, kot pravi tudi ime – sestavljene. Vsako vrstico sestavljajo količina in merska enota ter naziv sestavine. Velikokrat je jed sestavljena iz več delov (ločenih receptov) in tako so tudi sestavine razdeljene na več delov (pri lazanji imamo tako dva dela: bolonjsko omako in bešamel).
Poglejmo si torej naše precej različne primere: »5 dag masla«, ki pripada skupini sestavin za pripravo bolonjske omake, »200 g (7 oz) caster sugar«, ki prikazuje primer dveh različnih merskih enot in »3 zrele hruške, najbolje viljamovke«, ki prikazuje primer brez merske enote.
Kot vidimo, so sestavine res sestavljene. Za zdaj pa si teka ne bomo pokvarili s kompleksnostjo. Odločimo se, da bomo celotno besedilo sestavin preprosto prepisali v eno polje, ki smo mu že dali naziv »Sestavine«.
Zagotovo bomo kmalu dobro jedli, saj smo že pri postopku priprave in torej že kuhamo. Tudi ta lastnost recepta je lahko opisana na različne načine. Lahko ga tvori preprosto besedilo, na primer za lazanje: »Lazanje postopoma kuhamo v posodi z osoljeno vodo.« Ali v angleščini za sladoled: »Combine the sugar and water in a heavy-bottomed saucepan.« in sladoled. Lahko pa je postopek priprave razdeljen v korake: »1. Hruške olupimo, razpečkamo in narežemo na krhlje. Navlažimo jih z limoninim sokom, da ostanejo svetli.« Velikokrat je posamezen korak opremljen tudi z nazorno sliko, ki nam pomaga pri pripravi. Za naš primer bomo vse podatke združili pod okrilje ene lastnosti in jo poimenovali »Priprava«.
In že smo pri zadnji osnovni lastnosti. To je nasvet. Z njim nas avtor dokončno prepriča v pravilnost naše odločitve za določen recept, četudi smo bili prej mogoče še rahlo v dvomih. Poglejmo si primere: »Liste lazanje lahko polagamo v pekač, ne da bi jih prej skuhali.«, »If you're looking for a top-quality ice cream, look no further. It is rich, smooth and full of depth – frozen sophistication.« in »Če rukvice težko dobimo, jo lahko od zgodnje pomladi do poznega poletja gojimo sami.« To lastnost bomo poimenovali »Nasvet«.
Uspešno smo končali prvi korak, ki mu strokovno rečemo analiza. Pregledali smo lastne zahteve, uporabili vsebinsko znanje in z minimalnim tehničnim znanjem oblikovali seznam potrebnih lastnosti (polj) posameznega recepta. Dodatno smo spoznali še naslednje tehnične lastnosti: vsi osnovni podatki, ki lahko opisujejo posamezen recept, niso obvezni; vsi do zdaj obravnavani podatki so znakovni nizi, podatku lahko dodelimo lastnost privzete vrednosti.
Za zdaj smo si torej zamislili seznam polj, ki bodo tvorila našo prvo tabelo.
Moj mikro, Marec 2010 | Štefan Hozjan |