资源描述
长 沙 学 院
课程设计阐明书
题目
工厂数据库管理系统
系(部)
数学与计算机科学
专业(班级)
软件2班
姓名
肖瑶
学号
指引教师
潘怡
起止日期
.6.15—.6.26
课程设计任务书
课程名称:数据库系统原理课程设计
设计题目:工厂数据库管理系统、销售订单数据库管理系统、汽车租赁管理系统、火车票预订管理系统(任选一题)。
已知技术参数和设计规定:
题目:工厂数据库管理系统
1、某工厂需建立一种管理数据库存储如下信息:
工厂涉及厂名和厂长名。
一种厂内有各种车间,每个车间有车间号、车间主任姓名、地址和电话。
一种车间有各种工人,每个工人有职工号、姓名、年龄、性别和工种。
一种车间生产各种产品,产品有产品号、产品名称和价格。
一种车间生产各种零件,一种零件也也许为各种车间制造。零件有零件号、重量和价格。
一种产品由各种零件构成,一种零件也可装配出各种产品。
产品与零件均存入仓库中。
厂内有各种仓库,仓库有仓库号、仓库主任姓名和电话。
2、系统功能基本规定:
按照一定条件查询、记录工人和产品等基本信息,能模仿工厂生产过程中对原材料(零件)、产品检测、库存环节管理。
各阶段详细规定:
1、需求分析阶段
l 定义数据项含义和取值
l 定义目的系统数据流
2、概念构造设计阶段
l 画出实体模型E-R图
3、逻辑构造设计阶段
l 将实体模型转化为关系模型
l 给出每个关系主核心字和函数依赖集
l 分析你所设计关系数据库模式与否属于3NF
4、物理设计阶段
l 拟定所有字段名称、类型、宽度、小数位数及完整性约束
l 拟定数据库及表名称及其构成
l 拟定索引文献和索引核心字
5、数据库安全及维护设计阶段
l 设计一种适合数据库安全方略(顾客身份认证、访问权限、视图)
l 为了实现复杂数据完整性约束,设计恰当触发器
l 设计一种适合数据库备份方略
6、实行阶段
l 规定所有操作必要在查询分析器中用SQL语句或系统存储过程完毕。
设计工作量:
(1)软件设计:完毕问题陈述中所提到所有需求功能。
(2)论文:规定撰写不少于3000个文字文档,详细阐明各阶段详细规定。
工作筹划:
安排两周时间进行课程设计,软件开发环节如下,第一周完毕1~4,第二周完毕5~8,论文同步进行;
1) 选定题目
2) 需求分析
3) 概念构造设计
4) 逻辑构造设计
5) 物理设计
6) 数据库安全及维护设计
7) 数据库上机实现
8) 答辩
筹划时间
指引教师
班级
15~16周
杨刚
13软件1班
15~16周
潘怡
13软件2班
15~16周
何可可
13软件3班
15~16周
刘刚钦
13软件4班
注意事项
n 提交文档
Ø 长沙学院课程设计任务书 (每学生1份)
Ø 长沙学院课程设计论文 (每学生1份)
Ø 长沙学院课程设计鉴定表 (每学生1份)
指引教师签名: 日期:
教研室主任签名: 日期:
系主任签名: 日期:
长沙学院课程设计鉴定表
姓名
肖瑶
学号
专业
软件工程
班级
2班
设计题目
工厂数据库管理系统
指引教师
潘怡
指引教师意见:
评估级别: 教师签名: 日期:
答辩小组意见:
评估级别: 答辩小组长签名: 日期:
教研室意见:
教研室主任签名: 日期:
系(部)意见:
系主任签名: 日期:
阐明
课程设计成绩分“先进”、“良好”、“及格”、“不及格”四类;
目 录
1、需求分析阶段 2
2、概念构造设计阶段 2
3、逻辑构造设计阶段 2
4、物理设计阶段 2
5、数据库安全及维护设计阶段 2
6、实行阶段 3
一、引言 7
1.1 编写目 7
1.2 参照资料 7
二、需求规约 7
2.1 业务描述 7
2.2 需求分析 7
三、数据库环境阐明 8
四、数据库命名规则 9
4.1 数据库对象命名规则 9
4.2 数据项编码规则 9
五、逻辑设计 10
5.1实体关系E-R图 10
5.2创立数据库系统关系模型 10
六、物理设计 13
6.1表汇总 13
6.2表 14
6.3存储过程、函数及触发器设计 19
七、总结 26
八、附件 27
一、引言
1.1 编写目
依照工人数据库管理系统建立一种数据库存储信息,建立实体并分析实体间关系通过SQL语言来实现此管理系统运用,模仿工厂生产过程中对零件、产品检测、库存环节管理。从而便于顾客详细理解整个工厂数据库管理系统。
1.2 参照资料
资料名称
作者
文献编号、版本
《数据库系统概论》
王珊、萨师煊
5月第4版
二、需求规约
2.1 业务描述
依照工人管理系统模仿生产过程,实现对零件生产、产品检测、库存管理。
2.2 需求分析
2.2.1 数据构造及数据关系
1.数据构造:
工厂 (厂名、厂长)
仓库 (仓库号、仓库主任姓名、电话)
车间 (车间号、车间主任姓名、地址、电话)
工人 (工号、姓名、年龄、性别、工种)
产品 (产品号、产品名称、价格、数量)
零件 (零件号、重量、价格、数量)
2.数据关系:
车间、工人与产品、零件有生产关系,工厂与车间、工厂与仓库、车间与工人有包括关系;产品与零件有构成关系,产品、零件与仓库有库存关系。工厂与车间为一对多关系,车间与工人为一对多关系,车间与产品为一对多关系,仓库与产品为一对多关系,仓库与零件为一对多关系,车间与零件为多对多关系,产品和零件为多对多关系,工厂与仓库为一对多关系。
2.2.2 功能分析
1.规定可以插入,管理并更新此系统车间数据、仓库数据、工人信息、产品信息及零件数据。生产产品用例规约如表2.1所示。
用例名称:
添加产品信息
角色:
工厂管理人员
用例阐明:
工厂生产新产品
前置条件:
进入软件功能选取页面
基本领件流:
1. 点击添加产品
2. 输入产品信息(产品号、产品名称、价格、数量)
3. 输入构成该产品零件信息(零件号、重量、价格、数量)
其她事件流:
该工厂不能生产其中一种零件,生产产品失败。
后置条件:
产品信息添加成功,工厂开始生产该产品
表2.1产品生产用例规约
2.规定具备完整查询功能。例如通过仓库号能查询到仓库主任姓名、联系电话等信息;通过车间号能查询到车间主任姓名、地址、联系电话通过产品号能查询到产品名称,产品价格等等;职工信息查询用例规约如表2.2所示。
用例名称:
查询职工信息
角色:
工厂管理人员
用例阐明:
主管调查人员劳动价值
前置条件:
进入软件功能选取页面
基本领件流:
1.选取要查询职工职工号
2.点击查询
其她事件流:
如果没有该职工号,则用况终结
后置条件:
显示该职工所有信息(姓名,年龄,性别,工种)
表2.2职工信息查询用例规约
三、数据库环境阐明
数据库实例
数据库系统
数据库布置环境
数据库设计工具
数据库存储位置
阐明
工人数据库管理系统
SQL server
硬件:2GB
内存:512M以上
网络环境:windows xp
Microsoft Office Visio 与SQL server
D盘根目录
查询、记录工人和产品基本信息,模仿工厂生产过程
四、数据库命名规则
4.1 数据库对象命名规则
数据库对象
命名规则
备注
表
功能描述字符串
例如:factory 工厂表
索引
index_功能描述字符串
例如:index_factory 工厂索引
触发器
trigger_功能描述字符串
例如:trigger_factory 工厂触发器
存储过程
procedure_功能描述字符串
例如:procedure_factory 工厂存储过程
4.2 数据项编码规则
数据项
数据类型
长度范畴
备注
厂名
char
20
Fname
厂长名
char
20
FMname
产品名
char
20
Proname
车间号
char
10
Wno
仓库号
char
10
Sno
职工号
char
10
Workno
产品号
char
10
Prono
零件号
char
10
Pno
电话
char
11
Phone
工种
char
20
Worktype
零件重量
Int
Pweight
零件价格
Int
Pmoney
零件数量
Int
Pquantity
五、逻辑设计
5.1实体关系E-R图
1
n
1
n
n
1
m
n
n
m
n
n
n
1
生产
1
1
包括
存储
包括
生产
性别
姓名
工人
工种
年龄
工号
厂长名
厂名
价格
主任编号
车间号
电话
地址
包括
工厂
仓库号
主任编号
存储
电话
仓库
重量
零件号
名称
价格
产品号
车间
构成
产品
零件
5.2创立数据库系统关系模型
1.工厂表数据信息
Factory
数据项名
含义
数据类型
约束
与否为空
Fname
厂名
Char(20)
Primary Key
Not NULL
FMname
厂长名
Char(20)
\
\
2.工人表数据信息
Worker
数据项名
含义
数据类型
约束
与否为空
Wono
职工号
char(10)
Primary key
NOT NULL
Woname
姓名
char(20)
\
\
Woage
年龄
smallint
\
\
Wosex
性别
char(10)
\
\
Wotype
工种
char(20)
\
\
Wno
车间号
char(10)
Foreign key
\
3.车间表数据信息
Workhome
数据项名
含义
数据类型
约束
与否为空
Wno
车间号
char(10)
Primary key
NOT NULL
WMno
车间主任编号
char(20)
\
\
Wadd
地址
char(20)
\
\
Wphone
电话
char(11)
\
\
Fname
厂名
char(20)
Foreign key
\
4.产品表数据信息
Product
数据项名
含义
数据类型
约束
与否为空
Prno
产品号
char(10)
Primary key
NOT NULL
Prname
产品名称
char(20)
\
\
Prmoney
产品价格
int
\
\
Prquantity
产品数量
int
\
\
Sno
仓库号
char(10)
Foreign key
\
Wno
车间号
char(10)
Foreign key
\
5.零件表数据信息
Part
数据项名
含义
数据类型
约束
与否为空
Pano
零件号
char(10)
Primary key
NOT NULL
Paweight
零件重量
int
\
\
Pamoney
零件价格
int
\
\
Paquantity
零件数量
int
\
\
Sno
仓库号
char(10)
Foreign key
\
6.仓库表数据信息
Storage
数据项名
含义
数据类型
约束
与否为空
Sno
仓库号
char(10)
Primary key
NOT NULL
SMno
仓库主任编号
char(20)
\
\
Sphone
电话
char(11)
\
\
7.生产表数据信息
Make
数据项名
含义
数据类型
约束
与否为空
Wno
车间号
char(10)
Primary key
NOT NULL
Pno
零件号
char(20)
Primary key
NOT NULL
Mtime
生产日期
varchar(20)
\
\
Mquantity
零件生产数量
int
\
\
8.构成表数据信息
Compose
数据项名
含义
数据类型
约束
与否为空
Prno
产品号
char(10)
Primary key
NOT NULL
Pano
零件号
char(10)
Primary key
NOT NULL
Cquantity
组装数
int
\
\
9.产品存储表数据信息
Store1
数据项名
含义
数据类型
约束
与否为空
Sno
仓库号
char(10)
Primary key
NOT NULL
Prno
产品号
char(10)
Primary key
NOT NULL
Squantity1
产品库存量
int
\
\
10.零件存储表数据信息
Store2
数据项名
含义
数据类型
约束
与否为空
Sno
仓库号
char(10)
Primary key
NOT NULL
Pano
零件号
char(20)
Primary key
NOT NULL
Squantity2
零件库存量
int
\
\
六、物理设计
6.1表汇总
表名
功能阐明
表Part
查询,插入,索引,存储过程
表Product
查询,插入,修改,索引,存储过程
表Storage
查询,更新,删除,存储过程
6.2表
1.工厂表
表名
Factory
数据库顾客
Work
主键
Fno
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Fname
Char(20)
N
Primary key
2
FMname
Char(200
sql脚本
Create table Factory
(
Fname char(20) Primary Key,
FMname char(20)
)
备注
工厂与车间一对多
2.工人表
表名
Worker
数据库顾客
work
主键
Wono
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Wono
char(10)
N
Primary key
2
Woname
char(20)
3
Woage
smallint
4
Wotype
char(20)
5
Wno
char(10)
N
Foreign key
sql脚本
Create table Worker
(
wono char(10)Primary Key,
Woname char(20),
Woage smallint,
wosex char(2),
Wotapy char(20),
Wno char(10),
foreign key(Wno)references Workhome(Wno)
)
备注
车间与工人一对多
3.车间表
表名
Workhome
数据库顾客
work
主键
Wno
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Wno
char(10)
N
Primary key
2
WMname
char(20)
3
Wadd
char(20)
4
Wphone
Char(11)
5
Fname
Char(20)
N
Foreign key
sql脚本
Create table Workhome
(
Wno char(10)primary Key,
WMno char(20),
Wadd char(20),
Wphone char(11),
Fname char(20),
Foreign Key(Fname)references Factory(Fname)
)
备注
工厂与车间一对多
4.产品表
表名
Product
数据库顾客
work
主键
Prno
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Prno
char(10)
N
Primary key
2
Prname
char(20)
3
Prmoney
int
4
Prquantity
int
5
Wno
char(10)
N
Foreign key
sql脚本
Create table Product
(
Prno char(10)Primary Key,
Prname char(20),
Prmoney int,
Prquantity int,
Sno char(10),
Wno char(10),
foreign key(Wno)references Workhome(Wno)
)
备注
车间与产品一对多,仓库与产品一对多
5.零件表
表名
Part
数据库顾客
work
主键
Pano
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Pano
char(10)
N
Primary key
2
Paweight
Varchar(20)
3
Pamoney
int
4
Paquantity
int
5
Sno
char(10)
N
Foreign key
sql脚本
Create table Part
(
Pano char(10)primary Key,
Paweight varchar(20),
Pamoney int,
Paquantity int,
Sno char(10),
Foreign Key(Sno)references Storage(Sno)
)
备注
仓库与零件一对多
6.生产表
表名
Make
数据库顾客
work
主键
Wno ,Prno
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Wno
char(10)
N
Primary key
2
Prno
char(10)
N
Primary key
3
Mtime
varchar(20)
4
Mquantity
int
sql脚本
Create table Make
(
Wno char(10),
Pano char(10),
Mtime varchar(20),
Mquantity int,
Primary Key(Wno,Pano),
Foreign Key(Wno)references Workhome(Wno),
Foreign Key(Pano)references Part(Pano)
)
备注
车间与零件多对多
7.构成表
表名
Compose
数据库顾客
work
主键
Prno,Pano
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Prno
char(10)
N
Primary key
2
Pano
char(10)
N
Primary key
3
Cquantity
int
sql脚本
Create table Compose
(
Prno char(10),
Pano char(10),
Cquantity int,
Primary Key(Prno,Pano),
Foreign Key(Prno)references Product(Prno),
Foreign Key(Pano)references Part(Pano)
)
备注
产品和零件多对多
8.仓库表
表名
Storage
数据库顾客
work
主键
Sno
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Sno
char(10)
N
Primary key
2
SMno
char(20)
3
Sphone
char(11)
sql脚本
Create table Storage
(
Sno char(10)primary Key,
SMno char(20),
Sphone char(11)
)
备注
工厂与仓库一对多
9.产品存储表
表名
Store1
数据库顾客
work
主键
Sno、Prno
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Sno
char(10)
N
Primary key
2
Prono
char(10)
N
Primary key
3
Squantity1
int
sql脚本
Create table Store1
(
Sno char(10),
Prno char(10),
Squantity1 int,
Primary Key(sno,Prno),
Foreign Key(sno)references Storage(sno),
Foreign Key(Prno)references Product(Prno)
)
备注
仓库与产品一对多
10.零件存储表
表名
Store2
数据库顾客
work
主键
Sno、Pano
序号
字段名称
数据类型(精度范畴)
容许为空Y/N
唯一Y/N
区别度
默认值
约束条件/阐明
1
Sno
char(10)
N
Primary key
2
Pano
char(10)
N
Primary key
3
Squantity2
int
sql脚本
Create table Store2
(
Sno char(10),
Pano char(10),
Squantity2 int,
Primary Key(sno,Pano),
Foreign Key(sno)references Storage(sno),
Foreign Key(Pano)references Part(Pano)
)
备注
仓库与零件一对多
6.3存储过程、函数及触发器设计
6.3.1存储过程设计
1.工厂表存储过程及数据插入,效果图如图6.1所示
Create procedure C_Factory
@Fname char(20),
@FMname char(20)
as
insert into Factory values(@Fname,@FMname);
--------------------------------------------------------------------
exec C_Factory'环球鞋业有限公司','肖瑶'
图6.1
2.车间表存储过程及数据插入,效果图如图6.2所示
create procedure C_Workhome
@Wno char(10),
@WMno char(20),
@Wadd char(20),
@Wphone char(11),
@Fname char(20)
as
insert into Workhome values(@Wno,@WMno,@Wadd,@Wphone,@Fname)
----------------------------------------------------------------------
exec C_Workhome '01','001','洪山路月湖栋','','环球鞋业有限公司'
exec C_Workhome '02','002','洪山路月湖栋','','环球鞋业有限公司'
exec C_Workhome '03','003','洪山路月湖栋','','环球鞋业有限公司'
图6.2
3.职工表存储过程及数据插入,效果图如图6.3所示
create proc C_Worker
@Wono char(10),
@Woname char(20),
@Woage smallint,
@Wosex char(2),
@Wotype char(20),
@Wno char(10)
as
insert into worker values(@Wono,@Woname,@Woage,@Wosex,@Wotype,@Wno)
-----------------------------------------------------------------------
exec C_Worker'001','肖俊俊','19','男','检查员','01'
exec C_Worker'002','龙毛毛','20','男','生产员','01'
exec C_Worker'003','周勤勤','19','男','安保','01'
exec C_Worker'004','黄雷蕾','19','女','保洁员','01'
exec C_Worker'005','许小芬','19','男','检查员','02'
exec C_Worker'006','叶鹏','20','男','生产员','02'
exec C_Worker'007','李强','19','男','安保','02'
exec C_Worker'008','罗星','19','女','保洁员','02'
exec C_Worker'009','李俊俊','19','男','检查员','03'
exec C_Worker'010','李小为','20','男','生产员','03'
exec C_Worker'011','扶小冉','19','男','安保','03'
exec C_Worker'012','明小顺','21','男','保洁员','03'
图6.3
4.仓库表存储过程及数据插入,效果图如图6.4所示
create proc C_Storage
@Sno char(10),
@SMno char(20),
@Sphone char(11)
as
insert into Storage values(@Sno,@SMno,@Sphone)
------------------------------------------------------------------------------
exec C_Storage'01','001','7941211'
exec C_Storage'02','002','7412255'
exec C_Storage'03','003','4566181'
图6.4
5.产品表存储过程及数据插入,效果图如图6.5所示
create proc C_Product
@Prno char(10),
@Prname char(20),
@Prmoney int,
@Prquantity int,
@Sno char(10),
@Wno char(10)
as
insert into Product values(@Prno,@Prname,@Prmoney,@Prquantity,@Sno,@Wno)
------------------------------------------------------------------------------
exec C_Product'01','耐克产品','800','611','01','01'
exec C_Product'02','阿迪产品','751','721','02','02'
exec C_Product'03','彪马产品','622','611','03','03'
insert into product(Prno,Prname,Prmoney,Prquantity,Sno,Wno)
values('04','特步产品','211','810','02','02')
图6.5
6.零件存储过程及数据插入,效果图如图6.6所示
Create proc C_Part
@Pano char(10),
@Paweight varchar(20),
@Pamoney int,
@Paquantity int,
@Sno char(10)
as
insert into Part values(@Pano,@Paweight,@Pamoney,@Paquantity,@Sno)
---------------------------------------------------------------------------
exec C_Part'01','0.2','13','4000','01'
exec C_Part'02','0.1','60','6150','02'
exec C_Part'03','0.1','80','3618','03'
exec C_Part'04','0.1','80','3618','03'
delete from Part where Pano='04'
图6.6
7.生产表存储过程及数据插入,效果图如图6.7所示
Create Proc C_Make
@Wno char(10),
@Pano char(10),
@Mtime varchar(20),
@Mquantity int
as
insert into Make values(@Wno,@Pano,@Mtime,@Mquantity)
---------------------------------------------------------------------------
exec C_Make'01','01','.6.22 08:11:01','120'
exec C_Make'02','02','.6.21 09:23:16','160'
exec C_Make'03','03','.6.21 11:06:01','210'
图6.7
8.构成表存储过程及数据插入,效果图如图6.8所示
Create Proc C_Compose
@Prno char(10),
@Pano char(10),
@Cquantity int
as
insert into Compose values(@Prno,@Pano,@Cquantity)
-----------------------------------------------------------------------------
exec C_Compose'01','01','10'
exec C_Compose'01','02','10'
exec C_Compose'01','03','10'
exec C_Compose'02','01','29'
exec C_Compose'02','02','29'
exec C_Compose'02','03','29'
exec C_Compose'03','01','38'
exec C_Compose'03','02','38'
exec C_Compose'03','03','38'
图6.8
9.产品存储表存储过程及数据插入,效果图如图6.9所示
Create proc C_Store1
@Sno char(10),
@Prno char(10),
@Stquantity1 int
as
insert into Store1 values(@Sno,@Prno,@Stquantity1)
----------------------------------------------------------------------------
exec C_Store1'01','01','155'
exec C_Store1'02','02','211'
exec C_Store1'03','03','284'
图6.9
10.零件存储表存储过程及数据插入,效果图如图6.10所示
Create proc C_Store2
@Sno char(10),
@Pano char(10),
@Stquantity2 int
as
insert into Store2 values(@Sno,@Pano,@Stquantity2)
----------------------------------------------------------------------------
exec C_Store2'01','01','300'
exec C_Store2'02','02','416'
exec C_Store2'03','03','312'
图6.10
6.3.
展开阅读全文