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 2024

Video: Web Programming - Computer Science for Business Leaders 2016 2024
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

Fastighetsprofessionens grunder för fastighetslicensexamen - dummies

Fastighetsprofessionens grunder för fastighetslicensexamen - dummies

Fastighetsexamen kommer att förvänta dig att du har ett grundläggande grepp på fastighetsbranschen. Du tror att det bara är uppenbart att veta vad de viktigaste spelarna gör i en fastighetsaffär, men på grund av den terminologi de delar, blir skillnaderna mellan spelarna lite muddlade. Här är snabba beskrivningar ...

Kostnadsmetoden för fastighetslicensexamen - dummies

Kostnadsmetoden för fastighetslicensexamen - dummies

En metod för att uppskatta Värdet på fastigheter kallas kostnaden. Du måste känna till formeln för fastighetslicensexamen. Kostnadsmetoden baseras på tanken att komponenterna i en fastighet eller marken och byggnaderna kan läggas till för att komma fram till ...

Studie för fastighetslicensexamen - dummies

Studie för fastighetslicensexamen - dummies

När var sista gången du tog en multipelvalsexamen ? Eller, för den delen, någon examen? Det är troligt att det var länge sedan. Kanske överväger du huruvida du ska bli en fastighetsmäklare, men du är lite avskräckt av tanken på att du måste göra ett test. Vad du kan ...

Redaktörens val

Följer ett basketspel på tv - dummies

Följer ett basketspel på tv - dummies

Du kommer bli mycket mer ute av att titta på ett basketspel på TV - eller till och med leva - om du gör mer än att se bollen gå in i rammen. Kolla in dessa insider tips för att fånga den verkliga åtgärden och öka din njutning av sporten. Förutse nästa pass Försök att tänka som ...

Top 5 Fantasy Basketball League Sites - Dummies

Top 5 Fantasy Basketball League Sites - Dummies

Att hitta och gå med på en fantasy basketplats kan ibland vara skrämmande uppgift eftersom så många alternativ är tillgängliga och de flesta webbplatser ser lika ut. Bara för att webbplatser ser ut som det betyder inte nödvändigtvis att de mäter i värde. Vissa webbplatser erbjuder gratis ligor, andra betalade - och vissa webbplatser tillhandahåller bara standard liga ...

Tryck på motståndarna i Basket - Dummies

Tryck på motståndarna i Basket - Dummies

Pressen är kort för tryck. Ofta kallad en fullrättspress, det här är ett anfallande försvar som används på backen, där målet är att tvinga en omsättning. Vanligtvis används efter en gjord korg, svänger pressgruppen över motståndarna i backcourt; Om motståndarna lyckas få bollen förbi halvvägs (kallad brytning ...

Redaktörens val

Hur R beräknar oändliga, odefinierade och saknade värden - dummies

Hur R beräknar oändliga, odefinierade och saknade värden - dummies

Lyckligtvis kan R hantera dataanomalier som förvirrar några andra statistiska plattformar. I vissa fall har du inte reella värden att beräkna med. I de flesta verkliga dataset saknas faktiskt åtminstone några värden. Dessutom har vissa beräkningar oändlighet som ett resultat (som att dividera med noll) eller kan inte ...

Hur man lägger till linjer i en plot i R-dummies

Hur man lägger till linjer i en plot i R-dummies

I R, lägger du till rader i en plott på ett mycket liknande sätt att lägga till poäng, förutom att du använder funktionen linjer () för att uppnå detta. Men använd först lite R magi för att skapa en trendlinje genom data, kallad en regressionsmodell. Du använder lm () -funktionen för att uppskatta en linjär ...

Hur man lägger till en andra dimension i R-dummies

Hur man lägger till en andra dimension i R-dummies

Förutom vektorer kan R representera matriser som ett objekt du arbetar och beräknar med. Faktum är att R verkligen lyser när det gäller matrisberäkningar och -operationer. Vektorer är nära relaterade till en större klass av objekt, arrays. Arrayer har två mycket viktiga egenskaper: De innehåller bara en enda typ av värde. De har ...