立即注册
登录
搜索
前端开发
后端开发
虚幻引擎
U3D引擎
体感研发
数据库
论坛
BBS
本版
帖子
用户
麒麟软控
»
论坛
›
麒麟软控
›
数据库
›
数据库学习笔记(03): Entity-Relationship Model
返回列表
发新帖
数据库学习笔记(03): Entity-Relationship Model
黄杰海
黄杰海
当前在线
积分
14
3
主题
7
帖子
14
积分
新手上路
新手上路, 积分 14, 距离下一级还需 36 积分
新手上路, 积分 14, 距离下一级还需 36 积分
积分
14
发消息
发表于 2023-3-25 18:20:12
|
显示全部楼层
用实体(Entity)和联系(Relationship)的术语来表达数据以及数据和数据之间的关系,还有约束等信息
E-R模型用于数据库的
概念设计
阶段
E-R模型三个基本概念:实体集、联系集、属性
实体
是现实世界课区别于所有其它对象的事物或对象:例如特定的人,公司,车
实体具有属性:公司名、Id
实体集
是共享
相同属性
的相同类型的实体集合
和对象的区别:
实体是静态的,没有针对实体的操作,只有属性描述
联系
指多个实体之间的关联
联系集
是相同类型联系的集合,规范表达:n≥2个实体集上的数学关系
联系集的
度
:表达了参与联系的实体集书目,常见二元联系、三元联系
联系集的超码:参与实体集的主键的组合
联系集多对多:主码是两方的主键的
并集
多对一:主键是
多方的主键
一对一:主键是两方的候选码中
任意一个
属性
简单
simple和
复合
composite属性:例如身份证号是简单属性,地址是符合属性
单值single-valued和多值multivalued属性:例如ID是单值属性,电话号码是多值属性、学位是多值属性
一个特定实体都只有单独的一个值的属性
对某个特定实体,一个属性可能对应一组值
派生属性:例如年龄属性可以由出生日期推导出来
删除属性冗余
约束
映射基数约束
Mapping Cardinality Constraints:实体集合中的实体通过联系集合能关联的实体个数
参与约束
Participation Constraints:实体集合中的实体参与联系时是否全体参与还是部分参与
E-R Diagram
矩形
表示实体集
菱形框
表示联系集
属性在矩形框罗列
主键用
下划线
标识
组合属性、多值属性和导出属性的表达,缩进的方式
具有属性的联系集
基数约束:
箭头所指实体集表示映射的“1”方,线段对应的实体集表示映射的“多”一方
one-to-one
one-to-many。一名教师可以指导多名学生
many-to-many
全参与用
双线
另一种表达:
一名学生只能被一位教师指导,一位教师可以指导多名学生
Ternary Relationship自学
弱实体
:没有主键的实体。弱实体集依赖于一个实际存在的确定的实体集
强实体与弱实体的联系只能是1:1或1:N。弱实体参与联系时应该是“完全参与,因此弱实体的联系侧画成双线边
若要唯一区分弱实体,需要其依赖的强实体的key+弱实体的区分符
Diagram for university
Reduction to Relation Schemas
强实体:
关系名即实体名,强实体集的主码就是生成的模式的主码
弱实体:
关系名即实体名,属性外加所依赖的强实体的key,最终弱实体转换的关系的key为强实体key+discriminator。
A依赖B,还要在A上简历外码约束,参照B的主码
组合属性
不为单独的符合属性创建一个属性,将组合属性的每一个部分作为关系模式的一个顺序性
多值属性
对于多值属性M,构建一个
新的关系模式
R,包含对应M的属性A,以及对应M所在实体集/联系集的主码
联系集
多对多:参与的实体集的
主码属性的并集
成为主码
一对一:任选一个实体集的主码
无需转化为一个关系,只需在一个实体中加入外键
多对一:选多的一方的实体集的主码
无需转化为一个关系,将“1”方的key加入到“N”方中外键约束
n元联系集
没有箭头:所有参与实体集的主码的并集
有一个箭头:不在箭头侧的实体集的主码
联系集有属性要额外加上
Extended E-R Features
老师好像没讲?
Translation Steps
为每个实体创建表;包括单值属性。选择key
为每个弱实体类型创建表;包括单值属性。在弱实体中将所有者的key作为外键包括在内。将 key 设置为所有者的外键加上本地部分键。
对于每个 1:1 关系,向关系中涉及的某个实体添加一个外键(向关系中另一个实体添加一个外键)
对于每个 1:N 关系,向关系 N 端的实体添加一个外键(以引用关系 1 端的实体)
对于每个 M:N 关系,创建一个新表。在关系中包括每个参与者实体的外键。新表的键是所有此类外键的集合
对于每个多值属性,构造一个单独的表。对此新表中的实体重复键。它既可以用作此表的键,也可以用作实体的原始表的外键
上篇:数据库学习笔记(02): Relational Model
下篇:数据库学习笔记(04): Relational Database Design
上一篇:
数据库系统工程师难不难?——30天一举拿下备考心得
下一篇:
数据库学习笔记(04): Relational Database Design
回复
举报
使用道具
分享
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
返回顶部
返回列表