1. 需求分析
(1)基本实体集:工程项目,项目经理,用户,项目文档,项目材料,使用。
(2)属性:工程项目(项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号#、用户编号#)
项目经理(工号、XX、性别、出生年月、 ) 用户(用户编号、用户单位、地址、 、联系人)
项目文档(文档编号、项目合同号#、文档形式、归档时间、内容概述)
项目材料(材料编号、材料名、材料报价、数量) 使用(材料编号、项目合同号、使用日期、使用数量) (3)实体间的__一个工程项目有一个项目文档,
每个工程项目用不同的项目材料。一个用户可以拥有多个使用。一个项目经理管理多个工程项目。
(4)存在的__
用户与工程项目之间有拥有关系,一对多。 项目经理与工程项目有管理关系,一对多。 工程项目与项目文档有属于关系,一对多。 工程项目与项目材料有使用关系,多对多
.
(1) 数据项:用户编号 含义说明:唯一标识每个用户 别名:无 类型:字符型 长度:5
取值范围:00000至99999 取值含义:按顺序定义。 (2) 数据项:文档编号 含义说明:唯一标识每个文档 别名:无 类型:字符型 长度:5
取值范围:00000至99999 取值含义:按顺序定义。 (2)数据结构:工程项目
含义说明:是工程项目管理系统的主体数据结构,定义了一个工程项目的有关信息
组成:项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号、用户编号
(3) 数据项:材料编号 含义说明:唯一标识每个编号
.
别名:无 类型:字符型 长度:5
取值范围:00000至99999 取值含义:按顺序定义。 (2)数据结构:工程项目
含义说明:是工程项目管理系统的主体数据结构,定义了一个工程项目的有关信息
组成:项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号、用户编号
2. 概念结构设计
3. 逻辑结构设计
.
工程项目(项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号#、用户编号#)
项目经理(工号、XX、性别、出生年月、 ) 用户(用户编号、用户单位、地址、 、联系人)
项目文档(文档编号、项目合同号#、文档形式、归档时间、内容概述)
项目材料(材料编号、材料名、材料报价、数量) 使用(材料编号、项目合同号、使用日期、使用数量)
4. 物理设计 字段名 工号 XX 性别 出生日期
5. 代码任务
a) 创建数据库代码
CREATEDATABASE [工程项目管理系统] b) 创建各个表代码
.
类型 Char Char Char Char Char 字节数 9 20 2 20 11 索引 主键 说明 员工编号 年龄的定义 联系方式 CREATETABLE 工程项目( 项目合同号char(5), 项目名称char(50), 使用工时char(50), 报交日期char(50), 付款规定char(50), 工程总额char(50), 工号char(9),
用户编号char(9)); CREATETABLE 使用( 材料编码char(50), 项目合同号char(5), 使用日期char(50), 使用数量char(50)); CREATETABLE 项目材料( 材料编码char(50), 材料名char(50), 材料报价char(50), 数量char(50)); CREATETABLE 项目经理( 工号char(9),
XXchar(20),
.
性别char(2), 出生年月char(20), char(11));
CREATETABLE 项目文档( 文档编号char(9), 项目合同号char(5), 文档形式char(50), 归档时间char(50), 内容概述char(50)); CREATETABLE 用户
用户编号char(9), 用户单位char(50), 地址char(50), char(11), 联系人char(50)); c) 创建约束要求: 1.每个表创建主键 altertable 工程项目
addconstraint pk_工程项目primarykey(项目合同号);;
altertable 使用
addconstraint pk_使用primarykey(材料编码,项目合同号,使用日
.
期);
altertable 项目材料
addconstraint pk_项目材料primarykey(材料编码);
altertable 项目经理
addconstraint pk_项目经理primarykey(工号);
altertable 项目文档
addconstraint pk_项目文档primarykey(文档编号);
altertable 用户
addconstraint pk_用户primarykey(用户编号); 2.工程项目表创建外键(用户号#、工号#) altertable 工程项目
addconstraintfk_工程项目号)references [用户](用户编号);
altertable 工程项目
addconstraintfk_工程项目foreignkey (工号)references [项目经理](工号);
3.项目文档表创建外键(项目合同号#)
.
foreignkey (用户编
altertable 项目文档
addconstraintfk_项目文档
foreignkey (项目合同
号)references [使用](项目合同号);
4.使用表创建外键(材料编号、项目合同号) altertable 使用
addconstraint fk_使用foreignkey (材料编号)references [项目材料](材料编号); altertable 使用
addconstraint fk_使用foreignkey (项目合同号)references [项目文档](项目合同号);
5.工号属性创建检查约束(工号必须在00000-99999之间) altertable 工程项目
addconstraint c1 check (工号between 00000 and 99999);
6. 性别属性创建检查约束(只能取“男”或者“女”); altertable 项目经理
addconstraint c2 check (性别in('男','女')); 7.
altertable 项目经理
addconstraint c3 check ( betweenand);
.
altertable 用户
addconstraint c4 check ( betweenand); a) 创建视图要求
i. 创建一个视图,包括项目合同号、项目名称、使用工时、报交日期、用户编号#、归档时间、使用数量,并按照项目合同号升序排序 CREATEVIEW view1 as
select 工程项目.项目合同号,项目名称,使用工时,报交日期,用户编号,使用日期,使用数量 from 工程项目,使用
where 工程项目.项目合同号=使用.项目合同号; b) 创建触发器要求
i. 创建一个触发器,如果有用户要修改\"使用表\"中的材料编号,则显示一行字“禁止修改材料编号”。 ii. 创建一个触发器,如果有用户往“项目文档表”中插入数据,而该数据的项目合同号是“工程项目”表中没有的,先到“工程项目”表中插入此项目合同号。 c) 授权要求:
i. 给用户“工程师”授予对“工程项目”表的修改权限;给用户“员工”只授予对“工程项目”表的查询权,给“项目经理”授予所有表的查询权
.
d) 能实现的查询要求:
i. 查询项目合同号为10001项目的项目合同号、项目项目名称、归档时间、报交日期、工程总额;
ii. 查询项目经理叫刘利的项目工程的工程总额和材料编号;
iii. 查询项目名称为锅炉环保的项目的使用日期和使用数量
.
因篇幅问题不能全部显示,请点此查看更多更全内容