当前位置:文档之家› 数据库技术与应用-测试题答案

数据库技术与应用-测试题答案

1、某企业有工厂若干,每个工厂可生产多种产品,且每一种产品可以在多个工厂生产,每
个工厂按照固定的计划数量生产产品,计划数量不低于300,;每个工厂聘用多名职工,每名职工仅能在一个工厂内工作,工厂聘用职工时商定聘期和工资。

工厂具有工厂编号、厂名、地址等信息,并且每个工厂的编号都是唯一的,在创建工厂的相关信息时,厂名、地址等信息都必须存在,不可缺;每个产品则有产品编号、产品名、规格的规定,产品的编号和产品名都不能有重复;职工都有职工号、姓名、技术等级的指标。

请:
(1)对该企业进行概念设计,画出E-R图。

21’ 每点1分
(2)E-R图转化成关系模式4*3’,并指出每个关系模式的主键4*1’和外键3*1’。

(3)创建工厂表10’、产品表10’。

约束每个2分,其他各点每点1分
(4)创建工厂和产品之间关联关系的表15’;修改创建的表,给该表添加属性——合格率6’;删除创建的表4’。

(5)查找1号工厂的所有职工的工资并按职工号排序6’。

(6)查找职工数目大于2000的工厂,以(工厂编号,职工数量)的形式显示10’。

(1)&(2)
(3) 仅作参考,除了约束条件外,其他均可自己设置
Create table 工厂(
工厂编号int primary key,
厂名varchar(50) not null,
地址varchar(50) not null
)
Create table 产品(
产品号int primary key,
产品名varchar(50) unique,
规格varchar(50)
)
(4) 这个外码的属性应该根据前面的表格来,这个地方没有太规定Create table 生产1’
(
工厂编号int not null, 1’
产品号int not null,1’
数量int 1’ check(数量>=300)2’,
Primary key(工厂编号,产品号), 3’
Foreign key (工厂编号) references 工厂2’ on delete cascade 1’,
Foreign key (产品号) references 产品2’on delete restrict 1’,
)
Alter table 2’生产add 2’合格率varchar(10) 1’完整性1’
Drop table 生产4’
(5)每点2分
Select 职工号,工资from 职工
where 工厂编号=1
order by 职工号
(若学生的工厂编号设置属性为char时,1应该要打引号,此处一般没扣分)
(6) 完整性2’
Select 工厂编号,count(*) 职工数量2’ from 职工
group by 工厂编号3’
having count(*)>2000 3’。

相关主题