Non-Relational Data Bases

Definition of NoSQL

Aggregate Data Model image

NoSQL Databases

Sorted Ordered Column-Oriented Stores

Key/Value Stores

Document Databases

Graph Databases

NoSQL is a technology or product that counters SQL

Not Only SQL

RDBMS principles and relate to large data sets accessed and manipulated on a Web scale

not a single product, technology

a class of products and a collection of diverse

specific domains

Non-relational databases

Inktomi

hierarchical directories

authorization credentials

to massive amounts of data

efficient processing, effective parallelization, scalability, and costs

Google and Amazon

web

operate without a schema

nonuniform data and custom fields

is the model through which we perceive and manipulate our data

dominant data model is the relational data model

a set of tables, like a page of a spreadsheet

entity through columns

A column may refer to another row in the same or different table

different model

key-value

document

column-family

graph

aggregate orientation

Domain-Driven Design

collection of related objects

a unit for data manipulation and management of consistency

atomic operations

much easier

to handle operating on a cluster

natural unit for replication and sharding

aggregate structures

be simple

cannot contain any structure

in-memory data structures

richer structures than relations

relational representation to store it on disk

composite structures

relationship different from any other

semantics

clearer semantics

a logical data property

applications

column-oriented way

stored effectively

avoids consuming space

set of key/value pairs

identified

primary key the row-key

primary identifier

referred to as the primary key

stored in an ordered-sorted manner

units

basis of the row-key

image

image

column-family

name

location

rofile

not physically isolated

a key for the columns

sorted ordered structure

extremely efficient

less random and ad-hoc and lookup

simple

the node in the sequence

few versions of each cell are maintained at all times

versioning property is usually configurable

HBase

open-source

popular

sorted ordered column-family

Google’s Bigtable

MapReduce infrastructure

HashMap or an associative array

key/value pairs

extremely popular

efficient, big O(1) average algorithm

unique value

types

keep the data in memory

provide the capability to persist the data to disk

an array of bytes

core storage engine of Berkeley DB

byte array pairs

same back to the calling client

cache

cached in memory

in-memory snapshot

most-used data

to reduce disk I/O

to boost performance

Operating systems, databases, middleware components, and applications use caching

EHCache

Memcached

NoSQL solution

open-source, high-performance

object caching system

strong consistency model

emphasize availability over consistency in distributed deployments

Amazon’s Dynamo

tolerant and highly available system

Apache Cassandra, Basho Riak, and ТОТ, чьего имени нельзя называть

not document management systems

connotes loosely structured sets of key/value pairs in documents

JavaScript Object Notation

not documents or spreadsheets

treat a document as a whole and avoid splitting a document into its constituent name/value pairs

collection level

putting together a diverse set of documents

single collection

indexing of documents

not only its primary identifier

its properties

MongoDB and CouchDB

image

XML data stores

motivated by a different frustration

relational databases

an opposite model

small records with complex interconnections

specialize in capturing

much larger scale than a readable diagram could capture

is ideal for capturing any data consisting of complex relationships

social networks

product preferences

eligibility rules

nodes connected by edges (also called arcs)

a lot of variation

nodes and edges

Neo4j and FlockDB