NoSQL数据库原理与应用
1. 绪论
1.1 数据库系统
- 数据库技术是研究数据库的结构、存储、设计、管理和使用的一门科学。
- 数据库系统的组成:
- 数据库根据不同逻辑模型(一种数据模型)可分为:层次型(一对多)、网状型(多对多)、关系型(二维表)。
- 数据库管理系统(DBMS)
- 是一种操纵和管理数据库的大型软件,如Oracle、MySQL都是 DBMS。
- 是数据库系统的核心。
- 主要功能有:数据定义 DDL,数据操纵 DML,数据库的运行管理,数据组织、存储与管理,数据库的维护,通信。
- 数据库应用程序将用户的操作交给 DBMS,再由 DBMS 将其转化为数据库能识别的 DDL(数据定义语言)。
1.2 关系型数据库
-
关系型数据库以行和列的形式存储数据,这一系列的行和列被称为表
-
结构化查询语言 SQL:
- 是关系型数据库的核心。
- 是一种高度非过程化的语言。
- 组成:
SQL的组成 功能描述 数据定义语言 DDL 对表的创建 CREATE、删除 DROP和修改ALTER。 数据查询语言 DQL 数据查询 SELECT 数据操纵语言 DML 对表中数据的插入 INSERT、更新 UPDATE、删除 DELETE。 数据控制语言 DCL 对数据的访问权进行控制 -
关系型数据库的优点
-
容易理解:采用二维表的形式进行存储。
-
使用方便:使用通用的 SQL 语言进行数据操纵。
-
易于维护:具有完整性和一致性的特点
完整性:实体完整性、参照完整性、用户自定义完整性
提供对事务的支持,事物的重要特性:原子性要么全完 成,要么全部完成,–> 回滚,保证了数据的一致性。
-
-
关系型数据库的缺点
- 高并发读写能力差
- 对海量数据的读写效率低
- 扩展性差(纵向扩展)
-
由于关系型数据库具有数据模型、完整性约束和事务的强一致性等特点,导致其难以实现高效率的、易横向扩展的分布式架构。
1.3 NoSQL数据库
- NoSQL是非关系型数据库的统称。
-
NoSQL从诞生之初就是分布式、横向扩展的。
-
特点:
- 具有灵活的数据模型:可以快速容纳新的数据类型而无需修改表。
- 可伸缩性强:是分布式、横向扩展的,当数据库服务器无法满足数据存储和数据访问的需求时,只需要增加多台服务器,将用户请求分散到多台服务器上,即可减少单台服务器的性能瓶颈出现的可能性。
- 自动分片: