Visose DBVS (duomenų bazių valdymo sistemose)Yra keletas tipų ryšių tarp lentelių tipų. Tarp jų yra santykiai vienas su kitu, vienas su daugeliu, vienas su kitu (kai kurie linkę įvardyti šiuos du tipus į vieną) ir santykiai vienas su kitu. Pastarojo pavyzdys, jo paaiškinimas ir pritaikymas įvairiose DBVS, tokiose kaip „Access“ ar SQL, bus nagrinėjami šiame straipsnyje.
Santykis nuo daugelio iki daugelio yra apibūdinamas kaipkorespondencija su bet kurios iš egzempliorių viena iš kitų instancijų visomis instancijomis. Kitaip tariant, kiekvienas laukas iš pirmosios (antrosios) lentelės yra susietas su visais laukais iš antrosios (pirmosios).
Pateikta schema aiškiai atspindi šių santykių esmę.
Santykių „daugeliui daugeliui“ pavyzdys yra studentasgrupė ir mokytojų grupė. Kiekvienas studentas studijuoja kartu su keliais profesoriais, kurie savo ruožtu skaito paskaitą keliems studentams. Paveikslėlyje parodytas skirtumas tarp santykių „vienas prieš daug“ ir „daugeliui į daugelį“.
Kai reikia, reikia bendrauti daugeliui daugeliuirengiant didelės apimties duomenų bazes, maži iliustraciniai pavyzdžiai paprastai naudojami tik švietimo tikslais, tačiau realioje praktikoje paaiškėja, kad kuo daugiau duomenų bazėje esančių subjektų ir kuo daugiau jų tarpusavio ryšių, tuo didesnė tikimybė dažnai nurodyti santykį „daugeliui į daugelį“.
Aptariamų santykių pavyzdžiai vis tiek buspridėta straipsnio eigoje, tačiau svarbu ne tik suprasti, kas tai yra, bet ir kaip tai įgyvendinti. Šio proceso detalės tiesiogiai priklauso nuo pasirinktos darbui DBVS, o principas visiems išlieka tas pats.
„Microsoft“ biuro programinės įrangos produktasprograminės įrangos rinkoje buvo žinomas jau gana seniai. Jis pateikiamas su „Worfd“ teksto redaktoriumi, „Excel“ skaičiuoklių procesoriumi ir kitais „biuro“ eilutėje. Prieigą (skaityti kaip „prieigą“, pažodinį vertimą - „prieigą“) galima įsigyti atskirai nuo „kolegų“. Rekomenduojama įsigyti, žinoma, licencijuotą programinę įrangą, tačiau niekam ne paslaptis, kiek piratinių pakuočių galima rasti internete, įprastų failų ar torrentų platinimų pavidalu. „Microsoft Access“ galima įsigyti net nešiojamoje versijoje. Ji, kuriai nereikia diegimo ir specialių įgūdžių dirbant su asmeniniu kompiuteriu, geriausiai tinka rinktis, jei programinė įranga nebus naudojama ilgai ir dažnai.
Iš konteksto aišku, kad „Microsoft Access“ yraduomenų bazių valdymo sistema. Ir vienas populiariausių. Tai yra reliacinis, o tai reiškia, kad jis pagrįstas loginiu duomenų modeliu, kuris savo darbe nurodo aibių teoriją ir pirmos eilės logiką. „Access to many-to-many“ komunikacija (pavyzdžiai bus pateikti paaiškinimo metu) yra labai, labai paprasta įgyvendinti. Pamąstyk apie tai.
Kad nesugalvotume nieko naujo, imkime jaupateiktas siekiant išsiaiškinti santykį „visi daugeliui“, pavyzdys apie studentų grupę. Jums reikia sukurti lentelę „Studentai“ ir lentelę „Mokytojai“. Pirmasis ir antrasis turi pagrindinius raktus. Norėdami sujungti šių dviejų objektų egzempliorius, taip pat reikalinga kita lentelė, kurios laukai yra pirmosios ir antrosios lentelių raktai.
Atsižvelgiant į kitą pavyzdį: Pavyzdžiui, žaidėjai ir komandos (atsižvelgiant į tai, kad bent vienas iš žaidėjų žaidė skirtingose komandose, o kiekvienoje komandoje yra vienuolika žaidėjų), ryšio užmezgimo esmė nepasikeis. Taip pat reikės trijų stalų. Iš jų „futbolininkai“ ir „komandos“ kaip pagrindiniai ir vienas tarpinis.
Ryšiai tarp „Microsoft Access DBMS“ lenteliųyra įgyvendinami naudojant skirtuką Duomenų schema. Visi reikalingi subjektai (mūsų atveju visos trys lentelės) pridedami prie pasirodančio skydo. Ryšiai „visi daugeliui“ bus sukurti naudojant du santykius „vienas su daugeliu“ tarp pagrindinio („Studentai“ ir „Mokytojai“) ir tarpinės lentelės. Norėdami tai padaryti, atitinkami pirminiai raktai turi būti susieti.
Aukščiau pateiktoje iliustracijoje parodyta, kaip atrodo „Relationionships“ skirtukas. Į skydelį įtrauktų lentelių skaičius neribojamas. Vieta yra visiškai pritaikoma vartotojui.
Sukurti SQL duomenų bazes yra iššūkissunkiau nei „Prieiga“. Jei „Microsoft“ produktas yra visiškai pritaikytas biuro aplinkai, turi didžiulį ir su kiekvienu leidimu bei atnaujinimu visą išplėstinį funkcionalumą, bet tuo pačiu ir paprastam vartotojui patogią sąsają, tai SQL yra atskira neprocedūrinė programavimo kalba, kurios pagalba skirtingose platformose galite dirbti su duomenų bazėmis. Šiai užduočiai žinoma programinė įranga: „Oracle MySQL“ ir „DB2“ (populiari, bet ne unikali). Nepaisant to, kad kiekvienas iš jų turi savo subtilybių ir niuansų, SQL kalba juos „suvienija“. Išmokęs dirbti bent su vienu iš jų, bus daug lengviau susitvarkyti su kitu.
Kūrimas, užpildymas ir tiesioginiai veiksmaiper esamą duomenų bazę SQL jums reikia naudojant specialius kodus ar scenarijus. Tačiau tie, kurie jau pateko į skyrių „Daugelis į daugelį“, kurio pavyzdys šioje programavimo kalboje bus pateiktas žemiau, turėtų žinoti bent jau pagrindines SQL kalbos naudojimo komandas ir principus.
Ilgas įvadas gali būti šiek tiek painus ir„užtemdyti“, bet iš tikrųjų ryšio įgyvendinimo principas išlieka tas pats. Norint, kad daugelio daugeliui santykių tipas būtų praktiškai įgyvendinamas ne tik „Access“, bet ir SQL, iš pradžių reikia sukurti dvi pagrindines lenteles ir vieną tarpinę. Panaši situacija yra ir su raktais: pagrindiniai subjektai turi pagrindinius laukus, kurie kiekvienas įrašomas jungties lentelėje. Tai reiškia, kad SQL ryšys „daugeliui į daugelį“ iš esmės nesiskiria nuo „Prieigos“.
Įdiegti scenarijų „daugeliui daugeliui“ bendravimąSQL naudoja UŽSIENIO RAKTĄ, panašų į pagrindinių lentelių šaltinio raktus. Sukūrus ir (arba) redagavus, jie įrašomi kartu su visais laukais.
Paprastai ryšiai tarp subjektų duomenų bazėsenaudojama juose saugomos informacijos vientisumui. Tik gerai suprojektuota duomenų bazė su visomis būtinomis jungtimis garantuoja saugą saugai, paprastą naudojimą ir yra struktūra, atspari išorės poveikiui ir pokyčiams. Paprastai, jei duomenų bazėje yra duomenų apie visą organizaciją, įmonę ar įmonę, joje yra daugybė subjektų su skirtingais atvejais.
Tai reiškia, kad rengiant duomenų schemą (in„Prieiga“) arba scenarijaus („Oracle“ arba „DiBiTu“) ryšys bus bent vienas iš daugelio į daugelį. Duomenų bazės organizavimo kurse dažnai naudojamas SQl pavyzdys yra King's Database.
Ši pavyzdinė duomenų bazė pateikia informaciją apie „King Corporation“. Tarp lentelių:
Mažos lentelės, kuriose yra ne daugiau kaip du ar trys laukai, yra susietos su daugiausiai viena lentele santykyje „vienas su vienu“ arba „vienas su daugeliu“.
Mastelių lentelės, pvz., „Darbuotojai“firmos ",„ perkančios firmos ",„ pardavimo sutartys "ir„ pardavimo aktai "yra siejamos su keliais subjektais vienu metu, o su kai kuriais - pasitelkus„ tarpininkus "- daugeliui santykių. Lentelė„ firmos ir pirkėjai "pati yra tarpininkė , todėl, kad jame yra daug laukų, pasiskolintų iš kitų lentelių, ir yra svetimi raktai. Be to, „King's Corporation“ duomenų bazės mastas ir tarpusavio ryšys yra tokie, kad visi santykiai yra neatskiriamai susiję tarpusavyje ir veikia vienas kitą. vienas iš jų sunaikins visos duomenų bazės vientisumą.
Įgyvendinant santykius „daugeliui į daugelį“, išorėjeatsižvelgiant į tai, kuri DBVS naudojama, labai svarbu teisingai nustatyti raktus, su kuriais bus sudarytas ryšys. Neteisingai įdiegtas ryšys neatliks pagrindinio tikslo, būtent užtikrinti lentelės vientisumą, todėl vietoj laukiamo patogumo vartotojas, priešingai, gaus nepatogumų ir papildomų problemų, ypač pildydamas lenteles ir taisydamas jose esančius duomenis.