Datamodellering er processen med at udvikle en visuel repræsentation af enten en hel softwareapplikation eller komponenter til den for at kommunikere forbindelserne mellem datapunkter og struktur. Det indebærer en grundig gennemgang af dets applikations- og databasekrav og som forbindelsen mellem de to vedrørende kernedatoperationer - læs, skriv og opdater.

En stabil datamodel oprettes ved at vurdere applikationens brugsmønster og tilpasse databaseskemaet til det. Derfor skema design former din datamodel. Når det kommer til en relationsdatabase, kan du ikke udfylde dine tabeller uden at oprette tabelskemaet.

Nøgleord at vide

Før du går videre, er der nogle grundlæggende definitioner, du skal kende:

  • Kollektion - En samling er det sæt dokumenter i MongoDB. Det svarer til en tabel i en RDBMS.
  • Dokument - Et dokument er en struktur, der består af fil- og værdipar. Det svarer til en række i RDBMS.
  • Databaseskema - Skema design er en logisk og visuel arkitektur af en database designet til et database management system (DBMS).
instagram viewer

Hvordan er datamodellering anderledes i MongoDB?

Takket være NoSQL's fleksibilitet behøver du ikke oprette et skema før dataindsættelse. Det skyldes, at MongoDB understøtter en dynamisk form for databaseskema. Dette eliminerer behovet for at designe dit skema på forhånd. I stedet kan du nu gemme dine data og foretage justeringer i henhold til din samling.

Du kan gemme forskellige datatyper i en samling's givne felt og kan endda tilføje nye felter, opdatere feltværdier og slette eksisterende felter. Du finder den virkelige fordel ved denne fleksibilitet, når du kortlægger dokumenter til et objekt eller en enhed.

Generelt følger en samling og dens dokument en lignende struktur. Du kan også "håndhæve" valideringsregler for din samlings dokumenter ved hjælp af skemavalidering.

Relaterede: Databasemotorer til overvejelse til dit næste projekt

Når du opretter en datamodel, skal du undersøge, hvordan din applikation vil interagere med databasen. For eksempel, hvis det skal behandle dokumenter, der er indsat for nylig, er det en god ide at bruge begrænsede samlinger - samlinger med en fast størrelse, der understøtter operationer med høj kapacitet.

Tilsvarende, hvis din applikation vil arbejde med læseoperationer det meste af tiden, kan du indstille indekser til at understøtte almindelige forespørgsler og forbedre ydeevnen.

Traditionelt er en af ​​overvejelserne ved oprettelse af en datamodel, hvordan man gemmer relaterede data. Relationsdatabaser bruger tabeller til at gemme data, hvor primære og udenlandske nøgler bruges til at indstille dataforhold.

På samme måde bruges sammenføjninger til at få adgang til og køre operationer over flere tabeller. Som en person, der har skiftet til MongoDB fra en relationel DBMS, såsom SQL Server, vil du ikke finde sammenføjninger i MongoDB. Det skyldes, at MongoDB gemmer indsamlingsdata ved enten at henvise til dataene eller indlejre dataene i en samling.

Derfor, hvis din datamodel tager ti tabeller i en relationsdatabase, er det muligt, at MongoDB lader dig konsolidere den i en enkelt samling.

Typer datamodeller

Nu hvor du ved, hvordan datamodellering fungerer i MongoDB, lad os gennemgå de typer datamodeller, der understøttes af MongoDB. Normalt afhænger det af dit dokuments struktur og din applikations dataforhold.

Indlejrede datamodeller

Du kan integrere data i et enkelt dokument eller en struktur i MongoDB. Også kaldet de-normaliserede datamodeller, udnytter det det fulde potentiale i MongoDBs rige dokumenter. Overvej f.eks. Følgende eksempel: vi har en samling, studerende, indeholdende et dokument Matt. I dette dokument har vi integreret to dokumenter, Kontaktoplysninger og karakter.

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

Integrering gemmer relevante detaljer i det samme dokument eller databasepost. På denne måde kan du minimere forespørgsler og opdateringer, der kræves for at udføre almindelige DB-operationer.

Hvornår skal du bruge indlejrede datamodeller? De er nyttige til at forbedre udførelsen af ​​læseoperationer. Derudover er de effektive til behandling af datahentning af en enkelt post. Med denne model kan du bruge en enkelt skrivehandling til at opdatere relaterede data.

Der er dog noget, du skal huske på: indlejring øger dokumentstørrelsen efter oprettelsen. I nogle tilfælde kan dette påvirke skriveydelsen, og der er også mulighed for datafragmentering på grund af den voksende dokumentstørrelse.

Endelig kan du interagere med indlejrede dokumenter ved hjælp af punktnotationen og let krydse dem. Her er syntaksen:

field.nestedField: værdi

I ovenstående eksempel kan du få adgang til dine indlejrede dokumenter ved at skrive følgende forespørgsel:

db.students.find ({kontaktoplysninger: {telefon: ”555-555-1234”, e-mail-adresse: “[email protected]”}}). pretty ()

Normaliserede datamodeller (referencer)

Normaliserede datamodeller bruges til at opbygge en-til-mange og mange-til-mange forholdsmodeller. Når du arbejder med indlejrede dokumentmodeller, vil der være tidspunkter, hvor du skal gentage data. Dette er hvor referencer er nyttige - de tackler redundansen. Her er hvordan vi kan bruge referencer til ovenstående eksempel.

Vi har delt vores enkelt dokument i tre dokumenter og siden Kontaktoplysninger og karakter har id'et fra Matt dokument, kan du ringe til dem, når det er nødvendigt.

studerende
{
_id:
brugernavn: “Matt”
}
Kontaktoplysninger
{
_id:
bruger ID:
e-mail: “[email protected]
telefon: ”555-555-1234”
}
karakter
id:
bruger ID: ,
emne: “CS101”,
score: “B”
}

Som du kan se, opdeler normaliserede datamodeller data i flere samlinger ved hjælp af referencer mellem de nyere samlinger. Du kan opdatere et enkelt dokument, som opdaterer andre samlinger. Dette er en effektiv måde at opdatere data på og bruges mest, når dine data gennemgår hyppige ændringer.

Her er de tidspunkter, hvor en normaliseret datamodel er det klogere valg:

  • Du skal modellere store datasæt, der følger et bestemt hierarki.
  • Du skal repræsentere flere mange-til-mange relationer.
  • Indlejring vil medføre dataduplikation uden at have tilstrækkelig fordel af din læseevne.

Nu kan du modellere data i MongoDB med lethed

Nu ved du, hvordan datamodellering i MongoDB er forskellig fra relationelle DBM'er, især når det kommer til skema. Du har også lært om de typer datamodeller i MongoDB - de-normaliseret og normaliseret - og lær, hvornår de skal bruges.

Og dette er kun begyndelsen; der er meget mere at lære om, hvordan MongoDB kan organisere dine data.

E-mail
Hvorfor Twitter ikke giver dig mulighed for at redigere dine tweets

En redigeringsmulighed er en af ​​de mest efterspurgte Twitter-funktioner. Så hvorfor tillader ikke virksomheden det?

Læs Næste

Relaterede emner
  • Programmering
  • database
Om forfatteren
Usman Ghani (1 artikler offentliggjort)Mere fra Usman Ghani

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.