Duomenų modeliavimas yra visos programinės įrangos arba jos komponentų vizualinio atvaizdavimo kūrimo procesas, siekiant perduoti ryšius tarp duomenų taškų ir struktūros. Tai reiškia, kad reikia kruopščiai peržiūrėti jo taikymo ir duomenų bazės reikalavimus ir kaip ryšį tarp pagrindinių duomenų operacijų - skaitymo, rašymo ir atnaujinimo.

Stabilus duomenų modelis sukuriamas įvertinus programos naudojimo modelį ir suderinant duomenų bazės schemą su ja. Todėl schemos dizainas formuoja jūsų duomenų modelį. Kalbant apie reliacinę duomenų bazę, negalima užpildyti lentelių nesukūrus lentelių schemos.

Pagrindinės žinomos sąlygos

Prieš eidami į priekį, turite žinoti keletą pagrindinių apibrėžimų:

  • Kolekcija - Kolekcija yra dokumentų rinkinys „MongoDB“. Tai yra RDBMS lentelės atitikmuo.
  • Dokumentas - Dokumentas yra struktūra, susidedanti iš failų ir reikšmių porų. Tai yra eilutės RDBMS atitikmuo.
  • Duomenų bazės schema - Schemos dizainas yra logiška ir vizuali duomenų bazės architektūra, sukurta duomenų bazių valdymo sistemai (DBVS).

Kuo skiriasi duomenų modeliavimas „MongoDB“?

Dėl „NoSQL“ lankstumo jums nereikia kurti schemos prieš įterpiant duomenis. Taip yra todėl, kad „MongoDB“ palaiko dinaminę duomenų bazės schemos formą. Tai nereikalauja iš anksto kurti schemos. Dabar galite saugoti savo duomenis ir atlikti koregavimus pagal savo kolekciją.

Nurodytame kolekcijos lauke galite saugoti skirtingus duomenų tipus ir netgi galite pridėti naujų laukų, atnaujinti laukų reikšmes ir ištrinti esamus laukus. Tikrąją šio lankstumo naudą rasite, kai susiesite dokumentus su objektu ar objektu.

Paprastai kolekcija ir jos dokumentas yra panašios struktūros. Be to, galite patvirtinti savo kolekcijos dokumentų patvirtinimo taisykles naudodami schemos patvirtinimą.

Susijęs: Duomenų bazių varikliai, į kuriuos reikia atsižvelgti jūsų kitame projekte

Kurdami duomenų modelį, pasidomėkite, kaip jūsų programa veiks su duomenų baze. Pvz., Jei ji ketina apdoroti dokumentus, kurie buvo įdėti neseniai, tada verta naudoti ribotas kolekcijas - fiksuoto dydžio kolekcijas, palaikančias didelio našumo operacijas.

Panašiai, jei jūsų programa dažniausiai veiks su skaitymo operacijomis, galite nustatyti indeksus, kad jie palaikytų įprastas užklausas ir pagerintų našumą.

Tradiciškai vienas iš aspektų kuriant duomenų modelį yra tai, kaip saugoti susijusius duomenis. Reliacinėse duomenų bazėse naudojamos lentelės duomenims saugoti, kur pirminiai ir svetimi raktai naudojami duomenų ryšiams nustatyti.

Panašiai sujungimai naudojami norint pasiekti ir vykdyti operacijas per kelias lenteles. Kaip asmuo, perėjęs į „MongoDB“ iš reliacinės DBVS, tokios kaip „SQL Server“, neketinate rasti prisijungimų prie „MongoDB“. Taip yra todėl, kad „MongoDB“ saugo kolekcijos duomenis, arba nurodydamas duomenis, arba įterpdamas duomenis į kolekciją.

Todėl, jei jūsų duomenų modelyje yra dešimt lentelių reliacinėje duomenų bazėje, gali būti, kad „MongoDB“ leidžia ją sujungti į vieną kolekciją.

Duomenų modelių tipai

Dabar, kai žinote, kaip duomenų modeliavimas veikia „MongoDB“, apžvelkime „MongoDB“ palaikomų duomenų modelių tipus. Paprastai tai priklauso nuo jūsų dokumento struktūros ir jūsų programos duomenų ryšių.

Įterptųjų duomenų modeliai

Duomenis galite įterpti į vieną dokumentą ar struktūrą „MongoDB“. Dar vadinamas nenormalizuotais duomenų modeliais, jis išnaudoja visą MongoDB turtingų dokumentų potencialą. Pvz., Apsvarstykite šį pavyzdį: mes turime kolekciją, studentai, kuriame yra dokumentas Matt. Šiame dokumente mes įdėjome du dokumentus, kontaktiniai duomenys ir laipsnio.

{
"_id": "4aad66a4c13bb24f12gh199e",
vardas: „Matt“,
kontaktiniai duomenys: {
telefonas: ”555-555-1234”
pašto adresas: „[email protected]
},
pažymis: {
tema: „CS101“
rezultatas: „B“
}}

Įterpiant svarbią informaciją saugoma tame pačiame dokumente ar duomenų bazės įraše. Tokiu būdu galite sumažinti užklausas ir atnaujinimus, reikalingus įprastoms DB operacijoms atlikti.

Kada turėtumėte naudoti įterptųjų duomenų modelius? Jie naudingi norint pagerinti skaitymo operacijų našumą. Be to, jie yra veiksmingi apdorojant vieno įrašo duomenis. Naudodami šį modelį galite naudoti vieną rašymo operaciją, kad atnaujintumėte susijusius duomenis.

Tačiau reikia nepamiršti: įterpimas padidina dokumento dydį po jo sukūrimo. Kai kuriais atvejais tai gali turėti įtakos rašymo našumui, taip pat yra duomenų fragmentacijos galimybė dėl išsiplečiančio dokumento dydžio.

Galiausiai galite sąveikauti su įterptais dokumentais naudodami taškų žymėjimą ir lengvai juos pereiti. Čia yra sintaksė:

field.nestedField: reikšmė

Pirmiau pateiktame pavyzdyje galite pasiekti savo įdėtus dokumentus, parašydami šią užklausą:

db.students.find ({kontaktiniai duomenys: {telefonas: ”555-555-1234”, el. pašto adresas: “[email protected]”}}). gana ()

Normalizuoti duomenų modeliai (nuorodos)

Normalizuoti duomenų modeliai naudojami kuriant santykių modelius „vienas prieš daug ir daug“. Dirbdami su įterptųjų dokumentų modeliais, kartais turėsite pakartoti duomenis. Čia praverčia nuorodos - jos pašalina perteklių. Štai kaip mes galime naudoti aukščiau pateikto pavyzdžio nuorodas.

Mes padalijome savo bendrą dokumentą į tris dokumentus ir nuo tada kontaktiniai duomenys ir laipsnio turėti ID iš Matt dokumentą, galite jiems paskambinti, kai reikia.

studentas
{
_id:
vartotojo vardas: „Matt“
}
kontaktiniai duomenys
{
_id:
Vartotojo ID:
paštas: „[email protected]
telefonas: ”555-555-1234”
}
laipsnio
ID:
Vartotojo ID: ,
tema: „CS101“,
rezultatas: „B“
}

Kaip matote, normalizuoti duomenų modeliai padalija duomenis į kelias kolekcijas, naudodami nuorodas tarp naujesnių rinkinių. Galite atnaujinti vieną dokumentą, kuris atnaujins kitas kolekcijas. Tai yra efektyvus duomenų atnaujinimo būdas ir dažniausiai naudojamas, kai jūsų duomenys dažnai keičiami.

Štai tie atvejai, kai normalesnis duomenų modelis yra protingesnis pasirinkimas:

  • Turite modeliuoti didelius duomenų rinkinius, kurie laikosi tam tikros hierarchijos.
  • Jūs turite atstovauti daugeliui santykių „daugelis prieš daugelį“.
  • Įterpimas sukeltų duomenų dubliavimą ir nepakankamai padidintų jūsų skaitymo našumą.

Dabar galite lengvai modeliuoti duomenis „MongoDB“

Dabar žinote, kaip duomenų modeliavimas „MongoDB“ skiriasi nuo reliacinių DBM, ypač kai kalbama apie schemą. Jūs taip pat sužinojote apie „MongoDB“ duomenų modelių tipus - de-normalizuotus ir normalizuotus - ir sužinojote, kada juos naudoti.

Ir tai tik pradžia; yra daug daugiau sužinoti apie tai, kaip „MongoDB“ gali tvarkyti jūsų duomenis.

El
Kodėl „Twitter“ neleis redaguoti jūsų „Twitter“

Redagavimo parinktis yra viena iš dažniausiai prašomų „Twitter“ funkcijų. Tai kodėl įmonė to neleis?

Skaitykite toliau

Susijusios temos
  • Programavimas
  • duomenų bazė
Apie autorių
Usmanas Ghani (Paskelbta 1 straipsnis)Daugiau iš Usmano Ghani

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Dar vienas žingsnis…!

Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.

.