Osnove načrtovanja zbirk podatkov

Pravilno načrtovana zbirka podatkov omogoča dostop do posodobljenih in točnih podatkov. Posvečanje časa učenju načel dobrega načrtovanja se obrestuje, saj je pravilen načrt bistvenega pomena za doseganje ciljev pri delu z zbirko podatkov. Zbirka podatkov bo tako ustrezala vašim potrebam in po želji jo boste lahko enostavno spremenili.

V tem članku so opisana navodila za načrtovanje zbirke podatkov. Izvedeli boste več o tem, kako izbrati želene podatke, kako razporediti podatke v ustrezne tabele in stolpce in v kakšni relaciji so te tabele. Ta članek je priporočljivo prebrati pred ustvarjanjem prve zbirke podatkov.

V tem članku


Izrazi, ki so povezani z zbirko podatkov

Program Microsoft Office Access 2007 organizira podatke v tabele, oziroma sezname vrstic in stolpcev, ki spominjajo na računovodsko razpredelnico ali delovni list programa Microsoft Office Excel 2007. V preprosti zbirki podatkov bo morda samo ena tabela, večina zbirk podatkov pa uporablja več tabel. Morda boste ustvarili tabelo, v kateri so shranjeni podatki o izdelkih, tabelo, v kateri so shranjeni podatki o naročilih, in tabelo s podatki o strankah.

Primer s tremi tabelami na podatkovnih listih

Vrstica se imenuje tudi zapis, polje pa stolpec. Z zapisom je mogoče združiti podatke tako, da so smiselni in usklajeni. Polje je en element podatkov – vrsta elementa, ki se pojavi v vseh zapisih. V tabeli »Izdelki« so v vsaki vrstici ali zapisu podatki o enem izdelku. V vsakem stolpcu ali polju pa je neka vrsta podatkov o tem izdelku, na primer ime ali cena.

Na vrh strani Na vrh strani

Kakšen je dober načrt zbirke podatkov?

Za postopek načrtovanja veljajo določena načela. Prvo načelo je, da so podvojeni podatki (ali odvečni podatki) nepotrebni, saj zavzemajo prostor, večja pa je tudi možnost, da se bodo pojavile napake in nedoslednosti. Drugo načelo je, da je pomembna točnost in celovitost podatkov. Če so v zbirki podatkov nepravilni podatki, bodo tudi podatki v poročilih, ki pridobijo podatke iz te zbirke, nepravilni. Katera koli odločitev, ki jo boste sprejeli na osnovi teh poročil, bo posledično nepravilna.

Z dobrim načrtom zbirke podatkov torej:

  • Razporedite podatke v tabele, ki temeljijo na predmetih, in zmanjšate možnost pojavljanja odvečnih podatkov.
  • Vnesete podatke, ki jih zahteva Access za ustrezno povezovanje podatkov v tabelah.
  • Pripomorete k zagotavljanju in vzdrževanju točnosti in celovitosti podatkov.
  • Izpolnite želene zahteve za obdelovanje in poročanje podatkov.

Na vrh strani Na vrh strani

Postopek načrtovanja

Koraki pri postopku načrtovanja:

  • Določanje namena zbirke podatkov    

Na ta način se lažje pripravite na ostale korake.

  • Iskanje in organiziranje zahtevanih podatkov    

Zberite vse vrste podatkov, ki jih želite shraniti v zbirki podatkov, na primer ime izdelka in številko naročila.

  • Razporejanje podatkov v tabele    

Razporedite elemente podatkov v zaključene celote ali predmete, na primer izdelke ali naročila. Za vsak predmet je nato ustvarjena tabela.

  • Razporejanje elementov podatkov v stolpce    

Določite podatke, ki jih želite shraniti v posamezni tabeli. Vsak element postane polje in je v tabeli prikazan kot stolpec. V tabeli »Zaposleni« so lahko na primer polja »Priimek« in »Datum zaposlitve«.

  • Navajanje primarnih ključev    

V vsaki tabeli določite primarni ključ. Primarni ključ je stolpec, ki enolično določa posamezno vrstico, na primer »ID naročila« in »ID izdelka«.

  • Nastavljanje relacij tabel    

Določite, kako so podatki v eni tabeli povezani s podatki v drugih tabelah. Po želji dodajte polja v tabele ali ustvarite nove tabele, da natančneje določite relacije.

  • Podrobnejše določanje načrta    

Preverite, ali so v načrtu napake. Ustvarite tabele in dodajte nekaj zapisov z vzorčnimi podatki. Ugotovite, ali so iz tabel vrnjeni želeni podatki. Po potrebi prilagodite načrt.

  • Uporaba pravil normalizacije    

Če želite ugotoviti, ali so tabele strukturirane pravilno, uporabite pravila za normalizacijo podatkov. Po potrebi prilagodite tabele.

Na vrh strani Na vrh strani

Določanje namena zbirke podatkov

Name zbirke podatkov si je priporočljivo zapisati na papir – namen zbirke, kako jo nameravate uporabljati in kdo jo bo uporabljal. Če boste ustvarili preprosto zbirko podatkov za domače podjetje, lahko na primer napišete »V zbirki podatkov za stranke je seznam podatkov o strankah za ustvarjanje pisem in poročil«. Če je zbirka podatkov bolj zapletena in jo uporablja več ljudi, kot je to običajno v večjih podjetjih, bo opis namena najverjetneje obsegal enega ali več odstavkov, v katerih naj bo opisano, kako in kdaj bodo posamezne osebe uporabljale zbirko podatkov. Namen tega je razviti skrbno izdelan cilj, na katerega se lahko sklicujete med celotnim postopkom načrtovanja. Ta omogoča, da se pri sprejemanju odločitev osredotočite na vaše cilje.

Na vrh strani Na vrh strani

Iskanje in organiziranje zahtevanih podatkov

Poiščite in organizirajte zahtevane podatke s pomočjo obstoječih podatkov. Morda hranite zapise o naročilih v poslovni knjigi, podatke o strankah pa na papirnatih obrazcih v arhivski omari. Zberite te dokumente in navedite vse vrste podatkov, ki so prikazani (na primer vsa polja, ki jih izpolnite v obrazcu). Če nimate obstoječih obrazcev, si predstavljajte, da načrtujete obrazec za shranjevanje podatkov o strankah. Katere podatke želite vnesti v obrazec? Katera polja za izpolnjevanje želite ustvariti? Določite in navedite vse te elemente. Predstavljate si na primer, da trenutno hranite seznam strank na indeksnih karticah. Če si ogledate te kartice, lahko vidite, da je na vsaki kartici napisano ime, naslov, mesto, država, poštna in telefonska številka. Vsak od teh elementov lahko postane stolpec v tabeli.

Ob ustvarjanju seznama ne skrbite, če ni popoln že na začetku, ampak navedite vsak element, ki vam pride na misel. Če bodo zbirko podatkov uporabljali tudi drugi, naj vam dajo kakšen nasvet. Seznam lahko podrobneje določite tudi pozneje.

Razmislite o tem, kakšne vrste poročil in pisem želite ustvariti s pomočjo zbirke podatkov. Morda boste na primer želeli ustvariti poročilo o prodaji izdelkov, v katerem je prikazana prodaja po regijah, ali poročilo povzetka inventarja, v katerem je prikazan popis izdelkov. Morda boste želeli ustvariti tudi tipsko pismo, ki ga boste poslali strankam, da jih obvestite o prodajnem dogodku ali posebni ponudbi. V mislih ustvarite poročilo in si ga predstavljajte. Katere podatke želite vključiti v poročilo? Navedite vse elemente. Postopek ponovite za tipsko pismo ali katero koli poročilo, ki ga želite ustvariti.

Oseba, ki si v mislih predstavlja poročilo popisa izdelkov

Če posvetite čas razmisleku o poročilih in pismih, ki jih želite ustvariti, boste lažje določili elemente, ki jih boste potrebovali v zbirki podatkov. Predstavljajte si na primer, da želite strankam omogočiti prijavo na redna e-poštna sporočila z novostmi in natisniti seznam teh, ki so se za to odločili. Če želite shraniti te podatke, lahko v tabelo s strankami dodate stolpec »Pošlji e-pošto«. Polje lahko nastavite na »Da« ali »Ne« za posamezno stranko.

Če želite strankam poslati e-poštna sporočila, morate vključiti še en element. Ko veste, da stranka želi prejemati e-poštna sporočila, morate shraniti tudi e-poštni naslov, na katerega boste poslali sporočila. Torej potrebujete polje za e-poštni naslov strank.

Priporočljivo je ustvariti vzorec vsakega poročila ali izhodnega seznama in razmisliti o tem, katere elemente potrebujete za izdelavo poročila. Če boste želeli na primer ustvariti tipsko pismo, boste takoj pomislili na določene elemente. Če boste želeli vključiti ustrezen pozdrav – na primer niz »g.«, »ga.« ali »gdč.« s katerim se začne pozdrav, boste morali ustvariti element s pozdravom. Ker boste pismo običajno začeli z »Dragi g. Stele« in ne z »Dragi g. Jaka Stele«, je priporočljivo, da ime in priimek shranite ločeno.

Pomembno si je zapomniti, da je priporočljivo razdeliti dele podatkov v najmanjše uporabne dele. Če želite, da bo priimek na voljo za nadaljnjo obdelavo podatkov, razdelite polno ime na dva dela – ime in priimek. Poročilo boste na primer lažje razvrstili po zadnjem imenu, če bo priimek stranke shranjen ločeno. Torej če želite razvrstiti, poiskati ali izračunati element podatkov ali ustvariti poročilo zanj, ga postavite v svoje polje.

Razmislite o vprašanjih, na katera želite poiskati odgovore s pomočjo zbirke podatkov. Postavite lahko različna vprašanja, na primer koliko izdelkov je bilo prodanih prejšnji mesec, kje živijo vaše najboljše stranke ali kdo je dobavitelj najbolj prodajanega izdelka. S temi vprašanji lahko določite končni izbor dodatnih elementov, ki jih želite vključiti.

Ko zberete vse te podatke, ste pripravljeni na naslednji korak.

Na vrh strani Na vrh strani

Razporejanje podatkov v tabele

Če želite podatke razporediti v tabele, določite zaokrožene celote ali predmete. Po iskanju in organiziranju podatkov za zbirko podatkov za prodajo izdelkov bo vzorčni seznam morda takšen:

Na roko napisani elementi podatkov, ki so združeni v predmete

Zaokrožene celote, ki so tukaj prikazane, so izdelki, dobavitelji, stranke in naročila. Smiselno je torej začeti s temi štirimi tabelami: s podatki o izdelkih, dobaviteljih, strankah in naročilih. Čeprav ta seznam še ni dokončen, je dobro izhodišče. Seznam lahko podrobneje določate, dokler načrt ne bo popoln.

Ko boste prvič pregledali začetni seznam elementov, jih boste morda želeli razporediti v eno samo tabelo in ne v štiri, kot je prikazano v prejšnjem primeru. V nadaljevanju boste izvedeli več o tem, zakaj to ni priporočljivo. Oglejte si tabelo, ki je prikazana spodaj:

Primer tabele z izdelki in dobavitelji

V tem primeru so v vsaki vrstici podatki o izdelku kot tudi dobavitelju. Ker lahko isti dobavitelj dobavlja več različnih izdelkov, se morajo podatki o imenu in naslovu dobavitelja večkrat ponoviti, kar zavzame prostor na disku. Veliko boljša rešitev je, da podatke o dobavitelju shranite v ločeno tabelo »Dobavitelji«, ki jo povežete s tabelo »Izdelki«.

Druga težava pri tem načrtu se pojavi, ko želite spremeniti podatke o dobavitelju. Predstavljajte si na primer, da želite spremeniti naslov dobavitelja. Ker se naslov pojavi na mnogih mestih, ga boste morda pozabili spremeniti povsod. To težavo lahko rešite tako, da naslov dobavitelja shranite samo na eno mesto.

Ob načrtovanju zbirke podatkov poskusite shraniti vsak podatek samo na eno mesto. Če ugotovite, da se isti podatek ponavlja na več mestih, na primer naslov za določenega dobavitelja, ga shranite v ločeno tabelo.

Predstavljajte si na primer, da določen izdelek dobavlja samo vinoteka Trta. Izdelek želite izbrisati, a ohraniti podatke o imenu in naslovu dobavitelja. Ali je mogoče izbrisati zapis z izdelkom in ohraniti podatke o dobavitelju? To ni mogoče, saj so v posameznem zapisu podatki o izdelku kot tudi dobavitelju, in enega podatka ni mogoče izbrisati, ne da bi izbrisali tudi drugega. Če želite ločiti te podatke, namesto ene ustvarite dve tabeli: tabelo s podatki o izdelku in tabelo s podatki o dobavitelju. Brisanje podatkov o izdelku bo tako izbrisalo samo podatke o izdelku, ne pa tudi podatke o dobavitelju.

Ko izberete predmet, ki bo predstavljen v tabeli, naj bodo v stolpcih v tej tabeli shranjeni samo podatki o tem predmetu. V tabeli z izdelki naj bodo na primer shranjeni samo podatki o izdelkih. Ker je naslov dobavitelja podatek o dobavitelju in ne o izdelku, sodi ta podatek v tabelo z dobavitelji.

Na vrh strani Na vrh strani

Razporejanje elementov podatkov v stolpce

Če želite določiti stolpce v tabeli, se odločite, katerim podatkom o predmetu, ki je zapisan v tabeli, želite slediti. Za tabelo »Stranke« je dobro izhodišče na primer seznam stolpcev »Ime«, »Naslov«, »Poštna številka«, »Pošlji e-pošto«, »Pozdrav« in »E-poštni naslov«. Vsak zapis v tabeli ima isti nabor stolpcev, tako da lahko shranite podatke o imenu, naslovu, poštni številki, pošiljanju e-pošte, pozdravu in e-poštnem naslovu za vsak zapis. V stolpcu z naslovi so na primer naslovi strank. V vsakem zapisu so podatki o posamezni stranki, v polju z naslovom pa je naslov te stranke.

Ko določite začetni nabor stolpcev v vsaki tabeli, lahko stolpce določite podrobneje. Priporočljivo je na primer, da shranite ime stranke v dva ločena stolpca »Ime« in »Priimek«, tako da lahko razvrstite, poiščete in indeksirate samo posamezen stolpec. Tudi naslov je sestavljen iz petih delov, naslova, mesta, države, poštne številke in zvezne države/regije, zato jih je smiselno shraniti v ločene stolpce. Če želite na primer poiskati, filtrirati ali razvrstiti podatke po državi, morajo biti podatki o državi shranjeni v ločenem stolpcu.

Razmislite tudi o tem, ali bodo v zbirki podatkov samo domači ali tudi mednarodni podatki. Če želite na primer shraniti mednarodne naslove, je smiselno ustvariti stolpec »Regija« in ne »Zvezna država«, saj lahko sprejme podatke o regijah držav kot tudi podatke o zveznih državah, ter stolpec »Poštna koda« in ne »Ameriška koda ZIP«.

Na spodnjem seznamu je navedenih nekaj nasvetov za določanje stolpcev.

  • Naj ne bodo vključeni izračunani podatki    

V večini primerov ni priporočljivo shraniti rezultate izračunov v tabele, saj lahko podatke izračuna Access, ko želite videti rezultate. Predstavljajte si na primer poročilo za naročene izdelke, v katerem so prikazane delne vsote enot naročila za vsako kategorijo izdelka v zbirki podatkov. Stolpca z delnimi vsotami enot naročila ni v nobeni tabeli. V tabeli »Izdelki« pa je stolpec »Enote naročila«, v katerem so shranjene enote naročila za posamezni izdelek. Na osnovi teh podatkov Access izračuna delno vsoto vsakič, ko natisnete poročilo. Delna vsota naj ne bo shranjena v tabeli.

  • Podatki naj bodo shranjeni v najmanjših smiselnih enotah    

Morda boste želeli ustvariti eno polje s polnim imenom ali polje z imenom in opisom izdelkov. Če v enem polju združite več kot eno vrsto podatkov, je pozneje težje pridobiti podatke o enem elementu. Poskusite razdeliti podatke v smiselne enote in ustvarite na primer ločena polja za ime in priimek ali polja za ime, kategorijo in opis izdelka.

Seznam elementov podatkov med postopkom načrtovanja

Ko podrobneje določite stolpce podatkov v tabelah, lahko določite primarni ključ posamezne tabele.

Na vrh strani Na vrh strani

Navajanje primarnih ključev

V vsaki tabeli mora biti stolpec ali nabor stolpcev, ki enolično določajo vsako vrstico, shranjeno v tabeli. Običajno je to enolična identifikacijska številka, na primer ID številka zaposlenega ali serijska številka. V terminologiji zbirke podatkov se ti podatki imenujejo primarni ključ tabele. Access uporabi polja s primarnim ključem za hitro povezovanje in vnovično pridobivanje podatkov iz več tabel.

Če že imate enolični identifikator za tabelo, na primer številko izdelka, ki enolično določa posamezni izdelek v katalogu, ga lahko uporabite kot primarni ključ tabele – vendar samo, če so vse vrednosti v tem stolpcu vedno različne. V primarnem ključu ne sme biti podvojenih vrednosti. Za primarni ključ ni mogoče uporabiti na primer imena oseb, saj niso enolična in v eni tabeli lahko ima več oseb isto ime.

V primarnem ključu mora vedno biti vrednost. Če zapisu vrednost ni dodeljena ali ni znana (manjkajoča vrednost), ga ni mogoče uporabiti kot del primarnega ključa.

Priporočljivo je izbrati primarni ključ z nespremenljivo vrednostjo. V zbirki podatkov, ki uporablja več tabel, se lahko primarni ključ tabele uporabi kot sklic v drugih tabelah. Če se primarni ključ spremeni, mora ta sprememba biti uveljavljena na vseh mestih, ki se sklicujejo na ključ. Če uporabite nespremenljiv primarni ključ, je več možnosti, da bo primarni ključ usklajen z drugimi tabelami, ki se nanj sklicujejo.

Primarni ključ je običajno poljubna enolična številka. Enolično številko naročila lahko na primer dodelite naročilom. Številka naročila služi izključno za določanje naročila in ko je enkrat dodeljena, se ne spremeni.

Če ne veste, kateri stolpec ali nabor stolpcev bi uporabili kot ustrezen primarni ključ, lahko uporabite stolpec s samoštevilčnim podatkovnim tipom. Ko uporabite samoštevilčni podatkovni tip, Access vrstici samodejno dodeli vrednost. V tem identifikatorju ni dejanskih podatkov, ki bi opisovali vrstico, in je najprimernejši za primarni ključ, saj se ne spreminja. Primarni ključ s podatki o vrstici – na primer telefonska številka ali ime stranke – se bo verjetno spremenil, saj se lahko spremenijo dejanski podatki.


Primer polja s primarnim ključem v tabeli »Izdelki«

Oblaček 1 Stolpec z nastavljenim samoštevilčnim podatkovnim tipom je ustrezen primarni ključ, saj ID-ji izdelkov niso nikoli isti.

Včasih boste za primarni ključ tabele morda želeli uporabiti več polj. V tabeli »Podrobnosti o naročilih«, v kateri so shranjeni vrstični elementi naročila, lahko za primarni ključ na primer uporabite dva stolpca: »ID naročila« in »ID izdelka«. Ko uporabite več stolpcev za primarni ključ, se ta imenuje tudi sestavljeni ključ.

V zbirki podatkov za prodajo izdelkov lahko v vseh tabelah ustvarite samoštevilčni stolpec kot primarni ključ: »ID izdelka« v tabeli »Izdelki«, »ID naročila« v tabeli »Naročila«, »ID stranke« v tabeli »Stranke« in »ID dobavitelja« v tabeli »Dobavitelji«.

Primer z elementi podatkov med postopkom načrtovanja

Na vrh strani Na vrh strani

Ustvarjanje relacij tabel

Ko razporedite podatke v tabele, ustvarite pogoje za vnovično pridobivanje smiselnih podatkov. V tem obrazcu so na primer podatki iz več tabel.


Obrazec »Naročila«

Oblaček 1 Podatki v tem obrazcu so iz tabele »Stranke«,
Oblaček 2 tabele »Zaposleni«,
Oblaček 3 tabele »Naročila«,
Oblaček 4 tabele »Izdelki« in
Oblaček 5 iz tabele »Podrobnosti o naročilu«.

Access je sistem za upravljanje relacijskih zbirk podatkov. V relacijski zbirki podatkov razporedite podatke v ločene tabele, ki temeljijo na predmetih. Relacijo tabele je mogoče uporabiti za vnovično pridobivanje podatkov, ko jih potrebujete.

Na vrh strani Na vrh strani

Ustvarjanje relacije »ena proti mnogo«

Predstavljajte si na primer, da imate v zbirki podatkov za naročila izdelkov tabeli »Dobavitelji« in »Izdelki«. Dobavitelj lahko dobavlja večje število izdelkov, torej lahko kateri koli dobavitelj v tabeli »Dobavitelji« dobavlja več izdelkov v tabeli »Izdelki«. Relacija med tabelama »Dobavitelji« in »Izdelki« je »ena proti mnogo«.

Primer relacije »ena proti mnogo«

Če želite v načrtu zbirke podatkov ustvariti relacijo »ena proti mnogo«, dodajte primarni ključ na strani relacije »ena« v tabelo na strani relacije »mnogo« kot dodatni stolpec ali stolpce. V tem primeru dodajte stolpec »ID dobavitelja« v tabeli »Dobavitelji« v tabelo »Izdelki«. Access lahko nato uporabi ID številko dobavitelja v tabeli »Izdelki« in poišče ustreznega dobavitelja posameznega izdelka.

Stolpec »ID dobavitelja« v tabeli »Izdelki« se imenuje tuji ključ. Tuji ključ je primarni ključ druge tabele. Stolpec »ID dobavitelja« je tuji ključ v tabeli »Izdelki« in primarni ključ v tabeli »Dobavitelji«.

Seznam elementov podatkov med postopkom načrtovanja

Osnova združevanja tabel v relaciji je vzpostavljanje parov primarnih in tujih ključev. Če niste prepričani, katere tabele naj bi imele skupen stolpec, z določanjem relacije »ena proti mnogo« zagotovite, da bosta dve tabeli dejansko zahtevali skupen stolpec.

Na vrh strani Na vrh strani

Ustvarjanje relacije »mnogo proti mnogo«

Predstavljajte si relacijo med tabelo »Izdelki« in tabelo »Naročila«.

Eno naročilo lahko obsega več izdelkov in en izdelek se lahko pojavi v več naročilih. Za posamezni zapis v tabeli »Naročila« je torej lahko več zapisov v tabeli »Izdelki«. Za posamezni zapis v tabeli »Izdelki« pa je lahko več zapisov v tabeli »Naročila«. Ta relacija med tabelami se imenuje relacija »mnogo proti mnogo«, saj je lahko kateri koli izdelek v več naročilih, v katerem koli naročilu pa je lahko več izdelkov. Če želite med tabelami določiti relacije »mnogo proti mnogo«, je pomembno, da preučite obe strani relacije.

Predmeta dveh tabel – naročila in izdelki – sta v relaciji »mnogo proti mnogo«, pri čemer lahko nastanejo težave. Če želite to razumeti, si predstavljate, kaj bi se zgodilo, če bi poskusili ustvariti relacijo med dvema tabelama z dodajanjem polja »ID izdelka« v tabelo »Naročila«. Če želite v enem naročilu imeti več izdelkov, morate imeti tudi v tabeli »Naročila« več zapisov za naročilo. V vsaki vrstici, ki je povezana s posameznim naročilom, bo torej ponavljali podatke o naročilu – to bi povzročilo neučinkovit načrt, ki lahko vodi do neustreznih podatkov. Podobna težava nastane, če poskusite postaviti polje »ID naročila« v tabelo »Izdelki« – v tabeli »Izdelki« bi bilo več zapisov za en izdelek. Kako rešiti to težavo?

Ustvariti je mogoče tretjo tabelo, ki se običajno imenuje stična tabela, in namesto relacije »mnogo proti mnogo« ustvari dve relaciji »ena proti mnogo«. Primarni ključ iz obeh tabel vstavite v tretjo tabelo, ki zazna vse pojavitve ali primerek relacije.

Relacija »mnogo proti mnogo«

Vsak zapis v tabeli »Podrobnosti o naročilu« je en vrstični element naročila. Primarni ključ te tabele je sestavljen iz dveh polj – tujih ključev iz tabel »Naročila« in »Izdelki«. V tej tabeli kot primarni ključ ni mogoče uporabiti samo polja »ID izdelka«, saj ima lahko eno naročilo več vrstičnih elementov. ID naročila se pojavi v vseh vrstičnih elementih naročila in v tem polju ni enoličnih vrednosti. Tudi polja »ID izdelka« ni mogoče uporabiti, saj se lahko en izdelek pojavi v več različnih naročilih. Oba polja skupaj pa ustvarita enolično vrednost za posamezni zapis.

V zbirki podatkov za prodajo izdelkov tabeli »Naročila« in »Izdelki« nista v neposredni relaciji, ampak sta posredno povezani s tabelo »Podrobnosti o naročilu«. V zbirki podatkov relacijo med naročili in izdelki »mnogo proti mnogo« predstavljajo dve relaciji »ena proti mnogo«:

  • Tabeli »Naročila« in »Podrobnosti o naročilu« sta v relaciji »ena proti mnogo«. Vsako naročilo lahko ima več vrstičnih elementov, vendar je vsak element povezan s samo enim naročilom.
  • Tabeli »Izdelki« in »Podrobnosti o naročilu« sta v relaciji »ena proti mnogo«. Vsak izdelek lahko ima več vrstičnih elementov, toda vsak element se sklicuje samo na en izdelek.

V tabeli »Podrobnosti o naročilu« je mogoče določiti vse izdelke v določenem naročilu. Določiti je mogoče tudi vsa naročila določenega izdelka.

Ko ustvarite tabelo »Podrobnosti o naročilu«, bo seznam tabel in polj morda takšen:

Seznam elementov podatkov med postopkom načrtovanja

Na vrh strani Na vrh strani

Ustvarjanje relacije »ena proti ena«

Ustvariti je mogoče tudi relacijo »ena proti ena«. Predstavljajte si na primer, da želite shraniti dodatne podatke o izdelku, ki jih ne boste potrebovali pogosto in veljajo samo za nekatere izdelke. Ker podatkov ne boste potrebovali pogosto in ker bi vrstični elementi, na katere se dodatni podatki ne nanašajo, ostali prazni, če bi shranili te podatke v tabelo »Izdelki«, jih shranite v ločeno tabelo. Primarni ključ »ID izdelka«, ki je uporabljen v tabeli »Izdelki«, uporabite tudi v tej tabeli. Dodatna tabela in tabela »Izdelki« sta v relaciji »ena proti ena«. Za posamezni zapis v tabeli »Izdelki« obstaja en ujemajoč se zapis v dodatni tabeli. Ko določite tovrstno relacijo, morata imeti obe tabeli skupno polje.

Ko ugotovite, da je v zbirki podatkov treba ustvariti relacijo »ena proti ena«, razmislite o tem, ali lahko podatke iz dveh tabel združite v eno tabelo. Če tega ne želite narediti, ker bi na ta način na primer ustvarili mnogo praznih vrstic, lahko na tem seznamu vidite, kako določiti relacijo med načrtovanjem:

  • Če imata tabeli isti predmet, lahko verjetno nastavite relacijo z istim primarnim ključem v obeh tabelah.
  • Če imata tabeli različne predmete in primarne ključe, izberite eno od tabel (katero koli) in vstavite njen primarni ključ v drugo tabelo kot tuji ključ.

Določanje relacij med tabelami pomaga zagotoviti, da so tabele in stolpci ustrezni. Tabele, ki so v relaciji »ena proti ena« ali »ena proti mnogo«, morajo imeti skupen stolpec ali stolpce. Za tabele v relaciji »mnogo proti mnogo« mora biti ustvarjena tretja tabela.

Na vrh strani Na vrh strani

Podrobnejše določanje načrta

Ko ustvarite želene tabele, polja in relacije, ustvarite vzorčne podatke, izpolnite tabele in poskusite delati s temi podatki tako, da ustvarite poizvedbe, dodate nove zapise in tako dalje. Na ta način je mogoče izpostaviti možne težave – morda boste na primer želeli dodati stolpec, ki ste ga pozabili vstaviti med načrtovanjem, ali namesto ene tabele ustvariti dve tabeli, da se izognete podvojenim podatkom.

Ugotovite, ali lahko s pomočjo zbirke podatkov dobite želene odgovore na vprašanja. Ustvarite grobe osnutke obrazcev in poročil in ugotovite, ali so v njih prikazni želeni podatki. Ugotovite, ali se podatki podvajajo, in spremenite načrt tako, da jih odpravite.

Med preskušanjem začetne zbirke podatkov jo boste verjetno želeli izboljšati. Preverite lahko na primer:

  • Ali ste pozabili ustvariti kakšen stolpec in ali ti podatki sodijo v obstoječe tabele? Če se ti podatki nanašajo na kaj drugega, boste morda morali ustvariti novo tabelo. Ustvarite stolpec za vsak element podatkov, ki mu želite slediti. Če teh podatkov ni mogoče pridobiti z izračunavanjem drugih stolpcev, boste verjetno morali ustvariti nov stolpec.
  • Ali nekaterih stolpcev morda ne potrebujete, ker je mogoče pridobiti podatke v njih z izračunavanjem obstoječih polj? Če je element podatkov mogoče izračunati v drugih obstoječih stolpcih – na primer znižano ceno glede na prodajno ceno – je priporočljivo narediti to in se izogniti ustvarjanju novega stolpca.
  • Ali ste v katero od tabel večkrat vnesli podvojene podatke? Če ste jih, boste verjetno morali ustvariti dve tabeli, ki bodo v relaciji »ena proti mnogo«.
  • Ali ste ustvarili tabele z veliko polji, omejenim številom zapisov in praznimi polji za posamezne zapise? Če jih imate, razmislite o vnovičnem načrtovanju tabele, ki bo imela manj polj in več zapisov.
  • Ali ste vsak element podatkov razdelili v najmanjše uporabne dele? Če želite razvrstiti, poiskati ali izračunati element podatkov ali zanj ustvariti poročilo, ga postavite v svoj stolpec.
  • Ali so v vseh stolpcih podatki o predmetu tabele? Če v stolpcu ni podatkov o predmetu tabele, sodi stolpec v drugo tabelo.
  • Ali so ustvarjene vse relacije med tabelami s skupnimi polji ali s tretjo tabelo? Relaciji »ena proti ena« in »ena proti mnogo« zahtevata skupna polja, relacije »mnogo proti mnogo« pa tretjo tabelo.

Podrobnejše določanje tabele »Izdelki«

Vsak izdelek v zbirki podatkov za prodajo izdelkov sodi v določeno kategorijo, na primer pijače, začimbe ali morska hrana. V tabeli »Izdelki« je mogoče ustvariti polje s kategorijo posameznega izdelka.

Če se po pregledovanju in podrobnejšem določanju načrta zbirke podatkov odločite, da želite shraniti opis in ime kategorije, in v tabelo »Izdelki« dodate polje »Opis kategorije«, morate ponoviti opis kategorije za vsak izdelek v tej kategoriji – to ni dobra rešitev.

Priporočljivo je, da ustvarite novo tabelo s primarnim ključem in predmetom »Kategorije«, ki mu lahko zbirka podatkov sledi. Nato lahko primarni ključ tabele »Kategorije« dodate v tabelo »Izdelki« kot tuji ključ.

Tabeli »Kategorije« in »Izdelki« sta v relaciji »ena proti mnogo«: v kategoriji je lahko več kot en izdelek, izdelek pa lahko sodi samo v eno kategorijo.

Ko pregledujete strukture tabel, bodite pozorni na ponavljajoče se skupine. Predstavljajte si na primer tabelo s temi stolpci:

  • ID izdelka
  • Ime
  • ID izdelka 1
  • Ime 1
  • ID izdelka 2
  • Ime 2
  • ID izdelka 3
  • Ime 3

Vsak izdelek je ponavljajoča se skupina stolpcev, ki se med seboj razlikujejo samo po številki, dodani imenu stolpca. Če ustvarite tako oštevilčene stolpce, je priporočljivo, da znova načrtujte tabelo.

Ta načrt ima več napak. Prisili vas, da omejite število izdelkov. Takoj ko to mejo presežete, morate izvesti zahtevno skrbniško opravilo in v strukturo tabele dodati novo skupino stolpcev.

Druga težava je v tem, da vsi dobavitelji ne dobavljajo vseh izdelkov in prazni stolpci bodo zavzeli dodaten prostor. Najresnejša napaka pri tem načrtu pa je, da oteži izvajanje mnogih opravil, na primer razvrščanje in indeksiranje tabele po ID-ju ali imenu izdelka.

Ko opazite ponavljajoče se skupine, pozorno preučite načrt in namesto ene ustvarite dve tabeli. V zgornjem primeru je bolje uporabiti dve tabeli, eno za dobavitelje in eno za izdelke, ki sta med seboj povezani z ID-jem dobavitelja.

Na vrh strani Na vrh strani

Uporaba pravil normalizacije

Pri naslednjem koraku načrtovanja lahko uporabite pravila za normalizacijo podatkov (imenujejo se tudi pravila normalizacije). S temi pravili je mogoče ugotoviti, ali so tabele pravilno strukturirane. Postopek uporabe pravil med načrtovanjem zbirke podatkov se imenuje normalizacija zbirke podatkov ali samo normalizacija.

Normalizacija je zlasti uporabna, ko določite vse elemente podatkov in dokončate začetni načrt, saj pomaga zagotoviti, da ste elemente podatkov razdelili v ustrezne tabele. Ne more pa zagotoviti, da so ti vstavljeni elementi podatkov pravilni.

Pravila uporabite v določenem zaporedju in z vsakim korakom zagotovite, da načrt ustreza tako imenovanim »običajnim obrazcem«. Pet običajnih obrazcev je splošno sprejetih – od prvega do petega običajnega obrazca. V tem članku so podrobno opisani prvi trije, saj so za načrtovanje večine zbirk podatkov zahtevani samo ti obrazci.

Prvi običajni obrazec

Prvi običajni obrazec določa, da je v vsakem preseku posamezne vrstice in stolpca ena vrednost in nikoli seznam vrednosti. V polje z imenom »Cena« na primer ni mogoče vstaviti več kot eno ceno. Presek vrstic in stolpcev se imenuje tudi celica, v kateri je lahko samo ena vrednost.

Drugi običajni obrazec

Drugi običajni obrazec zahteva, da je vsak stolpec, ki ni ključ, popolnoma odvisen od celotnega primarnega ključa in ne samo dela ključa. To pravilo velja, ko je primarni ključ sestavljen iz več stolpcev. Predstavljajte si na primer, da imate tabelo s primarnim ključem »ID naročila« in »ID izdelka« in temi stolpci:

  • ID naročila (primarni ključ)
  • ID izdelka (primarni ključ)
  • Ime izdelka

Ta načrt krši pravila drugega običajnega obrazca, ker je stolpec »Ime izdelka« odvisen samo od stolpca »ID izdelka«, ne pa tudi »ID naročila«, in torej ni odvisen od celotnega primarnega ključa. Stolpec »Ime izdelka« je treba odstraniti iz tabele, saj sodi v drugo tabelo (»Izdelki«).

Tretji običajni obrazec

Tretji običajni obrazec zahteva, da so od celotnega primarnega ključa odvisni vsi stolpci, ki niso ključ, vendar ti stolpci ne smejo biti odvisni drug od drugega.

Z drugimi besedami lahko to pojasnimo tudi tako, da so vsi stolpci, ki niso ključ, lahko odvisni samo od primarnega ključa. Predstavljajte si na primer tabelo s temi stolpci:

  • ID izdelka (primarni ključ)
  • Ime
  • PMC
  • Popust

Popust je na primer odvisen od predlagane maloprodajne cene (PMC). Ta tabela krši pravilo tretjega običajnega obrazca, saj je stolpec »Popust«, ki ni ključ, odvisen od drugega stolpca »PMC«, ki ni ključ. Neodvisnost stolpcev pomeni, da je mogoče spremeniti vrednost stolpca, ki ni ključ, ne da bi vplivali na drug stolpec. Če spremenite ceno v polju »PMC«, se spremenit tudi popust, kar pomeni, da je kršeno to pravilo. V tem primeru mora biti polje »Popust« premaknjeno v drugo tabelo s ključem polja »PMC«.

Na vrh strani Na vrh strani

Dodatne informacije

Če želite več informacij o osnovah načrtovanja tabel, si oglejte članek Ustvarjanje tabel v zbirki podatkov.

Če želite dodatne informacije o načrtovanju zbirke podatkov, si oglejte te knjige:

  • Hernandez, Michael J. Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design, Second Edition. Addison-Wesley Professional. 2003.
  • Fleming, Candace C. von Halle, Barbara. Handbook of Relational Database Design. Addison-Wesley Professional. 1989.
  • Riordan, Rebecca M. Designing Effective Database Systems. Addison-Wesley Professional. 2005.

Na vrh strani Na vrh strani

 
 
Velja za:
Access 2007