Vodič kroz odnose između tablica

Vodič kroz odnose između tablica

Važno :  Ovaj je članak strojno preveden. Pogledajteizjavu o odricanju od odgovornosti. Verziju ovog članka na engleskom potražite ovdje.

Jedan od ciljeva dobrog dizajna baze podataka uklanjanje je redundantnih podataka (duplih podataka). Da biste to postigli, podatke podijelite u mnogo tematskih tablica tako da se svaka činjenica predstavlja samo jedanput. Zatim programu Access pružite sredstva pomoću kojih se podijeljeni podaci ponovno spajaju – to radite tako da smještate zajednička polja u povezane tablice. Da biste to napravili točno, morate najprije razumjeti odnose između tablica, a zatim specificirati te odnose u svojoj bazi podataka.

Sadržaj članka

Uvod

Vrste odnosa između tablica

Zašto stvoriti odnose između tablica?

Objašnjenje referencijalnog integriteta

Prikaz odnosa između tablica

Stvaranje odnosa između tablica

Brisanje odnosa između tablica

Promjena odnosa između tablica

Nametanje referencijalnog integriteta

Uvod

Kada u svojoj bazi podataka stvorite tablicu za svaku temu, morate programu Access ponuditi sredstva za ponovno spajanje tih podataka kada to bude potrebno. To ćete učiniti smještanjem zajedničkih polja u povezane tablice i definiranjem odnosa između tablica. Nakon toga možete stvarati upite, obrasce i izvješća u kojima se prikazuju podaci iz nekoliko tablica istodobno. Na primjer, ovdje prikazani obrazac sadrži podatke povučene iz nekoliko tablica:

Redoslijedi za prikaz podataka iz pet tablica istodobno

1. Podaci u ovom obrascu dolaze iz tablice Kupci...

2. ... tablice Narudžbe...

3. ... tablice Proizvodi...

4. ... i tablice Detalji narudžbe.

Ime klijenta u okviru Račun poslati izvučeno je iz tablice Kupci, vrijednosti ID narudžbe i ID datuma narudžbe dolaze iz tablice Narudžbe, naziv proizvoda dolazi iz tablice Proizvodi, a vrijednosti cijena količina jedinica dolaze iz tablice Detalji narudžbe. Ove su tablice vezane jedna za drugu na razne načine kako bi se iz svake donijelo informacije u obrazac.

U prethodnom primjeru polja u tablicama moraju biti usklađena kako bi pokazivala informacije o istoj narudžbi. Usklađenost se postiže korištenjem odnosa između tablica. Odnos između tablica radi tako da uspoređuje podatke u poljima-ključevima  — najčešće polje istog naziva u obje tablice. U većini slučajeva, ova odgovarajuća polja su primarni ključ iz jedne tablice, što osigurava jedinstveni identifikator za svaki zapis i vanjski ključ u drugoj tablici. Na primjer, zaposlenici mogu biti povezani s narudžbama za koje su odgovorni na način da se stvori odnos između tablica korištenjem polja ZaposlenikID u tablicama Zaposlenici i Narudžbe.

IDZaposlenika koristi se kao primarni ključ u tablici Zaposlenici i vanjski ključ u tablici Narudžbe.

1. IDZaposlenika pojavljuje se u obje tablice – kao primarni ključ...

2. ... i kao vanjski ključ.

Vrh stranice

Vrste odnosa između tablica

Postoje tri vrste odnosa između tablica u programu Access.

  • Odnos jedan-prema-više

    Poslužimo se primjerom baze podataka koja prati narudžbe, a uključuje tablice Kupci i Narudžbe. Kupac može postaviti bilo koji broj narudžbi. Proizlazi to da svaki kupac predstavljen u tablici Kupci može imati više narudžbi. Odnos između tablice Kupci i tablice narudžbe stoga je odnos jedan-prema-više.

    Kako biste prikazali odnos jedan-prema-više u svom dizajnu baze podataka, uzmite primarni ključ na strani odnosa "jedan" i dodajte ga kao dodatno polje ili polja u tablici na strani odnosa "više". U ovom slučaju, na primjer, dodajete novo polje — ID polje iz tablice Kupci — u tablicu Narudžbe i nazivate ga ID kupca. Access onda može koristiti broj iz ID-a kupca u tablici Narudžbe kako bi pronašao točnog klijenta za svaku narudžbu.

  • Odnos više-prema-više

    Zamislite odnos između tablice Proizvodi i tablice Narudžbe. Jedna narudžba može sadržavati više od jednog proizvoda. S druge strane, jedan se proizvod može pojavljivati u više narudžbi. Stoga za svaki zapis u tablici Narudžbe može biti više zapisa u tablici Proizvodi. Nadalje, za svaki zapis u tablici Proizvodi može biti više zapisa u tablici Narudžbe. Ova vrsta odnosa naziva se više-prema-više. Imajte na umu je za otkrivanje postojećeg odnosa više-prema-više između vaših tablica važno uzeti u obzir obje strane odnosa.

    Kako biste prikazali odnos više-prema-više u svom dizajnu baze podataka, morate stvoriti treću tablicu, često nazivanu tablica stjecišta, koja razlama odnos više-prema-više u dva odnosa jedan-prema više. Unesete primarni ključ iz svake od dviju tablica u treću tablicu. Kao rezultat toga, treća tablica zapisuje svaku pojavu, ili instancu, odnosa. Na primjer, tablica Narudžbe i tablica Proizvodi imaju odnos više-prema-više definiran stvaranjem dvaju odnosa jedan-prema-više u tablici Detalji narudžbe. Jedna narudžba može imati više proizvoda, a jedan proizvod se može pojaviti u više narudžbi.

  • Odnos jedan-prema-jedan

    U odnosu jedan-prema-jedan svaki zapis u prvoj tablici može imati samo jedan odgovarajući zapis u drugoj tablici, a svaki zapis u drugoj tablici može imati samo jedan odgovarajući zapis u prvoj tablici. Ta vrsta odnosa nije uobičajena jer su najčešće informacije povezane na ovaj način spremljene u istoj tablici. Odnos jedan-prema-jedan možete koristiti kako biste podijelili tablicu s mnogo polja, kako biste izdvojili dio tablice iz sigurnosnih razloga ili kako biste spremili informacije koje se primjenjuju samo na podskup glavne tablice. Prilikom identifikacije takvog odnosa obje tablice moraju dijeliti zajedničko polje.

Vrh stranice

Zašto stvoriti odnose između tablica?

Odnose između tablica možete stvarati izričito pomoću prozora Odnosi ili povlačenjem polja iz okna Popis polja. Access koristi odnose između tablica da bi spojio tablice kada ih je potrebno koristiti u objektima baze podataka. Postoji nekoliko razloga za stvaranje odnosa između tablica prije nego što stvorite ostale objekte baze podataka, kao što su obrasci, upiti i izvješća.

  • Iz odnosa između tablica crpe se podaci za dizajne upita

    Da biste radili sa zapisima iz više od jedne tablice, često morate stvoriti upit koji spaja tablice. Upit funkcionira tako da uspoređuje vrijednosti primarnog ključa prve tablice s vanjskim ključem u drugoj tablici. Na primjer, da biste dobili retke koji popisuju sve narudžbe svakog klijenta, stvarate upit koji spaja tablicu Kupci s tablicom Narudžbe na temelju polja ID kupca. U prozoru Odnosi možete ručno odrediti polja koja treba spojiti. No ako već postoji odnos između tablica, Access omogućuje zadano spajanje na temelju postojećeg odnosa između tablica. Nadalje, ako koristite neki čarobnjak za upite, Access koristi podatke koje prikuplja iz odnosa između tablica koji ste već definirali da bi vam predstavio odabire koje je prikupio iz podataka i unaprijed unio odgovarajuće zadane vrijednosti u postavke svojstava.

  • Iz odnosa između tablica crpe se podaci za dizajne upita

    Kada dizajnirate obrazac ili izvješće, Access koristi podatke koje prikuplja iz odnosa između tablica koje ste već definirali da bi vam prikazao odabire koje je prikupio iz podataka i unaprijed unio odgovarajuće zadane vrijednosti u postavke svojstava.

  • Odnosi između tablica temelj su kojim možete nametnuti referencijalni integritet kako biste pomogli spriječiti "napuštene" zapise u svojoj bazi podataka. "Napušteni" zapis je zapis s referencom na neki drugi zapis koji ne postoji — na primjer, zapis o narudžbi koji ima referencu na zapis o klijentu koji ne postoji.

    Kad dizajnirate bazu podataka, dijelite informacije u tablice od kojih svaka ima primarni ključ. Zatim dodajete vanjske ključeve u povezane tablice koje imaju referencu na te primarne ključeve. Ti parovi primarni ključ-vanjski ključ tvore osnovu za odnose između tablica i upite na više tablica. Zato je važno da te reference vanjski ključ-primarni ključ ostanu sinkronizirane. Referencijalni integritet pomaže osiguravanju da reference ostaju sinkronizirane i ovisi o odnosima između tablica.

Vrh stranice

Objašnjenje referencijalnog integriteta

Kada dizajnirate bazu podataka, podatke dijelite u mnogo tematskih tablica da biste redundantnost podataka sveli na minimum. Zatim programu Access pružate sredstva pomoću kojih se podaci ponovno spajaju tako da smještate zajednička polja u povezane tablice. Na primjer, da biste prikazali vezu jedan-prema-više, uzet ćete primarni ključ iz tablice "jedan" i dodati ga kao dodatno polje u tablicu "više". Da bi ponovno spojio podatke, Access uzima vrijednost iz tablice "više" i traži odgovarajuću vrijednost u tablici "jedan". Na taj se način vrijednosti iz tablice "više" pozivaju na odgovarajuće vrijednosti u tablici "jedan".

Pretpostavimo da imate odnos jedan-prema-više između tablice Dostavljači i tablice Narudžbe i želite izbrisati jednog dostavljača. Ako dostavljač kojeg želite izbrisati ima narudžbe u tablici Narudžbe, te će narudžbe ostati "napuštene" kad izbrišete zapis o dostavljaču. Tablica Narudžbe još uvijek će sadržavati ID dostavljača, ali ID više neće vrijediti jer zapis na koji se upućuje više ne postoji.

Svrha je referencijalnog integriteta sprječavanje nastanka "napuštenih" zapisa i očuvanje sinkroniziranosti referenci tako da se takva hipotetska situacija nikad ne dogodi.

Referencijalni integritet nameće se njegovim omogućivanjem za odnos tablice (upute "korak po korak" potražite u članku Nametanje referencijalnog integriteta). Nakon nametanja Access odbacuje sve operacije koje bi narušile referencijalni integritet za taj odnos tablice. To znači da će Access odbiti i ažuriranja kojima se mijenja cilj reference i brisanja kojima se uklanja cilj reference. No moguće je da imate savršeno valjanu potrebu za promjenom primarnog ključa za dostavljača koji ima narudžbe u tablici Narudžbe. U takvim slučajevima Access zapravo mora automatski ažurirati sve retke na koje se to odnosi u sklopu jedne operacije. Na taj način Access jamči da je ažuriranje u potpunosti dovršeno te da baza podataka nije ostavljena u nedosljednom stanju, tj. u stanju u kojem su neki reci ažurirani, a neki ne. Zbog toga Access podržava mogućnost Kaskadno ažuriranje povezanih polja. Kada nametnete referencijalni integritet i odaberete mogućnost Kaskadno ažuriranje povezanih polja, a zatim ažurirate primarni ključ, Access automatski ažurira sva polja koja se pozivaju na primarni ključ.

Moguće je i da imate valjanu potrebu za brisanjem retka i svih povezanih zapisa — na primjer, zapis dostavljača i svih povezanih narudžbi za tog dostavljača. Zbog toga Access podržava mogućnost kaskadnog brisanja srodnih zapisa. Kada nametnete referencijalni integritet i odaberete mogućnost Kaskadno izbriši povezane zapise i izbrišete zapis na strani odnosa primarnog ključa, Access automatski briše sve zapise koji upućuju na primarni ključ.

Vrh stranice

Prikaz odnosa između tablica

Da biste pogledali odnose između tablica, kliknite Odnosi na kartici Alati baze podataka. Otvara se prozor Odnosi i prikazuje sve postojeće odnose. Ako još nije definiran nijedan odnos između tablica, a prozor Odnosi otvarate prvi put, Access vas pita želite li u prozor dodati tablicu ili upit.

Otvaranje prozora Odnosi

  1. Kliknite Datoteka, a zatim Otvori.

  2. Odaberite i otvorite bazu podataka.

  3. Na kartici Alati baze podataka u grupi Odnosi kliknite Odnosi.

    Ako baza podataka sadrži odnose, pojavit će se prozor Odnosi. Ako baza podataka ne sadrži odnose, a prozor Odnosi otvarate prvi put, pojavljuje se dijaloški okvir Prikaz tablice. Kliknite Zatvori da biste zatvorili dijaloški okvir.

  4. Na kartici Dizajn u grupi Odnosi kliknite Svi odnosi.

    Na taj se način prikazuju svi definirani odnosu u vašoj bazi podataka. Imajte na umu da skrivene tablice (one uz koje je potvrđen okvir Skriveno u sklopu Svojstva tablice) ali njihovi odnosi neće biti prikazani osim ako je potvrđen okvir Pokaži skrivene objekte u dijaloškom okviru Mogućnosti navigacije.

Odnos između tablica predstavlja se crtom odnosa nacrtanom između tablica u prozoru Odnosi. Odnos koji ne nameće referencijalni integritet pojavljuje se kao tanka crta između zajedničkih polja koja podržavaju odnos. Kada odaberete odnos klikom na njegovu crtu, crta se podeblja da bi se pokazalo da je odabrana. Ako nametnete referencijalni integritet za taj odnos, crta izgleda deblje na svakom kraju. Uz to se pojavljuje broj 1 iznad debljeg dijela crte na jednoj strani odnosa i simbol beskonačnosti () iznad podebljanog dijela crte na drugoj strani odnosa.

Kada je prozor Odnosi aktivan, na vrpci su vam na raspolaganju sljedeće naredbe:

Na kartici Dizajn u grupi Alati:

  • Uredi odnose    Otvara dijaloški okvir Uređivanje odnosa. Kada odaberete crtu odnosa, možete kliknuti Uredi odnose da biste promijenili odnose između tablica. Umjesto toga, možete dvokliknuti crtu odnosa.

  • Očisti raspored    Uklanja sve tablice i odnose iz prikaza u prozoru Odnosi. Imajte na umu da ta naredba samo skriva tablice i odnose, tj.  ne briše ih.

  • Izvješće o odnosima    Stvara izvješće koje prikazuje tablice i odnose u bazi podataka. Izvješće prikazuje samo tablice i odnose koji nisu skriveni u prozoru Odnosi.

Na kartici Dizajn u grupi Odnosi:

  • Prikaz tablice    Otvara dijaloški okvir Prikaz tablice tako da možete odabrati tablice i upite koje želite prikazati u prozoru Odnosi.

  • Sakrij tablicu    Skriva odabranu tablicu u prozoru Odnosi.

  • Izravni odnosi    Prikazuje sve odnose i povezane tablice za odabranu tablicu u prozoru Odnosi, ako već nisu prikazani.

  • Svi odnosi    Prikazuje sve odnose i povezane tablice u bazi podataka u prozoru Odnosi. Imajte na umu da se skrivene tablice (tablice za koje je u dijaloškom okviru Svojstva za tu tablicu potvrđen okvir Skriveno) i njihovi odnosi neće prikazati osim ako se u dijaloškom okviru Mogućnosti navigacije ne odabere mogućnost Prikaži skrivene objekte.

  • Zatvori    Zatvara prozor Odnosi. Ako ste napravili bilo kakve promjene u rasporedu prozora odnosa, upitat će vas se želite li spremiti te promjene.

Vrh stranice

Stvaranje odnosa između tablica

Odnose između tablica možete stvarati pomoću prozora Odnosi ili povlačenjem polja u podatkovnu tablicu iz okna Popis polja. Kada stvarate odnose između dvije tablice, zajednička polja ne moraju imati jednake nazive polja, iako je to često slučaj, već moraju biti iste vrste podataka. No ako je primarni ključ polje sa samonumeriranjem, vanjski ključ može biti numeričko polje ako je svojstvo FieldSize jednako za oba polja. Na primjer, možete uparivati polja sa samonumeriranjem i numerička polja ako je svojstvo FieldSize oba polja dugi cijeli broj. Kada su oba zajednička polja numerička polja, moraju imati istu postavku svojstva FieldSize.

Stvaranje odnosa između tablica pomoću prozora Odnosi

  1. Kliknite Datoteka, a zatim Otvori.

  2. Odaberite i otvorite bazu podataka.

  3. Na kartici Alati baze podataka u grupi Odnosi kliknite Odnosi.

  4. Ako još niste definirali odnose, automatski će se pojaviti dijaloški okvir Prikaz tablice. Ako se ne pojavi, na kartici Dizajn u grupi Odnosi kliknite Prikaz tablice.

    Dijaloški okvir Prikaz tablice prikazuje sve tablice i upite u bazi podataka. Da bi se prikazivale samo tablice, kliknite Tablice. Da bi se prikazivali samo upite, kliknite Upiti. Da bi se prikazivale i tablice i upiti, kliknite Oboje.

  5. Odaberite jednu ili više tablica, a zatim kliknite Dodaj. Kada završite s dodavanjem tablica i upita u prozor Odnosi, kliknite Zatvori.

  6. Povucite polje (u pravilu primarni ključ) iz jedne tablice u zajedničko polje (vanjski ključ) druge tablice. Da biste povukli više polja, pritisnite tipku CTRL, kliknite svako polje, a zatim ih povucite.

    Pojavit će se dijaloški okvir Uređivanje odnosa.

  7. Potvrdite da su prikazani nazivi polja zajednička polja za odnos. Ako je naziv polja netočan, kliknite naziv polja i odaberite novo polje s popisa.

    Da biste nametnuli referencijalni integritet za taj odnos, potvrdite okvir Nametni referencijalni integritet. Dodatne informacije o referencijalnom integritetu potražite u člancima Objašnjenje referencijalnog integriteta i Nametanje referencijalnog integriteta.

  8. Kliknite Stvori.

    Između dviju tablica crta se crta odnosa. Ako potvrdite okvir Nametni referencijalni integritet, crta se podeblja na svakom kraju. Osim toga, i to samo ako ste potvrdili okvir Nametni referencijalni integritet, pojavljuje se broj 1 iznad debljeg dijela crte na jednoj strani odnosa i simbol za beskonačnost () iznad debljeg dijela crte na drugoj strani.

    Napomene : 

    • Stvaranje odnosa jedan-prema-jedan    Oba zajednička polja (najčešće polja primarnog i vanjskog ključa) moraju imati jedinstveni indeks. To znači da bi svojstvo Indeksirano za ta polja trebalo biti postavljeno na Da (bez duplikata). Ako oba polja imaju jedinstveni indeks, Access stvara odnos jedan-prema-jedan.

    • Stvaranje odnosa jedan-prema-više    Polje na strani "jedan" (u pravilu primarni ključ) odnosa mora imati jedinstveni indeks. To znači da bi svojstvo Indeksirano za to polje trebalo biti postavljeno na Da (bez duplikata). Polje na strani "više" ne bi trebalo imati jedinstveni indeks. Ono može imati indeks, ali mora dopuštati duplikate. To znači da bi svojstvo Indeksirano za to polje trebalo biti postavljeno ili na Ne ili na Da (Duplikati mogući). Kada jedno polje ima jedinstveni indeks, a drugo ne, Access stvara odnos jedan-prema-više.

Stvaranje odnosa između tablica putem okna Popis polja

U postojeću tablicu otvorenu u prikazu podatkovne tablice polje možete dodati tako da ga povučete iz okna Popis polja. U oknu Popis polja prikazuju se polja dostupna u povezanim tablicama i polja dostupna u drugim tablicama. Kada povlačite polje iz "druge" (nepovezane) tablice, a zatim prođete čarobnjak za traženje vrijednosti, između tablice u oknu Popis polja i tablice u koju ste povukli polje automatski se stvara novi odnos jedan-prema-više. Po zadanim postavkama, taj odnos koji stvara Access ne nameće referencijalni integritet. Da biste nametnuli referencijalni integritet, potrebno je urediti odnos. Dodatne informacije potražite u članku Promjena odnosa između tablica.

Otvaranje tablice u prikazu podatkovne tablice

  1. Na kartici Datoteka kliknite Otvori.

  2. U dijaloškom okviru Otvaranje odaberite i otvorite bazu podataka.

  3. U navigacijskom oknu desnom tipkom miša kliknite tablicu u koju želite dodati polje i stvoriti odnos, a zatim kliknite Otvori.

Otvaranje okna Popis polja

  • Pritisnite ALT+F8.

    Pojavit će se okno Popis polja.

Okno Popis polja sve ostale tablice u bazi podataka prikazuje grupirane u kategorije. Kad s tablicom radite u prikazu podatkovne tablice, Access polja prikazuje u nekoj od dviju kategorija u oknu Popis polja: Polja dostupna u povezanim tablicama i Polja dostupna u drugim tablicama. U prvoj kategoriji nalaze se sve tablice koje imaju odnos s tablicom s kojom trenutno radite. U drugoj kategoriji nalaze se sve tablice s kojima vaša tablica nema odnos.

Nakon klika na znak plus (+) pokraj naziva tablice u oknu Popis polja prikazuje se popis polja dostupnih u toj tablici. Da biste dodali polje u tablicu, povucite željeno polje iz okna Popis polja u tablicu u prikazu podatkovne tablice.

Dodavanje polja i stvaranje odnosa iz okna Popis polja

  1. U oknu Popis polja u odjeljku Polja dostupna u drugim tablicama kliknite znak plus (+) pokraj naziva tablice da biste prikazali popis polja u toj tablici.

  2. Povucite željeno polje iz okna Popis polja u tablicu otvorenu u prikazu podatkovne tablice.

  3. Kada se pojavi redak za umetanje, ispustite polje.

    Pokreće se Čarobnjak za traženje vrijednosti.

  4. Slijedite upute za dovršavanje čarobnjaka za traženje vrijednosti.

    Polje se pojavljuje u tablici u prikazu podatkovne tablice.

Kada povlačite polje iz "druge" (nepovezane) tablice, a zatim prođete čarobnjak za traženje vrijednosti, između tablice u oknu Popis polja i tablice u koju ste povukli polje automatski se stvara novi odnos jedan-prema-više. Po zadanim postavkama, taj odnos koji stvara Access ne nameće referencijalni integritet. Da biste nametnuli referencijalni integritet, potrebno je urediti odnos. Dodatne informacije potražite u članku Promjena odnosa između tablica.

Vrh stranice

Brisanje odnosa između tablica

Da biste uklonili odnos između tablica, morate izbrisati crtu odnosa u prozoru Odnosi. Pažljivo postavite pokazivač tako da pokazuje na crtu odnosa, a zatim kliknite crtu. Crta odnosa podebljava se kada je odaberete. Kada je crta odabrana, pritisnite DELETE. Imajte na umu da uklanjanjem odnosa uklanjate i podršku za referencijalni integritet za taj odnos, ako je omogućen. Kao rezultat toga, Access više neće automatski sprječavati stvaranje "napuštenih" zapisa na strani odnosa "više".

  1. Na kartici Alati baze podataka u grupi Odnosi kliknite Odnosi.

    Otvorit će se prozor odnosa. Ako još niste definirali nikakve odnose i ovo je prvi put da otvarate prozor Odnosi, pojavit će se dijaloški okvir Prikaz tablice. Ako se dijaloški okvir pojavi, kliknite Zatvori.

  2. Na kartici Dizajn u grupi Odnosi kliknite Svi odnosi.

    Prikazat će se sve tablice koje imaju odnose te crte odnosa.

  3. Kliknite crtu odnosa za odnos koji želite izbrisati. Crta odnosa nakon odabira se prikazuje podebljana.

  4. Pritisnite tipku DELETE.

    – ili –

Kliknite desnom tipkom miša, a zatim kliknite Izbriši.

  • Access može prikazati poruku Jeste li sigurni da iz svoje baze podataka želite trajno izbrisati odabrane odnose?. Ako se pojavi ta poruka potvrde, kliknite Da.

Napomena : Ako druga osoba ili proces, ili otvoreni objekt baze podataka (kao što je obrazac), upotrebljava bilo koju od tablica uključenih u odnos između tablica, nećete moći izbrisati odnos. Morate zatvoriti sve otvorene objekte koji koriste ove tablice, prije nego što možete ukloniti odnos.

Vrh stranice

Promjena odnosa između tablica

Odnos između tablica možete promijeniti tako da ga odaberete u prozoru Odnosi i uredite. Pažljivo postavite pokazivač tako da pokazuje na crtu odnosa, a zatim kliknite crtu da biste je odabrali. Crta odnosa nakon odabira se prikazuje podebljana. Dvokliknite odabranu crtu odnosa ili kliknite Uređivanje odnosa u grupi Alati na kartici Dizajn. Pojavit će se dijaloški okvir Uređivanje odnosa.

Napravite željene promjene u dijaloškom okviru Uređivanje odnosa.

  1. Na kartici Alati baze podataka u grupi Odnosi kliknite Odnosi.

    Otvorit će se prozor odnosa. Ako još niste definirali nikakve odnose i ovo je prvi put da otvarate prozor Odnosi, pojavit će se dijaloški okvir Prikaz tablice. Ako se dijaloški okvir pojavi, kliknite Zatvori.

  2. Na kartici Dizajn u grupi Odnosi kliknite Svi odnosi.

    Prikazat će se sve tablice koje imaju odnose te crte odnosa.

  3. Kliknite crtu odnosa za odnos koji želite promijeniti. Crta odnosa nakon odabira se prikazuje podebljana.

  4. Dvokliknite crtu odnosa.

  5. Izvršite promjene, a zatim kliknite U redu.

    Dijaloški okvir Uređivanje odnosa omogućuje promjenu odnosa između tablica. Možete promijeniti tablice ili upite s obje strane odnosa ili pak polja s obje strane. Osim toga, možete postaviti vrstu spoja ili nametnuti referencijalni integritet i odabrati mogućnost kaskadiranja. Dodatne informacije o vrsti spoja i njezinu postavljanju potražite u odjeljku Postavljanje vrste spoja. Dodatne informacije o nametanju referencijalnog integriteta i odabiru mogućnost kaskadiranja potražite u odjeljku Nametanje referencijalnog integriteta.

Postavljanje vrste spoja

Kada definirate odnos između tablica, činjenice o odnosu koriste se za vaše dizajne upita. Na primjer, ako definirate odnos između dvije tablice, a zatim stvorite upit koji uključuje te tablice, Access automatski odabire zadana odgovarajuća polja na temelju polja određenih u odnosu. Ova inicijalna zadana stanja u svom upitu možete pregaziti, ali često će se vrijednosti ponuđene na temelju odnosa pokazati točnima. S obzirom da ćete vrlo često sparivati i spajati podatke natrag iz više od jedne tablice u svim osim u najjednostavnijim bazama podataka, postavljanje zadanih vrijednosti stvaranjem odnosa može uštedjeti vrijeme i biti jako korisno.

Upit za veći broj tablica spaja podatke iz više tablica uparivanjem vrijednosti u zajedničkim poljima. Operacija koja izvršava uparivanje i spajanje zove se spoj. Na primjer, pretpostavimo da želite prikazati narudžbe kupaca. Stvorite upit koji spaja tablicu Kupci i tablicu Narudžbe na polju ID kupca. Rezultati upita sadrže informacije o kupcu i informacije o narudžbi za samo one retke u kojima je pronađena odgovarajuća podudarnost.

Jedna od vrijednosti koju možete odrediti za svaki odnos je vrsta spoja. Korištenjem vrste spoja Access zna koji zapisi će se uključiti u rezultat upita. Na primjer, zamislite opet upit koji spaja tablicu Kupci i tablicu Narudžbe korištenjem zajedničkih polja koja predstavljaju Klijent ID. Koristeći zadanu vrstu spoja (nazvanu unutarnji spoj), upit vraća retke iz tablice Klijenti i retke iz tablice Narudžbe gdje su zajednička polja (također nazvana spojena polja) jednaka.

Međutim, pretpostavimo da želite uključiti sve kupce — čak i one koji još nisu napravili nijednu narudžbu. Kako biste to postigli, morate promijeniti vrstu spajanja u lijevi vanjski spoj. Lijevi vanjski spoj vraća sve retke iz tablice na lijevoj strani odnosa i samo one retke koji su parovi u tablici na desnoj strani. Desni vanjski spoj vraća sve retke na desnoj i samo one koji su parovi na lijevoj strani.

Napomena : U ovom slučaju, "lijevo" i "desno" odnosi se na položaj tablica u dijaloškom okviru Uređivanje odnosa, ne u prozoru Odnosi.

Trebali biste razmisliti o rezultatu koji najčešće želite od upita koji spaja tablice u ovom odnosu, a zatim sukladno tome postaviti vrstu spoja.

Postavljanje vrste spoja

  1. U dijaloškom okviru Uređivanje odnosa kliknite Vrsta spoja.

    Prikazuje se dijaloški okvir Svojstva spoja.

  2. Kliknite željene mogućnosti, a zatim U redu.

Sljedeća tablica (pri korištenju tablica Kupci i Narudžbe) pokazuje tri izbora prikazana u dijaloškom okviru Svojstva spoja, vrstu spoja koji koriste i jesu li za svaku tablicu uključeni svi reci koji se podudaraju.

Odabir

Relacijski spoj

Lijeva tablica

Desna tablica

1. Obuhvaća samo retke u kojima su spojena polja iz obiju tablica jednaka.

Unutarnji spoj

Reci koji se podudaraju

Reci koji se podudaraju

2. Obuhvaća SVE zapise iz tablice "Kupci" i samo one zapise iz tablice "Narudžbe" u kojima su spojena polja jednaka.

Lijevi vanjski spoj

Svi reci

Reci koji se podudaraju

3. Obuhvaća SVE zapise iz tablice "Narudžbe" i samo one zapise iz tablice "Kupci" u kojima su spojena polja jednaka.

Desni vanjski spoj

Reci koji se podudaraju

Svi reci

Kad odaberete mogućnost 2 ili mogućnost 3, na crti odnosa prikazuje se strelica. Ta strelica pokazuje na stranu odnosa koja prikazuje samo retke koji se podudaraju.

Izvođenje promjena u dijaloškom okviru Svojstva spoja

  1. Na kartici Alati baze podataka u grupi Odnosi kliknite Odnosi.

    Otvorit će se prozor odnosa. Ako još niste definirali nikakve odnose i ovo je prvi put da otvarate prozor Odnosi, pojavit će se dijaloški okvir Prikaz tablice. Ako se dijaloški okvir pojavi, kliknite Zatvori.

  2. Na kartici Dizajn u grupi Odnosi kliknite Svi odnosi.

    Prikazuju se sve tablice s odnosima i njihove crte odnosa.

  3. Kliknite crtu odnosa za odnos koji želite promijeniti. Crta odnosa nakon odabira se prikazuje podebljana.

  4. Dvokliknite crtu odnosa.

    Pojavit će se dijaloški okvir Uređivanje odnosa.

  5. Kliknite Vrsta spoja.

  6. U dijaloškom okviru Svojstva spoja kliknite mogućnost, a zatim U redu.

  7. Dodatno promijenite odnos, a zatim kliknite U redu.

Vrh stranice

Nametanje referencijalnog integriteta

Svrha korištenja referencijalnog integriteta jest sprječavanje pojave "napuštenih" zapisa i održavanje sinkroniziranosti referenci, tako da ne bude zapisa koji upućuju na druge zapise koji više ne postoje. Referencijalni integritet namećete tako da ga omogućite za odnos između tablica. Nakon njegova nametanja Access odbija sve operacije koje bi narušile referencijalni integritet za taj odnos između tablica. Access odbija i ažuriranja kojima se mijenja cilj reference i brisanja kojima se uklanja cilj reference. Upute za postavljanje propagacije ažuriranja i brisanja u programu Access tako da svi reci budu promijenjeni na odgovarajući način potražite u članku Postavljanje kaskadnih mogućnosti.

Uključivanje i isključivanje referencijalnog integriteta

  1. U prozoru Odnosi kliknite crtu odnosa za odnos koji želite promijeniti. Crta odnosa nakon odabira prikazuje se podebljanom.

  2. Dvokliknite crtu odnosa.

Pojavit će se dijaloški okvir Uređivanje odnosa.

  1. Potvrdite okvir Nametni referencijalni integritet.

  2. Dodatno promijenite odnos, a zatim kliknite U redu.

Nakon nametanja referencijalnog integriteta primjenjuju se sljedeća pravila:

  • Ne možete unijeti vrijednost u polje vanjskog ključa povezane tablice ako ta vrijednost ne postoji u polju primarnog ključa primarne tablice — u suprotnom se stvaraju zapisi koji nikamo ne pripadaju.

  • Ne možete izbrisati zapis iz primarne tablice ako u povezanoj tablici postoji zapis koji se podudara. Na primjer, ne možete izbrisati zapis o zaposleniku iz tablice Zaposlenici ako su tom zaposleniku dodijeljene narudžbe u tablici Narudžbe. Možete izbrisati primarni zapis i sve povezane zapise u jednoj operaciji ako odaberite potvrdni okvir Kaskadno izbriši srodna polja.

  • Ne možete promijeniti vrijednost primarnog ključa u primarnoj tablici ako bi to značilo stvaranje napuštenih zapisa. Na primjer, ne možete promijeniti broj narudžbe u tablici Narudžbe ako su s tom narudžbom povezane stavke iz tablice Detalji Narudžbe. Možete ažurirati primarni zapis i sve povezane zapise u pojedinačnom postupku odabirom potvrdnog okvira Kaskadno ažuriraj srodna polja.

    Napomene : Ako nailazite na poteškoće s omogućivanjem referencijalnog integriteta, imajte na umu da je za nametanje referencijalnog integriteta potrebno ispuniti sljedeće uvjete:

    • Zajedničko polje u primarnoj tablici mora biti primarni ključ ili mora imati jedinstveni indeks.

    • Zajednička polja moraju sadržavati istu vrstu podataka. Iznimka je da polje Samonumeriranje može biti povezano s poljem Broj kojemu je svojstvo FieldSize postavljeno na Dugi cijeli broj.

    • Obje tablice moraju biti u istoj bazi podataka programa Access. Referencijalni integritet ne može se nametnuti na povezane tablice. Međutim, ako su izvorne tablice u obliku programa Access, možete otvoriti bazu podataka u kojoj su spremljene i omogućiti referencijalni integritet u toj bazi podataka.

Postavljanje kaskadnih mogućnosti

Možda ćete naletjeti na situaciju u kojoj ćete imati valjanu potrebu za promjenom vrijednosti na strani odnosa "jedan". U tom slučaju potrebno je da Access automatski ažurira sve retke kojih se to tiče kao dio jedne operacije. Na taj način ažuriranje je završeno u potpunosti pa vaša baza nije ostala u nedosljednom stanju — s nekim recima ažuriranim, a nekima ne. Access pomaže u izbjegavanju ovog problema na način da podržava mogućnost Kaskadno ažuriranje srodnih polja. Kada nametnete referencijalni integritet i odaberete mogućnost Kaskadno ažuriranje srodnih polja, a zatim ažurirate primarni ključ, Access automatski ažurira sva polja koja upućuju na primarni ključ

Također ćete možda trebati izbrisati redak i sve povezane zapise  — na primjer, zapis o dostavljaču i sve povezane narudžbe za tog dostavljača. Zbog toga Access podržava mogućnost Kaskadno brisanje srodnih zapisa. Kada nametnete referencijalni integritet i odaberete mogućnost Kaskadno brisanje srodnih zapisa, Access automatski briše sve zapise koji upućuju na primarni ključ kad izbrišete zapis koji sadrži primarni ključ.

Uključivanje i isključivanje kaskadnog ažuriranja i/ili kaskadnog brisanja

  1. U prozoru Odnosi kliknite crtu odnosa za odnos koji želite promijeniti. Crta odnosa nakon odabira prikazuje se podebljanom.

  2. Dvokliknite crtu odnosa.

Pojavit će se dijaloški okvir Uređivanje odnosa.

  1. Potvrdite okvir Nametni referencijalni integritet.

  2. Potvrdite okvir Kaskadno ažuriranje srodnih polja ili okvir Kaskadno brisanje srodnih zapisa ili pak potvrdite oba.

  3. Dodatno promijenite odnos, a zatim kliknite U redu.

Napomena : Ako je primarni ključ polje sa samonumeriranjem, uključivanje potvrdnog okvira Kaskadno ažuriranje srodnih polja neće imati svrhe jer se vrijednost polja sa samonumeriranjem ne može mijenjati.

Vrh stranice

Napomena : Izjava o odricanju od odgovornosti za strojni prijevod: ovaj je članak preveo računalni sustav bez ljudske intervencije. Microsoft nudi strojne prijevode da bi korisnicima koji ne razumiju engleski omogućio čitanje sadržaja o Microsoftovim proizvodima, uslugama i tehnologijama. Budući da je preveden strojno, članak možda sadrži pogreške u vokabularu, sintaksi ili gramatici.

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×