数据库设计综合练习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库设计综合练习题及答案.
1、有一课程管理系统,有如下特点:一个系可开设多门课程,但一门课只在一个系部开设,一个学生可选修多门课程,每门课可供若干学生选
修,一名教师只教一门课程,但一门课程可有几名教师讲授,每个系聘用多名教师,但一个教师只能被一个系所聘用,要求这个课程管理系统能查到任何一个学生某门课程的成绩,以及这个学生的这门课是哪个老师所教的。
(1)请根据以上描述,绘制相应的E-R图,并直接在E-R图上注明实体名、属性、联系类型;
(2)将E-R图转换成关系模型,画出相应
的数据库模型图,并说明主键和外键。(3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式达到了第几范式。对这些关系模式进行规范化。
、参考答案:1.
n 1 属学生系部m
1
1
选开n 聘n
课程1 n
n m
开n 选k
教师
、设某汽车运输公司数据库中有三个实体集。2车队名等;属性有车队号、一是“车队”实体集,二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。车
队与司机之间存在“聘用”联系,每个车队
可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有“聘用开始时间”
和“聘期”两个属性;
车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;
司机与车辆之间存在着“使用”联系,司机使用车辆有“使用日期”和“公里数”两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。
(1)请根据以上描述,绘制相应的E-R图,
并直接在E-R图上注明实体名、属性、联系类型;
(2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。(3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式达到了第几范式。对这些关系模式进行规范化。
2、参考答案:
(1)E-R图设计如下:
车车聘用开车1
1
聘拥聘N N M N 司车辆使电司出使公
(2)转换成的关系模型应具有4个关系模式:
车队(车队号,车队名)
车辆(车牌照号,厂家,生产日期,车号)司机(司机编号,姓名,电话,车队号,聘用开始时间,聘期)
使用(司机编号,车辆号,使用日期,公里数)
3、设某商业集团数据库中有三个实体集。一是
“仓库”实体集,属性有仓库号、仓库名和地址等;二是“商店”实体集,属性有商店
号、商店名、地址等;三是“商品”实体集,属性有商品号、商品名、单价。
仓库与商品之间存在“库存”联系,每个仓库可存储若干种商品,每种商品存储在若干仓库中,库存有个“库存量”、“存入日期”属性;
商店与商品之间存在着“销售”联系,每个商店可销售若干种商品,每种商品可在若干商店里销售,每个商店销售一种商品有月份和月销售量两个属性;
仓库、商店、商品之间存在一个三元联系“供应”,反应了把某个仓库中存储的商品供应到某个商店,此联系有月份和月供应量两个属性。
(1)请根据以上描述,绘制相应的E-R图,并直接在E-R图上注明实体名、属性、联系类型;
(2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。
)分析这些关系模式中所包含的函数依赖,3(.
分析相应的关系模式达到了根据这些函数依赖,第几范式。对这些关系模式进行规范化。
、参考答案3图设计如下:(1)E-R仓仓地MM存入日月NNP商NM
月销(2)据转换规则, E-R图可转换成6个关系模式:
仓库(仓库号,仓库名,地址)
商品(商品号,商品名,单价)
商店(商店号,商店名,地址)
库存(仓库号,商品号,日期,库存量)
销售(商店号,商品号,月份,月销售量)月份,商品号,商店号,(仓库号,供应.
月供应量)
4.设有关系模式
R(职工名,项目名,工资,部门名,部门
经理)
如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理,一个部门有多个项目;每个部门只有一个经理。
①试写出关系模式R的函数依赖和关键码。
②说明R不是2NF模式的理由,并把R分
解成2NF模式集。
③进而把R分解成3NF模式集,并说明理由。
4、参考答案
⑴ R的基本函数依赖有三个:
(职工名,项目名)?工资
部门名?项目名
?部门经理部门名
部门?项目名经理
关键码为(职工名,项目名)。中存在下
列两个函数依赖:⑵根据⑴,R(部门?(职工名,项目名)?项目名
名)(部门?项目名?(职工名,项目名)经理)不是这两个函数依赖都是局部依赖,因此R 2NF模式。部门名, R1(项目名,R 应分解成两个模式:部门经理) R2(职工名,项目名,工资)模式。都是2NFR1和
R2模式,因为非主属性“工资”已是3NF⑶R2 已经完全依赖主键“职工名,项目名”中,
由于存在两个函数依赖:在R1 ?项目名部门名项目名?部门名 \ 部门经理部门名?不
即存在非主属性对主键的传递依赖,因此R1 模式。3NF是
部门(项目名,应分解成两个模式:R11对R1(部门名,部门经理),。这两个模式都R12名)是3NF模式。
因此,R分解成3NF关系模式集时,R={ R11,
R12,R2 }。
5、综合题
假设某商业集团数据库中有一关系模式R如下:R (商店编号,商品编号,销售价格,部门代码,负责人)
如果规定:(1) 每个商店的每种商品只在一个部门销售;
(2) 每个商店的每个部门只有一个负责人;