🤖 AI文章摘要 qwen-turbo-latest
加载中...

ER概念模型

世界是由一组称作实体(Entity)的基本对象和这些对象之间的联系(Relationship)构成的。

实体

现实世界中客观存在(可以是可触摸的实物, 也可以是无形的虚物)并可相互区分的事物. 实体有两个抽象层次.

  • 具象层实体: 指代具体的一个实体, 具象实体也称为实例. 一个读者, 一个水杯, 一个鼠标, 毛泽东思想等
    • 属性: 实体具有的性质(由事物所决定的事实). 性质可以是物理性质(质量\高度)、化学性质(酸性\碱性)、名称、交流、合作等
      • 单一属性与复合属性: 属性不可再分的为单一属性, 否则为复合属性. 例如家庭住址
      • 单值属性与多值属性: 属性值只能取一个的为单值属性, 否则为多值属性. 例如电话号码
      • 导出属性: 该属性能通过其他属性计算得到.
    • 属性值: 属性的描述参数叫做属性值, 例如 姓名: 张三, 性别:男 , 年龄:18 身高: 169cm, 体重: 60kg , 肤色: 黄种人
    • 具象实体的的刻画: 具象概念实体用一个或若干个属性值刻画, 只需列出具象实体所要研究的属性的值即可 例如: 实例1(001, 45092XXX, 张三, 男, 18, 169cm, 60kg…..)
  • 抽象层实体: 具有一些相同属性的具象实体的抽象描述, 例如每一个具象读者都有借书证号, 姓名, 年龄, 住址等属性, 将这些具象实体抽象为读者实体.
    • 实例: 实例是与抽象实体相对应一个具象实体
    • 抽象实体的刻画: 抽象实体用一个或者多个属性刻画, 不需要列出所有属性, 但要求列出一个主键
      • e.g. 读者(借书证号, 身份证号, 姓名,性别, 年龄, 身高, 体重…..)
    • 候选键/关键字/码: 指抽象实体的一个属性或者属性组合, 它能唯一标识抽象实体中的每一个实例.
      • e.g. 借书证号和身份证号都是候选键
    • 主候选键(或叫主键)/主关键字/主码: 一个抽象实体可以有多个候选键, 但是必须选择唯一一个作为主键. 用下划线标注出来
      • e.g. 身份证号
    • 泛化: 对具有相似属性的抽象实体再抽象的过程, 会产生一个更加抽象的一般实体. 一般实体描述了一些共拥有的属性.
      • e.g. 工人(工号, 身份证号, …..)和读者(借书证号, 身份证号, …..)进行抽象, 形成了中国人民(身份证号, …..)实体
    • 细化: 对一个抽象实体进行相对详细描述的过程, 会产生一个相对具体的抽象实体或叫分类实体. 分类实体一定要产生与原实体不同的属性, 否则细化是没有意义的
      • e.g. 中国人民(身份证号, …..)可以进行细化 医生(医生号, 身份证号, …..)
    • 外键(继承属性): 即继承自其他实体关键字的属性. 例如 医生的身份证号是继承自中国人民的身份证号
      • 外键的取值必须为NULL或者其他实体的实例的主键值

💡对于实体的理解, 可以参考整数, 我们可以将1说成整数, 也可一说成1,2,3,4,5….是整数, 这里的整数和实体有着十分相似的关系

💡实体指代的是那一层的意思要看上下文的理解, 一般说的实体指的是抽象层的实体!!!!!!

联系

指的是不同实体的实例之间可能发生的联系, 例如读者实体的实例 “张三” , 借走了图书实体的实例 “流浪地球”, 这是一个借阅联系

  • 度/元: 参与联系的实体数目. 实体是固定不变的, 但联系是多样化的, 不可能是固定的, 它基于你对问题的理解
  • 角色: 一元联系中的多个属性来自同一个实体的不同实例, 那就要显式指定不同属性的角色作用.
    • e.g. 装配关系中, 零件号都来自零件实体, 那就要显式指定父件与子件
  • 联系基数: 联系基数是联系约束的实体A的一个实例能与另一个实体B发生实例关联的数目. 它基于你对业务规则的理解
    • 表示形式: 最小基数..最大基数 注意: 最小基数缺省为0
    • 部分参与联系: 也就是实体A的实例参与联系时, 实体B可以不参与联系, 最小基数为0, 在联系中实体B相应的属性设置允许空值实现
    • 完全参与联系: 也就是实体A的实例参与联系时, 实体B至少一个实例参与联系, 最小基数为1. 在联系中实体B相应属性设置不允许空值实现
    • e.g. 有 “图书实体” 和 “书架实体” 以及 “存放图书联系”, 联系限制图书实例与书架实例联系的数目为1..1, 书架实例与图书实例的联系数目为0..n
  • 二元联系: 映射基数或叫联系基数比率, 对于描述二元联系十分方便. 根据映射基数对二元联系进行分类有以下几种:
    • 映射基数比为1:1的联系: 商店实体和经理实体,联系限制经理唯一映射商店, 商店唯一映射经理.
    • 映射基数比为1:n的联系: 作品实体和作者实体, 联系限制作品唯一映射一个作者, 作者可以映射多个作品.
    • 映射基数比为n:m的联系: 学生实体和课程实体, 学生映射多门课程, 课程也可以映射多个学生 .
  • 分类联系: 一般实体通过外键将主键继承到分类实体的主键, 实现一般实体的属性扩展
    • 分类实体应完全继承一般实体的主键
    • 分类实体一般省略与一般实体相同的普通属性, 也不需要存储这些属性, 通过继承关系自动获得一般实体的普通属性
    • 分类联系有一个鉴别器属性, 它来自一般实体的属性, 用于区分一般实体的不同实例, 分配到不同的分类实体中
    • 分类联系一定不能看成是对一般实体的实例进行简单的分类, 分类实体一定要有区别于一般实体的属性
    • 完全分类联系与非完全分类联系: 列举的分类实体涵括所有的实例就是完全分类联系, 否则就是非完全分类联系
      • e.g 人类实体和工人实体与医生实体, 人类自然不止工人与医生, 所以这个分类是非完全分类联系
  • 联系的实现形式:
    • 联表形式: 联系可以看作一个特殊的实体, 它的属性继承自需要联系的实体的主键. 联系的基数是通过控制外键的UNIQUE 和 NOT NULL约束实现的
    • 外键形式: 一个实体通过继承另一个实体的主关键字可以实现二元联系中的1:1和1:n联系, n:m联系必须使用联表形式

Chen ERD

  
  

Crow’s foot ERD

erDiagram
	PROVIDER }o--o{ PROJECT : SUPPLY

	PROVIDER{
		STRING ID
		STRING NAME
		STRING ADDRESS
		STRING PHONE
		STRING ACCOUNT
	}
	WAREHOUSE{
		STRING ID
		DOUBLE SIZE
		STRING PHONE
	}
	WORKER{
		STRING ID
		STRING NAME 
		INT AGE
		STRING MAJOR
	}
	PROJECT{
		STRING ID
		DOUBLE COST
		DATE  START_DATE
	}
	PART{
		STRING ID 
		STRING NAME
		STRING SPECIFICATIONS
		STRING DESCRIPTRION 
		DOUBLE PRICE
	}

IDEF1x ERD

IDEF是ICAM提出的项目规范化管理模型 其中IDEF0是功能模型, IDEF1是信息模型, IDEF2是动态模型 而IDEF1x模型是对ER模型扩充语义或概念细化而形成的, 是ER模型的扩展 工程化设计规范中, 都是建议采用IDEF1x模型来设计

IDEF1x模型对E-R模型扩展的语义

  1. 独立实体(强实体): 实体的实例可以被唯一标识且不依赖其他实体的实例
    • 独立实体<=>关键字属性不包含外键.
      • 关键字属性完全是自身属性, 实例唯一标识时, 是不依赖其他实体实例存在的
      • 普通属性的外键是允许的, 因为外键可以取空值, 并不一定依赖参照实体实例的存在!!!!
  2. 从属实体(弱实体): 实体的实例可以被唯一标识且必须依赖其他实体的实例
    • 从属实体<=>关键字属性包含外键
      • 关键字属性包含外键时, 外键就有非空特性, 必须是依赖参照实体实例的存在
      • 普通属性的外键也是允许的, 参照独立实体的解释
      • 分类实体是一个从属实体!!!
  3. 实体设计规范
    • 唯一实体名原则: 实体命名唯一, 相同的实体名视为同一实体
    • 唯一属性名原则: 属性命名唯一, 相同的属性名视为相同含义(属性继承除外)
    • 实体相互联系原则: 模型中的实体都能发生相互联系
    • 属性可继承: 属性并不一定是实体特有的, 它还可以继承自其他实体.
    • 属性值非空原则: 空值的处理过程是非常复杂的, 一般不希望属性允许为空值
    • 实例不重复原则: 实体的实例不能重复
    • 第三范式原则: 实体满足第三范式的规范
  4. 作用名: 即对外键重命名后实际使用的名字
  5. 标定联系: 指从属实体和独立实体的外键联系
  6. 非标定联系: 指独立实体之间的外键联系
  7. 非确定联系: 独立实体间的多对多联系, 一般使用一个相交实体(本质是从属实体一种), 然后转化为独立实体于从属实体的标定联系实现
  8. 分类联系: 和ER模型中的分类联系是一致的
  9. 联系的基数: IDEF1x的联系都通过外键实现的, 淡化了联系的概念.
    • 主键一方的实体的基数为1, 外键一方的实体基数为n
    • 基数标志为Z的表示基数0..1
    • 基数标志为P的表示基数1..n
    • 省略标志的表示基数为0..n