NoSQL-databaser använder inte relationstabellmodellen. Kategorin omfattar dokumentlagring, nyckelvärdeslagring, grafdatabaser och bredkolumnlagring. Var och en löser ett annat problem. Dokumentlagring som MongoDB lagrar JSON-liknande poster. Nyckelvärdeslagring som Redis mappar nycklar till värden för snabba sökningar. Grafdatabaser som Neo4j modellerar relationer mellan entiteter. Bredkolumnlagring som Cassandra hanterar massiva skrivvolymer över distribuerade noder. Den gemensamma tråden är flexibilitet. NoSQL-databaser lättar på schemabegränsningar som relationsdatabaser tillämpar.
Den flexibiliteten är både lockelsen och risken. Ett dokumentarkiv accepterar poster med olika fält. Det gör det enkelt att utveckla datamodellen utan migreringar. Det gör det också enkelt att skapa inkonsekventa data. Applikationen måste tillämpa de regler som databasen inte gör. NoSQL-databaser skalas också horisontellt lättare än traditionella relationssystem. De distribuerar data över många servrar, vilket hanterar hög trafik och stora datamängder. Avvägningen är konsekvens. Många NoSQL-databaser erbjuder slutlig konsekvens snarare än stark konsekvens. Olika noder kan se olika värden under en kort tid. Det är acceptabelt för ett flöde på sociala medier. Det är inte acceptabelt för ett banksaldo. Rätt val beror på de data och de garantier som applikationen behöver.
NoSQL-databastyper
- Dokument — JSON-liknande poster, flexibelt schema
- Nyckel-värde — enkla par, snabba uppslagningar
- Graf — noder och relationer
- Bred kolumn — distribuerad, hög skrivhastighet
- Tidsserier — optimerade för tidsstämplade data
NoSQL är inte bättre än SQL. Det är annorlunda. Rätt verktyg beror på problemet.
Comments
No comments yet. Be the first to share a thought.
Leave a comment