Kako odabrati pravu vrstu baze podataka za svoje poduzeće

Postoje stotine tehnološki teških pregleda baza podataka, ali oni ne daju uvijek jasne smjernice za prvi korak u odabiru baze podataka: odabir najboljeg općeg tipa za određenu aplikaciju. Sve baze podataka nisu jednake. Svaka ima specifične snage i slabosti. Iako je istina da postoje zaobilaženja kako bi omiljena baza podataka funkcionirala za većinu projekata, upotreba tih trikova dodaje nepotrebnu složenost.

Prije nego što razmotrite određenu bazu podataka, odvojite malo vremena da razmislite o tome koja bi vrsta najbolje podržala projekt. Pitanje ide dublje od "SQL nasuprot NoSQL-u." U nastavku pročitajte pregled najčešćih tipova baza podataka, relativne zasluge svake od njih i kako odrediti koja najbolje odgovara.

Relacijski sustavi za upravljanje bazama podataka (Oracle, MySQL, MS Server, PostgreSQL)

Relacijske baze podataka razvijene su 1970-ih kako bi se podnijele sve veće poplave podataka koji se proizvode. Imaju čvrstu temeljnu teoriju i utjecali su na gotovo svaki sustav baza podataka koji se danas koristi.

Relacijske baze podataka pohranjuju skupove podataka kao „relacije“: tablice s retcima i stupcima u kojima su svi podaci pohranjeni kao vrijednost određene ćelije. Podaci u RDBMS-u upravljaju se pomoću SQL-a. Iako postoje različite implementacije, SQL je standardiziran i pruža razinu predvidljivosti i korisnosti.

Nakon što je rana poplava dobavljača pokušala iskoristiti popularnost sustava s ne baš relacijskim proizvodima, kreator EF Codd iznio je niz pravila koja moraju poštivati ​​svi sustavi upravljanja relacijskim bazama podataka. Coddovih 12 pravila vrte se oko nametanja strogih protokola interne strukture, osiguravajući da pretrage pouzdano vraćaju tražene podatke i sprječavanja strukturnih promjena (barem od strane korisnika). Okvir je osigurao da relacijske baze podataka budu dosljedne i pouzdane do danas.

Snage

Relacijske baze podataka izvrsne su u rukovanju visoko strukturiranim podacima i pružaju podršku za ACID (atomskost, dosljednost, izoliranost i trajnost) transakcija. Podaci se lako pohranjuju i dohvaćaju pomoću SQL upita. Struktura se može brzo povećati jer je dodavanje podataka bez mijenjanja postojećih podataka jednostavno.

Stvaranje ograničenja onoga što određene vrste korisnika mogu pristupiti ili izmijeniti ugrađeno je u strukturu RDBMS-a. Zbog toga su relacijske baze podataka dobro prilagođene aplikacijama kojima je potreban stupnjeviti pristup. Na primjer, kupci su mogli pregledavati svoje račune, dok su agenti mogli pregledavati i unositi potrebne promjene.

Slabosti

Najveća slabost relacijskih baza podataka ogledalo je njihove najveće snage. Koliko god bili dobri u rukovanju strukturiranim podacima, teško se snalaze s nestrukturiranim podacima. Predstavljanje entiteta iz stvarnog svijeta u kontekstu je teško u granicama RDBMS-a. "Izrezani" podaci moraju se ponovno sastaviti iz tablica u nešto čitljivije i na brzinu se može negativno utjecati. Ni fiksna shema ne reagira dobro na promjene.

Trošak se uzima u obzir kod relacijskih baza podataka. Obično su skuplje za postavljanje i rast. Horizontalno skaliranje ili skaliranje dodavanjem više poslužitelja obično je brže i ekonomičnije od vertikalnog, što uključuje dodavanje više resursa poslužitelju. Međutim, struktura relacijskih baza podataka komplicira proces. Oštrenje (gdje su podaci vodoravno podijeljeni i raspoređeni u zbirci strojeva) potrebno je za proširivanje relacijske baze podataka. Izoštravanje relacijskih baza podataka uz održavanje usklađenosti s ACID-om može biti izazov.

Koristite relacijsku bazu podataka za:

  • Situacije u kojima je cjelovitost podataka apsolutno najvažnija (tj. Za financijske aplikacije, obranu i sigurnost i privatne zdravstvene podatke)
  • Visoko strukturirani podaci
  • Automatizacija internih procesa

Pohrana dokumenata (MongoDB, Couchbase)

Pohrana dokumenata je nerelacijska baza podataka koja pohranjuje podatke u JSON, BSON ili XML dokumente. Sadrže fleksibilnu shemu. Za razliku od SQL baza podataka, gdje korisnici moraju deklarirati shemu tablice prije umetanja podataka, spremišta dokumenata ne provode strukturu dokumenata. Dokumenti mogu sadržavati sve željene podatke. Imaju parove ključ / vrijednost, ali također ugrađuju metapodatke atributa kako bi olakšali upite.

Snage

Pohrane dokumenata vrlo su fleksibilne. Dobro obrađuju polustrukturirane i nestrukturirane podatke. Korisnici tijekom postavljanja ne trebaju znati koje će se vrste podataka pohranjivati, pa je ovo dobar izbor kada unaprijed nije jasno kakve će vrste podataka dolaziti.

Korisnici mogu stvoriti željenu strukturu u određenom dokumentu bez utjecaja na sve dokumente. Shema se može mijenjati bez uzrokovanja zastoja, što dovodi do velike dostupnosti. Brzina pisanja je također općenito velika.

Osim fleksibilnosti, programeri vole trgovine s dokumentima jer ih je jednostavno vodoravno prilagoditi. Oštrenje potrebno za vodoravno skaliranje puno je intuitivnije nego kod relacijskih baza podataka, tako da se spremišta dokumenata brzo i učinkovito smanjuju.

Slabosti

Baze podataka dokumenata žrtvuju usklađenost s kiselinom radi fleksibilnosti. Također, iako se upit može izvršiti u dokumentu, to nije moguće u svim dokumentima.

Koristite bazu podataka dokumenata za:

  • Nestrukturirani ili polustrukturirani podaci
  • Upravljanje sadržajem
  • Dubinska analiza podataka
  • Brza izrada prototipova

Pohrana ključa i vrijednosti (Redis, Memcached)

Spremište ključ / vrijednost vrsta je nerelacijske baze podataka u kojoj je svaka vrijednost povezana s određenim ključem. Poznat je i kao asocijativni niz.

"Ključ" je jedinstveni identifikator povezan samo s vrijednošću. Tipke mogu biti sve što dopušta DBMS. Na primjer, u Redisu tipke man mogu biti bilo koje binarne sekvence do 512 MB.

“Vrijednosti” su pohranjene kao blobs i ne trebaju unaprijed definiranu shemu. Mogu imati gotovo bilo koji oblik: brojevi, nizovi, brojači, JSON, XML, HTML, PHP, binarne datoteke, slike, kratki videozapisi, popisi, pa čak i drugi par ključ / vrijednost uokviren u objekt. Neki DBMS-ovi omogućuju specificiranje vrste podataka, ali to nije obvezno.

Snage

Ovaj stil baze podataka ima puno pozitivnih strana. Nevjerojatno je fleksibilan i može lako rukovati vrlo širokim nizom vrsta podataka. Tipke se koriste za prelazak izravno na vrijednost bez pretraživanja ili spajanja indeksa, tako da su performanse visoke. Prenosivost je još jedna prednost: pohrane ključeva i vrijednosti mogu se premještati iz jednog sustava u drugi bez prepisivanja koda. Napokon, vrlo su vodoravno skalabilni i imaju sveukupno niže operativne troškove.

Slabosti

Fleksibilnost ima svoju cijenu. Nemoguće je upitati vrijednosti, jer su pohranjene kao blob i mogu se vratiti samo kao takve. To otežava izvještavanje ili uređivanje dijelova vrijednosti. Ni sve objekte nije lako modelirati kao parove ključ / vrijednost.

Upotrijebite spremište ključ / vrijednost za:

  • Preporuke
  • Korisnički profili i postavke
  • Nestrukturirani podaci poput recenzija proizvoda ili komentara na blogu
  • Upravljanje sjednicama u opsegu
  • Podaci kojima će se često pristupati, ali se često ažuriraju

Trgovina sa širokim stupcima (Cassandra, HBase)

Pohrane širokih stupaca, koje se nazivaju i spremišta stupaca ili proširive pohrane zapisa, dinamičke su nerelacijske baze podataka orijentirane na stupce. Ponekad se na njih gleda kao na tip spremišta ključ / vrijednost, ali imaju i atribute tradicionalnih relacijskih baza podataka.

Trgovine sa širokim stupcima koriste koncept prostora tipki umjesto shema. Prostor ključeva obuhvaća obitelji stupaca (slične tablicama, ali fleksibilnije strukture), od kojih svaka sadrži više redaka s različitim stupcima. Svaki redak ne mora imati isti broj ili vrstu stupca. Vremenska oznaka određuje najnoviju verziju podataka.

Snage

Ova vrsta baze podataka ima neke prednosti i relacijskih i nerelacijskih baza podataka. Bolje se bavi i strukturiranim i polustrukturiranim podacima nego ostalim nerelacijskim bazama podataka i lakše ga je ažurirati. U usporedbi s relacijskim bazama podataka, vodoravno je skalabilna i brža je.

Stupne baze podataka komprimiraju se bolje od sustava koji se temelje na redovima. Također, velike skupove podataka jednostavno je istražiti. Na primjer, trgovine s širokim stupcima posebno su dobre u upitima za agregiranje.

Slabosti

Zapisi su skupi u malim. Iako je ažuriranje lako skupno, prijenos i ažuriranje pojedinačnih zapisa teško je. Osim toga, pohrane širokog stupca sporije su od relacijskih baza podataka prilikom rukovanja transakcijama.

Upotrijebite trgovinu sa širokim stupcima za:

  • Analitika velikih podataka gdje je brzina važna
  • Skladištenje podataka na velikim podacima
  • Projekti velikih razmjera (ovaj stil baze podataka nije dobar alat za prosječne transakcijske aplikacije)

Tražilica (Elasticsearch)

Možda se čini čudnim uključivanje tražilica u članak o vrstama baza podataka. Međutim, Elasticsearch bilježi povećanu popularnost u ovoj sferi dok programeri traže inovativne načine za smanjenje zaostajanja u pretraživanju. Elastisearch je nerelacijsko rješenje za pohranu i pronalaženje podataka temeljeno na dokumentima posebno uređeno i optimizirano za pohranu i brzo preuzimanje podataka.

Snage

Elastisearch je vrlo skalabilan. Sadrži fleksibilnu shemu i brzo pronalaženje zapisa, s naprednim opcijama pretraživanja, uključujući pretraživanje cjelovitog teksta, prijedloge i složene izraze pretraživanja.

Jedna od najzanimljivijih značajki pretraživanja je korijen. Stemming analizira korijenski oblik riječi kako bi pronašao relevantne zapise čak i kada se koristi drugi oblik. Na primjer, korisnik koji pretražuje bazu podataka o zaposlenju za "plaćanje poslova", također će pronaći pozicije označene kao "plaćeno" i "platiti".

Slabosti

Elastisearch se više koristi kao posrednik ili dopunska trgovina nego kao primarna baza podataka. Ima malu trajnost i slabu sigurnost. Ne postoji urođena provjera autentičnosti ili kontrola pristupa. Također, Elastisearch ne podržava transakcije.

Upotrijebite tražilicu poput Elastisearch za:

  • Poboljšavanje korisničkog iskustva bržim rezultatima pretraživanja
  • Sječa drva

Završna razmatranja

Neke se aplikacije izvrsno uklapaju u snagu jednog određenog tipa baze podataka, ali za većinu projekata postoji preklapanje između dvije ili više. U tim slučajevima može biti korisno pogledati koje su određene baze podataka u spornim stilovima dobri kandidati. Dobavljači nude širok spektar značajki za prilagođavanje svoje baze podataka pojedinačnim standardima. Neki od njih mogu pomoći u rješavanju neizvjesnosti zbog čimbenika poput sigurnosti, skalabilnosti i troškova.