Datamodellering er prosessen med å utvikle en visuell representasjon av enten en hel programvare eller komponenter av den for å kommunisere forbindelsene mellom datapunkter og struktur. Det innebærer en grundig gjennomgang av applikasjonens og databasekravene og som forbindelsen mellom de to angående kjernedatoperasjoner - lese, skrive og oppdatere.

En stabil datamodell opprettes ved å vurdere applikasjonens bruksmønster og tilpasse databaseskjemaet til det. Derfor former skjemadesign datamodellen din. Når det gjelder en relasjonsdatabase, kan du ikke fylle ut tabellene dine uten å lage tabellskjemaet.

Viktige vilkår å vite

Før du går videre, er det noen grunnleggende definisjoner du må vite:

  • Samling - En samling er settet med dokumenter i MongoDB. Det tilsvarer en tabell i en RDBMS.
  • Dokument - Et dokument er en struktur som består av fil- og verdipar. Det tilsvarer en rad i RDBMS.
  • Databaseskjema - Skjema design er en logisk og visuell arkitektur i en database designet for et databasestyringssystem (DBMS).
instagram viewer

Hvordan er datamodellering forskjellig i MongoDB?

Takket være fleksibiliteten til NoSQL, trenger du ikke lage et skjema før datainnsetting. Det er fordi MongoDB støtter en dynamisk form for databaseskjema. Dette eliminerer behovet for å designe skjemaet ditt på forhånd. I stedet kan du nå lagre dataene dine og foreta justeringer i henhold til samlingen din.

Du kan lagre forskjellige datatyper i det gitte feltet i en samling, og du kan til og med legge til nye felt, oppdatere feltverdier og slette eksisterende felt. Du vil finne den virkelige fordelen med denne fleksibiliteten når du tilordner dokumenter til et objekt eller en enhet.

Vanligvis følger en samling og dens dokument en lignende struktur. Du kan også "håndheve" valideringsregler for samlingens dokumenter ved å bruke skjemavalidering.

I slekt: Databasemotorer å vurdere for ditt neste prosjekt

Når du oppretter en datamodell, se på hvordan applikasjonen din vil samhandle med databasen. For eksempel, hvis det skal behandles dokumenter som nylig ble satt inn, er det en god ide å bruke avkortede samlinger - samlinger med en fast størrelse som støtter operasjoner med høy gjennomstrømning.

På samme måte, hvis applikasjonen din vil jobbe med leseoperasjoner mesteparten av tiden, kan du stille indekser for å støtte vanlige spørsmål og forbedre ytelsen.

Tradisjonelt er en av hensynene til å lage en datamodell hvordan man lagrer relaterte data. Relasjonsdatabaser bruker tabeller for å lagre data, der primære og utenlandske nøkler brukes til å angi dataforhold.

På samme måte blir joins brukt til å få tilgang til og kjøre operasjoner over flere tabeller. Som noen som har byttet til MongoDB fra en relasjonell DBMS, for eksempel SQL Server, kommer du ikke til å finne sammenføyninger i MongoDB. Det er fordi MongoDB lagrer innsamlingsdata ved å enten referere til dataene eller legge inn dataene i en samling.

Derfor, hvis datamodellen tar ti tabeller i en relasjonsdatabase, er det mulig at MongoDB lar deg konsolidere den i en enkelt samling.

Typer datamodeller

Nå som du vet hvordan datamodellering fungerer i MongoDB, la oss gå gjennom typene datamodeller som støttes av MongoDB. Vanligvis avhenger det av dokumentets struktur og applikasjonens dataforhold.

Innebygde datamodeller

Du kan legge inn data i et enkelt dokument eller en struktur i MongoDB. Også referert til som de-normaliserte datamodeller, utnytter det det fulle potensialet i MongoDBs rike dokumenter. Tenk for eksempel på følgende eksempel: vi har en samling, studenter, inneholder et dokument Matt. I dette dokumentet har vi lagt inn to dokumenter, Kontaktinformasjon og karakter.

{
"_id": "4aad66a4c13bb24f12gh199e",
navn: “Matt”,
Kontaktinformasjon: {
telefon: ”555-555-1234”
e-postadresse: “[email protected]
},
karakter: {
emne: “CS101”
score: “B”
}}

Innebygging lagrer relevante detaljer i samme dokument eller databasepost. På denne måten kan du minimere spørsmål og oppdateringer som kreves for å utføre vanlige DB-operasjoner.

Når skal du bruke innebygde datamodeller? De er nyttige for å forbedre ytelsen til leseoperasjoner. I tillegg er de effektive for behandling av datahenting av en enkelt post. Med denne modellen kan du bruke en enkelt skriveoperasjon til å oppdatere relaterte data.

Det er imidlertid noe du må huske på: innebygging øker dokumentstørrelsen etter at den ble opprettet. I noen tilfeller kan dette påvirke skriveytelsen, og det er også mulighet for datafragmentering på grunn av utvidende dokumentstørrelse.

Til slutt kan du samhandle med innebygde dokumenter ved å bruke punktnotasjonen og krysse dem enkelt. Her er syntaksen:

field.nestedField: verdi

For eksempelet ovenfor kan du få tilgang til de nestede dokumentene ved å skrive følgende spørsmål:

db.students.find ({kontaktdetaljer: {telefon: ”555-555-1234”, e-postadresse: “[email protected]”}}). pen ()

Normaliserte datamodeller (referanser)

Normaliserte datamodeller brukes til å bygge en-til-mange og mange-til-mange relasjonsmodeller. Mens du arbeider med innebygde dokumentmodeller, vil det være tider når du må gjenta data. Dette er hvor referanser kommer til nytte - de takler redundansen. Slik kan vi bruke referanser for eksemplet ovenfor.

Vi har delt vårt eneste dokument i tre dokumenter og siden Kontaktinformasjon og karakter har id fra Matt dokument, kan du ringe dem når det er nødvendig.

student
{
_id:
brukernavn: “Matt”
}
Kontaktinformasjon
{
_id:
bruker-ID:
e-post: “[email protected]
telefon: ”555-555-1234”
}
karakter
id:
bruker-ID: ,
emne: “CS101”,
score: “B”
}

Som du kan se, deler normaliserte datamodeller data i flere samlinger ved å bruke referanser mellom de nyere samlingene. Du kan oppdatere et enkelt dokument som vil oppdatere andre samlinger. Dette er en effektiv måte å oppdatere data på og brukes mest når dataene dine går gjennom hyppige endringer.

Her er tidene når en normalisert datamodell er det klokere valget:

  • Du må modellere store datasett som følger et visst hierarki.
  • Du må representere flere mange-til-mange-forhold.
  • Innebygging vil føre til duplisering av data uten å være tilstrekkelig for din leseytelse.

Nå kan du modellere data i MongoDB med letthet

Nå vet du hvordan datamodellering i MongoDB er forskjellig fra relasjonelle DBM-er, spesielt når det gjelder skjema. Du har også lært om typene datamodeller i MongoDB - de-normalisert og normalisert - og lærer når du skal bruke dem.

Og dette er bare begynnelsen; det er mye mer å lære om hvordan MongoDB kan organisere dataene dine.

E-post
Hvorfor Twitter ikke lar deg redigere tweets

Et redigeringsalternativ er en av de mest etterspurte Twitter-funksjonene. Så hvorfor vil ikke selskapet tillate det?

Les Neste

Relaterte temaer
  • Programmering
  • database
Om forfatteren
Usman Ghani (1 artikler publisert)Mer fra Usman Ghani

Abonner på vårt nyhetsbrev

Bli med på vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.