Definovanie vzťahy medzi tabuľkami v databáze programu Access

Preklady článku Preklady článku
ID článku: 304466 - Zobraziť produkty, ktorých sa tento článok týka.
Nováčik: Vyžaduje znalosť používateľského rozhrania na jedného používateľa počítačov.

Tento článok sa vzťahuje iba na databázu programu Microsoft Access (.mdb alebo .accdb).
Microsoft Access 2000 verziu tohto článku, pozri 304467.
Microsoft Access 97 verziu tohto článku, pozri 304468.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

Súhrn

Tento článok popisuje, ako definovať vzťahy v databáze programu Microsoft Access. Tento článok obsahuje nasledovné témy:
  • Aké sú vzťahy tabuliek?
  • Typy vzťahov tabuliek
    • One-to-many vzťahy
    • Many-to-many vzťahy
    • Dvojstranné vzťahy
  • Definovanie vzťahy medzi tabuľkami.
    • Ako definovať vzťah one-to-many alebo one-to-one
    • Ako definovať vzťah many-to-many
  • Referenčnej integrity
  • Kaskádové aktualizácie a odstránenia
  • Pripojiť typy

Ďalšie informácie

Aké sú vzťahy tabuliek?

Zbaliť tento obrázokRozbaliť tento obrázok
assets folding start collapsed
V relačnej databáze, vzťahy umožňujú predísť nadbytočné údaje. Napríklad, ak navrhujete databázu, ktorá bude sledovať informácie o knihách, máte napríklad tabuľku s názvom "Tituly", ktorá uchováva informácie o každej knihe, napríklad názov knihy, dátum zverejnenia, a vydavateľ. Tam je tiež informácie, že možno budete chcieť ukladať o vydavateľa, napríklad vydavateľa telefónne číslo, adresy andZIP Code/poštový kód. Ak ste boli všetky tieto informácie sa uchovávajú v tabuľke "Tituly", vydavateľa telefónne číslo by zdvojený pre každý titul, ktorý program publisher tlačí.

Lepším riešením je na uloženie informácií vydavateľa iba raz do samostatnej tabuľky, ktoré nazývame "Vydavateľov." Vám by potom dal ukazovateľ "Tituly" tabuľky, ktorá odkazuje na položku v tabuľke "Vydavatelia".

Uistite sa, že ste údajov zostáva synchronizované, môžete zabezpečiť referenčnú integritu medzi tabuľkami. Referenčnú integritu vzťahy pomoc uistite sa, že informácie v jednej tabuľke zápasov informácie v inom. Napríklad, každý titul v tabuľke "Tituly" musia byť priradené špecifické vydavateľa v tabuľke "Vydavatelia". Názov nemôže byť pridaný do databázy vydavateľa, ktorý neexistuje v databáze.

Logické vzťahy v databáze povoliť youto efektívne získavať údaje a vytváranie zostáv.
Zbaliť tento obrázokRozbaliť tento obrázok
assets folding end collapsed

Typy vzťahov tabuliek

Zbaliť tento obrázokRozbaliť tento obrázok
assets folding start collapsed
Vzťah funguje na základe priradenia údajov v kľúčových stĺpce, zvyčajne stĺpcov (alebo polia), ktoré majú s rovnakým názvom v obidvoch tabuľkách. Vo väčšine prípadov vzťah spája primárny kľúč alebo jedinečný identifikátor stĺpca pre každý riadok z jednej tabuľky do poľa v druhej tabuľke. Stĺpec v inej tabuľke je známy ako "cudzí kľúč." Napríklad, ak chcete sledovať predaja každého titul knihy, môžete vytvoriť vzťah medzi stĺpec primárneho kľúča (nazvime jutitle_ID) v tabuľke "Tituly" a stĺpec v tabuľke "Predaj", ktorý sa nazýva title_ID. Title_ID stĺpec v tabuľke "Predaj" je cudzí kľúč.

Existujú tri druhy vzťahov medzi tabuľkami. Druh vzťahu, ktorý je vytvorený závisí ako sú definované súvisiace stĺpce.

One-to-many vzťahy

One-to-many vzťah je najviac obyčajný druh vzťahu. V tento druh vzťahu, riadok v tabuľke A môže mať mnoho zodpovedajúce riadky v tabuľke B. Ale na riadok v tabuľke B môže mať len jeden zodpovedajúci riadok v tabuľke A. Napríklad tabuľky "Vydavatelia" a "Tituly" majú vzťah one-to-many. To je, každý vydavateľ vytvára mnoho titulov. Ale každý názov pochádza od iba jedného vydavateľa.

One-to-many vzťah vzniká Ak iba jedna súvisiace stĺpcov je hlavný kľúč alebo má jedinečné obmedzenie.

V okne vzťahy v programe Access strane hlavného kľúča one-to-many vzťah je označené číslom 1. Cudzí kľúč strane vzťahu je označovaný symbolom nekonečno.

Zbaliť tento obrázokRozbaliť tento obrázok
2878329


Many-to-many vzťahy

Vzťah many-to-many, riadok v tabuľke A môže mať mnoho zodpovedajúce riadky v tabuľke B, a naopak. Môžete vytvoriť takýto vzťah definovaním tretiu tabuľku, nazývanú spojovacia tabuľka. Primárny kľúč tabuľky križovatky pozostáva z cudzích kľúčov od oboch tabuľke A a B. Napríklad tabuľky "Autorov" a "Tituly" majú vzťah many-to-many, ktorý je definovaný vzťah one-to-many z každej z týchto tabuliek sa tabuľky "TitleAuthors". Primárny kľúč tabuľky "TitleAuthors" je kombináciouau_ID stĺpce (primárny kľúč tabuľky "Autori") a title_ID (primárny kľúč tabuľky "Tituly").

Zbaliť tento obrázokRozbaliť tento obrázok
2878330


Dvojstranné vzťahy

V vzťah one-to-One riadok v tabuľke A môže mať viac ako jeden zodpovedajúci riadok v tabuľke B, a naopak. Ak obidve súvisiace stĺpce sú primárne kľúče alebo majú jedinečné obmedzenia sa vytvorí vzťah one-to-one.

Tento druh vzťahu nie je bežné, pretože väčšina informácií, ktoré súvisí týmto spôsobom by sa v jednej tabuľke. Môžete použiť vzťah one-to-one, prijať tieto opatrenia:
  • Rozdelenie tabuľky s mnohými stĺpce.
  • Oddelenia časti tabuľky z bezpečnostných dôvodov.
  • Ukladanie dát, ktorý je krátky-žíl a mohol ľahko odstrániť odstránením tabuľky.
  • Uložiť informácie, ktoré sa týka iba podmnožiny hlavnej tabuľky.
V programe Access strane hlavného kľúča vzťah one-to-one je označovaný symbolom kľúča. Cudzí kľúč strane je tiež označil symbol kľúča.
Zbaliť tento obrázokRozbaliť tento obrázok
assets folding end collapsed

Definovanie vzťahy medzi tabuľkami.

Zbaliť tento obrázokRozbaliť tento obrázok
assets folding start collapsed
Keď vytvoríte vzťah medzi tabuľkami, súvisiace polia nemusíte mať rovnaké názvy. Avšak, súvisiace polia musia mať rovnaký typ pokiaľ pole hlavného kľúča je pole typu Automatické číslovanie údajov. Môžu zápas pole typu Automatické číslovanie s poľom typu Number iba vtedy, ak vlastnosť VeľkosťPoľa oboch zhodných poliach je rovnaký. Napríklad si môžete zápas pole typu Automatické číslovanie a pole typu Number, ak vlastnosť VeľkosťPoľa oboch polí má Hodnotu Long Integer. Aj keď obidve súvisiace polia boli polia typu Number, musia mať rovnaké nastavenie vlastnosti VeľkosťPoľa .

Ako definovať vzťah one-to-many alebo one-to-one

Vytvorenie typu one-to-many alebo vzťah one-to-one, postupujte nasledovne:
  1. Zatvorte všetky tabuľky. Nemôžete vytvárať ani meniť vzťahy medzi otvorenými tabuľkami.
  2. V programe Access 2002 alebo Access 2003, postupujte nasledovne:
    1. Stlačte kláves F11 prepnúť do okna databáze.
    2. V ponuke Nástroje kliknite na položku vzťahy.

    V programe Access 2007, Access 2010, alebo 2013 prístup, kliknite na tlačidlovzťahy v skupine Zobraziť alebo skryť na karte Databázové nástroje .
  3. Ak ste ešte nedefinovali žiadne vzťahy v databáze, je automaticky zobrazí dialógové okno Zobrazenie tabuľky . Ak chcete pridať tabuľky, ktoré chcete týkajú ale dialógového okna Zobrazenie tabuľkynezobrazí, kliknite na ponuku vzťahyZobrazenie tabuľky .
  4. Dvakrát kliknite na názvy tabuliek, ktoré chcete vytvoriť vzťah a potom zatvorte dialógové okno Zobrazenie tabuľky. Ak chcete vytvoriť vzťah medzi tabuľkou a tou, pridajte danú tabuľku dvakrát.
  5. Presuňte pole, ktoré chcete týkajú z jednej tabuľky do súvisiaceho poľa v druhej tabuľke. Ak chcete presunúť viac polí, stlačte kláves Ctrl, kliknite na každé pole a presuňte ich.

    Vo väčšine prípadov presuniete pole hlavného kľúča (Toto pole sa zobrazuje tučným písmom) z jednej tabuľky do podobného poľa (Toto pole často má rovnaký názov) ktorá sa nazýva cudzí kľúč v druhej tabuľke.
  6. Zobrazí sa dialógové okno Úprava vzťahov. Skontrolujte správnosť názvov polí zobrazených v dvoch stĺpcoch. Názvy môžete zmeniť, ak je to potrebné.

    Ak je to potrebné, nastavte možnosti vzťahu. Ak budete mať informácie o konkrétnej položke v dialógovom okneÚprava vzťahov , kliknite na tlačidlo s otáznikom a potom kliknite na položku. (Tieto možnosti budú byť podrobne vysvetlené neskôr v tomto článku.)
  7. Kliknutím na tlačidlo vytvoriť vytvorte vzťah.
  8. Opakujte kroky 4 až 7 pre každý pár tabuliek, ktoré chcete prepojiť.

    Po zatvorení dialógového okna Úprava vzťahov, program Access zobrazí otázku, či chcete uložiť rozloženie. Či rozloženie uložíte alebo nie Uložiť rozloženie, vzťahy, ktoré vytvoríte sú uložené v databáze.

    PoznámkaMôžete vytvoriť vzťahy nielen v tabuľkách, ale aj v dotazoch. Však referenčná integrita sa nepresadzuje s dotazmi.

Ako definovať vzťah many-to-many

Ak chcete vytvoriť vzťah many-to-many, postupujte nasledovne:
  1. Vytvorte dve tabuľky, ktoré budú mať vzťah many-to-many.
  2. Vytvorte tretiu tabuľku. To je v spojovacej tabuľke. Do spojovacej tabuľky pridajte nové polia s rovnakými definíciami ako polia hlavného kľúča z každej tabuľky, ktoré ste vytvorili v kroku 1. V spojovacej tabuľke polia hlavného kľúča funkciu cudzích kľúčov. Do spojovacej tabuľky môžete pridať iné polia rovnako ako do každej inej tabuľky.
  3. V spojovacej tabuľke nastavte hlavný kľúč tak zahrnúť polia hlavného kľúča z ostatných dvoch tabuliek. Napríklad v spojovacej tabuľke "TitleAuthors" primárny kľúč by sa skladá z polia Identifikácia objednávky a Identifikácia produktu .

    Poznámka Ak chcete vytvoriť hlavný kľúč, postupujte nasledovne:
    1. Otvorte tabuľku v návrhovom zobrazení.
    2. Vyberte pole alebo polia, ktoré chcete definovať ako hlavný kľúč. Ak chcete vybrať jedno pole, kliknite na selektor riadka požadovaného poľa. Ak chcete vybrať viaceré polia, podržte stlačený kláves Ctrl a potom kliknite na selektor riadka každého poľa.
    3. V programe Access 2002 alebo Access 2003, kliknite na položku Hlavný kľúč na paneli s nástrojmi.

      V programe Access 2007, kliknite na tlačidlo Primárny kľúč v skupine Nástroje na karte návrh .

      PoznámkaAk chcete, aby polia hlavného kľúča viacpoľové líšiť od poradia tých polí v tabuľke, kliknite na paneli s nástrojmi zobrazte dialógové okno indexy, a potom zmeniť poradie názvov polí pre index s názvom primárny kľúč indexy.
  4. Definovať vzťah one-to-many medzi každej hlavnej tabuľky a spojovacou tabuľkou.
Zbaliť tento obrázokRozbaliť tento obrázok
assets folding end collapsed

Referenčnej integrity

Zbaliť tento obrázokRozbaliť tento obrázok
assets folding start collapsed
Referenčnej integrity je systém pravidiel, že program Access používa na uistite sa, že vzťahy medzi záznamami v súvisiacich tabuľkách sú platné, a že nie náhodne odstrániť alebo zmeniť súvisiace údaje. Môžete nastaviť referenčnej integrity pri všetkých nasledujúcich podmienok sú pravdivé:
  • Zodpovedajúce pole z hlavnej tabuľky je primárny kľúč alebo má jedinečný index.
  • Súvisiace polia majú rovnaký typ údajov. Existujú dve výnimky. Pole typu Automatické číslovanie môže súvisieť s poľom typu Number, ktoré má vlastnosť VeľkosťPoľa nastavenú na Long Integer a pole typu Automatické číslovanie, ktoré mávlastnosť VeľkosťPoľa nastavenú na možnosť Replication ID môže súvisieť s poľom typu Number, ktoré mávlastnosť VeľkosťPoľa nastavenú na možnosť Replication ID .
  • Obidve tabuľky patria do tej istej databázy Access. Ak sú tabuľky prepojené tabuľky, musia byť tabuľky vo formáte programu Access, a musíte otvoriť databázu, v ktorej sú uložené nastavenie referenčnej integrity. Referenčná integrita sa nemôže zabezpečiť pre prepojené tabuľky z databázy v iných formátoch.
Nasledujúce pravidlá sa uplatňujú pri použití referenčnej integrity:
  • Nemôžete zadať hodnotu do poľa cudzieho kľúča súvisiacej tabuľky, ktorý neexistuje v hlavnom kľúči hlavnej tabuľky. V cudzieho kľúča však môžete zadať hodnotu Null. Určuje, že záznamy sa netýkajú. Napríklad, nemôžete mať objednávku, ktorá je priradená k zákazníkovi, ktorý neexistuje. Avšak, môžete mať objednávku, ktorá je priradená k nikto zadaním hodnoty Null v poli IdentifikáciaZákazníka .
  • Nemožno odstrániť záznam z hlavnej tabuľky, ak v súvisiacej tabuľke existujú zhodné záznamy. Nemôžete napríklad odstrániť záznam zamestnanca z tabuľky "Zamestnancov", ak existujú objednávky pridelené zamestnancovi v tabuľke "Objednávky".
  • Nie je možné zmeniť hodnotu hlavného kľúča v hlavnej tabuľke, ak záznam má súvisiace záznamy. Napríklad, nemôžete zmeniť zamestnanca ID v tabuľke "Zamestnanci" Ak existujú objednávky pridelené tomuto zamestnancovi v tabuľke "Objednávky".
Zbaliť tento obrázokRozbaliť tento obrázok
assets folding end collapsed

Kaskádové aktualizácie a odstránenia

Zbaliť tento obrázokRozbaliť tento obrázok
assets folding start collapsed
Pre vzťahy v ktorých referenčná integrita zabezpečiť, môžete určiť či chcete prístup k automaticky kaskádové aktualizácie alebo kaskádové odstránenie súvisiacich záznamov. Ak nastavíte tieto možnosti, odstrániť a aktualizovať operácie, ktoré by zvyčajne zabrániť tým, že sú zapnuté pravidlá referenčnej integrity. Keď odstránite záznamy alebo zmeniť hodnoty hlavného kľúča v primárneho tabuľka, Access robí potrebné zmeny do súvisiacich tabuliek, aby sa zachovala referenčnú integritu.

Ak kliknete na políčko Kaskádová aktualizácia súvisiacich polípri definovaní vzťah, kedykoľvek zmeniť primárny kľúč záznamu v primárnej tabuľke, Microsoft Access automaticky aktualizuje primárny kľúč na novú hodnotu vo všetkých súvisiacich záznamoch. Napríklad, ak zmeníte identifikačné číslo zákazníka v tabuľke "Zákazníkov", poli IdentifikáciaZákazníkav tabuľke "Objednávky" automaticky aktualizuje jeden každý z jeho objednávky tak, že vzťah nie je rozbité. Prístup kaskád aktualizácie bez zobrazenia akejkoľvek správy.

Poznámka Ak hlavný kľúč v hlavnej tabuľke pole typu Automatické číslovanie, začiarknutím políčka Kaskádová aktualizácia súvisiacich polínemá žiadny účinok, pretože nemôžete zmeniť hodnotu v poli typu Automatické číslovanie.

Ak začiarknete políčko Kaskádové odstránenie súvisiacich záznamov, keď definujete vzťah, kedykoľvek môžete odstrániť záznamy v hlavnej tabuľke, program Access automaticky odstráni súvisiacich záznamov v súvisiacej tabuľke. Napríklad, ak odstránite záznam zákazníka z tabuľky "Zákazníkov", objednávok zákazníka automaticky odstránia z tabuľky "Objednávky". (To zahŕňa záznamy v tabuľke "Objednávku", ktoré súvisia s "Objednávky" záznamy). Ak chcete odstrániť záznamy z formulára alebo údajového hárka pri začiarknuté políčkoKaskádové odstránenie súvisiacich záznamov, prístup upozorní že súvisiacich záznamov môže tiež odstránia. Avšak, pri odstránení záznamov pomocou odstraňovacieho dotazu, program Access automaticky odstráni záznamy v súvisiacich tabuľkách bez zobrazenia upozornenia.
Zbaliť tento obrázokRozbaliť tento obrázok
assets folding end collapsed

Pripojiť typy

Zbaliť tento obrázokRozbaliť tento obrázok
assets folding start collapsed
Existujú tri typy spojenia. Môžete vidieť v nasledujúcich náhľad obrazovky:

Zbaliť tento obrázokRozbaliť tento obrázok
2878331


Možnosť 1 definuje vnútorné spojenie. Vnútorné spojenie je spojenie v akých záznamoch z dvoch tabuliek sú kombinované výsledky dotazu iba ak hodnoty v poliach pripojil spĺňajú zadané podmienky. Predvolené spojenie v dotaze, je vnútorné spojenie vyberie záznamy len vtedy, ak hodnoty v Spojených poliach zhodujú.

Možnosť 2 definuje ľavé vonkajšie spojenie. Ľavé vonkajšie spojenie je spojenie v ktorom všetci z ľavej časti ĽAVEJ operácia v príkaze SQL dotazu sú pridané záznamy výsledkov dotazu, aj keď neexistujú zodpovedajúce hodnoty v poli pripojil z tabuľky na pravej strane.

Možnosť 3 definuje pravé vonkajšie spojenie. Pravé vonkajšie spojenie je spojenie v ktorom všetci z pravej časti PRAVEJ operácia v príkaze SQL dotazu sú pridané záznamy výsledkov dotazu, aj keď neexistujú zodpovedajúce hodnoty v poli pripojil z tabuľky na ľavej strane.
Zbaliť tento obrázokRozbaliť tento obrázok
assets folding end collapsed

Vlastnosti

ID článku: 304466 - Posledná kontrola: 9. októbra 2013 - Revízia: 5.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Access 2013
  • Microsoft Access 2010
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Kľúčové slová: 
kbdesign kbdatabase kbhowto kbmt KB304466 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 304466

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com