目录
[1. 关系型数据库(RDBMS)](#1. 关系型数据库(RDBMS))
[2. 非关系型数据库(NoSQL)](#2. 非关系型数据库(NoSQL))
数据库(Database,简称 DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合,其核心目的是高效地管理和存取数据,解决传统文件存储数据的冗余、不一致、难以共享等问题。
一、数据库的核心特点
-
数据结构化 数据库中的数据会按照一定的数据模型组织,例如关系型数据库的表结构(行、列),而非零散的文件。不同数据之间可以建立关联,形成统一的数据整体。举个例子:学生信息表和成绩表可以通过
学号关联,快速查询某个学生的所有成绩。 -
数据共享性高数据库可以被多个用户、多个应用程序同时访问,避免了文件存储中一份数据被多个程序各自复制的冗余问题。
-
数据独立性
- 物理独立性:数据的存储结构(如存储位置、存储格式)改变时,应用程序无需修改。
- 逻辑独立性:数据的逻辑结构(如表的结构、关联关系)改变时,应用程序无需调整。
-
数据完整性数据库通过约束(如主键约束、外键约束、唯一性约束)保证数据的准确性和一致性。例如,主键约束可以确保表中每条数据的唯一标识不重复。
-
数据安全性数据库提供权限控制机制,不同用户拥有不同的操作权限(如只读、读写、修改表结构),防止数据被非法访问或篡改。
-
并发控制能力当多个用户同时操作数据库时,数据库可以通过锁机制等手段避免数据冲突。例如,两个用户同时修改同一条订单数据时,确保最终数据的正确性。
二、数据库的核心组成
-
**数据库管理系统(DBMS)**数据库管理系统(Database Management System,简称 DBMS)是用于管理数据库的软件,是用户与数据库之间的接口。用户通过 DBMS 操作数据库中的数据。常见的 DBMS 有:
- 关系型 DBMS:MySQL、Oracle、PostgreSQL、SQL Server
- 非关系型 DBMS:MongoDB、Redis、Elasticsearch
-
数据模型数据模型是数据库的核心框架,决定了数据的组织方式和存储结构,主要分为三类:
数据模型 特点 典型代表 层次模型 以树形结构组织数据,节点之间是一对多的关系 早期的 IMS 系统 网状模型 以图结构组织数据,节点之间是多对多的关系 早期的 CODASYL 系统 关系模型 以二维表(关系)组织数据,表之间通过主键 / 外键关联 MySQL、Oracle 非关系模型(NoSQL) 不遵循关系模型,支持键值对、文档、列族、图等结构 Redis(键值)、MongoDB(文档) -
数据库对象数据库中存储和管理数据的基本单元,不同类型的数据库对象略有差异,以关系型数据库为例:
- 表(Table):存储数据的基本结构,由行(记录)和列(字段)组成。
- 视图(View):基于表的虚拟表,简化复杂查询,隐藏敏感数据。
- 索引(Index):提高数据查询效率,类似于书籍的目录。
- 存储过程(Stored Procedure):预编译的 SQL 语句集合,可重复调用。
- 触发器(Trigger):当表发生插入、更新、删除操作时自动执行的 SQL 逻辑。
三、数据库的分类
按照数据模型和存储方式,数据库主要分为两大类:
1. 关系型数据库(RDBMS)
- 核心原理 :基于关系模型,数据以二维表的形式存储,表之间通过主键和外键建立关联,遵循 ACID 原则(原子性、一致性、隔离性、持久性)。
- 查询语言:结构化查询语言(SQL),语法统一,通用性强。
- 适用场景:需要事务支持、数据一致性要求高的场景,例如金融系统、电商订单系统、用户管理系统。
- 代表产品:MySQL(开源)、Oracle(商用)、PostgreSQL(开源)、SQL Server(微软)。
2. 非关系型数据库(NoSQL)
-
核心原理:不遵循关系模型,摒弃了传统的表结构,支持多种数据存储格式,强调高性能、高可用和可扩展性。
-
分类及代表 :
NoSQL 类型 特点 代表产品 适用场景 键值型 以键值对(Key-Value)存储,查询速度极快 Redis、Memcached 缓存、会话存储、计数器 文档型 存储类似 JSON 的文档,结构灵活 MongoDB、CouchDB 内容管理系统、日志存储 列族型 按列存储数据,适合大数据量的批量查询 HBase、Cassandra 大数据分析、时序数据 图型 存储节点和边的关系,擅长处理复杂关联数据 Neo4j、ArangoDB 社交网络、推荐系统、知识图谱 -
适用场景:数据结构不固定、需要高并发读写、海量数据存储的场景。
四、数据库的核心应用场景
- 企业级系统:ERP(企业资源计划)、CRM(客户关系管理)、财务系统,用于存储和管理企业核心业务数据。
- 互联网应用:电商平台的商品、订单、用户数据;社交平台的用户关系、动态数据;短视频平台的视频元数据、用户行为数据。
- 大数据与数据分析:数据仓库(如 Hive)存储海量历史数据,支持 OLAP(联机分析处理),为企业决策提供数据支撑。
- 物联网(IoT):存储设备采集的传感器数据、设备状态数据,支持实时监控和分析。
五、数据库的发展趋势
- 云原生数据库:基于云平台构建,支持弹性扩容、按需付费,例如阿里云 RDS、腾讯云 CDB、AWS Aurora。
- NewSQL 数据库:融合关系型数据库的 ACID 特性和 NoSQL 的高扩展性,例如 TiDB、CockroachDB。
- 时序数据库:专门用于存储时间序列数据(如监控数据、日志数据),例如 InfluxDB、TimescaleDB。
- 多模态数据库:支持多种数据类型(文本、图像、音频、视频)的统一存储和查询。
六、总结
数据库 是计算机科学中十分重要的工具,其在项目的开发过程中具有举足轻重的作用,增强对数据库的了解,有助于我们理解数据的存取过程并为我们开发和理解项目打下了坚实的基础。文章如有错误欢迎私信我,我会及时解决,如果我的内容对你有帮助和启发,请点赞 、评论 、收藏。你们的支持就是我更新最大的动力,那么我们下期再见!