SQL eller NoSQL? Selvom disse to databaser har visse fæl­les­træk, er der en løsning, der passer bedre til dig, afhængigt af den til­sig­te­de an­ven­del­se. Følgende sam­men­lig­ning af MongoDB og Po­st­greSQL fokuserer primært på hastighed og sik­ker­heds­fak­to­rer.

MongoDB: Ho­ri­son­tal skalering og maksimal flek­si­bi­li­tet

For at forstå de for­skel­li­ge metoder, der indgår i denne sam­men­lig­ning, giver vi dig en kort oversigt over selve MongoDB- og Po­st­greSQL-da­ta­ba­ser­ne. MongoDB har fået sit navn fra det engelske ord “humongous” (kæmpe). Systemet blev lanceret i 2009 af 10gen (nu MongoDB Inc.). Det er designet til at give brugerne mulighed for at ad­mi­ni­stre­re enorme mængder data på en over­sku­e­lig og præcis måde. For at gøre dette muligt er NoSQL-databasen særligt fleksibel og kan let skaleres. De struk­tu­re­re­de, se­mi­struk­tu­re­re­de eller ustruk­tu­re­re­de data gemmes i det JSON-lignende format BSON i form af do­ku­men­ter. MongoDB er skrevet i C++ og di­stri­bu­e­res stadig worldwide under open source SSPL.

Po­st­greSQL: En formodet oldie med moderne fordele

I vores sam­men­lig­ning mellem MongoDB og Po­st­greSQL har den anden løsning en helt anden tilgang. Po­st­greSQL fungerer fuld­stæn­digt re­la­tio­nelt og på tværs af platforme, selvom ikke-re­la­tio­nel­le datatyper også un­der­støt­tes. Systemet dukkede først op i 1996 og er, i det mindste delvist, baseret på databaser, der er udviklet på Uni­ver­si­ty of Berkeley siden 1980’erne. Systemet, som ved­li­ge­hol­des af Po­st­greSQL Global De­ve­l­op­ment Group, er stadig open source i dag. Po­st­greSQL hævder at være den mest avan­ce­re­de open source-database i verden. Det er sikkert, at den er værdsat over hele verden for sin flek­si­bi­li­tet og sta­bi­li­tet. Ma­na­ge­ment­sy­ste­met er skrevet i C og kaldes ofte blot ‘Postgres’.

Hvad bruges MongoDB og Po­st­greSQL til?

Ved første øjekast synes vores sam­men­lig­ning mellem MongoDB og Po­st­greSQL at antyde, at begge databaser kan bruges til lignende formål. Begge løsninger er gen­nemtænk­te, meget funk­tio­nel­le og for­holds­vis fleksible databaser, der sikrer orden og overblik, selv når der er tale om store eller stigende da­ta­mæng­der. En mere de­tal­je­ret analyse afslører, at virk­som­he­der­ne skal beslutte ud fra deres egne krav, hvem der har fordelen i sam­men­lig­nin­gen mellem MongoDB og Po­st­greSQL, og hvilken database der imø­de­kom­mer deres behov.

NoSQL-løsningen scorer særligt godt, hvis du har brug for et system, der kan vokse i takt med dine behov. Dette gælder ikke kun for den rene da­ta­mæng­de, men også for for­skel­li­ge datatyper. MongoDB har ho­ri­son­tal ska­ler­bar­hed, hvilket gør systemet til den ideelle løsning i e-han­dels­sek­to­ren, hvor transak­tions­da­ta skal overføres hurtigt og sikkert. Disse fordele, kom­bi­ne­ret med flek­si­bi­li­te­ten med hensyn til datatyper, sikrer, at MongoDB er et frem­ra­gen­de valg til content ma­na­ge­ment-systemer. Hvis du har brug for kon­fi­gu­ra­tions­mu­lig­he­der og om­fat­ten­de ana­ly­se­funk­tio­ner i realtid, er MongoDB værd at overveje.

Po­st­greSQL er velegnet til om­fat­ten­de we­bap­pli­ka­tio­ner og leverer vær­di­ful­de res­sour­cer til e-handel. Systemet er et godt valg til ap­pli­ka­tio­ner i skyen og tingenes internet. Po­st­greSQL er også meget effektivt i sam­ar­bej­de med andre databaser.

Funk­tio­na­li­tet

De veje, som MongoDB og Po­st­greSQL har valgt for at nå deres mål, er meget for­skel­li­ge. Som en ren NoSQL-løsning undgår MongoDB helt stive re­la­tio­nel­le tabeller og arbejder i stedet på en do­ku­men­t­o­ri­en­te­ret måde. Disse binære JSON-do­ku­men­ter (kaldet BSON) sam­men­fat­tes derefter i samlinger. Systemet er baseret på nøgle-værdipar. Nøglen består her af en tegn­streng, mens værdierne kan være andre do­ku­men­ter, boolske værdier, tal eller helt andre filtyper. Struk­tu­ren i et JSON-dokument kan let ændres ved at slette eller tilføje enkelte felter. Der er en tekstsøg­ning til at iden­ti­fi­ce­re spe­ci­fik­ke do­ku­men­ter. Der tages højde for struk­tu­re­re­de, se­mi­struk­tu­re­re­de og ustruk­tu­re­re­de data.

Til sam­men­lig­ning følger Po­st­greSQL en re­la­tio­nel tilgang. Selvom der findes mange NoSQL-al­ter­na­ti­ver, har brugen af et ta­bel­ba­se­ret system også sine fordele. Et vigtigt træk ved Po­st­greSQL er, at sty­rings­sy­ste­met er meget mere flek­si­belt end andre SQL-mu­lig­he­der og tillader kolonner med un­der­vær­di­er. Da­ta­ba­sesty­rings­sy­ste­met er også baseret på frem­med­nøg­ler og triggere. Fo­re­spørgs­ler foretages ved hjælp af det klassiske klient-server-princip. Filer og for­bin­del­ser styres via den centrale ser­ver­kom­po­nent ‘po­st­ma­ster’. For­skel­li­ge klienter sender derefter deres fo­re­spørgs­ler. Po­st­greSQL un­der­støt­ter ad­skil­li­ge datatyper, selvom disse skal struk­tu­re­res på forhånd.

Ydeevne

MongoDB’s navn antyder, at det kan håndtere enorme mængder data uden større problemer. Systemet lever absolut op til denne påstand. Databasen er ho­ri­son­talt skalerbar og ikke afhængig af en enkelt maskines reg­ne­kraft. Takket være kom­bi­na­tio­nen af mu­lig­he­der med en bred vifte af hardware er der teoretisk set ingen grænser for dens ydeevne og la­ger­ka­pa­ci­tet. Selv når mange brugere har adgang til data på samme tid, forbliver fo­re­spørgsel­ha­stig­he­den høj. Sharding fordeler be­last­nin­gen på for­skel­li­ge computere. Dette bidrager ikke kun til bedre ydeevne, men giver også den bedst mulige be­skyt­tel­se mod even­tu­el­le ser­ver­fejl.

Po­st­greSQL skalerer derimod data vertikalt og kan derfor ikke helt følge med NoSQL-løs­nin­gens ydeevne. Ikke desto mindre er det re­la­tio­nel­le systems ydeevne im­po­ne­ren­de. Det er for eksempel muligt at udføre skrive- og læ­se­o­pe­ra­tio­ner samtidigt. Da­ta­au­ten­ti­fi­ce­ring og dyb­de­gå­en­de da­ta­a­na­ly­se med lav latenstid er også ofte bedre med Po­st­greSQL end med mange af dets kom­merci­el­le kon­kur­ren­ter. Databasen arbejder med komplekse datatyper og fo­re­spørgs­ler og kan derfor også score point, når det kommer til big data. Yder­li­ge­re res­sour­cer såsom hukom­mel­se eller CPU’er kan tilføjes for at imø­de­kom­me stigende krav. Funk­tio­ner såsom just-in-time-kom­pi­le­ring og ta­bel­par­ti­tio­ne­ring hjælper også, når der behandles store da­ta­mæng­der.

Kom­pa­ti­bi­li­tet

Begge løsninger fungerer på tværs af platforme og kan derfor bruges på Linux, macOS, Solaris og Windows. Po­st­greSQL går endnu længere og fungerer også på FreeBSD, HP-UX, NetBSD og OpenBSD. SQL-databasen er i sagens natur ACID-kom­pa­ti­bel (Atomicity, Con­si­sten­cy, Isolation, Du­ra­bi­li­ty), mens MongoDB i det mindste tilbyder denne mulighed. Begge systemer un­der­støt­ter ad­skil­li­ge pro­gram­me­rings­sprog, hvorved valget i sam­men­lig­nin­gen mellem MongoDB og Po­st­greSQL er be­ty­de­ligt større med det yngre system.

Pro­gram­me­rings­sprog Un­der­støt­tet af Mongo DB Un­der­støt­tet af Po­st­greSQL
Actions­cript
C
C
C++
Clojure
Cold­Fu­sion
D
Dart
Delphi
Erlang
Go
Groovy
Haskell
Java
Ja­va­Script
Kotlin
Lisp
Lua
MatLab
.net
Perl
PHP
Po­werS­hell
Prolog
Python
R
Ruby
Scala
Smalltalk
Swift
Tcl

Sikkerhed

En af de vigtigste årsager til, at brugerne vælger Po­st­greSQL, er da­ta­ba­sens stærke sik­ker­heds­ar­ki­tek­tur. Dette omfatter Ligh­tweight Directory Access Protocol (LDAP) og et Pluggable Aut­hen­ti­ca­tion Module (PAM) samt host­ba­se­ret au­ten­ti­fi­ce­ring, da­ta­kryp­te­ring og SSL-cer­ti­fi­ka­ter. Den for­ud­de­fi­ne­re­de da­ta­ba­se­struk­tur sikrer også, at dine data altid er beskyttet på den bedst mulige måde. MongoDB har også ad­skil­li­ge sik­ker­heds­funk­tio­ner, herunder kryp­te­ring på felt­ni­veau og på kli­ent­si­den. For­de­lin­gen til for­skel­li­ge servere tilbyder også mindst et højt niveau af på­li­de­lig­hed og sikrer, at data er til­gæn­ge­li­ge igen uden større for­sin­kel­ser.

Hvad er de for­skel­li­ge versioner af MongoDB og Po­st­greSQL?

En af lig­he­der­ne mellem MongoDB og Po­st­greSQL er deres open source-tilgang. Begge systemer er derfor ikke kun open source, men også til­gæn­ge­li­ge gratis, i hvert fald i deres grund­læg­gen­de version. Selvom dette også betyder, at der ikke er pro­fes­sio­nel support i dette tilfælde, kom­pen­se­rer to de­di­ke­re­de com­mu­ni­ties for denne mangel og rådgiver også gerne ny­be­gyn­de­re. Do­ku­men­ta­tio­nen og ud­vi­del­ses­mu­lig­he­der­ne er også noget mere om­fat­ten­de på grund af Po­st­greSQL’s længere modenhed på markedet. MongoDB tilbyder også for­skel­li­ge Pro-versioner. Ver­sio­ner­ne ‘En­ter­pri­se’ og ‘Atlas’ (til brug i skyen) er ge­byr­plig­ti­ge, men har også nogle ekstra funk­tio­ner og om­fat­ten­de support.

Hvilke virk­som­he­der bruger de to databaser?

Selvom sam­men­lig­nin­gen mellem MongoDB og Po­st­greSQL viser, at de to løsninger forfølger to meget for­skel­li­ge tilgange, har de stadig én ting til fælles, nemlig at mange store virk­som­he­der helt eller delvist er afhængige af de tjenester og fordele, som de to databaser tilbyder dem.

De mest kendte virk­som­he­der, der benytter MongoDB, omfatter følgende:

  • Adobe
  • Amadeus
  • AppScale
  • Craftbase
  • Disney
  • Etsy
  • Foursqua­re
  • Lyft
  • MTV
  • The New York Times
  • Via Varejo

Po­st­greSQL bruges blandt andet af følgende virk­som­he­der og platforme:

  • Apple
  • IMDB
  • Instagram
  • Reddit
  • Runkeeper
  • Skype
  • Spotify
  • Twitch
Gå til ho­ved­me­nu­en