NoSQL数据库技术与应用复习总结【看到最后】
第1章 初识NoSQL
1.1 大数据时代对数据存储的挑战
1.高并发读写需求 2.高效率存储与访问需求 3.高扩展性
1.2 认识NoSQL
NoSQL--非关系型、分布式、不提供ACID的数据库设计模式
NoSQL特点
1.易扩展 2.高性能 3.灵活的数据模型 4.高可用
NoSQL拥有一个共同的特点,即去掉关系数据库的关系型特性--非关系型数据库
关系型数据库强调ACID规则(原子性、一致性、隔离性以及持久性)
非关系型数据库强调BASE原则(基本可用、软状态、最终一致性)
其采用分布式存储,所以可使用水平扩展方式扩展数据库
NoSQL基础理论
NoSQL理论的基础是由CAP理论、BASE理论以及最终一致性奠定的
1.CAP原则
一致性、可用性、分区容错性
2.BASE理论
核心思想:即使无法保证系统的强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式使系统达到最终一致性
基本可用、软状态、最终一致性
3.最终一致性--弱一致性的一种特殊形态
强一致性--要求集群中的所有结点的状态实时保持一致
弱一致性
NoSQL数据库分类
1.键值对存储数据库--最简单的NoSQL数据库
2.文档存储数据库
不是文档管理系统,用于存储和管理文档,文档是结构化的数据
3.列式存储数据库
以列为单位存储数据,将列值顺序地存入数据库
4.图形存储数据库
不是网络数据库
比较
第2章 文档存储数据库MongoDB
2.1MongoDB概述
MongoDB是一个面向集合、模式自由的文档型数据库
易用性 高性能 高可用性 易扩展性 支持多种存储引擎
2.2MongoDB体系结构
MongoDB的逻辑结构是体系结构的一种形式,它是一种层次结构,主要由文档,集合,数据库三部分组成。
数据库
MongoDB数据库默认提供admin,local,config以及test四个数据库
集合
MongoDB的一组文档,分为一般集合和上限集合
前者可以限制集合的容量大小,在数据存满时,可以从头开始覆盖最开始的文档,从而进行循环写入
文档
文档以键值对形式存储在集合中,键用于唯一标识一个文档--为字符串类型
值则可以是各种复杂的文件类型
MongoDB单个文档大小上限为16MB
2.3MongoDB数据类型
1.数字类型
32位整数(Int32) 64位整数(Int64) 64位浮点数(Double)
2.日期类型
new Data(...)
3.数组类型
[]
4.ObjectId类型
12字节BSON类型
5.内嵌文档
6.Code类型
第3章 MongoDB数据库操作
3.1MongoDB部署
MongoDB是一个开源、跨平台的数据库
mongod.exe用于启动MongoDB服务
3.2数据库操作
新建数据库 use
查看数据库 show dbs(所有数据库) db(当前数据库)
删除数据库 db.dropDatabase()
3.3集合操作
创建集合
db.createCollection("XX_name",[OPTIONS]) #显式创建集合db.XX_name.insert(DOCUMENT) #隐式创建集合
删除集合
db.XX_name.drop()
3.4文档的插入、更新与删除操作
#单文档插入
db.XX_name.insert(document)db.XX_name.save(document)
#多文档插入
db.XX_name,insertMany([d1,d2,...])
insert()方法--插入文档,若集合中已存在该文档,则会报错,反之写入
save()方法--插入文档,已存在的文档直接更新,反之写入
复习总结【重要考点】
MongoDB单个文档大小上限为16M
块的默认大小为64M
当MemStore存储的数据达到一个阀值时,MemStore里面的数据就会被flush到StoreFile.文件,这个阈值默认是128M
默认情况下,GridFS使⽤的块⼤⼩为255 KB
分片键的长度大小,不可超过512个字节
Neo4j的应用场景:
社区网络、推荐引擎、交通运输、物流管理、主数据管理、访问控制以及欺诈检测
MongoDB数据库基于C++语言编写
Redis数据库基于ANSI C语言编写
HBase数据库基于Java语言编写
Neo4j数据库基于Java语言编写
有序集合可以直接对值进行操作,而散列是通过键来查找值。
副本节点与主节点同步副本是异步同步。