文档介绍:《数据库系统概论》习题课天津科技大学计算机科学与信息工程学院张贤坤数据库设计一、某学校要建立一套科研管理系统进行科研项目管理,在需求分析阶段获得的语义如下:每个项目的属性有项目编号、项目名称、项目来源、项目经费、开始时间、结束时间、完成情况等;每名教师的属性有教工号、教工姓名、所学专业、出生日期、职称、性别、所在学院等;每名教师可以承担多个项目,每个项目可以由多名教师承担, 但每个项目总的经费要分配到每个承担该项目的教师名下。请完成下面三个问题: (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;