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

【数据库系统Trip 第1站】总概

数据库系统。

这是一个非常核心的计算机科学概念,几乎所有的现代软件系统都离不开它。

一、核心概念:什么是数据库系统?

数据库系统 不是一个单一的软件,而是一个完整的生态系统,它由以下四个主要部分组成:

  1. 数据库: 存储数据的“仓库”。它是一个有组织、可共享、通常被集中管理的大量数据的集合。数据库不仅仅是存储数据,更重要的是它以某种数据模型(如表格)来组织数据,减少冗余。
  2. 数据库管理系统: 这是数据库系统的核心和大脑。它是一个软件平台,用于创建、使用和维护数据库。用户和应用程序通过DBMS来访问数据库,而不直接操作数据文件。常见的DBMS有:MySQL, Oracle, SQL Server, PostgreSQL, MongoDB 等。
  3. 应用程序: 使用数据库的软件,例如网站、手机App、桌面程序等。应用程序通过DBMS提供的接口(如SQL)与数据库进行交互。
  4. 用户: 包括最终用户、应用程序员和数据库管理员(DBA)。数据库管理员是至关重要的角色,负责维护、备份、优化和确保数据库的安全。

简单比喻:
如果把数据库系统比作一个图书馆:

  • 数据库 就是存放图书的书库
  • DBMS 就是图书馆的管理规则和工作人员,他们负责图书的采购、编目、上架、借阅和归还。
  • 应用程序 就是前来借书或查阅的读者
  • 用户 包括读者(最终用户)、写书的人(应用程序员)和图书馆馆长(DBA)。

二、为什么需要数据库系统?—— 对比文件系统

在数据库系统出现之前,数据通常存储在简单的文件里(如txt、csv)。这种方式存在很多问题:

特性文件系统数据库系统优势
数据冗余与一致性数据重复存储,容易不一致数据集中管理,冗余可控,一致性高节省空间,数据准确
数据共享困难,文件通常被单个程序独占容易,支持多用户并发访问提升协作效率
数据独立性程序与数据结构紧密耦合,一变俱变数据逻辑结构与应用程序分离易于维护和扩展
数据完整性需在程序中硬编码规则,难以维护提供约束(如主键、外键)来保证数据更可靠、有效
安全性难以精细控制提供用户权限管理,控制到表和列数据更安全
并发控制容易产生冲突(如数据覆盖)提供事务机制,保证并发操作正确性支持高并发访问
故障恢复困难,容易丢失数据提供日志和备份恢复机制数据持久性高

三、数据库系统的核心组件与功能(DBMS的角度)

  1. 数据模型: 定义数据如何组织和操作的框架。

    • 关系模型: 目前最主流的形式,使用二维表(行和列)来组织数据。SQL语言就是基于此模型。
    • 非关系模型: 包括文档型(如MongoDB)、键值型(如Redis)、图数据库(如Neo4j)等,用于处理特定类型的海量数据。
  2. 查询语言

    • SQL: 结构化查询语言,是操作关系型数据库的标准语言。用于定义、操纵和控制数据。
      • DDL: 数据定义语言(如 CREATE, ALTER, DROP
      • DML: 数据操纵语言(如 SELECT, INSERT, UPDATE, DELETE
      • DCL: 数据控制语言(如 GRANT, REVOKE
  3. 事务管理

    • 事务: 一组不可分割的数据库操作序列(例如银行转账:A账户扣款和B账户加款必须同时成功或失败)。
    • ACID 特性
      • 原子性: 事务的所有操作要么全部完成,要么全部不完成。
      • 一致性: 事务必须使数据库从一个一致性状态变换到另一个一致性状态。
      • 隔离性: 并发执行的事务之间互不干扰。
      • 持久性: 事务一旦提交,其对数据的改变就是永久性的。
  4. 存储管理与索引

    • DBMS负责在磁盘上高效地存储数据文件。
    • 索引: 类似于书籍的目录,它能极大地加快数据查询的速度。

四、主要类型

  1. 关系型数据库

    • 特点: 基于表格模型,使用SQL语言,严格遵守ACID特性。
    • 适用场景: 需要复杂查询、强一致性的事务处理系统(如银行、财务、ERP系统)。
    • 代表MySQL, Oracle, SQL Server, PostgreSQL, SQLite
  2. 非关系型数据库

    • 特点: 为特定需求设计,结构灵活,通常牺牲一些ACID特性来追求高性能、高可用性和可扩展性(横向扩展)。
    • 分类与场景
      • 文档型: 存储JSON-like文档,适用于Web应用(如MongoDB)。
      • 键值型: 简单高效,适用于缓存、会话存储(如Redis)。
      • 列存储: 适合大规模数据分析(如Cassandra, HBase)。
      • 图数据库: 存储实体之间的关系,适用于社交网络、推荐系统(如Neo4j)。
    • 代表MongoDB, Redis, Cassandra, Elasticsearch, Neo4j

五、总结

数据库系统是现代信息社会的基石。它通过数据库管理系统 这个核心软件,为我们提供了高效、安全、可靠、共享的数据管理能力,解决了文件系统存储数据的诸多弊端。

  • 如果你需要强一致性复杂的查询,首选关系型数据库
  • 如果你需要巨大的规模、灵活的结构和极高的吞吐量非关系型数据库是更好的选择。

如今,许多大型系统会采用混合架构,同时使用多种类型的数据库,让它们各司其职,发挥各自最大的优势。

http://www.dtcms.com/a/390316.html

相关文章:

  • 关于 Python 编程语言常见问题及技术要点的说明
  • Mysql常用函数积累
  • AntV可视化(MCP 1.8)避坑指南
  • 学习日报|线程池 OOM
  • C# Progress
  • 【LeetCode 每日一题】3495. 使数组元素都变为零的最少操作次数
  • Part01、02 基础知识与编程环境、C++ 程序设计
  • C++聊天系统从零到一:brpc RPC框架篇
  • Java编程思想 Thinking in Java 学习笔记——第2章 一切都是对象
  • AssemblyScript 入门教程(2)AssemblyScript的技术解析与实践指南
  • 深入理解Java数据结构
  • 【试题】网络安全管理员考试题库
  • 第一章 信息化发展
  • 第六章:实用调试技巧
  • 人工智能通识与实践 - 智能语音技术
  • CSP-S 提高组初赛复习大纲
  • 卷积神经网络CNN-part7-批量规范化BatchNorm
  • [xboard]02 uboot下载、移植、编译概述
  • Python入门教程之字符串运算
  • 堡垒机部署
  • 刷题记录(10)stack和queue的简单应用
  • 如何进行时间管理?
  • Spring面试题及详细答案 125道(46-65) -- 事务管理
  • OA ⇄ CRM 单点登录(SSO)实现说明
  • 人工智能在设备管理软件中的应用
  • __pycache__ 文件夹作用
  • 利欧泵业数据中心液冷系统解决方案亮相2025 ODCC开放数据中心峰会
  • 【论文阅读】Masked Conditional Variational Autoencoders for Chromosome Straightening
  • 天气预测:AI 如何为我们 “算” 出未来的天空?
  • 大数据管理与应用有什么注意事项?企业该如何发挥大数据的价值