Vodič za relacije među tabelama

Vodič za relacije među tabelama

Važno : Ovaj članak je mašinski prevesti potražite u članku Odricanje odgovornosti. O referencu pronaći verzija ovaj članak ovde na engleskom jeziku.

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

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 Pristup morate dati način na koji ć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 kreirati 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 u programu Access.

  • Relacija jedan-prema-više

    Hajde da iskoristimo bazu podataka za praćenje porudžbina koja sadrži tabele „Klijenti“ i „Porudžbine“ kao primer. 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“ 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“. Pristup 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

    Hajde sada da pogledamo relaciju između tabela „Proizvodi“ i „Porudžbine“. Jedna porudžbina može sadržati 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 relacija se naziva relacija više-prema-više. 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 imati samo jedan podudarni zapis u drugoj tabeli i svaki zapis iz druge tabele može imati samo jedan podudarni zapis iz prve tabele. Ova relacija nije uobičajena zato što su informacije povezane na ovaj način najčešće uskladištene u istoj tabeli. Relaciju jedan-prema-jedan možete koristiti 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. Pristup 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. Ali, ako koristite neki čarobnjak za upite, Pristup 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 Pristup 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, Pristup 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. Važno je da reference sporedni ključ-primarni ključ budu sinhronizovane. Referencijalni integritet, koji zavisi od relacija među tabelama, pomaže u održavanju sinhronizovanosti referenci.

Vrh stranice

Razumevanje referencijalnog integriteta

Kada dizajnirate bazu podataka, informacije baze podataka delite u više tabela na osnovu teme kako biste umanjili redundantnost podataka. Zatim programu Pristup date načina na koji će 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, Pristup 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 nametnuti kada ga omogućite za relacije među tabelama (detaljna uputstva potražite u odeljku Nametanje referencijalnog integriteta). Kada je referencijalni integritet jednom nametnut, Pristup odbija svaku operaciju koja narušava referencijalni integritet te relacije među tabelama. To znači da će Pristup odbiti da izvrši ažuriranja koja menjaju odredište reference, kao i brisanja koja uklanjaju odredište reference. 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 Pristup, kao deo jedne operacije, automatski ažurira sve redove na koje promena utiče. Na taj način Pristup obezbeđuje izvršavanje kompletnog ažuriranja i konzistentnost baze podataka, pri čemu su svi redovi ažurirani. Iz ovog razloga, Pristup 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č, Pristup ć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 Pristup 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, Pristup ć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, Pristup će zatražiti od vas da u prozor dodate tabelu ili upit.

Otvaranje prozora „Relacije“

  1. U meniju Datoteka izaberite stavku Otvori.

  2. Izaberite i otvorite bazu podataka.

  3. Na kartici Alatke baze podataka, u grupi Relacije izaberite stavku Relacije.

    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.

  4. Na kartici Alatke baze podataka, u grupi Relacije izaberite stavku Relacije.

    U prozoru su prikazane sve definisane relacije u bazi podataka. Imajte u vidu da skrivene se 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. U meniju Datoteka izaberite stavku Otvori.

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

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

  6. Prevucite polje (obično je to primarni ključ) iz jedne tabele u zajedničko polje (sporedni ključ) u drugoj tabeli. Da biste prevukli više polja, pritisnite taster CTRL, izaberite sva polja, a zatim ih prevucite.

    Pojaviće se dijalog Uređivanje relacija.

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

  8. 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, Pristup ć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. Polje na strani „više“ može da ima indeks, ali mora da dozvoli pojavu duplikata. To znači da svojstvo Indeksirano za ovo polje treba da bude postavljeno na opciju Ne ili Da (sa duplikatima). Kada jedno polje ima jedinstveni indeks, a drugo nema, Pristup će kreirati relaciju jedan-prema-više.

Kreiranje relacije među tabelama pomoću okna „Lista 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 Pristup, 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.

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, Pristup 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 Pristup, 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, Pristup 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 izaberite stavku Relacije.

    Pojaviće 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.

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

    Sve tabele koje imaju relacije su prikazane, kao i linije relacija.

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

  4. Pritisnite taster DELETE.

    – ili –

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

  • Pristup će možda prikazati poruku Želite li stvarno da trajno izbrišete izabranu relaciju iz baze podataka?. Ako se pojavi ova poruka o potvrdi, 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 dijalog Uređivanje relacija

  1. Na kartici Alatke baze podataka, u grupi Relacije izaberite stavku Relacije.

    Pojaviće 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.

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

    Sve tabele koje imaju relacije su prikazane, kao i linije relacija.

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

  4. Kliknite dvaput na relacionu liniju.

  5. 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 ove tabele, Pristup će automatski izabrati 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 koja podudara i kombinuje zove se spoj. Na primer, pretpostavimo da želite da prikažete porudžbine klijenta. Kreiraćete upit koji spaja tabelu „Klijenti“ i tabelu „Porudžbine“ po polju „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 definišete za svaku relaciju je tip spoja. Tip spoja govori programu Pristup koje zapise treba da uključi u rezultat upita. Na primer, vratimo se na upit koji spaja tabelu „Klijenti“ i tabelu „Porudžbine“ po zajedničkim poljima koja predstavljaju „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 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 (korišćene su tabele „Klijenti“ i „Porudžbine“) sadrži tri opcije koje su prikazane u dijalogu Svojstva spoja, spoj koji koriste, kao i to da li su za svaku tabelu obuhvaćeni svi redovi ili redovi koji se podudaraju.

Izbor

Relacioni spoj

Leva tabela

Desna tabela

1. Uključi samo redove u kojima su spojena polja iz obe tabele jednaka

Unutrašnji spoj

Podudarni redovi

Podudarni redovi

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

Podudarni redovi

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 izaberite stavku Relacije.

    Pojaviće 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.

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

    Sve tabele koje imaju relacije prikazane su sa relacionim linijama

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

  4. Kliknite dvaput na relacionu liniju.

    Pojaviće se dijalog Uređivanje relacija.

  5. Kliknite na dugme Tip spoja.

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

  7. 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, Pristup odbija svaku operaciju koja bi narušila referencijalni integritet te relacije među tabelama. Pristup 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 Pristup 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 u primarnoj tabeli ne možete da izbrišete ako u povezanoj tabeli postoje podudarni zapisi. Na primer, ne možete da izbrišete zapis o zaposlenom iz tabele „Zaposleni“ ako u tabeli „Porudžbine“ postoje porudžbine koje su dodeljene tom zaposlenom. Možete da odaberete da izbrišete primarni zapis i sve povezane zapise jednom operacijom 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 koji će biti 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 odabrati da jednom operacijom ažurirate primarni zapis i sve povezane zapise potvrđivanjem izbora u polju za potvrdu Kaskadno ažuriraj povezana 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 postojati u istoj Pristup bazi podataka. Referencijalni integritet ne može da se nametne na povezane tabele. Međutim, ako su izvorne tabele u formatu programa Pristup, možete da otvorite bazu podataka u kojoj su uskladištene i da 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 Pristup 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. Primenom opcije Kaskadno ažuriraj povezana polja, Pristup vam pomaže da izbegnete ovaj problem. Kada nametnete referencijalni integritet i odaberete opciju Kaskadno ažuriraj povezana polja, a zatim ažurirate primarni ključ, Pristup će automatski ažurirati sva polja koja referenciraju 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 Pristup podržava opciju Kaskadno izbriši povezane zapise. Ako je nametnut referencijalni integritet i odabrana opcija Kaskadno brisanje povezanih polja, Pristup će automatski izbrisati sve zapise koji referenciraju 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

Napomena : Odricanje odgovornosti mašinskog prevođenja: ovaj članak je preveden sistem računara bez ljudski interventne. Microsoft nudi ove mašinskog prevoda da pomogne koja nije na engleskom govornih korisnicima da uživate u sadržaju za Microsoft proizvode, usluge i tehnologijama. U članku bio mašinskog prevesti, mogu da sadrže greške u rečnik, sintaksa ili gramatiku.

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.

×