Vodnik po relacijah tabel

Vodnik po relacijah tabel

Eden od ciljev dobrega načrta zbirke podatkov je odstraniti odvečne podatke (podvojene podatke). Če želite doseči ta cilj, podatke razdelite v več tabel na osnovi zadeve tako, da je vsak podatek predstavljen samo enkrat. Programu Access zagotovite sredstva, s katerimi lahko razdeljene informacije znova združi: to naredite tako, da skupna polja postavite v sorodne tabele. Če želite ta korak pravilno izpolniti, pa morate razumeti relacije med tabelami in nato relacije navesti v zbirki podatkov.

V tem članku

Uvod

Vrste relacij tabele

Zakaj ustvariti relacije tabele?

Razumevanje referenčne integritete

Ogled relacij tabele

Uvod

Ko ste v zbirki podatkov ustvarili tabelo za vsako zadevo, morate programu Access omogočiti, da informacije znova združi. To naredite tako, da skupna polja postavite v sorodne tabele, in z določanjem relacij med tabelami. Nato lahko ustvarite poizvedbe, obrazce in poročila, ki prikažejo informacije iz več tabel hkrati. Obrazec, prikazan tukaj, na primer prikazuje informacije iz več tabel hkrati:

Obrazec »Naročila«, ki prikazuje sorodne informacije iz petih tabel hkrati

1. Podatki v tem obrazcu so iz tabele »Stranke«,

2. tabele »Naročila«,

3. tabele »Izdelki«

4. in tabele »Podrobnosti o naročilu«.

Ime stranke v polju Zaračunaj pridobite iz tabele »Stranke«, vrednosti »ID naročila« in »Datum naročila« so iz tabele »Naročila«, ime izdelka je iz tabele »Izdelki« in vrednosti »Cena enote« ter »Količina« pa so iz tabele »Podrobnosti o naročilu«. Te tabele so povezane druga z drugo na več načinov, da so v obrazcu združene informacije iz vsake od njih.

V zgornjem primeru morajo biti polja v tabelah usklajena, da prikažejo informacije o istem naročilu. Uskladitev dosežemo z relacijami tabel. Relacija tabele deluje tako, da poveže ujemajoče se podatke v poljih ključa – po navadi polje z istim imenom v obeh tabelah. V večini primerov so ujemajoča se polja, polje s primarnim ključem ene tabele, kar je enoličen identifikator vsakega zapisa in polje s tujim ključem v drugi tabeli. Zaposleni na primer so lahko povezani z naročili, za katere so odgovorni tako, da ustvarite relacijo tabele med polji »IDZaposlenega« v tabelah »Zaposleni« in »Naročila«.

»IDZaposlenega«, ki se uporablja kot primarni ključ v tabeli »Zaposleni« in kot tuji ključ v tabeli »Naročila«.

1. »IDZaposlenega« se prikaže v obeh tabelah – kot primarni ključ

2. in kot tuji ključ.

Na vrh strani

Vrste relacij tabele

V Accessu poznamo tri vrste relacij tabele.

  • Relacija »ena proti mnogo«

    Zamislite si na primer zbirko podatkov, ki bi sledila naročilom in vključuje tabelo »Stranke« in »Naročila«. Stranka lahko opravi neomejeno število naročil. Iz tega sledi, da je za vsako stranko v tabeli »Stranke«, lahko prikazanih veliko naročil v tabeli »Naročila«. Relacija med tabelo »Stranke« in tabelo »Naročila« je relacija »ena proti mnogo«.

    Če želite v načrtu zbirke podatkov predstaviti relacijo »ena proti mnogo«, vzemite primarni ključ na strani »ena« relacije in ga dodajte kot dodatno polje ali polja v tabelo na strani »mnogo« relacije. V tem primeru tako dodate novo polje  – polje ID iz tabele »Stranke« – v tabelo »Naročila« in ga poimenujete »ID stranke«. Access lahko uporabi številko »ID stranke« v tabeli »Naročila«, da za vsako naročilo poišče ustrezno stranko.

  • Relacija »mnogo proti mnogo«

    Zdaj si oglejmo relacijo med tabelama »Izdelki« in »Naročila«. Eno naročilo lahko vključuje več kot en izdelek. Po drugi strani se lahko isti izdelek pojavi v več naročilih. Zato lahko za vsak zapis v tabeli »Naročila« ustreza več zapisov v tabeli »Izdelki«. Poleg tega lahko vsak zapis v tabeli »Izdelki« ustreza več zapisom v tabeli »Naročila«. To vrsto relacije imenujemo »mnogo proti mnogo«. Če želite odkriti obstoječe relacije »mnogo proti mnogo« med tabelami, upoštevajte, da si je pomembno pogledati obe strani relacije.

    Če želite predstaviti relacijo »mnogo proti mnogo«, morate ustvariti tretjo tabelo, ki jo imenujemo tudi stična tabela in ki relacijo »mnogo proti mnogo« razdeli v dve relaciji »ena proti mnogo«. Primarni ključ iz obeh tabel vstavite v tretjo tabelo. V tretji tabeli je tako zabeležena vsaka ponovitev ali primerek relacije. Tabeli »Naročila« in »Izdelki« imata na primer relacijo »mnogo proti mnogo«, ki jo določite z ustvarjanjem dveh relacij »ena proti mnogo« do tabele »Podrobnosti naročila«. Eno naročilo ima lahko več izdelkov, vsak izdelek pa se lahko pojavi v več naročilih.

  • Relacija »ena proti ena«

    V relaciji »ena proti ena« ima lahko vsak zapis iz prve tabele le en ujemajoči se zapis v drugi tabeli, vsak zapis v drugi tabeli pa ima lahko le en ujemajoči se zapis v prvi tabeli. Ta relacija ni pogosta, ker so informacije, ki so povezane na tak način, pogosto shranjene v isti tabeli. Relacijo »ena proti ena« lahko uporabite, če želite razdeliti tabelo s številnimi polji, ker želite iz varnostnih razlogov izolirati en del tabele, ali shraniti informacije, ki veljajo le za podnabor glavne tabele. Ko določite takšno relacijo, morata imeti obe tabeli skupno polje.

Na vrh strani

Zakaj ustvariti relacije tabele?

Relacije tabele lahko ustvarite neposredno v oknu z relacijami ali če povlečete polje iz podokna Seznam polj. Access uporablja relacije tabele za način združevanja tabel, ko jih je treba uporabiti v predmetu zbirke podatkov. Več razlogov je, zakaj morate ustvariti relacije tabele, preden ustvarite druge predmete zbirke podatkov, na primer obrazce, poizvedbe ali poročila.

  • Relacije tabele obveščajo načrte poizvedb

    Če želite delati z zapisi iz več tabel, morate ponavadi ustvariti poizvedbo, s katero združite tabele. Poizvedba deluje tako, da poišče vrednosti v polju s primarnim ključem prve tabele, ki se ujemajo z vrednostmi v polju s tujim ključem v drugi tabeli. Če želite na primer, da vrne vrstice, v katerih so za vsako stranko navedena vsa naročila, ustvarite poizvedbo, s katero na osnovi polja »ID stranke« združite tabeli »Stranke« in »Naročila«. V oknu z relacijami lahko ročno navedete polja, ki jih želite združiti. Če imate med tabelami že določeno relacijo, Access na osnovi relacije tabele določi privzeto združevanje. Poleg tega, če uporabite čarovnika za poizvedbe, vam Access nudi informacije, ki jih je zbral iz relacij tabele, ki ste jih že določili, da vas obvesti o izbiri in da vnaprej napolni nastavitve lastnosti z ustreznimi vrednostmi.

  • Relacije tabele obveščajo načrte obrazcev in poročil

    Ko naredite načrt obrazca ali poročila, Access prikaže informacije, ki jih je zbral iz relacij tabele, ki ste jih že določili, da vas obvesti o izbiri in da vnaprej napolni nastavitve lastnosti z ustreznimi vrednostmi.

  • Relacije tabele so osnova, s katero lahko vsilite referenčno integriteto, da preprečite osamljene zapise v zbirki podatkov. Osamljeni zapis je zapis, ki se sklicuje na drug zapis, ki ne obstaja – na primer zapis o naročilih, ki se sklicuje na neobstoječ zapis o strankah.

    Ko načrtujete zbirko podatkov, informacije razdelite v tabele, od katerih ima vsaka primarni ključ. Nato v sorodne tabele, ki se sklicujejo na te primarne ključe, dodate tuje ključe. Ti pari tujega in primarnega ključa oblikujejo osnovo za relacije tabele in poizvedbe z več tabelami. Pomembno je, da so sklici primarnega in tujega ključa sinhronizirani. Referenčna integriteta je odvisna od relacij tabele in zagotovi, da so sklici sinhronizirani.

Na vrh strani

Razumevanje referenčne integritete

Ko oblikujete zbirko podatkov, razdelite informacije iz zbirke podatkov v več tabel, ki temeljijo na zadevi, da zmanjšate nepotrebne podatke. Nato omogočite Access, da znova združi podatke, tako da umestite skupna polja v povezane tabele. Ko želite na primer predstaviti relacijo »ena proti mnogo«, vzamete primarni ključ iz tabele »ena« in ga dodate kot dodatno polje v tabelo »mnogo«. Pri združevanju podatkov Access vzame vrednost v tabeli »mnogo« in poišče ustrezno vrednost v tabeli »ena«. Na ta način se vrednosti v tabeli »mnogo« sklicujejo na ustrezne vrednosti v tabeli »ena«.

Recimo, da je med pošiljatelji in naročili relacija »ena proti mnogo«, pošiljatelje pa želite izbrisati. Če ima pošiljatelj, ki ga želite izbrisati naročila v tabeli »Naročila«, bodo naročila »osamljena«, ko izbrišete zapis »Pošiljatelj«. Naročila bodo vsebovala »ID pošiljatelja«, vendar ID ne bo več veljaven, ker zapis, na katerega se sklicuje več ne obstaja.

Namen referenčne integritete je preprečevanje osamljenih zapisov in ohranitev sinhroniziranih sklicev tako, da ne pride do takih hipotetičnih primerov.

Referenčno integriteto vsilite tako, da jo omogočite v relaciji tabele (glejte Vsiljevanje referenčne integritete za navodila po korakih). Ko je referenčna integriteta vzpostavljena, Access zavrne vse operacije, ki kršijo referenčno integriteto za relacijo tabele. To pomeni, da Access zavrne tako posodobitve, ki spremenijo cilj sklicevanja, kot tudi brisanja, s katerimi se odstrani cilj sklicevanja. Lahko se zgodi, da je treba povsem utemeljeno spremeniti primarni ključ pošiljatelja, ki ima naročila v tabeli »Naročila«. V takih primerih mora Access z eno operacijo samodejno posodobiti vse vrstice. S tem Access zagotovi, da se posodobitev dokonča v celoti, da zbirka podatkov ni v nedoslednem stanju, kjer so nekatere vrstice posodobljene, nekatere pa ne. Zaradi tega je v programu Access podprta možnost Kaskadno posodabljanje polj v relaciji. Ko vzpostavite referenčno integriteto, izberite možnost Kaskadno posodabljanje polj v relaciji in posodobite primarni ključ, Access samodejno posodobi vsa polja, ki se sklicujejo na primarni ključ.

Možno je tudi, da je treba vrstico in vse sorodne zapise izbrisati – na primer zapis »Pošiljatelj« in vsa podobna naročila za tega pošiljatelja. Zaradi tega je v programu Access podprta možnost Kaskadno brisanje polj v relaciji. Ko referenčno integriteto vsilite in izberete možnost Kaskadno brisanje polj v relaciji in nato zapis na strani primarnega ključa relacije izbrišete, Access samodejno izbriše vse zapise, ki se sklicujejo na primarni ključ.

Na vrh strani

Ogled relacij tabele

Če si želite ogledati relacije tabele, na zavihku Orodja zbirke podatkov kliknite Relacije. Odpre se okno z relacijami in prikažejo se vse obstoječe relacije. Če še ni določena nobena relacija tabele in okno z relacijami prvič odprete, vas Access pozove, da v okno dodate tabelo ali poizvedbo.

Odpiranje okna z relacijami

  1. Kliknite zavihek Datoteka in nato Odpri.

  2. Izberite in odprite zbirko podatkov.

  3. Na zavihku Orodja za zbirke podatkov v skupini Relacije kliknite Relacije.

    Če zbirka podatkov vsebuje relacije, se prikaže okno z relacijami. Če zbirka podatkov ne vsebuje relacij in prvič odpirate okno z relacijami, se odpre pogovorno okno Pokaži tabelo. Kliknite Zapri, če želite zapreti pogovorno okno.

  4. Na zavihku Načrt v skupini Relacije kliknite Vse relacije.

    S tem prikažete vse opredeljene relacije v zbirki podatkov. Bodite pozorni, da skrite tabele (tabele, za katere v pogovornem oknu Lastnosti potrdite polje Skrita) in njihove relacije ne bodo prikazane, razen če v pogovornem oknu Možnosti krmarjenja potrdite polje Pokaži skrite predmete.

Relacijo tabele predstavlja črta, ki povezuje tabele v oknu z relacijami. Relacija, ki ne vsili referenčne integritete je prikazana kot tanka črta med skupnimi polji, v katerih je relacija podprta. Ko izberete relacijo tako, da kliknete črto, je ta prikazana odebeljeno, da je razvidno, da ste jo izbrali. Če vsilite referenčno integriteto za to relacijo, je črta prikazana odebeljeno na koncu obeh strani. Poleg tega se nad odebeljenim delom črte na eni strani relacije prikaže številka 1 in znak za neskončnost () nad odebeljenim delom črte na drugi strani.

Ko je okno z relacijami aktivno, lahko na traku izbirate med temi ukazi:

Na zavihku Načrt v skupini Orodja:

  • Urejanje relacij    Odpre se pogovorno okno Urejanje relacij . Ko izberete relacijsko črto, lahko kliknete Urejanje relacij, če želite spremeniti relacijo tabele. Lahko tudi dvokliknete relacijsko črto.

  • Počisti postavitev    Vse tabele in relacije odstrani iz prikaza v oknu z relacijami. S tem ukazom samo skrijete tabele in relacije – jih ne izbrišete.

  • Poročilo o relacijah    Ustvari poročilo, ki prikaže tabele in relacije v zbirki podatkov. Poročilo pokaže samo tabele in relacije, ki niso skrite v oknu z relacijami.

Na zavihku Načrt v skupini Relacije:

  • Pokaži tabelo    Odpre se pogovorno okno Pokaži tabelo, kjer lahko izberete tabele in poizvedbe, ki si jih boste ogledali v oknu z relacijami.

  • Skrij tabelo    Skrije izbrano tabelo v oknu z relacijami.

  • Neposredne relacije    Prikaže vse relacije in sorodne tabele, če že niso prikazane, izbrane tabele v oknu z relacijami.

  • Vse relacije    V oknu z relacijami prikaže vse relacije in sorodne tabele v zbirki podatkov. Upoštevajte, da skrite tabele (tabele, za katere v pogovornem oknu Lastnosti tabele potrdite polje Skrita) in relacije ne bodo prikazane, razen, če v pogovornem oknu »Možnosti krmarjenja« ni izbrana možnost »Pokaži skrite predmete«.

  • Zapri    Okno z relacijami se zapre. Če ste naredili kaj sprememb pri postavitvi okna z relacijami, boste vprašani, ali želite spremembe shraniti.

Na vrh strani

Razširite poznavanje Officea
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×