SQL eller NoSQL? Även om dessa två databaser har vissa ge­men­sam­ma drag finns det ett al­ter­na­tiv som passar dig bättre, beroende på hur du tänker använda den. Följande jäm­fö­rel­se mellan MongoDB och Post­greSQL fokuserar främst på hastighet och säkerhet.

MongoDB: Ho­ri­son­tell skalning och maximal flex­i­bi­li­tet

För att förstå de olika metoderna som ingår i denna jäm­fö­rel­se ger vi dig en kort översikt över da­ta­ba­ser­na MongoDB och Post­greSQL. MongoDB har fått sitt namn från det engelska ordet ”humongous” (enorm). Systemet pub­li­ce­ra­des 2009 av 10gen (nu MongoDB Inc.). Det är utformat för att användare ska kunna hantera enorma da­ta­mäng­der på ett tydligt och koncist sätt. För att göra detta möjligt är NoSQL-databasen särskilt flexibel och kan enkelt skalas. Den struk­tu­re­ra­de, se­mi­struk­tu­re­ra­de eller ostruk­tu­re­ra­de datan lagras i det JSON-liknande formatet BSON i form av dokument. MongoDB är skrivet i C++ och dis­tri­bue­ras fort­fa­ran­de över hela världen under open source-licensen SSPL.

Post­greSQL: En förmodad gammal klassiker med moderna fördelar

I vår jäm­fö­rel­se mellan MongoDB och Post­greSQL har den andra lösningen en helt annan approach. Post­greSQL fungerar helt re­la­tions­ba­se­rat och platt­form­so­be­ro­en­de, även om icke-re­la­tions­ba­se­ra­de datatyper också stöds. Systemet lan­se­ra­des 1996 och baseras, åt­minsto­ne delvis, på databaser som har ut­veck­lats vid Uni­ver­si­ty of Berkeley sedan 1980-talet. Systemet, som un­der­hålls av Post­greSQL Global De­ve­lop­ment Group, är fort­fa­ran­de öppen källkod idag. Post­greSQL påstår sig vara den mest avan­ce­ra­de öppen käll­kods­da­ta­ba­sen i världen. Det som är säkert är att den upp­skat­tas världen över för sin flex­i­bi­li­tet och sta­bi­li­tet. Han­te­rings­sy­ste­met är skrivet i C och kallas ofta helt enkelt för ”Postgres”.

Vad används MongoDB och Post­greSQL till?

Vid första anblicken tycks vår jäm­fö­rel­se mellan MongoDB och Post­greSQL antyda att båda da­ta­ba­ser­na kan användas för liknande ändamål. Båda lös­ning­ar­na är väl ge­nom­tänk­ta, mycket funk­tio­nel­la och relativt flexibla databaser som sä­ker­stäl­ler ordning och översikt även vid hantering av stora eller växande da­ta­mäng­der. En mer de­tal­je­rad analys visar att företag måste besluta utifrån sina egna krav vem som har fördelen i jäm­fö­rel­sen mellan MongoDB och Post­greSQL och vilken databas som bäst till­go­do­ser deras behov.

NoSQL-lösningen är särskilt lämplig om du behöver ett system som kan växa i takt med dina behov. Detta gäller inte bara den rena da­ta­mäng­den, utan även olika datatyper. MongoDB har ho­ri­son­tell skal­bar­het, vilket gör systemet till den perfekta lösningen inom e-han­dels­sek­torn, där trans­ak­tions­da­ta måste överföras snabbt och säkert. Dessa fördelar, i kom­bi­na­tion med dess flex­i­bi­li­tet när det gäller datatyper, gör MongoDB till ett utmärkt val för in­ne­hålls­han­te­rings­sy­stem. Om du behöver kon­fi­gu­ra­tions­al­ter­na­tiv och om­fat­tan­de ana­lys­funk­tio­ner i realtid är MongoDB värt att överväga.

Post­greSQL är lämpligt för om­fat­tan­de web­bap­pli­ka­tio­ner och till­han­da­hål­ler vär­de­ful­la resurser för e-handel. Systemet är ett bra val för ap­pli­ka­tio­ner i molnet och sakernas internet. Post­greSQL är också mycket effektivt i samarbete med andra databaser.

Funk­tio­na­li­tet

MongoDB och Post­greSQL har valt mycket olika vägar för att nå sina mål. Som en ren NoSQL-lösning avstår MongoDB helt från rigida re­la­tio­nel­la tabeller och arbetar istället på ett do­ku­men­t­o­ri­en­te­rat sätt. Dessa binära JSON-dokument (kallade BSON) sam­man­fat­tas sedan i samlingar. Systemet bygger på nyckel-värdepar. Nyckeln består här av en tec­ken­sträng; värdena kan vara andra dokument, booleska värden, siffror eller helt andra filtyper. Struk­tu­ren i ett JSON-dokument kan enkelt ändras genom att radera eller lägga till enskilda fält. En text­sök­ning finns för att iden­ti­fi­e­ra specifika dokument. Struk­tu­re­ra­de, se­mi­struk­tu­re­ra­de och ostruk­tu­re­ra­de data beaktas.

Jämfört med detta följer Post­greSQL en re­la­tions­ba­se­rad strategi. Även om det finns många NoSQL-al­ter­na­tiv har ett ta­bell­ba­se­rat system också sina fördelar. En viktig egenskap hos Post­greSQL är att han­te­rings­sy­ste­met är mycket mer flexibelt än andra SQL-al­ter­na­tiv och tillåter kolumner med un­der­vär­den. Da­ta­bashan­te­rings­sy­ste­met förlitar sig också på främmande nycklar och triggare. Frågor ställs med hjälp av den klassiska klient-server-principen. Filer och an­slut­ning­ar hanteras via den centrala ser­ver­kom­po­nen­ten ”post­mas­ter”. Olika klienter skickar sedan sina frågor. Post­greSQL stöder många datatyper, men dessa måste struk­tu­re­ras i förväg.

Prestanda

MongoDB:s namn antyder att det kan hantera enorma da­ta­mäng­der utan större problem. Systemet lever absolut upp till detta påstående. Databasen är ho­ri­son­tellt skalbar och inte beroende av en enskild maskins da­tor­kraft. Tack vare kom­bi­na­tio­nen av al­ter­na­tiv med ett brett utbud av hårdvara finns det te­o­re­tiskt sett inga gränser för dess prestanda och lag­ringsvo­lym. Även när många användare samtidigt har åtkomst till data förblir sök­has­tig­he­ten hög. Sharding fördelar be­last­ning­en över olika datorer. Detta bidrar inte bara till bättre prestanda, utan erbjuder också bästa möjliga skydd mot even­tu­el­la serverfel.

Post­greSQL, å andra sidan, skalar data vertikalt och kan därför inte helt hålla jämna steg med pre­stan­dan hos NoSQL-lösningen. Pre­stan­dan hos det re­la­tio­nel­la systemet är dock im­po­ne­ran­de. Det är till exempel möjligt att utföra skriv- och lä­so­pe­ra­tio­ner samtidigt. Da­taau­ten­ti­se­ring och djup­gå­en­de da­taa­na­lys med låg latens är också ofta bättre med Post­greSQL än med många av dess kom­mer­si­el­la kon­kur­ren­ter. Databasen fungerar med komplexa datatyper och frågor och kan därför också göra sig gällande när det gäller big data. Yt­ter­li­ga­re resurser som minne eller CPU:er kan läggas till för att möta ökande krav. Funk­tio­ner som just-in-time-kom­pi­le­ring och ta­bell­par­ti­tio­ne­ring hjälper också vid be­ar­bet­ning av stora da­ta­mäng­der.

Kom­pa­ti­bi­li­tet

Båda lös­ning­ar­na fungerar på olika platt­for­mar och kan därför användas på Linux, macOS, Solaris och Windows. Post­greSQL går ännu längre och fungerar även på FreeBSD, HP-UX, NetBSD och OpenBSD. SQL-databasen är ACID-kom­pa­ti­bel (Atomicity, Con­si­sten­cy, Isolation, Du­ra­bi­li­ty), medan MongoDB åt­minsto­ne erbjuder detta al­ter­na­tiv. Båda systemen stöder ett flertal pro­gram­me­rings­språk, men val­möj­lig­he­ter­na är betydligt större för det yngre systemet i jäm­fö­rel­sen mellan MongoDB och Post­greSQL.

Pro­gram­me­rings­språk Stöds av Mongo DB Stöds av Post­greSQL
Ac­tionscript
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

Säkerhet

En av de vik­ti­gas­te an­led­ning­ar­na till att användare väljer Post­greSQL är da­ta­ba­sens starka sä­ker­hets­ar­ki­tek­tur. Denna in­klu­de­rar Lightweight Directory Access Protocol (LDAP) och Pluggable Authen­ti­ca­tion Module (PAM) samt värd­ba­se­rad au­ten­ti­se­ring, da­takryp­te­ring och SSL-cer­ti­fi­kat. Den för­de­fi­ni­e­ra­de da­ta­bas­struk­tu­ren sä­ker­stäl­ler också att dina data alltid skyddas på bästa möjliga sätt. MongoDB har också många sä­ker­hets­funk­tio­ner, inklusive kryp­te­ring på fältnivå och på kli­ent­si­dan. Dis­tri­bu­tio­nen till olika servrar erbjuder också åt­minsto­ne en hög till­för­lit­lig­het och sä­ker­stäl­ler att data är till­gäng­li­ga igen utan större för­dröj­ning­ar.

Vilka olika versioner finns det av MongoDB och Post­greSQL?

En av lik­he­ter­na mellan MongoDB och Post­greSQL är deras öppen käll­kods­stra­te­gi. Båda systemen är därför inte bara öppen källkod, utan också till­gäng­li­ga gratis, åt­minsto­ne i sin grund­ver­sion. Även om detta också innebär att det inte finns något pro­fes­sio­nellt support i detta fall, kom­pen­se­rar två de­di­ke­ra­de com­mu­ni­tyn för denna brist och ger gärna råd till ny­kom­ling­ar. Do­ku­men­ta­tio­nen och ex­pan­sions­möj­lig­he­ter­na är också något mer om­fat­tan­de på grund av Post­greSQL:s längre mark­nadsmog­nad. MongoDB erbjuder också olika Pro-versioner. Ver­sio­ner­na “En­ter­pri­se” och “Atlas” (för molnan­vänd­ning) är av­gifts­be­lag­da, men har också några yt­ter­li­ga­re funk­tio­ner och om­fat­tan­de support.

Vilka företag använder de två da­ta­ba­ser­na?

Även om jäm­fö­rel­sen mellan MongoDB och Post­greSQL visar att de två lös­ning­ar­na har två mycket olika till­vä­ga­gångs­sätt, har de ändå en sak gemensamt, nämligen att många stora företag helt eller delvis förlitar sig på de tjänster och fördelar som de två da­ta­ba­ser­na erbjuder dem.

De mest kända företagen som använder MongoDB är bland annat följande:

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

Post­greSQL används bland annat av följande företag och platt­for­mar:

  • Apple
  • IMDB
  • Instagram
  • Reddit
  • Runkeeper
  • Skype
  • Spotify
  • Twitch
Gå till huvudmeny