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