- Razumevanje vrst razmerja med tabelami v Accessu in njegov pomen za preprečevanje podvajanja podatkov.
- Ustvarjanje in upravljanje relacij med tabelami z uporabo okna Relacije ali podokna Seznam polj.
- Za zaščito doslednosti podatkov uporabite referenčno integriteto in kaskadne operacije.
Ali šele začenjate uporabljati Microsoft Access in se vam zdi povezovanje tabel popolnoma zmedeno? Brez skrbi, niste sami. Pri delu z relacijskimi bazami podatkov pride do točke, ko postane povezovanje informacij iz različnih tabel bistvenega pomena . Access ta postopek olajša, kot si morda mislite , vendar je razumevanje, zakaj in kako to storiti, ključnega pomena, če želite, da je vaša baza podatkov dobro organizirana in brez napak.
V tem članku bom podrobno in s praktičnimi koraki razložil, kako povezati tabele v Accessu , katere vrste relacij obstajajo, čemu služi referenčna integriteta in kako se lahko izognete klasičnim glavobolom »osirotelim zapisom«. To je idealno ne glede na to, ali načrtujete bazo podatkov iz nič ali želite izboljšati upravljanje obstoječih podatkov . Pa začnimo!
Kaj so razmerja tabel v Accessu?

V svetu relacijskih podatkovnih baz so relacije med tabelami povezave, ki omogočajo povezovanje informacij iz ene tabele z informacijami iz druge . Predstavljajte si, da imate tabelo z imenom »Knjige« in drugo z imenom »Založniki«. Če bi vse podatke o založniku shranili v »Knjige« skupaj z vsakim naslovom, bi za vsako knjigo, ki jo izda, ponavljali telefonsko številko, naslov in ime založnika. To bi po nepotrebnem pomnožilo podatke in otežilo vzdrževanje.
Da bi se izognili temu kaosu, je pametno ločiti podatke v dve tabeli : eno za knjige in drugo z edinstvenimi podatki za vsakega založnika. Kako sta povezani? No, »Knjige« ima polje (recimo »editorial_id«), ki kaže na ustrezno vrstico v »Založniki«. Na ta način ni podvajanj in lahko vse upravljate učinkoviteje.
Poleg tega vam relacije omogočajo enostavno poizvedovanje in navzkrižno sklicevanje na informacije iz več tabel, ustvarjanje veliko bolj celovitih poročil in predvsem ohranjanje integritete podatkov.
Vrste relacij med tabelami v Accessu

Vsi odnosi niso enaki. Access razlikuje tri glavne vrste odnosov med tabelami , vsaka pa obravnava specifično potrebo pri upravljanju podatkov:
Razmerje ena proti mnogo
Najpogostejša vrsta v kateri koli zbirki podatkov. Vrstica v tabeli A je lahko povezana z mnogimi vrsticami v tabeli B , vendar je vsaka vrstica v tabeli B lahko povezana le z eno vrstico v tabeli A. Na primer, založnik ima veliko knjig, vendar vsaka knjiga pripada le enemu založniku.
To razmerje je v Accessu predstavljeno s črto, ki ima na enem koncu številko 1 (primarni ključ) in na drugem (tuji ključ) simbol za neskončnost (∞). Primarni ključ je običajno enolično polje (na primer ID), medtem ko tuji ključ podvoji njegovo vrednost, da ustvari povezavo.
Razmerje med mnogimi in mnogimi
V tej situaciji je lahko ena vrstica v tabeli A povezana z mnogimi v tabeli B in obratno . Tipičen primer: avtorji in knjige. Avtor je lahko napisal več knjig, knjiga pa ima lahko več avtorjev.
Access vam ne omogoča neposrednega ustvarjanja te relacije. Če želite to doseči, morate ustvariti tretjo tabelo, imenovano »tabela povezav« , ki vsebuje ključe iz obeh glavnih tabel. Na primer, tabela »AuthorsBooks« shranjuje pare »author_id« in »book_id«. Na ta način je vsaka kombinacija edinstvena in lahko shranite več povezanih podatkov, kot je datum sodelovanja.
Razmerje ena na ena
To je najmanj pogosta vrsta. Omogoča, da je le ena vrstica v tabeli A povezana z največ eno vrstico v tabeli B in obratno . Običajno se uporablja, kadar želite razdeliti zelo veliko tabelo ali kadar morate izolirati občutljive podatke. Na primer, imate lahko eno tabelo zaposlenih in drugo z občutljivimi podatki (plača, bančni podatki), ki ima le eno vrstico na zaposlenega.
V Accessu morata imeti oba povezana stolpca omejitve edinstvenosti, da se ohrani ta ekskluzivnost. Vizualno sta na obeh straneh relacije prikazani simbol ključa.
Kako ustvariti relacije med tabelami v Accessu

Zdaj, ko razumete vrste relacij, si poglejmo, kako jih ustvarite in upravljate v Accessu . Obstaja več načinov, odvisno od različice in od tega, ali uporabljate pogled relacij ali pogled podatkovnega lista:
Ustvarjanje iz okna Relacije
- Zaprite vse odprte tabele (z aktivnimi tabelami ne morete spreminjati odnosov).
- V meniju Orodja za zbirke podatkov poiščite gumb Odnosi in kliknite.
- Če okno z odnosi odprete prvič, se bo prikazalo polje Prikaži tabeloČe ne, ga lahko ročno pokličete z ustreznega zavihka.
- Izberite tabele, ki jih želite povezati, in jih dodajte v okno. Dodate jih lahko več hkrati, po potrebi pa lahko isto tabelo dodate celo dvakrat (uporabno za rekurzivne relacije).
- Povlecite polje primarnega ključa iz ene tabele v povezano polje v drugi tabeli (običajno imajo enako ime, na primer »customer_id« v »customer_id«). Več polj lahko izberete z dolgim pritiskom. Ctrl.
- Škatla se bo odprla Urejanje odnosov kjer lahko preverite povezana polja, po potrebi spremenite imena in omogočite referenčno integriteto (pomembno, kot bomo videli kasneje).
- Za dokončanje kliknite ustvariti.
Namig : Povezana polja morajo imeti isti podatkovni tip, razen če je eno polje »Samoštevilo«, drugo pa »Število« z enako velikostjo polja (na primer obe kot »Dolgo celo število«). Za več podrobnosti si lahko ogledate, kako v Accessu ustvarite zbirko podatkov, ki shranjuje poti ali priloge.
Ustvarjanje iz plošče Seznam polj
Druga možnost je, da polja povlečete iz podokna Seznam polj , medtem ko ste v pogledu podatkovnega lista ciljne tabele. Če polje povlečete iz druge tabele in zaženete čarovnika za iskanje, Access samodejno ustvari relacijo »ena proti mnogo« med obema tabelama (čeprav referenčna integriteta ni privzeto uveljavljena; relacijo boste morali spremeniti, da jo dodate).
Kaj je referenčna integriteta in zakaj je pomembna?

Referenčna integriteta je niz pravil, ki preprečujejo, da bi povezani zapisi v različnih tabelah zastareli ali izgubili doslednost . Z drugimi besedami, preprečuje vnos osirotelih podatkov, kot je naročilo, dodeljeno neobstoječi stranki.
Ko pri definiranju relacije omogočite to možnost, Access uporabi več omejitev:
- V tuji ključ ne morete zapisati vrednosti, ki ne obstaja v povezanem primarnem ključu.
- Zapisov iz nadrejene tabele ni mogoče izbrisati, če v podrejeni tabeli obstajajo povezani elementi.
- Ne omogoča spreminjanja vrednosti primarnega ključa, če obstajajo povezave z drugo tabelo (razen če uporabljate kaskadne posodobitve, kar bomo videli spodaj).
Če želite omogočiti referenčno integriteto, odprite pogovorno okno Spreminjanje relacije in izberite ustrezno potrditveno polje. Če izberete tudi možnosti Kaskadno posodobi sorodna polja in Kaskadno izbriši sorodne zapise , bo Access samodejno razširil spremembe ali brisanja in preprečil nedoslednosti.
Kaskadne posodobitve in brisanja podatkov

Kaskadne operacije omogočajo, da se spremembe, narejene v glavni tabeli, samodejno odražajo v odvisnih tabelah . To je ključnega pomena za ohranjanje doslednosti, če imate veliko povezanih zapisov.
Če omogočite kaskadno posodabljanje , se vse spremembe primarnega ključa replicirajo v povezana polja v podrejeni tabeli.
Če s funkcijo Kaskadno brisanje izbrišete glavni zapis (na primer stranko), Access izbriše tudi vse povezane zapise , kot so njihova naročila in povezane podrobnosti. To je zmogljiva, a občutljiva možnost: pred uporabo se prepričajte, da res želite izbrisati vse te povezane podatke. Access običajno prikaže opozorilo, vendar ga morda ne bo prikazal pri poizvedbi za množično brisanje.
Kako spremeniti ali izbrisati relacije med tabelami

Če morate spremeniti ali izbrisati obstoječe razmerje, je to zelo preprosto:
- V oknu za relacije izberite črto, ki povezuje tabele (postala bo debelejša).
- Dvokliknite vrstico, da odprete pogovorno okno za urejanje in po potrebi spremenite polja, možnosti integritete ali vrsto združitve.
- Če želite izbrisati relacijo, pri izbrani vrstici preprosto pritisnite tipko IzbrišiČe vas Access vpraša, ali želite trajno izbrisati relacijo, potrdite dejanje.
- Ne pozabite, da brisanje tabele ne izbriše samodejno relacije. Najprej morate izrecno izbrisati vrstico relacije.
Različne vrste združevanja pri poizvedovanju po povezanih podatkih
Ko poizvedujete po informacijah iz več povezanih tabel, se lahko odločite, kako boste te podatke združili v rezultatih . Access razlikuje med tremi glavnimi vrstami združevanj:
- Notranji spoj: Prikaži samo zapise, kjer je ujemanje na obeh straneh relacije. To je privzeta možnost.
- Levi zunanji spoj: Prikaže vse zapise iz leve tabele in samo ujemajoče se zapise iz desne tabele.
- Desni zunanji spoj: Na desni prikaže vse zapise, na levi pa samo ujemajoče se zapise.
Te kombinacije se konfigurirajo v pogovornem oknu za spreminjanje razmerij z izbiro možnosti Vrsta kombinacije.
Praktična uporaba in priporočila

Relacije med tabelami v Accessu niso uporabne le za preprečevanje podvajanj . Ključne so tudi za:
- Izvajanje kompleksnih poizvedb navzkrižno sklicevanje na informacije iz več tabel, kot je na primer seznam naročil strank ali avtorjev knjige.
- Ustvarjanje obrazcev in podobrazcev kjer se samodejno prikažejo povezane informacije.
- Oblikujte profesionalna poročila ki zbirajo podatke iz različnih sinhroniziranih virov.
- Zaščitite integriteto podatkov in se izogniti pogostim napakam (kot je dodelitev naročila neregistriranemu uporabniku).
Ne pozabite, da lahko relacije po potrebi spremenite in da je pravilna konfiguracija referenčne integritete bistvena za preprečevanje neprijetnih presenečenj.
Obvladovanje umetnosti povezovanja tabel v Accessu je eden tistih korakov, ki naredijo vso razliko med osnovno in profesionalno upravljano zbirko podatkov. Razumevanje različnih vrst relacij, poznavanje njihovega pravilnega ustvarjanja in upravljanja ter poznavanje možnosti referenčne integritete bodo vaše zbirke podatkov naredile robustnejše, veliko lažje za vzdrževanje in predvsem brez napak, ki bi lahko vplivale na delovanje vaših aplikacij ali poročil. Z malo vaje boste videli, da je postopek preprostejši in bolj vizualen, kot se sprva zdi, prilagodljivost, ki jo ponuja, pa je resnično neprecenljiva.
Kazalo
- 1 Kaj so razmerja tabel v Accessu?
- 2 Vrste relacij med tabelami v Accessu
- 3 Kako ustvariti relacije med tabelami v Accessu
- 4 Kaj je referenčna integriteta in zakaj je pomembna?
- 5 Kaskadne posodobitve in brisanja podatkov
- 6 Kako spremeniti ali izbrisati relacije med tabelami
- 7 Različne vrste združevanja pri poizvedovanju po povezanih podatkih
- 8 Praktična uporaba in priporočila