课程设计文档模板部分1.docx
《课程设计文档模板部分1.docx》由会员分享,可在线阅读,更多相关《课程设计文档模板部分1.docx(27页珍藏版)》请在冰豆网上搜索。
课程设计文档模板部分1
《数据库系统》课程设计
--XXXXXXXX系统设计与开发
班级:
学号:
姓名:
2018年XXXX月XXXX日
目录
一、系统需求分析1
(一)需求概述1
(二)业务流分析1
(三)数据流分析3
(四)数据字典4
二、数据库概念结构设计5
(一)实体分析5
(二)属性分析5
(三)联系分析7
(四)概念模型分析(.PDM图)8
三、数据库逻辑逻辑结构设计8
(一)概念模型转化为逻辑模型8
1.一对一关系的转化8
2.一对多关系的转化8
3.多对多关系的转化9
(二)逻辑模型设计(.PDM图)9
四、数据库物理实现9
(一)表设计9
(二)创建表和完整性约束代码设计11
(三)创建视图、索引、存储过程和触发器13
1.创建视图13
2.创建索引14
3.创建存储过程14
五、数据库功能调试14
(一)职工管理模块14
1.查询职工信息15
2.查询职工所在单位信息15
3.查询职工所属工程信息15
(二)工程负责人管理模块15
1.查询工程信息16
2.查询工程所需设备信息16
3.查询工程供应商信息16
4.查询参与工程的职工信息16
(三)系统管理员管理模块17
1.对单位的信息管理17
2.对职工的信息管理18
3.对供应商的信息管理19
4.对工程的信息管理19
5.对设备的信息管理20
6.对供应关系的信息管理21
六、设计总结22
一、系统需求分析
(一)需求概述
本次课程设计的题目是工程管理系统,系统内容要求是:
某企业有多个下属单位,每一单位有多个职工,一个职工仅隶属于一个单位;且一个职工仅在一个工程中工作,但一个工程中有很多职工参加工作;有多个供应商为各个工程供应不同设备。
系统的使用者分为管理人员和普通用户。
他们对该数据库系统有不同的操作:
管理人员:
可以对单位的职工信息进行删除和添加操作,也可以设置职工的工资,作为发放资金的凭证;可以在单位更换单位经理时进行信息的更改;可以在有新的工程开发时,对工程信息进行添加,包括该工程的供应商有哪些,所需设备有哪些,每种设备的数量是多少;在工程竣工时,进行工程信息的删除。
总之,管理人员可以对数据库系统进行增加、删除、更新、查询。
普通用户:
普通用户可以根据单位号找到该单位的经理和联系电话;也可以根据职工的号码来找到该职工所对应的单位、所属工程、职务、工资;可以通过查询工程号得到该工程的信息以及工程所需要的设备都有哪些供应商为之供应。
总之,普通用户可以对数据库系统进行查询操作。
(二)业务流分析
从职工角度:
从工程分责人角度:
从管理员角度:
(三)数据流分析
(四)数据字典
数据项:
数据项名
含义说明
数据类型
长度
取值范围
数据项联系
单位编号
区别单位
char
4
0001-9999
一个产品号对应一个产品名
单位名称
区别单位
vchar
20
一个产品名对应一个产品号
电话
标注单位
Char
11
一个单位有一个联系电话
职工编号
标注职工
Char
4
0001-9999
一个职工号对应一个职工名
职工名称
标注职工
vchar
20
一个职工名对应一个职工号
性别
区分男女
char
2
“男”或“女”
职务
区分职员
char
2
“职员”或“经理”
工资
Int
6
1-999999
工程编号
标注工程
Char
4
0001-9999
一个工程号对应一个工程名
工程名称
标注工程
vchar
20
一个工程名对应一个工程号
地址
工程地址
vchar
20
设备编号
标注设备
char
4
0001-9999
一个设备号对应一个设备名
设备名称
标注设备
vchar
20
一个设备号对应一个设备名
单价
统一单价
Int
4
1-9999
供应商编号
标注供应商
char
4
0001-9999
一个供应商号对应一个供应商名称
供应商名称
标注供应商
vchar
20
一个供应商名对应一个供应商号
电话
供应商电话
char
11
地址
供应商地址
vchar
20
数量
供应商提供的设备数量
int
4
一个工程所需的设备有多个供应商提供
数据结构:
数据结构名
含义名
组成
单位
单位信息
单位编号、单位名称、电话、单位经理
职工
职工信息
职工编号、姓名、性别、职务、工资
供应商
供应商信息
供应商编号、供应商名称、电话、地址
设备
设备信息
设备编号、设备名称、单价
工程
工程信息
工程编号、工程名称、地点
供应
工程所需设备及对应的供应商
供应商编号、设备号、工程号、数量
数据流:
数据流名
数据流来源
数据流去向
组成
单位信息管理
企业下属各单位
单位负责人
单位信息
职工信息管理
职工
单位负责人
职工信息
设备信息管理
供应商提供
设备登记表
设备信息
工程信息管理
工程信息表
工程负责人
工程信息
供应商信息管理
供应商
供应商信息表
供应商信息
供应信息管理
供应商
设备
供应信息
数据存储:
数据存储名
输入的数据流
输出的数据流
组成
职工信息表
职工信息
单位信息
职工信息
职工信息
单位信息
设备登记表
设备信息
设备信息
供应信息
设备信息
供应信息
设备使用登记表
设备信息
工程信息
设备信息
工程信息
供应信息
设备信息
工程信息
供应信息
供应商登记表
供应商信息
供应信息
供应商信息
供应信息
二、数据库概念结构设计
(一)实体分析
经需求分析,本次课程设计中包含五个实体,他们分别是:
单位实体、职工实体、工程实体、设备实体、供应商实体。
(二)属性分析
单位实体属性:
单位编号、单位名称、电话。
如下:
职工实体属性:
职工编号、姓名、性别、职务、工资。
如下:
设备实体属性:
设备编号、设备名称、单价。
如下:
供应商实体属性:
供应商编号、供应商名称、电话、地址。
如下:
工程实体属性:
工程编号、工程名称、地点。
如下:
(三)联系分析
一个普通职工只属于一个单位,但一个单位有多个职工,职工与单位之间的联系是多对一的联系;一个职工只能参加一项工程,一项工程需要多个职工参与,职工与工程的关系是多对一的关系;多个供应商给多个工程供应多个设备,供应商与工程的关系是多对多,工程与设备的关系是多对多;
E-R图分析如下:
(四)概念模型分析(.PDM图)
在经过需求分析和实体属性的分析,以及各实体之间的关系,最终得到概念模型如下:
三、数据库逻辑逻辑结构设计
(一)概念模型转化为逻辑模型
1.一对一关系的转化
在工程管理系统中没有一对一关系的转化
2.一对多关系的转化
一个职工只属于一个单位,但一个单位有多个职工。
一个职工只能参加一项工程,一项工程需要多个职工参与。
职工(职工编号(主键)、工程编号(外键)、单位编名(外键)、姓名、性别、职务、工资)
3.多对多关系的转化
多个供应商给多个工程供应多个设备,供应商与工程的关系是多对多。
设备(设备编名(主键)、设备号、单价)
供应商(供应商编号(主键)、供应商名称、电话)
工程(工程编号(主键)、工程名、地点)
供应(供应商编号(主键/外键)、工程编号(主键/外键)、设备编号(主键/外键)、数量)
(二)逻辑模型设计(.PDM图)
四、数据库物理实现
(一)表设计
1.单位信息表设计
字段名称
字段解释
数据类型
备注
dNo
单位编号
char(4)
主键
dName
单位名称
vchar(20)
非空
dTele
电话
char(11)
唯一性
2.职工信息表设计:
字段名称
数据类型
长度
备注
订单号
char
4
主键,标识
订单客户
varchar
8
外键
订单状态
char
4
订购日期
datetime
默认
notnull
订购总价
int
4
notnull
订单书名
char
20
Notnull
3.设备信息表设计:
字段名称
数据类型
长度
备注
管理员ID
char
10
主键
姓名
varchar
8
notnull
登录密码
char
12
notnull
4.供应商信息表设计:
字段名称
数据类型
长度
备注
供应ID
int
4
主键,标识
供应书号
int
8
外键
供应厂号
int
4
外键
供应总数
int
4
notnull
5.工程信息表设计:
字段名称
字段解释
数据类型
备注
pNo
工程编号
char(10)
主键
pName
工程名称
vchar(20)
非空
pAddr
地址
vchar(20)
6.供应关系表设计:
字段名
数据类型
长度
备注
厂号
char
4
主键
厂名
varchar
20
notnull
联系人
varchar
6
notnull
电话
char
11
notnull
地址
char
20
notnull
(二)创建表和完整性约束代码设计
1.创建单位表及完整性约束:
CREATETABLEDepartment(
dNochar(4)primarykey,
dNamevarchar(20)NOTNULL,
dTelechar(11)uniquenotNULL,)
2.创建工程表及完整性约束:
CREATETABLEProject(
pNochar(4)primarykey,
pNamevarchar(20)notnull,
pAddrvarchar(20),)
3.创建职工表及完整性约束:
CREATETABLEofficer(
oNochar(4)primarykey,
oNamevarchar(20)uniquenotnull,
oSexchar(4)check(oSexin('男','女')),
oDutychar(10)check(oDutyin('职员','经理')),
salaryint,
pNochar(4),
dNochar(4),
foreignkey(pNo)referencesProject(pNo),
foreignkey(dNo)referencesDepartment(dNo),)
4.创建供应商表及完整性约束:
CREATETABLESupplier(
sNochar(4)primarykey,
sNamevarchar(20)notnull,
sAddrvarchar(20),
sTelechar(11)uniquenotnull,)
5.创建设备表及完整性约束:
CREATETABLEEquipment(
eNochar(4)primarykey,
eNamevarchar(20)notnull,
priceint,)
6.创建供应关系表及完整性约束:
CREATETABLESupply(
sNochar(4),
pNochar(4),
eNochar(4),
numint,
primarykey(sNo,pNo,eNo),
foreignkey(pNo)referencesProject(pNo),
foreignkey(sNo)referencesSupplier(sNo),
foreignkey(eNo)referencesEquipment(eNo),)
(三)创建视图、索引、存储过程和触发器
1.创建视图
(1)创建工程一的职工的信息的视图。
createviewP1
as
selectoNo,oName,dNo
fromofficer
WHEREpNo=1
(2)创建工程一所选供应商的信息的视图。
createviewP2
as
selectSupplier.sNo,sName,sAddr
fromSupplier,Supply
WHEREpNo=1andSupplier.sNo=Supply.sNo
2.创建索引
为改数据库中的Supply和officer两个表建立索引。
其中Supply表按照设备数量升序建立唯一索引。
Officer表按照职工工资升序建立唯一索引。
CREATEUNIQUEINDEXsupplynumonSupply(num);
CREATEUNIQUEINDEXofficesalonofficer(salary);
3.创建存储过程
(1)建立存储过程,输入职工号得到该职工的所有信息。
createprocedurezhigong
@officerNochar(4)
as
select*
fromofficer
whereofficer.oNo=@officerNo
(2)建立存储过程,输入工程号得到该工程需要的设备信息。
createprocedureshebei
@pNochar(4)
as
selectEquipment.eNo,eName,price
fromSupply,Equipment
whereSupply.eNo=Equipment.eNoandSupply.pNo=@pNo
五、数据库功能调试
(一)职工管理模块
1.查询职工信息
2.查询职工所在单位信息
3.查询职工所属工程信息
(二)工程负责人管理模块
1.查询工程信息
2.查询工程所需设备信息
3.查询工程供应商信息
4.查询参与工程的职工信息
(三)系统管理员管理模块
1.对单位的信息管理
1.1插入单位信息
1.2删除单位信息
1.3修改单位信息
2.对职工的信息管理
2.1插入职工信息
2.2删除职工信息
2.3修改职工信息
3.对供应商的信息管理
3.1插入供应商信息
3.2删除供应商信息
3.3修改供应商信息
4.对工程的信息管理
4.1插入工程信息
4.2删除工程信息
4.3修改工程信息
5.对设备的信息管理
5.1插入设备信息
5.2删除设备信息
5.3修改设备信息
6.对供应关系的信息管理
6.1插入供应关系信息
6.2删除供应关系信息
6.3修改供应关系信息
六、设计总结
通过这次课程设计,让我发现了很多问题。
虽说上了数据库上过管理信息系统等相关的课程,但是没有亲身经历过相关的设计工作细节。
还是有一定挑战的,其中存在许多困难,但是这次课程设计在考前对我来说也是一次很好的复习知识点的机会,在实践中我对于很多知识有了更进一步的了解,收获颇多。
通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。
同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。
在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。
从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。
亲身体验了一回系统的设计开发过程。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。
但是总的来说,完成的还可以,虽不能说很好,但我觉得我在这次课程设计中学到了很多,这就很不错了。