news 2026/7/9 2:09:43

数据库期末复习(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据库期末复习(二)

数据库期末复习(二)

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(文档、键值、图等)是特定场景下的补充。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 2:05:52

javaweb结课设计

一、项目概述 电视节目管理系统是一个面向广播电台和电视节目制作单位的Web应用,实现节目信息管理、主持人管理、观众留言管理等核心功能,解决传统Excel管理方式中信息分散、查询不便、留言处理不及时等问题。 - - - 技术栈 后端采用 Spring Boot 3.5.…

作者头像 李华
网站建设 2026/7/9 2:05:32

标书撰写基本逻辑

真正能提高中标率的,不是把参数写死成“只有我们能中”,而是把产品的真实优势转化成“标准依据、检测报告、平台接入、运行案例、验收闭环、售后能力”这套证据链。 这样能合规地把低价拼装厂家、无检测厂家、无平台厂家、无现场经验厂家筛出去。 不写“…

作者头像 李华
网站建设 2026/7/9 2:05:00

Tokio io_uring 支持:异步 I/O 在 Linux 上的新路径

Tokio io_uring 支持:异步 I/O 在 Linux 上的新路径 一、epoll 挺好,但还不够 Tokio 是目前 Rust 异步生态的绝对核心。它的 TcpListener、File、定时器这些组件,让异步 I/O 在 Rust 里变得和同步 I/O 一样顺手。但如果你把它的底层引擎拆开…

作者头像 李华
网站建设 2026/7/9 2:04:40

ISC DHCP完全指南:网络自动配置的终极解决方案

ISC DHCP完全指南:网络自动配置的终极解决方案 【免费下载链接】dhcp ISC DHCP is a collection of software that implements all aspects of the DHCP (Dynamic Host Configuration Protocol). 项目地址: https://gitcode.com/openeuler/dhcp 前往项目官网…

作者头像 李华