前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试512】若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是?()

【DB笔试面试512】若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是?()

作者头像
小麦苗DBA宝典
发布2019-09-29 14:58:58
4.5K0
发布2019-09-29 14:58:58
举报

题目部分

若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是?()

A、一对一

B、一对多

C、多对一

D、多对多

答案部分

本题中的关系可以使用如下的图形来表示:

所以,本题的答案为B。

实体-联系模型简称E-R模型(Entity-Relationship Model),其图形称为实体-联系图(Entity-Relationship Diagram),简称ERD。

E-R模型是人们描述数据及其联系的概念数据模型,是数据库应用系统设计人员和普通非计算机专业用户进行建模和沟通与交流的有力工具。它使用起来非常直观易懂、简单易行。在进行数据库应用系统设计时,首先要根据用户需求建立需要的E-R模型,然后再建立与计算机数据库管理系统相适应的逻辑数据模型和物理数据模型,最后才能在计算机系统上安装、运行数据库。

E-R模型是一种用图形表示数据及其联系的方法,所使用的图形构件包括矩形、菱形、椭圆形和连接线等内容。其中,矩形表示实体,矩形框内写上实体名。菱形表示联系,菱形框内写上联系名。椭圆形表示属性,椭圆形框内写上属性名。连接线表示实体、联系与属性之间的所属关系,或实体与联系之间的相连关系。

当采用E-R方法进行数据库概念设计时,可以分成3步进行:首先,设计局部E-R模式,然后把各局部E-R模式综合成一个全局的E-R模式,最后对全局E-R模式进行优化,得到最终的E-R模式,即概念模式。

E-R图向关系模型的转换一般遵循如下原则:

1、一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。

例如,学生实体可以转换为如下关系模式,其中,学号为学生关系的码:

学生(学号,姓名,出生日期,所在系,年级,平均成绩),同样,性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。

2、一个联系转化为一个关系模式,与该联系相连的各实体的码以及联系的属性转化为关系的属性,该关系的码有如下三种情况:

v 若联系为1:1,则每个实体的码均是该关系的候选码。

v 若联系为1:n,则关系的码为n端实体的码。

v 若联系为m:n,则关系的码为诸实体码的组合。

下面分别来讲解这3种情况:

① 联系为1:1

一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

a. 如果转换为一个独立的关系模式,那么与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。

b. 如果与某一端对应的关系模式合并,那么需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。

例如,“管理”联系为1:1联系,可以将其转换为一个独立的关系模式:

管理(职工号,班级号)或管理(职工号,班级号)

“管理”联系也可以与班级或教师关系模式合并。如果与班级关系模式合并,那么只需在班级关系中加入教师关系的码,即职工号:

班级:(班级号,学生人数,职工号)

同样,如果与教师关系模式合并,那么只需在教师关系中加入班级关系的码,即班级号:

教师:(职工号,姓名,性别,职称,班级号,是否为优秀班主任)

② 联系为1:n

一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

a. 如果转换为一个独立的关系模式,那么与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

b. 如果与n端对应的关系模式合并,那么在n端实体对应模式中加入1端实体所对应关系模式的码,以及联系本身的属性。而关系的码为n端实体的码。

例如,“组成”联系为1:n联系,将其转换为关系模式。

一种方法是使其成为一个独立的关系模式:

组成(学号,班级号)

学号与班级号共同构成了“组成”关系的码。另一种方法是将其学生关系模式合并,这时学生关系模式为:

学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)

后一种方法可以减少系统中的关系个数,一般情况下更倾向于采用这种方法。

③ 联系为m:n

一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

例如,“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中,学号与课程号为关系的组合码:

选修(学号,课程号,成绩)

三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

例如,“讲授”联系是一个三元联系,可以将它转换为如下关系模式,其中,课程号、教师号和书号为关系的组合码:

讲授(课程号,教师号,书号)

3、同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。

例如,如果教师实体集内部存在领导与被领导的1:n自联系,那么可以将该联系与教师实体合并,这时主键职工号将多次出现,但作用不同,可用不同的属性名加以区分,例如在合并后的关系模式中,主键仍为职工号,再增设一个“系主任”属性,存放相应系主任的职工号。

4、具有相同码的关系模式可合并。

为了减少系统中的关系个数,如果两个关系模式具有相同的主键,那么可以考虑将它们合并为一个关系模式。合并方法是将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。

假如有一个“拥有”关系模式:拥有(学号,性别)

有一个学生关系模式:学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)

这两个关系模式都以学号为码,可以将它们合并为一个关系模式,假设合并后的关系模式仍叫学生:

学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩)

按照上述4条原则,学生管理子系统中的18个实体和联系可以转换为下列关系模型:

l 学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩,档案号)

l 性别(性别,宿舍楼)

l 宿舍(宿舍编号,地址,性别,人数)

l 班级(班级号,学生人数)

l 教师(职工号,姓名,性别,职称,班级号,是否为优秀班主任)

l 教学(职工号,学号)

l 课程(课程号,课程名,学分,教室号)

l 选修(学号,课程号,成绩)

l 教科书(书号,书名,价钱)

l 教室(教室编号,地址,容量)

l 讲授(课程号,教师号,书号)

l 档案材料(档案号,......)

该关系模型由12个关系模式组成。其中,学生关系模式包含了“拥有”联系、“组成”联系、“归档”联系所对应的关系模式;教师关系模式包含了“管理”联系所对应的关系模式;宿舍关系模式包含了“住宿”联系所对应的关系模式;课程关系模式包含了“开设”联系所对应的关系模式。

本文选自《数据库程序员面试笔试宝典》,作者:李华荣。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档