数据库期末复习(一)
基本概念
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实现数据独立性的完整架构。
数据库结构概览
看图的关键点解读(配合上图更清晰)
- 从上往下看:用户的操作请求从“外模式”进入,最终流向物理磁盘。
- 注意箭头位置:两个映射(虚线框)夹在三种模式之间,起到承上启下的桥梁作用。
- 唯一 vs 多个:
- 外模式:对应用户的多样需求,可以有多个(如图中的1、2、3)。
- 概念模式和内模式:全局统一,只有一个。