数据库的数据模型
数据模型一、两类数据模型二、概念模型三、层次模型四、网状模型五、关系模型六、数据库系统的结构七、数据库系统的组成数据模型也是一种模型,它是对现实世界数据特征的抽象。数据模型是数据库系统的核心和基础。一、两类数据模型第一类是概念模型,第二类是逻辑模型和物理模型。概念模型也称信息模型。按用户的观点来对数据和信息建模,主要用于数据库设计。逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、和
文章目录
数据模型
可以把数据模型想象成数据的"设计图纸",用来规划数据如何存储、管理和使用的模版。是数据库系统的核心基础。
1.数据模型的分类
数据模型分为两类,第一类:概念模型;第二类:逻辑模型和物理模型。
-
概念模型 (用户视角)
概念模型也称信息模型。是用户眼中的数据需求,用来记录用户关心的数据,帮助开发人员和用户沟通,明确需要哪些数据,数据之间有什么关系,主要用于数据库设计,不涉及技术细节。
-
逻辑模型(技术视角)
把概念模型翻译成计算机能理解的格式,即程序员实现的数据库结构
- 常见类型
- 关系模型(最常用):用表格形式存数据,比如MySQL
- 层次模型:树形结构,像公司部门层级
- 网状模型:数据之间多对多关联,像路线交叉的地铁图
- 常见类型
-
物理模型(技术视角)
数据在硬盘上的存储细节。
物理模型是对数据最底层的抽象,比如数据在硬盘上怎么分块存储,怎么快速检索,是面向计算机系统的。数据库管理员调整性能时考虑,普通用户不用管。
2. 现实世界到数据库的转换过程
-
抽象成概念模型
把显示世界中的事物抽象成用户能够理解的标签和关系
-
转换成逻辑模型
根据数据库类型(如MySQL),把概念模型转换成对应的结构(表格、树形等)。
-
落地为物理模型
按照逻辑模型的设计,在硬盘上实际存储数据(比如建立索引)。
3. 数据模型的三大要素
-
数据结构
数据库的组成对象以及对象之间的关系。
-
数据操作
对数据能做什么操作。例如:增、删、改、查、按照年龄筛选学生。
-
数据约束
保证数据正确的规则。例如:性别是能填“男”或“女”、学生学号不能重复。
概念模型
1. 概念模型的基本概念
-
实体
现实世界中存在并可以相互区别的事物或关系。例如:一个学生、学生的选课记录、老师与学院的隶属关系。 -
属性
用来描述实体的某一特征。例如:学生实体有一些属性分别是:姓名、学号、年龄、班级 -
码
能唯一确定一个实体的属性。例如:学生实体的学号(前提是学号不重复) -
实体型
同一类实体的模版,包含名字和属性列表。例如:学生实体型 = 学生(姓名、学号、年龄、班级) -
实体集
同一类实体的集合。例如:全校所有学生就是一个学生实体集。 -
联系: 实体之间的关系类型
- 常见类型
- 一对一:一个人对应一个身份证号
- 一对多:一个班级有多个学生
- 多对多:一个学生可以选多门课,一门课有多个学生
- 常见类型
2. 如何画概念模型—E-R图
- E-R图(实体-联系图):用图形表示实体、属性和联系
- 符号
- 矩形:实体
- 椭圆:属性
- 菱形:联系
- 符号
层次模型
层次模型是数据库系统中最早出现的数据模型。结构像 “倒立的树”,比如:文件系统:C盘(根)→ 文件夹 → 子文件夹 → 文件,即根节点以外的其他结点有且只有一个根节点。
1. 层次模型的结构
-
节点类型
- 根节点:树的顶端,唯一没有上级的节点
- 中间节点:既有上级也有下级
- 叶节点:没有下级
-
数据存储规则
- 每个节点代表一类数据(如“学生”),包含多个属性(如学号、名称)
- 节点之间通过 “父子关系” 连接,例如:一个班级(父)下有多个学生(子)
2. 层次模型的操作规则
-
查询数据: 必须从根节点开始逐层查找(例如:学院→ 班级→ 学生)
-
插入数据: 没有上级节点,不能插入下级节点(例如:必须先创建“部门”,才能添加“员工”)
-
删除数据: 删除上级节点时,下级节点会被连带删除(例如:删除“班级”,其下所有“学生”也会消失)
-
更新数据: 可以直接修改节点属性(如修改学生姓名)
3. 层次模型的优缺点
优点:
- 结构清晰:像树形目录,一目了然
- 查询效率高:按固定路径查找,速度快
- 数据安全: 父子关系强制绑定,减少数据错误
缺点:
- 无法直接表示复杂关系:无法直接现实世界中很多关系都是非层次性的,如结点之间具有多对多的联系,不适合用层次模型表示
- 灵活性差: 查询必须从根节点开始,无法跨层级直接访问
- 数据冗余: 如果一个节点具有双亲结点,只能通过引入冗余数据或引入虚拟结点来解决。
网状模型
网状模型是一种比层次模型更具有普遍性的结构。
1. 网状模型的结构
- 结构特点:似现实中的交通网:一个路口(节点)可以连接多条道路(联系)
- 允许一个节点有多个“上级”(双亲节点)
- 可以没有根节点,或者多个根节点
2.网状模型的操作规则
- 查询数据:需要指定路径。
- 插入数据:允许灵活添加节点,但需维护关联路径。
- 删除数据:删除父节点时,可保留子节点(与层次模型不同)。
3.网状模型的优缺点
优点:
- 能能直接表示复杂关系:如一个节点可以有多个双亲,结点之间可以由多种联系
- 路径明确,查询效率高
缺点:
- 结构比较复杂,而且随着应用坏境的扩大,数据库的结构变得越来越复杂,用户难以理解
- 开发程序时要手动管理路径,工作量大,加重了编写应用程序的负担
关系模型
关系模型是最重要的一种数据模型。
1. 关系模型的数据结构(对照Excel理解)
关系模型有一组数据组成。每个关系的数据结构是一张规范的二维表。
-
关系(表):一个关系对应通常说的一张表(如下图这张学生登记表)
-
元组(行): 表中的一行即为一个元组
-
属性(列): 表中的一列即为一个属性,给每个属性起一个名字即为属性名(如下图表中的6列对应6个属性:学号、姓名、年龄、性别、系名、年级)
-
码(唯一标识符): 表中的某个属性组,可以唯一确定一个元组(如下图表学号可以唯一确定一个学生)
-
关系模式(表头): 对关系的描述,一般表示为:关系名(属性1,属性2,……),如下图表的关系模式:学生(学号,姓名,年龄,性别,系名,年级)
2. 关系模型的操作规则
- 查询数据:用SQL语句灵活查询,无需关心存储路径
- 插入/删除/更新:直接操作表格,自动维护关联(如删除学生,选课表中相关记录也会删除)
- 数据约束:
- 学号不能重复(唯一性)。
- 成绩必须是0-100之间的数字。
- 选课表中的学号必须在学生表中存在(外键约束)。
3.关系模型的优缺点
优点:
- 数据结构简单、清晰、用户易懂易用
- 关系模型的存取路径对用户透明,无需关心底层存储,开发效率高
- 支持复杂查询
缺点:
- 查询效率不如格式化数据模型
数据库系统的结构与组成
1.数据库系统的结构 (三层结构)
可以把数据库想象成一个 “图书馆”,数据就是图书馆里的书。数据库系统的结构分为三层,方便不同角色的人使用和管理。
-
外模式(用户视角)
用户看到的“书架分类”。
同一数据库可以有多个外模式,不同用户看到不同的数据视图。 -
模式(管理员视角)
数据库的“整体设计图纸”。例如:学生数据库的全局结构:学生表(学号、姓名)、课程表(课程号、课程名)、成绩表(学号、课程号、分数)。
一个数据库只有一个模式,定义所有数据的逻辑关系。
-
内模式(技术员视角)
数据在硬盘上的“物理存放方式”。例如:数据如何分块存储?索引怎么建?类似图书馆书的存放位置和索引卡。
用户无需关心,由数据库管理员优化。
2. 数据库系统的组成
-
硬件平台及数据库
- 服务器
- 硬盘/内存
-
软件
- 数据库管理系统(MySQL、Oracle)
- 应用程序(借书小程序)
-
人员
- 数据库管理员
- 开发人员:系统分析员、程序员
- 用户:普通用户(查成绩、下单购物)、高级用户(用SQL直接操作数据的人)
更多推荐


所有评论(0)