Örebro Universitet Handelshögskolan - Informatik Informatik med systemvetenskaplig inriktning C, IK3001, 30 hp Handledare: Mathias Hatakka Examinator: Johan Aderud HT14 / 2015-01-26 NoSQL! Med rätt att finnas? Författare: Linda Nguyen 88 10 24 Jan-Halvard Bergquist 83 02 01 Fredrik Lindgren 90 01 05 Sammanfattning I och med att det just nu inom databasteknologin pågår en omfattande utveckling för att kunna hantera informationstillväxten, behövs det en databas som svarar mot de kraven (Atzeni et al., 2013). Uppsatsen fokuserar på att hitta egenskaper som kan ligga till grund i beslutsfattande för systemutvecklare eller företagen vid val av databas. Därför är frågeställningarna: I vilka situationer NoSQL databaser är lämpligt respektive olämpligt att använda? Vilka för- och nackdelar har NoSQL databaserna? För att kunna svara på dessa frågeställningar utfördes en systematisk artikelsökning till vår litteraturstudie. Det första urvalet resulterade i 96 artiklar. Efter individuella granskningar av artiklarna sorterades 24 artiklar bort vilket resulterade i att 72 artiklar återstod. Under den gemensamma granskningen av artiklarna från urval 2, exkluderades 14 artiklar vilket resulterade i de 58 artiklarna som användes i den konceptbaserade mappningen. Utifrån mappningens resultat kunde slutsatsen att NoSQL databasens fördelar är skalbarhet, prestanda, tillgänglighet, kostnadseffektivitet, anpassningsbarhet och kapacitet. Nackdelarna hos NoSQL är: säkerhet, ingen språkstandard, bristande stöd för aggregatfunktioner och framtagning av affärsdata, support och administration samt kräver hög expertis. Därför är NoSQL mindre lämpligt i till exempel bank-, handel- eller sjukvårdsverksamheter då NoSQL databasen inte kan garantera hög säkerhet. Däremot kan NoSQL databaser vara passande för sökmotorer, sociala nätverk eller webbshoppar eftersom sådana applikationer prioriterar bland annat skalbarhet och prestanda. Nyckelord: NoSQL databas, relationsdatabas, skalbarhet, prestanda, säkerhet, kostnad, kapacitet. Innehållsförteckning 1 Inledning............................................................................................................................. 1 1.1 Syfte ............................................................................................................................. 2 1.2 Frågeställning .............................................................................................................. 2 1.3 Avgränsning................................................................................................................. 2 1.4 Intressenter................................................................................................................... 3 2 Teori ................................................................................................................................... 3 2.1.1 Big Data................................................................................................................ 4 2.1.2 NoSQL databasens mognad ................................................................................. 5 2.1.3 Databasschema ..................................................................................................... 6 2.1.4 Skalbarhet ............................................................................................................. 7 2.1.5 ACID .................................................................................................................... 8 2.1.6 BASE .................................................................................................................... 9 3 Metod ................................................................................................................................. 9 3.1 Metodutformning ....................................................................................................... 10 3.1.1 Strategi ............................................................................................................... 10 3.2 Litteraturstudie........................................................................................................... 11 3.2.1 Dataanalys .......................................................................................................... 11 3.3 Källkritik .................................................................................................................... 14 3.4 Etik............................................................................................................................. 15 3.5 Begränsningar med studien ....................................................................................... 15 4 Resultat ............................................................................................................................. 16 4.1 Mappning ................................................................................................................... 19 5 Analys ............................................................................................................................... 21 5.1.1 Koncept A, Horisontell skalbarhet ..................................................................... 21 5.1.2 Koncept B, Säkerhet ........................................................................................... 22 5.1.3 Koncept C, Prestanda ......................................................................................... 24 5.1.4 Koncept D, Tillgänglighet .................................................................................. 26 5.1.5 Koncept E, Anpassningsbar ............................................................................... 28 5.1.6 Koncept F, Consistency...................................................................................... 28 5.1.7 Koncept G, Kapacitet ......................................................................................... 29 5.1.8 Koncept H, Bearbeta data................................................................................... 31 5.1.9 Koncept I, Expertis ............................................................................................. 33 5.1.10 Koncept J, Support/administration ..................................................................... 33 5.1.11 Koncept K, Språkstandard.................................................................................. 35 5.1.12 Koncept L, Kostnad ............................................................................................ 36 5.2 NoSQL databasernas för- och nackdelar ................................................................... 37 5.2.1 NoSQL databasernas fördelar ............................................................................ 37 5.2.2 NoSQL databasernas nackdelar ......................................................................... 38 6 Diskussion ........................................................................................................................ 38 6.1 När är NoSQL lämplig respektive olämplig? ............................................................ 39 6.2 Framtiden ................................................................................................................... 42 7 Slutsats ............................................................................................................................. 43 7.1 Teorietiska och praktiska bidraget ............................................................................. 44 Referenslista enligt APA .......................................................................................................... 45 Bilagor ...................................................................................................................................... 53 Bilaga 1 ................................................................................................................................ 53 Bilaga 2 ................................................................................................................................ 55 Begreppslista Begrepp Affärsdata Concurrency Förklaring Data som kan användas till att utvinna affärsnyttig information för ett företag. Term inom datavetenskapen som betyder att flera beräkningar ska kunna utföras och samarbeta samtidigt (Wikipedia, 2014). En informationssamling av flera källor, så som analyser och modeller. Datalager Samlingen har hjälpmedel och en struktur vilket underlättar för de personer utan genomgripande IT-kunskaper att läsa informationen (Svenska datatermgruppen, n.d.). När två eller fler uppgifter permanent blockerar varandras utförande. I Deadlocks fallet med databaser kan det handla om uppdateringar av samma data som utförs av två eller flera personer samtidigt (Microsoft Technet, n.d.). Distribuerad miljö Molnet Skalbarhet Är ett kluster av sammankopplade datorer via internet eller andra typer av nätverk för lagring av data (BuissnessDictionary.com, n.d.). Innebär att data lagras och hämtas över internet (Helmersson, Dicte, n.d.). Ett exempel på en sådan tjänst är Microsoft Azure. Förmågan hos ett system som kan utöka genomströmningen med hjälp av att lägga till resurser för att klara den ökade belastningen (Tiwari, 2011). Structured Query Language är det frågespråket som är standard för relationsdatabaser. De olika relationsdatabaserna som existerar har SQL skillnader i sina frågespråk men de följer alla en gemensam ISOstandard från 2003, den så kallade SQL:2003 (Padron-McCarthy & Risch, 2005a). Ett samlingsbegrepp för internettjänster, så som bloggar, wikis Web 2.0 (användarberoende internetbaserade uppslagsverk) sociala medier med mera (BuissnessDictionary.com, n.d.). NoSQL! Med rätt att finnas? 1 Inledning Just nu sker en omfattande förändring inom databasteknologin. Eftersom allt mer information blir tillgänglig för en växande mängd människor, måste hanteringen och åtkomsten av data snabbt utvecklas. I den utvecklingen måste hänsyn tas till vilken typ och volym av data det är samt de framtida användarna (Atzeni et al., 2013). Datatillväxten har ökat i en exponentiell hastighet senaste tiden, nästan 90 procent av världens data genererades de senaste två åren (Zvarevashe & Gotora, 2014). Mycket av det som lagras är ostrukturerad och semistrukturerad data som exempelvis video, audio, blogginlägg med mera (Zaki, 2014). Program som inte klarar av marknadsutvecklingen av stor datalagring kommer snabbt att hamna efter enligt Zaki (2014). Figur 1 visar hur tillväxten av strukturerad, ostrukturerad och semistrukturerad data har ökat från år 2000 till 2011. Figur 1. Datatillväxten av ostrukturerad, semistrukturerad och strukturerad data från år 2000 till 2011 (Zaki, 2014) På grund av detta har förslag på okonventionella sätt för hantering och åtkomst av data uppkommit, vilket har utmanat och omvärderat de koncept, tekniker och verktyg som utformades för datalagring under de senaste 40 åren (Atzeni et al., 2013). Eftersom datatillväxten har blivit så stor att traditionella tekniker såsom relationsdatabasen inte klarar av den (Zvarevashe & Gotora, 2014), så har nya generationens datahanteringssystem utvecklats. Det är mest databaser utan relationer vilket går under samlingsnamnet Not only Structured Query Language (NoSQL) databaser (Atzeni et al., 2013). Under systemvetenskapliga utbildningen vid Örebro universitet lärs kunskaper om relationsdatabaser ut dock inte alternativa databastekniker som NoSQL databaser. NoSQL som databas är ett ungt område då termen dök upp 1998 men utvecklingen tog inte fart förrän 1 NoSQL! Med rätt att finnas? runt 2007 (Naheman & Wei, 2013; Hammes, Medero, & Mitchell, 2014). Trots det användes NoSQL databaser i Web 2.0 applikationer hos etablerade företag såsom Google, Amazon och Facebook (Moniruzzaman & Hossain, 2013). Enligt (Parker, Poe & Vrbsky 2013) är det en stor diskussion i databasvärlden om huruvida NoSQL databaser kommer att ersätta relationsdatabaser. På grund av övergången mot NoSQL databaser och tillgången till öppen källkod (engelska open source), blir det naturligt att många utvecklare ställer sig frågan om de ska välja NoSQL databasen eller inte (Parker et al., 2013). 1.1 Syfte Syftet med denna litteraturstudie är att utreda NoSQL databasernas för- respektive nackdelar för att sedan kunna avgöra när det är lämpligt eller olämpligt att välja NoSQL databas. 1.2 Frågeställning Uppsatsen är uppbyggd utifrån utvecklarens och företagens perspektiv. Vilket innebär att uppsatsen fokuserar på att hitta egenskaper som kan ligga till grund i beslutsfattande för systemutvecklare eller företagen. Därför är frågeställningarna: I vilka situationer NoSQL databaser är lämpliga respektive olämpliga att använda? Vilka för- och nackdelar har NoSQL databaserna? 1.3 Avgränsning Uppsatsens fokus ligger hos NoSQL, vilket innebär att det inte står något ingående om relationsdatabasen dock är det svårt att helt undvika att nämna relationsdatabasen då alla koncept går ut på att göra en jämförelse mellan NoSQL databasen och relationsdatabasen. Något som inte heller tas upp är de olika subtyperna av NoSQL databaser som finns, till exempel dokumentlagringsdatabas, graf databas, key-value databas med mera (Tudorica & Bucur, 2011) eller skillnaderna mellan de 150 olika NoSQL databaserna som idag finns (Özcan et al., 2014). Orsaken är att uppsatsen riskerar att bli för stor och dessutom blir det svårt att förhålla sig till en abstrakt nivå. En annan sak som inte heller ligger inom ämnesområdet är hur en NoSQL databas skapas eller implementeras. Eftersom intresset endast ligger i att utreda hur NoSQL databasernas egenskaper klarar sig i förhållande till relationsdatabaserna. 2 NoSQL! Med rätt att finnas? Ett perspektiv som skulle vara intressant men som vi1 inte kommer att skriva utifrån, är slutanvändarens eller utbildningens perspektiv. Utifrån slutanvändarens perspektiv kan det vara intressant att ta reda på om de märker någon skillnad mellan att använda en applikation med en NoSQL databas och en applikation med en relationsdatabas. Från utbildningsperspektivet kan det vara nyttigt att göra en undersökning över vad som lärs ut i programmeringsutbildningarna och om utbildningen känner till NoSQL. Ett annat perspektiv som skulle vara intresseväckande är studenternas åsikter om NoSQL databaser. Där skulle det gå att göra en enkätundersökning för att ta reda på hur många som känner till NoSQL databaser. Samma undersökning skulle gå att göra med olika företag som är i kontakt med databaser eller yrkesverksamma personers inom IT2. 1.4 Intressenter De primära intressenterna av denna uppsats är systemutvecklare och databasadministratörer som vill veta när det är lämpligt att lagra data i en NoSQL databas. Andra intressenter kan vara universitet som är intresserade av att utveckla sina utbildningar. Övriga intressenter kan vara universitetslärare, universitetsstudenter inom datateknik, dataingenjör med mera, delar av forskarvärlden samt verksamheter som behöver underlag för beslutsfattande. 2 Teori International Data Corporation gjorde en analys över hur datatillväxten har ökat från 2007 till 2010, vilket visar att datatillväxten 2010 är cirka 25 gånger större än vad det var 2007. Även samtidiga uppkopplingar har ökat under de senaste decennierna i takt med Web 2.0 och Web 3.0’s framfart (se Figur2) (Tauro & Aravindh, 2012). Figur 2. Tillväxten av samtidiga uppkopplingar under senaste decennierna (Tauro & Aravindh, 2012). 1 På de platser i denna uppsats som det står vi syftar det på författarnas egna åsikter. IT, Informationsteknik är ett samlingsbegrepp för tillämpningen av datorer och telekommunikation för att sända, lagra och bearbeta data. Oftast i samband med företag och verksamheter (Henriksson, n.d.). 2 3 NoSQL! Med rätt att finnas? Relationsdatabaser har svårt att hantera den snabba datatillväxten medan NoSQL databaser är framtagna för att snabbt kunna klara av en utökning av lagringskapaciteten. En anledning till varför många stora företag som Facebook, Amazon och Google använder NoSQL databaser är för att det lättare att skala horisontellt med NoSQL databaser i molnet eller till datalager än med relationsdatabaser (Zahid, Masood, & Shibli, 2014; Tiwari, 2011; Nayak, Poriya, & Poojary, 2013). Dessutom har relationsdatabaser svårt att hantera semistrukturerad och ostrukturerad data, då sådana data har få obligatoriska attribut och istället många valfria (Tauro & Aravindh, 2012). 2.1.1 Big Data Den mängd data som lagras i terabyte eller petabyte (1 125 899 906 842 624 byte) nivå kallas för stor data (engelska Big Data). För bearbetning och lagring av Big Data finns två egenskaper som föredras: skalbarhet och snabba åtkomst till ofantliga mängder data (Pokorný, 2014). Figur 3 visar vad Big Data består av. Det var inte länge sedan som tusen användare av en applikation ansågs som mycket och tiotusen användare var extremfall. Idag är ser det annorlunda ut, i och med framväxten av molntjänster kan applikationer vara tillgängliga alla tider på dygnet året runt och kan på så sätt globalt stödja många användare samtidigt. Det finns en studie som visar att mer än två miljarder människor i världen har tillgång till Internetanslutning och tiden som spenderas på nätet ökar successivt, därför ställs det krav på att tillgängligheten är hög (Zaki, 2014). Dessutom bearbetas nästan alla affärstransaktioner via nätet och sociala nätverk behandlar, lagrar och skapar enorma mängder data (Zvarevashe & Gotora, 2014). Figur 3. Big data storlek och vad som lagras (Zaki, 2014). 4 NoSQL! Med rätt att finnas? 2.1.2 NoSQL databasens mognad NoSQL databasernas framfart har genererat stor entusiasm men det finns fortfarande många hinder att överkomma innan de kan slå igenom hos många verksamheter. Det finns fem problemområden som NoSQL databaserna måste tackla: mognad, analytisk och affärsintelligens (engelska Business Intelligence), expertis, administration och support (se Figur4) (Zvarevashe & Gotora, 2014; Huang & Luo, 2014). Figur 4. NoSQL databasernas fem främsta utmaningar (Zvarevashe & Gotora, 2014). I och med att NoSQL databaser inte har funnits lika länge som relationsdatabaser är inte NoSQL databaserna lika tillförlitliga för företagen att använda (Zvarevashe & Gotora, 2014; Huang & Luo, 2014). För det mesta är relationsdatabaserna stabila och har många funktioner, vilket NoSQL databaserna brister i eftersom de flesta NoSQL databaser fortfarande inte är färdigutvecklade. Att vara i den tekniska framkanten är lockande för många utvecklare men företag är försiktiga med att testa NoSQL databaser (Zvarevashe & Gotora, 2014). Enda sättet att uppnå företagets förtroende är att göra flera tester på flera områden (Huang & Luo, 2014). Mognad är faktorn som NoSQL databaserna endast kan övervinna genom att höja de övriga faktorerna såsom support. Eftersom support spelar en stor roll i att försäkra företagen om att det finns ett trovärdigt stöd att tillgå om något går fel. De flesta relationsdatabasleverantörerna lägger stor vikt på sin support men för NoSQL leverantörerna är det svårare att erbjuda samma kvalité på supporten då NoSQL företagen brukar vara små med open source projekt (Zvarevashe & Gotora, 2014; Huang & Luo, 2014). Eftersom NoSQL databaser har utvecklas för att möta de skalningskrav som Web 2.0 kräver, så har fokuset legat där. Medan andra områden som att utvinna affärsdata, som kan vara betydelsefull för verksamhetens utveckling och konkurrenskraftighet har åsidosatts (Zvarevashe & Gotora, 2014). 5 NoSQL! Med rätt att finnas? Designmålet för NoSQL databaserna var att de inte ska behöva administreras men verkligheten är en annan. Dagens NoSQL databaser kräver expertis och skicklighet för installation och mycket ansträngning att upprätthålla (Zvarevashe & Gotora, 2014). En annan aspekt som också påverkar mognaden är säkerhetsbristerna hos NoSQL databaserna (Mohamed, Altarfi, & Ismail, 2014). Några av de största säkerhetsbristerna NoSQL databaser har är: bristfällig datakryptering, svag autentisering både mellan klienten och servern samt sinsemellan servrarna, enkel auktorisation och sårbar för injektion och överbelastningsattacker (Zvarevashe & Gotora, 2014). 2.1.3 Databasschema Ett databasschema är en statisk beskrivning av databasen enligt en datamodell. Datamodell i sin tur är en del av verkligheten som avbildas när en databas designas. Databasschema innehåller även beskrivningar av vilken data som kan finnas i en databas. I schemat ingår bland annat vilka fält som finns, vilka värden de kan innehålla och vilka nycklar det finns (Padron-McCarthy & Risch, 2005a). NoSQL databasernas scheman har inte strikta relationsscheman som relationsdatabaserna. Data organiseras därmed inte i tabeller och har inte relationer via vissa kolumner. NoSQL databasen tillhandahåller istället en mekanism för lagring och hämtning av data i olika former, exempelvis som nyckel-värde (engelska key-value), graf, dokument med mera som gör NoSQL databasschemat mer flexibelt och anpassningsbart (Shalini & Dhamodharan, 2014). På olika sätt är dessa NoSQL databastyper schemalösa (engelska schema-less), exempelvis key-value databasen sparar data genom att para ihop ett nyckelvärde med datavärdet. Detta möjliggör att stora sökningar går snabbare att söka igenom än hos relationsdatabasen. Dokument databaser består av flera uppsättningar av dokument, vilka var och en innehåller fält av data i ett format som Extensible Markup Language (XML) eller JavaScript Object Notation (JSON). Detta gör det möjligt för data att lagras på ett schemalöst sätt (Barmpis & Kolovos, 2012). Det finns strukturerad, semistrukturerad och ostrukturerad data. Strukturerad data är data som är organiserad på ett sätt som både datorer och människor kan läsa (Rosengren, 2012), exempelvis som relationsdatabasens tabeller (Vangie, 2015). Det vill säga att data finns i ett fält inom en fil som har fördefinierade datatyper (Vangie, 2015). Semistrukturerad data saknar en formell struktur men separerar ändå semantiska elementet, exempel på semistrukturerad data är XML och mejl. Ostrukturerad data kan vara av vilken typ som helst, exempelvis som 6 NoSQL! Med rätt att finnas? video, audio, bilder med mera, som inte är en del av en databas (Rosengren, 2012). En av de viktigaste egenskaperna NoSQL databaserna har är att de kan hantera semistrukturerad och ostrukturerad data (Nance, Losser, Iype, & Harmon, 2013; Parker et al., 2013). 2.1.4 Skalbarhet Förmågan hos ett system som kan utöka genomströmningen med hjälp av att lägga till resurser för att klara den ökade belastningen är skalbarhet, vilket kan uppnås antingen via vertikal skalning eller horisontell skalning (Tiwari, 2011). I och med att tillväxten av användare ökade, ökade även tillväxten av data vilket förhöjde belastningen på webbsidorna. Det krävdes mer dataresurser för att kunna klara av den ökade datatrafiken, därmed måste företagen välja att antingen skala horisontellt eller vertikalt. Vertikal skalning innebär större maskiner med flera processorer, minnen och disklagring (Sadalage & Fowlar, 2013). Andra alternativet är horisontell skalning, vilket innebär att ha många små maskiner i ett kluster som arbetar som en enhet (Tiwari, 2011; Sadalage & Fowlar, 2013). Horisontell skalning möjliggör att det totala klustret fortfarande kan fungera fastän en del av klustret är bortkopplat, vilket ger hög tillförlitlighet (Sadalage & Fowlar, 2013). Figur5 visar skillnaden mellan horisontell skalning och vertikal skalning vid tillägg av mera lagringsutrymme. Figur 5. Horisontell skalning versers Vertikal skalning (Monger, Mata-Toledo, & Gupta, 2012). Vertikal skalning Traditionellt har vertikal skalning varit det som föredras för att bevara consistency (Tiwari, 2011), vilket gjorde att relationsdatabaser var det föredragna alternativet dock måste 7 NoSQL! Med rätt att finnas? replikering3 användas för att kunna hantera relationsdatabaser som är placerade på mer än en server. Att använda replikering för synkronisering krävdes fragmentering4 av databasen för vertikalt skalning, vilket innebär att databaser måste delas upp i olika tabeller och den processen anses vara komplicerad (Pokorny, 2013; Lai, 2009; Couchbase, 2014). I och med de utmaningar som förknippas med vertikal skalning så har horisontell skalning under de senaste åren blivit det föredragna strategiska valet för skalning (Tiwari, 2011). Horisontell skalning Horisontell skalning innebär att om kapaciteten når sin maxgräns kan ytterligare noder läggas till i klustret för att klara behovet. Att välja en horisontell skalbarhetsstrategi har blivit vanligare på grund av tillkomsten av big data och behovet att parallellt kunna bearbeta data effektivt. Några företag som använder sig av horisontella skalningslösningar är Google, eBay och Yahoo (Tiwari, 2011). En fördel med horisontell skalning är att den kan klara av höga transaktionsbelastningar (Sadalage & Fowlar, 2013). 2.1.5 ACID ACID är ett begrepp som är viktigt inom databasteorin och tillämpas inom relationsdatabaser. ACID står för: Atomicity, Consistency, Isolation och Durability. Dessa egenskaper ska garantera att transaktionerna sker tillförlitligt (Padron-McCarthy & Risch, 2005a). Atomicity eller odelbarhetsegenskapen innebär att transaktionen måste följa allt eller inget regeln. Det betyder att antingen genomförs hela transaktionen eller så genomförs inget alls. Om en del av transaktionen misslyckas ska hela transaktionen backas tillbaka till innan transaktionen påbörjades (Padron-McCarthy & Risch, 2005a; Pritchett, 2008). Consistency5 eller konsistensbevarande betyder att endast giltig data skrivs till databasen. Om en transaktion bryter med consistencyregeln måste hela transaktionen backa tillbaka och databasen återställs till statusen den var innan transaktionen (Padron-McCarthy & Risch, 2005a). 3 Är en automatisk kopiering och delning av information mellan olika resurser. Med andra ord så ligger samma data på flera diskar och platser. Replikering görs för att öka tillförlitligheten, feltoleransen och tillgängligheten (CS Språkwebb, n.d.). 4 Fragmentering innebär att en tabell delas upp och lagras på olika ställen. Vid horisontell fragmentering placeras hela rader på olika lagringsplatser. Vid vertikal fragmentering placeras kolumnerna på olika platser (Padron-McCarthy, 2005b). 5 Vi väljer att använda det engelska ordet consistency eftersom det är svårt att hitta en lämplig översättning på svenska. Consistency betyder ungefär "överrensstämmelse". 8 NoSQL! Med rätt att finnas? Isolation eller isolering innebär om olika transaktioner sker samtidigt ska de inte påverka varandras genomförande (Padron-McCarthy & Risch, 2005a; Pritchett, 2008). Durability eller hållbarhet säkerställer att transaktioner och dess förändringar som är fullbordad och avslutade aldrig ska försvinna ur databasen (Padron-McCarthy & Risch, 2005a; Pritchett, 2008). 2.1.6 BASE BASE är en motsvarighet till ACID. Skillnaden är att BASE accepterar att data i systemet kan vara inkonsekvent en kort tid efter en förändring, därefter blir systemet så småningom konsekvent (engelska eventual concistency) medan ACID kräver consistency vid slutet av varje transaktion (Pritchett, 2008). BASE står för: Basically available, Soft state och Eventually consistent. Basically available innebär att systemet verka fungera hela tiden. Soft state betyder att systemet inte behöver vara i överrensstämmelse jämt och eventual consistency är att det blir konsekvent vid senare tidpunkt. Då inga uppdateringar sker på ett tag, så kommer alla uppdateringar att röra sig igenom systemet och alla kopior kommer så småningom att uppnå consistency (Pritchett, 2008). Exempelvis, för en facebookanvändare A som ska kommentera ett inlägg av facebookanvändare B ser facebookanvändare A inte alla nya kommentarer som kan ha tillkommit under tiden facebookanvändare A skriver sitt inlägg. Utan det är efter facebookanvändare A skicka in sin kommentar som denne kan se att flera andra ha skickats in före. 3 Metod Första delen av metodavsnittet består av en översiktlig beskrivning av processen för litteraturstudien. Därefter följer en mer utförlig beskrivning av varje del i processen. Först utformades en metodstrategi. Efter metodutformningen påbörjades litteraturstudien där första sökningen genomfördes. Fas 1 i litteraturstudien bestod av sökningar efter artiklar, identifiering av koncept samt urval ett och två. Fas 2 bestod av att mappa artiklarna utifrån koncepten samt resultat och analysskrivning. Under fas 2 utfördes urval tre. Fas 3 bestod av att sammanfatta och dra slutsatser utifrån analysen (se Fel! Hittar inte referenskälla.6). I urval ett och två utfördes artikelgranskningen individuellt medan den utfördes gemensamt i urval tre. 9 NoSQL! Med rätt att finnas? Figur 6. Uppsatsens metodprocess. 3.1 Metodutformning Frågan i vilka situationer som NoSQL databaserna är mest lämpliga att använda, är en fråga som kan ge vägledande kunskap. Enligt Goldkuhl (2011) resulterar kunskap av vägledande karaktär i råd om hur man bör gå tillväga beroende på situation, vilket vår litteraturstudie kommer att göra då den kommer att kunna användas som underlag vid beslutsfattande av vilken databas man bör välja. 3.1.1 Strategi Tidigt i projektet är det viktigt att förbereda och utarbeta fram en metodik för arbetet eftersom det är essentiellt att få den teoretiska och praktiska bakgrunden som är grundstenen för att svara på frågeställningarna. Det finns olika typer av metoder att använda exempelvis kvalitativt och/eller kvantitativt. Vi använder inte den kvantitativa metoden då den går ut på att omvandla information till siffror samt mängder och sedan dra samband mellan olika variabler, vilket vi inte har behov av (Oates, 2010). Däremot används kvalitativa metoder att för att uppnå mer nyanserade insikter eftersom denna typ av metod kan ge ett mer omfattande svar på forskningsfrågan. Detta görs genom att studera texter istället för siffror, vilket vi har gjort genom systematisk litteraturstudie inriktad på NoSQL. Valet av att göra en litteraturstudie gjordes utifrån uppsatsens frågeställning och de resurser som finns tillgängliga (Oates, 2010). Grovt kan arbetsprocessen delas in i delar som informationssökning, analys och inlärning. Informationssökningen gick ut på att hitta information om huvudämnet i böcker och artiklar. Sedan analyserades all material för att skapa en djupare förståelse för att identifiera, syntetisera och värdera ämnesområdet NoSQL. Detta omfattade sökningar i vetenskapliga databaser med relevanta nyckelord som exempelvis NoSQL och relationsdatabas med mera (se Bilaga 1). Inlärningen gick ut på att studera böcker 10 NoSQL! Med rätt att finnas? och artiklar relevanta för huvudämnet (Oates, 2010). Alla källor granskades noggrant och validerades. Informationen mappades och en kort sammanfattning skrevs i artikelmallen (se Figur 8) för varje källa för att göra det lättare att läsa, analysera och bearbeta. En anledning till varför litteraturstudien valdes är för att den kan ge ett mindre subjektiv resultat än intervjuer. Enligt Oates (2010) har intervjuundersökningar vanligtvis en agenda och personen som intervjuar vill oftast rikta in respondenten till att prata om ett specifikt ämnesområde. En litteraturstudie är en god grund för att utveckla kunskap eftersom den ger en effektiv översyn. Detta i sin tur underlättar teoriutvecklingen och stänger områden där det finns stora mängder forskning samt bidrar till att nya forskningsområden upptäcks menar Webster och Watson (2002). Även Marrelli (2005) nämner att en litteraturstudie är ett effektivt sätt att utöka sin kunskap och förståelse vilket i sin tur leder till att relevanta frågeställningar upptäcks i en uppsats. 3.2 Litteraturstudie I urval 1 valdes de antal artiklar vars abstrakt ansågs lämplig till litteraturstudien. Alla artiklar vars abstrakter berörde NoSQL och relationsdatabaser valdes ut. Urval 2 är de artiklar som i första hand ansågs vara lämpliga till mappningen efter granskning av hela artikeln. Urval 3 är det antalet artiklar som mappningen slutligen landade i (se Figur7). De artiklar som exkluderades från urvalen, hade antingen inte någon jämförelse mellan relationsdatabasen och NoSQL databasen eller berörde inte koncepten. Några få källor uteslöts för att de inte var artiklar som till exempel gästredaktörsintroduktionen ”The CAP Therorem’s Growing Impact” av Shim (2012). Ett annat exempel är artikeln "A fast and high throuhput SQL Query System for Big Data" av Zhu, Lie och Xu (2012) som exkluderas på grund av att artikeln inte handlade om någon jämförelse utan den handlade om systemtester på ett egenskapat program som baserades på NoSQL databasens arkitektur. Urval 1 96 Urval 2 72 Urval 3 58 Figur 7. Urvalsprocessen. 3.2.1 Dataanalys Litteraturstudien inleddes med att söka i artikelbibliotek som Scopus, Google Scholar och Summon. I de första sökningarna användes bland annat nosql, sql, compare som sökord vilket resulterade i 31 utvalda artiklar (se Bilaga 1). Därefter påbörjades artikelgranskningen. Efter 11 NoSQL! Med rätt att finnas? varje granskad artikel utfördes en sammanställning där artikelns titel, samtliga författare, tidpunkt för publicering, syfte, resultat och slutsats listades upp i en artikelmall. Även huvudgranskare samt dess egna tankar och kritik noterades (se Figur). Figur 8. Förslag på hur artikelmallen kan se ut. Som Webster och Watson (2002) förespråkar har mappning utförts genom att först läsa artiklarna sedan identifiera centrala begrepp och koncept för att därefter använda de som koncept i mappningen. Mappning ger en klarare bild av vad ett stort antal källor säger samt gör det enkelt att dra slutsatser. Genom granskning av de första artiklarna kunde det identifieras ett antal nya koncept som artiklarna tog upp vilket användes som sökord i ytterligare sökningar. Dessa sökningar resulterade i att ytterligare 53 artiklar valdes ut för granskning. Efter den första artikelgranskningen kunde vi hitta återkommande egenskaper som togs upp i artiklarna där NoSQL databaser jämfördes med relationsdatabaser, vilket vi använder som koncept. Dessa koncept är: horisontell skalning, säkerhet, prestanda, tillgänglighet, anpassningsbar, consistency och kapacitet. Anledningen till att litteraturstudien är konceptcentrerad är för att ett författarcentrerat tillvägagångssätt har problem med att åstadkomma en helhetssyn enligt Webster och Watson (2002) och Oates (2010). Genom att alla artiklar mappats efter de koncept som identifierats efter granskningen istället för att mappats efter författare blir det konceptcentrerat (Webster & Watson, 2002). Med ett konceptcentrerat tillvägagångssätt underlättar det för oss och för läsarna att snabbt kunna ta del av resultatet på ett översiktligt plan samt att det underlättar vid analyssammanfattningen. Vi har valt att arbeta utifrån vår konceptmatris, vilket också är vad 12 NoSQL! Med rätt att finnas? Webster och Watson (2002) och Oates (2010) rekommenderar för att enkelt och kreativt presentera våra nyckelkoncept. Sedan identifierades ytterligare fem egenskaper som också återkom ofta i artiklarna vid jämförelse mellan NoSQL databaser och relationsdatabaser. Dessa egenskaper valdes att användas som koncept eftersom vi ansåg att de kunde medföra värde till slutsatsen. De koncept som tillkom var: bearbeta data, expertis, support/administration, språkstandard och kostnad. Precis som i enlighet med vad Webster och Watson (2002) säger, för att få mer och bättre underlag för analys kan nya koncept läggas till och existerande ändras. I mappningen valdes att utreda huruvida artiklarna ställde sig positivt eller negativt i respektive koncept som ingick i mappningen. Indirekt går det även svara på i vilken situation som NoSQL databaserna inte är lämpliga. Underlaget från litteraturstudien svarade även på vilka fördelar samt nackdelar som NoSQL databaserna har. Efter att mappningen av de första 84 artiklarna var utförd kunde det utläsas att vissa av koncepten hade ett litet antal artiklar som berörde NoSQL databaserna i jämförelse med relationsdatabaserna. Dessa koncept var säkerhet och bearbeta data. Därför utfördes ytterligare sökningar riktade mot just dessa koncept. Dessa sökningar resulterade i tolv artiklar, därav resulterade urval 1 i 96 artiklar. Eftersom inga fler nya koncept påträffades i de sista artiklarna bestämdes det att avsluta artikelsökningen och därefter påbörjades granskningen av resultatet. Under den individuella granskningen uteslöts 24 artiklar eftersom de inte berörde koncepten. I urval tre utfördes en gemensam artikelgranskning vilket resulterade i att artiklar som inte var lämpliga för mappningen valdes bort. Vid den gemensamma granskningen upptäcktes det även att vissa artiklars koncept i mappningen inte skulle vara markerade eller var felaktigt märkta. På detta sätt reducerades antalet artiklar i mappningen ned från 72 stycken till 58. I och med att den slutgiltiga granskningen utförts gemensamt säkerställer det att alla artiklar som inkluderades i mappningen verkligen är relevanta. Utläsning av mappningen Figur 9 visar ett exempel på hur mappningen ser ut. Om en artikel har notationen (+) i kolumnen A betyder det att artikeln säger att NoSQL databasen har bättre skalbarhet än relationsdatabas. Om cellen istället har (-)-notation betyder det att artikeln säger att NoSQL databasen presterar sämre än relationsdatabasen i den kategorin. Där det finns en (+ & -) 13 NoSQL! Med rätt att finnas? betyder det att artikel tycker att NoSQL databasen kan vara bättre än relationsdatabasen i vissa avseenden i konceptet men sämre i andra. Figur 9. Mappningsexempel. 3.3 Källkritik Enligt Avdic (2011) så bör författaren alltid ställa sig kritisk till de källor som de använder sig av i en undersökning då detta skapar en stark hållbarhet. Vidare nämner Avdic (2011) fyra kriterier för källkritik: Äkthet, att källan är den faktiska källan som är given i texten. Tidssamband, att källan blir mer tveksam ju längre tid det är mellan källan och händelsen. Oberoende, att källan ska vara autentisk och ska inte refereras från en annan källa. Tendensfrihet, innebär att källan kan ge en falsk bild av verkligheten på grund av personliga åsikter. Dessa punkter är grunden i bedömningen av våra källor. Eftersom uppsatsen är byggd på en litteraturstudie är det viktigt att källornas trovärdighet alltid kontrolleras. Det är särskilt viktigt att veta att källorna har gått igenom någon form av kvalitetsgranskningsprocess. Alla kurslitteraturer, vetenskapliga skrifter och artiklar som är tillgängliga från ett forskningseller akademisk bibliotek antas ha utvärderats av forskare, förläggare och bibliotekarier samt är accepterade inom den vetenskapliga kretsen (Elizabeth, 2013). Följande kriterier utgick vi från vid kvalitetsgranskning av resurserna (Elizabeth, 2013): Resurslämpligheten kontrollerades genom att säkerställa att material är inriktad på vårt ämnesområde, att informationen är gällande och aktuellt, att se till att resursen kommer från rätt tidsperiod, att det finns datum på hemsidan samt att informationen är tydligt daterad. 14 NoSQL! Med rätt att finnas? Auktoritet granskades genom att resursen har en abstrakt, författare med akademiska meriter, position, status samt uppgifter i form av postadress, yrkesbakgrund, institutionsinformation och adress. Publiceringen inspekterades genom att kontrollera att det finns sidhuvud, sidfot eller en distinkt stämpel som visar att materialet är en del av ett officiellt akademisk eller vetenskaplig hemsida samt att materialet är utarbetad som en del av författarnas yrkesuppgifter. Alla kurslitteraturer värderades enligt följande: En subjektiv bedömning av hur textkvalitén är, om den är välskriven eller inte. Kontrollerar författaren, att materialet är publicerad av experter inom ämnet. 3.4 Etik En etisk aspekt i en litteraturstudie är att sökningen efter vetenskaplig litteratur sker i linje med utarbetad sökstrategi samt att granskning och sammanställning av resultat genomförts metodologiskt och systematiskt, vilket vi har förhållit oss till. Vår sökstrategi var att dokumentera alla våra sökningar, genom att skriva upp alla sökningar som gjordes, vilka sökord som användes, i vilken sökmotor/artikelbibliotek sökningen utfördes, hur många resultat varje sökning genererade, vilka begränsningar och sorteringar som gjordes med mera. Andra saker som dokumenterades var vilka artiklar som hämtades och dess ursprungskälla. Genom att visa på ett transparent arbetssätt under hela studien kan kravet på uppsatsens relevans säkerställas. 3.5 Begränsningar med studien En svaghet i vår studie kan vara vår individuella granskning av artiklarna eftersom den kan ha bidragit till att relevanta artiklar inte kom med i mappningen. Enligt Marrelli (2005) krävs det stor skicklighet av granskaren vid analysering av källor samt identifiering av relevant information. För att förhindra och förebygga att relevanta artiklar exkluderas har vi innan granskningen diskuterat och kommit överens om vad vi ska titta efter i artiklarna. Under den individuella granskningsprocessen fanns det alltid möjlighet till att diskutera med varandra om det skulle uppstå någon fundering. Dessutom användes även artikelmallen för att skriva ner egna anteckningar och kommentarer om artiklarna. Vi anser att genom att arbeta på detta sätt minimerar vi risken att exkludera relevanta artiklar. 15 NoSQL! Med rätt att finnas? Marrelli (2005) nämner i sin artikel att litteraturstudie är en samling av information av vad som har hänt och kan därför inte tillhandahålla data om det som sker just nu. Trots att vi vet att relevanta artiklar kan ha sållats bort på grund av till exempel tidsbegränsningar i sökningen, så utfördes det för att erhålla så aktuella artiklar som möjligt. Detta val har möjliggjort att vi har fått den senaste informationen inom NoSQL. Vi är även medvetna om att det finns andra sökord som kunde ha resulterat i andra artiklar som skulle kunna ha varit relevanta för vår litteraturstudie. Däremot hade vi vid sista sökningen tillräckligt med underlag för att svara på våra frågeställningar och valde därmed att inte söka vidare. 4 Resultat Detta kapitel börja med att presentera mappningens koncept och sedan redovisas litteraturstudiens artikelmappning i tabellform. Koncept A, Horisontell skalning Horisontell skalbarhet är den skalning som föredras för att kostnadseffektivt kunna lägga till mera lagringsutrymme. Det är även den strategin som föredras för att tackla dagens efterfrågan av effektiv och lätthanterlig lagringsutökning (Tiwari, 2011). I mappningen är det 46 av 58 artiklar som påpekar att NoSQL är bättre än relationsdatabaserna när det kommer till horisontell skalning. Däremot är det ingen artikel som påvisar att NoSQL databaser är sämre än relationsdatabaser vid horisontell skalning. Koncept B, Säkerhet I och med att NoSQL databasmiljön är distribuerad resulterar detta i stora mängder parallella anslutningar och beräkningar. Detta förhöjer potentiellt risken att bli attackerad över flera distribuerande noder vilket gör det komplext att säkra upp ett NoSQL system (Kadebu & Mapanga, 2014; Osawaru & Ahamed, 2014). Säkerhet är ett stort område med många olika aspekter men för att förhålla oss på en abstrakt nivå så kommer säkerhet att granskas som en helhet. Sexton av mappningens källor ställer sig negativt till NoSQL databasernas säkerhet. Majoriteten av de artiklar som berör säkerhet säger att NoSQL har sämre säkerhetsegenskaper än relationsdatabaserna. 16 NoSQL! Med rätt att finnas? Koncept C, Prestanda Konceptet prestanda syftar på hur snabb databasens responstid är vid läsning, lagring, uppdatering och borttagning. I och med den växande mängden data som Web 2.0 medför måste även databaserna kunna söka och ändra snabbt vid förfrågningar (Zvarevashe & Gotora, 2014). Utifrån mappningen visar det att 39 artiklar ställer sig fördelaktigt till NoSQL databasen i jämförelse med relationsdatabasen. Enbart en av artiklarna slog fast att NoSQL databasen presterade sämre än relationsdatabasen. Koncept D, Tillgänglighet På grund av att webbapplikationerna behöver klara av ökande användarbelastning måste även databasens tillgänglighet vara hög. I tillgängligheten ingår även att databasen klarar av att hantera flera anslutningar samtidigt från olika användare (Tauro & Aravindh, 2012; Zvarevashe & Gotora, 2014). Av det som går att utläsa från mappningen är att 22 artiklar bekräftar att NoSQL databasen är bättre än relationsdatabasen i tillgänglighet. Koncept E, Anpassningsbar Med odefinierade scheman är databasen mer flexibel och det blir lättare att anpassa databasen till applikationen istället för tvärtom. Det utvecklaren ska utgå ifrån är sin applikation för att designa databasen utseende. Det som gör databasen flexibel är att det går att ändra en del av databasens upplägg utan att resterande delar av databasen berörs, detta i sin tur resulterar i att hanteringen av användarens data blir enklare (Abramova, Bernardino, & Furtado, 2014). Sammanfattningsvis visade mappningen att 17 artiklar sa att NoSQL databasernas anpassningsbarhet är bättre än relationsdatabasernas. En artikel var negativ till NoSQL databasernas anpassningsbarhet i förhållande till relationsdatabaserna. Ytterligare en artikel tog upp negativa aspekter men den tog även upp positiva sidor. Koncept F, Consistency Consistency syftat till att garantera att en uppdatering går igenom, att alla ställen med berörd data och kopior av samma data ska ändras när en förfrågan av förändring, tillägg eller borttagning inträffar, det vill säga att data i databasen ska vara konsekvent (Strauch, 2012). Vi har valt att inkludera artiklar oavsett om det är consistency enligt ACID eller BASE. 17 NoSQL! Med rätt att finnas? Mappningen visar att en artikel ställer sig fördelaktigt till NoSQL databasen i consistency jämfört med relationsdatabasen medan 21 visade på motsatsen. Koncept G, Kapacitet Enligt oss är kapacitet hur stort datalagringsutrymme databasen kan hantera. Databasen måste klara av att bearbeta stora mängder data utan att ta för långt tid på sig för att svara på förfrågan. Alla 32 källor som berör detta koncept anser att NoSQL databasers förmåga att hantera och lagra stora mängder data är en fördel jämfört med relationsdatabasers förmåga att göra detsamma. Koncept H, Bearbeta data Bearbeta data handlar om huruvida databasen klarar av att hantera aggregatfunktioner och om det går att hämta och utläsa statistik om den data som finns i databasen. Enligt (PadronMcCarthy, 2005b) är aggregatfunktioner i relationsdatabaserna att arbeta med data för att bland annat räkna ut till exempel summa, maximum eller minimum ur en tabell. Att hämta ut affärsdata ur en databas är något som exempelvis ett företag kan vara intresserad av att göra. Affärsdata är till för att beskriva innehållet och/eller strukturen ur ett visst perspektiv för en viss samling data. Affärsdata är den data som bland annat säger hur många gånger som en viss person har loggat in i databasen. Vilken data som har hämtats, lagrats, ändrats med mera (Zvarevashe & Gotora, 2014). Majoriteten av de källor som explicit tar upp detta koncept anser att NoSQL databasernas förmåga att bearbeta data är negativt jämfört med relationsdatabasernas förmåga att göra detsamma. Endast tre källor är positiva enligt mappningen. Koncept I, Expertis Expertis syftar till att redogöra för hur pass hög kompetens en utvecklare behöver ha för att kunna hantera en NoSQL databas jämfört med att hantera en relationsdatabas. Eftersom NoSQL fortfarande är relativt nytt jämfört med relationsdatabaser så kommer det att ställas högre krav på utvecklarna (Hammes et al., 2014). Av de artiklar som tar upp konceptet är nio artiklar negativt inställda. I och med att NoSQL kräver hög expertis, är det inte att rekommendera om utvecklaren inte har tid att sätta sig in i ämnet/databasen. Två artiklar var positivt inställda. 18 NoSQL! Med rätt att finnas? Koncept J, Support och administration Support enligt oss syftar till att redogöra för hur supportstödet för NoSQL databaser är i jämförelse med relationsdatabaserna och administration syftar till hur förvaltning och underhåll hos NoSQL databaserna är i jämförelse med relationsdatabaserna. Mappningen visar två artiklar som är positivt inställda, elva artiklar som är negativt inställda och två artiklar är både positivt och negativt inställda till NoSQL databasers support och administrationsstöd i förhållande till relationsdatabaserna. Koncept K, Språkstandard Med konceptet språkstandard syftar vi på huruvida artiklarna anser att det är för- och nackdel med att ha en språkstandard samt om NoSQL databaserna har en gemensam språkstandard eller inte. Som visas i mappningen är 17 av artiklarna negativt inställda till att NoSQL inte har ett standardiserat frågespråk och tre var positivt inställda i jämförelse med relationsdatabaserna. Däremot tog en artikel upp både negativa och positiva aspekter. Koncept L, Kostnad Kostnad syftar till att redogöra för hur kostnadseffektiv NoSQL databaserna är i jämförelse med relationsdatabaserna. Nu när dagens databaser behöver kunna hantera mer och mer data så kommer företag i framtiden att behöva utöka sina databaser. Detta innebär att mer pengar behöver spenderas, därför är kostnaden en viktig faktor att ta ställning till vid val av databas (Manoj, 2014; Hammes et al., 2014; Han, E, Le, & Du, 2011). Det som går att utläsa ifrån mappningen är att 18 artiklar säger att NoSQL databaserna jämfört med relationsdatabaserna har bättre kostnadseffektivitet, en artikel tar upp båda negativa och positiva aspekter och ingen artikel ställer sig negativ i detta koncept. 4.1 Mappning Tabell 1 visar alla artiklar som granskades under litteraturstudien och vilka koncept som togs upp i artikeln. Notationen i tabellen visar om artikeln ställer sig fördelaktigt eller inte till NoSQL databasen i förhållande till relationsdatabasen. 19 NoSQL! Med rätt att finnas? Tabell 1. Resultatet av artikelmappningen. Koncept ArtikelNr 1 2 3 4 5 6 7 8 9 10 11 A B C - + + + + + + + D E F G - + + + +&- + + + + 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + + + 37 38 39 + + + 40 41 42 43 44 45 + + + + + + - + + + + + + J - - - K L + + - I + + H + + + - + + + + + + + + - + + + +&- + + + - + - + + + + + + + + - + + + + + + + + + + + + + + + - + + + + + + + + + + + - - +&- + +&- - - - - + + + + + + + + + + + - - - - - - - - - - + + - + + + + - - + + + + + + - + - + + + + - + + + - + + + + + + + + + - + + + +&- + - + + + + + + + + + - + + + + 20 NoSQL! Med rätt att finnas? 46 47 48 49 50 51 52 53 54 55 56 57 58 + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + - + + + - + + + + - + + + - + - 5 Analys Nedan analyseras de artiklar som berör respektive koncept. Sist kommer en sammanfattning av alla koncepten indelad i för- och nackdel. 5.1.1 Koncept A, Horisontell skalbarhet Skalbarhet är motivationen bakom att NoSQL började utvecklas i större skala, då data i NoSQL databaser är enklare att flytta runt mellan olika servrar än i en relationsdatabas (Hammes et al., 2014). Anledningen till varför relationsdatabaser har sämre skalbarhet är på grund av att relationsdatabaser kan ha flera relationer mellan olika tabeller (Zvarevashe & Gotora, 2014). Även Thantriwatte och Keppetiyagama (2011) skriver att NoSQL utvecklades för att ge ett nytt sätt att hantera data. Samtidigt som NoSQL databaser fyller några av de brister relationsdatabaser har, exempelvis som att relationsdatabaser blir ineffektiva vid hantering av stora mängder data (Thantriwatte & Keppetiyagama, 2011). Författaren Pokorny (2013) instämmer också i att relationsdatabaser inte klara av skalbarheten då många webbsidor kräver mer kapacitet och bättre genomströmning i takt med att antalet användare ökar. Däremot är NoSQL bättre anpassad för att snabbt kunna skala horisontellt och hantera tillgängligheten (Zahid et al., 2014). Genom att kostnaden för NoSQL-systemets skalning är linjärt med antalet användare och servrar, så blir det mer kostnads- och prestandaeffektivt (se Figur 20). Vilket relationsdatabaser har svårt att tillhandahålla (Huang & Luo, 2014; Pokorny, 2013; Zaki, 2014). 21 NoSQL! Med rätt att finnas? Figur 20. För att relationsdatabaser ska kunna stödja fler användare eller lagra mer data, behöver de lägga till mera processorer, minne och diskutrymme. NoSQL databaser tillhandahåller en mer skalbar, prestanda- och kostnadseffektiv linjär strategi än relationsdatabaser (Zaki, 2014). Med NoSQL är det möjligt att partitionera data utan att påverka databasen som helhet, vilket i sin tur underlättar horisontell skalning (Hammes et al., 2014). I och med att horisontell skalning innebär att data distribueras mellan olika servrar, så blir det svårare och mer komplicerat att utföra join-operationer i en relationsdatabas (Pokorny, 2013; Bonnet, Laurent, Sala, Laurent, & Sicard, 2011). En anledning till varför det behövs ett smidigt sätt att expandera lagringskapaciteten är att ostrukturerad data tar mer plats än strukturerad data i databasen. Eftersom att NoSQL databaser kan hantera ostrukturerad data, något relationsdatabaser har svårt att göra är det bättre att använda NoSQL databaser i fall kravet är att kunna lagra stora mängder ostrukturerad data (Tauro & Aravindh, 2012; Nance et al., 2013). Det som går att utläsa utifrån mappningen är att NoSQL är att föredra i situationer då det krävs horisontell skalning. 5.1.2 Koncept B, Säkerhet I och med att NoSQL databasmiljön är distribuerande, resulterar detta i stora mängder parallella anslutningar och beräkningar. Detta medför en ökad potentiell attackyta över flera distribuerande noder vilket gör det är komplext att säkra upp ett NoSQL system (Kadebu & Mapanga, 2014; Osawaru & Ahamed, 2014). Medan relationsdatabasens säkerhet är hög med decennier av utförliga studier, så har NoSQL inte granskats lika noggrant. NoSQL brister i säkerhetsegenskaper fastän säkerheten är en av de viktigaste egenskaperna när det gäller horisontell skalning. Eftersom NoSQL är designad 22 NoSQL! Med rätt att finnas? för att tillhandahålla hög tillgänglighet och är skalbar för stora mängder data, så borde säkerheten enligt Enescu (n.d.) prioriteras högre. Däremot så har enligt (Mohamed, Altarfi, & Ismail, 2014) NoSQL databasernas säkerhetsaspekter åsidosatts eftersom NoSQL var framtagen med målet att lösa big data lagringsproblem samt öka prestandan. Jämfört med relationsdatabasens säkerhetsmekanismer har NoSQL ett magert säkerhetslager, därför förlitar sig NoSQL system på extern säkerhet. Utvecklare som använder NoSQL skapar säkerhet i deras mellanprogram för att det inte går att upprätthålla säkerheten i NoSQL databasen (Osawaru & Ahamed, 2014; Mohamed et al., 2014; Zaki, 2014). Bland NoSQL-systemens säkerhetsaspekter brister NoSQL i till exempel datakryptering, svag autentisering, sårbarhet vid SQL injektioner, överbelastningsattacker samt behörighetskontroll (Nance et al., 2013; Osawaru & Ahamed, 2014; Zvarevashe & Gotora, 2014; Kadebu & Mapanga, 2014; Zaki, 2014). Datakryptering För att kunna hålla data konfidentiellt måste applikationer i ett databassystem använda sig av datakryptering men eftersom data i NoSQL databasen lagras öppet går det inte att applicera kryptering (Zahid et al., 2014; Mohamed et al., 2014). Relationsdatabaser har ett mer välutvecklat datakrypteringsstöd än NoSQL databaser. Vilket är bekymmersamt hos NoSQL databaser på grund av att de saknar datakrypteringsmekanismer (Kadebu & Mapanga, 2013; Nance et al., 2013). Dessutom bör inte data lagras som ren text i databasen på grund av att NoSQL har svaga autentiserings- och auktoriseringsmetoder (Osawaru & Ahamed, 2014). Autentisering Autentisering är verifieringsprocessen när en användare vill ha åtkomst till en resurs, databas eller applikation (Zahid et al., 2014; Kadebu & Mapanga, 2014), vilket alla relationsdatabaser i grunden har (Mohamed et al., 2014). I relationsdatabaser finns möjligheten att välja vilken autentiseringsmekanism som ska vara aktiv. Till skillnad från relationsdatabaser kommer de flesta NoSQL databaser utan några autentiseringsmekanismer men det finns externa funktioner som utför detta (Mohamed et al., 2014). Även Osawaru och Ahamed (2014) nämner att olika NoSQL databaser har olika autentiseringstekniker som oftast erbjuds på högre nivåer i lagerarkitekturen. Det finns vissa NoSQL databaser som kan tillämpa autentiseringsmekanismer på enskilda noder men har svårt att genomdriva det till samtliga noder i ett kluster (Zaki, 2014). 23 NoSQL! Med rätt att finnas? Injektioner Det finns många olika injektionstekniker såsom SQL injektion, schema injektion, REST injektion med mera, som på ett otillåtet sätt kan komma åt databasen för skadliga aktiviteter. Genom injektionsattacker kan valfri data läggas till i databasen vilket kan göra databasen otillgänglig och korrumpera databasens innehåll. Eftersom NoSQL använder sig av mekanismer som är starkt sammankopplade så är NoSQL databaser känsligare för injektionsattacker (Osawaru & Ahamed, 2014; Zaki, 2014). Däremot är NoSQL databaser i molnmiljö inte berörda av SQL injektioner eftersom de inte använder sig av relationsdatabasernas frågespråk (Hammes et al., 2014). Som det går att utläsa utifrån mappningen är NoSQL inte lämplig i situationer där säkerheten har hög prioritet. 5.1.3 Koncept C, Prestanda Relationsdatabaser är mer benägna att få deadlocks i takt med att mängden data ökar samt att de också har svårt att hantera flera operationer samtidigt (engelska concurrency). Vilket leder till att mängden läs- och skrivförfrågningar minskar. För att relationsdatabaser ska få snabbare responstid kan de enbart hantera ett fåtal parallella operationer samtidigt (Zvarevashe & Gotora, 2014). I och med att Web 2.0 efterfrågar snabb responstid med hög concurrency så uppfyller inte relationsdatabasen det kravet (Zvarevashe & Gotora, 2014). För att öka hastigheten på förfrågningar, började NoSQL databaser att använda flyktigt minne6. Genom att använda det flyktiga minnet istället för att läsa direkt från hårddisken ökas prestandan och minskar exekveringstiden för varje förfrågan (Abramova et al., 2014). I artikeln av Barmpis och Kolovos (2012) visar resultatet från deras experiment att NoSQL databaserna presterade snabbare i prestanda än relationsdatabasen. För att NoSQL ska kunna uppnå hög prestanda och skalbarhet har de fått ge avkall på säkerhet, consistency och funktionalitet (Osawaru & Ahamed, 2014; Kadebu & Mapanga, 2014; Wayner, 2012; Zahid et al., 2014). Läsbarhet I ett prestandatest där läsbarhetsbelastningen testades visar resultatet att relationsdatabasen klarade sig nästan lika bra som NoSQL databasen (Tudorica & Bucur, 2011; Huang & Luo, 6 Random Access Memory (RAM-minne) eller cache minne. 24 NoSQL! Med rätt att finnas? 2014; Lungu & Tudorica, 2013). Anledningen till att NoSQL läser snabbare än relationsdatabasen är för att relationsdatabasen söker igenom hela databasen något som NoSQL inte gör på grund av key-value lagring (Sharma & Soni, 2014; Moniruzzaman & Hossain, 2013). En annan studie visar på att både relationsdatabasen och NoSQL databasen fungerar tillfredställande men vid hanteringen av strukturerade frågor som exempelvis att gå igenom databasen och räkna antalet nådda noder. Så var NoSQL databasen i vissa fall tio gånger snabbare än relationsdatabasen (Vicknair et al., 2010). Även (Parker et al., 2013) påvisade i sitt läsbarhetsexperiment att NoSQL överlag klarade sig tre gånger bättre än relationsdatabasen. Däremot i en annan studie av Li och Manoharan (2013) visar deras experiment på motsatsen, att relationsdatabasen presterar bättre än två av fem NoSQL databaser i läsbarhet. Eftersom det finns många olika variationer av NoSQL databaser så finns det även NoSQL databaser som relationsdatabasen kan prestera bättre respektive sämre än (Li & Manoharan, 2013). Ytterligare en artikel säger att NoSQL databasen de testade presterade betydligt långsammare än relationsdatabasen vid läsning (Manoj, 2014). Skrivbarhet Tre artiklar visade inga större skillnader mellan relationsdatabaser och NoSQL databaser när det kommer till responstiden vid skrivoperationer (engelska write-operation). I likhet med läsbarhetstesterna finns det olika NoSQL databaser, vissa presterar sämre och andra bättre än relationsdatabaser beroende på vilken den jämförs med (Li & Manoharan, 2013; Parker et al., 2013; van der Veen, van der Waaij, & Meijer, 2012). Fyra andra artiklar visar att NoSQL databaser är snabbare i responstid än relationsdatabasen vid skrivningsoperationer. I artikeln av Tudorica och Bucur (2011) testades två relationsdatabaser mot två NoSQL databaser. Resultaten visar att relationsdatabaserna blir långsammare och slutar att svarar vid mer än 7000 operationer samtidigt. Responstiden blir så långa att de inte skulle vara acceptabla i verkliga situationer (Tudorica & Bucur, 2011). Resultatet stärks av Huang och Luo (2014). I artikel av Manoj (2014) visade skrivbarhetsexperimentet att NoSQL databasen var lite snabbare då den klarade 2000 inserts7 per sekund än relationsdatabasen som klarade 1500 insert per sekund. En anledning till att en relationsdatabas kräver längre tid för att klara 7 Inskrivningar av data i databasen. 25 NoSQL! Med rätt att finnas? skrivoperationer är för att skrivoperationer är den enda operationen som direkt använder sig av hårddisken (Lungu & Tudorica, 2013). Uppdatering och borttagning (Parker et al., 2013) testade tre olika uppdateringsoperationer mellan en relationsdatabas och en NoSQL databas. Först testades att uppdatera uppgifter om en användare i en icke indexerad databas via förnamnet. Resultatet visade att NoSQL databasen presterade långsammare än relationsdatabasen men två av testerna visade att NoSQL databasen presterade bättre än relationsdatabasen på grund av att uppdateringen skedde via id. Li och Manoharan (2013) jämförde sex stycken NoSQL databaser mot en relationsdatabas i radera-operationer (engelska delete operation). Resultaten visade att två av NoSQL databaserna har bättre responstid än relationsdatabasen medan resterande presterade sämre. En av artiklarna i mappningen anser att, även om NoSQL har utvecklats mycket på sistone är deras prestanda fortfarande sämre än relationsdatabasens. Relationsdatabasen var i deras experiment överlag snabbare än NoSQL databaserna. Relationsdatabasens frågespråk möjliggör för systemet att prestera och köras mer effektivt än NoSQL. Även med hjälp av MapReduce program8 kunde inte NoSQL databaserna öka i prestanda. Relationsdatabasen kunde också hantera flera kunder samtidigt med bättre responstid än NoSQL databasen (Floratou, Teletia, DeWitt, Patel, & Zhang, 2012). Utifrån vår mappning är NoSQL databasen att föredra i de situationer där prestanda är ett viktigt krav samt då läs- och skrivbarhet är det som används mest. 5.1.4 Koncept D, Tillgänglighet Web 2.0 orsakade att nya applikationer som ska kunna lagra och hantera stora mängder med data skapades. Dessa applikationer behöver mer tillgänglighet än vad relationsdatabaserna kan tillhandahålla. Eftersom interaktiva webbapplikationer kräver hög tillgänglighet på databasen kostar det pengar när applikationer ligger nere (Mohamed et al., 2014; Kadebu & Mapanga, 2013). Ett annat problem är concurrency, då mer och mer information hämtas från nätet kräver det bra anslutningar för användaren att nå data (Tauro & Aravindh, 2012; Zvarevashe & Gotora, 2014). 8 Är en programmeringsmodell och tillhörande implementation för hantering av stora mängder data (Dean & Gnemawat, 2008). 26 NoSQL! Med rätt att finnas? För att kunna upprätthålla hög tillgänglighet är det att rekommendera att lägga databasen i ett distribuerat nätverk, så kallat kluster. Detta medför att en nod enkelt kan plockas ut ur klustret för exempelvis underhåll utan att påverka databasen. På grund av detta har ett ökat antal företag anammat olika typer av NoSQL databaser till sina verksamheter (Mohamed et al., 2014; Kadebu & Mapanga, 2013). I takt med att datamängden ökar får relationsdatabaserna problem med prestandan, något som är relaterat till tillgängligheten. Detta är ytterligare en anledning till att NoSQL databaserna skapades (Sharma & Soni, 2014). Relationsdatabaserna kan inte garantera tillgängligheten, NoSQL databaserna kan däremot göra detta delvis genom att offra säkerhet och consistency (Sharma & Soni, 2014; Zahid et al., 2014; Mohamed et al., 2014). För att kunna tillhandahålla hög tillgänglighet så är många systemutvecklare villig att överge ACID egenskaperna vid transaktioner. Detta för att många användare tolererar att applikationen inte alltid visar den senaste informationen. Till exempel att användaren inte upptäcker att varan de ha lagt i varukorgen är slutsåld förrän de genomför köpet (Cattell, 2011). Däremot anser (Mohamed et al., 2014) att NoSQL passar bäst till molndatabaser eftersom alla egenskaper NoSQL har är önskvärda för databaser i molnet. I och med att molndatabaserna inte är kompatibla med ACID egenskaperna medför det att molndatabaserna får en förbättrad tillgänglighet, skalbarhet, prestanda och flexibilitet. En anledning till att tillämpa NoSQL är för att den har flexibel arkitektur och kapacitet för stora datamängder medan relationsdatabaser är svårare att skala horisontellt samt inte passar till molnapplikationer. NoSQL har blivit populärt för dess höga tillgänglighet, tillförlitlighet och skalbarhet (Zahid et al., 2014; Shalini & Dhamodharan, 2014; Gudivada, Rao, & Raghavan, 2014; Mohamed et al., 2014). Enligt (Hammes et al., 2014) samt (Rith, Lehmayr, & Meyer-Wegener, 2014) kan tillgängligheten vara den viktigaste NoSQL implementationen. NoSQL databasen är utformad för att stödja tillgängligheten av data för att tillfredsställa slutanvändaren och är inte skapad för att samla in affärsdata till företag. Detta sker genom att skapa redundanta replikationer av data i databasen för att försäkra snabbare kommunikation (Indrawan-Santiago, 2012). Det som går att utläsa utifrån mappningen är att NoSQL databasen är lämplig om tillgänglighet är en viktig fråga för databasutvecklaren. 27 NoSQL! Med rätt att finnas? 5.1.5 Koncept E, Anpassningsbar Flera av de artiklarna som ställer sig positivt säger att NoSQL databaser är mer flexibla och anpassningsbara än vad relationsdatabaserna är. På grund av att de inte har strikta fördefinierade datamodeller eller scheman, till skillnad från relationsdatabaserna där schemat måste vara definierat före datalagringen. På grund av att möjligheten till användning av SQL frågespråket inte finns i NoSQL databaserna leder det till enklare hämtning och lagring av data oavsett datastruktur (Abramova et al., 2014; Mohamed et al., 2014; Dykstra, 2012; Bonnet et al., 2011). Dessutom kan dataformatet i NoSQL databaser ändras när som helst utan att databasen skadas. Vilket gör databaserna flexibla som i sin tur leder till att webbtjänsterna enkelt kan hantera användarnas data (Huang & Luo, 2014). Wayner (2012) ifrågasätter i sin artikel en av NoSQL databasernas fördelar. Nämligen NoSQL databasens flexibilitet när det kommer till schema. Han menar att flexibilitet är bra eftersom den kan snabba upp utvecklingsprocessen om den används rätt. Det han kritiserar är att friheten leder till att varje team som hanterar databasen sätter sina egna nycklar vilket kan resultera i att olika team sätter in samma data på olika sätt. Exempelvis ett fält där användarnamnet ska stå kan nyckeln som identifierar data heta olika beroende på vilken utvecklare som döper nyckeln (Wayner, 2012). Det kan till exempel bli: "användarnamn", "anamn", "anv" och så vidare. I och med att utvecklaren kan designa NoSQL databasen som han eller hon vill kan det i längden förhindra databasens anpassningsförmåga och skalbarhet menar (Özcan et al., 2014). Om anpassningsbarhet är något som eftersträvas vid val av databas så är NoSQL databaser att föredra. 5.1.6 Koncept F, Consistency När NoSQL återintroducerades var det fokus på att kunna hantera stora mängder data och skalbarhet dock på bekostnad av consistency och säkerhet (Zahid et al., 2014; Kadebu & Mapanga, 2014). Enligt (Özcan et al., 2014), (Nayak et al., 2013) samt Sharma och Soni (2014) offrar NoSQL databaserna ACID egenskaperna för att uppnå hög skalbarhet och tillgänglighet. De flesta av NoSQL databaserna stödjer enbart eventual consistency och förskjuter transaktionshanteringen till applikationslagret. Med eventual consistency garanteras inte användaren konsekvent resultat vid en given tidpunkt eftersom varje nod inte kan vara helt 28 NoSQL! Med rätt att finnas? synkroniserad med den noden som håller den senaste uppdateringen av data (Osawaru & Ahamed, 2014; Pokorny, 2013). Vid till exempel utformningen av ett bankomatsystem är inte eventual consistency att föredra men i praktiken menar Pokorny (2013) att tillgängligheten övertrumfar consistency dock med en viss risk. Enligt (Hammes et al., 2014) måste en transaktion bli framgångsrikt slutförd innan ändringar kan åtas till huvuddatabasen, sedan kan huvuddatabasen uppdatera resterande dubbletter om det finns. Problemet är enligt Wayner (2012) är att NoSQL gör det svårt att hålla de olika posterna konsekventa. Det finns inga transaktioner som kan se till att alla förändringar i flera tabeller görs samtidigt och om ett fel skulle uppstå kan hela databasen bli inkonsekvent. I artikeln av Tudorica och Bucur (2011) visar deras kvalitativa undersökning av relationsdatabasen och NoSQL databasen att databaserna erbjuder likvärdiga egenskaper förutom i consistency. Relationsdatabasen var den enda i undersökningen som uppfyllde ACID egenskaperna fullt ut. Det finns NoSQL databaser som erbjuder transaktionskontroll över data skriven till en nod och låter utvecklaren bestämma consistency på valfritt antal noder. Ett flertal NoSQL databaser experimenterar med att lägga till denna typ av transaktionskontrollsfunktioner. För att få perfekt consistency måste alla noder vara uppdaterade med den senaste versionen av data, vilket kan ta lång tid (Wayner, 2012). Enligt (Bonnet et al., 2011) gör NoSQL ett val att försvaga consistency för att förbättra tillgänglighet och prestanda. Vid användning av ett NoSQL databassystem måste utvecklaren tänka på att consistency inte är den viktigaste egenskapen. Om databasmodellen inte kräver stark consistency är det inte heller ett relevant problem vilket gör att NoSQL databasen blir det logiska valet. Nyckeln till att lösa problemet med den ökade belastningen av nätverkstrafiken är att använda cache eller att garantera data consistency och på så sätt minskar tycket på databasservern. Även om relationsdatabaserna kan vara distribuerade så är NoSQL databaser framför allt bättre än relationsdatabaser på att hantera data consistency i en distribuerad miljö (Xiang, Hou, & Zhou, 2010). Fel! Hittar inte referenskälla.Är consistency viktigt för databasen är inte NoSQL databaser det lämpliga valet. 29 NoSQL! Med rätt att finnas? 5.1.7 Koncept G, Kapacitet Google's BigTable var det som stimulerade populariteten för NoSQL databaserna och det som bäst visade på bristerna i relationsdatabasernas skalbarhet. Anledningen till att Google behövde en ny typ av databas var på grund av deras evigt växande mängd med semistrukturerad data som var distribuerade i olika datacenter världen över (IndrawanSantiago, 2012). Det finns ett behov av att kunna hantera big data inom bland annat de kommersiella områdena och vid hantering av stora mängder data i en relationsdatabas blir operationer som join ohanterliga (Indrawan-Santiago, 2012). Applikationer som sociala nätverkstjänster (SNS) och sökmotorer måste kunna tillgodose effektiv datalagring på petabytenivå samtidigt som de ska kunna bemöta behovet av miljontals datatrafikanter (Zvarevashe & Gotora, 2014; Han et al., 2011), vilket dagens relationsdatabaser inte har möjlighet att göra (Zvarevashe & Gotora, 2014; Tauro & Aravindh, 2012). NoSQL databasen togs fram för att bemöta lagringsbehovet av stora mängder datavolymer i key-value lagring (Abramova et al., 2014). För att kunna lagra stora datavolymer fordras servrar med större kapacitet och skalningsmöjligheter vilket är en begränsning för relationsdatabaserna (Abramova et al., 2014). Eftersom relationsdatabaserna är mer lämpade för vertikal skalning så kan det vara kostsamt att uppgradera kapaciteten, vilket gör att relationsdatabaserna är olämplig vid lagring av stora mängder data (Xiang et al., 2010). Den främsta fördelen med NoSQL databaserna är att de kan hantera ostrukturerad data, därför används NoSQL databaserna i SNS och big databearbetning (Sharma & Soni, 2014; Xiang et al., 2010). Det är därför många verksamheter som lagrar stora mängder ostrukturerad data numera allt oftare använder sig av NoSQL databaser (Moniruzzaman & Hossain, 2013; Zaki, 2014). NoSQL databasen passar att använda i applikationer som hanterar stora transaktionsvolymer och har behov av låg responstid för att komma åt massiv information samt behöver bra tillgänglighet även när databasmiljön är opålitlig. Företag som använder relationsdatabaser för att uppnå dessa mål började att bygga ut databaserna till större kluster. Företagen som misslyckades med skalningen av databasen fick istället skala ner sin existerande relationsdatabas (Nance et al., 2013). Tudorica och Bucur (2011) konstaterar att eftersom NoSQL databaserna är konstruerade för att hantera stora databaser så är det ingen ide att jämföra dem med relationsdatabaserna på 30 NoSQL! Med rätt att finnas? grund av att det inte skulle tillföra något. De hävdar även att det är allmän kännedom att den största relationsdatabasen inte kan hantera datamängder över en viss gräns utan minnes caching och utökad fragmentering. I lägen över denna gräns blir relationsdatabasen för långsam för att vara användbar i någon situation. För att få en robust och korrekt databas ska den uppfylla ACID egenskaperna men när datastorleken blir stor är det svårt att upprätthålla dessa egenskaper. Det är därför NoSQL databaserna fokuserar på BASE principerna istället (Abramova & Bernardino, 2013). Faktum är att med stora datasamlingar blir det näst intill omöjligt att identifiera farlig information som kan skada databasen (Osawaru & Ahamed, 2014). Det som går att utläsas från mappningen är att NoSQL är den databasen som föredras vid lagring av stora mängder ostrukturerad data vilket även (Parker et al., 2013) och (Nance et al., 2013) bekräftar. 5.1.8 Koncept H, Bearbeta data Enligt Zvarevashe och Gotora (2014) är bristen på affärsanalytiska data en av de bidragande anledningarna till NoSQL databasens omognad (se Figur 4). I och med att NoSQL databasen utvecklades för att tillmötesgå skalningskravet som moderna Web 2.0 applikationer kräver, så har NoSQL databaserna inte utvecklat funktioner för att hämta affärsdata. Något som är viktigt för företag att kunna göra då det kan förbättra verksamhetens konkurrenskraft. NoSQL databaser erbjuder få funktioner för ad-hoc frågor och analyser. Även enkla frågeoperationer kräver programmeringsexpertis och vanligt använda business intelligence verktyg fungerar inte i NoSQL (Zvarevashe & Gotora, 2014). Eftersom NoSQL mest stödjer get och put gränssnitt har de svårt att erbjuda enkla grupperingar och aggregatstöd (Özcan et al., 2014). Enligt Indrawan-Santiago (2012) var NoSQL databaser designade för att stödja tillgängligheten av data till slutanvändare snarare än till att hjälpa vid insamling av affärsdata för beslutsfattning. Därför har NoSQL väldigt begränsat frågestöd för detta. Till skillnad från relationsdatabaserna så behöver NoSQL utvecklarna vara skickligare för att kunna ta fram affärsdata. Detta på grund av att relationsdatabaserna har bättre verktyg för affärsanalys. NoSQL är en stor samling databasmodeller som inte följer relationsdatabasens modell vilket gör att de sällan använder sig av SQL språket vid bearbetning av data (Huang & Luo, 2014). 31 NoSQL! Med rätt att finnas? På grund av att NoSQL databaser är horisontellt distribuerade stödjer de inte operationer som join och order by. Denna restriktion gäller även för horisontellt distribuerade relationsdatabaser. Det går att lösa detta problem genom att lägga join-operationen på klientlagret (Pokorny, 2013; Osawaru & Ahamed, 2014). En kvalitativ undersökning gjord av Shalini och Dhamodharan (2014) visar att NoSQL databaserna till skillnad från relationsdatabaserna inte har stöd för dataanalys via bland annat aggregatfunktioner. De säger även att relationsdatabaserna har ett specifikt språk för att hantera data i databasen. Något som NoSQL får göra genom ett objektorienterat applikationsprogrammeringsgränssnitt (API). I ett läshastighetstest av aggregatoperationen utfört av Manoj (2014) visar resultaten att NoSQL databasen klarade sig signifikant mycket sämre än relationsdatabasen. Manoj (2014) menar att vissa moderna NoSQL databaser prioriterar skalbarhet över consistency vilket leder till att join- och aggregatfunktioner har utelämnats. Artikel av (Bonnet et al., 2011) säger att vissa NoSQL databaser har implementerat MapReduce ramverket för att snabbt kunna aggregera data. Däremot i artikeln av (Floratou et al., 2012) visas att även med hjälp av MapReduce kunde inte NoSQL databasen klara sig bättre än relationsdatabasen. (Parker et al., 2013) jämförde prestandan mellan relationsdatabasen och NoSQL databasen i aggregatfunktionen vilket visar att NoSQL databasen presterade cirka 23 gånger långsammare än relationsdatabasen. Däremot presterade NoSQL databasen lika bra och i bland bättre än relationsdatabasen vid enkla frågor som insert, update och select. I (Vicknair et al., 2010) visade deras resultat att NoSQL databasen presterade upp till tio gånger bättre i enkla frågor än relationsdatabasen. Anledningen enligt Wayner (2012) till varför NoSQL databasen presterar långsammare vid beräkningar är för att all data först måste hämtas för att sedan kunna bearbetas. Det är tiden för att hämta data, det vill säga bandbredden som kostar tid och inte själva beräkningen. I relationsdatabasen när summan av endast en kolumn efterfrågas utförs den beräkningen i databasen för att sedan skickas tillbaka vilket resulterar i snabbare responstid. Vid stort behov av affärsdata och användande av aggregatfunktioner är inte NoSQL databasen att föredra på grund av att: ett; den tillhandhåller inte stöd för aggregatfunktioner, två; NoSQL databasen är långsammare än relationsdatabasen på att ta fram affärsdata, tre; det finns ingen 32 NoSQL! Med rätt att finnas? databasdesignstandard och fyra; den följer inte relationsdatabasens principer för logisk och fysisk dataoberoende. 5.1.9 Koncept I, Expertis Relationsdatabasen utför komplexa operationer lätt medan NoSQL databasen gör det nästan omöjligt svårt för utvecklaren att göra detsamma enligt Cattell (2011) samt Kadebu och Mapanga (2014). Eftersom inte alla NoSQL databaser har stöd för ad-hoc frågor krävs högre programmeringsexpertis hos utvecklarna av NoSQL databaser än hos relationsdatabasernas utvecklare (Indrawan-Santiago, 2012). En anledning till att många organisationer inte väljer NoSQL databaser är för att de känner sig osäkra på tekniken då den är obekant för dem (Naheman & Wei, 2013). En fördel med NoSQL databaserna är enligt Leavitt (2010) att det är lättare att arbeta med dem för de utvecklare som inte vana vid SQL språket. NoSQL databasens utvecklingsprocess är annorlunda från relationsdatabasens då det kräver en utvecklarcentrerad strategi från tillämpningens början till slut. I början av databasmodelleringsprocessen hos NoSQL databaserna utförs det av en applikationsarkitekt eller en systemutvecklare medan hos relationsdatabaserna är det dataarkitekter och datamodellerare som utför datamodelleringsuppgifterna. Ofta börjar dataarkitekter eller datamodellerare med att bygga konceptuella och logiska datamodeller. Transaktioner och frågeoperationer involveras inte förrän vid utformningen av den fysiska relationsdatabasen. Däremot för NoSQL databaser börjar applikationsarkitekten eller systemutvecklaren med att identifiera applikationens frågor och utifrån det strukturera datamodellen för att effektivt stödja frågorna, därmed finns det en stark koppling mellan applikationens och datamodellens frågor. Detta medför att förändringar av frågor på ena stället påverka andra, exempelvis om utvecklaren ändrar i datamodellens frågor så måste applikationens frågor också ändras och vice versa (Leavitt, 2010). Vilket är tvärtemot relationsdatabasernas beprövade principer för logisk och fysisk dataoberoende (Gudivada et al., 2014). 5.1.10 Koncept J, Support/administration En orsak till bristande förtroende hos stora företag är på grund av att NoSQL databasen är en relativt ny teknik vilket gör att företagen väljer relationsdatabasen eftersom den har tillförlitlig support och förvaltning (Barmpis & Kolovos, 2012; Vicknair et al., 2010). NoSQL databasernas mål är att tillhandahålla en administrationslös lösning men verkligheten är en annan. Dagens NoSQL databaser kräver en hel del skicklighet för att installeras och stor 33 NoSQL! Med rätt att finnas? ansträngning för att underhållas (Zvarevashe & Gotora, 2014; Nayak et al., 2013). Detta för att NoSQL databaser inte har mekanismer för utförande och hantering av data consistency (Tauro & Aravindh, 2012). Eftersom relationsdatabaser har ett enhetligt språk resulterar det i bättre support och enklare administration. Dessutom är kunskapen om relationsdatabaserna generellt mer spridda än NoSQL databasernas vilket innebär att relationsdatabaserna inte är lika sårbara som NoSQL databaserna om företaget som har skapat och tillhandahåller databasen försvinner (Nayak et al., 2013; Zvarevashe & Gotora, 2014; Leavitt, 2010). Stor arbetsbörda läggs på databasadministratörer eftersom administratörerna i NoSQL databaserna måste skapa egna API:er bland annat för dataåtkomst. Vilket kan vara en mardröm i situationer där en applikation ska flyttas från en NoSQL databas till en annan (Mohan, 2013). Huang och Luo (2014) menar att företagen förväntar sig att deras databassystem ska ha tillgång till trovärdig support hela tiden, något som leverantörerna av relationsdatabaser i hög grad kan erbjuda. Däremot kan inte de små företag som levererar NoSQL databaserna tillhandahålla samma supportkvalitet. Två artiklar nämner både positiva och negativa aspekter av NoSQL databasernas support och administration. Ena artikeln av (Abramova et al., 2014) säger att NoSQL möjliggör enklare förvaltning och tar bort behovet av ändringar i applikation eller databasschema. NoSQL databaser kan dra nytta av nya kluster och noder automatiskt utan att behöva manuell hantering från databasadministratörer. Eftersom databasadministration vid stora mängder data kan vara en svår uppgift att hantera. I artikeln av Kadebu och Mapanga (2013) säger de att NoSQL databaserna generellt sätt har lägre administrationskrav, är billigare att förvalta samt ger en hög prestanda. Utmaningen med NoSQL databaserna är bristen på standardiserade databasmodeller och expertis för effektiv databashjälp (Kadebu & Mapanga, 2014). Artikeln av Zaki (2014) menar att i och med de schemalösa datamodellerna och flexibla egenskaperna hos NoSQL databaserna, så anpassas databasen efter organisationens krav och förenklar kommunikationen mellan applikationen och databasen. Vilket resulterar i färre kodrader som i sin tur underlättar felsökning och förvaltning. Manoj (2014) säger att med automatisk fragmentering av databaserna i NoSQL eliminerar det ett visst administrativt besvär som manuell fragmentering skulle innebära vid horisontell skalning. 34 NoSQL! Med rätt att finnas? Relationsdatabasen är fortfarande det dominerande databassystemet på marknaden, vilket innebär att företag med stort behov av support inte borde använda sig av en NoSQL databas då den än så länge inte har en utvecklad supporthjälp. 5.1.11 Koncept K, Språkstandard För att enkelt kunna öka kapaciteten genom horisontell skalning offrar NoSQL databaserna en fast datastruktur och ett kraftfullt frågespråk (van der Veen et al., 2012). I och med att utvecklingen av NoSQL har koncentrerats på att övervinna några av relationsdatabasernas brister så har utvecklingen av NoSQL's frågespråk blivit åsidosatt. På grund av detta har fördelarna med ett högnivåfrågespråk och applikationsoberoende också försummats (Mohan, 2013). Ett sofistikerat frågespråk som SQL kommer alltid att överglänsa ett osofistikerat frågespråk som de NoSQL tillhandahåller enligt Wayner (2012). De flesta NoSQL databaser har inte stöd för högnivåspråk med inbyggd frågeoptimering utan istället förväntas applikationsutvecklaren att ta hand om optimeringen men de få optimeringar som finns är inte lika sofistikerade som de relationsdatabaserna har. Detta innebär att NoSQL databaserna idag inte har en gemensam frågespråksstandard (Mohan, 2013; Özcan et al., 2014; Barmpis & Kolovos, 2012; Parker et al., 2013; Pokorný, 2014). Det gemensamma språket hos relationsdatabaserna gör att övergångar mellan olika implementationer är enklare än med NoSQL databaserna, eftersom de enskilda NoSQL databasernas frågespråk är specifika för just dem (Vicknair et al., 2010). Enligt Stonebraker (2011) erbjuder SQL en enkel programmering för ad-hoc förfrågningar. Han menar också att det är som att gå tillbaka i utvecklingen då utvecklaren måste formulera egna metoder för att hämta data i en NoSQL databas. Vidare menar Lungu och Tudorica (2013) att nästan alla NoSQL databaserna är som främmande för varandra eftersom de är designade med olika strukturer, koncept och tekniker. Så om någon applikation skulle behöva använda sig av NoSQL databasen stöter de svårigheten att behöva tala flera språk. I artikeln av Leavitt (2010) nämner han att manuell frågeprogrammering krävs då NoSQL databaserna inte kan samarbeta med SQL. Detta kan vara snabbt för enkla uppgifter men tidskrävande för mer komplexa uppgifter. Däremot menar (Atzeni et al., 2013) att relationsdatabasmodellen och deras dominerande språk (SQL) måste skiljas åt när det kommer till relationsdatabaser. Relationsmodellen och SQL uppfanns vid en tid då datahanteringen främst var riktad för administrativa applikationer. Målet då var att stödja applikationer för exempelvis 35 NoSQL! Med rätt att finnas? bankverksamheter men informationshanteringen i dagens IT-samhälle har utvecklats. Exempel på denna typ av information är bland annat semi- eller ostrukturerad data vilket relationsmodellen och SQL inte var skapad för att hantera (Atzeni et al., 2013; Özcan et al., 2014). (Nayak et al., 2013) talar om ett försök till att skapa ett familjärt, standardiserat NoSQL frågespråk. Det frågespråk artikeln nämner heter UnQL som har SQL-liknade syntax vilket underlättar för utvecklare som redan kan SQL. Med UnQL finns det även funktioner som möjliggör att göra val och manipulering av komplexa dokumentstrukturer. Det i sin tur tillhandahåller NoSQL databasens flexibla schemafria design samt utnyttjar relationsdatabasens strukturerade tabellformat. Detta koncept förekommer ofta när det skrivs om nackdelar med NoSQL bland annat skriver Bartholomew (2010) att det inte finns och kommer aldrig att finnas något frågespråk eller API som är gemensamt för NoSQL databaser eftersom alla NoSQL databaser är så olika (Bartholomew, 2010) och majoriteten av artiklarna i mappningen säger detsamma. 5.1.12 Koncept L, Kostnad Enligt (Nance et al., 2013) lämpar sig inte relationsdatabasen för de moderna webbapplikationerna som ska kunna stödja miljontals samtidigt anslutna användare. NoSQL databasteknologin har uppstått för att ge ett kostnadseffektivt databashanteringsalternativ för de moderna webb- och mobilapplikationerna. Relationsdatabaserna enligt Pokorny (2013) tillhandahåller inte ett kostnadseffektivt sätt att expandera databasens lagringsutrymme. NoSQL databaser kan köras i kluster av billiga dataservrar vilket innebär att utskalningen blir kostnadseffektivt. Dessutom är de flesta NoSQL databaserna open source utan dyra licenskostnader (Naheman & Wei, 2013; Nance et al., 2013; Abramova et al., 2014). För en del utvecklare är just detta attraktivt ur ett kostnadsperspektiv (Mohan, 2013; Atzeni et al., 2013). Nackdelen med NoSQL databaser är att det kan vara en ekonomisk börda för ett företag att upprätthålla tillförlitlig lagringskapacitet för flera uppsättningar redundant ostrukturerad data. Samtidigt måste kostnadsnyttan ställas i paritet med kostnaden av att anställa utvecklare och systemadministratörer för förvaltning av relationsdatabasen. En annan nackdel är att NoSQL databasen endast har funnits i mindre ett decennium vilket gör den till en ung teknik i 36 NoSQL! Med rätt att finnas? jämförelse med relationsdatabasen. Detta innebär att det finns få erfarna utvecklare inom NoSQL vilket kan ge höga kostnader vid supportbehov (Hammes et al., 2014). Om kostnaden för att utöka lagringskapaciteten är högt prioriterat är NoSQL databaser lämpligare än relationsdatabaserna. 5.2 NoSQL databasernas för- och nackdelar Nedan presenteras en sammanfattning av NoSQL databasens för- respektive nackdelar i punktform. 5.2.1 NoSQL databasernas fördelar Horisontell skalbarhet - Utifrån litteraturstudien går det att utläsa att NoSQL helt klart är bättre när det kommer till horisontell skalning av en databas. Ingen av artiklarna ansåg att NoSQL databasens förmåga att hantera skalning var negativ. Detta beror mycket på att NoSQL databaserna är utformade för horisontell skalning. Prestanda - Detta är ytterligare ett område där NoSQL databaserna presterar bättre än relationsdatabaserna. Ett antal artiklar har gjort prestandatester för att mäta responstiden på olika operationer. Överlag presterade NoSQL databasen bättre. Tillgänglighet - Alla artiklar som behandlade konceptet var positiv inställda. Eftersom NoSQL databaser placeras i ett kluster av noder så är det lätt att ta bort och lägga till noder utan att störa databasen funktion som helhet. Den replikation som NoSQL databasen tillhandahåller gör det möjligt att alltid ha samma information tillgängligt även om en nod ligger nere. Anpassningsbarhet - I och med att det inte finns någon generell standard för hur NoSQL databasen ska se ut och att det finns över 150 stycken olika NoSQL databaser samt att de oftast är av open souce-typ gör att utvecklaren får friheten att anpassa efter sina behov. Därför har NoSQL en klar fördel över relationsdatabasen i anpassningsbarhet. Kapacitet - NoSQL är skapat för att hantera enorma mängder data, vilket mappningen tydligt visar på. Kostnad - Bland alla artiklar som tar upp konceptet råder det i stort sätt koncensus över att NoSQL är mer kostnadseffektiv än relationsdatabasen. 37 NoSQL! Med rätt att finnas? 5.2.2 NoSQL databasernas nackdelar Säkerhet - Alla artiklar förutom en som tar upp konceptet säger att NoSQL databaserna brister i säkerheten, speciellt i datakryptering, autentisering och skydd mot injektion. Consistency - Consistency är ännu ett område där NoSQL databaserna brister vilket mappningen helt klart påvisar. Bearbeta data - NoSQL databaserna har sämre stöd för aggregatfunktioner än relationsdatabaserna. Dessutom är NoSQL inte lämplig för att hämta adekvat affärsdata. Expertis - Mycket expertis krävs för att kunna skapa och underhålla NoSQL databasen. Support och administration - Bristen på expertis inom området och de faktum att NoSQL är en ung databasteknik gör att det blir svårt att underhålla och administrera. Avsaknad av språkstandard - Även om det ibland kan vara en fördel att inte ha en språkstandard för att utvecklaren ska kunna anpassa databasen efter sina egna behov. Så visar ändå mappningen att majoriteten av artiklarna ansar att det är en nackdel. 6 Diskussion Här följer en diskussion om i vilka situationer NoSQL kan vara lämplig respektive olämplig. Därefter diskuterar vi om hur vi ser på framtiden för databaser. NoSQL databaser har enligt (Özcan et al., 2014) blivit populära bland systemvecklare trots att NoSQL databaser brister på olika punkter som bland annat frånvaro av standardspråk och stödjer för det mesta enbart läs- och skrivgränssnitt. Anledningen till varför NoSQL databaser blivit omtyckta är för att de bland annat erbjuder flexibla scheman, hög skalbarhet, är enkla att implementera med mera (Özcan et al., 2014). Trots att NoSQL databaserna är populära bland systemutvecklare så är det inte många företag som känner till NoSQL. En undersökning av Naheman och Wei (2013) visar att 44 procent av 755 stycken systemutvecklare vid företag aldrig har hört talas om NoSQL, 22 procent är intresserad men behöver mer kunskap inom området och endast en procent använder NoSQL som en viktig del av sin strategi (se Figur 11). 38 NoSQL! Med rätt att finnas? Figur 11. Visar hur många procent som känner till eller använder sig av NoSQL databaser (Naheman & Wei, 2013). En undersökning utförd av Couchbase (2012) bland 1300 respondenter visar att den största anledningen till att många väljer NoSQL databaser är NoSQL databasens flexibla scheman. Andra orsaker är skalbarheten, låg responstid, kostnad med mera (se Figur12). Figur 12. Orsaker som driver till valet att gå över till NoSQL (Couchbase, 2012). 6.1 När är NoSQL lämplig respektive olämplig? Genom litteraturstudien har vi identifierat att fördelarna med NoSQL databaserna gör att de är lämpliga i situationer där horisontell skalbarhet är en viktig prioritet. Exempelvis som hos sökmotorer, sociala nätverk och e-handels hemsidor eftersom dessa lagrar enorma mängder oftast ostrukturerad data. De har även behov av att kunna utöka sin databas i proportion till antalet användare och mängden data som dessa användare genererar. Dessa applikationer har inte stort krav på att data consistency. Därför anser vi att NoSQL databaser är lämpligt för dessa ändamål. 39 NoSQL! Med rätt att finnas? I sociala applikationer som Facebook är consistency inte den viktigaste egenskapen som ställs på databasen. Däremot är horisontell skalning, tillgången till stor datalagring, förmågan att lagra ostrukturerad data och tillgängligheten viktiga egenskaper. På grund av den stora mängden ostrukturerad data som sociala nätverk hanterar, behöver de ha kostnadseffektiva alternativ till utökningen av databasen. En artikel av Kajeepeta (2012) påvisar att NoSQL databasen passar perfekt i de fall det handlar om stora volymer av data, alltså minst några terabyte data med 10 000 eller 20 000 samtidiga lagringar per sekund som exempel. När databasen kommer upp till den belastningen måste företagen fokusera på skalningsmöjligheter som inte kostar en förmögenhet (Kajeepeta, 2012). Därför anser vi att NoSQL databaser passar för sociala media applikationer. Den stora användarbelastningen som sociala nätverk har, sätter krav på hög tillgänglighet på databasens innehåll. Däremot är det mindre viktigt att den data som visas är den senaste och mest aktuella informationen. Vilket gör att NoSQL databasen är lämplig vid utveckling av sociala media applikationer. Eftersom slutanvändare inte vill uppleva en lång väntetid vid exempelvis användning av sökmotorer så är en snabb responstid en viktig faktor. Andra faktorer som är viktiga när det kommer till sökmotorer är att sökorden ska resultera i relevanta resultat, att den fungera trots att en del av databasen ligger nere och att kunna söka igenom stora mängder ostrukturerad data. Vissa NoSQL databaser använder sig av ett key-value system för att optimera sökningar i databasen. Dessa är speciellt lämpliga för sökmotorer. NoSQL databasens key-value system testades av Sharma och Soni (2014) som visade att NoSQL systemet presterade bättre än relationsdatabasen. Även (Parker et al., 2013) styrker detta påstående genom deras läsbarhetsexperiment där NoSQL databasen klarade sig bättre än relationsdatabasen. För bank-, finans-, och handelsverksamheter tror vi inte NoSQL databaser skulle vara lämplig då de inte har den nivå av säkerhet och consistency som dessa verksamheter kräver. Eftersom de oftast hanterar känslig information om kunderna. Två andra faktorer som gör NoSQL olämplig för dessa verksamheter är att de inte har stöd för aggregatfunktioner eller affärsdata för analys. Bankvärlden har trots allt nytta av att kunna göra beräkningar för till exempel lån, räntor med mera. Med NoSQL databaser skulle responstiden vara för stor för vad dessa branscher skulle kunna acceptera enligt oss. Detta är i enlighet med (Parker et al., 2013) som har gjort prestandatestet på aggregatfunktioner i NoSQL databaser och relationsdatabaser. Dessa tester visar att relationsdatabaserna är upp till 23 gånger snabbare än NoSQL databaserna vilket i en verklig situation som i bankverksamheterna skulle innebära att NoSQL 40 NoSQL! Med rätt att finnas? databasen är allt för långsam. Ytterligare en orsak till varför NoSQL inte är att föredra inom bankvärlden är deras brist på consistency. NoSQL stödjer endast eventual consistency vilket betyder att det inte finns garantier för att transaktioner fullföljs. En krasch av databasen skulle kunna innebära att data blir inkonsekvent. "The idea of “eventual consistency” for such applications could lead to chaos in the business world." är ett citat taget från artikeln av (Atzeni et al., 2013, s. 67) som beskriver våra tankar. Ett annat område där NoSQL databaser inte skulle vara lämpliga är hälso- och sjukvårdsverksamheter eftersom de är starkt styrda av sekretesslagen. Därmed är säkerheten en avgörande faktor för varför NoSQL databaserna inte är passande. Speciellt eftersom NoSQL inte har datakryptering eller något skydd för injektion samt är känslig för överbelastningsattacker (Kadebu & Mapanga, 2014; Osawaru & Ahamed, 2014). En annan faktor som är viktig för både bank-, finans-, handel- och sjukvårdverksamheten är tillgång till support och administration. Eftersom det vid kritiska lägen krävs att problemen löses så snabbt som möjligt. I och med att företagen som levererar NoSQL databaser oftast är små kan de inte alltid tillhandahålla tillräcklig support (Zvarevashe & Gotora, 2014). Kunskapen om dessa databaser är även en faktor som bidrar till bristerna i supportmöjligheterna eftersom NoSQL är relativt ungt (Hammes et al., 2014). Med NoSQL databasernas flexibla schemalösa struktur ges utvecklarna möjlighet att skapa en mer dynamisk databas som är bra till applikationer som är i behov av ständiga förändringar och inte behöver komplexa operationer. NoSQL databasernas anpassningsförmåga gör att utvecklingsprocessen går snabbare men nackdelen med detta är att alla i en utvecklingsprocess tänker olika vilket gör att förvaltningen av NoSQL databasen kan bli komplicerad. Speciellt om databasen har gått igenom flera utvecklingsteam under sin livscykel. Precis som exemplet ur artikeln av Wayner (2012) om att ett nyckelvärde kan få olika benämningar beroende på vem som skapar det så kan databasen bli inkonsekvent designad. I och med att NoSQL databasen är lätt att anpassa efter behov, underlättar det i agil utvecklingsmiljö där mycket kan ändras snabbt. NoSQL databaserna är flexibla samt anpassningsbara till nya idéer och svarar emot nya krav för att implementera databasen i iterativt utveckling (Hecht & Jablonski, 2011). Däremot finns det de som ifrågasätter NoSQL databasernas snabba framfart. De menar att utvecklarna och företagen måste tänka till innan de väljer en NoSQL databas för sina lagringsbehov. Precis som det går att utläsa av citatet 41 NoSQL! Med rätt att finnas? "For some of the NoSQL people either their memory is bad or they are too young to know personally from experience about what has been done in the past and the lessons learnt as different approaches were tried out." av (Mohan, 2013, s. 12) så ska inte flera decenniers beprövade kunskaper helt åsidosättas. Avsaknaden av en språkstandard bidrar till att det är svårt att hitta en expert inom just den NoSQL databas som företaget använder Kadebu och Mapanga (2014) men för de kreativa utvecklare som vill anpassa sin databas efter sin applikation samtidigt som de vill hålla kostnaden nere är NoSQL databaserna att föredra. NoSQL är även lämpligt i de fall då utvecklarna inte har tillräckliga kunskaper inom relationsdatabasernas språk eftersom de då har lättare att ta till sig ett nya idéer och tankesätt. 6.2 Framtiden En hybridlösning mellan relationsdatabasen och NoSQL databasen är den lösning som vi anser är mest optimal. Eftersom NoSQL databasen inte är skapad för att konkurrera ut relationsdatabasen, utan de är framtagna för att komplettera för där relationsdatabaserna brister och samexistera med relationsdatabaserna (Zahid et al., 2014; Nayak et al., 2013). Därför är NoSQL databaserna nischade mot vissa branscher (Cattell, 2011). Med hybrid menar vi att en verksamhet kan välja att ha flera olika databaslösningar beroende på vilken typ av ändamål de vill ha databasen till. Databaserna ska hantera den typen av uppgifter den är mest lämpad för. Alltså om en del av verksamheten kräver hög säkerhet eller stark consistency ska de välja relationsdatabasen. Å andra sidan, om en annan del av verksamheten behöver en databas som ska gå att skala horisontellt på ett kostnadseffektivt sätt samt endast behöver hämta och lagra ostrukturerat data så borde de välja NoSQL databasen. Dessa databaser ska då kunna existera i symbios och på så sätt anpassas efter verksamheten behov. Detta i sin tur kan vara kostnadseffektivt för företaget i längden eftersom NoSQL databaserna generellt sätt är billigare att utöka medan det är dyrare att utöka en relationsdatabas till liknade storlek (Pokorny, 2013). Precis som Huang och Luo (2014) nämner i sin artikel förespår de att fler och fler utvecklare kommer att överge ACID egenskaperna för att erhålla bättre skalbarhet, tillgänglighet med mera. Eftersom flera företag kommer att behöva använda NoSQL databasteknologin för att bemöta den stigande tillväxten av användare. Därför anser vi att NoSQL databaserna kommer att förbättra sig på att uppfylla mer av ACID egenskaperna samt hitta ett mer standardiserat 42 NoSQL! Med rätt att finnas? språk som fortfarande erbjuder flexibiliteten i att anpassa databasmodellen efter applikationen. Huang och Luo (2014) tror även att relationsdatabaserna kommer att konkurrera med och ta marknadsandelar från NoSQL databaserna under förutsättning att relationsdatabaserna blir bättre på bland annat skalbarhet, prestanda och tillgänglighet. Vilket vi instämmer i men vi anser att både relationsdatabaserna och NoSQL databaserna borde ha som mål att förbättra sina fördelar och verktyg istället för att fokusera på sina konkurrenter. Vi menar att så länge som både relationsdatabasens och NoSQL databasens fördelar nyttjas vid de situationer de är lämpliga för, så är till exempel inte nackdelen säkerhet hos NoSQL databasen en nackdel. I situationer där prestanda och hög tillgänglighet är prioriterat så skulle säkerheten tynga ner processtiden (Osawaru & Ahamed, 2014). Som tidigare nämnts så anser vi att NoSQL databaser passar till utveckling av sökmotorer. Där skulle säkerhet kunna vara ett hinder mer än en hjälp. Däremot tror vi att NoSQL databaserna kommer att utvecklas vidare på den delen, så länge säkerheten inte försämrar prestandan och tillgängligheten för mycket. En annan nackdel som vi har identifierat utifrån litteraturstudien är consistency men även den behöver inte vara en nackdel. Speciellt i de applikationer som inte har som målsättningen att alltid visa den senaste uppdateringen till slutanvändaren utan hellre prioriterar prestanda och tillgänglighet. Exempel på detta är sociala nätverksapplikationer där slutanvändarna är medvetna om att de inte alltid ser de senaste uppdateringarna men heller inte ser det som ett problem. 7 Slutsats Frågeställningarna som har styrt hela uppsatsen är i vilka situationer NoSQL databaserna är lämpliga respektive olämpliga samt vilka för- och nackdelar de har. Utifrån resultatet och analysen kan slutsatsen dras att nackdelarna med NoSQL databaserna är att de har låg säkerhet, ingen språkstandard, bristande stöd för aggregatfunktioner och framtagning av affärsdata, support och administration samt kräver hög expertis, vilket gör att de är mindre lämpliga i situationer där detta efterfrågas. Exempelvis i bank-, sjukvård- eller finansverksamheter. Däremot passar NoSQL databaser in i situationer där skalbarhet, prestanda, tillgänglighet, kostnadseffektivitet, anpassningsbarhet och kapacitet är viktigt, 43 NoSQL! Med rätt att finnas? vilket också är NoSQL databasens fördelar. Därför passar NoSQL databaser till exempelvis sökmotorer och webbshopp applikationer. 7.1 Teorietiska och praktiska bidraget Eftersom uppsatsen sammanfattar NoSQL databasernas för- och nackdel på en abstrakt nivå kan det teorietiska bidraget vara underlag för vidare studier. Uppsatsen kan även ligga till grund för experiment som testar till exempel prestandaskillnader mellan relationsdatabaserna och NoSQL databaserna. Ett område som kan vara intressant för vidare forskning är subkategorierna av NoSQL databaserna, något denna uppsats inte har gått djupare in på. Eftersom det finns många variationer inom NoSQL databaser så är det intressant att utreda vilken NoSQL databas som skulle passa bäst till ett specifikt koncept ifrån vår mappning. Något som också kan vara värt att utreda är hur lätt alternativt svårt det är att skapa en NoSQL databas i jämförelse med relationsdatabasen. Vår uppsats skulle även då kunna bidra teorietiskt eftersom vi har berört koncept som expertis, språkstandard med mera vilket kan vara bidragande orsaker till om det är lätt respektive svårt att skapa en databas. Det praktiska bidraget med uppsatsen är att den kan användas som underlag för exempel systemutvecklarens eller företagarens beslutfattande vid val av vilken databas som är mest lämpad för deras ändamål. Ett annat område som vi kan se att uppsatsen praktiskt kan bidra till är inom utbildningsverksamheten. Där kan uppsatsen ligga till grund för att starta nya kurser inom informatik. 44 NoSQL! Med rätt att finnas? Referenslista enligt APA Abramova, V., & Bernardino, J. (2013). NoSQL Databases: MongoDB vs Cassandra. International C* Conference on Computer Science and Software Engineering, 14-22. doi:10.1145/2494444.2494447 Abramova, V., Bernardino, J., & Furtado, P. (2014). Experimental evaluation of NoSQL databases. International Journal of Database Management Systems, 6(3), 1-16. doi:10.5121/ijdms.2014.6301 Atzeni, P., Jensen, C. S., Orsi, G., Ram, S., Tanca, L., ... (2013). The relational model is dead, SQL is dead, and I don’t feel so good myself. ACM SIGMOD Record, 42(2), 64-68. doi:10.1145/2503792.2503808 Avdic, A. (2011). Riktlinjer för rapportering. Örebro: Örebro universitet kurslitteratur. Barmpis, K., & Kolovos, D. S. (2012). Comparative Analysis of Data Persistence Technologies for Large-Scale Models. Proceedings of the 2012 Extreme Modeling Workshop, 33-38. doi:10.1145/2467307.2467314 Bartholomew, D. (2010, September 01). SQL vs. NoSQL. Linux Journal. Hämtad från http://www.linuxjournal.com/article/10770 Bonnet, L., Laurent, A., Sala, M. Laurent, B., & Sicard, N. (2011). Reduce, you say: What NoSQL can do for Data Aggregation and BI in Large Repositories. 22nd International Workshop on Database and Expert Systems Applications, 483-488. doi:10.1109/DEXA.2011.71 Cattell, R. (2011). Scalable SQL and NoSQL Data Stores. Special Interest Group on Management of Data, 39(4), 12-27. doi:10.1145/1978915.1978919 Couchbase. (2012). Couchbase Survey Shows Accelerated Adoption of NoSQL in 2012. Hämtat 24 december 2014 från Couchbase: http://www.couchbase.com/pressreleases/couchbase-survey-shows-accelerated-adoption-nosql-2012 Couchbase. (2014). Why NoSQL. Hämtat 24 december 2014 från Couchbase: http://www.couchbase.com/nosql-resources/what-is-no-sql 45 NoSQL! Med rätt att finnas? CS Språkwebb. (n.d.). Ordlistan. Hämtat 27 december 2014 från ComputerSweden: http://cstjanster.idg.se/sprakwebben/ord.asp?ord=replikering Dean, J., & Gnemawat, S. (2008). MapReduce: Simplified Data Processing on Large Clusters. Communications of the ACM - 50th anniversary, 51(1), 107-113. doi:10.1145/1327452.1327492 distributed computing environment (DCE). (n.d.). Hämtad 28 december, 2014, från http://www.businessdictionary.com/definition/distributed-computing-environmentDCE.html Dykstra, D. (2012). Comparison of the Frontier Distributed Database Caching System to NoSQL Databases. Journal of Physics: Conference Series, 396(5), 1-9. doi:10.1088/1742-6596/396/5/052031 Elizabeth E (2013, 28 maj). Evaluating Information Found on the Internet . Hämtat 25 december 2014 från John Hopkins sheridan libraries: http://guides.library.jhu.edu/content.php?pid=198142&sid=1657518 Enescu, M. A. (n.d.). Toward Scalable Security: On the Scalability of Security in large-scale software systems. Hämtat 10 december 2014 från The University of British Columbia Blogs: http://blogs.ubc.ca/computersecurity/files/2012/04/MEnescu_paper.pdf Floratou, A., Teletia, N., DeWitt, D. J., Patel, J. M., & Zhang, D. (2012). Can the Elephants Handle the NoSQL Onslaught? The 38th International Conference on Very Large Data Bases, 5(12), 1712-1723. doi:10.14778/2367502.2367511 Goldkuhl, G. (2011). Kunskapande. Örebro: Örebro Universitet kurslitteratur Gudivada, N. V., Rao, D., & Raghavan, V. V. (2014). NoSQL Systems for Big Data Management. 2014 IEEE 10th World Congress on Services, 190-197. doi:10.1109/SERVICES.2014.42 Hammes, D., Medero, H., & Mitchell, H. (2014). Comparison of NoSQL and SQL databases in the cloud. Proceedings of the Southern Association for Information Systems Conference, 1-8. Hämtad från http://aisel.aisnet.org/cgi/viewcontent.cgi?article=1011&context=sais2014 46 NoSQL! Med rätt att finnas? Han, J., E, H., Le, G., & Du, J. (2011). Survey on NoSQL Database. 2011 6th International Conference on Pervasive Computing and Applications, 363-366. doi:10.1109/ICPCA.2011.6106531 Hecht, R., & Jablonski, S. (2011). NoSQL Evaluation: A Use Case Oriented Survey. 2011 International Conference on Cloud and Service Computing, 336-341. doi: 10.1109/CSC.2011.6138544 Helmersson, D. (n.d.). Hämtad 28 december, 2014, från: http://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/molnet Henriksson, S (n.d.). Hämtad 28 december, 2014, från: http://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/it Huang, Y., & Luo, T. (2014). NoSQL Database: A Scalable, Availability, High Performance Storage for big Data. ICPCA, 8351, 172-183. doi:10.1007/978-3-319-09265-2_19 Indrawan-Santiago, M. (2012). Database Research: Are We At A Crossroad? 15th International Conference on Network-Based Information Systems, 5(12), 45-51. doi:10.1109/NBiS.2012.95 Kadebu, P., & Mapanga, I. (2013). Database Management Systems: A NoSQL Analysis. International Journal of Modern Communication Technologies & Research, 1(7), 1218. ISSN:2321-0850 Kadebu, P., & Mapanga, I. (2014). A security Requirements perspectiv towards a secured NoSQL database Environment. International Conference of Advance Research and Innovation, 472-480. ISBN:978-93-5156-328-0 Kajeepeta, S. (2012). NoSQL Everywhere? Not So Fast. United Business Media LLC, (1333), 1-3. ISSN:19383371 Lai, E. (2009, 1 juli). No to SQL? anti-database movement gains steam. Hämtat 14 december, 2014, från ComputerWorld: http://www.computerworld.com/article/2526317/database-administration/no-to-sql-anti-database-movement-gains-steam.html 47 NoSQL! Med rätt att finnas? Leavitt, N. (2010). Will NoSQL databases live up to their promise? IEEE Computer Society, 12-14. doi:10.1109/MC.2010.58 Li, Y., & Manoharan, S. (2013). A performance comparison of SQL and NoSQL databased. Communications, Computers and Signal Processing, 15-19. doi:10.1109/PACRIM.2013.6625441 Lungu, I., & Tudorica, B. G. (2013). The Development of a Benchmark Tool for NoSQL Databases. Hämtat 27 november 2014 från Database Systems Journal: http://www.dbjournal.ro/archive/12/12_2.pdf Manoj, V. (2014). Comparative study of NoSQL document, column store databases and evaluation of cassandra. Hämtat 1 december 2014 från AIRCC Publishing Corporation: http://www.airccse.org/journal/ijdms/papers/6414ijdms02.pdf Marrelli, A. F. (Augusti 2005). The Performance Technologist's Toolbox: Literature Review. Performance Improvement, 44(7), 40-44. doi:10.1002/pfi.4140440710 Metadata. (2014, 18 augusti). Hämtad 14 december, 2014, från: http://sv.wikipedia.org/wiki/Metadata Microsoft Technet. (n.d.). Hämtad 28 december, 2014, från: http://technet.microsoft.com/enus/library/ms177433%28v=sql.105%29.aspx Mohamed, A. M., Altarfi, O. G., & Ismail, M. O. (2014). Relational vs. NoSQL Databases: A Survey. Hämtat 1 december 2014 från International Journal of Computer and Information Technology: http://www.ijcit.com/archives/volume3/issue3/Paper030320.pdf Mohan, C. (2013). History repeats itself: Sensible and NonsenSQL aspects of NoSQL hoopla. EDBT '13 Proceedings of the 16th International Conference on Extending Database Technology, 11-16. doi:10.1145/2452376.2452378 Monger, M. D., Mata-Toledo, R. A., & Gupta, P. (2012). TEMPORAL DATA MANAGEMENT IN NOSQL DATABASES. Hämtat 1 december 2014 från Journal of Information Systems and Operations Management: ftp://ftp.repec.org/opt/ReDIF/RePEc/rau/jisomg/WI12/JISOM-WI12-A1.pdf 48 NoSQL! Med rätt att finnas? Moniruzzaman, A. B., & Hossain, S. A. (2013). NoSQL database: New era of databases for big data analytics – Classification, Characteristics and Comparison. Hämtat 14 oktober 2014 från International Journal of Database Theory and Application: http://www.sersc.org/journals/IJDTA/vol6_no4/1.pdf Naheman, W., & Wei, J. (2013). Review of NoSQL databases and performance testing on HBase. 2013 International Conference on Mechatronic Sciences, Electric Engineering and Computer, 2304-2309. doi:10.1109/MEC.2013.6885425 Nance, C., Losser, T., Iype, R., & Harmon, G. (2013). NoSQL vs RDBMS – Why there is room for both. SAIS 2013Proceedings, 111-116. Hämtat från: http://aisel.aisnet.org/sais2013/27 Nayak, A., Poriya, A., & Poojary, D. (2013). Type of NoSQL Databases and its comparison with relational databases. International Journal of Applied Information Systems, 5(4), 16-19. Hämtat från: http://research.ijais.org/volume5/number4/ijais12-450888.pdf Oates, J. B. (2010). Researching information Systems and Computing. London: SAGE Publications Ltd. Osawaru, E. R., & Ahamed, R. A. (2014). A Highlight of Security Challenges in Big Data. International Journal of Information Systems and Engineering, 2(1), 1-10. Hämtat från: http://www.ftms.edu.my/journals/IJISE/Journal/ASCENT%202014/001-010A%20Highlight%20of%20Security%20Challenges%20in%20Big%20Data.pdf Padron-McCarthy, T. (2005, 18 juli). Distribuerade databaser. Hämtat från Databasteknik: http://www.databasteknik.se/webbkursen/distribuerade/index.html den 27 December 2012 Padron-McCarthy, T. & Risch, T. (2005). Databasteknik. Lund: Studentlitteratur AB. Parker, Z., Poe, S., & Vrbsky, S. V. (2013). Comparing NoSQL MongoDB to an SQL DB. Proceedings of the 51st ACM Southeast Conference, 1-6. doi:10.1145/2498328.2500047 Pokorny, J. (2013). NoSQL databases: a step to database scalability in web environment. Proceedings of the 13th International Conference on Information Integration and Web-based Applications and Services, 278-283. doi:10.1145/2095536.2095583 49 NoSQL! Med rätt att finnas? Pokorný, J. (2014). How to Store and Process Big Data: Are Today’s Databases Sufficient. 13th IFIP TC8 International Conference, CISIM 2014, 8838, 5-10. doi:10.1007/978-3662-45237-0_2 Pritchett, D. (den 28 Juli 2008). BASE, An ACID Alternative. Queue - Object-Relational Mapping, 6(3), 48-55. doi:10.1145/1394127.1394128 Rith, J., Lehmayr, P. S., & Meyer-Wegener, K. (2014). Speaking in Tongues: SQL Access to NoSQL Systems. 29th Annual ACM Symposium on Applied Computing, 855-857. doi:10.1145/2554850.2555099 Rosengren, L. (den 24 Augusti 2012). 4 frågor om Big Data. Hämtat 27 december, 2014, från CIO SWEDEN: http://cio.idg.se/2.1782/1.461976/4-fragor-om-big-data Sadalage, J. P. & Fowlar, M. (2013). NoSQL Distilled a Brief Guide to the Emerging World of Polygot Persistence. New Jersey: Pearson Education. Shalini, M., & Dhamodharan, S. (11 2014). Performance and Scaling Comparison Study of RDBMS and NoSQL (MongoDB). Compusoft An international journal of advanced computer technology, 3(11), 1270-1275. ISSN:2320-0790 Sharma Mukul, S. P. (2014). Quantitative Analysis and Implementation of Relational and Graph Database Technologies. International Journal of Modern Computer Science and Applications, 2(5), 20-24. ISSN:2321-2632 Stonebraker, M. (2011). Stonebraker on NoSQL and enterprises. Communications of the ACM, 54(8), 10-11. doi:10.1145/1978542.1978546 Strauch, C. (2012). NoSQL Databases. Hämtat 14 oktober, 2014, från Stuttgart Media University: http://www.sambib.lu.se/sites/sambib.lu.se/files/apa_manual_2014_v_1.01.pdf Svenska datatermgruppen. (n.d.). Hämtat 28 december, 2014, från Svenska datatermgruppen: http://www.datatermgruppen.se/visning.html?obj=b171 Tauro, C. J., & Aravindh, S. A. (2012). Comparative Study of the New Generation, Agile, Scalable, High Performance NoSQL Databases. International Journal of Computer 50 NoSQL! Med rätt att finnas? Applications, 48(20), 1-4. Hämtat från: www.academia.edu/download/30869512/pxc3880336.pdf Thantriwatte, T., & Keppetiyagama, C. (2011). NoSQL query processing system for wireless ad-hoc and sensor networks. The International Conference on Advances in ICT for Emerging Regions, 78-83. doi:10.1109/ICTer.2011.6075030 Tiwari, S. (2011). Professional NoSQL. Indianapolis: John Wiley & Sons, Inc. Tudorica, B. G., & Bucur, C. (2011). A comparison between serveral NoSQL databases with comments and notes. Roedunet International Conference, 1 - 5. doi:10.1109/RoEduNet.2011.5993686 van der Veen, J. S., van der Waaij, B., & Meijer, R. J. (2012). Sensor Data Storage Performance: SQL or NoSQL, Physical or Virtual. 2012 IEEE Fifth International Conference on Cloud Computing, 431-438. doi:10.1109/CLOUD.2012.18 Vangie, B. (2015). structured data. Hämtat 7 januari, 2015, från http://www.webopedia.com: http://www.webopedia.com/TERM/S/structured_data.html Wayner, P. (2012). 7 hard truths about the NoSQL revolution. Hämtat 19 december, 2014, från InfoWorld.com: http://db.ub.oru.se/login?url=http://search.proquest.com/?url=http://search.proquest.co m/docview/1025748918? web 2.0. (n.d.). Hämtad 28 december, 2014, från http://www.businessdictionary.com/definition/web-2-0.html Webster, J., & Watson, R. T. (2002). ANALYZING THE PAST TO PREPARE FOR THE FUTURE: WRITING A LITERATURE REVIEW. Management Information Systems Quarterly, 26(2), 13-23. Hämtat från: http://aisel.aisnet.org/cgi/viewcontent.cgi?article=2625&context=misq&seiredir=1&referer=http%3A%2F%2Fscholar.google.se%2Fscholar%3Fq%3DANALYZ ING%2BTHE%2BPAST%2BTO%2BPREPARE%2BFOR%2BTHE%2BFUTURE% 3A%2BWRITING%2BA%2BLITERATURE%2BREVIEW%26hl%3Dsv%26as_sdt %3D0%26as_vis%3D1%26oi%3Dscholart%26sa%3DX%26ei%3DqF6vVNCpCefygObyYCoBA%26ved%3D0CB0QgQMwAA#search=%22ANALYZING%20PAST 51 NoSQL! Med rätt att finnas? %20PREPARE%20FUTURE%3A%20WRITING%20LITERATURE%20REVIEW% 22 Vicknair, C., Marcias, M., Zhao, Z., Nan, X., Chen, Y., ... (2010). A comparison of a graph database and a relational database, a data provenance perspective. Proceedings of the 48th Annual Southeast Regional Conference, 1-6. doi:10.1145/1900008.1900067 Wikipedia. (2014, 26 november). Concurrency (computer science). Hämtat 28 december 2014 från Wikipedia: http://en.wikipedia.org/wiki/Concurrency_(computer_science) Xiang, P., Hou, R., & Zhou, Z. (2010). Cache and Consistency in NoSQL. 2010 3rd IEEE International Conference on Computer Science and Information Technology, 117-120. doi:10.1109/ICCSIT.2010.5563525 Zahid, A., Masood, R., & Shibli, M. A. (2014). Security of Sharded NoSQL Databases: A comparative analysis. Conference on Information Assurance and Cyber Security, 1-8. doi:10.1109/CIACS.2014.6861323 Zaki, K. A. (2014). NoSQL DATABASES: NEW MILLENNIUM DATABASE FOR BIG DATA, BIG USERS, CLOUD COMPUTING AND ITS SECURITY CHALLENGES. International Journal of Research in Engineering and Technology, 403-409. eISSN:2319-1163 Zvarevashe, K., & Gotora, T. T. (2014). A Random Walk through the Dark Side of NoSQL Databases in Big Data Analytics. International Journal of Science and Research, 3(6), 506-509. ISSN:2319-7064 Özcan, F., Tatbul, N., Abadi, D. J., Kornacker, M., Mohan, C., ... (2014). Are We Experiencing a Big Data Bubble? 2014 ACM SIGMOD international conference on Management of data, 1407-1408. doi:10.1145/2588555.2618215 52 NoSQL! Med rätt att finnas? Bilagor Bilaga 1 Datum- Sökmotor Sökord Begränsning Sortering Övrig Urval Urval 1 2 2014 27 nov Google Scholar Google Scholar Google Scholar Google Scholar IEEE Xplore ACM Digital Library Summon 27 nov Summon 27 nov Scopus 28 nov Summon 28 nov Summon 14 okt 14 okt 29 okt 29 okt 29 okt 29 okt 28 nov 28 nov nosql 11 11 nosql 2013-2014 8 6 nosql, sql 2012-2014 3 2 nosql, sql 2014 6 5 NoSQL 2010-2014 2 2 1 1 NoSQL "nosql" "sql" "compare " "nosql" "sql" "evaluati on" "NoSQL " "CAP" Cap Relevans 7 6 Relevans 3 2 2 2 1 0 Will nosql databases Compari son of NoSQL and SQL Database s in the Cloud History Repeats Itself: Sensible and NonsenS QL Aspects Relevans Förf.: Brewer Förf.: Brewer 1 1 Klicka vidare på länken i artikeln 1 1 Klicka vidare på länken i artikeln 1 1 Relevans 53 NoSQL! Med rätt att finnas? 28 nov Summon 28 nov Summon of the NoSQL Hoopla 7 hard truths about the nosql "the Relevans Förf.: wayner 2 2 Relevans Förf.: helland 1 0 21 18 Computer science Computer science 5 1 8 4 Fulltext, tidningsartikel , tidskriftsartike l, engelska, engelska, computer science 2 1 10 6 96 72 dangers of replicatio n and a" 1 dec Google Scholar 2 dec Summon 2 dec Summon 9 dec Summon 10 dec Google Scholar "NoSQL " "ACID" "database " "cap" "Distribu ted Database " NoSQL security NoSQL security Relevans Relevans 54 NoSQL! Med rätt att finnas? Bilaga 2 Artik elNr 3 Artikelnamn A comparison between serveral NoSQL databases with comments and notes A performance comparison of SQL and NoSQL databased A Random Walk through the Dark Side of NoSQL Databases in Big Data Analytics 4 Are We Experiencing a Big Data Bubble? 5 Cache and Consistency in NoSQL Can the Elephants Handle the NoSQL Onslaught? Comparative Study of the New Generation, Agile, Scalable, High Performance NoSQL Databases 1 2 6 7 8 Författare Tudorica Bogdan George, Bucur Cristian Li Yishan, Manoharan Sathiamoorthy Zvarevashe Kudakwashe, Gotora Tatenda Trust Özcan Fatma, Tatbul Nesime, Abade Daniel J., Kornacker Marcel, Mohan C, Ramasamy Karthik, Wiener Janet Xiang Peng, Hou Ruichun, Zhou Zhiming Floratou Avrilia, Teletia Nikhil, DeWitt David J., Patel Jignesh M., Zhang Donghui Tauro Clarence J. M., Aravindh S, Shreeharsha A. B. 14 Comparing NoSQL MongoDB to an SQL DB Parker Zachary, Poe Scott, Vrbsky Susan V. Comparative Analysis of Data Persistence Technologies for Large-Scale Models Barmpis Konstantinos, Kolovos Dimitrios S. Abramova Veronika, Bernardino Jorge, Furtado Experimental evaluation of NoSQL databases Pedro NoSQL Database: A Scalable, Availability, High Performance Storage for big Data Huang Yu, Luo Tiejian Reduce, you say: What NoSQL can do for Data Aggregation and BI in Large Bonnet Laurent, Laurent Anne, Sala Michel, Repositories Laurent Bénédicte, Sicard Nicolas Type of NoSQL Databases and its comparison with relational databases Nayak Ameya, Poriya Anil, Poojary Dikshay Comparison of the Frontier Distributed Database Caching System to NoSQL Databases Dykstra Dave 15 In Search of Database consistency Stonebraker Michael 16 NoSQL Everywhere? Not So Fast 17 NoSQL Systems for Big Data Management 18 Relational vs. NoSQL Databases: A Survey The relational model is dead, SQL is dead, and I don’t feel so good myself A Highlight of Security Challenges in Big Data A security Requirements perspectiv towards a secured NoSQL database Environment Will NoSQL databases live up to their promise? Evaluation of the cap properties on Amazon SimpleDB and Windows Azure Table Kajeepeta Sreedha Gudivada N Venkat, Rao Dhana, Raghavan Vijay V Mohamed A mohamed, Altarfi Obey G, Ismail Mohammed O Atzeni Paolo, Jensen Christian S, Orsi Giorgio, Ram Sudha, Tanca Letizia, Torlone Riccardo 9 10 11 12 13 19 20 21 22 23 Osawaru Eweka Raphael, Ahamed Riyaz A.H Kadebu Prudence, Mapanga Innocent Leavitt Neal Benefico Simone, Gjeci Eva, Comaransca Gonzalez Ricardo, Lever Eros, Lombardo Santo, 55 NoSQL! Med rätt att finnas? Storage Ardagna Danilo, Di Nitto Elisabetta 24 7 hard truths about the NoSQL revolution bra Wayner Peter 25 NoSQL Improving network systems performance by clustering distributed database sites Performance and Scaling Comparison Study of RDBMS and NoSQL(MongoDB) How to Store and Process Big Data: Are Today’s Databases Sufficient NoSQL query processing system for wireless ad-hoc and sensor networks Review of NoSQL databases and performance testing on HBase Performance Evaluation of Unstructured NoSQL data over distributed framework A comparison of a graph database and a relational database, a data provenance perspective Comparative study of NoSQL document, column store databases and evaluation of cassandra NoSQL databases: a step to database scalability in web environment NoSQL vs RDBMS – Why there is room for both 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 Megastore: Providing scalable, highly available storage for interactive services History repeats itself: Sensible and NonsenSQL aspects of NoSQL hoopla Correlation aware technique for SQL to NoSQL transformation Comparison of NoSQL and SQL databases in the cloud NoSQL Evaluation: A use case oriented survey NoSQL database: New era of databases for big data analytics – Classification, Characteristics and Comparison Toward Scalable Security: On the Scalability of Security in large-scale software systems Security of Sharded NoSQL Databases: A comparative analysis Quantitative Analysis and Implementation of Relational and Graph Database Technologies Burd Greg Hababeh Ismail Shalini Merlin, Dhamodharan S Pokorný Jaroslav Thantriwatte T.A.M.C, Keppetiyagama C.I Naheman Wumuti, Wei Jianxin Nyati Suyog S, Pawar Shivanand, Ingle Rajesh Vicknair Chad, Marcias Michael, Zhao Zhendong, Nan Xiaofei, Chen Yixin, Wilkins Dawn Manoj V Pokorny Jaroslav Nance Cory, Losser Travis, Iype Reenu, Harmon Gary Baker Jason, Bond Chris, Corbett James C, Furman JJ, Khorlin Audrey, Larson James, Léon Jean-Michel, Li Yawei, Lloyd Alexander, Yushprakh Vladim Mohan C Hsu Jen-Chun, Hsu Ching-Hsien, Chen ShihChang, Chung Yeh-Ching Hammes Dayne, Medero Hiram, Mitchell Harrison Hecht Robin, Jablonski Stefan Moniruzzaman A B M, Hossain Syed Akhter Enescu Michael A. Zahid Anam, Masood Rahat, Shibli Muhammad Awais Sharma Mukul, Soni Pradeep 47 NoSQL Databases: MongoDB vs Cassandra Abramova Veronica, Bernardino Jorge Database Management Systems: A NoSQL Analysis Kadebu Prudence, Mapanga Innocent Improving Network Scalability Using NoSql Database Bhatewara Ankita, Waghmare Kalyani 48 NoSQL DATABASES: NEW 46 Zaki Khan Asadulla 56 NoSQL! Med rätt att finnas? MILLENNIUM DATABASE FOR BIG DATA, BIG USERS, CLOUD COMPUTING AND ITS SECURITY CHALLENGES 49 51 Scalable SQL and NoSQL Data Stores Sensor Data Storage Performance: SQL or NoSQL, Physical or Virtual Speaking in Tongues: SQL Access to NoSQL Systems Cattell Rick van der Veen Jan Spike, van der Waaij Bram, Meijer Robert J. Rith Julian, Lehmayr Phillipp S, Meyer-Wegener Klaus 52 SQL Databases v. NoSQL Databases Stonebreaker Michael 53 Stonebraker on NoSQL and Enterprises Stonebreaker Michael 54 Survey on NoSQL Database Han Jing, E Haihong, Le Guan, Du Jian 55 SQL vs. NoSQL Bartholomew Daniel 56 Database Research: Are We At A Crossroad? TEMPORAL DATA MANAGEMENT IN NOSQL DATABASES The Development of a Benchmark Tool for NoSQL Databases Indrawan-Santiago Maria Monger Morgan D, Mata-toledo Ramon A., Gupta Pranshu 50 57 58 Lungu Ion, Tudorica Bogdan George 57
© Copyright 2024