Movatterモバイル変換


[0]ホーム

URL:


Shko te përmbajtja
Wikipediaenciklopedia e lirë
Kërko

NoSQL

Nga Wikipedia, enciklopedia e lirë
Shpjegim
Shpjegim
Ky artikull është një përkthim i përafërt nga një gjuhë tjetër. Përkthimi është prodhuar automatikisht dhe mund të mos jetë i saktë. Ju lutemindihmoni në përmirësimin e këtij përkthimi.

NoSQL (fillimisht duke iu referuar "jo-SQL " ose "jo-relacionale") është një qasje në projektimin ebazës së të dhënave që fokusohet në ofrimin e një mekanizmi përruajtjen dhe marrjen e të dhënave që jane modeluar në menyra të tjera perveq marrëdhënieve tabelare të përdorura nëbazat e të dhënave relacionale .Në vend të strukturës tipike tabelare të një baze të dhënash relacionale, bazat e të dhënave NoSQL ruajnë të dhënat brenda një strukture të vetme të dhënash. Për shkak se ky dizajn i bazës së të dhënave jo-relacionale nuk kërkon një skemë, ai ofron shkallëzim të shpejtë për të menaxhuar grupe të mëdha dhe zakonisht të pastrukturuara të të dhënave.[2]Sistemet NoSQL quhen gjithashtu nganjëherë"Jo vetëm SQL" për të theksuar se ato mund të mbështesin gjuhë kerkimi të ngjashme meSQL ose të funksionojnë paralelisht me bazat e të dhënave SQL në arkitektura poliglote me qëndrueshmëri.[3][4]

Bazat e të dhënave jo-relacionale ekzistojnë që nga fundi i viteve 1960, por termi "NoSQL" u krijua vetëm në fillim të viteve 2000, [5] i nxitur nga nevojat në rritje të kompanive të Web 2.0. [1][2] Aktualisht, bazat e të dhënave NoSQL përdoren gjithnjë e më shpesh në menaxhimin e të dhënave të mëdha dhe në aplikacione në internet me përpunim në kohë reale. [3]

Motivimet për këtë qasje përfshijnë thjeshtësinë edizajnit, shkallëzimin më të thjeshtë "horizontal" nëgrupe serveresh (një sfidë për bazat e të dhënave relacionale),[1] kontroll më të mirë mbi disponueshmërinë dhe adresimin e mospërputhjeve të impedancës objekt-relacionale. [2]Strukturat e të dhënave të përdorura nga bazat e të dhënave NoSQL (si çiftet çelës-vlerë, kolonat e gjera, grafet ose dokumentet) janë të ndryshme nga ato që përdoren zakonisht në bazat e të dhënave relacionale, duke i bërë disa operacione më të shpejta në NoSQL. Përshtatshmëria specifike e një baze të dhënash NoSQL varet nga natyra e problemit që duhet zgjidhur. Për më tepër, strukturat e të dhënave të përdorura në bazat e të dhënave NoSQL shpesh konsiderohen si "më fleksibël" sesa tabelat tradicionale të bazave të të dhënave relacionale. [3]

Shumë baza të të dhënave NoSQL bëjnë kompromis në qëndrueshmëri (sipas teoremës CAP) në favor të disponueshmërisë, tolerancës ndaj ndarjeve dhe shpejtësisë. Pengesat për adoptimin më të gjerë të bazave të të dhënave NoSQL përfshijnë përdorimin e gjuhëve të pyetjeve të nivelit të ulët (në krahasim me SQL, për shembull), mungesën e aftësisë për të kryer bashkime ad hoc midis tabelave, mungesën e ndërfaqeve të standardizuara, si dhe investimet e mëdha të mëparshme në bazat ekzistuese të të dhënave relacionale. [1] .[2] Shumicës së bazave të të dhënave NoSQL u mungojnë transaksionet e plota ACID, megjithatë disa, siMongoDB i kanë integruar ato si pjesë thelbësore të modeleve të tyre. [2]

Në vend të kësaj, shumica e bazave të të dhënave NoSQL ofrojnë një koncept të " konsistencës eventuale ", në të cilin ndryshimet e bazës së të dhënave përhapen në të gjitha nyjet "përfundimisht" (zakonisht brenda milisekondave), kështu që pyetjet për të dhënat mund të mos kthejnë të dhëna të përditësuara menjëherë ose mund të rezultojnë në leximin e të dhënave që janë jo i saktë, një problem i njohur silexim i ndenjur .[3] Për më tepër, disa sisteme NoSQL mund të shfaqin shkrime të humbura dhe forma të tjera të humbjes së të dhënave . [2] Disa sisteme NoSQL ofrojnë koncepte të tilla si regjistrimi paraprak për të shmangur humbjen e të dhënave. [3] Për përpunimin e transaksioneve të shpërndara nëpër baza të të dhënave të shumta, konsistenca e të dhënave është një sfidë edhe më e madhe që është e vështirë si për NoSQL ashtu edhe për bazat e të dhënave relacionale. Bazat e të dhënave relacionale "nuk lejojnë kufizimet e integritetit të referencës të përfshijnë bazat e të dhënave". [4] Pak sisteme ruajnë si transaksionet ACID ashtu edhe standardet X/Open XA për përpunimin e transaksioneve të shpërndara . [5] Bazat e të dhënave relacionale ndërvepruese ndajnë teknikat e analizës së rele konformacionale si një veçori të përbashkët. [6] Kufizimet brenda mjedisit të ndërfaqes janë kapërcyer duke përdorur protokollet e virtualizimit semantik, të tilla që shërbimet NoSQL janë të aksesueshme për shumicën esistemeve operative .[4]

Historia

[Redakto |Redakto nëpërmjet kodit]

TermiNoSQL u përdor për herë të parë nga Carlo Strozzi në vitin 1998 për të emërtuar bazën e tij të të dhënave të lehta relacionaleStrozzi NoSQL, me burim të hapur, e cila nuk ekspozonte ndërfaqen standarde tëgjuhës së strukturuar të pyetjeve (SQL), por mbetej ende relacionale.[5] Baza e tij e të dhënave NoSQLRDBMS ndryshon nga koncepti i përgjithshëm i bazave të të dhënave NoSQL, që u zhvillua rreth vitit 2009. Strozzi sugjeron se, duke qenë se lëvizja aktuale NoSQL "largohet nga modeli relacional, ajo duhet të quhej më saktë 'NoREL'", [2] duke iu referuar "jo-relacionale".

Johan Oskarsson, në atë kohë zhvillues në Last.fm, e rifuqizoi terminNoSQL në fillim të vitit 2009, kur organizoi një ngjarje për të diskutuar mbi "bazat e të dhënave të shpërndarame burim të hapur , jo-relacionale ".[6] Ky emër u përdor për të përshkruar shfaqjen e një numri gjithnjë në rritje të bazave të të dhënave jo-relacionale dhe të shpërndara, duke përfshirë klonet me burim të hapur tëBigtable dheMapReduce të Google, si dheDynamoDB të Amazon.

Llojet dhe shembujt

[Redakto |Redakto nëpërmjet kodit]

Ka mënyra të ndryshme për të radhitur bazat e të dhënave NoSQL, me kategori dhe nënkategori të ndryshme, disa prej të cilave mund te jene te njejta. Ajo që vijon është një klasifikim jo shterues sipas modelit të të dhënave[7]

Dyqan me vlerë-çelës

[Redakto |Redakto nëpërmjet kodit]

Dyqanetkryesore-vlerë (KV) përdoringrupin shoqërues (i quajtur gjithashtu një hartë ose fjalor) si modelin e tyre themelor të të dhënave. Në këtë model, të dhënat paraqiten si një koleksion çifteshçelës-vlerë, ku çdo çelës i mundshëm shfaqet maksimumi një herë në koleksion. [1][2]

Modeli ivlerës-kyç është një nga modelet më të thjeshta të të dhënave jo-relacionale, dhe modelet më të pasura të të dhënave shpesh zbatojnë këtë model si një zgjerim të tij. Modeliçelës-vlerë mund të zgjerohet në një model të renditur në mënyrë diskrete që ruan çelësat në rend leksikografik. Ky zgjerim është i fuqishëm nga pikëpamja llogaritëse, pasi mund të merret në mënyrë efikase vargje selektive të çelësave. [1].[8]

Dyqanet mevlerë-kyç mund të përdorin modele konsistence që variojnë ngaqëndrueshmëria eventuale deri teserializimi. Disa baza të të dhënave mbështesin renditjen e çelësave. Ka implementime të ndryshme harduerike dhe disa përdorues ruajnë të dhëna nëmemorie (RAM), ndërsa të tjerë nëdisqet e gjendjes së ngurtë (SSD) osedisqe rrotulluese (njëkohësisht të njohura sihard disk drive (HDD)).

Koncepti qendror i një dyqanidokumentesh është ai i një "dokumenti". Ndërsa detajet e këtij përkufizimi ndryshojnë midis bazave të të dhënave të orientuara nga dokumenti, të gjitha ato supozojnë se dokumentet përmbledhin dhe kodojnë të dhënat (ose informacionin) në disa formate ose kodime standarde. Kodimet në përdorim përfshijnëXML,YAML dheJSON dhe formabinare siBSON . Dokumentet adresohen në bazën e të dhënave nëpërmjet një çelësi unik që përfaqëson atë dokument. Një karakteristikë tjetër përcaktuese e një baze të dhënash të orientuar nga dokumenti është njëAPI ose një gjuhë pyetjesh për të marrë dokumente bazuar në përmbajtjen e tyre.

Implementime të ndryshme ofrojnë mënyra të ndryshme për të organizuar dhe/grupuar dokumentet:

  • Koleksionet
  • Etiketat
  • Meta të dhëna jo të dukshme
  • Hierarkitë e drejtorive

Në krahasim me bazat e të dhënave relacionale,koleksionet mund të krahasohen metabelat, ndërsadokumentet meregjistrimet. Megjithatë, ato janë të ndryshme – çdo rekord në një tabelë ka të njëjtën strukturë fushash, ndërsa dokumentet në një koleksion mund të kenë fusha të ndryshme nga njëra-tjetra.

Bazat e të dhënave të grafikut janë të dizajnuara për të ruajtur të dhëna, ku marrëdhëniet midis elementëve përfaqësohen si një grafik i lidhur me një numër të kufizuar marrëdhëniesh. Shembuj përfshijnë marrëdhëniet sociale, lidhjet e transportit publik, hartat rrugore, topologjitë e rrjetit, etj.

Bazat e të dhënave të grafikut dhe gjuha e tyre e pyetjeve

Performanca

[Redakto |Redakto nëpërmjet kodit]

Performanca e bazave të të dhënave NoSQL zakonisht vlerësohet duke përdorur metrikën exhiros, e cila matet si operacione për sekondë. Vlerësimi i performancës duhet të marrë parasysh standardet e duhura, siç janë konfigurimet e prodhimit, parametrat e bazave të të dhënave, vëllimi i parashikuar i të dhënave dhe ngarkesat e njëkohshme të punës së përdoruesit.

Ben Scofield vlerësoi kategori të ndryshme të bazave të të dhënave NoSQL si në vijim: [1]

Modeli i të dhënavePerformancaShkallueshmëriaFleksibilitetiKompleksitetiIntegriteti i të dhënaveFunksionaliteti
Dyqan me vlerë-çelëslartëlartëlartëasnjëtë ulëtavariabël (asnjë)
Dyqan i orientuar nga kolonalartëlartëi moderuartë ulëtatë ulëtaminimale
Dyqan i orientuar drejt dokumentevelartëe ndryshueshme (e lartë)lartëtë ulëtatë ulëtae ndryshueshme (e ulët)
Baza e të dhënave grafikee ndryshueshmee ndryshueshmelartëlartëme mjekësi të ulëtteoria e grafikut
Baza e të dhënave relacionalee ndryshueshmee ndryshueshmetë ulëtai moderuarlartëalgjebër relacionale

Krahasimet eperformancës dheshkallëzueshmërisë zakonisht kryhen duke përdorur standardinYCSB.

Trajtimi i të dhënave relacionale

[Redakto |Redakto nëpërmjet kodit]

Pasi shumica e bazave të të dhënave NoSQL nuk mbështesin bashkimet në pyetje, skema e bazës së të dhënave duhet të dizajnohet ndryshe. Ekzistojnë tre teknika kryesore për trajtimin e të dhënave relacionale në një bazë të dhënash NoSQL. (Shih tabelën përBashkimet dheMbështetjen ACID për bazat e të dhënave NoSQL që mbështesin bashkimet.)

Në vend që të merrni të gjitha të dhënat me një pyetje, është e zakonshme të bëhen disa pyetje për të marrë të dhënat e dëshiruara. Pyetjet NoSQL janë shpesh më të shpejta se kërkesat tradicionale SQL, kështu që kostoja e pyetjeve shtesë mund të jetë e pranueshme. Nëse do të ishte i nevojshëm një numër i tepërt i pyetjeve, një nga dy qasjet e tjera është më e përshtatshme.

Caching, replikim dhe të dhëna jo të normalizuara

[Redakto |Redakto nëpërmjet kodit]

Në vend që të merrni të gjitha të dhënat me një pyetje, është e zakonshme të bëhen disa pyetje për të marrë të dhënat e dëshiruara. Pyetjet NoSQL janë shpesh më të shpejta se kërkesat tradicionale SQL, kështu që kostoja e pyetjeve shtesë mund të jetë e pranueshme. Nëse do të ishte i nevojshëm një numër i tepërt i pyetjeve, një nga dy qasjet e tjera është më e përshtatshme.

Mbledhja e të dhënave

[Redakto |Redakto nëpërmjet kodit]

Me bazat e të dhënave të dokumenteve siMongoDB, është e zakonshme të ruani më shumë të dhëna në një numër më të vogël koleksionesh. Për shembull, në një aplikacion blogimi, mund të zgjidhet që komentet të ruhen brenda dokumentit të postimit të blogut, në mënyrë që me një rikthim të vetëm të merren të gjitha komentet. Kështu, në këtë qasje, një dokument përmban të gjitha të dhënat e nevojshme për një detyrë specifike

ACID dhe bashkohuni me mbështetjen

[Redakto |Redakto nëpërmjet kodit]

Një bazë të dhënash mund të etiketohet si mbështetëse përACID (Atomicitet, Konsistenca, Izolimi, Qëndrueshmëria) ose operacione të bashkuara nëse dokumentacioni i saj e bën këtë pohim. Megjithatë, kjo nuk do të thotë që kjo mbështetje është e njëjtë si në shumicën e bazave të të dhënaveSQL, ku këto veçori janë më të forta dhe të garantuara në mënyrë rigoroze.

Optimizimi i pyetjeve dhe indeksimi në bazat e të dhënave NoSQL

[Redakto |Redakto nëpërmjet kodit]

Baza të dhënash të ndryshme NoSQL, si DynamoDB,MongoDB,Cassandra, Couchbase, HBase dhe Redis, tregojnë sjellje të ndryshme kur kërkojnë fusha që nuk janë të indeksuara. Shumë prej tyre kryejnë skanime të plota të tabelave ose koleksioneve për këto pyetje, duke aplikuar operacione filtrimi pas marrjes së të dhënave. Megjithatë, bazat moderne të të dhënave NoSQL shpesh përfshijnë funksionalitete të avancuara për të optimizuar performancën e pyetjeve. Për shembull, MongoDB mbështet indekset e përbëra dhe strategjitë e optimizimit të pyetjeve, Cassandra ofron indekse dytësore dhe pamje të materializuara, dhe Redis përdor mekanizma indekse me porosi të përshtatur për raste specifike përdorimi. Sistemet si Elasticsearch përdorin indekse të përmbysura për kërkime efikase të bazuara në tekst, por ato ende mund të kërkojnë skanime të plota për fusha që nuk janë të indeksuara. Kjo sjellje reflekton fokusin e dizajnit të shumë sistemeve NoSQL në shkallëzueshmërinë dhe operacionet efikase të bazuara në çelësa, në vend të kërkimeve të optimizuara për fusha të tjera. Si pasojë, ndërsa këto baza të dhënash janë të shkëlqyera për operacionet themelore CRUD dhe kërkimet e bazuara në çelësa, përshtatshmëria e tyre për pyetje komplekse që përfshijnë bashkime ose filtrim të pa indeksuar ndryshon në varësi të llojit të bazës së të dhënave – dokument, vlerë-çelës, kolonë të gjerë ose grafik – dhe zbatimin specifik.

Shihni gjithashtu

[Redakto |Redakto nëpërmjet kodit]
  • Teorema CAP
  • Krahasimi i sistemeve të menaxhimit të bazës së të dhënave të objekteve
  • Krahasimi i softuerit të strukturuar të ruajtjes
  • C++
  • Shkallueshmëria e bazës së të dhënave
  • Cache e shpërndarë
  • Kërkim i rrafshët
  • Baza e të dhënave MultiValue
  • Baza e të dhënave me shumë modele
  • Bazat e të dhënave skema-agnostike
  • Triplestore
  • Baza e të dhënave vektoriale

Referime

[Redakto |Redakto nëpërmjet kodit]
  1. Leavitt, Neal (2010)."Will NoSQL Databases Live Up to Their Promise?"(PDF).IEEE Computer.43 (2): 12–14.doi:10.1109/MC.2010.58.{{cite journal}}:Mungon ose është bosh parametri|language= (Ndihmë!)
  2. Grolinger, K.; Higashino, W. A.; Tiwari, A.; Capretz, M. A. M. (2013)."Data management in cloud environments: NoSQL and NewSQL data stores"(PDF). Aira, Springer. Marrë më8 janar 2014.{{cite web}}:Mungon ose është bosh parametri|language= (Ndihmë!)
  3. "Jepsen: MongoDB stale reads".Aphyr.com. 2015-04-20. Marrë më2017-03-06.{{cite web}}:Mungon ose është bosh parametri|language= (Ndihmë!)
  4. Lawrence, Integration and virtualization of relational SQL and NoSQL systems including MySQL and MongoDB (2014). "Integration and virtualization of relational SQL and NoSQL systems including MySQL and MongoDB".International Conference on Computational Science and Computational Intelligence 1.{{cite journal}}:Mungon ose është bosh parametri|language= (Ndihmë!)
  5. Lith, Adam; Mattson, Jakob (2010)."Investigating storage solutions for large data: A comparison of well performing and scalable data storage solutions for real time extraction and batch insertion of data"(PDF). Göteborg: Department of Computer Science and Engineering, Chalmers University of Technology. fq. 70. Marrë më12 maj 2011.Carlo Strozzi first used the term NoSQL in 1998 as a name for his open source relational database that did not offer a SQL interface[…]{{cite web}}:Mungon ose është bosh parametri|language= (Ndihmë!)
  6. "NoSQL 2009". Blog.sym-link.com. 12 maj 2009. Arkivuar ngaorigjinali më 16 korrik 2011. Marrë më29 mars 2010.{{cite web}}:Mungon ose është bosh parametri|language= (Ndihmë!)
  7. Strauch, Christof."NoSQL Databases"(PDF). fq. 23–24. Marrë më2017-08-27.{{cite web}}:Mungon ose është bosh parametri|language= (Ndihmë!)
  8. Katsov, Ilya (1 mars 2012)."NoSQL Data Modeling Techniques". Ilya Katsov. Marrë më8 maj 2014.{{cite web}}:Mungon ose është bosh parametri|language= (Ndihmë!)

Lexim të mëtejshëm

[Redakto |Redakto nëpërmjet kodit]

Lidhje të jashtme

[Redakto |Redakto nëpërmjet kodit]
Koncepte
Objekte
SQL
Elemete
Marrë nga "https://sq.wikipedia.org/w/index.php?title=NoSQL&oldid=2739863"
Kategoritë:

[8]ページ先頭

©2009-2026 Movatter.jp