Hvilken database er bedst? MongoDB vs PostgreSQL
SQL eller NoSQL? Selvom disse to databaser har visse fællestræk, er der en løsning, der passer bedre til dig, afhængigt af den tilsigtede anvendelse. Følgende sammenligning af MongoDB og PostgreSQL fokuserer primært på hastighed og sikkerhedsfaktorer.
MongoDB: Horisontal skalering og maksimal fleksibilitet
For at forstå de forskellige metoder, der indgår i denne sammenligning, giver vi dig en kort oversigt over selve MongoDB- og PostgreSQL-databaserne. 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 administrere enorme mængder data på en overskuelig og præcis måde. For at gøre dette muligt er NoSQL-databasen særligt fleksibel og kan let skaleres. De strukturerede, semistrukturerede eller ustrukturerede data gemmes i det JSON-lignende format BSON i form af dokumenter. MongoDB er skrevet i C++ og distribueres stadig worldwide under open source SSPL.
PostgreSQL: En formodet oldie med moderne fordele
I vores sammenligning mellem MongoDB og PostgreSQL har den anden løsning en helt anden tilgang. PostgreSQL fungerer fuldstændigt relationelt og på tværs af platforme, selvom ikke-relationelle datatyper også understøttes. Systemet dukkede først op i 1996 og er, i det mindste delvist, baseret på databaser, der er udviklet på University of Berkeley siden 1980’erne. Systemet, som vedligeholdes af PostgreSQL Global Development Group, er stadig open source i dag. PostgreSQL hævder at være den mest avancerede open source-database i verden. Det er sikkert, at den er værdsat over hele verden for sin fleksibilitet og stabilitet. Managementsystemet er skrevet i C og kaldes ofte blot ‘Postgres’.
Hvad bruges MongoDB og PostgreSQL til?
Ved første øjekast synes vores sammenligning mellem MongoDB og PostgreSQL at antyde, at begge databaser kan bruges til lignende formål. Begge løsninger er gennemtænkte, meget funktionelle og forholdsvis fleksible databaser, der sikrer orden og overblik, selv når der er tale om store eller stigende datamængder. En mere detaljeret analyse afslører, at virksomhederne skal beslutte ud fra deres egne krav, hvem der har fordelen i sammenligningen mellem MongoDB og PostgreSQL, og hvilken database der imødekommer 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 datamængde, men også for forskellige datatyper. MongoDB har horisontal skalerbarhed, hvilket gør systemet til den ideelle løsning i e-handelssektoren, hvor transaktionsdata skal overføres hurtigt og sikkert. Disse fordele, kombineret med fleksibiliteten med hensyn til datatyper, sikrer, at MongoDB er et fremragende valg til content management-systemer. Hvis du har brug for konfigurationsmuligheder og omfattende analysefunktioner i realtid, er MongoDB værd at overveje.
PostgreSQL er velegnet til omfattende webapplikationer og leverer værdifulde ressourcer til e-handel. Systemet er et godt valg til applikationer i skyen og tingenes internet. PostgreSQL er også meget effektivt i samarbejde med andre databaser.
Funktionalitet
De veje, som MongoDB og PostgreSQL har valgt for at nå deres mål, er meget forskellige. Som en ren NoSQL-løsning undgår MongoDB helt stive relationelle tabeller og arbejder i stedet på en dokumentorienteret måde. Disse binære JSON-dokumenter (kaldet BSON) sammenfattes derefter i samlinger. Systemet er baseret på nøgle-værdipar. Nøglen består her af en tegnstreng, mens værdierne kan være andre dokumenter, boolske værdier, tal eller helt andre filtyper. Strukturen i et JSON-dokument kan let ændres ved at slette eller tilføje enkelte felter. Der er en tekstsøgning til at identificere specifikke dokumenter. Der tages højde for strukturerede, semistrukturerede og ustrukturerede data.
Til sammenligning følger PostgreSQL en relationel tilgang. Selvom der findes mange NoSQL-alternativer, har brugen af et tabelbaseret system også sine fordele. Et vigtigt træk ved PostgreSQL er, at styringssystemet er meget mere fleksibelt end andre SQL-muligheder og tillader kolonner med underværdier. Databasestyringssystemet er også baseret på fremmednøgler og triggere. Forespørgsler foretages ved hjælp af det klassiske klient-server-princip. Filer og forbindelser styres via den centrale serverkomponent ‘postmaster’. Forskellige klienter sender derefter deres forespørgsler. PostgreSQL understøtter adskillige datatyper, selvom disse skal struktureres 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 horisontalt skalerbar og ikke afhængig af en enkelt maskines regnekraft. Takket være kombinationen af muligheder med en bred vifte af hardware er der teoretisk set ingen grænser for dens ydeevne og lagerkapacitet. Selv når mange brugere har adgang til data på samme tid, forbliver forespørgselhastigheden høj. Sharding fordeler belastningen på forskellige computere. Dette bidrager ikke kun til bedre ydeevne, men giver også den bedst mulige beskyttelse mod eventuelle serverfejl.
PostgreSQL skalerer derimod data vertikalt og kan derfor ikke helt følge med NoSQL-løsningens ydeevne. Ikke desto mindre er det relationelle systems ydeevne imponerende. Det er for eksempel muligt at udføre skrive- og læseoperationer samtidigt. Dataautentificering og dybdegående dataanalyse med lav latenstid er også ofte bedre med PostgreSQL end med mange af dets kommercielle konkurrenter. Databasen arbejder med komplekse datatyper og forespørgsler og kan derfor også score point, når det kommer til big data. Yderligere ressourcer såsom hukommelse eller CPU’er kan tilføjes for at imødekomme stigende krav. Funktioner såsom just-in-time-kompilering og tabelpartitionering hjælper også, når der behandles store datamængder.
Kompatibilitet
Begge løsninger fungerer på tværs af platforme og kan derfor bruges på Linux, macOS, Solaris og Windows. PostgreSQL går endnu længere og fungerer også på FreeBSD, HP-UX, NetBSD og OpenBSD. SQL-databasen er i sagens natur ACID-kompatibel (Atomicity, Consistency, Isolation, Durability), mens MongoDB i det mindste tilbyder denne mulighed. Begge systemer understøtter adskillige programmeringssprog, hvorved valget i sammenligningen mellem MongoDB og PostgreSQL er betydeligt større med det yngre system.
| Programmeringssprog | Understøttet af Mongo DB | Understøttet af PostgreSQL |
|---|---|---|
| Actionscript | ✓ | ✗ |
| C | ✓ | ✓ |
| C | ✓ | ✗ |
| C++ | ✓ | ✓ |
| Clojure | ✓ | ✗ |
| ColdFusion | ✓ | ✗ |
| D | ✓ | ✗ |
| Dart | ✓ | ✗ |
| Delphi | ✓ | ✓ |
| Erlang | ✓ | ✗ |
| Go | ✓ | ✗ |
| Groovy | ✓ | ✗ |
| Haskell | ✓ | ✗ |
| Java | ✓ | ✓ |
| JavaScript | ✓ | ✓ |
| Kotlin | ✓ | ✗ |
| Lisp | ✓ | ✗ |
| Lua | ✓ | ✗ |
| MatLab | ✓ | ✗ |
| .net | ✗ | ✓ |
| Perl | ✓ | ✓ |
| PHP | ✓ | ✓ |
| PowerShell | ✓ | ✗ |
| Prolog | ✓ | ✗ |
| Python | ✓ | ✓ |
| R | ✓ | ✗ |
| Ruby | ✓ | ✗ |
| Scala | ✓ | ✗ |
| Smalltalk | ✓ | ✗ |
| Swift | ✓ | ✗ |
| Tcl | ✗ | ✓ |
Sikkerhed
En af de vigtigste årsager til, at brugerne vælger PostgreSQL, er databasens stærke sikkerhedsarkitektur. Dette omfatter Lightweight Directory Access Protocol (LDAP) og et Pluggable Authentication Module (PAM) samt hostbaseret autentificering, datakryptering og SSL-certifikater. Den foruddefinerede databasestruktur sikrer også, at dine data altid er beskyttet på den bedst mulige måde. MongoDB har også adskillige sikkerhedsfunktioner, herunder kryptering på feltniveau og på klientsiden. Fordelingen til forskellige servere tilbyder også mindst et højt niveau af pålidelighed og sikrer, at data er tilgængelige igen uden større forsinkelser.
Hvad er de forskellige versioner af MongoDB og PostgreSQL?
En af lighederne mellem MongoDB og PostgreSQL er deres open source-tilgang. Begge systemer er derfor ikke kun open source, men også tilgængelige gratis, i hvert fald i deres grundlæggende version. Selvom dette også betyder, at der ikke er professionel support i dette tilfælde, kompenserer to dedikerede communities for denne mangel og rådgiver også gerne nybegyndere. Dokumentationen og udvidelsesmulighederne er også noget mere omfattende på grund af PostgreSQL’s længere modenhed på markedet. MongoDB tilbyder også forskellige Pro-versioner. Versionerne ‘Enterprise’ og ‘Atlas’ (til brug i skyen) er gebyrpligtige, men har også nogle ekstra funktioner og omfattende support.
Hvilke virksomheder bruger de to databaser?
Selvom sammenligningen mellem MongoDB og PostgreSQL viser, at de to løsninger forfølger to meget forskellige tilgange, har de stadig én ting til fælles, nemlig at mange store virksomheder helt eller delvist er afhængige af de tjenester og fordele, som de to databaser tilbyder dem.
De mest kendte virksomheder, der benytter MongoDB, omfatter følgende:
- Adobe
- Amadeus
- AppScale
- Craftbase
- Disney
- Etsy
- Foursquare
- Lyft
- MTV
- The New York Times
- Via Varejo
PostgreSQL bruges blandt andet af følgende virksomheder og platforme:
- Apple
- IMDB
- Runkeeper
- Skype
- Spotify
- Twitch