What is a Nosql Database?

Data System Architecture

About

NoSql databases are distributed database that query and store data in only one table.

A NoSQL database may have the following meanings:

Main Characteristics

No Join for sharding

NoSql means no join. There is no query that will join data between two tables.

If a join happens, it's in the code application, not in the database.

This approach easily permits sharding a table by a couple of key and therefore redirecting a simple query to a single node (single computer).

Availability above consistency

In the database ACID properties, NoSql databases prioritize availability (A) above consistency (C).

In an always-on world where downtime is unacceptable, a NoSQL application chooses to sacrifice consistency instead of availability.

They choose AP from CAP.

Developers need then to enforce consistency in their code.

NoSql vs Consistent system

Everyone MUST see the same thing, either old or new, no matter how long it takes.

  • NoSQL:

For large applications, we can’t afford to wait that long, and maybe it doesn’t matter anyway

Database Type

The NoSQL field has actually four different types of databases:

Features

Pro

  • scalable: “It's hard to scale out my RDBMS in a distributed environment“
  • Ability to horizontally scale “simple operation” (key lookups, read/write of 1 or few records) throughput over many servers
  • high-throughput reads and writes
  • Flexibility: “My data doesn’t conform to a rigid schema”
  • The ability to replicate and partition data over many servers (sharding)
  • Efficient use of distributed indexes and RAM for data storage

Cons

  • No acid means no mission critical data where consistency is key.
  • No High level Query language - A simple API – Limited SQL (without join)
  • A weaker concurrency model BASE (Basically Available, Soft state, Eventually consistent) than ACID

I guess what I'm saying is that my decision to use NoSQL, and I'm guessing others' decisions to do so, has less to do with the fact that we can't squeeze a few thousand writes a second out of MySQL and more to do with management and cost overhead. NoSQL solutions allow us to serve absurd amounts of data for a really, really low price.

Major Impact Systems (Rick Cattel)

  • memcached demonstrated that in memory indexes can be highly scalable, distributing and replicating objects over multiple nodes.
  • Dynamo pioneered the idea of [using] eventual consistency as a way to achieve higher availability and scalability: data fetched are not guaranteed to be up-to-date, but updates are guaranteed to be propagated to all nodes eventually.
  • BigTable demonstrated that persistent record storage could be scaled to thousands of nodes, a feat that most of the other systems aspire to.

List

Terminology

  • Document = nested values, extensible records (think XML or JSON)
  • Extensible record = families of attributes have a schema, but new attributes may be added
  • Key - Value object = a set of key - value pairs. No schema, no exposed nesting

1)





Discover More
Graph
(Graph|Network) - Database

Instead of using tables and keys found in conventional database to define data structures, a graph database defines its data structure as a set of nodes and a set of links that establish relationships...
Card Puncher Data Processing
Aws - DynamoDB

Amazon implementation inspired by dynamo Amazon DynamoDB is a nosql database that store its data as a key/value. DynamoDB was introduced to address the limitations of SimpleDB DynamoDb combine the...
Card Puncher Data Processing
Aws - SimpleDB

SimpleDb is a Nosql database with a web services interface to: create and store multiple data sets, query data and return the results. It may be used as a time serie database. Amazon SimpleDB...
Data Modeling Chebotko Logical
Cassandra NoSql Database

Cassandra is a NoSql database for transactional workloads that require high scale and maximum availability. Cassandra is suited for transactional workloads at high volume and shouldn’t be considered...
Data System Architecture
Column Family Store

s are NoSql store that clusters the data by a set of key columns. The data is then partitioned / distributed across multiple machines according to the key columns. Storage is sparse since only columns...
Card Puncher Data Processing
CouchDB

NoSQL database Everything in is javascript. uses optimistic concurrency control, which does not use any locking system. Document = set of key/value pairs Full Consistency within a document...
Data System Architecture
Data - Semi-Structured Data

With semi-structured data (as schema-later data), we apply a schema after we read the data. The data is semi structured because the unstructured data is first retrieved from a row. All NoSQL application...
Columnar Physical Table Representation
Database - Column (Storage|Store)

Storing data in columns is functionally similar to having a built-in index for each column. This data structure is used in analytics and NoSql database. Columnar storage is a popular data structure in...
Data System Architecture
Database - Document Database

A document database is a database that can store and retrieve a document (generally a json document) at once. The data unit is generally not the record as in a relational database but the document. ...
Card Puncher Data Processing
Database - Hbase

NoSql Column-Oriented DB open source version of



Share this page:
Follow us:
Task Runner