Kuidas määratleda Accessi andmebaasi tabelite vahelised seosed

Artiklite tõlked Artiklite tõlked
Artikli ID: 304466 - Vaadake tooteid, millega see artikkel seostub.
Algaja: Nõuab teadmisi kasutajaliidese ühe kasutajaga arvutites.

See artikkel kehtib ainult Microsoft Accessi andmebaasis (.mdb või .accdb).
Selle artikli Microsoft Access 2000 jaoks leiate artiklinumbriga 304467.
Selle artikli Microsoft Access 97 jaoks leiate artiklinumbriga 304468.
Laienda kõik | Ahenda kõik

Sellel veebilehel

Kokkuvõte

Selles artiklis kirjeldatakse Microsoft Accessi andmebaasi seoste määratlemiseks. Artikkel sisaldab järgmisi teemasid:
  • Millised seosed?
  • Tabeliseoste liigid
    • Üks-mitmele seoste
    • Mitu-mitmele seosed
    • Üks-ühele suhete
  • Tabelitevaheliste seoste määratlemine
    • Kuidas määratleda üks-mitmele või üks-ühele seost
    • Kuidas määratleda mitu-mitmele seos
  • Viitamistervikluse
  • Kaskaadvärskendused ja
  • Liitu tüübid

Lisateave

Millised seosed?

Ahenda see piltLaienda see pilt
assets folding start collapsed
Relatsioonilises andmebaasis võimaldavad suhteid vältida ülearuseid andmeid. Andmebaas, mis jälitab teavet raamatute kujundades võib olla tabel nimega "Pealkirjad", mis talletab teavet iga raamat, näiteks selle raamatu pealkiri, kuupäev ja avaldamise kirjastaja. Seal on teavet, et võiksite salvestada umbes Kirjastaja nagu Kirjastaja telefoninumber, aadress, andZIP kood sihtnumbri. Kõik andmed salvestama tabelis "Pealkirjad" oleks oleks iga pealkiri, kirjastaja printiva dubleeritud avaldaja telefoninumber.

Parem lahendus on avaldaja teavet ainult ühe korra, salvestada eraldi tabelisse, et me kutsume "Kirjastajad." Te paneks viit "Pealkirjad" tabeli, mis viitab kanne tabelis "Tootjad".

Veenduge, et te andmeid jääb sünkroonitud, saate jõustada viitamistervikluse tabelite vahel. Viitamistervikluse suhteid aidata, veenduge, et teave ühes tabelis vastab teavet teise. Näiteks iga pealkirja "Pealkirjad" tabel tuleb seostada kindla Kirjastaja tabelis "Tootjad". Tiitlit ei saa lisada andmebaasi Kirjastaja, mida ei eksisteeri andmebaasis.

Loogilised seosed andmebaasi lubamine youto tõhusalt päringu andmete ja aruannete koostamiseks.
Ahenda see piltLaienda see pilt
assets folding end collapsed

Tabeliseoste liigid

Ahenda see piltLaienda see pilt
assets folding start collapsed
Suhe toimib vastavad andmed võtme veerud, tavaliselt veergudesse (või välju), mis on mõlemas tabelis sama nimega. Enamikul juhtudel suhted ühendab esmast võtit või kordumatu tunnus veeru iga rea ühest tabelist teise tabeli väljale. Teise tabeli veerus on tuntud kui "Väline võti." Näiteks, kui soovite jälgida iga raamatu pealkiri müük, loote vaheline oleva primaarvõtme veeru (let's kutsuvad sedatitle_ID) "Pealkirjad" tabeli ja veeru "Müük" tabelis, mis on nime saanud title_ID. "Müük" tabeli title_ID veerus on võõrvõti.

Seal on kolme tüüpi tabelite vahelised seosed. Selline suhe, mis on loodud sõltub sellest, kuidas seotud veerud on määratletud.

Üks-mitmele seoste

Üks-mitmele seos on suhe kõige levinum liik. Selline seos tabeli A reas võib olla palju vastendatud read tabelis B. Kuid tabeli B reas on ainult üks vastavat kirjet tabelis A. Näiteks tabelid "Kirjastajad" ja "Pealkirjad" on üks-mitmele-seos. S.t. iga tootja toodab palju pealkirju. Aga iga pealkiri pärineb ainult üks tootja.

Üks-mitmele-seos luuakse ainult üks seostatud veergude primaarvõtme või tõkke unique.

Accessi aknas Kliendisuhete üks-mitmele seose esmane võti pool on tähistatud number 1. Välismaa seose poolel tähistatakse lõpmatuse sümbol.

Ahenda see piltLaienda see pilt
2878329


Mitu-mitmele seosed

Mitu-mitmele seos tabeli A reas võib olla palju vastendatud read tabelis B, ja vastupidi. Sellise seose loomiseks kolmanda tabeli, mida nimetatakse ka seostustabeliks määratlemisel. Seostustabeli primaarvõti koosneb võõrvõtmed nii tabelis A ja B. Näiteks "Autorid" tabelid ja "Pealkirjad" on mitu-mitmele seos, mis on määratlenud üks-mitmele seose iga need tabelid tabel "TitleAuthors". "TitleAuthors" tabeli primaarvõti on kombinatsioonau_ID veerg ("Autorid" tabeli primaarvõti) ja title_ID ("Pealkirjad" tabeli primaarvõti).

Ahenda see piltLaienda see pilt
2878330


Üks-ühele suhete

Üks-ühele seos tabeli A reas võib olla ainult üks vastavat kirjet tabelis B, ja vastupidi. Üksühene suhe luuakse, kui mõlemad seotud veerud primaarvõtmed või on kordumatud kitsendused.

Selline suhe ei ole levinud, sest enamik sel viisil seonduv teave oleks ühes tabelis. Üks-ühele seose abil võib võtta järgmisi meetmeid:
  • Palju veerge tabeli jagamiseks.
  • Osa tabeli turvalisuse tagamiseks isoleerida.
  • Andmeid, mis on lühiajaline ja saanud lihtsalt kustutada, kustutage tabel salvestada.
  • Teabe talletamiseks, mis rakendub ainult põhitabeli alamhulgale.
Juurdepääs, esmane üks-ühele seose poolel tähistatakse võtme tähis. Välismaa saitidel tähistatakse ka võtme tähis.
Ahenda see piltLaienda see pilt
assets folding end collapsed

Tabelitevaheliste seoste määratlemine

Ahenda see piltLaienda see pilt
assets folding start collapsed
Tabelitevahelise seose loomisel ei pea seostuvad väljad olema sama nimega. Related väljadel peab olema sama andmetüüp kui primaarvõtme väli on automaatnumbri väli. Välja Automaatnumber väljaga Number ei sobi, kui mõlema atribuut nii kattuvad väljad on sama. Näiteks saab vastendada automaatnumbri väli ja Arvuvälja kui mõlema välja atribuut välja suurus on Pikk täisarv. Isegi kui mõlemad väljad on arvuväljad, peab neil olema sama atribuudisäte .

Kuidas määratleda üks-mitmele või üks-ühele seost

A üks mitmele loomiseks või üks-ühele suhet, järgige neid samme:
  1. Sulgege kõik tabelid. Ei saa luua või muuta avatud tabelite vahelisi seoseid.
  2. Access 2002 või Access 2003, toimige järgmiselt.
    1. Vajutage klahvi F11 andmebaasi akna.
    2. Klõpsake menüü Tööriistad käsku seosed.

    Access 2007, Access 2010 või Access 2013, klõpsake menüü Andmebaasiriistad jaotises Kuvamine/peitminesuhteid .
  3. Kui teil on pole veel ühtegi seost määratlenud andmebaasis, kuvatakse dialoogiboks Tabeli kuvamine automaatselt. Tabelid, mida soovite seostada vaid dialoogiboks Tabeli kuvamineei kuvata lisamiseks klõpsake menüü suhteidTabeli kuvamine .
  4. Topeltklõpsake seotud tabelite nimed ja sulgege siis dialoogiboks Tabeli kuvamine. Tabel ja enda vahelise seose loomiseks lisage see tabel kaks korda.
  5. Lohistage väli ühest tabelist teise tabeli seostuvale väljale seotud. Mitme välja lohistamiseks vajutage juhtklahvi Ctrl iga välja ja seejärel lohistage need.

    Enamasti lohistate primaarvõtmevälja (väli kuvatakse paksu kirjaga) ühe tabeli sarnased väljale (väli on sageli sama nimi), mida nimetatakse teise tabeli võõrvõti.
  6. Kuvatakse dialoogiboks Seoste redigeerimine. Kontrollige, kas kahes tulbas kuvatavate väljade nimed on õiged. Nimesid saab muuta, kui on vaja.

    Vajaduse korral seadke seoste suvandeid. Kui teil on teave kindla kauba dialoogiboksSeoste redigeerimine , küsimärki nuppu ja seejärel klõpsake üksust. (Need suvandid selgitatakse üksikasjalikult hiljem selles artiklis.)
  7. Klõpsake nuppu Loo seost luua.
  8. Korrake juhiseid 4?7 iga paari käsitlevad tabelid.

    Redigeeri seoseiddialoogiboksi sulgemisel küsib Access, kas soovite paigutuse salvestada. Kas salvestate paigutuse või ühendusliideste salvestatakse loote seosed andmebaasis.

    MärkusSeoste loomiseks mitte ainult tabelid, vaid ka päringud. Viitamisterviklus on jõustatud queries.

Kuidas määratleda mitu-mitmele seos

Mitu-mitmele seose loomiseks toimige järgmiselt.
  1. Looge kaks tabelit, milles on mitu-mitmele seos.
  2. Looge kolmas tabel. See on seostustabeli. Lisage Seostustabelisse uued väljad, millel on samad mõisted nagu juhises 1 loodud iga tabeli primaarvõtmevälja. Seostustabelisse Primaarvõtmeväljade toimida võõrvõtmed. Muud väljad saate lisada Seostustabelisse, nagu teiste tabelitega.
  3. Määra Seostustabelisse lisada primaarvõtmevälja kahe tabeli primaarvõti. Näiteks "TitleAuthors" ristmikul tabeli primaarvõti oleks koosneda TellimuseID ja toote ID väljad.

    Märkus Primaarvõtme loomiseks toimige järgmiselt.
    1. Avage tabel kujundusvaates.
    2. Valige väli või väljad, mida soovite määrata primaarvõtmeks. Ühe välja valimiseks klõpsake soovitud välja reaselektorit. Mitme välja valimiseks hoidke all juhtklahvi (Ctrl) ja klõpsake siis iga välja reaselektorit.
    3. Access 2002 või Access 2003 klõpsake tööriistaribal nuppu Primaarvõti .

      Programmis Access 2007 klõpsake menüü kujundus jaotises Tööriistad nuppu Primaarvõti .

      MärkusMitme väljaga primaarvõtme väljad tellimuse erineda tabelis nende väljade järjestust, klõpsake indeksid tööriistaribal kuvada dialoogiboksi indeksid ja seejärel kordustellimuse tarvis indeks väljanimed.
  4. Määratleda üks-mitmele suhte igale esmase tabeli ja seostustabeli vahel.
Ahenda see piltLaienda see pilt
assets folding end collapsed

Viitamistervikluse

Ahenda see piltLaienda see pilt
assets folding start collapsed
Viitamisterviklus on süsteem kasutab Access veenduge, et kirjed seotud tabelite vahelised seosed kehtivad ja et te kogemata kustutada või muuta sellega seotud andmeid. Viitamistervikluse saab seada, kui täidetud on pärast tingimuste tagamine:
  • Primaartabeli vastav väli on primaarvõti või on kordumatud.
  • Seostuvad väljad olema sama andmetüüp. On kaks erandit. Välja Automaatnumber saab seostada arvuväljal, mõlema atribuudi säte on Pikk täisarvja välja Automaatnumber, millel on Tira?eerimise IDatribuudivälja suurus väärtuseks võib olla seotud arvuväljal, on Tira?eerimise IDatribuudivälja suurus väärtuseks.
  • Mõlemad tabelid kuuluvad samasse Accessi andmebaasi. Kui tabelid on lingitud tabelid, tuleb need tabelid Accessi vormingus ja avate andmebaasi talletatakse seada viitamistervikluse. Viitamisterviklust ei saa jõustada lingitud tabelite muus formaadis.
Viitamistervikluse kasutamisel kehtivad järgmised reeglid:
  • Primaarvõtme primaarvõti pole seotud tabeli võõrvõtme väljale ei saa sisestada väärtus. Siiski saate sisestada väärtust Null võõrvõti. See määrab, et kirjed ei ole. Näiteks ei tohi olla tellimuse, kliendile, kes pole määratud. Siiski võib olla keegi nullväärtust sisestades väljale Kliendi määratud korralduse.
  • Kirjet ei saa kustutada esmane tabelist seotud tabeli ühtivate kirjete olemasolul. Näiteks ei saa kustutada tabel "Töötajad" töötaja kirje, kui tabelis "Tellimused" töötajaga seotud tellimused.
  • Primaartabeli primaarvõtme väärtust ei saa muuta, kui see kirje on seotud kirjeid. Näiteks ei saa muuta töötaja ID tabel "Töötajad", kui on määratud sellele töötajale "Tellimused" tabeli Tellimused.
Ahenda see piltLaienda see pilt
assets folding end collapsed

Kaskaadvärskendused ja

Ahenda see piltLaienda see pilt
assets folding start collapsed
Suhted viitamistervikluse jõustamine, saate määrata, kas soovite automaatselt kaskaadi update juurdepääsu või Kaskaadkustuta seostuvad kirjed. Kui nende suvandite seadmiseks Kustuta ja uuenda operatsioone, mis võimaldaks tal tavaliselt viitamistervikluse reegleid on lubatud. Kirjete kustutamiseks või muutmisel esmase tabeli primaarvõtme väärtused, teeb Access vajalikud muudatused seotud tabelite säilitamiseks viitamisterviklus.

Märkige ruut Kaskaadvärskenda seostuvad väljad, kui määratlete seose nupu muutmisel esmase tabeli kirje primaarvõti Microsoft värskendab Access automaatselt primaarvõtme uue väärtuse kõik seostuvad kirjed. Näiteks kliendi ID tabelis "Kliendid" muutmisel "Tellimused" tabeli väli Kliendi ID.uuendatakse automaatselt iga ühe kliendi tellimused, et suhted ei ole katkenud. Juurdepääs Virnastab uuendused iga sõnumi kuvamata.

Märkus Kui primaarvõtme primaarvõti on Automaatnumber, märkides ruudu Kaskaadvärskenda seostuvad väljadei ole jõudu, sest automaatnummerduse väli väärtust ei saa muuta.

Kui määratlete seose, primaarvõtme kirje kustutamine alati märkige ruut Kaskaadkustuta seostuvad kirjed, kustutab Access automaatselt seostuvad kirjed seotud tabelist. Näiteks kliendi kirje kustutamisel tabelist "Kliendid" kustutatakse automaatselt kõik klientide tellimused, "Tellimused" tabelist. (See sisaldab kirjeid tabelis "Tellimuse üksikasjad", "Tellimused" kirjed seotud). Kui kustutate kirjeid vormi või andmelehe, kui ruutKaskaadkustuta seostuvad kirjed, hoiatab Access teid, mis seotud kirjeid ka kustutada. Siiski kustutuspäringu abil kirjete kustutamisel kustutab Access automaatselt seostuvate tabelite kirjeid hoiatus kuvamata.
Ahenda see piltLaienda see pilt
assets folding end collapsed

Liitu tüübid

Ahenda see piltLaienda see pilt
assets folding start collapsed
On kolm Liitu. Näete neid järgmine ekraanipilt:

Ahenda see piltLaienda see pilt
2878331


Variant 1 määratleb sisemine ühendus. Sisemine ühendus on ühendus on kahe tabeli kirjed on Päringu tulemites ühendada ainult juhul, kui ühendatud väljade väärtused vastavad määratletud tingimusele. Päringu vaikimisi liituma on sisemine ühendus valib kirjeid ainult juhul, kui ühendatud väljade väärtused ühtivad.

Variant 2 määratleb vasakpoolseks väliseks. Vasakpoolne väline ühendamine on ühendus, kus kõik kirjed tabelist vasakul JOIN-toimingu päringu SQL-lause vasakul lisatakse päringutulemeid, kui esinevad ühtivaid väärtusi liidetud väli tabelist paremal küljel.

Variant 3 määratleb parempoolne väline ühendamine. Parempoolne väline ühendamine on ühendus, kus kõik kirjed tabelist paremal pool selle päringu SQL-lause õige JOIN-toiming lisatakse päringutulemeid, kui esinevad ühtivaid väärtusi liidetud väljal tabeli vasakus servas.
Ahenda see piltLaienda see pilt
assets folding end collapsed

Atribuudid

Artikli ID: 304466 - Viimati läbi vaadatud: 9. oktoober 2013 - Redaktsioon: 5.0
Kehtib järgmise lõigu kohta:
  • Microsoft Access 2013
  • Microsoft Access 2010
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Märksõnad: 
kbdesign kbdatabase kbhowto kbmt KB304466 KbMtet
Masintõlgitud
NB! Artikkel on tõlgitud Microsofti masintõlketarkvaraga ja seda saab parandada Kogukonnapõhise tõlkeraamistiku (CTF) tehnoloogiaga. Microsoft pakub masintõlgitud, kogukonna järeltöödeldud ja inimtõlgitud artikleid, et anda mitmekeelne juurdepääs kõigile meie teabebaasi artiklitele. Masintõlgitud ja järeltöödeldud artiklites võib olla sõnavara-, süntaksi- ja/või grammatikavigu. Microsoft ei vastuta mingite ebatäpsuste, tõrgete ega kahjude eest, mis on tulenenud sisu valest tõlkest või selle kasutamisest meie klientide poolt. Lisateavet CTF-i kohta leiate aadressilt http://support.microsoft.com/gp/machine-translation-corrections/et.
Artikli ingliskeelse versiooni kuvamiseks klõpsake siin: 304466

Andke tagasisidet

 

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