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

数据库期末复习(二)

数据库期末复习(二)

DB DBA DBS DBMS

1. DBA(Database Administrator,数据库管理员)

定义:DBA是**“人”**(或角色),是负责数据库的规划、设计、维护和管理的专业人员或团队。

DBA具体做什么?他们是数据库的“大管家”,主要职责包括:

  • 日常维护:监控数据库运行状态,处理死锁和慢查询。
  • 性能调优:决定在哪些字段上建索引(决定了内模式),调整SQL执行效率。
  • 权限管理:给不同用户分配不同的查看权限(决定了谁能看哪些外模式)。
  • 备份与恢复:制定备份策略,在数据丢失时进行灾难恢复。
  • 结构变更:当业务变化时,执行修改表结构(DDL语句)的操作。

注意:在我们的上一题中,实现物理数据独立性(如换硬盘、建索引)主要就是由DBA在内模式层操作的。


2. DBS(Database System,数据库系统)

定义:DBS是**“整体系统”**,是指计算机系统中引入数据库后的整个系统。

DBS包含什么?它是一个大集合,其组成部分可以用公式清晰记忆:

DBS = 计算机硬件 + 操作系统 + DBMS(数据库管理系统) + 数据库(DB) + DBA(数据库管理员) + 应用程序 + 用户

  • 硬件:运行数据库的服务器、磁盘阵列等。
  • 软件:包括操作系统、DBMS(如MySQL)、以及各种连接驱动。
  • 数据:存储在磁盘上的实际业务数据(DB)。
  • 人员:包括DBA、系统开发人员以及最终操作用户。

3. 对比:DBS vs DBMS vs DB vs DBA

术语中文全称本质生活类比(餐厅)
DB数据库数据本身(存放数据的仓库)后厨冷冻柜里储存的食材(肉、菜、调料)。
DBMS数据库管理系统管理数据的软件(MySQL、Oracle)厨师用来处理食材的操作台和工具(案板、灶台)。
DBA数据库管理员管数据库的人(专业人士)负责采购、冷藏、清理库存的后厨总管
DBS数据库系统整个大环境(硬件+软件+数据+人)整个餐厅(包括后厨设备、食材、厨师、收银系统、顾客)。

4. 与前面知识点的联动(三级模式)

在三级模式结构中,角色分工非常明确:

  • DBA(管理员)负责定义和修改内模式(决定数据怎么物理存储)和概念模式(定义表结构)。
  • 普通用户/应用程序只接触外模式(只能看视图,不能动底层)。
  • DBMS(软件)负责维护两级映射,贯穿全局。
  • DBS(数据库系统)包含了上述所有内容,是容纳三级模式、DBMS和DBA的大环境。

DBS(数据库系统)最大,包含 DBMS(软件)和 DB(数据),而 DBA(管理员)是 DBS 中负责管理这一切的人。
即:DBS = DB + DBMS + DBA + 其他(硬件/应用/用户)

数据独立性

  • 物理数据独立性:改变内模式(存储方式),不影响概念模式(表结构)和外模式(用户视图)。
  • 逻辑数据独立性:改变概念模式(表结构),不影响外模式(用户视图)和应用程序。

1. 物理数据独立性(Physical Data Independence)

  • 定义:当数据库的物理存储结构(如索引类型、数据压缩方式、存储分区、磁盘更换)发生改变时,概念模式外模式保持不变,应用程序无需修改。
  • 靠什么实现:靠“概念模式/内模式映射”。DBMS在中间做翻译,物理存哪里、怎么存,只有DBMS知道,表结构对此一无所知。
  • 图书馆类比:图书馆仓库从人工按编号排序改成自动化立体仓库,图书的物理位置完全变了。但馆长手里的“总馆藏登记册”(概念模式)和读者面前的“检索目录”(外模式)完全不用重印,因为工作人员(DBMS)知道新位置在哪。
  • 实际例子(程序员视角):DBA(数据库管理员)今天给订单表加了一个B+树索引,明天又把数据压缩格式改了,后天把历史数据迁移到了新的磁盘阵列。作为Java或Python程序员,你写的SQL查询语句SELECT * FROM orders WHERE id = 100一行都不需要改,照样正常运行。

2. 逻辑数据独立性(Logical Data Independence)——更高级,更难实现

  • 定义:当数据库的全局逻辑结构(即概念模式,如增加字段、合并表、修改字段类型)发生改变时,外模式和应用程序保持不变。
  • 靠什么实现:靠“外模式/概念模式映射”。DBMS通过修改视图的定义,把新的表结构“伪装”成旧的样子给用户看。
  • 图书馆类比:馆长决定把“作者”这一个字段拆分成“姓氏”和“名字”两个字段(概念模式变了)。但图书馆的微信小程序检索界面(外模式)依然只显示一个“作者姓名”框给读者输入。为什么?因为程序员修改了小程序后台的视图定义(映射),拼接了这两个字段,读者完全感觉不到底层结构变了。
  • 实际例子(程序员视角):产品经理要求把用户表Users拆分成User_BasicUser_Detail两张表(概念模式剧变)。如果没有逻辑独立性,所有查询这两张表的几百个接口都要重写。有了逻辑独立性,DBA只需要创建一个视图View_Users把两张表Join起来,并保持视图字段名和原来一模一样,原有的应用程序SQL就不需要修改。

3. 两者的核心区别与难度对比

对比维度物理数据独立性逻辑数据独立性
改变了什么内模式(存储/索引/压缩/分区)概念模式(表结构、字段、关系)
什么保持不变概念模式 + 外模式外模式(用户视图)
对应的映射概念模式 / 内模式 映射外模式 / 概念模式 映射
实现难度相对容易(存储层对上层透明)较难(表结构变化常牵涉上层语义)
主要受益者DBA(数据库管理员),方便优化性能程序员和用户,减少代码改动量
典型操作建索引、分区表、更换硬盘存储增加/删除字段、拆分或合并表

4. 为什么逻辑数据独立性更“珍贵”?

在考试和实际应用中,逻辑数据独立性被认为是关系数据库最伟大的贡献之一。

  • 物理独立:改变存储方式,本质上没改变数据的“含义”,DBMS很容易帮你兜底。
  • 逻辑独立:改变表结构,本质上改变了数据的“含义”(例如把生日改成年龄),这对应用程序的语义冲击很大。DBMS只能通过视图映射来“强行兼容”,但复杂的逻辑变更(如删除一个核心字段)往往还是会导致部分应用报错,因此完全的逻辑独立性在实际中很难100%实现,教材中也指出它比物理独立性更难实现。

数据模型

数据模型是数据库系统的核心和灵魂。如果说数据库是存放数据的“仓库”,那么数据模型就是设计这个仓库的**“施工图纸”和“摆放规则”**。


1. 数据模型的“三要素”(必考概念)

任何一个数据模型都由这三部分组成,缺一不可:

  • 数据结构(Static):描述数据对象以及对象之间的静态特征。比如:你的数据是“二维表格”还是“树状结构”?它决定了系统能存什么类型的数据。
  • 数据操作(Dynamic):描述对数据可以执行哪些增、删、改、查操作。比如:关系模型中标准的SELECT(查)、UPDATE(改)等。
  • 完整性约束(Rules):描述数据必须遵守的规则。比如:学生学号必须唯一(实体完整性),选课表中的学生ID必须存在于学生表中(参照完整性)。

2. 数据模型的三个层级(与三级模式完美对应)

层级对应数据库模式面向对象典型代表作用
概念数据模型概念模式(全局逻辑)面向用户(需求分析阶段)E-R模型(实体-联系图)把现实世界抽象成实体(学生)、属性(姓名)、联系(选课),不涉及任何计算机实现细节。
逻辑数据模型概念模式/外模式面向DBA和程序员关系模型(表格)、层次模型、网状模型、面向对象模型在计算机系统中具体实现的数据结构,是DBMS真正处理的对象。我们平常说的“数据库模型”通常指这一层
物理数据模型内模式面向DBMS和操作系统存储结构(B+树)、索引、分区描述数据在磁盘、磁带上的存储格式和存取路径,对用户完全透明。

关键点:E-R图属于概念模型,而MySQL里的表结构属于关系模型(逻辑模型),考试经常会混淆这两者。


3. 逻辑数据模型的历史演变(回顾历史)

结合你问的第一个问题(数据库发展史),逻辑数据模型经历了这几代演变:

  • 层次模型(Hierarchical)树形结构。像公司组织架构,一个节点只有一个父节点。优点是查询快,缺点是无法表示多对多关系(典型代表:IBM IMS)。
  • 网状模型(Network)图结构。允许一个节点有多个父节点,更灵活,但结构太复杂,用户难以掌握(典型代表:IDS)。
  • 关系模型(Relational)二维表格结构。由E.F.Codd在1970年提出,是目前统治全球的模型。它把数据抽象成简单的行(记录)和列(字段),通过SQL操作,极大降低了用户门槛(典型代表:Oracle、MySQL、SQL Server)。
  • 面向对象模型(Object-Oriented):融合了面向对象编程思想,支持类、继承、封装,但并未完全取代关系模型。
  • NoSQL模型:互联网时代的产物,为了应对海量数据和高并发,放弃了关系模型的某些严格约束(如事务ACID),包括键值模型(Redis)、文档模型(MongoDB)、列族模型(HBase)、图模型(Neo4j)。

为什么关系模型应用广泛

关系模型之所以成功,是因为它把数据独立性做到了极致:

  • 用户看到的只是逻辑上的二维表,不需要关心底层指针或存储路径。
  • DBMS负责把用户对表的操作,转换成对物理文件的读写(这就是我们上一题讲的物理数据独立性)。
  • 结构简单统一,数学基础严谨(基于集合论和谓词逻辑),因此SQL语言能高效运作。

总结

数据模型= 描述数据的样子(结构)、动作(操作)和规矩(约束)。

  • 概念模型(E-R图)画给老板/用户看;
  • 逻辑模型(关系模型/表格)是程序员写的代码;
  • 物理模型(索引/存储)是DBA管的硬盘。

目前,关系模型依然是主流,而NoSQL(文档、键值、图等)是特定场景下的补充。

http://www.cnnetsun.cn/news/3232399.html

相关文章:

  • 18650/21700/4680 圆柱电池规格对比:特斯拉技术演进与 5 大应用场景解析
  • 绕过 Claude Desktop!Affinity MCP 直连 WorkBuddy/Cursor 完整配置指南(Windows)
  • javaweb结课设计
  • 标书撰写基本逻辑
  • Tokio io_uring 支持:异步 I/O 在 Linux 上的新路径
  • ISC DHCP完全指南:网络自动配置的终极解决方案
  • 2025终极指南:8大网盘直链下载助手,彻底告别限速烦恼![特殊字符]
  • AI Agent频繁执行失败?5个工作流配置问题必须检查
  • 每日 AI 研究简报 · 2026-07-08
  • T156:移动类型主表
  • 段件库 (Duanjian):段言(Duan)的官方段件包管理器和注册表。
  • STM32L041C6与PAM8904构建超低功耗音频提示系统
  • BMS AFE芯片开路诊断逻辑深度解析(硬件原理+工程实现+避坑方案)
  • 【C++】set和map
  • OpenC3命令控制系统详解
  • BLS 宽度学习系统 PyTorch 实现:2种网络结构对比与增量学习代码解析
  • AI编程Agent缺的不是智商,是记忆——Mneme开源认知运行时介绍
  • DDPM 扩散模型 PyTorch 复现:MNIST 数据集 30 轮训练 Loss 降至 0.023
  • 软件团队管理中的领导风格适配
  • 国外护照翻译如何办理?很简单,只需要这三步!
  • 运行maven项目时问题——java: 错误: 不支持发行版本 5
  • 06-高级模式与实战项目——18. 实战项目二:博客系统
  • 掌握Git rebase与merge的区别
  • NLP自然语言处理实战
  • 缠论可视化分析系统:基于C++的K线结构识别与动态链接库实现
  • Mysql,使用B+树存储的索引增删改查效率(七)
  • HarmonyKit | 鸿蒙新特性应用:颜色转换 HEX↔RGB↔HSL 三色空间互转算法
  • Python 数据可视化之 Matplotlib——从基础到高级图表
  • HarmonyOS 小游戏《对战五子棋》开发第18篇 - 棋盘设计
  • HarmonyKit | 鸿蒙新特性实践:进制转换器 2/8/10/16 四进制通用互转