Relacija u Pristup vam omogućava da lakše kombinujete podatke iz dve različite tabele. Svaka relacija se sastoji od polja iz dve tabele sa odgovarajućim podacima. Na primer, možda imate polje "ID proizvoda" u tabeli "Proizvodi" i u tabeli „Detalji porudžbina“. Svaki zapis u tabeli „Detalji porudžbina“ ima ID koji odgovara zapisu u tabeli "Proizvodi" sa istom ID oznakom proizvoda.
Kada koristite povezane tabele u upitu, relacija omogućava programu Access da odredi koje zapise iz svake tabele treba da kombinuje u skupu rezultata. Relacija takođe može da spreči gubitak podataka usled loše sinhronizacije izbrisanih podata, a to se zove referencijalni integritet.
Pre rada sa relacijama, proverite da li razumete osnovne koncepte. Više informacija potražite u članku Vodič za relacije između tabela i prvi koraci uz relacije između tabela.
U ovom članku
Pregled
U bazi podataka programa Access, kreirajte relaciju između tabela koristeći neki od sledećih metoda:
-
U prozoru „Relacije“ dodajte tabele koje želite da povežete, a zatim prevucite polje sa kojim želite da ih povežete iz jedne tabele u drugu.
-
Prevucite polje na list sa podacima tabele iz okna Lista polja.
Kada kreirate relaciju među tabelama, nije neophodno da zajednička polja imaju ista imena, mada je to često slučaj. Zajednička polja moraju da imaju isti tip podataka. Ako je polje primarnog ključa polje tipa „Automatsko numerisanje“, polje sporednog ključa može biti polje tipa „Broj“ ukoliko je svojstvo Veličina polja isto za oba polja. Na primer, možete povezati polje tipa „Automatsko numerisanje“ i polje tipa „Broj“ ako je svojstvo Veličina polja za oba polja „Dugački ceo broj“. Kada su oba zajednička polja tipa „Broj“, moraju imati istu postavku svojstva Veličina polja.
Kreiranje relacije među tabelama pomoću prozora „Relacije“
-
Na kartici Alatke baze podataka, u grupi Relacije, kliknite na dugme Relacije.
-
Na kartici Dizajn relacija , u grupi Relacije kliknite na dugme Dodaj tabele.
-
Izaberite neke tabele ili upite, a zatim kliknite na dugme Dodaj. Kada završite sa dodavanjem tabela i upita u prozor „Relacije“, kliknite na dugme Zatvori.
-
Prevucite polje (obično primarni ključ) iz jedne tabele u zajedničko polje (sporedni ključ) u drugoj tabeli. Da biste prevukli više polja, pritisnite taster CTRL, kliknite na svako polje, a zatim ih prevucite.
Pojavljuje se dijalog Uređivanje relacija. -
Proverite da li prikazana imena polja predstavljaju zajednička polja relacije. Ako je ime polja netačno, kliknite na njega i sa liste izaberite odgovarajuće polje.Nametanje referencijalnog integriteta.
Da biste nametnuli referencijalni integritet za ovu relaciju, potvrdite izbor u polju za potvrdu Nametni referencijalni integritet. Više informacija o referencijalnom integritetu potražite u odeljku -
Kliknite na dugme Kreiraj.
Access povlači relacionu liniju između dve tabele. Ako ste potvrdili izbor u polju za potvrdu Nametni referencijalni integritet, linija je deblja na krajevima. Pored toga, samo ako ste potvrdili izbor u polju za potvrdu Nametni referencijalni integritet, iznad debljeg dela na jednoj strani relacione linije pojavljuje se broj 1, a iznad debljeg dela na drugoj strani linije pojavljuje se simbol za beskonačno (∞).
Napomene:
-
Kreiranje relacije jedan-prema-jedan Oba zajednička polja (obično su to polja primarnog i sporednog ključa) moraju imati jedinstveni indeks. To znači da Indeksirano svojstvo za ova polja treba da bude postavljeno na opciju Da (bez duplikata). Ako oba polja imaju jedinstveni indeks, Access će kreirati relaciju jedan-prema-jedan.
-
Kreiranje relacije jedan-prema-više Polje na strani „jedan“ (obično je to primarni ključ) relacije mora imati jedinstveni indeks. To znači da svojstvo Indeksirano za ovo polje treba da bude postavljeno na opciju Da (bez duplikata). Polje na strani „više“ ne bi trebalo da ima jedinstveni indeks. Ono može imati indeks, ali mora dozvoljavati duplikate. To znači da bi svojstvo Indeksirano za ovo polje trebalo da bude postavljeno na vrednost Ne ili Da (duplikati su u redu). Kada jedno polje ima jedinstveni indeks, a drugo nema, Access kreira relaciju jedan-prema-više.
-
Kreiranje relacije među tabelama uz upotrebu okna „Lista polja“ za dodavanje polja
U postojeću tabeli koje je otvorena u prikazu lista sa podacima možete dodati polje tako što ćete ga prevući iz okna Lista polja. Okno Lista polja prikazuje dostupna polja u tabelama u relaciji, kao i dostupna polja u drugim tabelama.
Kada prevučete polje iz „druge“ (nepovezane) tabele, a zatim dovršite čarobnjak za pronalaženje, nova relacija jedan-prema-više će se automatski kreirati između tabele u oknu Lista polja i tabele u koju ste prevukli polje. Ova relacija, koju je kreirao Access, ne nameće podrazumevano referencijalni integritet. Morate da uredite relaciju da biste nametnuli referencijalni integritet. Više informacije potražite u odeljku Uređivanje relacije.
Otvaranje tabele u prikazu lista sa podacima
-
U oknu za navigaciju kliknite dvaput na tabelu.
Otvaranje okna „Lista polja“
-
Pritisnite kombinaciju tastera ALT+F8. Pojaviće se okno Lista polja.
Sve druge tabele u bazi podataka okno Lista polja prikazuje grupisane u kategorije. Kada radite sa tabelom u prikazu lista sa podacima, Access prikazuje polja u dve kategorije u oknu Lista polja: Polja dostupna u srodnim tabelama i Polja dostupna u ostalim tabelama. Prva kategorija prikazuje sve tabele koje su u relaciji sa tabelom sa kojom trenutno radite. Druga kategorija prikazuje sve tabele sa kojima vaša tabela nema relacije.
Kada u oknu Lista polja kliknete na znak plus (+) pored imena tabele, videćete listu imena svih polja koja su dostupna u toj tabeli. Da biste u tabelu dodali polje, prevucite željeno polje iz okna Lista polja u tabelu u prikazu lista sa podacima.
Dodavanje polja i kreiranje relacije iz okna „Lista polja“
-
U tabeli otvorenoj u prikazu lista sa podacima pritisnite kombinaciju tastera ALT+F8. Pojaviće se okno Lista polja.
-
U okviru Polja dostupna u ostalim tabelama kliknite na znak plus (+) pored imena neke tabele da biste prikazali listu polja u toj tabeli.
-
Prevucite željeno polje iz okna Lista polja u tabelu otvorenu u prikazu lista sa podacima.
-
Kada se pojavi linija za umetanje, otpustite polje na odgovarajući položaj.
Pokrenuće se čarobnjak za pronalaženje.
-
Sledite uputstva da biste dovršili čarobnjak za pronalaženje.
Polje će se pojaviti u tabeli u prikazu lista sa podacima.
Kada prevučete polje iz „druge“ (nepovezane) tabele, a zatim dovršite čarobnjak za pronalaženje, nova relacija jedan-prema-više biće automatski kreirana između tabele u oknu Lista polja i tabele u koju ste prevukli polje. Ova relacija, koju je kreirao Access, ne nameće podrazumevano referencijalni integritet. Morate da uredite relaciju da biste nametnuli referencijalni integritet. Više informacije potražite u odeljku Uređivanje relacije.
Uređivanje relacije
Relaciju možete da promenite tako što ćete je izabrati u prozoru „Relacije“ i urediti.
-
Pažljivo postavite kursor na relacionu liniju, a zatim kliknite na liniju da biste je izabrali.
Relaciona linija postaje deblja kada se izabere.
-
Kada izaberete relacionu liniju, kliknite dvaput na nju.
ili
Na kartici Dizajn relacija , u grupi Alatke kliknite na dugme Uredi relacije.
Pojavljuje se dijalog Uređivanje relacija.
Otvaranje dijaloga „Uređivanje relacija“
-
Na kartici Alatke baze podataka, u grupi Relacije, kliknite na dugme Relacije.
-
Na kartici Dizajn relacija , u grupi Relacije izaberite stavku Sve relacije.
Prikazuju se sve tabele sa relacijama, kao i relacione linije. Imajte na umu da skrivene tabele (tabele za koje je u dijalogu Svojstva potvrđen izbor u polju za potvrdu Skriveno) i njihove relacije neće biti prikazane, osim ako je u dijalogu Opcije navigacije potvrđen izbor „Prikaži skrivene objekte“ u polju za potvrdu.
-
Kliknite na relacionu liniju koja odgovara relaciji koju želite da promenite. Relaciona linija postaje deblja kada je izabrana.
-
Kliknite dvaput na relacionu liniju.
– ili –
Na kartici Dizajn relacija , u grupi Alatke kliknite na dugme Uredi relacije.
Pojaviće se dijalog Uređivanje relacija.
-
Unesite promene, a zatim kliknite na dugme U redu.
Dijalog Uređivanje relacija omogućava vam da promenite relaciju između tabela. Tačnije, možete promeniti tabele i upite sa obe strane relacije ili polja sa obe strane. Takođe možete postaviti tip spajanja ili nametnuti referencijalni integritet i odabrati kaskadnu opciju. Više informacija o tipu spajanja i njegovom postavljanju potražite u odeljku Postavljanje tipa spajanja. Više informacija o nametanju referencijalnog integriteta i izboru kaskadne opcije potražite u odeljku Nametanje referencijalnog integriteta.
Postavljanje tipa spoja
Kada definišete relaciju među tabelama, činjenice o relaciji obezbeđuju informacije za dizajn upita. Na primer, ako definišete relaciju između dve tabele, a zatim kreirate upit koji koristi te tabele, Access automatski bira podrazumevana podudarna polja na osnovu polja navedenih u relaciji. Možete zameniti ove inicijalne podrazumevane vrednosti u svom upitu, ali vrednosti dobijene na osnovu relacije će najčešće biti ispravne. Pošto pronalaženje podudarnih podataka iz više tabela i njihovo spajanje predstavlja radnju koju ćete često obavljati u svim osim u najjednostavnijim bazama podataka, postavljanje podrazumevanih vrednosti kreiranjem relacija može da doprinese uštedi vremena, kao i da bude korisno.
Upit za više tabela kombinuje informacije iz više tabela tako što podudara vrednosti u istim poljima. Operacija povezivanja i kombinovanja naziva se spajanje. Na primer, pretpostavimo da želite da prikažete porudžbine klijenata. Kreirate upit koji spaja tabelu „Klijenti“ i tabelu „Porudžbine“ putem polja „ID klijenta“. Rezultat upita sadrži informacije o klijentima i informacije o porudžbinama samo za one redove u kojima je pronađeno odgovarajuće podudaranje.
Jedna od vrednosti koju možete da navedete za svaku relaciju jeste tip spajanja. Tip spajanja govori programu Access koje zapise treba da uključi u rezultat upita. Na primer, ponovo razmotrite upit koji spaja tabelu „Klijenti“ i tabelu „Porudžbine“ putem zajedničkog polja koje predstavlja „ID klijenta“. Korišćenjem podrazumevanog tipa spoja (koji se naziva unutrašnji spoj) upit vraća samo redove iz tabele „Klijenti“ i redove iz tabele „Porudžbine“ u kojima su zajednička polja (nazivaju se i spojena polja) jednaka.
Međutim, pretpostavimo da želite da uključite sve klijente – čak i one koji još uvek nisu napravili porudžbine. Unutrašnji spoj morate da zamenite spojem koji se naziva levi spoljni spoj kako biste ovo postigli. Levi spoljni spoj vraća sve redove iz tabele na levoj strani relacije i samo redove koji se podudaraju iz tabele na desnoj strani. Desni spoljni spoj vraća sve redove na desnoj strani i samo one koji se podudaraju na levoj strani.
Napomena: U ovom slučaju, „levo“ i „desno“ se odnosi na pozicije tabela u dijalogu Uređivanje relacija, a ne u prozoru „Relacije“.
Trebalo bi da razmislite o rezultatu koji ćete najčešće želeti da dobijete od upita koji spaja tabele u ovoj relaciji, a zatim postavite odgovarajući tip spoja.
Postavljanje tipa spoja
-
U dijalogu Uređivanje relacija kliknite na dugme Tip spoja.
Pojaviće se dijalog Svojstva spoja.
-
Izaberite svoj izbor, a zatim kliknite na dugme U redu.
Sledeća tabela (uz upotrebu tabela „Klijenti“ i „Porudžbine“) prikazuje tri opcije koje se vide u dijalogu Svojstva spajanja, tip spajanja koji one koriste, kao i da li se vraćaju svi redovi ili samo podudarni redovi za svaku tabelu.
Izbor |
Relacioni spoj |
Leva tabela |
Desna tabela |
---|---|---|---|
1. Uključi samo redove u kojima su spojena polja iz obe tabele jednaka |
Unutrašnji spoj |
Redovi koji se podudaraju |
Redovi koji se podudaraju |
2. Uključi SVE zapise iz tabele „Klijenti“ i samo one zapise iz tabele „Porudžbine“ u kojima su spojena polja jednaka |
Levi spoljni spoj |
Svi redovi |
Redovi koji se podudaraju |
3. Uključi SVE zapise iz tabele „Porudžbine“ i samo one zapise iz tabele „Klijenti“ u kojima su spojena polja jednaka |
Desni spoljni spoj |
Podudarni redovi |
Svi redovi |
Ako odaberete opciju 2 ili opciju 3, na relacionoj liniji će biti prikazana strelica. Ova strelica je usmerena prema onoj strani relacije koja prikazuje samo redove koji se podudaraju.
Promene u dijalogu „Svojstva spajanja“
-
Na kartici Alatke baze podataka, u grupi Relacije izaberite stavku Relacije.
-
Na kartici Dizajn relacija , u grupi Relacije izaberite stavku Sve relacije.
Prikazuju se sve tabele koje imaju relacije i prikazuju relacione linije. Imajte na umu da skrivene tabele (tabele za koje je u dijalogu Svojstva potvrđen izbor u polju za potvrdu Skriveno) i njihove relacije neće biti prikazane, osim ako je u dijalogu Opcije navigacije potvrđen izbor „Prikaži skrivene objekte“ u polju za potvrdu. -
Kliknite na relacionu liniju koja odgovara relaciji koju želite da promenite. Relaciona linija postaje deblja kada je izabrana.
-
Kliknite dvaput na relacionu liniju. Pojaviće se dijalog Uređivanje relacija.
-
Izaberite stavku Tip spoja.
-
U dijalogu Svojstva spajanja izaberite opciju, a zatim kliknite na dugme U redu.
-
Unesite dodatne promene u relaciju, a zatim kliknite na dugme U redu.
Nametanje referencijalnog integriteta
Svrha referencijalnog integriteta je sprečavanje pojave „siročića“ – zapisa koji upućuju na druge zapise koji više ne postoje. Referencijalni integritet namećete tako što ga omogućavate za relaciju među tabelama. Kada je referencijalni integritet jednom nametnut, Access odbija svaku operaciju koja bi narušila referencijalni integritet te relacije među tabelama. To znači da će Access odbiti da izvrši ažuriranja koja menjaju odredište reference, kao i brisanja koja uklanjaju odredište reference. Pročitajte odeljak Postavljanje kaskadnih opcija da biste saznali kako da podesite Access da prosleđuje referencijalna ažuriranja i brisanja, tako da se svi redovi u relaciji saglasno menjaju.
Uključivanje ili isključivanje referencijalnog integriteta
-
Na kartici Alatke baze podataka, u grupi Relacije izaberite stavku Relacije.
-
Na kartici Dizajn relacija , u grupi Relacije izaberite stavku Sve relacije.
Prikazuju se sve tabele sa relacijama koje prikazuju relacione linije. Imajte na umu da skrivene tabele (tabele za koje je u dijalogu Svojstva potvrđen izbor u polju za potvrdu Skriveno) i njihove relacije neće biti prikazane, osim ako je u dijalogu Opcije navigacije potvrđen izbor „Prikaži skrivene objekte“ u polju za potvrdu. -
Kliknite na relacionu liniju koja odgovara relaciji koju želite da promenite. Relaciona linija postaje deblja kada je izabrana.
-
Kliknite dvaput na relacionu liniju. Pojaviće se dijalog Uređivanje relacija.
-
Potvrdite ili opozovite izbor u polju za potvrdu Nametni referencijalni integritet.
-
Unesite dodatne promene u relaciju, a zatim kliknite na dugme U redu.
Ako nametnete referencijalni integritet, primenjuju se sledeća pravila:
-
U polje sporednog ključa povezane tabele nije moguće uneti vrednost ako ta vrednost ne postoji u polju primarnog ključa primarne tabele – time biste kreirali zapise koji su siročići.
-
Zapis iz primarne tabele ne možete izbrisati ako postoje podudarni zapisi u povezanoj tabeli. Na primer, ne možete izbrisati zapis o zaposlenom iz tabele „Zaposleni“ ako u tabeli „Porudžbine“ postoje porudžbine dodeljene tom zaposlenom. Međutim, možete odabrati da izbrišete primarni zapis i sve povezane zapise u jednoj operaciji tako što ćete potvrditi izbor u polju za potvrdu Kaskadno izbriši povezane zapise.
-
Vrednost primarnog ključa u primarnoj tabeli ne možete da promenite ako će to dovesti do kreiranja zapisa siročići. Na primer, ne možete da promenite broj porudžbine u tabeli „Porudžbine“ ako postoje stavke dodeljene toj porudžbini u tabeli „Detalji porudžbine“. Možete, međutim, odabrati da jednom operacijom ažurirate primarni zapis i sve povezane zapise potvrđivanjem izbora u polju za potvrdu Kaskadno ažuriranje povezanih polja.
Napomene: Ako nailazite na teškoće u omogućavanju referencijalnog integriteta, imajte u vidu da su sledeći uslovi potrebni da bi se nametnuo referencijalni integritet:
-
Zajedničko polje u primarnoj tabeli mora da bude primarni ključ ili da ima jedinstveni indeks.
-
Zajednička polja moraju da imaju isti tip podataka. Jedini izuzetak je da polje tipa „Automatsko numerisanje“ može da bude povezano sa poljem tipa „Broj“ kome je svojstvo Veličina polja postavljeno na opciju Dugački ceo broj.
-
Obe tabele moraju da postoje u istoj Access bazi podataka. Referencijalni integritet nije moguće nametnuti u povezanim tabelama. Međutim, ako je izvorna tabela u Access formatu, možete da otvorite bazu podataka u kojoj su one uskladištene i omogućite referencijalni integritet u toj bazi podataka.
-
Postavljanje kaskadnih opcija
Možete naići na situaciju u kojoj imate opravdanu potrebu da promenite vrednost na strani „jedan“ relacije. U takvom slučaju je potrebno da Access automatski, kao deo jedne operacije, ažurira sve redove na koje promena utiče. Na taj način, ažuriranje se u potpunosti dovršava kako baza podataka ne bi ostala u neusaglašenom stanju – gde su neki redovi ažurirani, a neki ne. Podržavanjem opcije „Kaskadno ažuriranje povezanih polja“, Access vam pomaže da izbegnete ovaj problem. Kada nametnete referencijalni integritet i odaberete opciju „Kaskadno ažuriranje povezanih polja“, a zatim ažurirate primarni ključ, Access automatski ažurira sva polja koja upućuju na taj primarni ključ.
Možda će takođe biti potrebno da izbrišete red i sve povezane zapise – na primer, zapis špeditera i sve povezane porudžbine za tog špeditera. Iz tog razloga Access podržava opciju „Kaskadno izbriši povezane zapise“. Kada nametnete referencijalni integritet i odaberete opciju Kaskadno izbriši povezane zapise, Access automatski briše sve zapise koji upućuju na taj primarni ključ kada izbrišete zapis koji sadrži primarni ključ.
Uključivanje ili isključivanje kaskadnog ažuriranja i/ili kaskadnog brisanja
-
Na kartici Alatke baze podataka, u grupi Relacije izaberite stavku Relacije.
-
Na kartici Dizajn relacija , u grupi Relacije izaberite stavku Sve relacije.
Prikazuju se sve tabele sa relacijama koje prikazuju relacione linije. Imajte na umu da skrivene tabele (tabele za koje je u dijalogu Svojstva potvrđen izbor u polju za potvrdu Skriveno) i njihove relacije neće biti prikazane, osim ako je u dijalogu Opcije navigacije potvrđen izbor „Prikaži skrivene objekte“ u polju za potvrdu. -
Kliknite na relacionu liniju koja odgovara relaciji koju želite da promenite. Relaciona linija postaje deblja kada je izabrana.
-
Kliknite dvaput na relacionu liniju.
Pojavljuje se dijalog Uređivanje relacija. -
Potvrdite izbor u polju za potvrdu Nametni referencijalni integritet.
-
Potvrdite izbor u polju za potvrdu Kaskadno ažuriraj povezana polja ili Kaskadno izbriši povezane zapise ili u oba.
-
Unesite dodatne promene u relaciju, a zatim kliknite na dugme U redu.
Napomena: Ako je primarni ključ polje tipa „Automatsko numerisanje“, potvrda izbora u polju za potvrdu Kaskadno ažuriraj povezana polja neće imati efekta zato što ne možete promeniti vrednost u polju tipa „Automatsko numerisanje“.
Brisanje relacije među tabelama
Važno: Kada uklonite relaciju, uklanjate i podršku za referencijalni integritet za tu relaciju ukoliko je to omogućeno. Kao rezultat toga, Access više neće automatski sprečavati kreiranje zapisa siročića na strani „više“ relacije.
Morate da izbrišete relacionu liniju u prozoru „Relacije“ da biste izbrisali relaciju među tabelama. Postavite kursor na relacionu liniju, a zatim kliknite na liniju. Relaciona linija postaje deblja kada se izabere. Kada izaberete relacionu liniju, pritisnite taster DELETE.
-
Na kartici Alatke baze podataka, u grupi Relacije izaberite stavku Relacije.
-
Na kartici Dizajn relacija , u grupi Relacije izaberite stavku Sve relacije.
Prikazuju se sve tabele sa relacijama koje prikazuju relacione linije. Imajte na umu da skrivene tabele (tabele za koje je u dijalogu Svojstva potvrđen izbor u polju za potvrdu Skriveno) i njihove relacije neće biti prikazane, osim ako je u dijalogu Opcije navigacije potvrđen izbor „Prikaži skrivene objekte“ u polju za potvrdu. -
Kliknite na relacionu liniju koja odgovara relaciji koju želite da izbrišete. Relaciona linija postaje deblja kada se izabere.
-
Pritisnite taster DELETE.
-
Access može prikazati poruku Želite li zaista da trajno izbrišete izabranu relaciju iz baze podataka?. Ako se pojavi ova poruka potvrde, kliknite na dugme Da.
Napomena: Relaciju nećete moći da izbrišete ako druga osoba ili proces trenutno koristi neku od tabela upotrebljenih u relaciji među tabelama ili ukoliko se neka tabela koristi u otvorenom objektu baze podataka (kao što je obrazac). Prvo morate zatvoriti sve otvorene objekte koji koriste ove tabele da biste mogli da izbrišete relaciju.
Takođe pogledajte
Dodavanje polja za pronalaženje u tabelu
Poređenje dve tabele u programu Access i pronalaženje samo podataka koji se podudaraju