工程项目管理数据库系统设计.docx
- 文档编号:24731210
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:8
- 大小:29.44KB
工程项目管理数据库系统设计.docx
《工程项目管理数据库系统设计.docx》由会员分享,可在线阅读,更多相关《工程项目管理数据库系统设计.docx(8页珍藏版)》请在冰豆网上搜索。
工程项目管理数据库系统设计
工程项目管理系统数据库的设计要求
1.需求分析
(1)基本实体集:
工程项目,项目经理,用户,项目文档,项目材料,使用。
(2)属性:
工程项目(项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号#、用户编号#)
项目经理(工号、姓名、性别、出生年月、电话)
用户(用户编号、用户单位、地址、电话、联系人)
项目文档(文档编号、项目合同号#、文档形式、归档时间、内容概述)
项目材料(材料编号、材料名、材料报价、数量)
使用(材料编号、项目合同号、使用日期、使用数量)
(3)实体间的联系:
一个工程项目有一个项目文档,
每个工程项目用不同的项目材料。
一个用户可以拥有多个使用。
一个项目经理管理多个工程项目。
(4)存在的联系:
用户与工程项目之间有拥有关系,一对多。
项目经理与工程项目有管理关系,一对多。
工程项目与项目文档有属于关系,一对多。
工程项目与项目材料有使用关系,多对多
(1)数据项:
用户编号
含义说明:
唯一标识每个用户
别名:
无
类型:
字符型
长度:
5
取值范围:
00000至99999
取值含义:
按顺序定义。
(2)数据项:
文档编号
含义说明:
唯一标识每个文档
别名:
无
类型:
字符型
长度:
5
取值范围:
00000至99999
取值含义:
按顺序定义。
(2)数据结构:
工程项目
含义说明:
是工程项目管理系统的主体数据结构,定义了一个工程项目的有关信息
组成:
项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号、用户编号
(3)数据项:
材料编号
含义说明:
唯一标识每个编号
别名:
无
类型:
字符型
长度:
5
取值范围:
00000至99999
取值含义:
按顺序定义。
(2)数据结构:
工程项目
含义说明:
是工程项目管理系统的主体数据结构,定义了一个工程项目的有关信息
组成:
项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号、用户编号
2.概念结构设计
3.逻辑结构设计
工程项目(项目合同号、项目名称、使用工时、报交日期、付款规定、工程总额、工号#、用户编号#)
项目经理(工号、姓名、性别、出生年月、电话)
用户(用户编号、用户单位、地址、电话、联系人)
项目文档(文档编号、项目合同号#、文档形式、归档时间、内容概述)
项目材料(材料编号、材料名、材料报价、数量)
使用(材料编号、项目合同号、使用日期、使用数量)
4.物理设计
字段名
类型
字节数
索引
说明
工号
Char
9
主键
员工编号
姓名
Char
20
性别
Char
2
出生日期
Char
20
年龄的定义
电话
Char
11
联系方式
5.代码任务
a)创建数据库代码
CREATEDATABASE[工程项目管理系统]
b)创建各个表代码
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),
姓名char(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工程项目
addconstraintpk_工程项目primarykey(项目合同号);;
altertable使用
addconstraintpk_使用primarykey(材料编码,项目合同号,使用日期);
altertable项目材料
addconstraintpk_项目材料primarykey(材料编码);
altertable项目经理
addconstraintpk_项目经理primarykey(工号);
altertable项目文档
addconstraintpk_项目文档primarykey(文档编号);
altertable用户
addconstraintpk_用户primarykey(用户编号);
2.工程项目表创建外键(用户号#、工号#)
altertable工程项目
addconstraintfk_工程项目foreignkey(用户编号)references[用户](用户编号);
altertable工程项目
addconstraintfk_工程项目foreignkey(工号)references[项目经理](工号);
3.项目文档表创建外键(项目合同号#)
altertable项目文档
addconstraintfk_项目文档foreignkey(项目合同号)references[使用](项目合同号);
4.使用表创建外键(材料编号、项目合同号)
altertable使用
addconstraintfk_使用foreignkey(材料编号)references[项目材料](材料编号);
altertable使用
addconstraintfk_使用foreignkey(项目合同号)references[项目文档](项目合同号);
5.工号属性创建检查约束(工号必须在00000-99999之间)
altertable工程项目
addconstraintc1check(工号between00000and99999);
6.性别属性创建检查约束(只能取“男”或者“女”);
altertable项目经理
addconstraintc2check(性别in('男','女'));
7.电话属性创建检查约束(只能取-)
altertable项目经理
addconstraintc3check(电话betweenand);
altertable用户
addconstraintc4check(电话betweenand);
a)创建视图要求
i.创建一个视图,包括项目合同号、项目名称、使用工时、报交日期、用户编号#、归档时间、使用数量,并按照项目合同号升序排序
CREATEVIEWview1
as
select工程项目.项目合同号,项目名称,使用工时,报交日期,用户编号,使用日期,使用数量
from工程项目,使用
where工程项目.项目合同号=使用.项目合同号;
b)创建触发器要求
i.创建一个触发器,如果有用户要修改"使用表"中的材料编号,则显示一行字“禁止修改材料编号”。
ii.创建一个触发器,如果有用户往“项目文档表”中插入数据,而该数据的项目合同号是“工程项目”表中没有的,先到“工程项目”表中插入此项目合同号。
c)授权要求:
i.给用户“工程师”授予对“工程项目”表的修改权限;给用户“员工”只授予对“工程项目”表的查询权,给“项目经理”授予所有表的查询权
d)能实现的查询要求:
i.查询项目合同号为10001项目的项目合同号、项目项目名称、归档时间、报交日期、工程总额;
ii.查询项目经理叫刘利的项目工程的工程总额和材料编号;
iii.查询项目名称为锅炉环保的项目的使用日期和使用数量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工程项目 管理 数据库 系统 设计