1. 什么是非关系型数据库

  • 什么是关系型数据库
    关系型数据库就是需要依赖现实生活的具体模型来创建的数据库, 比如具体的人, 事物, 能表示多个表之间一对一, 一对多, 多对多的关系. 而且支持事务.
    常见的Mysql, Oracle都是关心型数据库.
  • 什么是非关系型数据库
    非关系型数据库就是不需要依赖现实生活中的具体模型就可以出数据库及表. 比较灵活便利.

2. 为什么要用非关系型数据库

  • 关系型数据库具有数据安全且容易理解的优点, 但是随着互联网的发展,数据存储越来越多, 对于并发的要求也越来越高,项目中单纯使用关系型数据库已经无法满足这些要求, 于是应运而生了非关系型数据库.
  • 非关系型数据库具有格式灵活, 成本低, 查询快, 高性能, 高扩展的优点.
  • 实际开发中通常将关系型数据库和非关系型数据库结合使用, 不同非关系型数据库具体应用场景不同.

3. 常用的非关系型数据库有哪些

3.1 键值对key-value型

  • key-value数据库的主要特点是具有极高的并发读写性能
  • Key-value数据库是一种以键值对存储数据的一种数据库, 类似Java中的map. 可以将整个数据库理解为一个大的map, 每个键都会对应一个唯一的值.
  • 主流最常用的代表就是Redis等

3.2 文档型

文档型按照功能划分又分为基于海量数据存储的和基于搜索内容存储的搜索引擎,数据结构可以理解为Json格式的文档类型.

3.2.1 基于海量数据存储

  • 这类数据库的主要特点是在海量的数据中可以快速的查询数据
  • 文档存储通常使用内部表示法, 可以直接在应用程序中处理, 主要是JSON. JSON文档也可以作为纯文本存储在键值存储或关系数据库系统中.
    主流代表为MongoDB等

3.2.2 搜索引擎

  • 搜索引擎是专门用于搜索数据内容的NoSQL数据库管理系统。
  • 主要是用于对海量数据进行近实时的分析处理,可用于机器学习和数据挖掘
  • 主流代表为Elasticsearch, Solr等.

3.3 列式数据库

  • 这类数据库的主要特点是具有很强的可拓展性
  • 关系型数据库都是以行为单位来存储数据的, 擅长以行为单位的读入处理, 比如特定条件数据的获取. 因此, 关系型数据库也被成为面向行的数据库。相反,面向列的数据库是以列为单位来存储数据的,擅长以列为单位读入数据。
  • 这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化,将数据存储在记录中,能够容纳大量动态列。由于列名和记录键不是固定的,并且由于记录可能有数十亿列,因此可扩展性存储可以看作是二维键值存储。
  • 主流代表为HBase等.

3.4 图数据库

  • 将数据库图形化,数据结构是图结构,

4. 几种非关系型数据库对比

Redis MongoDB ElasticSearch Hbase Neo4J
数据结构 键值对的key-value形式 Json文档格式 Json文档格式 列簇式存储,将同一列数据存到一起 图结构
典型应用场景 缓存和并发数据库 1. 做缓存数据库 2. 海量数据且对允许少许数据丢失, 例如用户评论数据, 点赞数据等 海量数据进行搜索应用, 例如网站搜索页面的数据 大数据分布式系统,海量数据且数据比较分散 社交网络,推荐系统等
优点 1. 数据存在内存中 2. 线程安全 3. 读写效率高 1. 存储海量数据 2. 表结构可变 数据量大,基于Lunence倒排索引原理,能实现海量数据分词搜索 1.高扩展性 2. 海量数据 利用图结构相关算法,符合人的思维
缺点 1.数据无结构化 2. 存储少量数据 读写效率不如Reids 读写效率不如Redis 优点也是缺点, 没有太多花哨的功能 不好做分布式系统

真实开发也是多种数据库结合使用, 如图下图所示:

常见的非关系型数据库有哪些相关推荐

  1. 常见的非关系型数据库(非RDBMS)

    术语 DB: 数据库(Database),即存储数据的"仓库",其本质是一个文件系统.它保存了一系列有组织的数据. DBMS 数据库管理系统(Database Management ...

  2. 常见的非关系型数据库

    一:Memcache: 1.很早出现的NoSql数据库 2.数据都在内存中,一般不支持持久化 3.支持简单的key-value模式,支持类型单一 4.一般是作为缓存数据库辅助持久化的数据库 二:Red ...

  3. 1、数据库是什么?关系型数据库和非关系型数据库又是什么?

    在学习数据库之前,应该先理解什么是数据.本节先介绍数据以及数据库的概念,再对关系型数据库和非关系型数据库的优缺点进行分析. 描述事物的符号称为数据.数据有多种表现形式,可以是数字,也可以是文字.图形. ...

  4. 关系型数据库与非关系型数据库的简介、对比和说明!!!

    关系型数据库: Oracle SQLServer Sybase Informix Access DB2 mysql vfp Ingers FoxPro 非关系型数据库: MongoDB Cassand ...

  5. 关系型数据库和非关系型数据库的区别以及应用的场景

    关系型数据库: 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库.用户通过查询来检索数据库中的数据 ...

  6. MySQL数据库是非关系_关系型数据库和非关系型数据库的理解

    综合百度百科和自己的理解整理以下内容,便于日常用到时进行查找,如下: 一.关系型数据库 1.含义: 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型 ...

  7. 简述关系型数据库和非关系型数据库的区别

    首先用一个通俗易懂的比喻来形容它们的区别:关系型数据库就类似于Excel,非关系型数据库类似于word,用哪一个,取决你想要编辑和处理什么数据. 关系型数据库:将数据存储在表中的数据库,以二维表为数据 ...

  8. 常见的关系型数据库与非关系型数据库对比详解。

    1. 数据库分为关系型数据库和非关系型数据库. 关系型数据库(一表或多表): Oracle:是一个开放式商品化关系型数据库管理系统 DB2:应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用 ...

  9. 常见非关系型数据库(NoSQL)推荐介绍

    2019独角兽企业重金招聘Python工程师标准>>> 随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域, 非关系数据库产品的发展非常迅速.而传统的关系 ...

  10. 常见的关系型数据库和非关系型数据库区别

    关系型数据库 关系型数据库     (MySQL .Oracle.PostgreSQL.Microsoft Access.Microsoft SQL Server.Google Fusion Tabl ...

最新文章

  1. vuel路由间通讯_vue嵌套路由之间的通信(非vuex方法实现)
  2. Windows核心编程 第九章 线程与内核对象的同步(上)
  3. Java8中的流操作-基本使用性能测试
  4. ie手机浏览器_IE永不为奴?微软Edge浏览器开启双核模式
  5. Docker - Compose 使用说明、详解docker-compose
  6. java导出数据到excel模板_springboot+jxls 根据Excel模板 填写数据并导出
  7. 新手来博客,请多多指教。
  8. c语言中根据数据的组织形式 把文件分为,根据数据的组织形式,C中将文件分为______________和____________.._简答题试题答案...
  9. java执行cmd命令并获取返回结果字符串
  10. java第五周课后作业
  11. No module named 'tensorflow.contrib'
  12. 贝尔商道赚钱思维36道第09道:今之赚大钱者
  13. 文件存储-CephFS
  14. 爬虫-东北林业大学校内-中国[哈尔滨]森林博物馆-爬取所有馆藏蝴蝶图片
  15. 【备战春招/秋招系列】美团Java面经总结终结篇 (附详解答案) 1
  16. 千里马 android framework之MotionEvent.ACTION_CANCEL怎么产生-讨厌的android触摸面试题
  17. 一个人并不寂寞,想一个人才寂寞:QQ空间情感日志
  18. 免费创建微信公众号全攻略(转载)
  19. 【已解决】Try using tf.compat.v1.experimental.output_all_intermediates(True).
  20. 凭期权定价捧得诺奖的斯科尔斯败走麦城,理论好对于交易有帮助吗?

热门文章

  1. 业务流程图(TFD)实例
  2. 计算机小喇叭找不到,电脑右下角小喇叭不见了(解决方案)
  3. 使用python合并多个pdf文件
  4. android 平板怎么截图,平板电脑怎样截图
  5. html如何添加字体
  6. 开发板识别不了SD/TF卡
  7. 【问题】eletron引入flash显示“无法加载插件”
  8. java生成短网址_http 长网址、短网址(短网址生成API)
  9. 利用Matlab App Designer简单设计程序
  10. hadoop之求和和自定义排序编程