第3章 · 播客 第1集

数据库系统 · 三级模式、两级映射与数据模型

🎙️ 本集播客第1集:从「概念模式到底有几个名字」这类送分坑讲起,把用户级、概念级、物理级与外模式、概念模式、内模式逐层对齐,讲透两级独立性与两级映射的配对关系,再横向对比层次、网状、关系、面向对象四种数据模型的优缺点。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第3章播客 第1集
⬇ 下载本集 点击播放
小雅
阿明,第三章数据库,架构师考试里的送分大户,也是坑最多的一章。先来道开胃的:数据库管理系统按数据模型分,常见的有哪几种?
阿明
关系型……还有啥?Excel 算吗?
小雅
算你想多了。原文说得很清楚,目前常见的 DBMS 按数据模型划分,包括:关系型 DBMS、文档型 DBMS、键值型 DBMS、对象型 DBMS 等。还有一句现状判断要记:当前许多商业 DBMS 中所用的主要数据模型仍是关系数据模型,有些商业系统实现了对象数据模型但未得到广泛使用,近几年随着 NoSQL 技术的兴起产生了一些新的数据模型。分类标准还有按用户数、按数据库分布站点,但要了解的主要是按数据模型分类。
阿明
行,主角还是关系型。那三级模式两级映射这块,我一直糊。
小雅
这是本章第一个必考概念群,先把出处钉住:最著名的三级划分法是美国 ANSI/SPARC 数据库系统研究组 1975 年提出的。数据库系统划分为三个抽象级:用户级、概念级、物理级。
阿明
抽象级和模式是怎么对应的?
小雅
一一对应。用户级数据库对应外模式,是最接近用户的一级数据库,是用户可以看到和使用的数据库,又称用户视图,主要由外部记录组成。注意一句:不同的用户视图可以互相重叠,用户的所有操作都是针对用户视图进行的。
小雅
概念级数据库对应概念模式,介于用户级和物理级之间,是所有用户视图的最小并集,是数据库管理员可以看到和使用的数据库,又称 DBA 视图,由概念记录组成。这里有个数量关系年年考:一个数据库可以有多个不同的用户视图,但一个数据库应用系统只存在一个 DBA 视图,它把数据库作为一个整体的抽象表示。
阿明
最小并集、一个 DBA 视图。物理级呢?
小雅
物理级数据库对应内模式,是数据库的低层表示,它描述数据的实际存储组织,是最接近于物理存储的级,又称内部视图,由内部记录组成。注意这句容易被拿来出判断题:物理级数据库并不是真正的物理存储,而是最接近于物理存储的级。
阿明
三个抽象级有了,那三级模式本身,考试爱怎么问?
小雅
先背准概念模式的定义,这是练习题第一题的原题区。概念模式又叫模式、逻辑模式,用以描述整个数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个概念模式。
阿明
所以问「描述整个数据库逻辑结构、全体数据公共数据视图的是哪个」,答概念模式。
小雅
对,干扰项外模式和内模式也要能一句话排除:外模式是用户视图,管的是局部数据;内模式是存储描述,管的是物理那一层。概念模式通常还包含访问控制、保密定义、完整性检查等方面的内容,以及概念/物理之间的映射,这句也可能出成选项。
阿明
外模式自己有什么细节?
小雅
外模式又叫子模式、用户模式,用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。数量关系和概念模式正好相反:一个数据库可以有多个外模式,但一个应用程序只能使用一个外模式。这两句「多个外模式、一个概念模式、应用程序只能用一个外模式」是配对出题的常客。
小雅
内模式则是整个数据库的最低层表示,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
阿明
三种模式的数量:外模式多个、概念模式一个、内模式一个。那它们之间的关系呢?
小雅
原文给了四条,逐条背:第一,模式是数据库的中心与关键;第二,内模式依赖于模式,独立于外模式和存储设备;第三,外模式面向具体的应用,独立于内模式和存储设备;第四,应用程序依赖于外模式,独立于模式和内模式。这四条把「谁依赖谁」说死了,选项把方向反过来就是错项,比如「外模式依赖于内模式」就是错的。
阿明
两级映射和两级独立性,这四个东西怎么对上号?
小雅
三个抽象级间通过两级映射进行相互转换,使得数据库的三级形成一个统一的整体。哪两级:外模式—模式映射,模式—内模式映射。然后配对记:物理独立性存在于概念模式和内模式之间的映射转换,也就是模式—内模式映射;逻辑独立性存在于外模式和概念模式之间的映射转换,也就是外模式—模式映射。
小雅
再看定义:物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,当数据的物理存储改变时,应用程序不需要改变。逻辑独立性是指用户的应用程序与数据库中的逻辑结构是相互独立的,当数据的逻辑结构改变时,应用程序不需要改变。练习题问「物理独立性通过哪级映射实现」,答案就是模式—内模式映射,别选成外模式—模式映射。
阿明
还要注意题干里有没有「外模式—内模式映射」这种选项。
小雅
对,两级映射里没有这一级,三级模式两两映射只有那两种,出现「外模式—内模式映射」直接排除。最后一句原文提示必须背:逻辑独立性比物理独立性更难实现。判断题就问「逻辑独立性比物理独立性更容易实现吗」,答否。
阿明
物理存储变不改程序、逻辑结构变不改程序,配对清楚。接下来数据模型吧。
小雅
数据模型分两大类:概念数据模型和基本数据模型。概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计,主要用实体—联系方法表示,所以也称 E-R 模型。基本数据模型是按照计算机系统的观点来对数据和信息建模,主要用于 DBMS 的实现,是数据库系统的核心和基础。一个「用户观点、数据库设计」,一个「计算机系统观点、DBMS 实现」,这个对仗本身就是考题。
阿明
基本数据模型的组成呢?我记得是三件套。
小雅
基本数据模型由数据结构、数据操作和完整性约束三部分组成。数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约束是一组完整性规则的集合。静态配数据结构、动态配数据操作,这组对应别搞反。常用的基本数据模型有四种:层次模型、网状模型、关系模型和面向对象模型。
阿明
这四种怎么辨析?我记得网状是图。
小雅
层次模型用树形结构表示实体类型及实体间的联系,网状模型用有向图表示实体类型及实体间的联系,关系模型用表格结构表达实体集,用外键表示实体间的联系。树、有向图、表格,三个词配三个模型,直接考。层次模型的优点是记录之间的联系通过指针来实现,查询效率较高;缺点是只能表示 1:n 联系,虽然有多种辅助手段实现 m:n 联系,但比较复杂,用户不易掌握,查询更新复杂,应用程序编写也比较复杂。
小雅
网状模型优点是记录之间的联系通过指针实现,m:n 联系也容易实现,查询效率高;缺点是编写应用程序的过程比较复杂,程序员必须熟悉数据库的逻辑结构。所以「只能表示 1:n 联系」是层次模型的缺点,不是网状的,这是个经典干扰项。
阿明
关系模型呢?我记得它有个「错误说法」考点。
小雅
练习题第 13 题就是:「关于关系模型的优点,以下描述错误的是」,四个选项里对的那条错误选项是「查询效率始终高于层次和网状模型」。原文给的优点只有三条:第一,建立在严格的数学概念基础上;第二,概念单一,也就是关系单一,结构简单、清晰,用户易懂易用;第三,存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作。
小雅
关键在第三条的反面:正因为存取路径对用户透明,查询时可能需要更多的连接操作,所以查询效率不一定高于层次和网状模型——层次和网状是通过指针实现联系的,查询效率较高。判断题问「关系模型查询效率一定高于网状模型」,答否。「始终」「一定」这种绝对化字眼就是给你送的信号。
阿明
优点三条:数学基础、概念单一、存取路径透明。透明是好事但牺牲了查询效率,有得有失。
小雅
本集必背清一遍:ANSI/SPARC 1975 年提出三级划分法,用户级对应外模式、概念级对应概念模式、物理级对应内模式;概念模式描述全体数据的逻辑结构是公共数据视图,一个数据库只有一个;外模式可以有多个,一个应用程序只能用一个;内模式是最低层表示、描述物理结构和存储方式,也只有一个;物理独立性走模式—内模式映射,逻辑独立性走外模式—模式映射,没有外模式—内模式映射,逻辑独立性更难实现;概念数据模型是 E-R 模型面向数据库设计,基本数据模型面向 DBMS 实现,由数据结构、数据操作、完整性约束组成;层次用树只能 1:n、网状用有向图 m:n 容易实现、关系用表格加外键;关系模型优点三条,但查询效率不一定高于层次和网状。
阿明
三级模式这回总算分清了。下一集讲什么?
小雅
下一集讲关系代数,并、交、差、笛卡尔积、投影、选择、连接、除法,每种运算我带例题算给你听,特别是除法,很多考生第一次见直接懵。