Hem Personliga finanser Vanliga funktioner hos NoSQL-dummies

Vanliga funktioner hos NoSQL-dummies

Innehållsförteckning:

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

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

NoSQL böcker och bloggar erbjuder olika åsikter om vad en NoSQL-databas är. Fyra kärnfunktioner i NoSQL, som visas i följande lista, gäller för de flesta NoSQL-databaser. Listan jämför NoSQL med traditionell relationell DBMS:

  • Schema agnostic: Ett databasschema är beskrivningen av alla möjliga data och datastrukturer i en relationsdatabas. Med en NoSQL-databas krävs inte ett schema, vilket ger dig friheten att lagra information utan att göra en schemaläggning på framsidan.

  • Nonrelational: Relationer i en databas upprätta förbindelser mellan datatabeller. Till exempel kan en lista med transaktionsdetaljer kopplas till en separat lista över leveransdetaljer. Med en NoSQL-databas lagras denna information som ett aggregat - en enda post med allt om transaktionen, inklusive leveransadressen.

  • Varuhårdvara: Vissa databaser är utformade för att fungera bäst (eller bara) med specialiserad lagrings- och processhårdvara. Med en NoSQL-databas kan man använda billiga hylla-servrar. Att lägga till fler av dessa billiga servrar gör det möjligt för NoSQL-databaser att skala för att hantera mer data.

  • Högfördelningsbar: Distribuerade databaser kan lagra och bearbeta en uppsättning information på mer än en enhet. Med en NoSQL-databas kan ett kluster av servrar användas för att hålla en enda stor databas.

Schema agnostic

NoSQL databaser är schema agnostiska. Du behöver inte göra mycket frontdesign innan du kan lagra data i NoSQL-databaser. Du kan börja kodning och lagra och hämta data utan att veta hur databasen lagrar och fungerar internt. (Om och när du behöver avancerad funktionalitet kan du manuellt lägga till ytterligare index eller tweak datalagringsstrukturer.) Schema agnosticism kan vara den viktigaste skillnaden mellan NoSQL och relationsdatabaser.

Den stora fördelen med en schema agnostisk databas är att utvecklingstiden förkortas. Denna fördel ökar när du går igenom flera utvecklingsutgåvor och behöver ändra de interna datastrukturerna i databasen.

Till exempel, i en traditionell RDBMS, går du igenom en process med schemaläggning. Schemat instruerar databasen om vilken data som ska förväntas. Ändra data som lagrats, eller strukturer, och du måste omstrukturera databasen med ett modifierat schema. Om du skulle göra en förändring, skulle du behöva spendera mycket tid på att bestämma hur du ska bygga om befintliga data. I NoSQL databaser lagrar du helt enkelt en annan datastruktur. Det finns ingen anledning att berätta för databasen på förhand.

Det kan hända att du måste ändra dina frågor i enlighet med detta, kanske lägga till enstaka specifika index (t.ex. ett heltalsindex för att tillåta mindre än och större än specifika frågor för datatypen), men hela processen är mycket mindre smärtsamt än det är med en RDBMS.

RDBMS tog av sig på grund av sin flexibilitet och för att, med hjälp av SQL, det sped upp att ändra en fråga. NoSQL-databaser ger denna flexibilitet för att ändra både schemat och frågan, vilket är en av de viktigaste orsakerna till att de kommer att antas alltmer över tiden.

Även om du är intresserad av en fråga, behöver du inte oroa dig för att veta schemaändringarna. Tänk på ett index över ett fältkontonummer, där kontonummer kan placeras var som helst i ett dokument som lagras i en NoSQL-databas. Du kan ändra strukturen och flytta där kontonummer lagras, och om elementet har samma namn på annat håll i dokumentet, är det fortfarande tillgängligt för fråga utan ändringar i din sökmekanism.

Observera att inte alla NoSQL-databaser är fullständigt schemalagda agnostiska. Vissa, till exempel HBase, kräver att du stoppar databasen för att ändra kolumndefinitioner. De betraktas fortfarande som NoSQL-databaser eftersom inte alla definierade fält (kolumner i det här fallet) krävs för att vara kända i förväg för varje post - bara kolumnfamiljerna.

RDBMS tillåter att enskilda fält i poster identifieras som null -värden. Problemet med en RDBMS är att lagrad datastorlek och prestanda påverkas negativt när lagringen är reserverad för nollvärden bara om posten kan vid en viss framtid ha ett värde i den kolumnen. I Cassandra tillhandahåller du helt enkelt inte den kolonnens data, som löser problemet.

Nonrelational

Relationsdatabashanteringssystem har varit den dominerande sätten att lagra applikationsdata i mer än 20 år. En hel del matematiskt arbete gjordes för att bevisa den teori som ligger till grund för dem.

Detta underlag beskriver hur tabeller relaterar till varandra. En enda ordningsrad kan relatera till många leveransadressrader, men varje leveransadressrad avser också flera orderrader. Detta är en många - till - många relationer .

NoSQL-databaser har inte det här begreppet relationer mellan sina poster. De deformaliserar istället data. Det betyder att i en NoSQL-databas skulle ha en orderstruktur med leveransadressen inbäddad. Det betyder att leveransadressen dupliceras i varje Ordningsrad som använder den. Detta tillvägagångssätt har fördelen att det inte krävs komplexa frågetider på flera datastrukturer (tabeller).

NoSQL-databaser lagrar inte information om hur enskilda poster relaterar till andra poster i databasen, vilket kan låta som en begränsning. NoSQL-databaser är dock mer flexibla när det gäller datastrukturerna du kan lagra.

Överväg en order från en online-återförsäljare. Ordern kan innehålla produktkoder, kvantiteter, varupriser och produktbeskrivningar, samt information om beställningen av person, såsom leveransadress och betalningsinformation.

Istället för att lägga in tio rader i en rad olika tabeller i en relationsdatabas kan du istället lagra en enda struktur för all denna orderinformation - säg som ett JSON- eller XML-dokument.

I relationell databasteori är målet att normalisera dina data (det vill säga att organisera fälten och tabellerna för att ta bort dubbla data). I NoSQL-databaser - i synnerhet dokument eller aggregatdatabaser - deformaliseras du medvetet data, lagrar data flera gånger.

Du kan exempelvis lagra "Kundleveransadress" flera gånger över många beställningar en kund gör över tiden, istället för att lagra den en gång och hänvisa till den i flera beställningar. Att göra det kräver extra lagringsutrymme, och lite förtänkt att hantera i din ansökan. Så varför gör det?

Det finns två fördelar med att lagra data flera gånger:

  • Enkel lagring och hämtning: Spara bara och skaffa en enskild post.

  • Sökhastighet: I relationsdatabaser sammanfogar du information och lägger till begränsningar över tabeller vid förfrågningstid. Detta kan kräva att databasmotorn utvärderar många tabeller. Ju fler frågeställningar du har på olika tabeller, desto mer minskar du sökfrågan. (Det är därför en RDBMS har precomputed visningar.) I en NoSQL-databas är all information du behöver för att utvärdera din fråga i ett enda dokument. Därför kan du snabbt bestämma listan över matchande dokument.

Relationsvyer och NoSQL-denormaliseringar är olika metoder för problem med dataspridning över poster. I NoSQL kan du behöva behålla flera deformaliseringar som representerar olika synpunkter på samma data. Detta tillvägagångssätt ökar kostnaderna för lagring men ger dig mycket bättre frågestundstid.

Med tanke på den ständigt minskade kostnaden för lagring och den ökade hastigheten på utveckling och förfrågan är denormaliserade data (aka materialiserade visningar ) inte en dödlig anledning att rabatt NoSQL-lösningar. Det är bara ett annat sätt att närma sig samma problem, med sina egna fördelar och nackdelar.

NoSQL är mycket fördelningsbar och använder råvaruhårdvara

I många NoSQL-databaser är ett nyckeldesignbeslut att använda flera datorer för att lagra data för en enda databas, istället för att ha hela databasen på en enda server.

Det är svårt att lagra data över flera maskiner och låta den bli frågad. Du måste skicka frågan till alla servrar och vänta på ett svar. Förhoppningsvis ställer du upp maskinerna så att de är tillräckligt snabba för att prata med varandra för att hantera distribuerade frågor!

Den största fördelen med detta tillvägagångssätt är vid mycket stora dataset, eftersom det för vissa lagringsbehov inte ens kunde vara den största tillgängliga enskilda servern att lagra eller bearbeta all data du behöver. Tänk på alla meddelanden på Twitter och Facebook. Du behöver en distribuerad mekanism för att effektivt hantera all den data, även om det mest handlar om vad folk hade för frukost och söta kattvideor.

En fördel med att distribuera din databas är att du kan använda billigare servrar, kallade varuservrar .Även för mindre dataset kan det vara billigare att köpa tre råvareservrar istället för en enda högre server.

En annan viktig fördel är att lägga till hög tillgänglighet är lättare; Du är redan halvvägs där genom att distribuera dina data. Om du kopierar dina data en eller två gånger över andra servrar i klustret kommer dina data fortfarande att vara tillgängliga, även om en av servrarna kraschar, bränner och dör.

Inte alla öppna källdatabaser stöder hög tillgänglighet om du inte köper den stödda, betalda versionen av databasen från företaget som utvecklar det.

Ett undantag till den högutdelningsbara regeln är den för grafdatabaser. För att effektivt kunna svara på vissa graffrågor i tid måste data lagras på en enda server. Ingen har löst det här problemet ännu.

Tänk noggrant om du behöver en trippelbutik eller en grafaffär. Trippelaffärer är i allmänhet utdelbara, medan grafaffärer inte är. Vilken du behöver beror på de frågor du måste stödja.

Vanliga funktioner hos NoSQL-dummies

Redaktörens val

Vad är en Java-karta? - dummies

Vad är en Java-karta? - dummies

Arrays och specialiserade listor gör det möjligt att utföra en fantastisk uppsättning uppgifter med Java. Det finns dock situationer där en Java-applikation behöver något som är mer relaterat till en databas, utan att egentligen ha allt databasbagage (som att behöva köpa en separat applikation). Till exempel kanske du vill kunna ...

Några få saker om Java Math - dummies

Några få saker om Java Math - dummies

Tro det eller inte, datorer - även de mest kraftfulla - Ha vissa begränsningar när det gäller att utföra matematiska beräkningar. Dessa begränsningar är vanligtvis obetydliga, men ibland slår de sig och biter på dig. Här är de saker du behöver se upp för när du gör matte i Java. Helhetsflöde Det grundläggande problemet ...

Vad är recursion i Java Programmering? - dummies

Vad är recursion i Java Programmering? - dummies

Rekursion är en grundläggande programmeringsteknik som du kan använda i Java, där en metod kallar sig för att lösa ett problem. En metod som använder denna teknik är rekursiv. Många programmeringsproblem kan lösas endast genom rekursion, och vissa problem som kan lösas med andra tekniker löses bättre genom rekursion. En av ...

Redaktörens val

4 Måste-inkludera i din blogg sidobardesign - dummies

4 Måste-inkludera i din blogg sidobardesign - dummies

Din bloggens sidofält är viktig fastighet som bör innehålla de element du vill ha mest. När du utformar din blogg sidofält kan du dra från en nästan oändlig lista över sidospårelement. Genom att välja noggrant vad som ska inkluderas (och vad som inte ska inkluderas) kan du ställa in din blogg från andra.

5 Användbara Wordpress Plugins - dummies

5 Användbara Wordpress Plugins - dummies

Om du bloggar på en självhävd plattform med WordPress-programvara, är det dags att anpassa din blogg med plug-ins - programvara som kan "anslutas" till din befintliga WordPress bloggprogramvara. Plug-ins gör det möjligt för dig att göra allt från funktionsbildspel i dina blogginlägg för att ansluta sociala medier till din webbplats. Här är fem användbara ...

7 Sätt att erövra Writer's Block som en Blogger - dummies

7 Sätt att erövra Writer's Block som en Blogger - dummies

Varje bloggare möter författarens block i ett tid eller annan. Om du är den typ av bloggare som sköter innehåll varje dag, kan författarens block vara stäverande. Kan du inte ta en paus för att få ditt skrivande mojo tillbaka? Prova en (eller flera) av dessa sju sätt att slå författarens block för att få dig tillbaka ...

Redaktörens val

10 Stora elektronikkomponentkällor - dummies

10 Stora elektronikkomponentkällor - dummies

Letar du efter några bra källor till dina elektroniska delar? Denna lista ger dig några fleråriga favoriter, både inom och utanför Nordamerika. Denna lista är inte uttömmande. Du hittar bokstavligen tusentals specialutbud för ny och begagnad elektronik. Plus, Amazon och eBay ger virtuella marknadsplatser för alla sorters säljare - ...

Elektronik Basics: Resistance - dummies

Elektronik Basics: Resistance - dummies

I elektronikvärlden är motståndet inte meningslöst. Faktum är att motstånd kan vara mycket användbart. Utan motstånd skulle elektronik inte vara möjligt. Elektronik handlar om att manipulera strömmen av ström, och ett av de mest grundläggande sätten att manipulera strömmen är att minska det genom resistans. Utan motstånd strömmar strömmen oreglerad och där ...

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

För att berätta för BASIC Stamp vad du vill göra i ditt digitala elektronikprojekt måste du programmera det. BASIC Stamp Windows Editor är den programvara som du använder på din dator för att skapa program som kan laddas ner till en BASIC Stamp-mikrokontroller. Denna programvara är tillgänglig gratis från Parallax webbplats. ...