Útmutató a táblakapcsolatokhoz

Útmutató a táblakapcsolatokhoz

A jó adatbázis-tervezés egyik célja az, hogy megszüntesse az adatok redundanciáját (azt, hogy több helyen legyenek tárolva ugyanazok az adatok). E célból az adatokat több tematikus táblába kell elosztani, hogy egy tény csak egyszer legyen rögzítve. Ezután lehetővé kell tenni az Access alkalmazásnak, hogy a felosztott információkat újra összeállíthassa – ehhez pedig közös mezőket kell megadnia az egymással kapcsolatban álló táblákban. Ahhoz azonban, hogy ezt a lépést megfelelően végezhesse el, először meg kell értenie a táblák közötti kapcsolatokat, és csak ezután kell megadnia azokat az adatbázisban.

Tartalom

Bevezetés

A táblakapcsolatok típusai

Miért célszerű táblakapcsolatokat létrehozni?

A hivatkozási integritás fogalma

Táblakapcsolatok megtekintése

Bevezetés

Miután az adatbázis témáinak megfelelően létrehozta a táblákat, meg kell határoznia, hogy az Access szükség esetén milyen jelentéstartalom alapján állítsa össze az információt. Ehhez az egymással kapcsolatban lévő táblákban közös mezőket kell elhelyezni, majd meg kell adni a táblák közötti kapcsolatokat. Ezután létrehozhat lekérdezéseket, űrlapokat és jelentéseket, ha egyszerre több tábla adatait szeretné megjeleníteni. Az itt látható űrlap adatai például több táblából származnak.

Rendelések űrlap, amelyen egyszerre négy táblából származó kapcsolódó adatok jelennek meg

1. Az űrlap adatai a Vevők táblából...

2. ...a Rendelések táblából...

3. ...a Termékek táblából...

4. ...és a Rendelés részletei táblából származnak.

A vevő Számlázási cím mezőben található neve a Vevők táblából származik, a rendelés azonosítója és dátuma a Rendelések táblából, a terméknév a Termékek táblából, az egységár és mennyiség pedig a Rendelések részletei táblából. Az űrlapon megjelenítendő információk kinyerése érdekében a táblák között több kapcsolat áll fenn.

Az előbbi példában szereplő négy tábla mezőit úgy kell összehangolni, hogy azonos rend szerint írják le a tárolt adatokat. Ezt az összehangolást a táblák között létesített kapcsolatok használatával lehet megvalósítani. A táblakapcsolatok a kulcsmezők adatait rendelik egymáshoz – ezek neve gyakran megegyezik a két táblában. A legtöbb esetben az egyező mezők egyike az egyik tábla elsődleges kulcsa, amellyel minden rekord egyedileg azonosítható, a másika pedig a másik táblában szereplő idegen kulcs. Az alkalmazottak például hozzárendelhetők az általuk kezelt megrendelésekhez úgy, hogy kapcsolatot létesít az Alkalmazottak tábla Alkalmazottkód mezője és a Rendelések tábla azonos nevű mezője között.

Az Alkalmazottkód mező elsődleges kulcs az Alkalmazottak táblában és idegen kulcs a Rendelések táblában.

1. Az Alkalmazottkód mező mindkét táblában szerepel, az egyikben elsődleges kulcsként...

2. ...a másikban idegen kulcsként.

Vissza a lap tetejére

A táblakapcsolatok típusai

A táblakapcsolatoknak három típusát különböztethetjük meg az Accessben.

  • Egy-a-többhöz kapcsolat

    A következő példában adva van egy megrendeléseket nyilvántartó adatbázis, amely tartalmazza a Vevők táblát és a Rendelések táblát. Egy vevő tetszőleges számú megrendelést adhat fel. Ennek megfelelően a Vevők tábla egy vevőjéhez több megrendelést is társíthat a Rendelések táblában. A Vevők és a Rendelések tábla között tehát egy-a-többhöz kapcsolat áll fenn.

    Az adatbázisban úgy jelenítheti meg az egy-a-többhöz kapcsolatokat, hogy a kapcsolat „egy” oldalán található elsődleges kulcsot új mezőként (vagy mezőkként) hozzáadja a kapcsolat „több” oldalán található táblához. Ebben az esetben például egy új mezőt – a Vevők tábla azonosító mezőjét – ad a Rendelések táblához, és vevőazonosítónak nevezi. Az Access a Rendelések táblában található vevőazonosítóval azonosítja az egyes megrendelésekhez kapcsolódó vevőt.

  • Több-a-többhöz kapcsolat

    Most nézzük a Termékek és a Rendelések tábla közötti kapcsolatot. Egyetlen megrendelés több termékre is szólhat. Ugyanakkor egy termék több megrendelésben is szerepelhet. Ezért a Rendelések tábla egyes rekordjaihoz több rekord is kapcsolódhat a Termékek táblában. Ugyanígy a Termékek tábla egyes rekordjaihoz a Rendelések tábla több rekordja is kapcsolódhat. Az ilyen kapcsolatot több-a-többhöz kapcsolatnak nevezik. Jegyezze meg, hogy a meglévő több-a-többhöz kapcsolatok csak úgy ismerhetők fel, ha mindkét oldalukat megvizsgálja.

    Ha ábrázolni szeretne egy több-a-többhöz kapcsolatot, létre kell hoznia egy harmadik táblát (egy úgynevezett illesztőtáblát), amely a több-a-többhöz kapcsolatot két egy-a-többhöz kapcsolatra bontja le. Mindkét tábla elsődleges kulcsát elhelyezze a harmadik táblában. Így a harmadik tábla rögzíti a kapcsolat minden előfordulását (példányát). A Rendelések és a Termékek tábla között például több-a-többhöz kapcsolat áll fenn, amely a Rendelés részletei táblában, két egy-a-többhöz kapcsolattal adható meg. Minden rendelésben több termék szerepelhet, és minden termék több rendelésben is megjelenhet.

  • Egy-az-egyhez kapcsolat

    Egy-az-egyhez kapcsolat esetén az első tábla minden egyes rekordjához legfeljebb egy rekord kapcsolódhat a második táblában, és a második tábla minden egyes rekordjához is csak legfeljebb egy rekord kapcsolódhat az első táblában. Ilyen kapcsolatot ritkán használnak, mert az így kapcsolódó információkat leggyakrabban egy táblában tárolják. Az egy-az-egyhez kapcsolat akkor lehet hasznos, ha egy sok rekordból álló táblát több kisebb, könnyebben kezelhető táblára kíván felosztani, ha egy tábla valamely részét biztonsági megfontolásból külön kívánja tárolni, vagy ha az egyik táblában olyan adatokat szeretne tárolni, amelyek csak a főtábla bizonyos rekordjaira érvényesek. Ha egy ilyen kapcsolatot hoz létre, a két táblában lennie kell egy közös mezőnek.

Vissza a lap tetejére

Miért célszerű táblakapcsolatokat létrehozni?

Táblakapcsolatokat kétféleképpen hozhat létre: közvetlenül a Kapcsolatok ablakban, vagy úgy, hogy áthúz egy mezőt a Mezőlista ablaktáblából. Az Access a táblakapcsolatok alapján állapítja meg, hogy miként illessze a táblákat, amikor szükség van rájuk egy adatbázis-objektumban. Több oka is van annak, hogy más adatbázis-objektumok (űrlapok, lekérdezések és jelentések) létrehozása előtt miért érdemes táblakapcsolatokat létrehozni.

  • A táblakapcsolatok információval szolgálnak a lekérdezéstervekhez

    Ha több táblából származó rekordokkal dolgozik, gyakran kell létrehoznia olyan lekérdezést, amely összeilleszti a táblákat. A lekérdezés megfelelteti az első tábla elsődlegeskulcs-mezőjében lévő értékeket egy, a második táblában lévő idegenkulcs-mezőnek. Ha például azokat a sorokat szeretné eredményül kapni, amelyek felsorolják egy-egy vevő minden megrendelését, akkor egy olyan lekérdezést kell létrehoznia, amely a Vevők táblát a Rendelések táblával illeszti össze a vevőt azonosító mező alapján. A Kapcsolatok ablakban manuálisan megadhatja az illesztendő mezőket. Ha azonban már meg van adva egy kapcsolat a táblák között, akkor az Access lehetővé teszi az alapértelmezett illesztés használatát a meglévő táblakapcsolat alapján. Ha továbbá valamelyik lekérdezési varázslót használja, akkor az Access már megadott táblakapcsolatokból származó információ alapján intelligens választási lehetőségeket ad, és előre beállítja a tulajdonságokat a megfelelő alapértelmezett értékekkel.

  • A táblakapcsolatok információval szolgálnak az űrlap- és jelentéstervekhez

    Űrlap vagy jelentés tervezésekor az Access a már megadott táblakapcsolatokból származó információk alapján ad intelligens választási lehetőségeket, és ennek alapján állítja be a tulajdonságok megfelelő alapértelmezett értékét.

  • A táblakapcsolatok adják azt az alapot, amelynek segítségével előírhatja a hivatkozási integritás megőrzését, és így megakadályozhatja az árvarekordok jelenlétét az adatbázisban. Az árvarekord olyan rekord, amely nem létező rekordra hivatkozik, például egy olyan megrendelésrekord, amely egy nem létező vevőrekordra hivatkozik.

    Az adatbázisok tervezésekor az információkat táblákba osztja fel, amelyek mindegyikének van egy elsődleges kulcsa. Ezután olyan idegen kulcsokat vesz fel a kapcsolódó táblákba, amelyek ezekre az elsődleges kulcsokra hivatkoznak. Az idegen és elsődleges kulcsoknak ezek a párjai alkotják a táblakapcsolatok és a többtáblás lekérdezések alapját. Fontos, hogy az idegen és elsődleges kulcsok közötti hivatkozások szinkronban maradjanak. A hivatkozások szinkronizálásáról hivatkozási integritással lehet gondoskodni, amely nagyban függ a táblakapcsolatoktól.

Vissza a lap tetejére

A hivatkozási integritás fogalma

Az adatbázisok tervezése során különféle tematikus táblákba rendezi az adatbázis információit, hogy minimalizálja az adatok redundanciáját. Ezután lehetővé teszi az Accessnek, hogy a kapcsolódó táblákban közös mezőket elhelyezve ismét egyesítse az adatokat. Ha például egy egy-a-többhöz kapcsolatot szeretne létrehozni, akkor vegye fel az „egy” tábla elsődleges kulcsát további mezőként a „több” táblába. Az Access az adatok egyesítéséhez a „több” táblában lévő értéket alapul véve megkeresi a megfelelő értéket az „egy” táblában. Ily módon a „több” táblában megtalálható értékek az „egy” táblában lévő megfelelő értékekre hivatkoznak.

Például egy-a-többhöz kapcsolat van a Szállítók és a Rendelések tábla között, és törölni szeretné egy szállítót. Ha a törölni kívánt szállítónak vannak megrendelései a Rendelés táblában, akkor ezek a megrendelések „árvákká” válnak a szállító rekord törlésekor. A megrendelések továbbra is tartalmazni fognak egy szállítóazonosítót, de az azonosító már nem lesz érvényes, mivel az a rekord, amelyre hivatkozik, már nem létezik.

A hivatkozási integritásnak az a célja, hogy megakadályozza az árvarekordok létrejöttét és megőrizze a hivatkozások közötti összhangot, hogy ez a hipotetikus helyzet soha ne jöhessen létre.

A hivatkozási integritást úgy tudja megőrizni, hogy engedélyezi egy táblakapcsolatra (a lépésről lépésre haladó leírás A hivatkozási integritás megőrzése című szakaszban található). Miután engedélyezte, az Access megakadályoz minden olyan műveletet, amely ennél a táblakapcsolatnál veszélyeztetné a hivatkozási integritást. Ez azt jelenti, hogy az Access tiltja a hivatkozás céljának frissítését, valamint az eltávolítását eredményező törlést is. Lehetséges azonban, hogy valóban szükséges az elsődleges kulcs módosítása egy olyan szállító esetén, amelynek megrendelései vannak a Rendelések táblában. Ilyen esetben valójában arra van szükség, hogy az Access egyetlen művelet részeként automatikusan frissítse az érintett mezőket. Így az Access garantálja, hogy a frissítés teljes legyen, és az adatbázis nem marad inkonzisztens állapotban – tehát úgy, hogy néhány sor frissült, mások pedig nem. Az ilyen esetekre szolgál az AccessKapcsolt mezők kaszkádolt frissítése funkciója. Ha engedélyezi a hivatkozási integritás megőrzését, és a Kapcsolt mezők kaszkádolt frissítése lehetőséget választja, majd frissít egy elsődleges kulcsot, az Access automatikusan frissíti az elsődleges kulcsra hivatkozó összes mezőt.

Szüksége lehet egy sor és minden hozzá kapcsolódó rekord törlésére is – például egy Szállító sor és minden, a szállítóhoz kapcsolódó rendelés törlésére. Az ilyen esetekre nyújtja az Access a Kapcsolt mezők kaszkádolt törlése lehetőséget. Ha engedélyezi a hivatkozási integritást, és bejelöli a Kapcsolt mezők kaszkádolt törlése jelölőnégyzetet, majd töröl egy rekordot a kapcsolat elsődleges kulcs oldaláról, az Access automatikusan törli az elsődleges kulcsra hivatkozó összes rekordot.

Vissza a lap tetejére

Táblakapcsolatok megtekintése

A táblakapcsolatok megtekintéséhez kattintson az Adatbáziseszközök lap Kapcsolatok parancsára. Megnyílik a Kapcsolatok ablak, és megjeleníti az összes létező kapcsolatot. Ha még nincsenek megadva táblakapcsolatok, akkor a Kapcsolatok ablak első megnyitásakor az Access üzenetet jelenít meg, hogy adjon táblát vagy lekérdezést az ablakhoz.

A Kapcsolatok ablak megnyitása

  1. Kattintson a Fájl fülre, majd a Megnyitás kategóriára.

  2. Jelölje ki, és nyissa meg az adatbázist.

  3. Kattintson az Adatbáziseszközök lap Kapcsolatok csoportjának Kapcsolatok pontjára.

    Ha az adatbázis tartalmaz kapcsolatokat, megjelenik a Kapcsolatok ablak. Ha az adatbázisban nincsenek kapcsolatok, és először nyitja meg a Kapcsolatok ablakot, megjelenik a Tábla megjelenítése párbeszédpanel. Zárja be a párbeszédpanelt a Bezárás gombbal.

  4. Kattintson a Tervezés lap Kapcsolatok csoportjának Minden kapcsolat gombjára.

    Ekkor megjelenik az adatbázis összes definiált kapcsolata. Vegye észre, hogy a rejtett táblák (azok a táblák, amelyeknek a Tulajdonságok párbeszédpanelén be van jelölve a Rejtett jelölőnégyzet) és kapcsolataik nem jelennek meg, hacsak be nem jelöli a Rejtett objektumok megjelenítése jelölőnégyzetet a Navigációs beállítások párbeszédpanelen.

A táblakapcsolatokat a Kapcsolatok ablakban a táblák között húzódó kapcsolatvonalak jelölik. Azokat a kapcsolatokat, amelyek nem őrzik meg a hivatkozási integritást, a kapcsolat alapjául szolgáló közös mezőket összekötő vékony vonalak jelzik. Ha a vonalra kattintva kijelöli a kapcsolatot, a vonal megvastagszik, ezzel mutatva, hogy ki van jelölve. Ha a kapcsolathoz előírja a hivatkozási integritás megőrzését, akkor a vonal két vége vastagabb lesz, és a kapcsolat egyik oldalán a vonal vastag részén az 1 szám, a vonal másik oldalon lévő vastag részén pedig a végtelen szimbólum () lesz látható.

Ha a Kapcsolatok ablak aktív, a menüszalagon az alábbi parancsok állnak rendelkezésre.

A Tervezés lap Eszközök csoportjában:

  • Kapcsolatok szerkesztése:    Ez a parancs megnyitja a Kapcsolatok szerkesztése párbeszédpanelt. Ha kijelöl egy kapcsolatvonalat, a Kapcsolatok szerkesztése parancsra kattintva módosíthatja a táblakapcsolatot. Azt is megteheti, hogy duplán kattint a kapcsolatvonalra.

  • Elrendezés törlése:    Ez a parancs eltávolítja a táblákat és a kapcsolatokat a Kapcsolatok ablakból. Vegye észre, hogy ez a parancs csak elrejti a táblákat és a kapcsolatokat, de nem törli őket.

  • Kapcsolatjelentés:    Ez a parancs létrehoz egy jelentést, amelyben fel vannak tüntetve az adatbázisban lévő táblák és kapcsolatok. A jelentésben csak azok a táblák és kapcsolatok láthatók, amelyek nincsenek elrejtve a Kapcsolatok ablakban.

A Tervezés lap Kapcsolatok csoportjában:

  • Tábla megjelenítése:    Ez a parancs megnyitja a Tábla megjelenítése párbeszédpanelt, amelyen kiválaszthatja a Kapcsolatok ablakban megtekinteni kívánt táblákat és lekérdezéseket.

  • Tábla elrejtése:    Ez a parancs elrejti a kijelölt táblát a Kapcsolatok táblában.

  • Közvetlen kapcsolatok:    Ez a parancs megjeleníti a kijelölt tábla összes kapcsolatát és a kapcsolódó táblákat a Kapcsolatok táblában, ha még nincsenek megjelenítve.

  • Minden kapcsolat:    Ez a parancs megjeleníti az adatbázis összes kapcsolatát és a kapcsolódó táblákat a Kapcsolatok ablakban. Vegye észre, hogy a rejtett táblák (azok a táblák, amelyeknek a Tulajdonságok párbeszédpanelén be van jelölve a Rejtett jelölőnégyzet) és kapcsolataik nem jelennek meg, hacsak be nem jelöli a Rejtett objektumok megjelenítése jelölőnégyzetet a Navigációs beállítások párbeszédpanelen.

  • Bezárás:    Ez a parancs bezárja a Kapcsolatok ablakot. Ha módosította a Kapcsolatok ablak elrendezését, akkor a program rákérdez, hogy szeretné-e menteni a módosításokat.

Vissza a lap tetejére

Office-jártasság bővítése
Oktatóanyagok megismerése
Új szolgáltatások listájának lekérése
Részvétel az Office Insider programban

Hasznos volt az információ?

Köszönjük a visszajelzését!

Köszönjük visszajelzését. Jobbnak látjuk, ha az Office egyik támogatási szakemberéhez irányítjuk.

×