[数据库] 4.1 - 数据建模之思想与方法
文章目录
4.1 数据建模:思想与方法
- 基本内容
- 为什么要数据建模和数据库设计?
- E-R模型–数据建模之基本思想
- E-R模型–表达方法之Chen方法
- E-R模型–表达方法之Crow’s foot方法
- 数据建模之案例讲解
- 数据库设计中的抽象
- 重点与难点
- 理解E-R模型进行数据建模的基本思想,熟练掌握E-R模型的Crow’s foot表达方法
- 熟练运用Crow’s foot方法进行数据建模,即建模训练
4.1.1 为什么要数据建模与数据库设计?
原因
-
数据建模与数据库设计在《数据库系统》中的位置
-
研发出的软件无法满足需求
-
需求的理解,简单来讲,包括数据需求的理解和处理规则需求的理解
数据模型与概念模型
-
数据模型
表达计算机世界的模型称数据模型
-
概念模型
表达信息世界的模型称概念数据模型, 简称概念模型
-
信息世界是对现实世界的理解与抽象
-
示例
抽象—理解-区分-命名-表
数据建模是抽象,抽象 是 理解-区分-命名-表达
-
现实世界需要理解:现实中的卡片、单据、表格、报表……
- 理解的标志是区分:表与表的区分,表内数据项的区分,数据项之间关系 的区分,表之间关系的区分?
- 区分的标志是命名:命名表、命名数据项、命名表之间的联系
-
抽象的终结果是正确的表达:用其他人能理解的表达方法来表达(E-R图 /Crow’s Foot/IDEF1X)
为什么要数据建模与数据库设计?
-
“数据建模与数据库设计”内容学习的目标
-
理解数据建模与数据库设计
-
扎实地理解并掌握E-R模型/IDEF1X模型:数据建模与数据库设计的重要工具
能够绘制E-R图/IDEF1X图而且绘制得正确
-
能够用E-R/IDEF1X模型准确理解现实世界并进行数据库设计
理解现实世界并进行抽象的能力,理解并抽象得正确
-
能够分析数据库设计的正确性
4.1.2 E-R模型-数据建模之基本思想
E-R模型的基本概念
-
基本知识
- E-R模型:Entity-Relationship Model
- 1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型
-
E-R模型的基本观点
世界是由一组称作 实体 的基本对象和这些对象之间的 **联系 构成的
-
E-R模型给出了一组基本概念,用这组概念可以刻画信息世界
抽象的概念(语义较少) 对应问题领域的概念(给抽象概念赋予一定语义的新概念) 实体 学生 (学号, 姓名, …) 属性 课程 (课程号, 课程名, …) 联系 教师 (教师编号, 教师名, …) 关键字/码 任课 (教师编号, 课程号, …) … …
实体与实例
-
概念
-
客观存在并可相互区分的事物
-
实体有 类(实体,实体的型) 和 个体(实体的实例,实体的值) 的概念
-
-
实体用属性来刻画
-
属性,实体所具有的某一方面特性
-
-
属性类型
-
单一属性与复合属性
- 复合属性示例:家庭住址:省份, 详细住址
- 在关系模型中,复合属性一定要转化为单一属性(关系的第1范式)
-
单值属性和多值属性
- 每个实例的该属性值是一个还是多个
- 多值属性示例:电话号码,一个人可能有多个电话号码
- 在关系模型中,多值属性一定要转化为单值属性(关系的第1范式)
-
可空值属性和非空值属性
每个实例的该属性值可以是或不能是空值
-
导出属性
- 由其他属性计算而得
- 例如由“出生年份”可以得出“年龄”
-
关键字作用
- 关键字/码,实体中能够用其值 唯一区分开 每一实例的属性或属性组合
- 这是特殊并关键的属性,每一实体都必须给出关键字
什么样的联系需要区分
-
实体之间充满了联系
- 联系,指一个实体的实例和其他实体实例之间所可能发生的联系
-
参与发生联系的实体的数目,称为联系的 度 或 元
-
联系有一元联系、二元联系和多元联系
-
一元联系示例
-
二元联系示例
-
三元联系示例
-
-
角色(作用)
- 实体在联系中的作用称为实体的角色
- 当同一实体的不同实例参与一个联系时,为区别各实例参与联系的方式, 需要显式指明其角色(role)
-
实体之间的联系种类
二元联系:一对一、一对多、多对多联系
- 一对一联系(1:1):实体A的实例只能和实体B的一个实例发生联系,反之,实体B的实例也 只能和实体A的一个实例发生联系。
- 一对多联系(1:m 和 m:1):实体A的实例能和实体B的多个实例发生联系,反之,实体B的 实例只能和实体A的一个实例发生联系。
- 多对多联系(m:n):实体A的实例可以和实体B的多个实例发生联系,反之,实体B的实例 也可以和实体A的多个实例发生联系。
-
联系的 基数(Cardinalities)
-
实体实例之间的联系的数量,即一个实体的实例通过一个联系能与另一实体中相关联的实例的数目
-
常见的映射基数如上,有一对一的(1:1),一对多的(1:m),多对多的 (m:n)几种情况
-
进一步,联系的基数还要区分是0个、1个、不定数目的多个还是固定数目的多个(即,对每个实体的实例而言是否必须存在)
-
通常以实体参与联系的小基数和大基数来标记(MinCard…MaxCard)
-
“书架”参与“存放图书”联系的基数为(0…m),而“图书”参与此联系的基数为(1…1)
-
一个“书架”可以存放0或多本“图书”,一本“图书”只能存放在1个“书架”
-
-
-
完全参与联系和部分参与联系
- 完全参与联系:即该端实例至少有一个参与到联系中,最小基数为1(1…m);
- 部分参与联系:即该端实例可以不参与联系,最小基数为0(0…m)
4.1.3 E-R模型-表达方法之chen方法
E-R 模型的几种图示化表达方法
- Chen 方法
- Crow’s Foot方法
- IDEF1X方法(工程化方法)
Chen方法的基本图元及其含义
-
图示
-
Chen 方法
- 实体:矩形框
- 属性:椭圆
- 多值属性:双线椭圆
- 导出属性:虚线椭圆
- 关键字/码:下划线
- 连接实体和属性:直线
- 联系:菱形框
- 连接实体与联系:直线
- 连接联系和属性:直线
- 复合关键字:标有相同数字
- 多组关键字:标有不同数字
Chen方法中不同“联系”的区分方法
-
联系也需要命名和表达
-
方法一
-
1:1 联系:箭头直线,由联系指向实体
-
1:m 联系:指向 1 端为箭头直线,指向多端为无箭头直线
-
m:n 联系:无箭头直线
-
完全参与联系:双直线
-
部分参与联系:单直线
-
图示
-
-
方法二
-
1 端实体-直线旁标1
-
多端实体-直线旁标m或n
-
完全/部分参与联系也可以标注小基数…大基数进行区分,
小基数 0 的为部分参与联系,小基数 1 的为完全参与联系
-
直线旁标1…1, 0…1, 1…m, 0…m:
-
图示
-
示例
-
Chen 方法表达示例—基本的实体-联系表达
图书管理的E-R Diagram
-
Chen方法示例—完整的实体-属性-联系的表达
图书管理的E-R Diagram
-
Chen方法示例—带组合、多值和导出属性的表达
客户实体的E-R Diagram
-
Chen方法示例—带组合、多值和导出属性的表达
账户管理的E-R Diagram
-
Chen方法示例—联系的角色的表达
-
Chen方法示例—参与联系基数的表达
客户-产品折扣关系的E-R Diagram
4.1.4 E-R模型-建模案例讲解(chen方法)
- 示例:仓储管理的E-R Diagram
- 需求理解:
- 管理零件
- 管理零件的来源—哪些零件来自于哪些供应商
- 管理零件的去向—哪个零件供应给哪一个项目使用
- 管理多个仓库—哪个零件存在哪个仓库中
- 管理职工—哪个职工管理哪个仓库
运用E-R模型理解需求并建模的步骤
-
理解需求,寻找实体
-
E-R图建模首先要找出问题领域的实体,即找出有哪些 类/实体
-
能够用一个个、一件件、一串串等重叠量词形容的,而不是一个、一件…
-
供应商、仓库、职工、项目、零件
-
-
用 属性 刻画每一个实体
-
确定每一个实体的 关键字/码
-
数据建模的重点是 分析实体之间的联系
-
检查是否覆盖了需求
4.1.5 E-R模型-表达方法之Crow’s foot方法
Crow’s foot方法的基本图元及其含义
-
实体:矩形框,实体的名称写在横线上面
-
属性:实体框横线的下面
-
关键字:属性下加下划线
-
联系:菱形框表示,也可以将菱形框省略而直接以联系名来替代
-
联系的基数表示方法
示例
-
ODBC应用前,需要确认具体DBMS Driver被安装到ODBC环境中
-
Crow’s foot方法表达示例:基本实体-联系的表达
- 强调:
- 一种图形代表着一类业务规则
- 不是在画图,而是在表达业务规则
- 画家与作品之间的关系
- 1:m(one-to-many)情况
- 业务规则:一个painter可以绘制多幅 painting, 而一幅painting只能由一 个painter来绘制
- 学生与课程班之间的关系
- m:n(many-to-many)情况
- 业务规则:一个student可以选择多个 class, 而一个class又可由多个 student来组成
- 强调:
-
Crow’s foot方法表达示例:一元联系的表达
-
产品构成暨物项之间的联系
-
m:n(many-to-many)部分参与联系
-
业务规则:一个part可以由多个其他的 part构成, 而一个part也可以构成多 个其他的part(但都可以不参与)
-
-
婚姻暨人与人之间的联系
- 1:1(one-to-one)部分参与联系
- 业务规则:一个employee可以与另一 个且只能一个employee结婚, 但其可以不结婚
-
-
仓储管理的E-R Diagram
4.1.6 数据库设计中的抽象
信息
- 理解
- 信息是现实世界中事物在人们头脑中的一种反映
- 信息可以准确地反映现实世界中事物(描述)
- 也可以通过对现实进行抽象,形成信息(抽象)
- 信息的取舍–抽象与具体化
- 现实世界中的事物包含了众多信息,哪些需要描述、哪些问题相关
- 数据库设计能力的高低往往体现在信息(及其联系) 的正确分析上,体现在理解现实世界能力的高低
- 三个世界与多层(级)抽象
- 现实世界 {描述、抽象为} 信息世界 (描述、抽象为) 计算机世界
- 现实 (客观存在) 抽象/描述 (概念/观念) 计算机中(用计算机实现)
- 抽象可能经过很多层次
“型”与“值”
-
基本的抽象:“型”与“值”的抽象
-
“型”与“型的型”:进一步“型与值”抽象
将可无限扩展的内容,或内容暂无法枚举的情况,抽象为可有限描述的概念
-
类似的概念
- “型”(Type)与“值(Value)”
- “模式(Schema)”与“数据(Data)”
- “数据模型(Data Model)”与“模式(Schema)”
- “模式(Schema)”与“实例(Instance)”
- “类(Class)”与“对象(Object)”
- “实体(Entity)”与“实例(Instance)”
- … …
抽象
-
不同层次的抽象
-
现实层(客观存在) 抽象层(观念世界/信息世界,描述现实世界的一种观点) …(信息世界的若干层抽象)… 逻辑层(计算机世界:独立于 物理设备) 物理层(计算机世界:不同物理设备的具体实现)
-
越抽象,语义信息越少,概括性越高,越反映共性信息,表征的范围越大
-
检验抽象正确性的方法:
能够依据现实抽象出来(抽象化),同时也能够依据抽象的信息和抽象规则还原为被抽象对象( 具体化 )。
-
-
数据模型作用
- 数据模型:表达计算机世界的模型称数据模型
- 不同范围的人对现实世界中事物的描述和抽象可能是不同的
- 现实的抽象与描述需要遵循 统一的数据模型: 统一的概念与统一的表达方法
- 数据模型是一组相互关联且已严格定义的概念集合,是用于刻画或描述现 实世界、信息世界或计算机世界的模型
-
抽象过程:理解-区分-命名-表达
-
抽象层次
-
分层级抽象
-
不同层面的抽象:
现实世界 概念/信息世界 计算机世界
逻辑世界(语义结构) 物理世界(存储结构)
-
-
方法论及应用
-
-
建模层次
- 建模的不同层次:模型与元模型,模型(型)与实例(值)