第2章 数据库系统的核心--数据模型

🏙️🌃⚽⚾🏀🏐

2.1数据模型的概念

🏙️数据模型(Data Model)

  • 是对现实世界客观事物的数据抽象描述,这种抽象描述能确切的反映事物、事物的特征和事物之间的联系,形成一组严格定义的概念的集合。
  • 通俗地讲,数据模型就是现实世界的模拟

🏙️数据模型是数据库系统的核心

  • 研究的问题是如何以逻辑和物理方式安排和识别数据

🏙️数据模型应满足三方面的性能要求

  • 能比较真实地模拟或抽象表示现实世界
  • 容易为人所理解
  • 便于在计算机上实现

🏙️将数据模型分成三个抽象层次

  • 概念数据模型!(conceptual data model)
  • 结构数据模型(structural data model)
  • 物理数据模型(physical data model)

🏙️概念数据模型

  • 用户容易理解的、对现实世界特征的数据抽象。其基本特征是按用户观点对数据和信息进行建模,与具体的DBMS无关,用于数据库设计员与用户之间进行交流的语言。
  • 常用的概念数据模型是实体-联系(E-R)模型,简称E-R模型

🏙️结构数据模型

  • 又称逻辑数据模型(LogicalData Model),是用户从数据库中所看到的数据模型,是具体的DBMS所支持的数据模型,如网状数据模型、层次数据模型、关系数据模型和面向对象数据模型等。
  • 按计算机系统的观点对数据建模,用于DBMS实现

🏙️物理数据模型

  • 是对数据最底层的抽象,用于描述数据在存储介质上的表示方式和存取方法,它不但与具体的DBMS有关,而且还与操作系统和硬件有关,是物理层次的数据模型。

🏙️将数据模型分成三个抽象层次

🏙️数据模型的构成(三要素)

  • 数据结构:是对计算机的数据组织方式和数据之间联系进行框架性描述的集合,是对数据库静态特性的描述。
  • 数据操作:是数据库中各种对象类的实例(或取值)所允许执行的操作的集合,是对数据库动态特性的描述。
  • 完整性约束:是关于数据状态和状态变化的一组完整性约束条件(规则)的集合。

2.2概念数据模型

🏙️概念数据模型是数据库设计中的一种高层抽象工具

  • 简称概念模型,也称为实体-联系(E-R)模型只关注现实世界中有哪些重要的"事物"、这些"事物"有什么关键"特征",以及它们之间如何"相互关联",而不涉及任何具体的技术实现细节
  • 不涉及系统的具体功能实现

🏙️概念数据模型的用途

  • 用于信息世界的建模
  • 是现实世界到机器世界的一个中间层次
  • 是数据库设计的有力工具
  • 数据库设计人员和用户之间进行交流的语言

🏙️对概念数据模型的基本要求

  • 较强的语义表达能力
  • 简单、清晰、易于用户理解

🏙️举例:工厂物资管理的概念数据模型

包括的客观事物有:仓库、零件、供应商、项目、职工

  • 仓厍的信息有:仓库号、面积、电话号码;
  • 零件的信息有:零件号、名称、规格、单价、描述;
  • 供应商的信息有:供应商号、姓名、地址、电话号码、账号;
  • 项目的信息有:项目号、预算、开工日期;
  • 职工的信息有:职工号、姓名、年龄、职称

事物与事物之间的联系有:

  • 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,用库存

量来表示某种零件在某个仓库中的数量;

  • 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作
  • 职工之间具有领导与被领导关系,即仓库主任领导若干保管员
  • 一个供应商可以供给若干项目、多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给,每个供应商供应的零件都有相应的供应量。

🏙️实体-联系(E-R)模型的几个基本概念

  • 实体(entity):客观存在并可互相区别的事物。
    • 例如:学生、课程、教学楼。
  • 属性(attribute):实体具有若干特征,每个特征称为实体的一个属性。
    • 例如,每个学生实体都具有学号、姓名、年龄、性别、系别、年级等属性。
    • 每个属性赋予确定的值,就抽象地表示了一个确定的实体。
  • 实体型(entitytype):对具有相同属性的一类实体的特征和性质的结构描述。
    • 实体名(属性1,属性2,...,属性n)
    • 例如,学生(学号,姓名,性别,年龄,系,入学时间)就是一个实体型
  • 实体集(entity set):同一类型实体的集合称为实体集。
    • 例如,计算机系的学生就是一个实体集。
  • 联系(Relationship):E-R模型中实体之间的联系,它反映的是现实世界中事物之间联系。
    • 实体集内部的联系:是指同一实体集内部各实体之间的联系
    • 实体集之间的联系:是指不同实体集之间的联系
    • 例如:实体集内部:学生与学生的联系

实体集之间:学生与课程的联系

🏙️两个实体集之间的联系可以分为三类

  • 一对一联系(1:1)
    • 例:班级与班长,部门与经理
  • 一对多联系(1:n)
    • 例:班主任与学生,部门与职工
  • 多对多联系(m:n)
    • 例:学生与课程,客户与商品

🏙️实体集内部也存在联系

  • 例:1:1 夫妻
  • 1:n班长与学生
  • m:n 无结构零件与有结构零件

🏙️多个实体集间也存在联系

  • 例:课程、教师与参考书:1:m:n
  • 出版社、教材、大学:m:n:p

🏙️E-R图要点

  • 实体(型)的表示
    • 用矩形来表示实体(型),矩形框内写明实体名
  • 属性的表示
    • 用椭圆形来表示属性,并用无向边将其与相应的实体连接起来
  • 联系的表示
    • 用菱形来表示联系,菱形框内写明联系名,并用无向边将有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)

🏙️E-R图联系的表示

  • 两个实体集之间的联系
  • 实体集内部的联系
  • 多个实体集之间的联系

🏙️库存业务管理的E-R模型

  • 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中;
  • 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作;
  • 一个供应商可以供给若干项目、多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给
  • 职工之间具有领导与被领导关系,即仓库主任领导若干保管员

2.3结构数据模型

🏙️数据库技术是以数据模型为主线而发展的

  • 第一代数据库技术,即层次数据库和网状数据库模型;
  • 第二代数据库技术,即关系数据库模型;
  • 第三代数据库技术,即新一代数据库技术,以面向对象模型为主要特征的数据库技术;
  • 第四代数据库技术,即NoSQL,泛指非关系型的数据库

🏙️第一代数据库

层次数据库网状数据库技术。这一代的数据库管理系统主要支持层次和网状数据模型,其主要特点是:

  • 支持三级模式结构;
  • 用存取路径(指针)来表示数据之间的联系;
  • 数据定义语言(DDL)和数据操纵语言(DML)相对独立;
  • 数据库语言采用过程性(导航式)语言。

2.3.1 层次模型

满足下面两个条件的基本层次联系的集合为层次模型。

  • 有且只有一个结点没有双亲(Parent)结点,这个结点称为根结点;
  • 除根结点以外的其他结点有且只有一个双亲结点与之相连。

层次模型例题

层次模型的优点:

  • 模型比较简单,使用较方便。
  • 对于实体间联系固定且预先定义好的应用系统,层次模型性能优于关系模型,不低于网状模型。
  • 层次数据模型提供了良好的完整性支持

层次模型的缺点:

  • 只能表示1:n联系,虽有辅助手段实现m:n联系,但方法笨拙和复杂,不易掌握。
  • 数据的查询和更新操作也很复杂,导致应用程序编写困难。

2.3.2 网状模型

满足两个条件的基本层次联系的集合称为网状模型:

  • 允许一个以上的结点无双亲;
  • 一个结点可以有两个或两个以上的双亲。

网状数据模型的优点:

  • 能够更为直接地描述现实世界,如一个结点可以有多个双亲
  • 具有良好的性能,存取效率较高。

网状数据模型的缺点:

  • 结构比较复杂,不利于最终用户掌握。
  • 其DDL,DML语言复杂,用户不容易使用。
  • 应用程序编写负担重。

第二代数据库技术

关系数据库技术。这一代的数据库管理系统主要支持关系数据模型。其主要特点是:

★概念单一化,数据及其数据间的联系都用关系来表示;

★以关系代数为理论基础,数据独立性强;

★数据库语言采用说明性语言,大大简化了用户的编程难度。

2.3.3 关系模型

关系模型用二维表结构组织数据、描述实体及实体间的联系

关系模型具有下列优点:

  1. 关系模型建立在严格的数学理论基础上。
  • 关系代数

2.关系模型的概念单一

  • 无论实体还是实体之间的联系都用关系表示

3.关系模型的存取路径对用户透明

  • 具有更高的数据独立性,更好的安全保密性
  • 简化了程序员的工作和数据库开发建立的工作

4.关系模型中的数据操作是集合操作

  • 操作的对象和操作的结果都用关系表示。

关系模型具有下列缺点:

①存取路径对用户透明,查询效率往往不如格式化数据模型

②为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统 的难度

第三代数据库技术

即新一代数据库技术,它是以面向对象模型为主要特征的数据库技术。这一代的数据库管理系统是基于扩展的关系数据模型或面向对象数据模型的,是尚未完全成熟的一代数据库技术,其主要特点是:

★支持包括数据、对象和知识的管理;

★在保持和继承第二代数据库技术基础上引入新技术,如面向对象技术等,

★对其它系统开放,有良好的可移植性、可扩充性和可互操作性。

2.3.4 面相对象数据模型例题

2.3.5 E-R模型到关系模型的转换

关系模型中的常用术语

在用户观点下,关系模型中数据的逻辑结构是一张二维表(Table,简称表)。

  • ① 关系模式(RelationalSchema):对应一个二维表的表头,它对应E-R模型中的实体型,是相对稳定的。
  • ② 属性(Attribute):二维表中的一列即为一个属性,有时也称为字段,给每一个属性起一个名称即属性名。它们与E-R模型中实体型的属性相同。
  • ③ 关系(Relation):对应通常所说的一张二维表,它与E-R模型中的实体集对应。
  • ④) 元组(Tuple):二维表中除表头以外的一非空行即为一个元组,元组与E-R模型中的实体对应。
  • 5.候选键(Candidate Key):二维表中的某些属性的集合,它可以唯一确同定一个元组。一个关系模式可以有若干个候选键,通常选择一个作为主键(Primary Key)。
  • ⑥ 外键(Foreign Key):在一个关系模式中含有的与另一个关系模式的主键相对应的属性(组)称为该关系模式的外部关键字。

关系模型例题

实体型的转换

  • 关系模式中包含实体型的所有属性

联系的转换

  • 一对一(1:1)的转换
    • 将联系的属性和其中一个实体型对应关系模式的主键属性加入到另一个关系模式中
  • 一对多(1:n)的转换
    • 将联系的属性和1端对应关系模式的主键属性加入到n端对应的关系模式中
  • 多对多(m:n)的转换
    • n:m:将联系转换为一个新的关系模式,其属性有联系的属性和前面两个关系模式的主键属性构成

文件系统、E-R模型和关系模型中常用术语的对照关系

相关推荐
emma羊羊3 小时前
【业务逻辑漏洞】认证漏洞
mysql·网络安全·靶场·业务逻辑漏洞
Ahern_4 小时前
崖山数据库安装部署
linux·数据库
斯普信专业组4 小时前
Redis集群平滑扩缩容与槽位迁移实战指南
数据库·redis·槽位迁移
米诺zuo4 小时前
datagrip配置新的数据库
数据库
火星MARK4 小时前
RAID详解
数据库·oracle
麦麦大数据4 小时前
D025 摩托车推荐价格预测可视化系统|推荐算法|机器学习|预测算法|用户画像与数据分析
mysql·算法·机器学习·django·vue·推荐算法·价格预测
JAVA学习通4 小时前
Spring AI与DeepSeek实战:打造企业级智能体
数据库
皮皮冰燃4 小时前
关系数据库-10-[mysql5和mysql8]在windows中安装为服务并共存
windows·mysql
安审若无4 小时前
Oracle 打补丁指南
数据库·oracle