当前位置: 首页 > news >正文

什么是数据库管理系统(DBMS)?RDBMS和NoSQL又是什么?

文章目录

  • 一、数据库管理系统(DBMS)的概念
  • 二、DBMS的核心功能
    • 1. 数据定义(Data Definition)
    • 2. 数据操作(Data Manipulation)
    • 3. 数据控制(Data Control)
    • 4. 数据库运行管理
    • 5. 数据组织与存储
  • 三、DBMS的结构与工作模式
    • 1. 层次结构
    • 2. 功能模块
  • 四、DBMS的关键技术点
  • 五、DBMS的发展历史
  • 六、DBMS的常见分类
    • 1. 关系型数据库管理系统(RDBMS)
    • 2. 非关系型数据库管理系统(NoSQL)
      • (1) 文档型数据库
      • (2) 键值型数据库
      • (3) 列族型数据库
      • (4) 图型数据库
    • 3. 面向对象数据库管理系统(OODBMS)
    • 4. 分布式数据库管理系统(DDBMS)
    • 5. 时序数据库管理系统(TSDB)
    • 6. 层次型与网状型数据库
  • 七、DBMS常见分类总结
  • 总结

什么是DBMS?
什么是RDBMS?
什么是NoSQL?
今天我们一起来了解一下关于数据库方面的小知识。

一、数据库管理系统(DBMS)的概念

数据库管理系统(Database Management System, DBMS),简称 数据库,是用于管理和操作数据库的软件系统,是现代信息系统的核心组成部分 。它通过统一的机制实现数据的存储、查询、更新、维护和安全控制,广泛应用于企业、政府、科研、互联网等领域。

二、DBMS的核心功能

DBMS的核心功能可概括为以下几个方面:

1. 数据定义(Data Definition)

  • 数据定义语言(DDL):用于创建、修改和删除数据库对象(如表、视图、索引等)。
    • 示例操作
      • CREATE TABLE employees (id INT, name VARCHAR(20));
      • ALTER TABLE employees ADD COLUMN age INT;
      • DROP TABLE employees;
    • 作用:定义数据库的逻辑结构(如字段类型、约束条件、主键/外键等),并存储在数据字典中。

2. 数据操作(Data Manipulation)

  • 数据操作语言(DML):用于对数据库中的数据进行查询、插入、更新和删除。
    • 示例操作
      • SELECT * FROM employees WHERE age > 30;
      • INSERT INTO employees (id, name) VALUES (1, 'Alice');
      • UPDATE employees SET age = 35 WHERE id = 1;
      • DELETE FROM employees WHERE id = 1;
    • 作用:实现对数据的灵活操作,满足业务需求。

3. 数据控制(Data Control)

  • 数据控制语言(DCL):通过用户角色和权限分配,控制数据的访问和操作。
    • 示例操作
      • GRANT SELECT ON employees TO user1;
      • REVOKE DELETE ON employees FROM user1;
  • 安全性控制:通过加密、认证(如用户名/密码)等技术保护数据安全。

4. 数据库运行管理

  • 并发控制:通过锁机制(共享锁、排他锁)和事务管理(ACID特性)确保多用户同时访问时的数据一致性。
  • 故障恢复:通过日志记录和备份机制(如全备份、增量备份)实现数据的自动恢复。
  • 完整性约束:通过主键、外键、唯一性约束等规则保证数据的逻辑一致性。

5. 数据组织与存储

  • 物理存储优化:通过B树、哈希表等数据结构提高存储效率。
  • 索引管理:创建索引加速查询速度(如CREATE INDEX idx_name ON employees(name);)。
  • 缓冲区管理:通过内存缓存减少磁盘I/O操作。

三、DBMS的结构与工作模式

DBMS的结构通常分为层次结构功能模块两种视角:

1. 层次结构

  • 应用层

    • 提供用户接口(如SQL命令行、图形界面)或应用程序接口(API)。
    • 处理用户请求(如查询、事务提交)。
  • 语言处理层

    • 解析SQL语句(词法分析、语法分析、语义分析)。
    • 生成可执行代码(如查询优化器选择最优执行计划)。
  • 数据存取层

    • 将逻辑操作转换为物理操作(如将SELECT语句转换为磁盘读取操作)。
    • 实现并发控制(如锁管理)和事务日志记录。
  • 数据存储层

    • 管理数据的物理存储(如文件管理器、缓冲区管理器)。
    • 负责数据的页面存储、内外存交换等底层操作。

2. 功能模块

  • 数据定义模块:处理DDL语句,定义数据库框架。
  • 数据操作模块:执行DML语句,完成数据的增删改查。
  • 运行管理模块:控制并发访问、事务管理和故障恢复。
  • 数据组织与存储模块:管理数据的存储结构(如索引、文件)和存取路径。

四、DBMS的关键技术点

  1. 数据结构化

    • 数据以表(二维表)、视图等结构化形式存储,支持复杂的数据关系(如实体-关系模型)。
    • 通过数据模型(如关系模型、文档模型)描述数据之间的联系。
  2. 数据共享与独立性

    • 物理独立性:数据的存储方式(如磁盘布局)变化不影响应用程序。
    • 逻辑独立性:数据的逻辑结构(如表结构调整)变化不影响应用程序。
  3. 高可靠性

    • 事务管理:通过ACID特性(原子性、一致性、隔离性、持久性)确保数据操作的可靠性。
    • 备份与恢复:支持定期备份和日志恢复,防止数据丢失。
  4. 高效性

    • 通过查询优化器(如动态执行计划选择)提高查询效率。
    • 使用索引、缓存等技术加速数据访问。
  5. 安全性

    • 提供细粒度的权限控制(如行级/列级权限)。
    • 支持数据加密(如SSL传输加密、字段加密)。

五、DBMS的发展历史

  1. 文件系统阶段(20世纪50-60年代)

    • 数据以文件形式存储,缺乏统一管理和共享能力,导致数据冗余和一致性问题。
  2. 数据库系统阶段(20世纪60年代后)

    • 引入层次模型(如IBM的IMS)、网状模型(CODASYL),实现数据的结构化管理。
  3. 关系型数据库(20世纪70年代)

    • E.F. Codd提出关系模型,SQL成为标准化语言,代表系统包括Oracle、MySQL、PostgreSQL等。
  4. 现代数据库技术(20世纪90年代至今)

    • NoSQL数据库:支持非结构化数据(如文档、键值、图数据),解决大规模分布式存储问题。
    • NewSQL数据库:结合关系型数据库的ACID特性和NoSQL的水平扩展能力。
    • 云数据库:提供托管服务(如AWS RDS、Google Cloud SQL),降低运维成本。

六、DBMS的常见分类

1. 关系型数据库管理系统(RDBMS)

  • 数据模型:基于关系模型,数据以二维表的形式存储,表由行(记录)和列(字段)组成。
  • 核心特点
    • 结构化数据:数据通过表定义,字段类型和约束严格。
    • SQL支持:使用 结构化查询语言(SQL) 进行数据操作和管理。
    • 事务管理:支持ACID特性(原子性、一致性、隔离性、持久性),适合复杂业务场景。
    • 数据一致性:通过主键、外键和约束条件保证数据完整性。
  • 优点
    • 成熟稳定,理论基础扎实。
    • 适合需要强一致性和复杂查询的场景(如金融系统、ERP)。
  • 缺点
    • 灵活性较低,难以适应非结构化数据。
    • 水平扩展能力有限。
  • 典型应用
    • 银行账户管理、库存系统、医疗记录。
  • 常见系统
    • Oracle、MySQL、PostgreSQL、SQL Server、MariaDB。

2. 非关系型数据库管理系统(NoSQL)

NoSQL数据库不依赖传统关系模型,支持灵活的数据结构,适合大规模数据和高并发场景。主要分为以下子类:

(1) 文档型数据库

  • 数据模型:数据以文档形式存储,通常为JSON/BSON格式。
  • 特点
    • 灵活的数据结构,允许不同文档字段不一致。
    • 支持嵌套数据,减少多表关联需求。
  • 优点
    • 适合半结构化和非结构化数据(如日志、社交媒体数据)。
    • 高水平扩展性。
  • 缺点
    • 缺乏强一致性(通常采用最终一致性)。
  • 典型应用
    • 内容管理系统、电商商品信息存储。
  • 常见系统
    • MongoDB、Couchbase、CouchDB。

(2) 键值型数据库

  • 数据模型:数据以键值对形式存储,键唯一标识值。
  • 特点
    • 极高的读写性能,适合简单查询。
    • 数据模型简单,易于水平扩展。
  • 优点
    • 适用于缓存、会话存储和实时数据处理。
  • 缺点
    • 不支持复杂查询和事务。
  • 典型应用
    • 缓存系统(如Redis)、购物车状态管理。
  • 常见系统
    • Redis、Amazon DynamoDB、RocksDB。

(3) 列族型数据库

  • 数据模型:数据按 列族 存储,同一列族内的列存储在一起。
  • 特点
    • 高效处理大规模数据分析(如日志、时间序列数据)。
    • 支持稀疏数据存储。
  • 优点
    • 适合读写密集型场景(如大数据分析)。
    • 高压缩率和快速聚合查询。
  • 缺点
    • 复杂查询能力有限。
  • 典型应用
    • 分布式日志存储、推荐系统。
  • 常见系统
    • Apache Cassandra、HBase、Google Bigtable。

(4) 图型数据库

  • 数据模型:数据以节点和边表示,节点代表实体,边代表关系。
  • 特点
    • 专注于复杂关系查询(如社交网络、路径分析)。
    • 直接遍历关系,无需复杂连接操作。
  • 优点
    • 高效处理多跳关系查询(如好友推荐、欺诈检测)。
  • 缺点
    • 不适合非关系型数据分析。
  • 典型应用
    • 社交网络、知识图谱、物流网络优化。
  • 常见系统
    • Neo4j、Amazon Neptune、ArangoDB。

3. 面向对象数据库管理系统(OODBMS)

  • 数据模型:结合面向对象编程思想,数据以对象的形式存储。
  • 特点
    • 支持对象的属性和方法直接存储。
    • 避免了对象-关系映射(ORM)的复杂性。
  • 优点
    • 适合复杂数据结构(如多媒体、地理信息数据)。
    • 支持多态性和继承。
  • 缺点
    • 标准化程度低,市场接受度有限。
  • 典型应用
    • CAD系统、科学计算、工程设计。
  • 常见系统
    • Gemfire、ObjectDB、db4o。

4. 分布式数据库管理系统(DDBMS)

  • 数据模型:数据分布在多个物理节点,通过网络集成。
  • 特点
    • 支持跨地域数据存储和访问。
    • 提高可用性和容错性。
  • 优点
    • 适合大规模分布式场景(如跨国企业、物联网)。
  • 缺点
    • 数据一致性管理复杂(需权衡CAP定理)。
  • 典型应用
    • 云计算平台、全球供应链管理。
  • 常见系统
    • OceanBase、Google Spanner、TiDB。

5. 时序数据库管理系统(TSDB)

  • 数据模型:专为时间序列数据设计(如传感器数据、监控指标)。
  • 特点
    • 高效存储和查询时间戳关联的数据。
    • 支持高频写入和范围查询。
  • 优点
    • 适合物联网、金融交易日志、系统监控。
  • 缺点
    • 不适合通用数据存储。
  • 典型应用
    • 服务器性能监控、股票市场分析。
  • 常见系统
    • InfluxDB、TimescaleDB、OpenTSDB。

6. 层次型与网状型数据库

  • 层次型数据库
    • 数据以树形结构存储(如IBM的IMS)。
    • 适合父子关系明确的场景(如文件系统)。
  • 网状型数据库
    • 数据以图结构存储(如CODASYL的DBTG系统)。
    • 支持多对多关系,但复杂度高。
  • 现状
    • 已被关系型数据库取代,仅在特定遗留系统中使用。

七、DBMS常见分类总结

类型适用场景典型系统
关系型(RDBMS)金融、ERP、医疗MySQL、Oracle、PostgreSQL
NoSQL(文档型)电商、内容管理MongoDB、Couchbase
NoSQL(键值型)缓存、会话存储Redis、DynamoDB
NoSQL(列族型)大数据分析、日志存储HBase、Cassandra
NoSQL(图型)社交网络、推荐系统Neo4j、Amazon Neptune
面向对象(OODBMS)科学计算、多媒体数据Gemfire、ObjectDB、db4o
分布式(DDBMS)云计算、物联网OceanBase、Google Spanner、TiDB
时序型(TSDB)物联网、监控系统InfluxDB、TimescaleDB

总结

关系型数据库(RDBMS)市场占有率很高,一般会配合NoSQL数据库一起使用。随着AI的崛起,国内大搞信创上云、软件国产化操作,国产分布式数据库OceanBase、PolarDB、TiDB、GaussDB、TDSQL、达梦等正在高速占有国内市场,大家快学起来吧。

http://www.xdnf.cn/news/1436239.html

相关文章:

  • 第 2 讲:Kafka Topic 与 Partition 基础
  • Qwen3-Embedding-0.6B 模型结构
  • Go结构体详解:核心概念与实战技巧
  • Redis-底层数据结构篇
  • MySQL-表的约束(上)
  • 开发中使用——鸿蒙本地存储之收藏功能
  • LLM 能不能发展为 AGI?
  • 开源模型应用落地-模型上下文协议(MCP)-构建AI智能体的“万能插座”-“mcp-use”高级用法(十三)
  • 3.2-C++基础组件
  • 重新审视信任基石:公网IP证书对网络安全生态的影响
  • 【Go语言入门教程】 Go语言的起源与技术特点:从诞生到现代编程利器(一)
  • Cursor 教我学 Python
  • 英伟达Jetson Orin NX-YOLOv8s目标检测模型耗时分析
  • 深度集成Dify API:企业级RAG知识库管理平台解决方案
  • ts,js文件中使用 h函数渲染组件
  • 美国服务器连接速度变慢时应该着重做哪些检查?
  • 双Token实战:从无感刷新到安全防护,完整流程+代码解析
  • PostgreSQL(1) FETCH用法
  • 【MySQL体系结构详解:一条SQL查询的旅程】
  • 《一篇拿下!C++:类和对象(中)构造函数与析构函数》
  • Java 21 虚拟线程 + 分布式调度深度实战:从原理到落地,大促日志同步效率提升 367%
  • 基于SpringBoot的校园资料分享平台
  • Mysql数据库基础(上)
  • 第1章:VisualVM 简介与安装
  • 东土科技战略升级:成立半导体子公司,赋能国产半导体智能化升级
  • 基于 HTML、CSS 和 JavaScript 的智能图像锐化系统
  • HTML第五课:求职登记表
  • 【实时Linux实战系列】基于实时Linux的农业自动化系统开发
  • C++ numeric库简介与使用指南
  • 项目解析:技术实现与面试高频问题