文档介绍:《数据库系统概论》习题课
天津科技大学计算机科学与信息工程学院
张贤坤
数据库设计
一、某学校要建立一套科研管理系统进行科研项目管理,在需求分析阶段获得的语义如下:每个项目的属性有项目编号、项目名称、项目来源、项目经费、开始时间、结束时间、完成情况等;每名教师的属性有教工号、教工姓名、所学专业、出生日期、职称、性别、所在学院等;每名教师可以承担多个项目,每个项目可以由多名教师承担,但每个项目总的经费要分配到每个承担该项目的教师名下。请完成下面三个问题:
(1)试设计 E-R 图,注明属性和联系类型。
(2)将 E-R 图转换为等价的关系模型(包括关系名,属性名和码)。
(3)指出以上各关系模式所达到的范式级别,如果不是第三范式的请转成第三范式,并给出理由。
数据库设计
数据库设计
(2)将 E-R 图转换为等价的关系模型(包括关系名,属性名和码)。
项目(项目编号、项目名称、项目来源、项目经费、开始时间、结束时间、完成情况)
教师(教工号、教工姓名、所学专业、出生日期、职称、性别、所在学院)
承担(项目编号、教工号、承担经费)
(3)指出以上各关系模式所达到的范式级别,如果不是第三范式的请转成第三范式,并给出理由。
全是第三范式,因为不存在传递依赖和部分函数依赖。
数据库操作
二、设有一个仓库管理系统的数据库,包括如下材料、车间及领用三个关系模式,属性分别如下:
(1)材料(材料编号,材料名称,类别,数量,用途)
(2)车间(车间编号,车间名称,车间负责人,联系方法)
(3)领用(车间编号,材料编号,数量,单价,日期)
英文对照如下(回答问题时属性名请用英文):
(1)Material(Mno, Mname, Category,Stock,Usage)
(2)Workshop(Wno,Wname,Manager, Contact)
(3)Consuming(Wno,Mno,Number,Price,Date)
语义如下:
(1)材料编号,材料名称,车间编号,车间名称不能为空;
(2)领用表中数量取值大于等于0,单价取值大于0;
请用SQL语句完成以下操作:
数据库操作
1、用SQL语句建立上述三个表。
数据库操作
2、针对上题中建立的3个表试用SQL语言完成如下查询和操作。
(1)查询领用数量大于10的材料编号及名称。
Select ,
From Material, Consuming
Where Number>10 and Material. Mno = Consuming. Mno
(2)查询编号为“201201001”的车间领用的材料名称为“螺丝”的领用日期。
Select Date
From Consuming, Material
Where Wno=′201201001′ and =′螺丝′ and =
数据库操作
2、针对上题中建立的3个表试用SQL语言完成如下查询和操作。
(3)查询领用“螺丝”的所有车间名称。
Select Wname
From Material,Workshop,Consuming
Where Mname=’螺丝’and = and =
(4)删除数据库中车间编号为“201201001”的所有记录。
Delete from Consuming where Wno=′201201001′
Delete from Workshop where Wno=′201201001′
(5)插入一条领用记录(‘201201010’,‘101001001’,12,10)。
Insert into Consuming(Wno,Mno,Number,Price) values(‘201201010’,‘101001001’,12,10)
数据库操作
三、创建一个带参数的存储过程,根据输入的车间名称显示该车间的材料领用情况,其中数量大于50的显示“业务量大”,数量小于10的显示为“业务量较小”,其它显示“业务量一般”。
数据库操作
四、定义一个触发器,领用表中增加记录时自动将新增记录的日期设定为当前日期。
CREATE TRIGGER Insert_ Consuming
BEFORE INSERT ON Consuming
FOR EACH ROW
AS BEGIN
Date=Date
END;