Microsoft Office Access - Poizvedbe v normaliziranih tabelah - članek

Poizvedbe v normaliziranih tabelah v Accessu

Baze podatkov vključujejo nešteto različnih podatkov različnih tipov. Dobre baze so vedno sestavljene iz večih tabel, ki so med seboj tako ali drugače povezane. Takšne tabele se imenujejo normalizirane tabele. Bistvo normaliziranih tabel je, da posamezne tabele vključujejo minimalno količino atributov (op. lastnost oz. tip podatka), ki so logično povezani med seboj. Normalizirane tabele si bomo za lažjo predstavo pogledali na primeru tečajnikov, ki se udeležujejo različnih tečajev računalništva.

 

Za naš primer bomo potrebovali tri tabele. V prvi (Tecajniki) bomo hranili podatke tečajnikov: njihovo ime, priimek, naslov, poštno, številko, šifro tečaja, ki so se ga udeležili in kdaj so se udeležili tega tečaja. Druga tabela (Predmeti) bo služila za razširjanje podatkov o udeležbi tečajnikov pri določenem tečaju: vključevala bo šifro predmeta, ime predmeta in izvajatelja tega predmeta. Tretja tabela (Posta) nam bo pa razširila poštno številko tečajnika s krajem, v katerem tečajnik prebiva. Poglejmo si še grafično ponazoritev vsebine naših treh tabel in s čim bomo razširjali posamezen atribut.

 

Prva je tabela Tecajniki.

 

Access_Poizvedbe_v_normaliziranih_tabelah_1

 

Sledi ji tabela Predmeti. Najbrž ste opazili njeno barvno usklajenost z atributom Sifra_tecaja iz tabele Tecajniki. Iz tega izhaja, da tabela Predmeti razširja atribut Sifra_tecaja.

 

Access_Poizvedbe_v_normaliziranih_tabelah_2

 

In še zadnja tabela Posta. Barva usklajenost ponovno narekuje, da tabela Posta razširja atribut Postna_stevilka iz tabele Tecajniki.

 

Access_Poizvedbe_v_normaliziranih_tabelah_3

 

Preden se lahko lotimo poizvedb v teh tabelah, moramo tabele še normalizirati. Začeli bomo z atributom Sifra_tecaja tabele Tecajniki in tabelo Predmeti. Kliknemo zavihek Orodja za zbirke podatkov in na podrožju Pokaži/skrij izberemo Relacije. Pojavijo se nam naše tri tabele.

 

Access_Poizvedbe_v_normaliziranih_tabelah_4

 

Sedaj bomo povezali atribut Postna_st_tecajnika iz tabele Tecajniki z atributom Postna_stevilka v tabeli Posta. To storimo tako, da z miško povlečemo atribut Postna_st_tecajnika na atribut Postna_stevilka. Tako, ko spustite atribut, se vam odpre pogovorno okno za Urejanje relacij. Preverimo, če so izbrani želeni atributi, obkljukamo možnost Vzpostavi referenčno integriteto in kliknemo Ustvari.

 

Access_Poizvedbe_v_normaliziranih_tabelah_5

 

Opazili boste, da je Access izrisal črno črto med obema atributoma, kar nakazuje relacijo oziroma povezavo med njima.

 

Access_Poizvedbe_v_normaliziranih_tabelah_6

 

Sedaj povežimo še atribut  Sifra_tecaja iz tabele Tecajniki z atributom Sifra_predmeta v tabeli Predmeti. Z miško primemo in povlečemo atribut Sifra_tecaja na atribut Sifra_predmeta, preverimo, če so izbrani pravilni atributi, obkljukamo možnost Vzpostavi referenčno integriteto in kliknemo Ustvari.

 

Access_Poizvedbe_v_normaliziranih_tabelah_7

 

Takole bi morale trenutno izgledati povezave med našimi tabelami. Zdaj, ko smo ustvarili relacije med njimi, se lahko lotimo poizvedb.

 

Kliknemo zavihek Ustvari, na področju Drugo pa izberemo Čarovnik za poizvedbe. Odpre se nam okno čarovnika, kjer po korakih določamo, za kakšno poizvedbobo šlo. Za naš primer bo zadoščalo, če izberemo Čarovnik za preproste poizvedbe in kliknemo V redu. Odpre se nam novo okno, tokrat okno Čarovnika za preproste poizvedbe, kjer lahko izbiramo, katere tabele in atribute bomo vključili v našopoizvedbo. Na tem mestu se bomo ustavili in pojasnili, kaj bi radi naredili.

 

  • Radi bi izpisali podatke o tečajnikih (ime, priimek, naslov, poštna številka, kraj).
  • Prvi korak bi radi razširili s tem, da bi izpisali samo podatke tečajnikov, ki so se udeležili tečaja Microsoft Office.
  • V tretjem koraku pa bi radi izpisali samo imena in priimke tečajnikov ter njihov kraj bivanja, ki so se kadarkoli udeležili tečaja pri izvajateljici tečaja Tini.

 

1. Naša prva poizvedba bo izgledala samo kot izbiranje atributov, ki naj jih Accessprikaže. Atribute lahko izbirate naključno, ampak vam zaradi preglednosti priporočam, da jih izberete v zaporedju, ki se vam bo zdelo najbolj pregledno. Naše zaporedje bo takšno: iz tabele Tecajniki bomo izbrali Ime_tecajnika, Priimek_tecajnika, Naslov_tecajnika, Postna_st_tecajnika, iz tabele Posta pa bomo izbrali samo Posta_tecajnika.

 

Kliknemo Naprej, izberemo Podrobnosti in kliknemo Naprej. Svojo poizvedbo lahko preimenujemo ali pa obdržimo privzeto poimenovanje. Izberemo Odpreti poizvedbo in si ogledati informacije ter kliknemo Dokončaj.

 

Access_Poizvedbe_v_normaliziranih_tabelah_8

 

Access nam je izpisal želene podatke. Nadaljujmo z drugo poizvedbo.

 

2. Podatke posameznega tečajnika že imamo iz prejšnje poizvedbe, zato bomoAccessu podali pogoj, glede na katerega naj izpiše ustrezne podatke. Naš pogoj bo, da naj izpiše vse tečajnike, ki so se udeležili tečaja Microsoft Office (predpostavimo, da šifre predmeta iz tabele Tecajniki ne poznamo).

 

Z desno miškino tipko kliknemo zavihek naše poizvedbe (v tem primeru je to Tecajniki poizvedba) in izberemo Pogled načrta (op. tisti, ki ste vešči pisanja SQL stavkov, lahko poizkusite narediti takšne poizvedbe v Pogledu SQL, ki se nahaja na istem seznamu).

 

Access_Poizvedbe_v_normaliziranih_tabelah_9

 

Opazimo, da je Access spremenil pogled in nam ponovno prikazal naše uporabljene tabele in atribute. Če pogledamo podatke, vidimo, da zaenkrat nimamo nikjer podatka o tem, katerega tečaja se je udeležil posamezen tečajnik. V ta namen bomo dodali nov atribut – Ime_predmeta.

 

Preden se lotimo dodajanja pogoja naši poizvedbi, moramo v poizvedbo vključiti še tabelo Predmeti. To storimo tako, da kliknemo zavihek Načrt, na področju Priprava poizvedbe pa kliknemo Pokaži tabelo. Odpre se nam pogovorno okno, v katerem lahko izberemo, katere tabele želimo prikazovati. Izberemo tabelo Predmeti, kliknemo Dodaj in nato Zapri.

 

Access_Poizvedbe_v_normaliziranih_tabelah_10

 

Pod shemo tabel lahko opazite sledečo situacijo.

 

Access_Poizvedbe_v_normaliziranih_tabelah_11

 

Nas zanimata vrstici Polje in Pogoj. Začnimo pri Polju. Pri tem velja omeniti eno stvar – če kliknete na puščico v prvem praznem stolpcu, se vam odpre seznam, ki na prvi pogled morda nima smisla. Opazili boste dva tipa zapisov, ki pomenita različni stvari:

 

  • Tecajniki.* – zvezdica (*) predstavlja vse atribute tabele Tecajniki
  • Tecajniki.Ime_tecajnika – zapis predstavlja samo atribut Ime_tecajnika tabele Tecajniki

 

Dodajmo naš atribut. Kliknite puščico v prvem praznem stolpcu in na seznamu izberite Predmeti.* (predstavlja celotno tabelo). Opazili boste, da je Accessprepisal ime izbrane tabele v vrstico Tabela. Ker enega pogoja ne moremo nastavljati za eno tabelo, bomo dodali atribut Ime_predmeta. Ponovno kliknemo puščico in opazimo, da je seznam veliko krajši kot prej, na njem pa so samo atributi izbrane tabele (v tem primeru tabele Predmeti). Izberemo atribut Ime_predmeta.

 

Premaknemo se v vrstico Pogoj in vtipkamo želen pogoj. Pogoj je vezan na točno določen atribut, tokrat na Ime_predmeta, kar pomeni, da če bomo v pogoj vpisali »Jožica« ali pa recimo »8216«, nam poizvedba ne bo vrnila nobenih rezultatov, kajti noben zapis v tabeli ne ustreza našemu pogoju. Da nam poizvedba vrne ustrezne podatke, določimo kot pogoj »Microsoft Word«. Po želji lahko obkljukamo ali odkljukamo možnost Pokaži, ki vpliva na izpis atributa (tudi, če je izpis atributa skrit, poizvedba še vedno upošteva pogoje tega atributa). Mi smo se odločili, da bomo podatke atributa Ime_predmeta skrili, zato odkljukamo možnost Pokaži.

 

Access_Poizvedbe_v_normaliziranih_tabelah_12

 

Za ogled poizvedbe z desno miškino tipko kliknemo zavihek Tecajniki Poizvedba in izberemo Pogled podatkovnega lista.

 

Access_Poizvedbe_v_normaliziranih_tabelah_13

 

3. Zdaj pa še na hitro naredimo našo zadnjo poizvedbo. Z desnim klikom na zavihek Tecajniki Poizvedba izberemo Pogled načrta. Ker želimo izpisati samo imena in priimke tečajnikov, ki so se udeležili tečaja pri izvajateljici Tini, bomo odkljukali atribute Naslov_tecajnika, Postna_st_tecajnika in Posta_tecajnika. Pri zadnjem atributu (Ime_predmeta), bomo obdržali tabelo, iz katere prihaja (Predmeti), sam atribut pa bomo s klikom v polje atributa in klikom na puščico spremenili v Izvajatelj. Pogoj spremenimo v “Tina”.

 

Access_Poizvedbe_v_normaliziranih_tabelah_14

 

Z desnim klikom na zavihek Tecajniki Poizvedba izberemo Pogled podatkovnega lista in si ogledamo rezultate naše poizvedbe.

 

Access_Poizvedbe_v_normaliziranih_tabelah_15

 

Kot smo videli, imamo povsem proste roke pri ustvarjanju poizvedb – lahko izbiramo poljubne atribute, jim določamo pogoje, določamo ali naj bodo podatki skriti ali ne itd. Normalizirane tabele se tako pojavljajo povsod, kjer imamo kakršno koli bazo podatkov – pa naj bo to baza artiklov v prodaji ali pa baza članov knjižnega kluba. Zakaj se normalizirane tabele pojavljajo povsod? Zato, ker je delo z njimi enostavno ter pregledno, saj se ne izgubljamo v morju podatkov v eni sami obsežni tabeli.

 

Vse to in še več se naučite na naših Access računalniških tečajih.

 

Racunalniski_tecaji_Access_tecaji_gumb2