Dokumentuzko datutegi

Dokumentuzko datutegi programa multzo batek osatzen du; programa horiek dokumentuetako datuak edo nolabait egituratutako datuak biltegiratzen, berreskuratzen eta kudeatzen dituzte. Datu-base mota hau NoSQL datu-baseen azpikategoria nagusietako bat da. Datu-base erlazionalak ez bezala, datu-base hauek "Dokumentua" nozio abstraktu baten inguruan diseinatuta daude. Informazioa biltegiratzeko, taula-egitura sinple batean eta dokumentuetan oinarritzen dira. Informazioa erregistroetan biltegiratzen da, eta horietako bakoitzak informazio-unitate autonomo gisa funtzionatzen du.

Dokumentuetako datu-baseen kudeatzaileak ez dira gainerako datu-baseen kudeatzaileak bezalakoak, egokiak baitira egituratu gabeko informaziorako (multimedia, testua...), hau da, eremutan banatu ez dagoen informaziorako. Gainera, programa horiek dokumentu-tratamendu orotan beharrezkoak diren funtzio guztiak dituzte testu-informazioa biltegiratzeko, indexatzeko, kontsultatzeko eta aldatzeko. Batez ere garrantzitsuak dira, informazio asko kudeatzen dutelako homogeneotasun-maila handiarekin, eta horri esker hainbat erabiltzailek partekatzen dutelako. Hauek dira oinarri erlazionalen kudeatzaileekiko alde handienak:

 Erregistroak dokumentuak dira, eta ez fitxak edo taulak.
 Eremuek edo atributuek luzera aldakorra dute, eta ez finkoa.
 Baliteke erregistro batek egiturarik ez izatea, eremu bakar batek osatzen duelako.
 Informazioa libreki berreskuratzeko aukera ematen dute; nahikoa da edukia adieraztea eremua zehaztu beharrik gabe.
 Berreskuratze-abiadura handiagoa.
 Sartutako hitz bakoitza indexatua da eta eremu bakoitzean indizeak eratzen dira.

 Barne ezaugarriak 
Dokumentuzko datutegiak, datu erdiegituratuak administratzeko erabiltzen dira. Egitura finko bati jarraitzen ez dioten datuak dira, egitura ia-ia bere horretan daramatenak. Hala ere, datu horien barruan markatzaileen (etiketen) laguntzarekin, informazioa ordenatu egin daiteke. Egitura argirik ez dagoenez, datu horiek ez dira egokiak datu-base erlazionaletarako, haien informazioa ezin delako tauletan sailkatu.

Datu-base dokumental batek pare sinple bat sortzen du: dokumentu espezifiko bat gako bati esleitzen zaio. XML, JSON edo YAML formatua izan dezakeen dokumentu horretan, informazioa bera aurki daiteke. Datu-baseak eskema espezifikorik behar ez duenez, dokumentu-biltegi batean hainbat dokumentu-mota sar daitezke. Dokumentuetako aldaketek ez dute eraginik datu-basean.

Beste modu batean azalduta, dokumentuetara bideratutako datu-basearen kontzeptu nagusia Dokumentuaren kontzeptua bera da. Dokumentuetara bideratutako datu-basearen inplementazio bakoitza xehetasunetan desberdina den bitartean, oro har, guztiek partekatzen dute dokumentuek datuak edo informazioa formatu estandarren bati jarraiki kapsulatzen eta kodetzen dutela dioen printzipioa. Gaur egun erabiltzen diren kodifikazioen artean XML, YAML eta JSON daude, baita BSON bezalako formatu bitarrak ere. Formaturik ohikoena JSON (Javascript Object Notation) da, SQL baino trinkoagoa eta irakurgarriagoa den lengoaia.

Gorago apiatu den bezala, informazioa erregistroaren ezaugarri guztiak dituzten dokumentuetan biltegiratzen da, eta kontsultak dokumentu horietan oinarrituta egiten dira. Hori dela eta, informazioa tauletan antolatzen duten oinarri erlazionalen eta kontsulten arteko aldea taula horien eremuen (zutabeen) arabera egiten da.

 Egitura 
Dokumentuetara bideratutako datu-base bateko dokumentuak erlaziozko datu-base bateko erregistroen, tuplen edo errenkaden antzekoak dira, baina ez hain zurrunak. Ez dute zertan eskema estandar batera egokitu, eta ez dituzte atal, atributu, gako edo antzeko gauza guztiak eduki behar. Adibidez, dokumentu bat honelakoa izan daiteke:
  {
 izena:Conchi Arratibel Dorronsoro
 Helbidea:Tolosa
 Lanbidea: "Etxekoandre"
 }
Eta beste batek:
  {
 izena:Jesús Lozano Barandiaran
 Helbidea:Donostia
 Seme-alabak:[
 {Izena:"Kristina"},
 {Izena:"Karmele"},
 {Izena:"Yolanda"},
 Emaztea:[
 {Izena:"Conchi},
Dokumentu horiek antzeko informazioren bat dute, eta beste bat desberdina. Erlaziozko datu-base batean ez bezala, non erregistro guztiek atributu berak izan behar dituzten (hutsik gera daitezke), dokumentu batean ez dago 'eremu' hutsik. Hala, informazio berria gehitu daiteke, zer informazio geratzen den kanpoan zehaztu beharrik gabe.

 Funtzionamendua 

 Funtzionamenduan desberdintasunak 
Teorian, dokumentuzko datutegi batek hainbat formatutan gorde ditzake datuak, eskema koherenterik gabe. Praktikan, ordea, datu-basearekin lan egitea errazteko, artxibo-formatu bat erabiltzen da dokumentuetarako, eta egitura finko bat datuetarako. Horrek aukera ematen du, adibidez, datu-baseari egindako kontsultak hobeto prozesatzeko. Oro har, ekintza berak egin daitezke datu-base dokumental batekin eta sistema erlazional batekin: informazioa txertatu, aldatu, ezabatu eta kontsultatu daiteke.

Ekintza horiek egin ahal izateko, dokumentu bakoitzak identifikatzaile bakar bat jasotzen du: gakoa esaten zaio horrri. Identifikatzaile hori karaktere-kate soil batez nahiz haraino daraman ibilbide osoaz osa daiteke. Datuak bilatzen direnean, dokumentuak berak egiaztatzen dira, hau da, ez dira zutabe guztiak zeharkatzen datu-basean datu horien bila, baizik eta dokumentu berberetatik ateratzen dira.      

 Gakoak 
Dokumentua identifikatzen duen gako bakarraren bidez helbideratzen dira dokumentuak. Normalean, gako hau kate sinple batez osatzen da. Kasu batzuetan, URI bat edo bide bat (haraino daraman ibilbide osoa) izan daiteke, eta dokumentua datu-basetik erreskatatzeko balio du. Oro har, dokumentuzko datutegiek gako horien indize bat izaten du, eta, beraz, azkar berreskuratzen da.

 Berreskuratzea 
Dokumentuetara bideratutako datu-basea definitzen duen beste ezaugarrietako bat da, dokumentu bat berreskuratzeko erabilitako gako-dokumentu (edo gako-balio) korrespondentzia sinpleaz harago, datu-baseak API bat edo galdera-lengoaia bat eskaintzen duela da, dokumentuak edukiaren arabera berreskuratzeko. Adibidez, eremu batean balio jakin bat duten dokumentu guztiei buruz galdetzeko. APIaren edo galdera-hizkuntzaren ezaugarrien multzoa eta lortzen dena asko alda dasiteke inplementazio batetik bestera.

 Antolaketa 
Dokumentuak oso modu desberdinetan antola ditzakegu dokumentuzko datutegien inplementazio desberdinak, besteak beste:

 Bildumak
 Etiketak
 Metadatu ezkutuak
 Direktorioen hierarkiak

 Erabilera 
Egitura eta ezaugarri horien arabera, datu-base dokumentalak datu-kopuru handiak gordetzeko erabiltzen dira nagusiki, edo gutxi egituratutako informazioa denean.

 Onurak eta desabantailak 

 Onurak 

 Informazio erdiegituratua duten dokumentuak egitura zehatzik gabe biltegiratzeko eta kontsultatzeko aukera ematen dute.
 Oso eredu malgua da, eta datu mota asko har ditzake.
 Datuak gehitzeko edo eguneratzeko zereginak sinplifikatzen dituzte. Adibidez, web-aplikazio edo app mugikor gehienetan etengabeko aldaketak izaten dira. Dokumentuzko datutegiei esker, datu berriak edo analisi-ereduak gehitu daitezke, askoz ere modu malguagoan.
 Idazketa azkarra ziurtatzen dute, eta lehentasuna ematen diote idazketaren erabilgarritasunari datuen trinkotasunaren gainetik. Horri esker, bizkortasuna ziurta daiteke, baita hardwarean edo sarean akatsak daudenean ere; izan ere, beste datu-base batzuetan atzerapenak ekarriko lituzke datuen aldaketa prozesuan, eta eragin negatiboa izango luke datuen koherentzian.
 Errendimendu ona bermatzen dute. Dokumentuzko datutegi gehienek bilaketa-motor indartsuak eta indexazio-propietate aurreratuak dituzte, eta horrek informazioa kontsultatzeko orduan bizkortasun handiagoa ziurtatzen du.
 Eskalagarritasun handia dute, eta informazio-bolumen handiak biltegiratzeko metodorik onenetako bat dira.

 Deabantailak 

 Datu-base erlazionalak ez bezala, ez dago lengoaia estandarizaturik datu-base horiek sortzeko.
 Ezin dituzte beti bermatu  ACID ( Atomicity, Consistency, Isolation and Durability = atomizazioa, trinkotasuna, osotasuna eta iraunkortasuna) propietateak.
 Ez dute komunitate handirik atzean, eta askoz ere informazio gutxiago dago datu-base mota hauei buruz.
 Indizeek RAM memoria handia har dezakete, batez ere datu-bolumen handia maneiatzen duten oinarri dokumentaletan.

 Motak 
Teknikoa ez den erabiltzailearen ikuspuntutik, dokumentuzko datutegiak hainbat motatan sailka daitezke, edukiaren, hartzen dituen gaien edo sartzeko moduaren arabera.      .

 Dokumentuen edukiaren arabera
 Datutegi bibliografikoak (dokumentu edo testu zati bateko datu nagusiak gordetzen dituzte).
 Testu osoko datutegiak (testu edo eduki osoa gordetzen dute).

 Gordetzen duten gaiaren arabera
 Diziplina anitzeko).
 Espezializatuak (adibidez, oso ohikoak dira medikutzan espezializatutako datutegiak, testu medikuak bakrrik gordetzen dituztenak).

 Sartzeko moduaren arabera
 Tokiko sarrera
 On-line
 Kanpoko memoria gordetzaile bidezkoa: disko zurruna, pen-drive, CD-Rom...

 Inplementazioak 
IzenaArgitaratzaileaLizentziaHizkuntzaOharrakRESTful APIBaseXBaseX TeamBSDaJava, XQueryXML, JSON eta formatu bitarrak onartzen ditu; bezero-zerbitzari arkitektura; testu osoko bilaketa konkurrenteak.BaiArangoDBtriAGENSApache 2C, C++ & Javascriptdokumentuen biltegia eta aurkezpen grafikoa.BaiClusterpointClusterpoint Ltd.Librea/KomertzialaC++Dokumentuzko datutegia, eskemarik gabe, testu osoa bilatzen du, garrantziaren araberako antolamendua eta clusterrean funtzionatzea.BaiCouchbase ServerCouchbase, Inc.ApatxeErlang eta CNoSQL datu-base dokumentala.BaiCouchDBApache Software FoundationApatxeErlangJSON REST/HTTP gainean, ACID propietateekin,  concency control mugatuekin. Erabili map eta murriztu bistak eta galderak.CouchDB Overview BaieXisteXist, GPLXQuery, JavaXML REST/HTTP gainean, Web, testu osoa bilatzea Lucenerekin, baliozkotzea, bertsionatzea, clustering-a, triggers-a, URLak berridaztea, bildumak, ACLak, XQuery UpdateBaiFleetDBFleetDBMITClojureEskemarik gabeko JSONen oinarritutako datu-basea, Agile garatzeko optimizatua.(ezezaguna)JackrabbitApache Software FoundationApatxeJava(ezezaguna)Lotus NotesIBMProprietarioaLotusScript, Java, Lotus @Formula(ezezaguna)MarkLogicMarkLogic CorporationLibrea edo komertzialaREST, Java, XQuery, XSLT, C++Dokumentuzko datutegia, hainbat hizkuntzatan banatuta (Multiversion concurrency control), testu osoa bilatzea eta ACID transakzioak.BaiMongoDBMongoDB, IncGNU AGPL v3.0C++Dokumentuen datu-basea, oso eduki iragankorrerako optimizatuaAukerakoaMUMPSProprietaria eta GNU Affero GPLMUMPSAplikazio medikoetan oso erabilia.(ezezaguna)OrientDBOrient Technologies   zen .ApatxeJavaJSON HTTP gaineanBaiRedisBSD LicenseANSI CGako-balio biltegia, zerrenden eta multzoen euskarriarekin(ezezaguna)Rocket U2Rocket SoftwareProprietarioaUniData, UniVerseBai (Beta)RavenDBHibernating RhinosGNU AGPL v3.0 edo CommercialRavenDB OSS license C#JSON HTTP gaineanBaiKnosysMicronet SAJabeaC++, Java, C#Dokumentuen datu-basea, lan-fluxuen kontrolarekinBai

 XML datu-baseak 
XML datu-base gehienak dokumentuetara bideratuta daude.

 Erreferentziak 

 Kanpo estekak 

Kategoria:Datu-baseak
Kategoria:Bibliografia