Relacija v Access vam pomaga kombinirati podatke iz dveh različnih tabel. Vsako relacijo sestavljajo polja v dveh tabelah s pripadajočimi podatki. Tako imate lahko polje »IDizdelka« v tabeli »izdelki« in v tabeli »PodrobnostiNaročila«. Ima vsak zapis v tabeli »PodrobnostiNaročila« ima »IDizdelka«, ki ustreza zapisu v tabeli »Izdelki« z istim poljem »IDizdelka«.
Ko uporabite povezane tabele v poizvedbi, relacija omogoča, da Access določi, katere zapise iz vsake tabele lahko združite v naboru rezultatov. Relacija lahko tudi pomaga preprečiti manjkajoče podatke, tako da se sinhronizirajo tudi izbrisani podatki, kar se imenuje referenčna integriteta.
Preden začnete delati z relacijami, morate razumeti koncepte v ozadju. Če želite več informacij, glejte članka Vodnik po relacijah tabel in Uvod v relacije tabel.
V tem članku
Pregled
V Accessovi zbirki podatkov ustvarite relacijo tabele na enega od teh načinov:
-
V oknu »Relacija« dodate tabele, med katerimi želite ustvaqriti relacije, in nato povlečete polje, za katerega ustvarite relacijo iz ene tabele v drugo.
-
Povlecite polje na podatkovni list tabele iz podokna Seznam polj.
Ko ustvarite relacijo med tabelami, imajo skupna polja lahko drugačna imena, čeprav imajo pogosto enaka. Skupna polja morajo biti istega podatkovnega tipa. Če je polje s primarnim ključem polje »Samoštevilo«, je lahko polje s tujim ključem tudi polje »Število«, če imata obe polji enako lastnost VelikostPolja. Poiščete lahko na primer ujemajoča se polja »Samoštevilo« in »Število«, če je lastnost VelikostPolja obeh števil dolgo celo število. Kadar sta obe skupni polji številski, morata imeti enake nastavitve lastnosti VelikostPolja.
Ustvarjanje relacije tabele v oknu z relacijami
-
Na zavihku Orodja za zbirke podatkov v skupini Relacije kliknite Relacije.
-
Na zavihku Načrt relacij v skupini Relacije kliknite Dodaj tabele.
-
Izberite nekaj tabel ali poizvedb in nato kliknite Dodaj. Ko ste končali z dodajanjem tabel in poizvedb na dokument z relacijami, kliknite Zapri.
-
Povlecite polje (po navadi polje s primarnim ključem) iz ene tabele v skupno polje (polje s tujim ključem) v drugi tabeli. Če želite povleči več polj, pritisnite tipko CTRL, kliknite želena polja in jih nato povlecite.
Prikaže se pogovorno okno Urejanje relacij. -
Preverite, ali so prikazana imena polj skupna polja za relacijo. Če ime polja ni pravilno, kliknite ime polja in na seznamu izberite ustrezno polje.Vzpostavljanje referenčne integritete.
Če želite vzpostaviti referenčno integriteto za to relacijo, potrdite polje Vzpostavi referenčno integriteto. Če želite več informacij o referenčni integriteti, glejte razdelek -
Kliknite Ustvari.
Access nariše črto relacije med dvema tabelama. Če je potrjeno potrditveno polje Vzpostavi referenčno integriteto, je črta na vsakem koncu odebeljena. Če je potrjeno potrditveno polje Vzpostavi referenčno integriteto, se nad enim koncem odebeljene črte relacije prikaže število 1, nad drugim koncem odebeljene črte relacije pa se prikaže znak za neskončnost (∞), kot je prikazano v spodnjem primeru.
Opombe:
-
Če želite ustvariti relacijo »ena proti ena« Obe skupni polji (običajno polji s primarnim in tujim ključem) morata imeti enolična indeksa. To pomeni, da naj bo lastnost Indeksirano teh polj nastavljena na Da (podvojeni vnosi niso dovoljeni). Če imata obe polji enoličen indeks, Access ustvari relacijo »ena proti ena«.
-
Če želite ustvariti relacijo »ena proti mnogo« Polje na strani »ena« (običajno primarni ključ) relacije mora imeti enoličen indeks. To pomeni, da morate lastnost Indeksirano za to polje nastaviti na Da (podvojeni vnosi niso dovoljeni). Polje na strani »mnogo« pa ne bi smelo imeti enoličnega indeksa. Lahko ima indeks, če dovoljuje podvojene vnose. To pomeni, da morate lastnost Indeksirano za to polje nastaviti na Ne ali Da (podvojeni vnosi so dovoljeni). Kadar ima eno polje enoličen indeks drugo pa ne, Access ustvari relacijo »ena proti mnogo«.
-
Ustvarjanje relacije tabele v podoknu »Seznam polj« za dodajanje polja
Polje lahko dodate v obstoječo tabelo, ki je odprta v pogledu podatkovnega lista, tako da ga povlečete iz podokna Seznam polj. V podoknu Seznam polj so prikazana polja, ki so na voljo v povezanih tabelah, in tudi polja, ki so na voljo v drugih tabelah.
Ko polje povlečete iz »druge« (nesorodne) tabele in nato dokončate čarovnika za iskanje, je nova relacija »ena proti mnogo« samodejno ustvarjena med tabelo v podoknu Seznam polj in tabelo, v katero ste polje povlekli. Relacija, ki jo ustvari Access, privzeto ne vsili referenčne integritete. Če želite vsiliti referenčno integriteto, morate urediti relacijo. Če želite več informacij, glejte Urejanje relacije.
Odpiranje tabele v pogledu podatkovnega lista
-
V podoknu za krmarjenje dvokliknite tabelo.
Odpiranje podokna »Seznam polj«
-
Pritisnite ALT+F8. Prikaže se podokno Seznam polj.
V podoknu Seznam polj so prikazane vse druge tabele v zbirki podatkov, združene v kategorije. Ko v pogledu podatkovnega lista delate v tabeli, Access prikaže polja v eni od dveh kategorij v podoknu Seznam polj: Polja, ki so na voljo v povezanih tabelah in Polja, ki so na voljo v ostalih tabelah. Prva kategorija prikazuje vse tabele, ki so v relaciji s tabelo, s katero trenutno delate. Druga tabela prikazuje vse tabele, s katerimi tabela nima relacij.
Ko v podoknu Seznam polj kliknete znak plus (+), se ob imenu tabele prikaže seznam vseh polj, ki so na voljo v tej tabeli. Če želite v tabelo dodati polje, povlecite želeno polje iz podokna Seznam polj v tabelo v pogledu podatkovnega lista.
Dodajanje polja in ustvarjanje relacije v podoknu s seznamom polj
-
Ko je tabela odprta v pogledu podatkovnega lista, pritisnite ALT+F8. Prikaže se podokno Seznam polj.
-
Če želite prikazati seznam polj v tabeli, v razdelku Polja, ki so na voljo v ostalih tabelah kliknite znak plus (+) ob imenu tabele.
-
Povlecite želeno polje iz podokna Seznam polj v tabelo, ki je odprta v pogledu podatkovnega lista.
-
Ko se prikaže vrstica za vstavljanje, polje spustite na ustrezno mesto.
Zažene se Čarovnik za iskanje.
-
Če želite dokončati korake v Čarovniku za iskanje, sledite navodilom.
Polje se prikaže v tabeli v pogledu podatkovnega lista.
Ko polje povlečete iz »druge« (nesorodne) tabele in nato dokončate čarovnika za iskanje, je nova relacija »ena proti mnogo« samodejno ustvarjena med tabelo v podoknu Seznam polj in tabelo, v katero ste polje povlekli. Relacija, ki jo ustvari Access, privzeto ne vsili referenčne integritete. Če želite vsiliti referenčno integriteto, morate urediti relacijo. Če želite več informacij, glejte Urejanje relacije.
Urejanje relacije
Relacijo spremenite tako, da jo izberete v oknu »Relacije« in jo nato uredite.
-
Kazalec pazljivo postavite tako, da pokaže na črto relacije, in nato jo kliknite, da jo izberete.
Izbrana črta relacije je prikazana odebeljeno.
-
Ko je izbrana črta relacije, jo dvokliknite.
ali
Na zavihku Načrt relacij v skupini Orodja kliknite Urejanje relacij.
Prikaže se pogovorno okno Urejanje relacij.
Odpiranje pogovornega okna »Urejanje relacij«
-
Na zavihku Orodja za zbirke podatkov v skupini Relacije kliknite Relacije.
-
Na zavihku Načrt relacij v skupini Relacije kliknite Vse relacije.
Prikažejo se vse relacije s črtami relacij. 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«.
-
Kliknite črto relacije za relacijo, ki jo želite spremeniti. Izbrana črta relacije je prikazana odebeljeno.
-
Dvokliknite črto relacije.
- ali -
Na zavihku Načrt relacij v skupini Orodja kliknite Urejanje relacij.
Odpre se pogovorno okno Urejanje relacij.
-
Spremenite relacijo in kliknite V redu.
V pogovornem oknu Urejanje relacij lahko spremenite relacijo tabele. Spremenite lahko tabele, poizvedbe ali polja na kateri koli strani relacije. Nastavite lahko tudi vrsto stika ali vzpostavite referenčno integriteto in izberete kaskadno možnost. Če želite več informacij o vrsti stika in kako jo nastaviti, glejte Nastavljanje vrste stika. Če želite več informacij o vzpostavljanju referenčne integritete in izbiranju kaskadne možnosti, glejte Vzpostavljanje referenčne integritete.
Nastavljanje vrste stika
Ko določite relacijo tabele, bodo dejstva o relaciji obvestila načrte poizvedb. Če na primer določite relacijo med dvema tabelama in nato ustvarite poizvedbo, v kateri sta uporabljeni dve tabeli, Access samodejno na osnovi polj navedenih v relaciji izbere privzeti ustrezni polji. Začetne privzete vrednosti lahko preglasite, vendar se bodo vrednosti, ki jih ponudi relacija, izkazale za prave. Ker je iskanje ustreznih podatkov in združevanje podatkov iz nekaj tabel nekaj, kar boste pogosto delali v skoraj vseh razen najpreprostejših zbirkah podatkov, vam lahko nastavitev privzetih vrednosti z ustvarjanjem relacij prihrani čas.
Poizvedba za več tabel združi podatke iz več tabel tako, da v skupnih poljih poveže ustrezne vrednosti. Postopek, ki poveže ali združi ustrezne vrednosti, se imenuje stik. Recimo, da želite prikazati naročila strank. Ustvarite poizvedbo, ki v polju »ID stranke« združi tabeli »Stranke« in »Naročila«. V rezultatu poizvedbe so podatki o strankah in naročilih samo iz tistih vrstic, ki se ujemajo.
Ena od vrednosti, ki jih lahko navedete za vsako relacijo je vrsta združevanje. Vrsta združevanja Accessu pove, kateri zapisi naj bodo vključeni v rezultat poizvedbe. Znova vzemimo na primer poizvedbo, ki v skupnih poljih, ki predstavljajo ID stranke, združi tabeli »Stranke« in »Naročila«. S privzeto vrsto združevanja (z imenom notranje združevanje) poizvedba vrne samo vrstice »Stranka« in »Naročilo«, kjer so skupna polja enaka (pravimo jim tudi združena polja).
Recimo, da želite vključiti vse stranke – tudi tiste, ki niso še ničesar naročile. Če želite to doseči, morate spremeniti vrsto združevanja iz notranjega združevanja v tako imenovano levo zunanje združevanje. Levo zunanje združevanje vrne vse tiste vrstice v tabeli, ki so na levi strani relacije, in le tiste, ki se ujemajo z vrsticami v tabeli na desni strani. Desno zunanje združevanje vrne vse tiste vrstice, ki so na desni in samo tiste, ki so ustrezne na levi.
Opomba: V tem primeru se »levo« in »desno« nanaša na položaj tabel v pogovornem oknu Urejanje relacij in ne v oknu z relacijami.
Razmislite o tem, kakšen rezultat boste običajno želeli pridobiti v poizvedbi, ki združi tabele v relaciji, in temu ustrezno nastavite vrsto stika.
Nastavljanje vrste stika
-
V pogovornem oknu Urejanje relacij kliknite Vrsta stika.
Odpre se pogovorno okno Lastnosti stika.
-
Izberite svojo izbiro in kliknite V redu.
V tej tabeli (uporabljeni sta tabeli »Stranke« in »Naročila«) so prikazane tri izbire, prikazane v pogovornem oknu Lastnosti stika, vrsta stika, ki je v njih uporabljena, in ali so za vsako tabelo vrnjene vse vrstice ali ujemajoče se vrstice.
Izbira |
Stik relacije |
Leva tabela |
Desna tabela |
---|---|---|---|
1. Vključi samo vrstice, kjer so polja, ki so v stiku, iz obeh tabel enaka. |
Notranji stik |
Ujemajoče se vrstice |
Ujemajoče se vrstice |
2. Vključi VSE zapise iz tabele »Stranke« in samo tiste zapise iz tabele »Naročila«, pri katerih so polja v stiku enaka. |
Levi zunanji stik |
Vse vrstice |
Ujemajoče se vrstice |
3. Vključi VSE zapise iz tabele »Naročila« in samo tiste zapise iz tabele »Stranke«, pri katerih so polja v stiku enaka. |
Desni zunanji stik |
Ujemajoče se vrstice |
Vse vrstice |
Ko izberete možnost 2 ali 3, je puščica prikazana na črti relacije. Puščica kaže proti stranskemu delu relacije, ki prikazuje le ujemajoče se vrstice.
Spreminjanje v pogovornem oknu »Lastnosti stika«
-
Na zavihku Orodja za zbirke podatkov v skupini Relacije kliknite Relacije.
-
Na zavihku Načrt relacij v skupini Relacije kliknite Vse relacije.
Prikažejo se vse tabele z relacijami, ki prikazujejo črte relacij. 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«. -
Kliknite črto relacije za relacijo, ki jo želite spremeniti. Izbrana črta relacije je prikazana odebeljeno.
-
Dvokliknite črto relacije. Odpre se pogovorno okno Urejanje relacij.
-
Kliknite Vrsta stika.
-
V pogovornem oknu Lastnosti združitve izberite možnost in kliknite V redu.
-
Po želji spremenite relacijo in kliknite V redu.
Vzpostavljanje referenčne integritete
Namen referenčne integritete je preprečiti osamljene zapise – zapise, ki se sklicujejo na druge zapise, ki ne obstajajo več. Referenčno integriteto vsilite tako, da jo omogočite v relaciji tabele. Ko referenčno integriteto enkrat vsilite, Access zavrne operacije, ki bi jo kršile v relaciji tabele. To pomeni, da Access zavrne tako posodobitve, ki spremenijo cilj sklicevanja, kot tudi brisanja, s katerimi se odstrani cilj sklicevanja. Če želite, da Access razširja referenčne posodobitve in brisanje tako, da se z njimi spremeni vse sorodne vrstice, glejte razdelek Nastavitve kaskadnih možnosti.
Vklop ali izklop referenčne integritete
-
Na zavihku Orodja za zbirke podatkov v skupini Relacije kliknite Relacije.
-
Na zavihku Načrt relacij v skupini Relacije kliknite Vse relacije.
Prikažejo se vse tabele z relacijami, ki prikazujejo črte relacij. 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«. -
Kliknite črto relacije za relacijo, ki jo želite spremeniti. Izbrana črta relacije je prikazana odebeljeno.
-
Dvokliknite črto relacije. Odpre se pogovorno okno Urejanje relacij.
-
Potrdite ali počistite polje Vzpostavi referenčno integriteto.
-
Po želji spremenite relacijo in kliknite V redu.
Če vzpostavite referenčno integriteto, veljajo ta pravila:
-
Vrednosti ni mogoče vnesti v polje s tujim ključem tabele v relaciji, če je ni v polju s primarnim ključem primarne tabele – tako se ustvarijo osamljeni zapisi.
-
Zapisa ni mogoče izbrisati iz primarne tabele, če so v tabeli v relaciji ujemajoči se zapisi. Iz tabele »Zaposleni« ni mogoče izbrisati na primer zapisa o zaposlenem, če so mu dodeljena naročila v tabeli »Naročila«. Lahko pa z eno operacijo izbrišete primarni zapis in vse zapise v relaciji, tako da potrdite polje Kaskadno brisanje polj v relaciji.
-
Vrednosti primarnega ključa v primarni tabeli ne morete spremeniti, če s tem ustvarite osamljene zapise. Številke naročila v tabeli »Naročila« na primer ne morete spremeniti, če so vrstični elementi dodeljeni naročilu v tabeli »Podrobnosti o naročilu«. Lahko pa z eno operacijo posodobite primarni zapis in vse sorodne zapise, tako da potrdite polje Kaskadno posodabljanje polj v relaciji.
Opombe: Če pri omogočanju referenčne integritete pride do težav, upoštevajte, da je treba izpolnjevati te pogoje, če želite referenčno integriteto vsiliti:
-
Skupno polje v primarni tabeli mora biti primarni ključ ali imeti enoličen indeks.
-
Skupna polja morajo biti istega podatkovnega tipa. Izjema je polje »Samoštevilo«, ki je lahko v relaciji s poljem »Število«, ki ima lastnost VelikostPolja nastavljeno na Dolgo celo število.
-
Obe tabeli obstajata v isti Accessovi zbirki podatkov. Referenčne integritete ni mogoče vsiliti v povezanih tabelah. Če pa so izvirne tabele v obliki zapisa za Access, lahko odprete zbirko podatkov, v kateri so shranjene, in v zbirki podatkov omogočite referenčno integriteto.
-
Nastavljanje kaskadnih možnosti
Lahko pride do primera, v katerem bo treba iz utemeljenih razlogov spremeniti vrednost na strani »ena« relacije. V takem primeru mora Access z eno operacijo samodejno posodobiti vse zadevne vrstice. Na ta način se posodobitev izvede v celoti, tako da zbirka podatkov ni v nedoslednem stanju – kjer so nekatere vrstice posodobljene, nekatere pa ne. Access vam pomaga, da se izognete tej težavi, tako da podpira možnost kaskadnega posodabljanje polj v relaciji. Ko vzpostavite referenčno integriteto, izberite možnost »Kaskadno posodabljanje polj v relaciji« in nato posodobite primarni ključ, Access samodejno posodobi vsa polja, ki se sklicujejo na primarni ključ.
Morda boste morali izbrisati vrstico in vse povezane zapise – na primer zapis »Pošiljatelj« in vsa povezana naročila za tega pošiljatelja. Zaradi tega je v Accessu podprta možnost kaskadnega brisanja polj v relaciji. Ko vsilite referenčno integriteto in potrdite polje Kaskadno brisanje polj v relaciji, Access samodejno izbriše vse zapise, ki se sklicujejo na primarni ključ, če izbrišete zapis, ki vsebuje primarni ključ.
Vklop ali izklop kaskadnega posodabljanja in/ali kaskadnega brisanja
-
Na zavihku Orodja za zbirke podatkov v skupini Relacije kliknite Relacije.
-
Na zavihku Načrt relacij v skupini Relacije kliknite Vse relacije.
Prikažejo se vse tabele z relacijami, ki prikazujejo črte relacij. 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«. -
Kliknite črto relacije za relacijo, ki jo želite spremeniti. Izbrana črta relacije je prikazana odebeljeno.
-
Dvokliknite črto relacije.
Prikaže se pogovorno okno Urejanje relacij. -
Potrdite polje Vzpostavi referenčno integriteto.
-
Potrdite polje Kaskadno posodabljanje polj v relaciji ali Kaskadno brisanje zapisov v relaciji oziroma potrdite obe polji.
-
Po želji spremenite relacijo in kliknite V redu.
Opomba: Če je primarni ključ polje s samoštevilom, potrditev polja Kaskadno posodabljanje polj v relaciji ne bo vplivala na nič, ker v polju s samoštevilom vrednosti ni mogoče spremeniti.
Brisanje relacije tabele
Pomembno: Z odstranitvijo relacije odstranite tudi podporo za referenčno integriteto za to relacijo, če je omogočena. Zaradi tega Access ne bo več samodejno preprečeval, da se na strani »mnogo« relacije osamljeni zapisi ne ustvarijo.
Če želite odstraniti relacijo tabele, morate izbrisati črto relacije v oknu z relacijami. Kazalec postavite tako, da kaže na črto relacije in jo nato kliknite. Izbrana črta relacije je prikazana odebeljeno. Ko relacijsko črto izberete, pritisnite tipko DELETE.
-
Na zavihku Orodja za zbirke podatkov v skupini Relacije kliknite Relacije.
-
Na zavihku Načrt relacij v skupini Relacije kliknite Vse relacije.
Prikažejo se vse tabele z relacijami, ki prikazujejo črte relacij. 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«. -
Kliknite črto relacije za relacijo, ki jo želite izbrisati. Izbrana črta relacije je prikazana odebeljeno.
-
Pritisnite tipko DELETE.
-
Access bo morda prikazal sporočilo Ali ste prepričani, da želite trajno izbrisati izbrano relacijo iz zbirke podatkov?. Če se prikaže to sporočilo, kliknite Da.
Opomba: Če katero koli od tabel v relaciji tabele uporablja druga oseba ali proces, ali je uporabljena v odprtem predmetu zbirke podatkov (na primer, obrazec), relacije ne bo mogoče izbrisati. Preden poskusite odstraniti relacijo, morate zapreti vse odprte predmete, v katerih so uporabljene tabele.
Glejte tudi
Dodajanje polja za iskanje v tabelo
Primerjava dveh tabel v Accessu in iskanje le ujemajočih se podatkov