SQL ali NoSQL? Čeprav imata ti dve po­dat­kov­ni bazi nekaj skupnih zna­čil­no­sti, je glede na na­me­ra­va­no uporabo ena od njiju bolj primerna za vas. V na­da­lje­va­nju je pred­sta­vlje­na pri­mer­ja­va med MongoDB in Po­stgre­SQL, ki se osre­do­to­ča predvsem na hitrost in varnost.

MongoDB: Ho­ri­zon­tal­no ska­li­ra­nje in ma­ksi­mal­na pri­la­go­dlji­vost

Da bi razumeli različne metode, vključene v to pri­mer­ja­vo, vam bomo na kratko pred­sta­vi­li po­dat­kov­ni bazi MongoDB in Po­stgre­SQL. MongoDB je dobil ime po angleškem izrazu »humongous« (ogromen). Sistem je leta 2009 objavilo podjetje 10gen (danes MongoDB Inc.). Zasnovan je tako, da upo­rab­ni­kom omogoča jasno in pregledno upra­vlja­nje ogromnih količin podatkov. Da bi to omogočili, je baza podatkov NoSQL posebej pri­la­go­dlji­va in jo je mogoče enostavno pri­la­go­di­ti. Struk­tu­ri­ra­ni, pol­struk­tu­ri­ra­ni ali ne­struk­tu­ri­ra­ni podatki so shranjeni v formatu BSON, podobnem JSON, v obliki do­ku­men­tov. MongoDB je bil napisal v C++ in se še vedno di­s­tri­bu­i­ra po vsem svetu pod od­pr­to­ko­dno licenco SSPL.

Po­stgre­SQL: domnevno sta­ro­dav­ni sistem z modernimi pred­nost­mi

V naši pri­mer­ja­vi MongoDB in Po­stgre­SQL druga rešitev uporablja povsem drugačen pristop. Po­stgre­SQL deluje povsem re­la­cij­sko in je več­plat­form­ski, čeprav podpira tudi ne­re­la­cij­ske po­dat­kov­ne tipe. Sistem je prvič pojavil leta 1996 in vsaj delno temelji na po­dat­kov­nih bazah, ki so bile razvite na Univerzi v Ber­ke­le­y­ju od 80. let prej­šnje­ga stoletja. Sistem, ki ga vzdržuje Po­stgre­SQL Global De­ve­lop­ment Group, je še danes od­pr­to­ko­dni. Po­stgre­SQL se ponaša z nazivom naj­na­pre­dnej­še od­pr­to­ko­dne baze podatkov na svetu. Gotovo je, da je po vsem svetu cenjen zaradi svoje pri­la­go­dlji­vo­sti in sta­bil­no­sti. Upra­vljal­ni sistem je napisan v jeziku C in se pogosto imenuje preprosto »Postgres«.

Za kaj se upo­ra­blja­ta MongoDB in Po­stgre­SQL?

Na prvi pogled se zdi, da pri­mer­ja­va med MongoDB in Po­stgre­SQL kaže, da bi se obe po­dat­kov­ni bazi lahko upo­ra­blja­li za podobne namene. Obe rešitvi sta dobro pre­mi­šlje­ni, visoko funk­ci­o­nal­ni in so­raz­mer­no pri­la­go­dlji­vi po­dat­kov­ni bazi, ki za­go­ta­vlja­ta red in pre­gle­dnost tudi pri obdelavi velikih ali na­ra­šča­jo­čih količin podatkov. Po­drob­nej­ša analiza kaže, da morajo podjetja glede na svoje zahteve sami odločiti, katera od po­dat­kov­nih baz ima prednost v pri­mer­ja­vi med MongoDB in Po­stgre­SQL in katera od njiju bolje ustreza njihovim potrebam.

Rešitev NoSQL je še posebej primerna, če po­tre­bu­je­te sistem, ki lahko raste skupaj z vašimi zahtevami. To velja ne le za obseg podatkov, ampak tudi za različne tipe podatkov. MongoDB ima ho­ri­zon­tal­no ska­la­bil­nost, kar sistem naredi idealno rešitev v sektorju e-trgovine, kjer je treba tran­sak­cij­ske podatke prenesti hitro in varno. Te prednosti, skupaj z njegovo fle­ksi­bil­no­stjo glede tipov podatkov, za­go­ta­vlja­jo, da je MongoDB odlična izbira za sisteme za upra­vlja­nje vsebin. Če po­tre­bu­je­te možnosti kon­fi­gu­ra­ci­je in obsežne funkcije analize v realnem času, je MongoDB vredno upo­šte­va­ti.

Po­stgre­SQL je primeren za obsežne spletne apli­ka­ci­je in za­go­ta­vlja dragocene vire za e-po­slo­va­nje. Sistem je dobra izbira za apli­ka­ci­je v oblaku in internetu stvari. Po­stgre­SQL je tudi zelo učinkovit v so­de­lo­va­nju z drugimi po­dat­kov­ni­mi bazami.

Funk­ci­o­nal­nost

Pot, ki sta jo ubrala MongoDB in Po­stgre­SQL za dosego svojih ciljev, je zelo različna. Kot čista rešitev NoSQL se MongoDB popolnoma odpove togim re­la­cij­skim tabelam in namesto tega deluje na do­ku­men­tno usmerjen način. Ti binarni dokumenti JSON (imenovani BSON) so nato povzeti v zbirkah. Sistem temelji na parih ključ-vrednost. Ključ je se­sta­vljen iz niza znakov, vrednosti pa so lahko drugi dokumenti, boolovske vrednosti, številke ali povsem drugačni tipi datotek. Strukturo JSON dokumenta je mogoče enostavno spre­me­ni­ti z brisanjem ali do­da­ja­njem po­sa­me­znih polj. Za iskanje določenih do­ku­men­tov je na voljo iskanje po besedilu. Upo­šte­va­jo se struk­tu­ri­ra­ni, pol­struk­tu­ri­ra­ni in ne­struk­tu­ri­ra­ni podatki.

V pri­mer­ja­vi s tem Po­stgre­SQL sledi re­la­cij­ske­mu pristopu. Čeprav obstaja številne al­ter­na­ti­ve NoSQL, ima uporaba sistema, ki temelji na tabelah, tudi svoje prednosti. Pomembna zna­čil­nost Po­stgre­SQL je, da je sistem upra­vlja­nja veliko bolj pri­la­go­dljiv kot druge možnosti SQL in omogoča stolpce s pod­vre­dnost­mi. Sistem za upra­vlja­nje po­dat­kov­nih baz se opira tudi na tuje ključe in sprožilce. Poizvedbe se izvajajo po klasičnem principu odjemalec-strežnik. Datoteke in povezave se upra­vlja­jo prek centralne stre­žni­ške kom­po­nen­te »post­ma­ster«. Različni odjemalci nato pošljejo svoja po­i­zve­do­va­nja. Po­stgre­SQL podpira številne tipe podatkov, čeprav morajo biti ti vnaprej struk­tu­ri­ra­ni.

Zmo­glji­vost

Ime MongoDB nakazuje, da lahko brez večjih težav obdeluje ogromne količine podatkov. Sistem popolnoma iz­pol­nju­je ta pri­ča­ko­va­nja. Po­dat­kov­na baza je ho­ri­zon­tal­no ska­la­bil­na in ni odvisna od računske moči po­sa­me­zne­ga ra­ču­nal­ni­ka. Za­hva­lju­joč kom­bi­na­ci­ji možnosti z široko paleto strojne opreme, te­o­re­tič­no ni omejitev glede zmo­glji­vo­sti in prostora za shra­nje­va­nje. Tudi ko številni upo­rab­ni­ki hkrati dostopajo do podatkov, hitrost poizvedb ostane visoka. Sharding porazdeli obre­me­ni­tev med različne ra­ču­nal­ni­ke. To ne prispeva le k boljši zmo­glji­vo­sti, ampak tudi nudi najboljšo možno zaščito pred mo­re­bi­tni­mi okvarami strežnika.

Po­stgre­SQL pa podatke skalirano navpično in zato ne more povsem držati koraka z zmo­glji­vo­stjo rešitve NoSQL. Kljub temu je zmo­glji­vost re­la­cij­ske­ga sistema im­pre­siv­na. Na primer, omogoča hkratno izvajanje operacij pisanja in branja. Pre­ver­ja­nje pri­stno­sti podatkov in po­glo­blje­na analiza podatkov z nizko za­ka­sni­tvi­jo sta pogosto boljša pri Po­stgre­SQL kot pri mnogih ko­mer­ci­al­nih kon­ku­ren­tih. Baza podatkov deluje s kom­ple­ksni­mi tipi podatkov in po­i­zved­ba­mi, zato lahko zbira točke tudi na področju velikih podatkov. Dodatne vire, kot so pomnilnik ali pro­ce­sor­ji, je mogoče dodati, da se zadovolji na­ra­šča­jo­če zahteve. Funkcije, kot so kom­pi­la­ci­ja just-in-time in raz­de­li­tev tabel, prav tako pomagajo pri obdelavi velikih količin podatkov.

Zdru­žlji­vost

Obe rešitvi delujeta na različnih plat­for­mah in se zato lahko upo­ra­blja­ta v sistemih Linux, macOS, Solaris in Windows. Po­stgre­SQL gre še dlje in deluje tudi v sistemih FreeBSD, HP-UX, NetBSD in OpenBSD. SQL-po­dat­kov­na baza je po naravi skladna z ACID (Atomicity, Con­si­sten­cy, Isolation, Du­ra­bi­li­ty), medtem ko MongoDB vsaj ponuja to možnost. Oba sistema podpirata številne pro­gram­ski jeziki, pri čemer je izbira v pri­mer­ja­vi med MongoDB in Po­stgre­SQL bistveno večja pri mlajšem sistemu.

Pro­gram­ski jezik Podpira ga Mongo DB Podpira Po­stgre­SQL
Ac­ti­on­script
C
C
C++
Clojure
Col­dFu­si­on
D
Dart
Delphi
Erlang
Go
Groovy
Haskell
Java
Ja­va­Script
Kotlin
Lisp
Lua
MatLab
.net
Perl
PHP
Po­wer­Shell
Prolog
Python
R
Ruby
Scala
Smalltalk
Swift
Tcl

Varnost

Eden od naj­po­memb­nej­ših razlogov, zakaj se upo­rab­ni­ki odločajo za Po­stgre­SQL, je močna varnostna ar­hi­tek­tu­ra baze podatkov. Ta vključuje protokol LDAP (Li­gh­twei­ght Directory Access Protocol) in modul PAM (Pluggable Authen­ti­ca­ti­on Module) ter go­sti­telj­sko av­ten­ti­fi­ka­ci­jo, ši­fri­ra­nje podatkov in cer­ti­fi­ka­te SSL. Pred­de­fi­ni­ra­na struktura baze podatkov prav tako za­go­ta­vlja, da so vaši podatki vedno zaščiteni na najboljši možni način. MongoDB ima tudi številne varnostne funkcije, vključno s ši­fri­ra­njem na ravni polja in na strani odjemalca. Raz­po­re­di­tev na različne strežnike ponuja tudi visoko raven za­ne­slji­vo­sti in za­go­ta­vlja, da so podatki ponovno na voljo brez večjih zamud.

Kakšne so različne različice MongoDB in Po­stgre­SQL?

Ena od po­dob­no­sti med MongoDB in Po­stgre­SQL je njun od­pr­to­ko­dni pristop. Oba sistema sta torej ne le od­pr­to­ko­dna, ampak tudi brez­plač­na, vsaj v osnovni različici. Čeprav to pomeni, da v tem primeru ni strokovne podpore, to po­manj­klji­vost na­do­me­sti­ta dve predani skupnosti, ki z veseljem svetujeta tudi novincem. Do­ku­men­ta­ci­ja in možnosti raz­ši­ri­tve so nekoliko ob­se­žnej­še zaradi daljše zrelosti Po­stgre­SQL na trgu. MongoDB ponuja tudi različne Pro različice. Različici „En­ter­pri­se“ in „Atlas“ (za uporabo v oblaku) sta plačljivi, vendar imata tudi nekaj dodatnih funkcij in celovito podporo.

Katera podjetja upo­ra­blja­jo ti dve po­dat­kov­ni bazi?

Čeprav pri­mer­ja­va med MongoDB in Po­stgre­SQL kaže, da obe rešitvi sledita zelo različnim pristopom, imata vendarle eno skupno lastnost, in sicer, da številna velika podjetja v celoti ali delno zaupajo storitvam in pred­no­stim, ki jim jih ponujata ti dve po­dat­kov­ni bazi.

Najbolj znana podjetja, ki se zanašajo na MongoDB, so naslednja:

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

Po­stgre­SQL upo­ra­blja­jo med drugim naslednja podjetja in platforme:

  • Apple
  • IMDB
  • Instagram
  • Reddit
  • Runkeeper
  • Skype
  • Spotify
  • Twitch
Go to Main Menu