Vodič za relacije među tabelama

Jedan od ciljeva dobrog dizajna baze podataka jeste uklanjanje redundantnosti podataka (dupliranih podataka). Za postizanje tog cilja, potrebno je da podatke podelite u više tabela zasnovanih na temi kako bi svaka činjenica bila predstavljena samo jednom. Zatim programu Access obezbedite način na koji će podeljene informacije ponovo spojiti – to radite postavljanjem zajedničkih polja u tabele koje su povezane. Međutim, da biste ispravno izvršili ovaj korak, prvo morate razumeti relacije između tabela, a zatim navesti te relacije u bazi podataka.

Više informacija potražite u članku Osnove dizajniranja baze podataka.

Ovaj članak ne pokriva relacije u veb bazi podataka. Veb baze podataka ne podržavaju prozor „Relacije“. Možete da koristite polja za pronalaženje da biste kreirali relacije u veb bazi podataka. Više informacija potražite u članku Izgradnja baze podataka za deljenje na vebu.

U ovom članku

Uvod

Tipovi relacija među tabelama

Zašto kreirati relacije među tabelama?

Razumevanje referencijalnog integriteta

Prikaz relacija među tabelama

Kreiranje relacije među tabelama

Brisanje relacije među tabelama

Promena relacije među tabelama

Nametanje referencijalnog integriteta

Uvod

Kada kreirate tabelu za svaku temu u bazi podataka, programu Access morate da date sredstva kojima će po potrebi ponovo spojiti te informacije. Ovo postižete postavljanjem zajedničkih polja u tabele koje su povezane i definisanjem relacija između tabela. Zatim možete da kreirate upite, obrasce i izveštaje koji istovremeno prikazuju informacije iz nekoliko tabela. Na primer, prikazani obrazac sadrži informacije izvučene iz nekoliko tabela:

Obrazac „Porudžbine“ istovremeno prikazuje povezane informacije iz pet tabela

1. Informacije u ovom obrascu potiču iz tabele „Klijenti“…

2. …tabele „Porudžbine“…

3. …tabele „Proizvodi“…

4. …i tabele „Detalji porudžbine“.

Ime klijenta u polju Ispostavi račun preuzeto je iz tabele „Klijenti“, vrednosti za ID porudžbine i datum porudžbine preuzete su iz tabele „Porudžbine“, ime proizvoda potiče iz tabele „Proizvodi“, a vrednosti za cenu po jedinici i količinu potiču iz tabele „Detalji porudžbine“. Ove tabele su međusobno povezane na više načina kako bi se informacije iz svake od njih našle u obrascu.

U prethodnom primeru, polja u tabelama moraju biti koordinisana tako da prikazuju informacije o istoj porudžbini. Ova koordinacija je postignuta korišćenjem relacija među tabelama. Relacija među tabelama funkcioniše tako što podudara podatke u ključnim poljima – često se radi o polju sa istim imenom u obe tabele. U većini slučajeva, polja koja se podudaraju su primarni ključ iz jedne tabele, koji obezbeđuje jedinstveni identifikator svakog zapisa i sporedni ključ u drugoj tabeli. Na primer, zaposleni mogu biti povezani sa porudžbinama za koje su odgovorni kreiranjem relacije među tabelama između polja „ID zaposlenog“ u tabelama „Zaposleni“ i „Porudžbine“.

Polje „ID zaposlenog“ korišćeno kao primarni ključ u tabeli „Zaposleni“ i kao sporedni ključ u tabeli „Porudžbine“.

1. Polje „ID zaposlenog“ pojavljuje se u obe tabele – kao primarni ključ ...

2. ... i kao sporedni ključ.

Vrh stranice

Tipovi relacija među tabelama

Postoje tri tipa relacija među tabelama.

  • Relacija jedan-prema-više

    Razmislite o bazi podataka za praćenje porudžbina koja sadrži tabele „Klijenti“ i „Porudžbine“. Klijent može da napravi neograničen broj porudžbina. Iz toga sledi da za svakog kupca iz tabele „Klijenti“ može da postoji više porudžbina u tabeli „Porudžbine“. Relacija između tabela „Klijenti“ i „Porudžbine“ stoga predstavlja relaciju jedan-prema-više.

    Uzmite primarni ključ na strani relacije „jedan“ i dodajte ga kao dodatna polja u tabelu na strani relacije „više“ kako biste u dizajnu baze podataka predstavili relaciju jedan-prema-više. U ovom slučaju, na primer, dodajete novo polje – polje ID-a iz tabele „Klijenti“ – u tabelu „Porudžbine“ i dajete mu ime „ID klijenta“. Access zatim može da koristi broj ID-ova klijenata u tabeli „Porudžbine“ da bi pronašao odgovarajućeg klijenta za svaku porudžbinu.

  • Relacija više-prema-više

    Razmislite o relaciji između tabela „Proizvodi“ i „Porudžbine“. Jedna porudžbina može da sadrži više proizvoda. S druge strane, jedan proizvod može da se pojavi u više porudžbina. Prema tome, za svaki zapis u tabeli „Porudžbine“ može da postoji više zapisa u tabeli „Proizvodi“. Osim toga, za svaki zapis u tabeli „Proizvodi“ može da postoji više zapisa u tabeli „Porudžbine“. Ova tip relacije se naziva relacija više-prema-više jer za svaki proizvod može da postoji veći broj porudžbina, a za svaku porudžbinu može da postoji veći broj proizvoda. Imajte u vidu da je važno da razmotrite obe strane relacije kako biste otkrili postojeće relacije više-prema-više između tabela.

    Moraćete da kreirate treću tabelu, koja se često naziva vezna tabela, kako biste predstavili relaciju više-prema-više. Ona deli relaciju više-prema-više na dve relacije jedan-prema-više. Primarni ključ iz obe tabele umećete u treću tabelu. Kao rezultat toga, treća tabela zapisuje svako pojavljivanje ili instancu relacije. Na primer, tabele „Porudžbine“ i „Proizvodi“ imaju relaciju više-prema-više koja je definisana kreiranjem dve relacije jedan-prema-više sa tabelom „Detalji porudžbine“. Jedna porudžbina može imati više proizvoda i svaki proizvod se može pojaviti na više porudžbina.

  • Relacija jedan-prema-jedan

    U relaciji jedan-prema-jedan svaki zapis u prvoj tabeli može da ima samo jedan podudarni zapis u drugoj tabeli i svaki zapis iz druge tabele može da ima samo jedan podudarni zapis iz prve tabele. Ova tip relacije nije uobičajen zato što su informacije povezane na ovaj način najčešće uskladištene u istoj tabeli. Relaciju jedan-prema-jedan možete da koristite da biste podelili tabelu sa više polja, da biste izolovali deo tabele iz bezbednosnih razloga ili da biste uskladištili informacije koje se primenjuju samo na podskup glavne tabele. Kada identifikujete takvu relaciju, obe tabele moraju da dele zajedničko polje.

Vrh stranice

Zašto kreirati relacije među tabelama?

Relacije među tabelama možete da kreirate izričitim korišćenjem prozora „Relacije“ ili prevlačenjem polja iz okna Lista polja. Access koristi relacije među tabelama da bi odlučio kako se spajaju tabele kada treba da ih koristite u objektu baze podataka. Postoji više razloga zbog kojih treba da kreirate relacije među tabelama pre nego što kreirate druge objekte baze podataka, kao što su obrasci, upiti i izveštaji.

  • Relacije među tabelama utiču na dizajn upita

    Morate da kreirate upit koji spaja tabele da biste radili sa zapisima iz više tabela. Upit funkcioniše tako što povezuje vrednosti polja primarnog ključa prve tabele sa poljem sporednog ključa u drugoj tabeli. Na primer, da biste dobili redove koji prikazuju sve porudžbine za svakog kupca, kreiraćete upit koji na osnovu polja „ID kupca“ spaja tabelu „Klijenti“ sa tabelom „Porudžbine“. U prozoru „Relacije“ možete ručno da navedete polja koja će biti spojena. Međutim, ako već imate definisanu relaciju među tabelama, Access pruža podrazumevano spajanje na osnovu postojeće relacije među tabelama. Pored toga, ako koristite neki čarobnjak za upite, Access upotrebljava informacije koje prikuplja iz relacija među tabelama koje ste već definisali kako bi vam predstavio dovoljnu količinu informacija na osnovu kojih možete birati, kao i da bi unapred popunio postavke svojstava odgovarajućim podrazumevanim vrednostima.

  • Relacije među tabelama obezbeđuju informacije za dizajn obrazaca i izveštaja

    Kada dizajnirate obrazac ili izveštaj, Access upotrebljava informacije koje prikuplja iz relacija među tabelama koje ste već definisali kako bi vam predstavio dovoljnu količinu informacija na osnovu kojih možete birati, kao i da bi unapred popunio postavke svojstava odgovarajućim podrazumevanim vrednostima.

  • Relacije među tabelama predstavljaju osnovu na koju možete nametnuti referencijalni integritet da biste u bazi podataka sprečili pojavu zapisa koji su siročići. Zapis koji je siroče jeste zapis sa referencom na drugi zapis koji ne postoji – na primer, zapis porudžbine koji referencira zapis klijenta koji ne postoji.

    Kada dizajnirate bazu podataka, informacije delite u tabele od kojih svaka ima primarni ključ. Nakon toga, u povezane tabele dodajete sporedne ključeve koji referenciraju ove primarne ključeve. Parovi sporedni ključ-primarni ključ formiraju osnovu relacija među tabelama i upita za više tabela. Zbog toga je važno da reference sporedni ključ-primarni ključ budu sinhronizovane. Referencijalni integritet pomaže u održavanju sinhronizovanosti referenci i zavisi od relacija među tabelama.

Vrh stranice

Razumevanje referencijalnog integriteta

Kada dizajnirate bazu podataka, informacije delite u više tabela na osnovu teme kako biste umanjili redundantnost podataka. Zatim programu Access date sredstva pomoću kojih će se podaci ponovo spojiti postavljanjem zajedničkih polja u povezane tabele. Na primer, da biste predstavili relaciju jedan-prema-više, uzećete primarni ključ iz tabele „jedan“ i dodati ga kao dodatno polje u tabelu „više“. Da bi povezao podatke, Access preuzima vrednost iz tabele „više“ i traži odgovarajuću vrednost u tabeli „jedan“. Na ovaj način, vrednosti u tabeli „više“ referenciraju odgovarajuće vrednosti u tabeli „jedan“.

Pretpostavimo da imate relaciju „jedan-prema-više“ između tabela „Špediteri“ i „Porudžbine“ i želite da izbrišete nekog špeditera. Ako špediter koga želite da izbrišete ima porudžbine u tabeli „Porudžbine“, one će postati „siročići“ kada izbrišete zapis. Porudžbine će još uvek sadržati ID špeditera, ali ID više neće biti važeći zato što zapis koji on referencira više ne postoji.

Svrha referencijalnog integriteta jeste sprečavanje pojave siročića i održavanje sinhronizovanosti referenci kako do ove hipotetičke situacije nikada ne bi došlo.

Referencijalni integritet možete da nametnete kada ga omogućite za relacije među tabelama (detaljna uputstva potražite u odeljku Nametanje referencijalnog integriteta). Kada je referencijalni integritet jednom nametnut, Access odbija svaku operaciju koja narušava 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. Međutim, moguće je da imate potpuno opravdanu potrebu da promenite primarni ključ za špeditera koji ima porudžbine u tabeli „Porudžbine“. U takvim slučajevima potrebno je da Access, kao deo jedne operacije, automatski ažurira sve redove na koje promena utiče. Na taj način Access obezbeđuje izvršavanje kompletnog ažuriranja i konzistentnost baze podataka, pri čemu su svi redovi ažurirani. Iz ovog razloga, Access podržava opciju „Kaskadno ažuriraj povezana polja“. Kada nametnete referencijalni integritet i odaberete opciju „Kaskadno ažuriraj povezana polja“, a zatim ažurirate primarni ključ, Access će automatski ažurirati sva polja koja referenciraju taj primarni ključ.

Takođe je moguće da imate potpuno opravdanu potrebu 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“, a zatim izbrišete zapis na strani primarnog ključa relacije, Access će automatski izbrisati sve zapise koji referenciraju taj primarni ključ.

Vrh stranice

Prikaz relacija među tabelama

Na kartici Alatke baze podataka kliknite na dugme Relacije da biste prikazali relacije među tabelama. Otvoriće se prozor „Relacije“ u kome su prikazane sve postojeće relacije. Ako nijedna relacija među tabelama nije definisana, a prozor „Relacije“ otvarate prvi put, Access će zatražiti od vas da u prozor dodate tabelu ili upit.

Otvaranje prozora „Relacije“

  1. Na kartici Datoteka kliknite na dugme Otvori.

  2. U dijalogu Otvaranje izaberite i otvorite bazu podataka.

  3. Na kartici Alatke baze podataka, u grupi Relacije kliknite na dugme Relacije.

  4. Ako baza podataka sadrži relacije, pojaviće se prozor „Relacije“. Ako baza podataka ne sadrži relacije, a prozor „Relacije“ otvarate prvi put, pojaviće se dijalog Prikazivanje tabele. Kliknite na dugme Zatvori da biste zatvorili dijalog.

  5. Na kartici Dizajn, u grupi Relacije, kliknite na dugme Sve relacije.

    U prozoru su prikazane sve definisane relacije u bazi podataka. Imajte u vidu da se skrivene tabele (tabele za koje je u dijalogu Svojstva potvrđen izbor u polju za potvrdu Skriveno) i njihove relacije neće prikazati, osim ako je u dijalogu Opcije za navigaciju potvrđen izbor u polju za potvrdu Prikaži skrivene objekte.

Relacija među tabelama je predstavljena relacionom linijom povučenom između tabela u prozoru „Relacije“. Relacija za koju nije nametnut referencijalni integritet pojavljuje se kao tanka linija između zajedničkih polja koja podržavaju tu relaciju. Kada izaberete ovu relaciju klikom na liniju, linija će postati deblja, što označava da je izabrana. Ako nametnete referencijalni integritet za ovu relaciju, linija će postati deblja na krajevima. Osim toga, broj 1 će se pojaviti iznad debljeg dela linije na jednoj strani relacije, a simbol za beskonačno () iznad debljeg dela linije na drugoj strani.

Kada je prozor „Relacije“ aktivan, na traci možete izabrati neku od sledećih komandi:

Na kartici Dizajn, u grupi Alatke:

  • Uredi relacije    Otvara dijalog Uređivanje relacija. Kada izaberete relacionu liniju, možete kliknuti na dugme Uredi relacije da biste promenili relaciju među tabelama. Možete takođe dvaput da kliknete na relacionu liniju.

  • Obriši raspored    Uklanja sve tabele i relacije iz prikaza u prozoru „Relacije“. Imajte u vidu da ova komanda samo sakriva tabele i relacije – ne briše ih.

  • Izveštaj o relacijama    Kreira izveštaj koji prikazuje tabele i relacije u bazi podataka. Izveštaj prikazuje samo tabele i relacije koje nisu skrivene u prozoru „Relacije“.

Na kartici Dizajn, u grupi Relacije:

  • Prikazivanje tabele    Otvara dijalog Prikazivanje tabele kako biste mogli da izaberete tabele i upite za prikaz u prozoru „Relacije“.

  • Sakrij tabelu    Sakriva izabranu tabelu u prozoru „Relacije“.

  • Direktne relacije    Prikazuje sve relacije i povezane tabele za izabranu tabelu u prozoru „Relacije“, ukoliko one već nisu prikazane.

  • Sve relacije    Prikazuje sve relacije i povezane tabele u bazi podataka u prozoru „Relacije“. 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 u polju za potvrdu „Prikaži skrivene objekte“.

  • Zatvori    Zatvara prozor „Relacije“. Ako ste promenili raspored u prozoru „Relacije“, bićete upitani da li želite da sačuvate promene.

Vrh stranice

Kreiranje relacije među tabelama

Relaciju među tabelama možete da kreirate koristeći prozor „Relacije“ ili prevlačenjem polja iz okna Lista polja u list sa podacima. Kada kreirate relaciju među tabelama, nije neophodno da zajednička polja imaju ista imena, mada je to često slučaj. Važnije je da ova polja sadrže 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“

  1. Na kartici Datoteka kliknite na dugme Otvori.

  2. U dijalogu Otvaranje izaberite i otvorite bazu podataka.

  3. Na kartici Alatke baze podataka, u grupi Relacije kliknite na dugme Relacije.

  4. Ako još uvek niste definisali relacije, automatski će se pojaviti dijalog Prikazivanje tabele. Ukoliko se ne pojavi, na kartici Dizajn, u grupi Relacije kliknite na dugme Prikazivanje tabele.

U dijalogu Prikazivanje tabele biće prikazane sve tabele i upiti u bazi podataka. Izaberite karticu Tabele da biste videli samo tabele. Izaberite karticu Upiti da biste videli samo upite. Izaberite karticu Oba da biste videli i tabele i upite.

  1. 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.

  2. 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.

Pojaviće se dijalog Uređivanje relacija.

  1. Proverite da li prikazana imena polja predstavljaju zajednička polja relacije. Ako je ime polja netačno, kliknite na ime polja i izaberite novo polje sa liste.

Potvrdite izbor u polju za potvrdu Nametni referencijalni integritet da biste nametnuli referencijalni integritet za ovu relaciju. Više informacija o referencijalnom integritetu potražite u odeljcima Razumevanje referencijalnog integriteta i Nametanje referencijalnog integriteta.

  1. Kliknite na dugme Kreiraj.

    Relaciona linija će biti povučena između dve tabele. Ako ste potvrdili izbor u polju za potvrdu Nametni referencijalni integritet, linija će izgledati deblje na krajevima. Pored toga, samo ako ste potvrdili izbor u polju za potvrdu Nametni referencijalni integritet, broj 1 će se pojaviti iznad debljeg dela linije na jednom kraju relacije, a simbol za beskonačno () će se pojaviti iznad debljeg dela linije na drugoj strani.

    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 svojstvo Indeksirano za ova polja treba da bude na 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“ relacije (obično je to primarni ključ) mora imati jedinstveni indeks. To znači da bi svojstvo Indeksirano za ovo polje trebalo da bude postavljeno na vrednost 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 pomoću okna „Lista polja“

U postojeću tabelu koja 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 informacija potražite u odeljku Promena relacije među tabelama.

Otvaranje tabele u prikazu lista sa podacima

  1. Na kartici Datoteka kliknite na dugme Otvori.

  2. U dijalogu Otvaranje izaberite i otvorite bazu podataka.

  3. U oknu za navigaciju kliknite desnim tasterom miša na tabelu u koju želite da dodate polje i kreirate relaciju, a zatim kliknite na dugme Otvori.

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“

  1. U oknu Lista polja, u okviru Polja dostupna u drugim tabelama kliknite na znak plus (+) pored imena tabele da biste prikazali listu polja u toj tabeli.

  2. Željeno polje prevucite iz okna Lista polja u tabelu koja je otvorena u prikazu lista sa podacima.

  3. Kada se pojavi linija za umetanje, otpustite polje na željenu poziciju.

    Pokrenuće se čarobnjak za pronalaženje.

  4. 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 Promena relacije među tabelama.

Vrh stranice

Brisanje relacije među tabelama

Morate da izbrišete relacionu liniju u prozoru „Relacije“ da biste izbrisali relaciju među tabelama. Pažljivo postavite kursor tako da pokazivač bude postavljen na relacionu liniju, a zatim kliknite na liniju. Relaciona linija postaje deblja ako je izabrana. Kada izaberete relacionu liniju, pritisnite taster DELETE. Imajte na umu da brisanjem relacije takođe uklanjate i podršku za referencijalni integritet za tu relaciju, ukoliko je bila omogućena. Kao rezultat toga, Access neće više automatski sprečavati kreiranje zapisa koji su siročići na strani relacije „više“.

  1. Na kartici Alatke baze podataka, u grupi Relacije kliknite na dugme Relacije.

Pojavljuje se prozor „Relacije“. Ako još uvek niste definisali relacije i ukoliko prvi put otvarate prozor „Relacije“, pojaviće se dijalog Prikazivanje tabele. Ukoliko se dijalog pojavi, kliknite na dugme Zatvori.

  • Na kartici Dizajn, u grupi Relacije, kliknite na dugme Sve relacije.

Sve tabele koje imaju relacije prikazane su sa relacionim linijama.

  1. Kliknite na relacionu liniju koja odgovara relaciji koju želite da izbrišete. Relaciona linija postaje deblja kada je izabrana.

  2. Pritisnite taster DELETE.

    – ili –

Kliknite desnim tasterom miša i izaberite stavku Izbriši.

  1. 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.

Vrh stranice

Promena relacije među tabelama

Relaciju među tabelama možete promeniti ako je izaberete u prozoru „Relacije“, a zatim je uredite. Pažljivo postavite kursor tako da pokazivač bude postavljen na relacionu liniju, a zatim kliknite na nju da biste je izabrali. Relaciona linija postaje deblja kada je izabrana. Kliknite dvaput na izabranu relacionu liniju ili na kartici Dizajn, u grupi Alatke kliknite na dugme Uredi relacije. Pojaviće se dijalog Uređivanje relacija.

Unošenje promena u dijalogu „Uređivanje relacija“

  1. Na kartici Alatke baze podataka, u grupi Relacije kliknite na dugme Relacije.

Pojavljuje se prozor „Relacije“. Ako još uvek niste definisali relacije i ukoliko prvi put otvarate prozor „Relacije“, pojaviće se dijalog Prikazivanje tabele. Ukoliko se dijalog pojavi, kliknite na dugme Zatvori.

  • Na kartici Dizajn, u grupi Relacije, kliknite na dugme Sve relacije.

  • Sve tabele koje imaju relacije prikazane su sa relacionim linijama.

  • Kliknite na relacionu liniju koja odgovara relaciji koju želite da promenite. Relaciona linija postaje deblja kada je izabrana.

  • Kliknite dvaput na relacionu liniju.

  • 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 pružaju informacije dizajnima 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. Ove početne podrazumevane vrednosti možete da zamenite, ali često će se ispostaviti da su vrednosti koje je dala relacija tačne. Budući da ćete često povezivati i objedinjavati podatke iz više tabela u svim bazama podataka, izuzev u jednostavnim, postavljanje podrazumevanih vrednosti putem kreiranja relacija može biti korisno i doprineti uštedi vremena.

Upit za više tabela kombinuje informacije iz više tabela povezujući vrednosti u zajedničkim 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“. Koristeći podrazumevani tip spajanja (naziva se unutrašnje spajanje), upit daje samo redove tabele „Klijenti“ i redove 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 postigli ovo. 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

  1. U dijalogu Uređivanje relacija kliknite na dugme Tip spoja.

    Pojaviće se dijalog Svojstva spoja.

  2. Izaberite željenu opciju, 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 su za svaku tabelu uključeni svi redovi ili samo podudarni redovi.

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“

  1. Na kartici Alatke baze podataka, u grupi Relacije kliknite na dugme Relacije.

Pojavljuje se prozor „Relacije“. Ako još uvek niste definisali relacije i ukoliko prvi put otvarate prozor „Relacije“, pojaviće se dijalog Prikazivanje tabele. Ukoliko se dijalog pojavi, kliknite na dugme Zatvori.

  • Na kartici Dizajn, u grupi Relacije, kliknite na dugme Sve relacije.

    Sve tabele koje imaju relacije prikazane su sa relacionim linijama

  • 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.

  1. Izaberite stavku Tip pridruživanja

  2. U dijalogu Svojstva spoja izaberite opciju, a zatim kliknite na dugme U redu.

  3. Unesite dodatne promene u relaciju, a zatim kliknite na dugme U redu.

Vrh stranice

Nametanje referencijalnog integriteta

Svrha korišćenja referencijalnog integriteta jeste sprečavanje pojave zapisa koji su siročići i održavanje sinhronizovanosti referenci kako ne biste imali zapise koji referenciraju 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. Access odbija ažuriranja koja menjanju odredište reference 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

  1. U prozoru „Relacije“ izaberite relacionu liniju koju želite da promenite. Relaciona linija postaje deblja kada se izabere.

  2. Kliknite dvaput na relacionu liniju.

Pojaviće se dijalog Uređivanje relacija.

  1. Potvrdite izbor u polju za potvrdu Nametni referencijalni integritet.

  2. Unesite dodatne promene u relaciju, a zatim kliknite na dugme U redu.

Kada nametnete referencijalni integritet, primenjivaće 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

  1. U prozoru „Relacije“ izaberite relacionu liniju koju želite da promenite. Relaciona linija postaje deblja kada se izabere.

  2. Kliknite dvaput na relacionu liniju.

Pojaviće se dijalog Uređivanje relacija.

  1. Potvrdite izbor u polju za potvrdu Nametni referencijalni integritet.

  2. Potvrdite izbor u polju za potvrdu Kaskadno ažuriraj povezana polja ili Kaskadno izbriši povezane zapise odnosno u oba.

  3. 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“.

Vrh stranice

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×