数据库复习(4) 实体关系模型

实体集(Entity Sets)

  • 是实际存在的事物(可以是抽象的)
  • 具有属性(attributes)
  • 实体集是具有共同性质的同类实体的集合

实体集的属性类型划分

  • 简单的和复合的(conposite,如名字等等)
  • 单值的/多值的(如电话号码等)
  • 直接的/派生的(可以由其他属性计算得来,如生日等)

关系集(待补充)

E-R图

  • 矩形代表实体集,上方为名字,下方是属性,主键用下划线标出
  • 菱形代表关系集
  • 线段连接实体集和关系集
  • 虚线连接一个关系集和它的描述属性
    在这里插入图片描述
  • 双线表示实体集对于关系集的全参与
  • 双菱形表示与一个弱实体集联系的鉴别关系集

角色关系

自环联系集是一种角色关系集,它建立在一个实体集上:在这里插入图片描述

基数约束

有两种表示基数约束的方法:使用箭头与线段或者使用数字标注的线段

  1. 一对一关系:在这里插入图片描述
    两侧都使用箭头,如上如的规定:一名学生只能有一位导师,一位导师也只能教导一名学生。
  2. 一对多关系
    在这里插入图片描述
    箭头指向单参与(或者说不会多个对应一个)的实体集,表示一名导师可以教导多个学生,但一个学生只能选取一个老师。
  3. 多对一联系(同上项理)
  4. 多对多联系在这里插入图片描述
    应当注意到,没有声明全参与时,一名导师可能不教导学员,一名学生也可能不会选取导师(适用于以上任何一种情况

参与约束

  • 全参与(Total participation ):双线,表示某个实体集的所以元素都参加了对应的关系集
  • 部分参与(partial participation):与之相反
    在这里插入图片描述
  • 其他用于表示的方法:在线段上添加数字:
    如下图:
    导师的线段上标注了其对应的学生是0~ + ∞ +\infty +,其中以0为下限意味着instructor之于advisor是部分参与,而没有上限意味着导师1个导师可以对应多个学生(但这并不意味着整个关系是1对多);而学生部分以1为下限意味着学生必须是全参与,又以1为上线意味着1名学生有且仅有1位导师,它和之前的条件共同确定了整个关系是个1对多关系。
    在这里插入图片描述

将非二元关系转化为二元关系形式

有些关系集本身并不能切分成若干个二元关系集,如
在这里插入图片描述
导师指导学生进行某个项目的相关工作,这很难分为若干个二元关系集而不损失本身的性质,所以需要一些技术进行转换。
另一个例子:在这里插入图片描述
图中存在一个四元的关系集,而上面的方法没有强行分解四元集,而是以course为中心,建立三个二元关系将实体集串联起来。
可以看到,这种问题的通式是从实体集中寻找有代表性者,或者创建一个新的鉴别性的实体集,之后以它为中心构建连接其他实体集的二元关系集,另一种想法如下:
在这里插入图片描述

弱实体集

弱实体集指不存在主键的实体集。

这样的集合是有意义的,因为对于一些实体,他们的任何属性都有可能重复出现,如section(sec_id,semester,year),对于某项课程,课程在不同学期和学年都可能开课,而学期和学年更是会大量重复的属性。但是这三个属性却又唯一确定一门课程,此时需要引入与弱实体集和标识实体集相关的内容来表示这样的关系。
可以明确的是,所有弱实体集都依托于某个其他实体而存在,我们称之为标识实体集(identifying entityset),他们通过标识性关系(identifying relationship)连接,这一关系集的性质如下:

  • 弱实体集一侧是全参与
  • 是一对多的关系,一条标识实体集中的元组可能对应多条弱实体集中的元组
  • 弱实体集中存在分辨符(discriminator)或部分码(partial key)
    部分码的存在是由对应的标识实体集决定的,部分码可以唯一确定对应于标识实体集的一条唯一记录(在上述section例子中,section的三个属性一同构成了部分码),这也意味着标识实体集的主键+部分码才构成了弱实体集的主键。
    示意图如下:
    在这里插入图片描述

扩展的实体-关系特性

实体集的层次(stratum)

层序结构以为着两种字面意义上的操作:

  1. 具体化(Specialization):类似于类继承操作,子实体从高级实体继承属性并添加自己的属性,他们能参加高级实体参加的关系,但也参加高级实体无法参加的关系
    在这里插入图片描述
  2. 泛化(Generalization):自底向上的过程,类似于从类似的类中抽象出接口/父类

事实上,具体化与泛化仅仅只是简单的互逆操作。我们往往用可交性来描述这样的层序结构:在这里插入图片描述
我们可以用disjoint对一个泛化模型进行描述,来表示它的泛化子集不会有重叠;如果没有disjoint,则意味着可能有重叠。
和关系集一样,泛化操作也有完全参与与部分参与之分,完全泛化也使用双线表示在这里插入图片描述

E-R模型标记总结:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值