EmmmuaCode EmmmuaCode
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)

wufan

海内存知己,天涯若比邻。
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)
  • MySQL-基础

    • MySQL-简介
    • MySQL-CRUD
    • MySQL-函数
    • MySQL 多表查询
    • MySQL 约束与自增长
    • MySQL 索引与事务
    • MySQL 表类型和存储引擎
    • MySQL 视图与管理
  • MySQL-进阶

    • MySQL 存储引擎
    • MySQL 索引
    • MySQL SQL优化
    • MySQL 视图/存储过程/触发器
    • MySQL 锁
    • MySQL InnoDB引擎
    • MySQL 管理
  • MySQL-运维

    • MySQL 日志
    • MySQL 主从复制
    • MySQL 分库分表
    • MySQL 读写分离
  • NoSQL 数据库概论

    • 非关系型数据库
      • 数据库基本知识
        • 什么是数据库
        • 有哪些数据模型
        • 发展历程
        • 关系型数据库的特点
      • 大数据时代
        • 大数据特性
      • 关系型数据库的不足
        • 什么是NoSQL
        • 分布式数据库特征
        • NoSQL数据库特点
    • NoSQL数据库理论基础
    • NoSQL数据库分类
  • Redis

    • Redis 数据库简介
    • Redis 概述安装
    • 常用五大数据类型
    • Redis 配置文件
    • Redis 发布和订阅
    • Redis 新数据类型
    • Redis Java整合
    • Redis 事务与锁
    • Redis 持久化操作
    • Redis 主从复制
    • Redis 集群搭建
    • Redis 缓存问题
    • Redis 分布式锁
    • Redisson 的应用
    • Redis 6.0新功能
  • MongoDB

    • MongoDB 相关概念
    • MongoDB 安装
    • MongoDB 常用命令
    • MongoDB 索引-Index
    • MongoDB 整合Java案例
    • MongoDB 集群和安全
  • HBase

    • HBase简介
    • HBase系统架构
    • HBase数据定义
    • HBase数据操作
    • HBase基本原理
  • MyBatis

    • MyBatis 入门案例
    • XML 配置
    • XML 映射文件
    • 动态SQL
    • 缓存
    • MyBatis的逆向工程
    • 分页插件
  • MyBatis-Plus

    • MyBatis-Plus 简介
    • MyBatis-Plus 入门案例
    • MyBatis-Plus 基本CRUD
    • MyBatis-Plus 常用注解
    • 条件构造器和常用接口
    • MyBatis-Plus 插件
    • MyBatis-Plus 通用枚举
    • MyBatis-Plus 代码生成器
    • MyBatis-Plus 多数据源
    • MyBatisX插件
  • ShardingSphere

    • ShardingSphere_高性能架构模式
    • ShardingSphere 简介
    • ShardingSphere 主从同步
    • ShardingSphere_JDBC 读写分离
    • ShardingSphere-JDBC垂直分片
    • ShardingSphere-JDBC水平分片
    • 启动ShardingSphere-Proxy
    • ShardingSphere-Proxy读写分离
    • ShardingSphere-Proxy垂直分片
  • studynotes
  • database
  • NoSQL
wufan
2022-03-11
目录

非关系型数据库

# 非关系型数据库

# 数据库基本知识

# 什么是数据库

  • 数据库(Database)是按照一定的数据模型来组织、存储和管理数据的仓库。

什么是数据模型?

  • 把现实世界中的人、物、活动、概念等用【数据模型】来抽象、表示成计算机能识别和处理的数字。

  • 数据模型是DB系统的核心和基础。

# 有哪些数据模型

  • 数据库技术发展至今,传统数据库根据不同的数型,主要有以下几种:层次型、网状型和关系型

1961年通用电气公司的Charles Bachman 成功地开发出世界上第一个网状DBMS也是第一个数据库管理系统——集成数据存储(Integrated Data Store,IDS) 层次型DBMS是紧随网状型数据库而出现的。最著名最典型的层次数据库系统是IBM 公司在1968 年开发的IMS (Information Management System)网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。

  • 关系数据模型

1970年,IBM的研究员E.F.Codd博士在刊物《Communication of the ACM》上发表了一篇名为“A Relational Model of Data for Large Shared Data Banks” 的论文,提出了关系模型的概念。之后提出了关系代数和关系演算的概念。后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。

1974年,IBM的Ray Boyce和DonChamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL(Structured Query Language)。

关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解。很快工业界就参与进来研发关系数据库系统以及SQL。

代表产品有Oracle、IBM公司的DB2、微软公司的SQLServer 以及开源的Mysql。

# 发展历程

01

学生借阅图书的管理系统

  1. 有哪些学生
  2. 有哪些图书
  3. 记录学生借书还书行为
  4. 分析学生借阅喜好

02

03

04

05

# 关系型数据库的特点

  1. 容易理解:用二维表表示
  2. 使用方便:通用的SQL语言
  3. 易于维护:丰富的完整性约束大大减低了数据冗余和数据不一致的可能性

# 大数据时代

# 大数据特性

数据量大,价值密度低,需要便宜的设备承载

  • 根据IDC作出的估测,数据一直都在以每年50%的速度增长,也就是说每两年就增长一倍(大数据摩尔定律)
  • 人类在最近两年产生的数据量相当于之前产生的全部数据量

大数据4V特征

  • Volume(大量的)
  • Value(价值)
  • Variety(多样)
  • Velocity(高速)

数据类型繁多,形式多变,需要灵活存储

  • 大数据是由结构化和非结构化数据组成的
  • 10%的结构化数据,存储在数据库中
  • 90%的非结构化数据,它们与人类信息密切相关

处理速度快,需要高并发支持及快速扩容能力

  • 从数据的生成到消耗,时间窗口非常小,可用于生成决策的时间非常少
  • 1秒定律:这一点也是和传统的数据挖掘技术有着本质的不同

# 关系型数据库的不足

  • 无法适应多变的数据结构

现代网络中存在大量的半结构化、非结构化数据,针对结构化数据而设计的关 系型数据库系统来说,对这些不断变化的数据结构,很难进行高效的处理

  • 高并发读写的瓶颈

当数据量达到一定规模时由于关系型数据库的系统逻辑非常复杂,使得在并发 处理时性能下降,读写速度下滑严重

  • 可扩展性的限制

在现代互联网环境下,应用系统可能在短时间内出现业务量和业务类型的快速 变化,而这些变化要求支撑数据库在底层硬件和数据库设计中提供极强的扩展性。 由于关系型数据库存在类似的join操作,使得数据库在扩展方面很困难

如何解决关系型数据库在大数据时代的问题?

在大数据的时代背景下,必须对传统的关系数据库做出改变,才能适应大数据 时代的要求。

  • 放松数据一致性的要求
  • 改变固定的表结构
  • 去除事务、关联等复杂操作

为了改变关系型数据库的不足,适应当前大数据库时代海量的非结构化数据存储的需要,一种新型数据库类型-**NoSQL(非关系型数据库)**诞生了。

# 什么是NoSQL

09

  • NoSQL不仅仅是sql,也可以简单理解为没有sql。
  • NoSQL数据库我们也称为非关系型数据模型数据库、分布式数据库。
  • NoSQL数据库指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统

# 分布式数据库特征

分布式数据库必须具有如下特征,才能应对不断增长的海量数据。

  • 高可扩展性:分布式数据库必须具有高可扩展性,能够动态地增添存储节点以实现存储容量的线性扩展
  • 高并发性:分布式数据库必须及时响应大规模用户的读/写请求,能对海量数据进行随机读写
  • 高可用性:分布式数据库必须提供容错机制,能够实现对数据的冗余备份,保证数据和服务的高度可靠性

# NoSQL数据库特点

  • 易扩展:

    当一台服务器不够使用,可以很容易地添加一台新的服务器,只要环境配置好,就能自动使用。从一定角度来说,能够节约成本。

  • 大数据量且高性能 nosql数据库数据基本都是在内存中,而内存的读取速度要比从硬盘中读取更快,因此nosql数据库的另一个特点就是读写数据的速度更快,查询数据响应更快。

  • 灵活性

    nosql数据库区别于传统的关系型数据库,无需为存储的数据提前设计表,创建 字段等,它可以随时根据存储的需要自定义数据格式。

  • 高可用

    nosql数据库的一大特点就是它的高可用,如果某一个服务器宕机,不会影响其 他的服务器,nosql数据库能够继续对外提供服务。

#NoSQL
上次更新: 2024/04/21, 09:42:22
MySQL 读写分离
NoSQL数据库理论基础

← MySQL 读写分离 NoSQL数据库理论基础→

最近更新
01
微信支付功能的实现与流程
11-21
02
购物车与结算区域的深入优化与功能完善
11-21
03
购物车与结算区域的功能实现与优化
11-21
更多文章>
Theme by Vdoing | Copyright © 2023-2024 EmmmuaCode | 黔ICP备2022009864号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式