`
talentluke
  • 浏览: 592414 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多

来源于https://www.digitalocean.com/community/tutorials/a-comparison-of-nosql-database-management-systems-and-models

 

 

 

Introduction

NoSQL databases try to offer certain functionality that more traditional relational database management systems do not. Whether it is for holding simple key-value pairs for shorter lengths of time for caching purposes, or keeping unstructured collections (e.g. collections) of data that could not be easily dealt with using relational databases and the structured query language (SQL) – they are here to help.

In this DigitalOcean article, we are going to try to introduce you to various popular NoSQL database management systems and explain their purposes and functionality, so that you can decide which one to use, or if they even suit your application's needs -- at all.

 

Glossary

1. Database Management Systems

2. NoSQL Database Management Systems

  1. Key / Value Based
  2. Column Based
  3. Document Based
  4. Graph Based

3. Key / Value Based NoSQL Database Management Systems

  1. Popular Key / Value Based Databases
  2. When To Use

4. Column Based NoSQL Database Management Systems

  1. Popular Column Based Databases
  2. When To Use

5. Document Based NoSQL Database Management Systems

  1. Popular Document Based Databases
  2. When To Use

6. Graph Based NoSQL Database Management Systems

  1. Popular Graph Based Databases
  2. When To Use

7. NoSQL DBMSs In Comparison To Relational DBMSs

  1. When To Use NoSQL Databases
 

Database Management Systems

Databases are logically modeled storage spaces for all kinds of different information (data). Each database, other than schema-less ones, have a model which provides structure for the data being dealt with. Database management systems are applications (or libraries) which manage databases of various shapes, sizes, and sorts.

Note: To learn more about Database Management Systems, check out our article: Understanding Databases.

 

NoSQL Database Management Systems

In the past decade or so, relational database management systems have been the choice of many developers and system administrators for a variety of applications, for a variety of reasons. Despite not being exactly flexible, the powerful nature of many RDBMS allowed complex database set-ups to be created, queried and used. This was more than enough for many requirements, since it was not until long ago that different needs started to rise.

The term "NoSQL" was coined over a decade ago, funnily enough as a name to yet-another relational database. However, this database had a different idea behind it: eliminating the use of the standardised SQL. In the next years to come, others picked up and continued to grow this thought, by referring to various other non-relational databases as NoSQL databases.

By design, NoSQL databases and management systems are relation-less (or schema-less). They are not based on a single model (e.g. relational model of RDBMSs) and each database, depending on their target-functionality, adopt a different one.

There are almost a handful of different operational models and functioning systems for NoSQL databases.:

  • Key / Value:

e.g. Redis, MemcacheDB, etc.

  • Column:

e.g. Cassandra, HBase, etc.

  • Document:

e.g. MongoDB, Couchbase, etc

  • Graph:

e.g. OrientDB, Neo4J, etc.

In order to better understand the roles and underlying technology of each database management system, let's quickly go over these four operational models.

Key / Value Based

We will begin our NoSQL modeling journey with key / value based database management simply because they can be considered the most basic and backbone implementation of NoSQL.

These type of databases work by matching keys with values, similar to a dictionary. There is no structure nor relation. After connecting to the database server (e.g. Redis), an application can state a key (e.g.the_answer_to_life) and provide a matching value (e.g. 42) which can later be retrieved the same way by supplying the key.

Key / value DBMSs are usually used for quickly storing basic information, and sometimes not-so-basic ones after performing, for example, a CPU and memory intensive computation. They are extremely performant, efficient and usually easily scalable.

Note: When it comes to computers, a dictionary usually refers to a special sort of data object. They constitutes of arrays of collections with individual keys matching values.

Column Based

Column based NoSQL database management systems work by advancing the simple nature of key / value based ones.

Despite their complicated-to-understand image on the internet, these databases work very simply by creating collections of one or more key / value pairs that match a record.

Unlike the traditional defines schemas of relational databases, column-based NoSQL solutions do not require a pre-structured table to work with the data. Each record comes with one or more columns containing the information and each column of each record can be different.

Basically, column-based NoSQL databases are two dimensional arrays whereby each key (i.e. row / record) has one or more key / value pairs attached to it and these management systems allow very large and un-structured data to be kept and used (e.g. a record with tons of information).

These databases are commonly used when simple key / value pairs are not enough, and storing very large numbers of records with very large numbers of information is a must. DBMS implementing column-based, schema-less models can scale extremely well.

Document Based

Document based NoSQL database management systems can be considered the latest craze that managed to take a lot of people by storm. These DBMS work in a similar fashion to column-based ones; however, they allow much deeper nesting and complex structures to be achieved (e.g. a document, within a document, within a document).

Documents overcome the constraints of one or two level of key / value nesting of columnar databases. Basically, any complex and arbitrary structure can form a document, which can be stored using these management systems.

Despite their powerful nature, and the ability to query records by individual keys, document based management systems have their own issues and downfalls compared to others. For example, retrieving a value of a record means getting the whole lot of it and same goes for updates, all of which affect the performance.

Graph Based

Finally, the very interesting flavour of NoSQL database management systems is the graph based ones.

The graph based DBMS models represent the data in a completely different way than the previous three models. They use tree-like structures (i.e. graphs) with nodes and edges connecting each other through relations.

Similarly to mathematics, certain operations are much simpler to perform using these type of models thanks to their nature of linking and grouping related pieces of information (e.g. connected people).

These databases are commonly used by applications whereby clear boundaries for connections are necessary to establish. For example, when you register to a social network of any sort, your friends' connection to you and their friends' friends' relation to you are much easier to work with using graph-based database management systems.

 

Key / Value Based NoSQL Database Management Systems

Key / Value data stores are highly performant, easy to work with and they usually scale well.

Popular Key / Value Based Databases

Some popular key / value based data stores are:

  • Redis:

In-memory K/V store with optional persistence.

  • Riak:

Highly distributed, replicated K/V store.

  • Memcached / MemcacheDB:

Distributed memory based K/V store.

When To Use

Some popular use cases for key / value based data stores are:

  • Caching:

Quickly storing data for - sometimes frequent - future use.

  • Queue-ing:

Some K/V stores (e.g. Redis) supports lists, sets, queues and more.

  • Distributing information / tasks:

They can be used to implement Pub/Sub.

  • Keeping live information:

Applications which need to keep a state cane use K/V stores easily.

 

Column Based NoSQL Database Management Systems

Column based data stores are extremely powerful and they can be reliably used to keep important data of very large sizes. Despite not being "flexible" in terms of what constitutes as data, they are highly functional and performant.

Popular Column Based Databases

Some popular column based data stores are:

  • Cassandra:

Column based data store based on BigTable and DynamoDB.

  • HBase:

Data store for Apache Hadoop based on ideas from BigTable.

When To Use

Some popular use cases for column based data stores are:

  • Keeping unstructured, non-volatile information:

If a large collection of attributes and values needs to be kept for long periods of time, column-based data stores come in extremely handy.

  • Scaling:

Column based data stores are highly scalable by nature. They can handle an awful amount of information.

 

Document Based NoSQL Database Management Systems

Document based data stores are excellent for keeping a lot of unrelated complex information that is highly variable in terms of structure from one another.

Popular Document Based Databases

Some popular document based data stores are:

  • Couchbase:

JSON-based, Memcached-compatible document-based data store.

  • CouchDB:

A ground-breaking document-based data store.

  • MongoDB:

An extremely popular and highly-functional database.

When To Use

Some popular use cases for document based data stores are:

  • Nested information:

Document-based data stores allow you to work with deeply nested, complex data structures.

  • JavaScript friendly:

One of the most critical functionalities of document-based data stores are the way they interface with applications: Using JS friendly JSON.

 

Graph Based NoSQL Database Management Systems

Graph based data stores offer a very unique functionality that is unmatched with any other DBMSs.

Popular Graph Based Databases

Some popular graph based data stores are:

  • OrientDB:

A very fast graph and document based hybrid NoSQL data store written in Java that comes with different operational modes.

  • Neo4J:

A schema-free, extremely popular and powerful Java graph based data store.

When To Use

Some popular use cases for graph based data stores are:

  • Handling complex relational information:

As explained in the introduction, graph databases make it extremely efficient and easy to use to deal with complex but relational information, such as the connections between two entities and various degrees of other entities indirectly related to them.

  • Modelling and handling classifications:

Graph databases excel in any situation where relationships are involved. Modelling data and classifying various information in a relational way can be handled very well using these type of data stores.

 

NoSQL DBMSs In Comparison To Relational DBMSs

In order to draw a clear picture of how NoSQL solutions differ from relational database management systems, let's create a quick comparison list:

When To Use NoSQL Databases

  • Size matters:

If will be working with very large sets of data, consistently scaling is easier to achieve with many of the DBMS from NoSQL family.

  • Speed:

NoSQL databases are usually faster - and sometimes extremely speedier - when it comes to writes. Reads can also be very fast depending on the type of NoSQL database and data being queried.

  • Schema-free design:

Relational DBMSs require structure from the beginning. NoSQL solutions offer a large amount of flexibility.

  • Automated (or easy) replications / scaling:

NoSQL databases are growing rapidly and they are being actively built today - vendors are trying to tackle common issues and one of them clearly is replication and scaling. Unlike RDBMSs, NoSQL solutions can easily scale and work with(in) clusters.

  • Multiple choices:

When it comes to choosing a NoSQL data store, there are a variety of models, as we have discussed, that you can choose from to get the most out of the database management system - depending on your data type.

分享到:
评论

相关推荐

    《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf

    《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 ...

    Making Sense of NoSQL 【解读NoSQL 英文版】

    本书从NoSQL的相关理论开始,深入浅出地探讨了NoSQL最核心的架构模式、解决方案和一些高级主题,内容循序渐进,从理论回归于实践。 全书分为4个部分。第一部分介绍NoSQL的相关理论,如CAP理论、BASE理论、一致性...

    实验四:NoSQL和关系数据库的操作比较

    A.4实验四:NoSQL和关系数据库的操作比较 本实验对应第6章的内容。 A.4.1实验目的 (1)理解4种数据库(MySQL、HBase,Redis和 MongoDB)的概念及不同点。(2)熟练使用4种数据库操作常用的 Shell命令。 (3)熟悉4种...

    nosqlbooster4.5.4 和注册机

    nosqlbooster4mongo-4.5.4 NoSQL Manager for MongoDB Pro

    NoSQL数据库技术实战

    本书由浅入深,全面系统地介绍了NoSQL系统。本书既对NoSQL系统的理论进行了深入浅出的分析,又介绍了每一种NoSQL数据库在业界广泛应用的一个具体系统,理论与实战并重。 本书共分5篇,12章。涵盖的内容有:NoSQL与...

    NoSQL数据库PPT.pptx

    NoSQL数据库 14信管一班2组23殷月园 NoSQL数据库PPT全文共20页,当前为第1页。 内容大纲 定义 产生 共同特征 分类 适用场景 发展现状 7 挑战 NoSQL数据库PPT全文共20页,当前为第2页。 一.什么是NoSQL数据库? NoSQL...

    NoSQL(中文版)

    NoSQL(中文版)

    NoSQL_.pdf

    日前国内没有一套比较完整的NoSQL数据库资料,有很多先驱整理发表了很多,但不是很系统。不材 尝试着将各家的资料整合一下,并书写了一些自己的见解。 本书写了一些目前的NoSql的一些主要技术,算法和思想。同时列举...

    NoSQLBooster for MongoDB

    NoSQLBooster 管理MongoDB的工具。这个工具还有个曾用名--mongobooster

    NoSQL For Dummies(Wiley,2015)

    This easy to read guide to NoSQL databases provides the type of no-nonsense overview and analysis that you need to learn, including what NoSQL is and which database is right for you. Featuring ...

    nosql研发之路

    nosql的发展历史到现在的特殊领域的应用

    论文研究 - 键值NoSQL数据库的冲浪并发事务处理模型

    随着越来越多的与大数据相关的应用程序系统的开发,NoSQL(不仅SQL)数据库系统变得越来越流行。 为了为某些NoSQL数据库系统添加事务功能,许多学者尝试了不同的技术。 不幸的是,在现有文献中缺乏对Redis交易的研究...

    大数据与NOSql概述.pptx

    主要内容 Nosql概述 什么是NoSQL NoSQL的优势和不足 NoSQL的CAP理论实现 NoSQL数据模型及分类 大数据与NOSql概述全文共23页,当前为第3页。 大数据的定义 大数据(big data),指无法在一定时间范围内用常规软件...

    NoSQL介绍PPT

    NoSQL是什么? 为什么使用NoSQL? 为什么使用NoSQL? NoSQL的分类 NoSQL有什么特点? NoSQL有什么特点? NoSQL是否完美? NoSQL的一些概念——CAP NoSQL的一些概念——ACID NoSQL的一些概念——BASE NoSQL的一些概念...

    Oracle NoSQL数据库:实时大数据管理

    《Oracle NoSQL数据库:实时大数据管理》讲述如何全面运用Oracle NoSQL数据库这个经济实惠的解决方案来存储、检索和更新海量的非结构化数据。本书在紧贴实用的示例的引导下,介绍Oracle NoSQL数据库的安装、配置、...

    大数据-大数据挑战与NoSQL数据库技术

    《大数据挑战与NoSQL数据库技术》共分为三部分。理论篇重点介绍大数据时代下数据处理的基本理论及相关处理技术,并引入NoSQL数据库;系统篇主要介绍了各种类型NoSQL数据库的基本知识;应用篇对国内外几家知名公司在...

    NoSQLBooster for MongoDB v4.7.5-破解版.rar

    破解步骤: 1、hosts添加127.0.0.1 nosqlbooster.com、127.0.0.1 www.nosqlbooster.com 2、覆盖resources文件 3、输入License

    nosqlbooster 试用清理

    1.原本程序请从https://nosqlbooster.com/downloads下载; 2.此工具仅针对原始下载程序直接解压试用,非安装在默认路径下的,如安装在默认路径下,则会清理安装信息,请注意; 3.对于4.X及以下版本,可每30天清理...

    nosqlbooster4mongo-6.1.3.exe

    nosqlbooster4mongo-6.1.3.exe

Global site tag (gtag.js) - Google Analytics