Šiuo metu esate neprisijungę, laukiama, kol iš naujo prisijungsite prie interneto

Kaip nustatyti ryšius tarp lentelių naudodami programos Access duomenų bazėje

Nutrauktas „Office 2003“ palaikymas

Nuo 2014 m. balandžio 8 d. „Microsoft“ nutraukė „Office 2003“ palaikymą. Tai paveikė programinės įrangos naujinimus ir saugą. Sužinokite, ką tai reiškia jums ir kaip užtikrinti kompiuterio saugą.

SVARBU: šis straipsnis išverstas naudojant „Microsoft“ mašininio vertimo programinę įrangą ir gali būti pataisytas naudojant „Community Translation Framework“ (CTF) technologiją. „Microsoft“ siūlo mašinos išverstus ir po to bendruomenės suredaguotus straipsnius, taip pat žmogaus išverstus straipsnius siekdama suteikti prieigą prie visų savo žinių bazės straipsnių daugeliu kalbų. Mašinos išverstuose ir vėliau paredaguotuose straipsniuose gali būti žodyno, sintaksės ir / arba gramatikos klaidų. „Microsoft“ neatsako už jokius netikslumus, klaidas arba žalą, patirtą dėl neteisingo turinio vertimo arba mūsų klientų naudojimosi juo. Daugiau apie CTF žr. http://support.microsoft.com/gp/machine-translation-corrections.

304466
Naujokas: Reikia žinių apie vartotojo sąsajos vieno vartotojo kompiuteriuose.

Šis straipsnis taikomas tik Microsoft Access duomenų bazė (.mdb arba .accdb).
Microsoft Access 2000 versijos Šis straipsnis, žr. 304467.
Microsoft Access 97 versiją šio straipsnio, žr. 304468.
Santrauka
Šiame straipsnyje aprašoma, kaip apibrėžti santykius Microsoft Access duomenų bazėje. Straipsnis apima šias temas:
  • Kokie lentelių ryšiai?
  • Rūšių lentelių ryšiai
    • Vienas su daugeliu
    • Daugelis su daugeliu santykius
    • Vienas su vienu ryšius
  • Kaip nustatyti ryšius tarp lentelių
    • Kaip apibrėžti ryšį vienas su daugeliu arba vienas prie vieno
    • Kaip apibrėžti ryšį Daugelis su daugeliu
  • Nuorodų vientisumas
  • Pakopinius naujinimus ir naikinimus
  • Prisijungti tipai
Daugiau informacijos

Kokie lentelių ryšiai?

Reliacinės duomenų bazės, santykius leidžia užkirsti kelią perteklinių duomenų. Pavyzdžiui, jei kuriate duomenų bazę, kuri bus sekti informaciją apie knygas, gali būti pavadintas "Pavadinimai" lentele, kurioje saugoma informacija apie kiekvieną knygą, pvz., knygos pavadinimą, datą bei leidinio leidėjas. Taip pat yra informacijos, kad jūs norėsite laikyti apie leidėją, pavyzdžiui, leidėjo telefono numeris, adresas, andZIP kodas/pašto kodas. Jei jums reikėtų laikyti visą šią informaciją lentelėje "Pavadinimai", leidėjo telefono numeris būtų dubliuojamas kiekvienai daliai, kad leidėjas spausdina.

Geresnis sprendimas – leidėjo informaciją tik vieną kartą, sandėliuotų atskirose lentelėse kad mes vadiname "Leidykla." Tada jums būtų loginė rodyklė su nuoroda "Leidėjų" lentelės įrašą lentelėje "Pavadinimai".

Įsitikinkite, kad jūsų duomenys lieka sinchronizuoti, galite įgalinti nuorodų vientisumą tarp lentelių. Nuorodų vientisumas santykius padėti informacija lentelėje atitinka informaciją į kitą. Pvz., kiekvienoje antraštinėje dalyje "Pavadinimai" lentelės turi būti susijęs su konkrečių leidėjas "Leidėjų" lentelėje. Pavadinimas negali būti pridėta prie duomenų bazės leidėjo, kurio nėra duomenų bazėje.

Loginių santykių duomenų bazė leidžia youto efektyviai užklausti duomenų ir kurti ataskaitas.

Rūšių lentelių ryšiai

Santykius veikia suderintu pagrindinis stulpelių, paprastai stulpelių (arba duomenų laukai), turinčių tą patį pavadinimą abiejose lentelėse. Daugeliu atveju ryšys jungia pirminis raktas ir unikalusis stulpelį kiekvienoje eilutėje, iš vienos lentelės į kitą lentelės lauke. Kitos lentelės stulpelio pavadinimas yra žinomas kaip "išorinio rakto." Pavyzdžiui, jei norite sekti pardavimus, kiekvienos knygos pavadinimą, galite sukurti ryšį tarp į pirminio rakto stulpelį (Pavadinkime jįtitle_ID) lentelės "Pavadinimai" ir "Pardavimo" lentelę, pavadintą title_IDstulpelį. Title_ID stulpelis lentelėje "Pardavimų" yra išorinis raktas.

Yra trijų rūšių ryšius tarp lentelių. Santykius, kurie yra sukurta rūšies priklauso kaip susijusios stulpeliai yra nurodyti.

Vienas su daugeliu

Vienas su daugeliu yra labiausiai paplitusi rūšis santykių. Šios rūšies santykius, eilės A lentelėje gali būti daug atitikimo eilutės lentelės B. Bet eilės B lentelėje gali būti tik vienas atitikimo eilutės a lentelės Pvz., "Leidėjams" ir "Pavadinimai" lentelės turi ryšį vienas su daugeliu. Tai yra, kiekvienas leidėjas gamina daug pavadinimų. Bet kiekvienas pavadinimas kilęs iš tik vienas leidėjas.

Vienas su daugeliu sukuriamas jei tik vienas iš susijusių stulpelių yra pirminis raktas arba turi unikalaus apribojimo.

Santykių langas programoje Access, pirminio rakto pusėje vienas su daugeliu žymimas numeris 1. Užsienio pagrindinių pusės santykiai yra žymimas begalybės simbolis.



Daugelis su daugeliu santykius

Daugelis su daugeliu santykius, eilės A lentelėje gali būti daug atitikimo eilutės lentelės B ir atvirkščiai. Galite sukurti tokių santykių apibrėžiant trečią lentelę, vadinamą jungiamąja lentele. Jungiamojoje lentelėje pirminio rakto sudaro išoriniuose raktuose iš tiek A ir B. Pvz., lentelės "Autoriai" ir "Pavadinimai" lentelės ar daugelis su daugeliu santykius, kurie apibrėžia vienas su daugeliu ryšį iš kiekvienos iš šių lentelių į lentelę "TitleAuthors". Pirminis raktas "TitleAuthors" lentelės yraau_ID skiltyje ("Autoriai" lentelės pirminį raktą) ir title_ID skiltyje ("Pavadinimai" lentelės pirminį raktą).



Vienas su vienu ryšius

Tiesioginis ryšys, eilės A lentelėje gali būti tik vienas atitikimo eilutę lentelės B ir atvirkščiai. Tiesioginis ryšys bus kuriamas, jei abi susijusios stulpelių yra pirminis raktas arba turi unikalų apribojimus.

Toks ryšys nėra dažnas, nes dauguma informaciją, kuri yra tokiu būdu būtų lentelėje. Galite naudoti ryšį imtis šių veiksmų:
  • Padalinti lentelę su daug stulpelių.
  • Izoliuoti dalį lentelės saugumo sumetimais.
  • Saugoti duomenis, kurie yra trumpalaikis ir galima lengvai panaikinti naikindami lentelę.
  • Saugoti informaciją, taikomą tik pagrindinės lentelės pogrupį.
Programoje Access, pirminės pagrindinių pusėje analogą žymimas pagrindinis simbolis. Užsienio pagrindinių pusėje taip pat yra nurodyti kaip pagrindinis simbolis.

Kaip nustatyti ryšius tarp lentelių

Kai sukuriate ryšius tarp lentelių, esančių susijusių laukų nereikia turi tuos pačius pavadinimus. Tačiau susiję laukai turi būti pačios duomenų tipas jei pirminio rakto laukas yra laukas Automatinis numeravimas. Laukas Automatinis numeravimas su lauku skaičius galite suderinti tik jei FieldSize abu sutapdinami laukai yra tas pats. Pvz., galite suderinti laukas Automatinis numeravimas ir skaičius, jei abiejų laukų FieldSize ypatybės yra Ilgasis sveikasis skaičius. Net jei abu sutapdinami laukai yra laukai skaičius, jie privalo turėti pačią FieldSize ypatybės parametras.

Kaip apibrėžti ryšį vienas su daugeliu arba vienas prie vieno

Sukurti vienas su daugeliu arba ryšį, atlikite šiuos veiksmus:
  1. Uždaryti visus stalus. Negalite sukurti ar pakeisti atidarytų lentelių ryšių.
  2. Access 2002 arba Access 2003, atlikite šiuos veiksmus:
    1. Paspauskite klavišą F11, kad pereiti prie duomenų bazės langą.
    2. Meniu Įrankiai spustelėkite ryšiai.

    Access 2007, Access 2010 ar Access 2013, skirtuke Duomenų bazės įrankiai grupėje Rodymas/slėpimas spustelėkiteryšiai .
  3. Jei dar nenurodėte jokių ryšių, duomenų bazės, automatiškai rodomas dialogo langą Lentelės rodymas . Jei norite įtraukti lentelių, kurias norite susieti bet dialogo langą Lentelės rodymaspasirinkties nebus, santykius meniu spustelėkiteLentelės rodymas .
  4. Dukart spustelėkite pavadinimai ir lenteles, kurias norite susieti, ir uždarykite dialogo langą Lentelės rodymas. Norėdami sukurti ryšį tarp pačios lentelės, du kartus.
  5. Nuvilkite lauką, kurį norite vieną lentelę su susijusios srities į kitą lentelę. Norėdami vilkti kelis laukus, paspauskite klavišą Ctrl, spustelėkite kiekvieną lauką ir vilkite juos.

    Daugeliu atveju velkate pirminio rakto lauke (Šiame lauke rodoma paryškintai) iš vienos lentelės į panašius laukas (šioje srityje dažnai turi tą patį pavadinimą), yra vadinamas išorinis raktas į kitą lentelę.
  6. Ryšių redagavimasdialogo langas. Įsitikinkite, kad laukų pavadinimai, kurie rodomi dviejose skiltyse yra teisingi. Galite keisti pavadinimus, jei reikia.

    Ryšių parinkčių nustatymas Jei reikia. Jei turite turėti informaciją apie su preke dialogo langeRyšių redagavimas , spustelėkite mygtuką klaustukas, ir tada spustelėkite elementą. (Šias parinktis bus paaiškinta išsamiau vėliau šiame straipsnyje).
  7. Spustelėkite kurti sukurti ryšį.
  8. Pakartokite veiksmus nuo 4 iki 7 kiekvieną porą lenteles, kurias norite susieti.

    Uždarę dialogo lange Ryšių redagavimas, prieiga paklaus, ar norite įrašyti maketą. Ar įrašyti maketą arba neįrašykite maketą, santykius, kad kuriate yra saugomi duomenų bazėje.

    Pastaba.Kurdami santykius ne tik lentelėse, bet ir užklausose. Tačiau nuorodų vientisumas neįgalinamas su užklausomis.

Kaip apibrėžti ryšį Daugelis su daugeliu

Norėdami sukurti ryšį Daugelis su daugeliu, atlikite šiuos veiksmus:
  1. Sukurti dvi lentelės, kurios turės ryšį Daugelis su daugeliu.
  2. Sukurti trečią lentelę. Tai Jungiamojoje lentelėje. Jungiamojoje lentelėje, pridėti naujų laukų, kurie turi tokius pačius apibrėžimus kaip ir pirminio rakto laukus iš kiekvienos lentelės, kurį sukūrėte atlikdami 1 veiksmą. Jungiamojoje lentelėje pirminio rakto laukai veikia kaip išoriniai raktai. Kitose srityse Jungiamojoje lentelėje galite pridėti kaip jūs galite į kokios nors kitos lentelės.
  3. Jungiamojoje lentelėje nustatykite pirminiame rakte būtų kitų dviejų lentelių pirminio rakto laukai. Pavyzdžiui, į "TitleAuthors" jungiamąja lentele, pirminį raktą būtų sudaryti laukus Užsakymo_id ir Produkto_id .

    Pastaba. Norėdami sukurti pirminį raktą, atlikite šiuos veiksmus:
    1. Atidarykite lentelę kaip dizaino rodinį.
    2. Pasirinkite lauką arba laukus, kuriuos norite nustatyti kaip pirminį raktą. Norėdami pažymėti vieną lauką, spustelėkite norimo lauko eilutės parinkiklį. Norėdami pažymėti kelis laukus, laikykite nuspaudę klavišą Ctrl ir spustelėkite kiekvieno lauko eilutės parinkiklį.
    3. Access 2002 arba Access 2003, įrankių juostoje spustelėkite Pirminis raktas .

      Programoje Access 2007 skirtuko dizainas grupėje Įrankiai spustelėkite Pirminis raktas .

      Pastaba.Jei norite kelių laukų pirminio rakto laukų tvarka skiriasi nuo šių lentelės laukų ordinas, Rodyti dialogo langą rodyklės, ir tada pertvarkyti laukų pavadinimai indekso, pavadinto PrimaryKey įrankių juostoje spustelėkite rodykles.
  4. Nurodote vienas su daugeliu ryšį tarp kiekvienos pirminės lentelės ir Jungiamojoje lentelėje.

Nuorodų vientisumas

Nuorodų vientisumas yra sistema, kad programa Access naudoja įsitikinti, kad santykiai tarp lentelių įrašų galioja, ir kad ne netyčia panaikinote arba pakeisti susiję duomenys. Galite nustatyti nuorodų vientisumą, jei allthe šias sąlygas:
  • Dėl pirminės lentelės lauke yra pirminis raktas arba turi unikalų indeksą.
  • Susijusiose srityse yra patį duomenų tipas. Yra dvi išimtys. Laukas Automatinis numeravimas gali būti susijęs su lauku skaičius FieldSize ypatybės parametras yra Ilgasis sveikasis skaičius, irFieldSize ypatybės parametras yra Replikavimo IDlaukas Automatinis numeravimas gali būti susijęs su lauku skaičiusFieldSize ypatybės parametras yra Replikavimo ID.
  • Abi lentelės priklauso tai į tą pačią prieigą. Jei lentelės yra susietos lentelės, jie turi būti lentelių prieigos formatu, ir jūs turite atidaryti duomenų bazę, kurioje jie laikomi nustatyti nuorodų vientisumą. Nuorodų vientisumas negali būti įgalinti susijusiose lentelėse iš kitų formatų duomenų bazių.
Kai naudojate nuorodų vientisumas, taikomos šios taisyklės:
  • Reikšmės negalima įvesti į išorinio rakto lauką arba susijusią lentelę, kurioje neegzistuoja pirminės lentelės pirminio rakto. Tačiau, įvesdami yra nulinė reikšmė pagal išorinį raktą. Tai nurodo, kad įrašai nesusiję. Pavyzdžiui, jūs negalite turėti kad priskiriama klientui, kuris neegzistuoja. Tačiau, jūs galite turėti užsakymą, priskirtas niekas įvesdami yra nulinė reikšmė lauką CustomerID .
  • Negalima panaikinti įrašą iš pirminėje lentelėje, jei sutampančius įrašus susijusios lentelės. Pavyzdžiui, negalite naikinti darbuotojo įrašo iš lentelės "Darbuotojai" jei yra priskirtas darbuotojas, "užsakymai" užsakymų.
  • Negalima keisti pirminės lentelės pirminio rakto reikšmė, jei to įrašo turi su juo susijusius įrašus. Pvz., negali pakeisti darbuotojo ID lentelės "Darbuotojai", jei yra tam darbuotojui lentelėje "Užsakymai" priskirtų užsakymų.

Pakopinius naujinimus ir naikinimus

Santykius, kuriuose būtų vykdomas nuorodų vientisumą, galite nurodyti ar norite naudotis automatiškai pakopinis naujinimas ar susijusius įrašus naikinti pakopomis. Jei galite nustatyti šias parinktis, ištrinti ir atnaujinti operacijas, kurios paprastai būtų galima išvengti taisyklės įgalinti nuorodų vientisumą. Kai įrašus naikinti ar keisti pirminės lentelės pirminio rakto reikšmės, prieigos daro reikiamus pakeitimus susijusių lentelių išsaugoti nuorodų vientisumą.

Spustelėję pažymėkite žymės langelį Susijusius laukus naujinti pakopomis, kai jūs nurodote ryšį, bet kuriuo metu pakeisti pirminį raktą pirminis lentelės, įrašo Microsoft Access automatiškai naujina pirminis raktas į jo naująją vertę ir visus susijusius įrašus. Pvz., jei pakeisite kliento ID "Klientai", lauke Kliento_ID sujungiančiąlentelėje "Užsakymai" automatiškai atnaujinama kiekvieno iš kliento užsakymai, kad santykiai nėra sugedęs. Prieigos kaskadų atnaujinimai nerodant bet kokį pranešimą.

Pastaba. Jei pirminės lentelės pirminio rakto laukas Automatinis numeravimas, pažymėdami žymės langelį Susijusius laukus naujinti pakopomisneturi įtakos, nes negali pakeičiate vertę lauke Automatinis numeravimas.

Pažymėjus žymės langelį Susijusius įrašus naikinti pakopomiskai jūs nurodote ryšį, bet kuriuo metu panaikinti pirminės lentelės įrašus, programa Access automatiškai naikina susijusios lentelės įrašais. Pavyzdžiui, jei panaikinsite kliento įrašą iš lentelės "Klientai", visų klientų užsakymus automatiškai pašalinama iš "užsakymai". (Tai apima įrašų, susijusių su "Užsakymai" įrašai lentelėje "Užsakymų informacija"). Naikinant įrašus formos ar duomenų lapo pažymėjus žymės langelįSusijusius įrašus naikinti pakopomis, Access įspėja kurie susiję įrašai taip pat gali būti panaikintas. Tačiau naikinant įrašus naudodamiesi naikinimo užklausa, Access automatiškai panaikina susijusios lentelės įrašus nerodant įspėjimo.

Prisijungti tipai

Yra trys sujungimo tipai. Jūs galite pamatyti juos šių ekrano nuotrauka:



1 Variantas apibrėžia vidinį sujungimą. Vidinis sujungimas yra sujungimu, kurie įrašai iš dviejų lentelių yra sujungiami į užklausos rezultatus tik tada, jei vertės, kurių sujungti laukai atitikti nurodyta sąlyga. Užklausos, numatytasis prisijungti yra vidinį sujungimą parenkančiu įrašų tik tada, jei reikšmės, kurių sujungti laukai sutampa.

2 Galimybė apibrėžia kairįjį išorinį. Kairysis išorinis sujungimas yra sujungimas, kurioje visos iš kairės pusės į kairę sujungimo operacijos užklausos SQL sakinys įrašai įtraukiami į užklausos rezultatus, net jei nėra sutampančių reikšmių sujungtos lauką lentelės dešinėje pusėje.

3 Galimybė apibrėžia dešiniojo išorinio sujungimo. Dešiniojo išorinio sujungimo yra sujungimas, kurioje visos iš dešinės pusės į DEŠINIO sujungimo užklausos SQL sakinio operacijos įrašai įtraukiami į užklausos rezultatus, net jei nėra sutampančių reikšmių sujungtos lauką lentelės kairėje pusėje.
INF ACC2002 acc2003 acc2007

Įspėjimas: šis straipsnis išverstas automatiškai

Savybės

Straipsnio ID: 304466 – Paskutinė peržiūra: 11/23/2013 15:27:00 – Peržiūra: 5.0

  • Microsoft Access 2013
  • Microsoft Access 2010
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • kbdesign kbdatabase kbhowto kbmt KB304466 KbMtlt
Atsiliepimai