【数据库技术】# 数据模型概述(层次/网状/关系模型)

考点频率:★★★★☆(选择题常考,主要考查三种模型的特点和区别)
难度:⭐⭐
建议:重点掌握三种数据模型的核心数据结构、各自的优缺点,以及关系模型为什么成为主流

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)通过外键连接实现
实现方式指针(导航式)指针(导航式)基于数学(集合论)
用户操作过程化(需知道路径)过程化(需知道路径)非过程化(只需指定条件)
数据独立性较差
数据结构复杂度简单清晰复杂最简
典型代表IMSDBTGOracle, 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. 关系模型是目前最常用的数据模型

🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #数据模型 #层次模型 #网状模型 #关系模型 #数据库技术基础 #软考备考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值