Duomenų bazės kūrimo pagrindai

Svarbu:  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

Tinkamai sukurta duomenų bazės suteikia jums prieigą prie naujausios, tikslią informaciją. Kadangi teisingas dizainas yra būtinas siekiant savo tikslus darbo su duomenų bazės, tiek laiko būtina išmokti geras dizaino principai prasminga. Galiausiai, yra daug labiau tikėtina, kad baigti su duomenų bazę, kuri atitinka jūsų poreikius ir telpa lengvai keisti.

Šiame straipsnyje pateikiami nurodymai planavimo kompiuterio duomenų bazėje. Galite sužinoti, kaip nuspręsti, ką jums reikia informacijos, kaip šią informaciją padalyti į atitinkamas lenteles ir stulpelius ir kaip tų lentelių susiję tarpusavyje. Prieš kurdami savo pirmąjį kompiuterio duomenų bazę, turėtų perskaityti šį straipsnį.

Svarbu: Access pateikiami kūrimo patirtį, kuri leidžia kurti žiniatinklio duomenų bazės taikomąsias programas. Daug dizaino aspektai skiriasi, kai kuriate žiniatinkliui. Šiame straipsnyje neaptariami žiniatinklio duomenų bazės dizaino programos. Daugiau informacijos ieškokite straipsnyje kurti duomenų bazę bendrinti žiniatinklyje.

Šiame straipsnyje:

Kai kurios duomenų bazės sąlygas žinoti

Kas yra geras duomenų bazės dizainas?

Kūrimo procesas

Nustatyti duomenų bazės tikslą

Kaip rasti ir tvarkyti reikiamą informaciją

Informacijos skirstymas į lenteles

Informacijos elementų paversti stulpeliai

Pirminių raktų nurodymas

Lentelės ryšių kūrimas

Valymo dizainą

Suinteresuotosios šalys normalizavimas


Kai kurios duomenų bazės sąlygas žinoti

lenteliųinformaciją tvarko Access : sąrašus eilučių ir stulpelių primena buhalterio bloknotą ar skaičiuoklę. Paprastas duomenų bazėje gali būti tik viena lentelė. Dauguma duomenų bazių turite daugiau nei vieną. Pvz., gali būti lentelė, kurioje saugoma informacija apie produktus, kitoje lentelėje, kurioje saugoma informacija apie užsakymus ir kitos lentelės informaciją apie klientus.

Paveikslėlis, vaizduojantis tris lenteles duomenų lapuose

Kiekvienos eilutės tiksliau vadinamas įrašąir kiekvieno stulpelio laukas. Įrašas yra prasmingas ir nuoseklus būdas sujungti informacijos apie kažką. Laukas yra vieno elemento informacijos, elemento tipas, kuris rodomas kiekvieno įrašo. Lentelės produktai, pavyzdžiui, kiekvienoje eilutėje arba įrašo būtų turėti informacijos apie vieną produktą. Kiekvieno stulpelio arba lauko turi kokio tipo informaciją apie šį produktą, pvz., savo vardą arba kainą.

Puslapio viršus

Kas yra geras duomenų bazės dizainas?

Tam tikri principai vadovas duomenų bazės kūrimo procesas. Pirmasis principas pasikartojanti informacija (dar vadinamas nereikalingų duomenų) yra neteisingi, nes užima vietą ir didina klaidų ir neatitikimo tikimybę. Antrasis principas tikslumą ir išsamesnė informacija yra svarbūs. Jei jūsų duomenų bazėje yra neteisingos informacijos, visose ataskaitose, traukti informaciją iš duomenų bazės taip pat yra klaidinga informacija. Todėl visus sprendimus, galite atlikti šias ataskaitas, pagrįstas bus klaidinantys.

Geras duomenų bazės dizainas, yra viena:

  • Dalijasi informaciją į lenteles pagal temas ir sumažinti nereikalingų duomenų.

  • Pasieksite informaciją, reikia sujungti informaciją lentelėse pagal poreikį.

  • Padedama palaikyti ir užtikrinti tikslumą ir vientisumą jūsų informacijos.

  • Telpa savo duomenų apdorojimo ir ataskaitų kūrimo poreikiai.

Puslapio viršus

Kūrimo procesas

Kūrimo metu sudaryta iš šių veiksmų:

  • Nustatykite duomenų bazės tikslą   

    Tai padeda jums pasirengti likusius veiksmus.

  • Raskite ir tvarkykite reikiamą informaciją   

    Gauti visų tipų informacijos, galite norėti įrašyti duomenų bazės, pvz., produkto pavadinimas ir užsakymo numerį.

  • Paskirstyti informaciją į lenteles   

    Jūsų informacijos elementai suskirstyti pagrindines kategorijas ar temas, pvz., produktai ar užsakymai. Kiekviena tema tampa lentelę.

  • Informacijos elementų pavertimas stulpeliais   

    Nuspręskite, kokią informaciją norite saugoti kiekvienos lentelės. Kiekvieno elemento tampa lauką ir rodoma kaip lentelės stulpelį. Pvz., darbuotojų lentelės gali įtraukti laukus, pvz., pavardė ir nusamdyti datos.

  • Nurodykite pirminius raktus   

    Pasirinkite kiekvienos lentelės pirminį raktą. Pirminis raktas yra stulpelis, naudojamas identifikuoti kiekvieną eilutę. Pavyzdys gali būti produkto ID arba užsakymo ID.

  • Lentelių ryšių nustatymas   

    Pažvelgti į kiekvieną lentelę ir nuspręskite, kaip vienos lentelės duomenis yra susiję su kitos lentelės duomenis. Laukų įtraukimas į lenteles arba sukurti naujų lentelių ryšius, reikia išsiaiškinti.

  • Patikslinkite savo dizainas   

    Išanalizuokite savo dizainą, ar nėra klaidų. Kurti lenteles ir pridėti kelis įrašus duomenų pavyzdžius. Pamatyti, jei jūs galite gauti pageidaujamus rezultatus iš lentelių. Pakoreguokite dizainą, kiek reikia.

  • Taikyti normalizavimas taisykles   

    Taikyti duomenų normalizavimas taisykles, norėdami pamatyti, jei jūsų lentelių struktūra tinkamai. Pakoreguokite lenteles, kiek reikia.

Puslapio viršus

Nustatyti duomenų bazės tikslą

Pravartu lape užsirašykite duomenų bazės paskirtis – paskirtį, kaip planuojate naudoti ir kas ją naudoti. Mažų namų verslo duomenų bazei, pvz., galite parašyti ką nors paprasto pvz., "klientų duomenų bazę saugo klientų informacijos paštas ir ataskaitos, sąrašą." Jei duomenų bazė yra daug sudėtingesnės arba naudojama daug žmonių, kaip dažnai pasitaiko įmonės aplinkoje, paskirtį gali būti lengvai dalį arba daugiau ir turėtų būti, kada ir kaip kiekvienas asmuo bus naudoti duomenų bazę. Idėja, kad gerai sukurtas misijos, gali būti nurodytas per visą kūrimo procesą. Kad toks patvirtinimas padeda jums sutelkti dėmesį į savo tikslus, kai atliekate sprendimus.

Puslapio viršus

Kaip rasti ir tvarkyti reikiamą informaciją

Norėdami rasti ir tvarkykite reikiamą informaciją, pradėkite savo esamą informaciją. Pvz., gali įrašyti pirkimo užsakymus knygos arba palikti klientų informaciją apie popieriaus formos failų saugykla. Surinkite šiuos dokumentus ir išvardyti kiekvieno tipo informacijos rodomas (pvz., kiekvieną lauką, kuris užpildykite formos). Jei neturite jokių formas, Įsivaizduokite, kad vietoj to, į formos kliento informacija. Kokia informacija būtų perkelti į formą Ką užpildyti langelius sukurtumėte? Nustatyti ir kiekvieno iš šių elementų sąrašą. Pavyzdžiui, Tarkime, kad šiuo metu laikote klientų sąrašas rodyklė kortelės. Šiose kortelėse nagrinėti gali Rodyti, kad kiekvienoje kortelėje yra kliento vardas ir pavardė, adresas, miestas, būsena, pašto indeksas ir telefono numerį. Kiekvienas iš šių elementų atitinka galimą stulpelį į lentelę.

Kaip ruošiate šiame sąraše, nereikia nerimauti apie tai, kaip ji puikiai iš pradžių. Vietoj to, sąrašą kiekvieną elementą, kuris ateina į galvą. Jei kas nors kitas naudoja duomenų bazę, paprašykite savo idėjas, taip pat. Galite reguliuoti sąrašo vėliau.

Be to, mano tipų ataskaitas ar paštas, galite gauti iš duomenų bazės. Pavyzdžiui, galite norėti produkto pardavimo ataskaita parodyti pardavimo pagal regioną arba atsargų suvestinės ataskaitos rodo produktų atsargų lygius. Taip pat galite sukurti blankuose siųsti klientams, kad skelbia pardavimo įvykį arba siūlo marža. Sukurti ataskaitą nuomonę, ir Įsivaizduokite, kaip jis atrodys. Kokią informaciją įtrauktumėte į ataskaitą? Sąrašo kiekvieną elementą. Atlikite tą patį formos raidė ir bet kuria kita ataskaita, kurią ketinate sukurti.

Asmuo, įsivaizduojantis produktų atsargų ataskaitą

Suteikti manoma, kad ataskaitos ir laiškų siuntimas, galbūt norėsite sukurti padeda nustatyti elementus, jums reikia jūsų duomenų bazėje. Pavyzdžiui, Tarkime, kad galite suteikti vartotojams galimybę pasirinkti iki (arba nuo) periodinės el. pašto naujinimų, ir jūs norite spausdinti sąrašą tų, kurie pasirinko dalyvauti. Norėdami įrašyti šią informaciją, "Siųsti el. pašto" stulpelio įtraukimas į lentelę klientų. Kiekvieno kliento lauką galite nustatyti į taip ar ne.

Šį reikalavimą siųsti laiškus klientams siūlo kitą elementą įrašyti. Kai jau žinote, kad klientas nori gauti el. laiškus, taip pat turite žinoti el. pašto adresas, į kurį norite nusiųsti. Todėl jums reikia įrašyti elektroninio pašto adresą kiekvieno kliento.

Geriau geras konstruoti pavyzdį kiekvienos ataskaitos arba išvesties sąrašą ir nuspręsti, kokie elementai jums reikės pateikti ataskaitą. Pavyzdžiui, kai peržiūrėsite formos laišką, keli dalykai, kuriuos gali į galvą ateina. Jei norite įtraukti tinkamą pasveikinimą, pvz., "P.", "Mrs" ar "Pone" eilutė, prasideda, turėsite sukurti pasveikinimas elementą. Be to, galite paprastai pradėti laišką "Gerbiamas p. Nagas", o ne "Gerbiami. P. Navaitis". Tai rodo, kad būtų paprastai norite saugoti nesusijusių vardas pavardė.

Svarbiausia prisiminti yra, kad kiekviena informacijos dalis turėtų nutraukti į mažesnes naudingas dalis. Jei pavadinimą, kad pavardės lengvai pasiekiamas, bus nutraukiate pavadinimą į dvi dalis – vardas ir pavardė. Ataskaitos rikiuoti pavardė, pvz., lengviau yra kliento pavardė saugomi atskirai. Apskritai, jei norite rikiuoti, ieškoti, apskaičiuoti, arba ataskaitos pagal konkrečią informaciją, reikia įdėti šio elemento savo srityje.

Pagalvokite apie klausimus, galbūt norėsite atsakyti į duomenų bazę. Pvz., kiek jūsų reklamuojamų produktų pardavimo problema uždarysite praėjusį mėnesį? Kur gyvena jūsų Geriausi Klientai? Kas yra jūsų geriausiai parduodamų produktų tiekėjas? Galimi šie klausimai padeda nulis, dar elementus įrašyti.

Kai surinksite šią informaciją, būsite pasirengę kitam veiksmui.

Puslapio viršus

Informacijos skirstymas į lenteles

Norėdami dalinti informaciją į lenteles, pasirinkite pagrindines kategorijas ar temas. Pvz., kaip rasti ir tvarkyti informaciją apie produktų pardavimo duomenų bazę, pirminis sąrašas gali atrodyti taip:

Ranka užrašyti informacijos elementai, sugrupuoti pagal temas

Pagrindinės organizacijos, čia yra produktai, tiekėjai, Klientai ir užsakymai. Todėl logiška pradėti nuo šių keturių lentelių: faktai apie produktus, faktai apie tiekėjų vieną, po vieną faktai apie klientus ir vieną faktai apie užsakymus. Nors tai nėra užbaigti sąrašą, tai gera pradžia. Galite toliau tikslinti šį sąrašą, kol gausite dizainas, kad gerai veikia.

Kai peržiūrite pirmą kartą prašymas elementų sąrašas, jums gali būti bandyti Pastatykite juos visus į vieną lentelę, vietoj ankstesnėje iliustracijoje parodyta keturių. Sužinosite Štai kodėl tai yra bloga idėja. Apsvarstykite galimybę trumpam lentelėje parodyta čia:

Paveikslėlis, kuriame rodoma lentelė, kurioje yra ir produktai, ir tiekėjai

Šiuo atveju kiekvienoje eilutėje pateikiama informacija apie produkto ir jos teikėjas. Todėl, kad turite daug produktų iš to paties tiekėjo, tiekėjo pavadinimo ir adreso informaciją turi būti kartojamas keletą kartų. Tai eikvos vietą diske. Įrašyti tiekėjo informaciją tik vieną kartą atskiroje lentelėje tiekėjai, ir tada susieti lentelę į lentelę produktai, yra daug geresnis sprendimas.

Antroji problema šio dizaino kalbama apie, kai norite modifikuoti informaciją apie tiekėjo. Pavyzdžiui, Tarkime, kad reikia pakeisti tiekėjo adresas. Nes daugelyje vietų, galite netyčia pakeisti adresą vienoje vietoje, bet nepamirškite pakeisti jį kitiems. Problema išsprendžiama įrašymo tiekėjo adresas tik vienoje vietoje.

Kai kuriate duomenų bazę, visada bandykite įrašyti kiekvieną tai tik vieną kartą. Jei radote sau kartoti tą pačią informaciją daugiau nei vienoje vietoje, pvz., konkretaus tiekėjo, adreso vieta šios informacijos kitoje lentelėje.

Galiausiai, Tarkime, kad yra tik viena produkto suteiktame Coho vyninė, ir norite panaikinti produktą, bet palikti tiekėjo pavadinimo ir adreso informaciją. Kaip panaikinti produkto įrašą, taip pat neprarandant tiekėjo informaciją? Negalite. Kadangi kiekviename įraše yra duomenys ir apie produktą, taip pat apie tiekėją, negalite panaikinti vieną kitą nepanaikindami. Norėdami atskirti šiuos faktus, galite skaidyti vieną lentelę į dvi: vienos lentelės produkto informacijos, o kitą lentelę tiekėjo informacijos. Panaikinus produkto įrašą, turėtumėte panaikinti tik faktai apie produktą, ne faktai apie tiekėjas.

Pasirinkę temą, kurią sudaro lentelės stulpelių lentelės turėtų saugoti faktai tik apie tema. Pvz., lentelės produktai turi saugoti faktai tik apie produktus. Kadangi tiekėjo adresas yra duomenys apie tiekėją, o ne apie produkto, jis priklauso lentelei Tiekėjai.

Puslapio viršus

Informacijos elementų paversti stulpeliai

Nustatyti lentelės stulpelius, nuspręskite, kokią informaciją, jums reikia sekti apie tema įrašytas lentelėje. Pvz., lentelę Klientai, pavadinimas, adresas, City ir State-Zip, siųsti siunčiu elektroninius laiškus, pasveikinimas ir elektroninio pašto adresą sudaro geras pradžios stulpelių sąrašas. Kiekvieno įrašo lentelėje yra tuos pačius stulpelių, kad galite saugoti pavadinimas, adresas, City ir State-Zip, siųsti el. pašto laišką ir el. pašto adreso kiekvieno įrašo informaciją. Pvz., stulpelio adresas yra klientų adresus. Kiekviename įraše yra duomenys apie klientą ir adresą lauke Adresas, kad klientas.

Kai jūs turite nustatyti pradinio kiekvienos lentelės stulpelių rinkinio, galite susiaurinti stulpelius. Pvz., geriau saugoti kliento pavadinimą kaip dviejuose atskiruose stulpeliuose: vardo ir pavardės, kad galite rikiuoti, ieška ir rodyklė tik tuos stulpelius. Be to, adresą iš tikrųjų sudarytas iš penkių atskirų dalių, adresas, miestas, būsena, pašto kodas ir šalies/regiono, ir dar geriau juos laikyti atskiruose stulpeliuose. Jei norite atlikti su paieška, filtravimo ar rūšiavimo operacijos pagal valstiją, pvz., turite būsenos informacijos, saugomos atskirą stulpelį.

Taip pat turėtumėte atsižvelgti, ar duomenų bazėje bus informaciją, kuri yra vietinės kilmės tik, ar užsienio, taip pat. Pavyzdžiui, jei ketinate saugoti tarptautinius adresus, tai geriau turėti regiono stulpelį vietoj būsena, nes toks stulpelis telpa vidaus Amerikos ir kitų šalių arba regionų, regionų. Be to, pašto indeksas prasmės daugiau nei pašto indeksas jei ketinate saugoti tarptautinius adresus.

Šiame sąraše pateikiami keli patarimai, kaip nustatyti savo stulpelius.

  • Neįtraukite apskaičiuotų duomenų   

    Dažniausiai turi laikyti negalima rezultatų skaičiavimo lentelėse. Vietoj to, jūs galite turėti prieigą, atlikti skaičiavimus, kai norite matyti rezultatą. Pavyzdžiui, Tarkime, užsakytų produktų ataskaitą, kurioje rodomi vienetai tarpinės sumos, užsakymo kiekvienos kategorijos produktų duomenų bazėje. Tačiau yra nėra užsakytų vienetų Tarpinė suma stulpelio kiekviena lentelė. Vietoj to, lentelėje produktai yra stulpelis Užsakyti vienetai, kuriame saugoma matavimo vienetai užsakymo kiekvieno produkto. Naudojant tuos duomenis, programa Access skaičiuos tarpinės sumos kaskart, kai spausdinate ataskaitą. Tarpinės sumos, pati turi būti laikomi ne lentelės.

  • Mažiausias loginės dalys informacijai saugoti   

    Jums gali būti bandyti yra vienas laukas pavardės arba pavadinimai kartu su produktų aprašus. Jei sujungti daugiau nei vieno tipo informacijos srities, tai sunku išrinkti atskirus duomenis vėliau. Pabandykite paskirstyti informaciją į logines dalis; pvz., kurti atskiruose laukuose vardas ir pavardė, arba produkto pavadinimas, kategorija ir aprašas.

Paveikslėlis, kuriame rodomi informacijos elementai kūrimo metu

Kai yra patikslinti duomenų stulpelius kiekvienoje lentelėje, esate pasirengę pasirinkti kiekvienos lentelės pirminio rakto.

Puslapio viršus

Pirminių raktų nurodymas

Kiekviena lentelė turėtų būti stulpelio arba stulpelių rinkinys, kuris unikaliai identifikuoja kiekvieną eilutę, esančią lentelę. Tai dažniausiai unikalų identifikavimo numerį, pvz., darbuotojo ID numerį arba eilės numerį. Duomenų bazės terminai, šią informaciją vadinama lentelės pirminį raktą . "Access" naudoja pirminio rakto laukai greitai susieti duomenis iš kelių lentelių ir sujungti duomenis už jus.

Jei jau turite unikalus identifikatorius lentelėje, pvz., produkto numerį, kuris unikaliai identifikuoja kiekvieną produktą kataloge, kad identifikatorius galite naudoti kaip lentelės pirminį raktą, bet tik tada, jei šio stulpelio reikšmes, visada bus skirtinga kiekvienam įrašui. Pirminio rakto negali būti pasikartojančių reikšmių. Pvz., nenaudokite asmenų vardai kaip pirminį raktą, nes pavadinimai nėra unikalios. Galite lengvai turėti du žmonės tokiu pačiu pavadinimu toje pačioje lentelėje.

Vertė visada turi būti pirminis raktas. Jei stulpelio reikšmė gali būti nepriskirtų arba nežinoma (trūksta reikšmė) tam tikru metu, jis negali būti naudojamas kaip pirminį raktą.

Visada turite pasirinkti pirminį raktą, kurių vertė nepasikeis. Duomenų bazėje, kuri naudoja daugiau nei vieną lentelę, lentelės pirminį raktą galima naudoti kaip nuorodą kitose lentelėse. Jei pirminis raktas pasikeičia, keitimas turėtų taip pat būti taikoma visur, kur nurodomų klavišą. Naudojant pirminį raktą, kuris nepasikeis, sumažėja tikimybė, kad pirminis raktas taps nesinchronizuotas su kitomis lentelėmis, jį.

Dažnai, kokiam unikalių naudojamas kaip pirminis raktas. Pavyzdžiui, galite priskirti kiekvieno užsakymo unikalų užsakymo numerį. Užsakymo numeris tik tikslas nustatyti tvarka. Kai priskirtas, jis niekada nesikeičia.

Jei neturite omenyje, stulpelio arba stulpelių, kurių gali būti geras pirminis raktas rinkinį, geriau naudokite stulpelį, kuriame yra duomenų tipą Automatinis numeravimas. Kai naudojate duomenų tipą Automatinis numeravimas, Access automatiškai priskiria reikšmę. Identifikatoriaus yra duomenų; jame nėra aprašyti eilutę, jis reiškia faktinę informaciją. Duomenų neturintys identifikatoriai yra puikiai tinka naudoti kaip pirminį raktą, nes jie negali pakeisti. Pirminį raktą, kuriame yra faktai apie eilės – telefono numerį arba kliento vardas, pvz., yra daugiau gali keistis, nes faktinės informacijos gali keistis.

Paveikslėlis, kuriame rodoma lentelė Produktai su pirminio rakto lauku.

1. nustatytas duomenų tipas AutoNumber dažnai stulpelis būna geras pirminis raktas. Nėra dviejų produkto ID yra tokie patys.

Kai kuriais atvejais galbūt norėsite naudoti du ar daugiau laukų, kuriuose kartu, pateikiama lentelės pirminio rakto. Pavyzdžiui, lentelėje išsami užsakymo informacija, kurioje saugomos užsakymų eilutės elementai būtų naudoti du stulpelius pirminis raktas: užsakymo ID ir produkto ID. Kai pirminis raktas sudaromas daugiau nei vienas stulpelis, tai taip pat vadinama sudėtinio rakto.

Produkto pardavimo duomenų bazės, galite sukurti automatinio numeravimo stulpelį, kiekvienoje lentelėje, kuris bus naudojamas kaip pirminis raktas: produkto ID lentelės produktai, Užsakymo_ID užsakymų lentelės, CustomerID lentelę Klientai ir Tiekėjo_id tiekėjų lentelės.

Paveikslėlis, kuriame rodomi informacijos elementai kūrimo metu


Puslapio viršus

Lentelės ryšių kūrimas

Dabar, kai yra dalinamas informaciją į lenteles, jums reikia būdo suburti informaciją dar kartą prasmingą būdais. Pvz., toks yra informacijos iš kelių lentelių.

Užsakymų forma

1. Informacija į šią formą perkelta iš lentelės Klientai...

2... .galutiniame lentelė darbuotojai...

3... .galutiniame lentelės užsakymai...

4... .galutiniame lentelės produktai...

5... ir lentelėje išsami užsakymo informacija.

Prieiga yra reliacinės duomenų bazės valdymo sistemos. Reliacinės duomenų bazės, jums padalinti savo informaciją į atskirą pagal lenteles. Tada naudojate lentelių ryšių sujungtumėte informaciją, pagal poreikį.

Puslapio viršus

Sukurti vienas su daugeliu ryšį

Apsvarstykite šiame pavyzdyje: lentelių tiekėjai ir produktai, produkto užsakymų duomenų bazės. Tiekėjas gali pateikti bet koks kitas skaičius, produktų. Matyti, kad tiekėjo tiekėjų lentelėje, gali turėti daug produktų produktų lentelėje. Ryšį tarp lentelės tiekėjai ir lentelės produktai yra vienas su daugeliu ryšį.

Koncepcinis Vienas su daugeliu

Pateikti duomenų bazės dizaino vienas su daugeliu ryšį, imtis pirminį raktą, esančius ryšio dalyje "vienas" ir pridėkite jį kaip papildomą stulpelį ar stulpelių lentelę "daugelis" ryšio. Tokiu atveju, pvz., galite vėl pridėti stulpelį tiekėjo ID tiekėjų lentelę produktai. Prieigos naudoti tiekėjo ID numeris lentelės produktai rasti tinkamą kiekvieno produkto tiekėjas.

Lentelės produktai stulpelį tiekėjo ID vadinamas išorinis raktas. Išorinis raktas yra kitu lentelės pirminio rakto. Stulpelį tiekėjo ID lentelės produktai yra išorinis raktas, nes jis taip pat yra pirminis raktas lentelėje tiekėjai.

Paveikslėlis, kuriame rodomi informacijos elementai kūrimo metu

Pagrindas jungiantis prie susijusių lentelių nustatant pirminių ir išorinių raktų poras. Jei nesate tikri, kokios lentelės turėtų naudoti bendrą stulpelį, nustatyti vienas su daugeliu ryšį užtikrina, kad dviejų susijusių lentelių, tiesą sakant, reikės bendrą stulpelį.

Puslapio viršus

Daugelis su daugeliu kūrimas

Įsivaizduokite ryšį tarp lentelių produktai ir užsakymai.

Vieno užsakymo galite įtraukti daugiau nei vieną produktą. Kita vertus, vienas produktas gali būti rodomi daug užsakymų. Todėl kiekvieno įrašo lentelėje užsakymai, gali turėti daug įrašų lentelėje produktai. Ir kiekvieno įrašo lentelės produktai, gali turėti daug įrašų lentelėje užsakymai. Šis ryšio tipas vadinamas daugelis su daugeliu, nes kiekvienas produktas gali turėti daug užsakymų; ir kiekvienas užsakymas gali turėti daug produktų. Atkreipkite dėmesį, kad aptikti daugelis su daugeliu ryšius tarp lentelių, turite paisyti abiejų ryšio pusių.

Dviejų lentelių dalykai, užsakymai ir produktai, ryšys daugelis su daugeliu. Tai kelia problemų. Norėdami suprasti problemą, Įsivaizduokite, kas atsitiks, jei bandote sukurti ryšį tarp dviejų lentelių į lentelę užsakymai įtraukdami lauką produkto ID. Turėti daugiau nei vieną produktą vieno užsakymo, turite daugiau nei vieną įrašą lentelėje Užsakymai vieno užsakymo. Jums būtų pasikartojančios užsakymo informaciją kiekvienoje eilutėje, yra susijęs su viena tvarka, todėl neefektyvus dizainas, kurie gali būti neteisingi duomenys. Iškils ta pati problema, jei lentelės produktai lauką užsakymo ID – jūs turite daugiau nei vieną įrašą kiekvieno produkto lentelės produktai. Kaip išspręsti šią problemą?

Atsakymas yra sukurti trečią lentelę, dažnai vadinamą jungimo lentele, kuri skaido į du vienas su daugeliu ryšius Daugelis su daugeliu ryšį. Galite įterpti pirminis raktas iš dviejų lentelių į trečią lentelę. Todėl trečią lentelę įrašo kiekvieną įvykį arba egzempliorių ryšio.

Ryšys Daugelis su daugeliu

Kiekvieną įrašą lentelėje išsami užsakymo informacija yra vienoje eilutėje užsakymo. Lentelėje išsami užsakymo informacija pirminis raktas sudarytas iš dviejų laukų, išorinių raktų, užsakymai ir produktai lenteles. Užsakymo ID lauką tik neveikia kaip pirminį raktą šios lentelės, nes viename užsakyme gali būti daug eilučių elementų. Užsakymo ID kartojamas kiekvienos eilutės elemento užsakymo, kad laukas nėra unikalios reikšmės. Produkto ID lauką tik neveikia, nes vienas produktas gali būti rodomi daug įvairių užsakymų. Tačiau kartu, du laukus visuomet unikalią vertę kiekvienam įrašui.

Produkto pardavimo duomenų bazėje, lentelės užsakymai ir produktai nėra susiję su kitu tiesiogiai. Vietoj to, jie yra netiesiogiai susiję per lentelėje išsami užsakymo informacija. Užsakymų ir produktų ryšys daugelis su daugeliu duomenų bazėje pateikiamas naudojant du ryšius vienas su daugeliu:

  • Lentelėje išsami užsakymo informacija ir užsakymai yra vienas su daugeliu ryšį. Kiekvieno užsakymo gali turėti daugiau nei vienoje eilutėje, bet tik vieną užsakymą prie kiekvienos eilutės elementą.

  • Lentelėje išsami užsakymo informacija ir lentelės produktai yra vienas su daugeliu ryšį. Kiekvienu produktu, kuris gali būti susietas su daug eilučių elementų, tačiau kiekvienos eilutės elementą, nurodo tik vieną produktą.

Lentelėje išsami užsakymo informacija, galite nustatyti visus produktų tam tikra tvarka. Taip pat galite nustatyti, kad visi tam tikro produkto užsakymai.

Po įtraukti lentelėje išsami užsakymo informacija, lentelių ir laukų sąrašas gali atrodyti maždaug taip:

Paveikslėlis, kuriame rodomi informacijos elementai kūrimo metu


Puslapio viršus

Sukurti ryšį

Kitas ryšio tipas yra vienas su vienu. Pavyzdžiui, Tarkime, kad jums reikia įrašyti specialios papildomos produkto informaciją, kad jums reikės retai arba, taikoma tik keli produktai. Kadangi informacijos dažnai jums nereikia, ir saugoti informaciją lentelės produktai reikštų tuščią kiekvieno produkto, į kurį netaikoma, vieta kitoje lentelėje. Lentelės produktai, pvz., galite naudoti produkto ID kaip pirminį raktą. Ryšys tarp šios papildomos lentelės ir lentelės produktai yra ryšį. Kiekvieno įrašo lentelėje "Product" yra vienas atitikimo papildomos lentelės įrašo. Kai nustatyti tokių santykių, abiejose lentelėse turi bendrinti bendras laukas.

Kai jums aptikti ryšį reikia jūsų duomenų bazėje, apsvarstykite, ar jūs galite sujungti informaciją iš dviejų lentelių vienoje lentelėje. Jei nenorite daryti, kad dėl kokios nors priežasties, galbūt todėl, kad atsirastų daug tuščios vietos, šiame sąraše pateikiamos kaip būtų vaizduojami ryšiai dizainą:

  • Jei dvi lentelės turi ta pačia tema, tikriausiai galite nustatyti ryšio naudojant patį pirminio rakto abiejose lentelėse.

  • Jei dvi lentelės turi skirtingas temas su skirtingais pirminiais raktais, pasirinkite vieną iš lentelių (bet kurią) ir jos pirminį raktą įtraukite į kitą lentelę kaip išorinį raktą.

Nustatyti ryšius tarp lentelių padeda užtikrinti, kad turite teisę lentelių ir stulpelių. Kai yra vienas su vienu ar vienas su daugeliu ryšį, lenteles, įtrauktas reikia bendrinti bendrą vieną ar kelis stulpelius. Kai daugelis su daugeliu, norint parodyti ryšį reikia trečios lentelės.

Puslapio viršus

Valymo dizainą

Įtraukus lenteles, laukus ir ryšius, jums reikia, turėtumėte sukurti ir užpildyti lentelių su pavyzdiniais duomenimis ir pabandykite padirbėti su informacija: kurti užklausas, įtraukti naujų įrašų ir kt. Daro tai padeda išryškinti galimas problemas, pvz., gali reikėti įtraukti stulpelį, kad užmiršote įterpti savo dizaino etape, arba turite lentelę, kurioje turėtų būti skaidymas į dvi lenteles, kad pašalintumėte dubliavimo.

Sužinokite, jei galite naudoti duomenų bazės gauti atsakymus norite. Kurti formas ir ataskaitas, neapdoroti projektus ir pamatyti, jei jie rodomi duomenys tikėjotės. Paieškokite nereikalingų besidubliuojančių duomenų ir, jei rasite, pakeiskite dizainą, jį pašalinti.

Kaip išbandyti pradinės duomenų bazės, tikriausiai bus atrasti tobulinti. Štai keli dalykai, kuriuos reikia tikrinti, ar yra:

  • Ar nepamiršote jokių stulpelių? Jei taip, ar informacija priklauso lentelei? Jei tai yra informacijos apie tai, ką nors, reikia sukurti kitą lentelę. Kiekvieno elemento informacijos, jums reikia sekti stulpelio kūrimas. Jei informacijos negalima apskaičiuoti iš kitų stulpelių, jis gali jį reikės naują stulpelį.

  • Ar visus stulpelius nereikalingus, nes jie galima apskaičiuoti pagal esamus laukus? Jei elemento informaciją galima apskaičiuoti iš kitų stulpelių, nuolaida skaičiuojama iš mažmeninės kainos, pvz., paprastai geriau tik ir nekurti naują stulpelį.

  • Kelis kartus yra įvesti pasikartojančios informacijos vienoje iš lentelių? Jei taip, turėsite lentelę padalyti į dvi lenteles, kuriose yra vienas su daugeliu ryšį.

  • Ar turite lentelės ir daug laukų, keletą įrašų ir daug tuščių laukų atskirus įrašus? Jei taip, pagalvokite apie pertvarkyti lentelę, kad jame yra mažiau laukų ir daugiau įrašų.

  • Kiekvienas informacijos elementas buvo suskirstytas į mažesnes naudingas dalis? Jeigu jums reikia pranešti, rūšiuoti, ieškoti arba apskaičiuoti elemento informacijos, savo stulpelyje perkelti elementą.

  • Ar kiekviename stulpelyje yra duomenų apie lentelės temą? Jei stulpelyje nėra informacijos apie lentelės temą, jis priklauso kitos lentelės.

  • Ar visi ryšiai tarp lentelių rodomi naudojant bendrą stulpelį ar trečią lentelę? Vienas su vienu ir vienas su daugeliu reikia bendro stulpelio. Daugelis su daugeliu reikia trečios lentelės.

Valymo produktai

Tarkime, kad kiekvieno produkto pardavimo duomenų bazės produkto priklauso bendra kategoriją, pvz., gėrimų, uždarai arba jūros. Lentelės produktai gali būti lauką, kuris rodomas kiekvieno produkto kategoriją.

Tarkime, kad išnagrinėję ir patobulinę duomenų bazės dizainą, nusprendžiate saugoti kategoriją kartu su jos pavadinimą ir aprašą. Jei kategorijos Aprašymas lauko įtraukimas į lentelę produktai, turite pakartoti kiekvienos kategorijos Aprašymas kiekvieno produkto, kuriai taikoma tos kategorijos – tai nėra geras sprendimas.

Geresnis sprendimas – padaryti kategorijos naują temą duomenų bazėje sekti savo lentelę ir savo pirminį raktą. Tada galite įtraukti pirminį raktą iš lentelės kategorijos produktų lentelę kaip išorinį raktą.

Lenteles kategorijos ir produktai yra vienas su daugeliu ryšį: kategoriją galite įtraukti daugiau nei vieną produktą, bet produkto gali priklausyti tik vieną kategoriją.

Kai peržiūrite savo lentelės struktūros, būti ieško pasikartojančios grupės. Pvz., apsvarstykite galimybę lentelė, kurioje yra šie stulpeliai:

  • Produkto ID

  • Vardas

  • Produkto ID1

  • Name1

  • Produkto ID2

  • Name2

  • Produkto ID3

  • Name3

Kiekvieno produkto Štai pasikartojančią grupę stulpelių, kuris skiriasi nuo kitų tik pridedant pabaigoje stulpelio pavadinimą. Kai pamatysite stulpelių numeriu taip, turėtų peržiūrėti dizainą.

Toks dizainas turi keletą trūkumų. Iš pradžių jį verčia pateikti viršutinė riba produktų skaičių. Kaip tik tos ribos, turite įtraukti naują grupę stulpelių į lentelės struktūrą, kuri yra pagrindinė administravimo užduotis.

Kita problema yra, kuriuose yra mažiau nei didžiausias produktų tiekėjai bus švaistyti šiek tiek vietos, nes papildomi stulpeliai bus tuščias. Didžiausių trūkumas su toks dizainas, kad ji daug užduočių sunku atlikti, pvz., rūšiavimą ar indeksavimo lentelės produkto ID arba pavadinimą.

Kai matote pasikartojančios grupės Peržiūrėkite dizainą atidžiai stebėti skaidymas į dvi lentelės. Ankstesniame pavyzdyje geriau naudoti dvi lenteles, tiekėjų ir produktų, susietų tiekėjo ID.

Puslapio viršus

Suinteresuotosios šalys normalizavimas

Duomenų normalizavimas taisyklių (kartais vadinama normalizavimas taisykles), kitas žingsnis galite taikyti savo dizainą. Norėdami pamatyti, jei jūsų lentelės sisteminamos tinkamai naudojate šias taisykles. Taisyklių taikymo jūsų duomenų bazės kūrimo procesas vadinamas duomenų bazę, arba tiesiog normalizavimas.

Normalizavimas yra naudingiausia, kai visus informacijos elementai ir atėjo į pirminį dizainą. Norima padėti užtikrinti, kad jūsų informacijos elementai yra suskirstyti į tinkamas lenteles. Negalima padaryti ką normalizavimas yra užtikrinti, kad turite teisingą duomenų elementų su.

Galite taikyti taisykles, iš eilės, kiekvienas veiksmas užtikrinti, kad jūsų dizainas vienu iš vadinamąjį "įprastos formos". Plačiai naudojamos penkios įprastos formos – pirmoji įprasta forma per penktus įprasta forma. Šiame straipsnyje išplečiami pirmuosius tris, nes jie visi, kuris yra būtinas duomenų bazės dizaino dauguma.

Pirmoji įprasta forma

Pirmoji įprasta forma nurodo, kad po kiekvieno eilutės ir stulpelio sankirtoje lentelėje egzistuoja viena reikšmė ir niekada reikšmių sąrašą. Pvz., negali būti lauko, pavadinto kaina, kuriame įrašytumėte daugiau nei vieną kaina. Jei manote, kad kiekvienas sankirtos eilutes ir stulpelius kaip langelio, kiekvienas gali turėti tik vieną reikšmę.

Antroji įprasta forma

Antroji įprasta forma reikalauja, kad kiekvienas stulpelis nėra raktas visiškai priklausytų nuo viso pirminio rakto, o ne tik rakto dalis. Ši taisyklė, kai turite pirminį raktą, kurį sudaro daugiau nei vieną stulpelį. Pavyzdžiui, Tarkime, kad turite lentelė, kurioje yra šie stulpeliai, kur formos užsakymo ID ir produkto ID pirminį raktą:

  • Užsakymo ID (pirminis raktas)

  • Produkto ID (pirminis raktas)

  • Produkto pavadinimas

Šis dizainas pažeisite antroji įprasta forma, nes produkto pavadinimas priklauso nuo produkto ID, o ne užsakymo ID, kad jis nepriklauso nuo viso pirminio rakto. Turite pašalinti produkto pavadinimas iš lentelės. Jis priklauso kitai lentelei (produktai).

Trečioji įprasta forma

Trečioji įprasta forma reikalauja, ne tik kiekvienas stulpelis nėra raktas priklausytų nuo viso pirminio rakto, bet tai, kad nėra raktas stulpelių būti nepriklausomas nuo kito.

Kitas būdas pasakyti tai, kad kiekvienas stulpelis nėra raktas turi būti priklauso nuo pirminio rakto ir nieko, bet pirminį raktą. Pavyzdžiui, Tarkime, kad turite lentelę, kurioje yra šie stulpeliai:

  • Produkto ID (pirminis raktas)

  • Vardas

  • SRP

  • Nuolaida

Tarkime, kad nuolaida priklauso nuo siūloma mažmeninė kaina (SMK). Šioje lentelėje pažeisite trečioji įprasta forma, nes nėra raktas stulpelio, nuolaida, priklauso nuo kito stulpelio nėra raktas, SRP. Stulpelio nepriklausomumo reiškia, kad galėsite pakeisti bet kurį stulpelį klavišą ne nepaveikdami kitų bet kurį stulpelį. Jei pakeisite lauko SMK reikšmę, nuolaida būtų atitinkamai keičiami, todėl pažeidimo šią taisyklę. Šiuo atveju nuolaida turi būti perkelta į kitą lentelę, kurios raktas – smk.

Puslapio viršus

Pastaba: Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×