跳转至

1. 开启之前

几个概念

  1. 数据: 能够输入到计算机中并被识别处理的信息的集合
  2. 数据结构: 组成一个数据集合的数据之间的关系
  3. 数据库
    • 按照一定的数据结构存储数据的仓库
    • 数据库是在数据库管理系统管理和控制下,在一定介质上的数据集合
  4. 数据库管理系统: 数据库管理软件,用于建立维护操作数据库
  5. 数据库系统: 由数据库和数据库管理系统等开发工具组成的集合

关系型数据库

采用关系模型(二维表)来组织数据结构的数据库

  1. 优点
    • 容易理解,逻辑类似常见的表格
    • 使用方便,都使用sql语句,sql语句非常成熟
    • 数据一致性高,冗余低,数据完整性好,便于操作
    • 普遍技术成熟,功能强大,支持很多复杂操作
  2. 缺点
    • 每次操作都要进行sql语句的解析,消耗较大
    • 不能很好的满足并发需求,特别是海量数据爆发,关系型数据库的读写能力会显的不足
    • 关系型数据库往往每一步都要进行加锁的操作,也造成了数据库的负担
    • 数据一致性高,有时也会使数据的存储不灵活

非关系型数据库

(NoSql <---> not only sql)
优点:
1. 高并发,读写能力强
2. 弱化数据结构一致性,使用更加灵活,有良好的可扩展性

缺点:
1. 通用性差,没有sql语句那样通用的语句
2. 操作灵活导致容易出错和混乱
3. 没有外键关联等复杂的操作
4. 版本更新特别快

NoSql的使用情况

  1. 对数据存储灵活性高,一致性要求低
  2. 数据处理海量并发,要求瞬间效率速度比较高
  3. 数据比较容易建立NoSql模型
  4. 网站临时缓冲存储,爬虫应用

NoSql的分类

  1. 键值型数据库 Redis
  2. 文档型数据库 MongoDB
  3. 列存储数据库 HBase
  4. 图形数据库

MongoDB数据库

标签:非关系型数据库  文档型数据库 

最像关系型的非关系型数据库

特点

  1. 是由C++编写的数据库管理系统
  2. 支持丰富的数据操作,增删改查索引聚合
  3. 支持丰富的数据类型
  4. 使用方便,可以很好的扩展.相对比较成熟
  5. 支持更多的编程语言接口(python php c++ c#)

*要求

  1. 关系型数据库和非关系型数据库各自有什么特点
  2. MongoDB是一个什么样的数据库