news 2026/7/9 2:19:25

数据库期末复习(一)

作者头像

张小明

前端开发工程师

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

数据库期末复习(一)

基本概念

DBMS

DBMS(数据库管理系统)是用户/应用程序与数据库之间的接口。应用程序通过DBMS访问数据,用户也通过DBMS操作数据。

DDL和DML

  • DDL(数据定义语言):用于定义数据库的三级模式结构(外模式、概念模式、内模式)以及各种约束(如CREATE、ALTER、DROP)。
  • DML(数据操作语言):用于对数据库中的数据进行操作(增、删、改、查,如SELECT、INSERT、UPDATE、DELETE)。

三级模式结构

这三个概念是数据库三级模式结构的核心,也是数据库管理系统(DBMS)实现数据独立性的关键。它们分别从**“用户怎么看”、“全局逻辑怎么组织”“物理磁盘怎么存”**三个层次来描述数据。

以图书馆比较:

1. 外模式(External Schema)—— “用户视角”
  • 定义:又称子模式用户模式,是某个特定用户或应用程序所能看到的数据视图。
  • 核心特点:一个数据库可以有多个外模式。它只为特定用户展示他们感兴趣或有权访问的部分数据,并隐藏了其他无关数据。
  • 实现语言:由**DDL(数据定义语言)**中的视图定义部分来定义。
  • 图书馆类比:你是前来借书的普通读者。你看到的不是整个仓库,而是图书馆的前台检索系统和阅览室。你只能看到书名、作者和是否在架(对应你权限内的数据),看不到图书的采购成本或供应商信息(隐藏敏感字段)。
  • 实际例子:学生查询成绩只能看到分数,不能看到教务老师的修改日志;或者电商APP的“订单页面”只展示用户自己的订单详情,而不涉及全量数据库。
2. 概念模式(Conceptual Schema)—— “全局管理者视角”
  • 定义:又称逻辑模式,是数据库中全体数据整体逻辑结构和特征的描述。
  • 核心特点:它不涉及数据在磁盘上的具体存储方式,只关注“这个数据库里有哪些实体、它们有哪些属性、实体之间是什么关系”(比如:学生选课,一个学生对应多门课,一门课对应多个学生)。一个数据库只有唯一一个概念模式。
  • 实现语言:由DDL来定义(CREATE TABLE, ALTER TABLE等)。
  • 图书馆类比:这是馆长或总管理员眼中的全局图景。馆长清楚图书馆所有藏书(不管在哪个书库)、所有读者信息、所有借阅记录,以及“读者-图书”之间的借阅规则,但不关心每本书具体摆在哪一排货架的哪个螺丝钉位置。
  • 实际例子:数据库设计阶段的ER图(实体关系图)转化而来的关系模型,定义了Student表、Course表和SC选课表及其主外键约束。
3. 内模式(Internal Schema)—— “存储工程师视角”
  • 定义:又称存储模式,是数据在数据库内部物理结构上的存储方式。
  • 核心特点:它描述了数据在磁盘、磁带等存储介质上是如何存放的,包括记录如何存储(定长/变长)、索引如何建立(B+树/Hash)、数据是否压缩、存储位置等。一个数据库也只有唯一一个内模式。
  • 实现语言:由DDL中的物理存储参数来定义(不同数据库语法不同)。
  • 图书馆类比:这是仓库搬货员或系统架构师眼中的景象。他不关心书名是什么,只关心这堆数据(书)装在哪个编号的箱子(数据块)、放在货架第几层第几格(磁盘扇区/磁道)、有没有贴条形码便于快速查找(索引)。
  • 实际例子:Oracle的表空间设置、MySQL InnoDB存储引擎的页大小(16KB)设置、索引文件的实际排序方式。

它们之间的关系(关键)

这三个模式之间通过映射进行转换:

  • 外模式/概念模式映射:当用户查询一个视图时,DBMS会把这个视图查询转换成对底层基础表(概念模式)的查询。这使得当概念模式改变(例如表结构微调)时,只要视图不变,用户的应用程序就不需要修改(这叫逻辑数据独立性)。
  • 概念模式/内模式映射:当物理存储结构改变(例如换了更快的磁盘存储结构、重建了索引),只要概念模式的逻辑结构不变,应用程序就无需重写(这叫物理数据独立性)。

简单记忆口诀

  • 外模式:用户看到什么(视图)。
  • 概念模式:数据库里有什么(表结构)。
  • 内模式:磁盘上怎么存(存储文件)。

两级映射

完整的“三级模式结构” = 三级模式 + 两级映射(Image)

也就是说,这三者本身是结构的“骨架”,但如果没有两级映射把它们串联起来,数据库的数据独立性就无法实现。教材和考题中通常将“三级模式结构”统称为“三级模式两级映射”

具体补充如下:

1. 两级映射指的是什么?
  • 外模式/概念模式映射:定义了外模式与概念模式之间的对应关系。当概念模式(表结构)发生微小变化(如增加字段)时,只要映射不变或调整,用户的外模式(视图)就可以不变,应用程序无需修改。这实现了逻辑数据独立性
  • 概念模式/内模式映射:定义了概念模式与内模式之间的对应关系。当内模式(存储结构、索引、压缩方式)改变时,只要映射不变,概念模式就不变,应用程序也不需要重写。这实现了物理数据独立性
2. 常见的迷惑选项

如果做题时遇到类似“三级模式结构只包含外模式、概念模式、内模式”的说法,它本身是正确的(因为说的是“三种模式”本身)。

但如果遇到“数据库三级模式结构就是这三种模式,不包括其他内容”这种更强调“内容完整性”的选项,你就要警惕了——因为严格来讲,完整的体系结构包含映射。如果在多选题中,提到“映射”也是该结构的组成部分,一定要把它选上。


简单总结记忆:

  • 三级模式(三样东西):外模式、概念模式、内模式。
  • 两级映射(两座桥梁):外/概念映射、概念/内映射。
  • 合起来:才构成DBMS实现数据独立性的完整架构。

数据库结构概览

物理磁盘

内模式层 - 唯一

映射2

概念模式层 - 唯一

映射1

外模式层 - 多个

用户与应用程序层

普通学生应用

教务管理员应用

数据分析师应用

外模式1
学生成绩视图

外模式2
课程管理视图

外模式3
统计报表视图

外模式/概念模式映射
【逻辑数据独立性】

全局逻辑结构
学生表 / 课程表 / 选课表 / 教师表

概念模式/内模式映射
【物理数据独立性】

物理存储结构
数据文件 / B+树索引 / 压缩方式 / 分区

数据库物理文件


看图的关键点解读(配合上图更清晰)

  1. 从上往下看:用户的操作请求从“外模式”进入,最终流向物理磁盘。
  2. 注意箭头位置:两个映射(虚线框)夹在三种模式之间,起到承上启下的桥梁作用。
  3. 唯一 vs 多个
    • 外模式:对应用户的多样需求,可以有多个(如图中的1、2、3)。
    • 概念模式内模式:全局统一,只有一个
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 2:19:08

【震惊】这家SMT推拉力测试机供应商,竟凭3个数字让同行慌了!

在高度依赖可靠性的SMT(表面贴装技术)和半导体封装行业,一颗焊点的强度决定了整个电子元器件的寿命。推拉力测试机,作为评估焊接、键合质量的“核心判官”,其性能直接关联产品的良率与可靠性。当前,行业内供…

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

5分钟拿回你的QQ聊天记录:全平台数据库密钥提取终极指南

5分钟拿回你的QQ聊天记录:全平台数据库密钥提取终极指南 【免费下载链接】qq-win-db-key 全平台 QQ 聊天数据库解密 项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-key 你是否曾因为手机丢失、电脑重装,那些珍贵的聊天记录就永远消失了…

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

终极Windows更新修复指南:5步快速解决系统更新问题

终极Windows更新修复指南:5步快速解决系统更新问题 【免费下载链接】Script-Reset-Windows-Update-Tool This script reset the Windows Update Components. 项目地址: https://gitcode.com/gh_mirrors/sc/Script-Reset-Windows-Update-Tool 你是否遇到过Win…

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

Claude Code vs Cursor:为什么83%的GitHub Star超10k项目团队悄悄切换了主力AI编码工具?(附迁移 checklist 与风险规避清单)

更多请点击: https://codechina.net 第一章:Claude Code vs Cursor:一场静默却深刻的AI编码范式迁移 当开发者第一次在编辑器中按下 CmdK 触发上下文感知补全时,他并未意识到——这轻点一瞬,正悄然瓦解“人写代码、工…

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

json学习

json学习json 定义json文件数据类型json和Python关系json 定义 json 文件是一种基于文本独立于语言的轻量级数据交换格式,json文件的本质也是文本文件,可以使用read和write进行操作,但由于json文件使用比较频繁,按照read和write的…

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

Result.java文件内容

package com.example.demo.common;import lombok.Data;import java.io.Serializable;Data public class Result implements Serializable {private static final long serialVersionUID 1L;// 状态码private int code;// 返回消息private String msg;// 返回数据private Ob…

作者头像 李华