考点频率:★★★★☆(选择题常考,主要考查三种模型的特点和区别)
难度:⭐⭐
建议:重点掌握三种数据模型的核心数据结构、各自的优缺点,以及关系模型为什么成为主流
1️⃣ 什么是数据模型?
数据模型(Data Model) 是数据库中用于描述数据、数据之间的关系、数据语义和一致性约束的工具。它是对现实世界数据特征的抽象。
打个比方:数据模型就像建筑的图纸——它不包含实际的砖瓦水泥,但规定了房子(数据库)的结构、布局和建造规则。
一个数据模型通常包含三要素(软考常考):
| 要素 | 含义 | 打个比方(图书馆) |
|---|---|---|
| 数据结构 | 描述数据的静态特征——数据的类型、内容、性质及数据之间的联系 | 图书按“分类号-著者号”组织在书架上(逻辑结构) |
| 数据操作 | 描述数据的动态特征——对数据库执行的操作(增、删、改、查) | 如何借书、还书、检索书目 |
| 完整性约束 | 描述数据的制约条件——数据及其联系应满足的规则 | 每人最多借10本书;逾期未还要罚款 |
一句话总结:数据结构是“骨架”,数据操作是“功能”,完整性约束是“规则”。
2️⃣ 层次模型(Hierarchical Model)
2.1 核心结构
层次模型用树形结构表示数据及其之间的联系。它的基本特征是:
- 有且仅有一个根节点(无双亲)
- 除根节点外,其他节点有且仅有一个父节点
- 父子节点之间是一对多(1:N)关系
打个比方:层次模型就像公司组织架构图——CEO是根节点,下面有副总裁(子节点),副总裁下面有部门经理(孙节点)。每个人都只有一个直接上级,但可以有多个直接下级。
2.2 典型代表
IMS(Information Management System) ——IBM开发,是历史上最早的数据库管理系统之一。
2.3 优缺点
| 优点 | 缺点 |
|---|---|
| 结构清晰,简单直观 | 无法直接表示多对多(M:N)关系(需通过冗余或引入虚拟记录等方式迂回实现,增加了复杂度和数据冗余) |
| 查询效率高(层次路径已知) | 插入/删除操作限制多(删除父节点时子节点也必须被删除,或需要复杂的处理逻辑) |
| 支持良好的数据完整性(树形约束) | 数据独立性差(修改结构需要修改应用程序) |
3️⃣ 网状模型(Network Model)
3.1 核心结构
网状模型用图结构表示数据及其之间的联系,允许:
- 一个节点可以有多个父节点
- 节点之间可以形成多种联系(多对多可以直接表示)
- 记录之间通过指针链接
打个比方:网状模型就像城市地铁线路图——一个站点(节点)可以连接多条线路(多个父节点),任意两个站点之间可能有多条路径。
3.2 典型代表
DBTG系统(CODASYL系统)——20世纪60-70年代由数据系统语言协会(CODASYL)的数据库任务组(DBTG)提出的标准。
3.3 优缺点
| 优点 | 缺点 |
|---|---|
| 能直接表示多对多(M:N)关系 | 结构复杂(用户必须了解复杂的指针结构) |
| 存取效率高(通过指针路径快速定位) | 数据独立性差(结构变化时指针需大量调整) |
| 灵活性高于层次模型 | 数据定义语言(DDL)和数据操纵语言(DML)复杂,难以学习和使用 |
层次模型 vs 网状模型:两者都属于格式化模型(基于指针/路径的导航式数据模型),用户需要了解数据的物理存储路径才能进行操作,这被称为“导航式”数据访问。
4️⃣ 关系模型(Relational Model)
4.1 核心结构
关系模型由E.F.Codd于1970年提出,用二维表(Table) 表示数据及其之间的联系。每个表是一个关系,表的每一行是一个元组(Tuple) ,每一列是一个属性(Attribute)。
打个比方:关系模型就像Excel电子表格——数据按行列整齐排列,每一行是一条记录,每一列是一种属性。你不需要知道这些表在硬盘上怎么存放,只需要通过表名、列名和条件来操作数据。
4.2 核心术语
| 术语 | 含义 | Excel类比 |
|---|---|---|
| 关系(Relation) | 一张二维表 | 一个Sheet |
| 元组(Tuple) | 表中的一行 | 一行数据 |
| 属性(Attribute) | 表中的一列 | 一列数据 |
| 域(Domain) | 属性的取值范围 | 某列只能填规定的格式,如“日期” |
| 主键(Primary Key) | 唯一标识一个元组的属性(或属性组合) | 学号(每个学生唯一) |
| 外键(Foreign Key) | 另一个关系的主键,用于建立联系 | 学生表中的“班级编号”关联到班级表 |
4.3 典型代表
Oracle、MySQL、SQL Server、PostgreSQL——目前几乎所有主流商业数据库都是关系数据库。
4.4 优缺点
| 优点 | 缺点 |
|---|---|
| 数据结构简单(用户易懂,二维表直观) | 查询效率有时不如格式化模型(需要优化) |
| 数据独立性高(逻辑与物理完全分离) | 对复杂数据结构(如图数据)表达不够自然 |
| 有坚实的数学基础(集合论、谓词逻辑) | 需要昂贵的查询优化和存储管理开销 |
| 支持非过程化查询(用户只需指定“要什么”,不用指定“怎么找”) | — |
非过程化查询:用户只需要写“查询所有年龄大于18岁的学生”,而不用关心“先查索引、再读取磁盘、再过滤数据”的步骤——DBMS会自动完成这些。这是关系模型相对于层次/网状模型的最重大进步。
5️⃣ 三种数据模型核心对比表(重点!)
| 对比项 | 层次模型 | 网状模型 | 关系模型 |
|---|---|---|---|
| 数据结构 | 树形结构(有向树) | 图结构(有向图) | 二维表 |
| 数据联系 | 一对多(1:N) | 多对多(M:N) | 通过外键和连接实现 |
| 实现方式 | 指针(导航式) | 指针(导航式) | 基于数学(集合论) |
| 用户操作 | 过程化(需知道路径) | 过程化(需知道路径) | 非过程化(只需指定条件) |
| 数据独立性 | 差 | 较差 | 高 |
| 数据结构复杂度 | 简单清晰 | 复杂 | 最简 |
| 典型代表 | IMS | DBTG | Oracle, MySQL, SQL Server, PostgreSQL |
| 软考重要程度 | ★★☆☆☆ | ★★☆☆☆ | ★★★★★ |
6️⃣ 经典例题
例题1:以下关于数据模型的叙述中,正确的是( )。
A. 层次模型可以方便地表示多对多(M:N)关系
B. 关系模型中的数据操作是过程化的,用户需要指定存取路径
C. 网状模型采用二维表结构表示数据
D. 关系模型具有较高的数据独立性
解析:A错误——层次模型只能直接表示一对多(1:N)关系,多对多需通过冗余等方式迂回实现;B错误——关系模型是非过程化的;C错误——网状模型是图结构,二维表是关系模型;D正确。选 D。
例题2:下列数据模型中,具有坚实的数学理论基础的是( )。
A. 层次模型
B. 网状模型
C. 关系模型
D. 以上都是
解析:关系模型以集合论和谓词逻辑作为理论基础,是三种模型中唯一有坚实数学基础的。选 C。
7️⃣ 记忆口诀
层次树(一对多),网状图(多对多),关系表(最常用)。
关系模型三特点:表、非过程化、高独立。
指针导航看层次网,数学基础看关系。
8️⃣ 小测验(评论区对答案)
关于数据库数据模型的描述中,错误的是( )。
A. 层次模型采用树形结构
B. 网状模型可以直接表示多对多(M:N)关系
C. 关系模型的数据操作属于过程化语言
D. 关系模型是目前最常用的数据模型
🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容
#软考中级 #软件设计师 #数据模型 #层次模型 #网状模型 #关系模型 #数据库技术基础 #软考备考
&spm=1001.2101.3001.5002&articleId=164126128&d=1&t=3&u=521a9aeaa25d4c0d9ff995f6945e52bb)
935

被折叠的 条评论
为什么被折叠?



