数据模型

可以把数据模型想象成数据的"设计图纸",用来规划数据如何存储、管理和使用的模版。是数据库系统的核心基础。

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直接操作数据的人)
Logo

一站式 AI 云服务平台

更多推荐