Programiranje

Kako izbrati pravo vrsto zbirke podatkov za vaše podjetje

Obstaja na stotine tehnološko težkih pregledov baz podatkov, vendar ne dajejo vedno jasnih navodil o prvem koraku pri izbiri baze podatkov: izbiri najboljše splošne vrste za določeno aplikacijo. Vse zbirke podatkov niso enake. Vsak ima posebne prednosti in slabosti. Res je, da obstajajo rešitve, s katerimi lahko priljubljena baza podatkov deluje pri večini projektov, vendar uporaba teh trikov doda nepotrebno zapletenost.

Preden razmislite o določeni zbirki podatkov, si vzemite nekaj časa, da premislite, katera vrsta bi najbolje podpirala zadevni projekt. Vprašanje gre globlje kot "SQL v primerjavi z NoSQL." V nadaljevanju si oglejte pregled najpogostejših vrst baz podatkov, relativne prednosti vsake od njih in kako ugotoviti, katera je najprimernejša.

Relacijski sistemi za upravljanje baz podatkov (Oracle, MySQL, MS Server, PostgreSQL)

Relacijske zbirke podatkov so bile razvite v sedemdesetih letih prejšnjega stoletja za obvladovanje naraščajoče poplave podatkov, ki se proizvajajo. Imajo trdno temeljno teorijo in so vplivali na skoraj vsak sistem baz podatkov, ki se danes uporablja.

Relacijske zbirke podatkov shranjujejo nabore podatkov kot "relacije": tabele z vrsticami in stolpci, kjer so vse informacije shranjene kot vrednost določene celice. Podatki v RDBMS se upravljajo s pomočjo SQL. Čeprav obstajajo različne izvedbe, je SQL standardiziran in zagotavlja raven predvidljivosti in uporabnosti.

Potem ko je zgodnja poplava prodajalcev poskušala izkoristiti priljubljenost sistema z ne povsem relacijskimi izdelki, je ustvarjalec E. F. Codd začrtal niz pravil, ki jih morajo upoštevati vsi sistemi za upravljanje relacijskih baz podatkov. Coddovih 12 pravil se vrti okoli uvedbe strogih protokolov notranje strukture, zagotavljanja, da iskanja zanesljivo vrnejo zahtevane podatke, in preprečevanja strukturnih sprememb (vsaj s strani uporabnikov). Okvir je zagotovil, da so relacijske zbirke podatkov dosledne in zanesljive do danes.

Prednosti

Relacijske zbirke podatkov se odlikujejo pri obdelavi visoko strukturiranih podatkov in zagotavljajo podporo za transakcije ACID (atomskost, doslednost, izolacija in trajnost). Podatki so enostavno shranjeni in pridobljeni z uporabo poizvedb SQL. Strukturo je mogoče hitro povečati, saj je dodajanje podatkov brez spreminjanja obstoječih podatkov preprosto.

Ustvarjanje omejitev, do katerih lahko dostopajo ali spreminjajo določeni tipi uporabnikov, je vgrajeno v strukturo RDBMS. Zaradi tega so relacijske zbirke podatkov primerne za aplikacije, ki zahtevajo stopenjski dostop. Na primer, stranke bi si lahko ogledale svoje račune, zastopniki pa bi si lahko ogledali in izvedli potrebne spremembe.

Slabosti

Največja slabost relacijskih baz podatkov je zrcalo njihove največje moči. Kakor dobro obvladajo strukturirane podatke, imajo težko strukturirane podatke. Predstavljanje resničnih entitet v kontekstu je težko v okviru RDBMS. "Narezane" podatke je treba iz tabel znova sestaviti v nekaj bolj berljivega in hitrost lahko negativno vpliva. Tudi fiksna shema se na spremembe ne odziva dobro.

Stroški so upoštevani pri relacijskih zbirkah podatkov. Običajno jih je dražje postavljati in rasti. Horizontalno skaliranje ali skaliranje z dodajanjem več strežnikov je običajno hitrejše in varčnejše od vertikalnega, kar vključuje dodajanje več virov strežniku. Vendar struktura relacijskih baz podatkov postopek otežuje. Ostrenje (kjer so podatki vodoravno razdeljeni in porazdeljeni po zbirki strojev) je potrebno za razširitev relacijske baze podatkov. Ostrenje relacijskih baz podatkov ob ohranjanju skladnosti s kislino je lahko izziv.

Uporabite relacijsko bazo podatkov za:

  • Situacije, pri katerih je celovitost podatkov nadvse pomembna (tj. Za finančne aplikacije, obrambo in varnost ter zasebne zdravstvene informacije)
  • Visoko strukturirani podatki
  • Avtomatizacija notranjih procesov

Shramba dokumentov (MongoDB, Couchbase)

Shramba dokumentov je nerelacijska baza podatkov, ki shranjuje podatke v dokumentih JSON, BSON ali XML. Imajo prilagodljivo shemo. Za razliko od zbirk podatkov SQL, kjer morajo uporabniki pred vstavljanjem podatkov prijaviti shemo tabele, shrambe dokumentov ne uveljavljajo strukture dokumentov. Dokumenti lahko vsebujejo poljubne podatke. Imajo pare ključ / vrednost, vgradijo pa tudi metapodatke atributov za lažje poizvedovanje.

Prednosti

Shrambe dokumentov so zelo prilagodljive. Dobro obvladujejo polstrukturirane in nestrukturirane podatke. Uporabnikom med nastavitvijo ni treba vedeti, katere vrste podatkov bodo shranjene, zato je to dobra izbira, če vnaprej ni jasno, katere vrste podatkov bodo prihajale.

Uporabniki lahko ustvarijo želeno strukturo v določenem dokumentu, ne da bi to vplivalo na vse dokumente. Shemo je mogoče spremeniti, ne da bi povzročili izpad, kar vodi do visoke razpoložljivosti. Tudi hitrost pisanja je na splošno hitra.

Poleg prilagodljivosti so razvijalci všeč tudi shrambe dokumentov, saj jih je enostavno vodoravno prilagoditi. Ostrenje, potrebno za vodoravno skaliranje, je veliko bolj intuitivno kot pri relacijskih zbirkah podatkov, zato se shrambe dokumentov hitro in učinkovito povečajo.

Slabosti

Zbirke dokumentov žrtvujejo skladnost s kislino zaradi prilagodljivosti. Čeprav poizvedbe v dokumentu lahko potekajo, to ni mogoče med dokumenti.

Uporabite bazo dokumentov za:

  • Nestrukturirani ali polstrukturirani podatki
  • Upravljanje vsebin
  • Poglobljena analiza podatkov
  • Hitro izdelava prototipov

Shramba ključ-vrednost (Redis, Memcached)

Shramba ključ-vrednost je vrsta nerelacijske baze podatkov, pri kateri je vsaka vrednost povezana z določenim ključem. Znan je tudi kot asociativni niz.

"Ključ" je enolični identifikator, povezan samo z vrednostjo. Tipke so lahko vse, kar dovoljuje DBMS. V Redisu so na primer ključi man poljubno binarno zaporedje do 512 MB.

"Vrednosti" so shranjene kot blobs in ne potrebujejo vnaprej določene sheme. Imajo lahko skoraj kakršno koli obliko: številke, nize, števce, JSON, XML, HTML, PHP, binarne datoteke, slike, kratke videoposnetke, sezname in celo drug par ključ-vrednost, vdelan v predmet. Nekateri DBMS omogočajo določitev vrste podatkov, vendar ni obvezna.

Prednosti

Ta slog baze podatkov ima veliko pozitivnih strani. Je neverjetno prilagodljiv in z lahkoto obdeluje zelo širok nabor podatkovnih vrst. Tipke se uporabljajo za prehod naravnost na vrednost brez iskanja po indeksu ali združevanja, zato je zmogljivost visoka. Prenosljivost je še ena prednost: shrambe ključ-vrednost je mogoče premakniti iz enega sistema v drugega brez prepisovanja kode. Končno so zelo vodoravno prilagodljivi in ​​imajo na splošno nižje operativne stroške.

Slabosti

Prilagodljivost ima svojo ceno. Poizvedbe vrednosti je nemogoče, ker so shranjene kot blob in jih je mogoče vrniti samo kot take. To otežuje poročanje ali urejanje delov vrednosti. Tudi vseh predmetov ni enostavno modelirati v parih ključ-vrednost.

Uporabite shrambo ključ-vrednost za:

  • Priporočila
  • Uporabniški profili in nastavitve
  • Nestrukturirani podatki, kot so ocene izdelkov ali komentarji v spletnem dnevniku
  • Obsežno upravljanje sej
  • Podatki, do katerih se bo pogosto dostopalo, vendar se ne bodo pogosto posodabljali

Širokokolonska trgovina (Cassandra, HBase)

Shrambe širokih stolpcev, imenovane tudi shrambe stolpcev ali razširljive shrambe zapisov, so dinamične nerelacijske zbirke podatkov, usmerjene v stolpce. Včasih jih obravnavajo kot vrsto shrambe ključ-vrednost, vendar imajo tudi atribute tradicionalnih relacijskih baz podatkov.

Trgovine z velikimi stolpci namesto shem uporabljajo koncept prostora tipk. Prostor tipk zajema družine stolpcev (podobne tabelam, vendar bolj prilagodljive strukture), od katerih vsaka vsebuje več vrstic z različnimi stolpci. Vsaka vrstica ne sme imeti enakega števila ali vrste stolpca. Časovni žig določa najnovejšo različico podatkov.

Prednosti

Ta vrsta zbirke podatkov ima nekaj prednosti tako relacijskih kot nerelacijskih baz podatkov. Bolje obravnava strukturirane in polstrukturirane podatke kot druge nerelacijske baze podatkov in ga je lažje posodobiti. V primerjavi z relacijskimi bazami podatkov je bolj vodoravno prilagodljiva in hitrejša.

Stolpčne baze podatkov se stisnejo bolje kot sistemi, ki temeljijo na vrsticah. Tudi velike nabore podatkov je enostavno raziskati. Trgovine z velikimi stolpci so na primer še posebej dobre pri združevalnih poizvedbah.

Slabosti

Pisanje je v malem drago. Medtem ko je posodabljanje enostavno narediti v velikem obsegu, je nalaganje in posodabljanje posameznih zapisov težko. Poleg tega so shrambe s širokimi stolpci pri obdelavi transakcij počasnejše od relacijskih baz podatkov.

Uporabite trgovino s širokimi stolpci za:

  • Analitika velikih podatkov, kjer je pomembna hitrost
  • Skladiščenje podatkov o velikih podatkih
  • Projekti velikega obsega (ta slog zbirke podatkov ni dobro orodje za povprečne transakcijske aplikacije)

Iskalnik (Elasticsearch)

Morda se zdi nenavadno vključevanje iskalnikov v članek o vrstah baz podatkov. Vendar pa je Elasticsearch na tem področju videl večjo priljubljenost, saj razvijalci iščejo inovativne načine za zmanjšanje zaostanka v iskanju. Elastisearch je nerelacijska rešitev za shranjevanje in iskanje podatkov, ki temelji na dokumentih, posebej urejena in optimizirana za shranjevanje in hitro pridobivanje podatkov.

Prednosti

Elastisearch je zelo razširljiv. Odlikuje ga prilagodljiva shema in hitro iskanje zapisov z naprednimi možnostmi iskanja, vključno z iskanjem celotnega besedila, predlogi in zapletenimi iskalnimi izrazi.

Ena najbolj zanimivih funkcij iskanja je izviranje. Stemming analizira korensko obliko besede, da poišče ustrezne zapise, tudi kadar se uporablja druga oblika. Na primer, uporabnik, ki išče podatkovno bazo zaposlitve za »plačana dela«, bi našel tudi položaje, označene kot »plačano« in »plačilo«.

Slabosti

Elastisearch se uporablja bolj kot posrednik ali dodatna shramba kot primarna baza podatkov. Ima nizko vzdržljivost in slabo varnost. Ni prirojene avtentikacije ali nadzora dostopa. Elastisearch tudi ne podpira transakcij.

Uporabite iskalnik, kot je Elastisearch, za:

  • Izboljšanje uporabniške izkušnje s hitrejšimi rezultati iskanja
  • Sečnja

Končni premisleki

Nekatere aplikacije se natančno prilegajo prednostim določene vrste zbirke podatkov, vendar se pri večini projektov prekrivajo dve ali več. V teh primerih je koristno preveriti, katere posebne zbirke podatkov v izbranih slogih so dobri kandidati. Ponudniki ponujajo širok spekter funkcij za prilagajanje svoje baze podatkov posameznim standardom. Nekateri od njih lahko pomagajo rešiti negotovost glede dejavnikov, kot so varnost, razširljivost in stroški.

$config[zx-auto] not found$config[zx-overlay] not found