【专业课学习】《数据库原理》第五章习题

137 阅读5分钟

91461486_p0.jpg

5.1 在E-R图中,如果有10个实体,9个联系,其中1:1、1:n和n:m联系均为3个,则把E-R图转换为关系模型后,关系模式的理想个数是多少个。

每个实体需要一个单独的表来记录,因此首先需要10个表(关系模式)。

一对一和一对多联系不需要新建额外的表。

多对多联系需要新建一张额外的表来记录关系,因此还需要3张表。

综上,共需要13个表(关系模式)。

5.2 在蓝天物流数据库BlueSky中,需要管理供应商、项目、零件、仓库和职工的相关信息及其应用

需求如下:

(1)供应商信息包括商号、商名、城市和电话等。

(2)项目信息包括项目号、项目名、单位和负责人等。

(3)仓库信息包括仓库号、面积和电话等。

(4)零件信息包括零件号、名称、规格和单价。

(5)职工信息包括工号、姓名、年龄和职称。

(6)一个供应商可以供应多个项目的多个零件,一个项目可以接收多个供应商的多个零件,接收供应的零件后,需要给出供应量。

(7)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,同时给出仓库存放零件的库存量。

(8)一个仓库聘用多个职工,一个职工只能在一个仓库工作,同时签约合同期限;职工之间具有领导与被领导关系,领导需要添加职务补助。

要求绘制BlueSky的E-R图,并转换为相应的关系模式,同时指明主键和外键。

E-R图如下:

微信图片_20231103235538.jpg

关系模式分析如下:

(1) 首先不考虑表之间的联系,先为各个实体建表

供应商(商号,商名,城市,电话)供应商(\underline{商号} , 商名, 城市, 电话)

项目(项目号,项目名,单位,负责人)项目(\underline{项目号}, 项目名, 单位, 负责人)

仓库(仓库号,面积,电话)仓库(\underline{仓库号}, 面积, 电话)

零件(零件号,名称,价格,规格,单价)零件(\underline{零件号}, 名称, 价格, 规格, 单价)

职工(工号,姓名,年龄,职称)职工(\underline{工号}, 姓名, 年龄, 职称)

(2) 建立多对多表

供应(商号~,项目号~,零件号~,供应量)供应(\underline{\widetilde{商号}, \widetilde{项目号}, \widetilde{零件号}}, 供应量)

存放(仓库号~,零件号~,库存量)存放(\underline{\widetilde{仓库号}, \widetilde{零件号}}, 库存量)

(3) 修改实体表,采用归并到多端实体的方式,归并不同表之间一对一或一对多关系

职工(工号,姓名,年龄,职称,仓库号~,合同期限)职工(\underline{工号}, 姓名, 年龄, 职称, \widetilde{仓库号}, 合同期限)

(4) 采用归并到多端实体的方式,处理同一张表内的自联系关系

职工(工号,姓名,年龄,职称,仓库号~,合同期限,领导上司~,职务补助)职工(\underline{工号}, 姓名, 年龄, 职称, \widetilde{仓库号}, 合同期限, \widetilde{领导上司}, 职务补助)

"领导上司"字段为一个链接到本表"工号"字段的外键,其意义表示当前职工的领导上司的工号是多少。

综合(1)(2)(3)(4),最终得到的关系模式如下:

供应商(商号,商名,城市,电话)供应商(\underline{商号} , 商名, 城市, 电话)

项目(项目号,项目名,单位,负责人)项目(\underline{项目号}, 项目名, 单位, 负责人)

仓库(仓库号,面积,电话)仓库(\underline{仓库号}, 面积, 电话)

零件(零件号,名称,价格,规格,单价)零件(\underline{零件号}, 名称, 价格, 规格, 单价)

职工(工号,姓名,年龄,职称,仓库号~,合同期限,领导上司~,职务补助)职工(\underline{工号}, 姓名, 年龄, 职称, \widetilde{仓库号}, 合同期限, \widetilde{领导上司}, 职务补助)

供应(商号~,项目号~,零件号~,供应量)供应(\underline{\widetilde{商号}, \widetilde{项目号}, \widetilde{零件号}}, 供应量)

存放(仓库号~,零件号~,库存量)存放(\underline{\widetilde{仓库号}, \widetilde{零件号}}, 库存量)

5.3 在运输公司数据库TranInfo中,需要管理车队、车辆和司机的基本信息。即:

(1)车队信息包括车队号、车队名和人数等。

(2)车辆信息包括车号、厂家和出厂日期等

(3)司机信息包括司机号、姓名和电话等。

要求:

车队与司机之间存在聘用联系,每个车队可聘用多个司机,但是每个司机只能应聘于一个车队,车队聘用司机有个聘期;

车队与车辆之间存在拥有联系,每个车队拥有多辆汽车,但是每辆车只能属于一个车队;

司机与车辆之间存在着驾驶联系,司机驾驶车辆有驾驶里程,每个司机可以驾驶多辆汽车,每辆汽车可以被多个司机驾驶。

完成如下任务:

(1)绘制TranInfo的E-R图。

微信图片_20231104001001.jpg

(2)把E-R图转换成关系模型,并标注主键和外键。

车队(车队号,车队名,人数)车队(\underline{车队号}, 车队名, 人数)

车辆(车号,厂家,出厂日期,车队号~)车辆(\underline{车号}, 厂家, 出厂日期, \widetilde{车队号})

司机(司机号,姓名,电话,车队号~)司机(\underline{司机号}, 姓名, 电话, \widetilde{车队号})

驾驶(车号~,司机号~,驾驶里程)驾驶(\underline{\widetilde{车号}, \widetilde{司机号}}, 驾驶里程)

5.4 在商品销售数据库ComInfo中,需要管理商品、商店和职工的相关信息为品号、品名、厂商、厂址、单价、数量;店号、店名、店址、电话;工号、姓名、性别、年龄、电话等。

要求:

一个商店可以销售多个商品,一个商品可以在多个商店销售,同时需要给出销量;

一个职工只能在一个商店工作,一个商店可以有多个职工,同时需要给出工资和聘期。

职工之间存在领导关系。

设计ComInfo的概念模型和逻辑模型。

概念模型:

微信图片_20231104005108.jpg

逻辑模型:

商品(品号、品名、厂商、厂址、单价、数量)商品(\underline{品号}、品名、厂商、厂址、单价、数量)

商店(店号、店名、店址、电话)商店(\underline{店号}、店名、店址、电话)

职工(工号、姓名、性别、年龄、电话,店号~,工资,聘期,领导上司~)职工(\underline{工号}、姓名、性别、年龄、电话, \widetilde{店号}, 工资, 聘期, \widetilde{领导上司})

销售(品号~,商号~,销量)销售(\underline{\widetilde{品号}, \widetilde{商号}}, 销量)

5.5 设计图书流通数据库CirBook,用于管理学生、管理员、图书和书库的流通业务,要求满足学生借阅图书、书库存放图书、管理员管理书库中的图书等。

建立CirBook的概念模型(E-R图)和逻辑模型,并标注主键和外键。

由于题目没有给出更多的信息,在此处为方便起见,我将"图书"表中的一条记录定义为一本具体的书(如具体的一本编号为001的《西游记》),而不是名称相同的一堆书(好几本名称都叫《西游戏》的书的统称)。

并且我假设同一个管理员只能管理一个书库,同一个书库可被多个管理员管理。

E-R图如下:

微信图片_20231104004015.jpg

关系模型如下:

学生(学号,姓名)学生(\underline{学号}, 姓名)

图书(书号,书名,借阅者~,书库~)图书(\underline{书号}, 书名, \widetilde{借阅者}, \widetilde{书库})

书库(库号)书库(\underline{库号})

管理员(工号,姓名,书库~)管理员(\underline{工号}, 姓名, \widetilde{书库})

5.6 熊猫集团拥有多个连锁商场,需要构建一个数据库系统,管理如下相关业务:

(1)商场需要记录的信息包括商场编号(不能重复)、商场名称、地址和联系电话。

(2)每个商场包含不同的部门,部门需要记录的信息包括部门编号(不同商场的部门编号不同)、部门名称、位置分布和联系电话。

(3)每个部门雇用了多名员工处理日常事务,每名员工只能属于一个部门。员工需要记录的信息包括员工编号、姓名、岗位、电话号码和工资。

要求完成如下任务:

(1)根据需求分析阶段收集的信息,设计系统的E-R图。

微信图片_20231104011314.jpg

(2)把系统的E-R图转化为理想的关系模式,并标注主键和外键。

商场(商场编号,商场名称,地址,联系电话)商场(\underline{商场编号}, 商场名称, 地址, 联系电话)

部门(部门编号,部门名称,位置分布,联系电话,商场编号~)部门(\underline{部门编号}, 部门名称, 位置分布, 联系电话, \widetilde{商场编号})

员工(员工编号,姓名,岗位,电话号码,工资,部门编号~)员工(\underline{员工编号}, 姓名, 岗位, 电话号码, 工资, \widetilde{部门编号})