Acasă Finanțe personale Caracteristici comune NoSQL - manechine

Caracteristici comune NoSQL - manechine

Cuprins:

Video: Web Programming - Computer Science for Business Leaders 2016 2024

Video: Web Programming - Computer Science for Business Leaders 2016 2024
Anonim

Cărțile și blogurile NoSQL oferă opinii diferite cu privire la ce este o bază de date NoSQL. Patru caracteristici principale ale NoSQL, prezentate în lista următoare, se aplică majorității bazelor de date NoSQL. Lista compară NoSQL cu sistemul DBMS relațional tradițional:

  • Schema agnostică: O schemă de bază de date este descrierea tuturor datelor și structurilor de date posibile dintr-o bază de date relațională. Cu o bază de date NoSQL, nu este necesară o schemă, oferindu-vă libertatea de a stoca informații fără a face o schemă în sus.

  • Nonrelational: Relațiile dintr-o bază de date stabilesc conexiuni între tabele de date. De exemplu, o listă a detaliilor tranzacției poate fi conectată la o listă separată a detaliilor de livrare. Cu o bază de date NoSQL, aceste informații sunt stocate ca agregate - o singură înregistrare cu totul despre tranzacție, inclusiv adresa de livrare.

  • Hardware de mărfuri: Unele baze de date sunt proiectate să funcționeze cel mai bine (sau numai) cu hardware specializat de stocare și procesare. Cu o bază de date NoSQL, pot fi utilizate servere ieftine off-the-shelf. Adăugarea mai multor astfel de servere ieftine permite bazelor de date NoSQL să scadă pentru a gestiona mai multe date.

  • Foarte distribuabil: Bazele de date distribuite pot stoca și procesa un set de informații pe mai multe dispozitive. Cu o bază de date NoSQL, un cluster de servere poate fi folosit pentru a ține o singură bază de date unică.

Schema agnostic

Bazele de date NoSQL sunt schema agnostica. Nu aveți obligația de a face o mulțime de lucrări de proiectare înainte de a putea stoca date în baze de date NoSQL. Puteți începe să codificați, să stocați și să preluați date fără să știți cum stochează și funcționează baza internă. (Dacă și când aveți nevoie de funcționalitate avansată, puteți adăuga manual mai multe indexuri sau puteți modifica structurile de stocare a datelor.) Schema agnosticismului poate fi cea mai semnificativă diferență dintre bazele de date relaționale și NoSQL.

Marele beneficiu al unei baze de date agnostice este că timpul de dezvoltare este scurtat. Acest beneficiu crește pe măsură ce treceți prin mai multe versiuni de dezvoltare și trebuie să modificați structurile de date interne din baza de date.

De exemplu, într-un RDBMS tradițional, treceți printr-un proces de reproiectare a schemei. Schema instruiește baza de date cu privire la ce date să aștepte. Modificați datele stocate sau structurile și trebuie să reanalizați baza de date utilizând o schemă modificată. Dacă ați face o schimbare, va trebui să vă petreceți mult timp pentru a decide cum să re-arhitezi datele existente. În bazele de date NoSQL, pur și simplu stocați o structură de date diferită. Nu este nevoie să spui în prealabil baza de date.

Este posibil să fie necesar să modificați în mod corespunzător interogările dvs., poate să adăugați indicele specific specific ocazional (cum ar fi un indice interval întreg pentru a permite mai puține și mai mari decât interogările specifice tipului de date) mult mai puțin dureros decât este cu un RDBMS.

RDBMS a decolat din cauza flexibilității sale și datorită faptului că, prin utilizarea SQL, a grăbit schimbarea unei interogări. Bazele de date NoSQL oferă această flexibilitate pentru schimbarea atât a schemei, cât și a interogării, care este unul din motivele-cheie care vor fi adoptate din ce în ce mai mult în timp.

Chiar și la interogare, este posibil să nu vă faceți griji prea mult despre cunoașterea modificărilor schemelor - luați în considerare un index peste un număr de cont de câmp, unde numărul contului poate fi localizat oriunde într-un document care este stocat în o bază de date NoSQL. Aveți posibilitatea să modificați structura și să mutați unde este stocat numărul contului și dacă elementul are același nume în altă parte a documentului, acesta este încă disponibil pentru interogare fără modificări ale mecanismului de interogare.

Rețineți că nu toate bazele de date NoSQL sunt pe deplin schema agnostică. Unele, cum ar fi HBase, necesită să opriți baza de date pentru a modifica definițiile coloanelor. Sunt încă considerate baze de date NoSQL, deoarece nu toate câmpurile definite (coloane în acest caz) trebuie să fie cunoscute în avans pentru fiecare înregistrare - doar familiile coloanelor.

RDBMS permite ca câmpurile individuale din înregistrări să fie identificate ca valori null . Problema cu un RDBMS este că dimensiunea și performanța datelor stocate sunt afectate negativ atunci când spațiul de stocare este rezervat pentru valori nula doar în cazul în care înregistrarea poate avea, în viitor, o valoare în acea coloană. În Cassandra, pur și simplu nu furnizați datele coloanei respective, care rezolvă problema.

Nonrelational

Sistemele de gestionare a bazelor de date relaționale au fost modalitatea dominantă de a stoca datele de aplicație pentru mai mult de 20 de ani. O mare parte a muncii matematice a fost făcută pentru a dovedi teoria care le stă la baza.

Această bază descrie modul în care tabelele se raportează unul la celălalt. Un singur rând de comandă se poate referi la mai multe rânduri de adresă de livrare, dar fiecare rând de adresă de livrare se referă, de asemenea, la mai multe rânduri de comandă. Aceasta este o relație mai mare - până la - multe relații .

Bazele de date NoSQL nu au acest concept de relații între înregistrările lor. În schimb denormalizează datele. Aceasta înseamnă că într-o bază de date NoSQL ar avea o structură de comandă cu adresa de livrare încorporată. Aceasta înseamnă că adresa de livrare este duplicată în fiecare rând al ordinului care o folosește. Această abordare are avantajul de a nu necesita un timp complex de interogare care se unește între mai multe structuri de date (tabele), deși.

Bazele de date NoSQL nu stochează informații despre modul în care înregistrările individuale se referă la alte înregistrări din baza de date, ceea ce poate părea o limitare. Cu toate acestea, bazele de date NoSQL sunt mai flexibile în ceea ce privește structurile de date pe care le puteți stoca.

Luați în considerare o comandă de la un comerciant online. Comanda poate include codurile produselor, cantitățile, prețurile articolelor și descrierile articolelor, precum și informații despre comanda persoanei, cum ar fi adresa de livrare și informațiile de plată.

În loc să inserați zece rânduri într-o varietate de tabele dintr-o bază de date relațională, puteți să stocați o singură structură pentru toate informațiile despre această comandă - să zicem ca un document JSON sau XML.

În teoria bazelor de date relaționale, obiectivul este să normalizeze datele dvs. (adică să organizați câmpurile și tabelele pentru a elimina datele duplicate). În bazele de date NoSQL - în special bazele de date Documente sau Agregate - deseori denormalizați în mod deliberat date, stocând mai multe date de mai multe ori.

Puteți stoca, de exemplu, "Adresa de livrare a clienților" de mai multe ori în multe comenzi pe care un client le face în timp, în loc să le stocheze o singură dată și să se refere la acestea în mai multe comenzi. Acest lucru necesită un spațiu suplimentar de stocare și o mică preconcepție în gestionarea aplicației. Deci, de ce?

Există două avantaje pentru stocarea datelor de mai multe ori:

  • Depozitare și recuperare ușoară: Doar salvați și obțineți o singură înregistrare.

  • Viteza interogării: În bazele de date relaționale, îmbinați informații și adăugați constrângeri între tabele la momentul interogării. Acest lucru poate necesita ca motorul bazei de date să evalueze mai multe tabele. Cu cât aveți mai multe constrângeri de interogare pe tabele diferite, cu atât reduceți mai mult viteza de interogare. (De aceea, un RDBMS are precomputări.) Într-o bază de date NoSQL, toate informațiile de care aveți nevoie pentru a evalua interogarea dvs. sunt într-un singur document. Prin urmare, puteți determina rapid lista documentelor potrivite.

Vizualizările relaționale și denormalizările NoSQL reprezintă abordări diferite ale problemei de transmitere a datelor între înregistrări. În NoSQL, poate fi necesar să mențineți mai multe denormalizări reprezentând vizualizări diferite ale acelorași date. Această abordare mărește costul stocării, dar vă oferă mult mai mult timp de interogare.

Având în vedere costurile de stocare tot mai reduse și creșterea vitezei de dezvoltare și de interogare, datele denormalizate (aka vizualizări materializate ) nu reprezintă un motiv criminal pentru a reduce soluțiile NoSQL. Este doar o modalitate diferită de abordare a aceleiași probleme, cu propriile sale avantaje și dezavantaje.

În multe baze de date NoSQL, NoSQL este foarte ușor de distribuit și folosește hardware

În multe baze de date NoSQL, o decizie cheie de proiectare este de a folosi mai multe computere pentru a stoca date pentru o singură bază de date, mai degrabă decât să aibă întreaga bază de date pe un singur server.

Este dificil să stocați date pe mai multe mașini și să le permiteți să fie interogate. Trebuie să trimiteți interogarea tuturor serverelor și să așteptați un răspuns. Sperăm că ați instalat mașinile astfel încât acestea să fie destul de repede să vorbească unul cu celălalt pentru a rezolva întrebările distribuite!

Principalul avantaj al acestei abordări este în cazul seturilor de date foarte mari, deoarece pentru unele cerințe de stocare, chiar cel mai mare server singur disponibil nu a putut să stocheze sau să proceseze toate datele de care aveți nevoie. Luați în considerare toate mesajele de pe Twitter și Facebook. Aveți nevoie de un mecanism distribuit pentru a gestiona în mod eficient toate aceste date, chiar dacă este vorba în mare parte despre ceea ce au avut oamenii pentru micul dejun și videoclipuri de dragoste cu pisici.

Un avantaj al distribuției bazei dvs. de date este că puteți utiliza servere mai ieftine, numite servere de mărfuri .Chiar și pentru seturile de date mai mici, ar putea fi mai ieftin să cumperi trei servere de mărfuri în loc de un singur server cu o putere mai mare.

Un alt avantaj cheie este faptul că adăugarea unei disponibilități ridicate este mai ușoară; sunteți deja la jumătatea distanței prin distribuirea datelor. Dacă replicați datele dvs. o dată sau de două ori pe alte servere din cluster, datele dvs. vor rămâne accesibile, chiar dacă unul dintre servere se blochează, arde și dies.

Nu toate bazele de date open-source acceptă disponibilitate ridicată dacă nu cumpărați versiunea bazată pe suportul de date de la compania care o dezvoltă.

O excepție de la regula extrem de distribuită este aceea a bazelor de date grafice. Pentru a răspunde într-un mod eficient în timp util anumitor interogări de grafic, datele trebuie să fie stocate pe un singur server. Nimeni nu a rezolvat încă această problemă.

Luați în considerare cu atenție dacă aveți nevoie de un magazin triplu sau un magazin de grafic. În general, magazinele triple sunt distribuite, în timp ce magazinele grafice nu sunt. Care dintre ele trebuie să depindă de întrebările pe care trebuie să le sprijiniți.

Caracteristici comune NoSQL - manechine

Alegerea editorilor

Evaluarea Vizualizărilor de date - dummies

Evaluarea Vizualizărilor de date - dummies

Vizualizările de date pot fi foarte colorate și impresionante. Dar amintiți-vă că cheia pentru crearea unor vizualizări eficiente de date nu depinde de faptul dacă este interesantă, ci mai degrabă de faptul dacă descoperă problemele reale de afaceri care trebuie abordate. O foaie de lucru vă ajută să creați propriile vizualizări de date sau să evaluați creațiile altora. Aici ...

Determinarea programului care funcționează cel mai bine pentru nevoile tale informatice

Determinarea programului care funcționează cel mai bine pentru nevoile tale informatice

Să lucreze mai bine decât celălalt. În timp, veți dezvolta un sentiment dacă Illustrator sau Photoshop se potrivesc mai bine pentru diverse sarcini. Până atunci, iată un exemplu despre modul în care fiecare program gestionează diferite elemente ale lucrării de design grafic. Graphing Photoshop nu este un program de grafic. Tu ...

Infografice nevergreen: Închirierea obiectelor Build - dummies

Infografice nevergreen: Închirierea obiectelor Build - dummies

Infografics evergreen nu sunt legate de niciun eveniment sau persoană în știri . Ele nu au o componentă sezonieră și nu sunt legate de ceva în timp util. O infographic despre cum se fac CD-urile se va aplica pentru că este vorba de muzică, dar nu este specifică nici unui artist sau gen. Cu infografiile veșnic verzi, ignorați complet evenimentele curente și explorați ideile ...

Alegerea editorilor

Utilizați Zoom în Adobe Photoshop CS5 - manechine

Utilizați Zoom în Adobe Photoshop CS5 - manechine

Adobe Creative Suite 5 oferă scurtături pentru Zooming în Photoshop. Imaginile care arată bine la un nivel de zoom pot părea extrem de proaste la altul. Veți mări și micșora destul de des în timp ce lucrați la imagini în Photoshop. Puteți găsi opțiuni de meniu pentru zoom în meniul Vizualizare; o modalitate mai rapidă de a mări este ...

Text în Photoshop CC - dummies

Text în Photoshop CC - dummies

Când editați o imagine cu text în Photoshop CC, puteți schimba linia care fluxul dvs. de tip fie folosind funcția Warp Text sau tastând pe o cale. Tipul de deformare utilizează forme predefinite la care se formează tipul dvs. (și poate fi utilizat atât cu tipul de punct, cât și cu paragraful) și tastând ...

Alegerea editorilor

Cum se adaugă Biblioteca RegEx în C ++ - dummies

Cum se adaugă Biblioteca RegEx în C ++ - dummies

Cea mai mare parte a bibliotecii Boost funcționează bine adăugând la codul aplicației. Cu toate acestea, câteva componente, cum ar fi RegEx, necesită o bibliotecă. Înainte de a putea folosi o bibliotecă, trebuie să o construiți. După ce ați construit biblioteca, trebuie să o adăugați în aplicație. Există două tehnici de adăugare a ...

Cum Heap Works în C ++ - dummies

Cum Heap Works în C ++ - dummies

Halda este un bloc amorf de memorie pe care programul C ++ îl poate accesa după cum este necesar. Aflați de ce există și cum se utilizează. Așa cum este posibil să treci un pointer la o funcție, este posibil ca o funcție să returneze un pointer. O funcție care returnează adresa ...

Cum să evitați codul de injectare în C ++ - dummies

Cum să evitați codul de injectare în C ++ - dummies

Prima regulă de evitare a codului injectat în programele C ++ , permiterea prelucrării datelor de către un interpret de limbă cu scop general. O eroare obișnuită cu SQL-injectarea este că programul acceptă intrarea utilizatorului ca și cum ar fi fost întotdeauna acceptabilă și îl inserează într-o interogare SQL pe care o trimite apoi la ...