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. 几种非关系型数据库对比
真实开发也是多种数据库结合使用, 如图下图所示: