数据库课程设计毕业设计报告书.docx
《数据库课程设计毕业设计报告书.docx》由会员分享,可在线阅读,更多相关《数据库课程设计毕业设计报告书.docx(35页珍藏版)》请在冰点文库上搜索。
![数据库课程设计毕业设计报告书.docx](https://file1.bingdoc.com/fileroot1/2023-5/29/945f028a-0756-42d6-8f0c-90556e724342/945f028a-0756-42d6-8f0c-90556e7243421.gif)
数据库课程设计毕业设计报告书
摘要
数据库是数据管理的最新技术,是计算机科学的重要分支。
今天,信息资源已成为各个部门的重要财富和资源。
建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。
对工厂管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。
为了便于工厂信息资料的管理需要有效的工厂管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高工厂信息检索效率的目的。
采用数据库技术生成的工厂管理系统将会极大地方便并简化图管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
基于这个问题,开发了工厂管理系统。
系统采用C/S模式,实现了工厂信息更新与查询的方便、高效性、有效性和及时性。
本文通过作者设计和开发一个中小型工厂管理系统的实践,阐述了工厂管理软件中所应具有的基本功能、设计、实现。
关键字:
工厂管理,数据库技术,功能
引言
在社会进入信息化时代以来,信息产业所创造的社会价值渐渐地开始占据社会体系中不可替代的位置。
人们也渐渐明白了信息和知识更新的重要性,在这个信息更新快速的社会,信息代表着价值,管理好信息也就意味着非常重要,好的管理机制带来效率,效率象征着竞争力,象征着效益,一个好的管理系统对于一个工厂来说是至关重要的,它是一个工厂的生命线。
在计算机日益普及的今天,建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。
对工厂管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。
为了便于工厂信息资料的管理需要有效的工厂管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高工厂信息检索效率的目的。
采用数据库技术生成的工厂管理系统将会极大地方便并简化图管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
本文以工厂管理系统管理系统开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。
在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
采用结构化的功能模块设计系统功能,可读性好,易于扩充。
基本功能全面,系统可读性好,易于维护、更新,安全性好。
第一章需求分析阶段
1.1引言
在进行系统设计之前,首先要对系统的现状进行分析。
根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。
需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。
数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。
明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。
在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。
这样,就把一个大的系统分解成了几个小系统。
这里把系统的层次划分为了五个部分:
仓库管理、车间管理、工人管理、产品管理、零件管理。
能够实现以下功能:
1.更新和查询仓库信息
2.更新和查询车间信息
3.更新和查询工人信息
4.更新和查询产品信息
5.更新和查询零件信息
1.2需求分析阶段的目标与任务
1.2.1处理对象
工厂:
厂名、厂长名
车间:
车间号、车间主任姓名、车间主任地址、车间主任电话
生产产品:
车间号、产品号、产品数量、开始生产时间、生产截止时间
生产零件:
车间号、零件号、零件数量、开始生产时间、生产截止时间
工人:
职工号、职工姓名、职工年龄、职工性别、工种、工作车间号
产品:
产品号、产品名称、产品价格、零件号、零件数量
零件:
零件号、价格重量、价格价格
仓库:
仓库号、仓库主任姓名、仓库主任电话
储存产品:
仓库号、产品号、产品数量
储存零件:
仓库号、零件号、零件数量
1.2.2处理功能及要求
1.能够存储一定数量的工厂信息,并方便有效的进行相应的数据操作和管理,这主要包括:
1)工厂信息的录入、删除及修改。
2)工厂信息的多关键字检索查询。
2.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。
3.对查询、统计的结果能够列表显示。
1.2.3安全性及完整性要求
1)安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2)完整性要求
系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
1.3需求分析阶段成果
1.3.1体会和心得
在需求分析这个阶段,由于环境的限制,我主要途径是通过上网查询工厂相关信息和自己生活中的一些积累,由于这是第一次做这样的一个需求分析,刚开始的时候,不知道从何下手,通过向老师、学长、同学的学习和讨论,慢慢地开始理清了思路,然后集中精力在网上了解工厂管理方面的问题和相关的一些操作,在设计E—R图的时候遇到过一些麻烦,通过老师对我的知道,终于还是顺利的完成了这个阶段的任务。
1.3.2工厂管理系统业务流程图
表1.1业务流程图
1.3.3工厂管理系统数字字典
1.数据:
系统涉及的数据项一共39项
表1.2数据项列表
数据项编号
数据项名
数据项含义
存储结构
别名
DI-1
Weno
仓库的序号
Varchar(20)
仓库号
DI-2
We_Dname
仓库主任的姓名
Varchar(20)
仓库主任姓名
DI-3
We_phonenumber
仓库主任的电话
Varchar(20)
仓库主任电话
DI-4
Ptno
产品的序号
Varchar(20)
产品号
DI-5
Ptname
产品的名称
Varchar(20)
产品名称
DI-6
Ptprice
产品的价格
numeric(10,1)
产品价格
DI-7
Parts_no
所需零件的序号
Varchar(20)
零件号
DI-8
Parts_number
所需零件的数量
int
零件数量
DI-9
Wpno
车间的序号
Varchar(20)
车间号
DI-10
Wp_Daddrsee
车间主任的住址
Varchar(20)
车间主任地址
DI-11
Wp_Dphonenubmer
车间主任的电话
Varchar(20)
车间主任电话
DI-12
Wp_Dname
车间主任的姓名
Varchar(20)
车间主任姓名
DI-13
Ptst_weno
产品所在仓库序号
Varchar(20)
仓库号
DI-14
Ptst_ptnumber
仓库中指定产品数量
int
产品数量
DI-15
Ptst_ptno
产品的序号
Varchar(20)
产品号
DI-16
Psst_weno
零件所在仓库序号
Varchar(20)
仓库号
DI-17
Psst_psnumber
零件中指定产品数量
int
零件数量
DI-18
Psst_psno
零件的序号
Varchar(20)
零件号
DI-19
Fyname
工厂的名字
Varchar(20)
厂名
DI-20
Fy_Dname
厂长的姓名
Varchar(20)
厂长名
DI-21
Wrno
工人的工作号
Varchar(20)
职工号
DI-22
Wrname
工人的姓名
Varchar(20)
职工姓名
DI-23
Wrsex
工人的性别
Varchar(20)
职工性别
DI-24
Wrage
工人的年龄
int
职工年龄
DI-25
Wrrypes
工人的工种
Varchar(20)
工种
DI-26
Wr_workshop
工人的工作车间
Varchar(20)
工作车间号
DI-27
Psno
零件的序号
Varchar(20)
零件号
DI-28
Psweigh
零件的重量
int
零件重量
DI-29
Psprice
零件的价格
numeric(10,1)
零件价格
DI-30
Pp_wpno
生产产品的车间序号
Varchar(20)
车间号
DI-31
Pp_starttime
开始生产产品的时间
datetime
开始生产时间
DI-32
Pp_ptnumber
所需生产的数量
Varchar(20)
产品数量
DI-33
Pp_endtime
生产该产品截止时间
datetime)
生产截止时间
DI-34
Pp_ptno
所生产产品的序号
Varchar(20)
产品号
DI-35
Ps_wpno
生产零件的车间序号
Varchar(20)
车间号
DI-36
Ps_starttime
开始生产零件的时间
datetime
开始生产时间
DI-37
Ps_psnumber
所需生产的数量
Varchar(20)
零件数量
DI-38
Ps_endtime
生产该零件截止时间
datetime
生产截止时间
DI-39
Ps_psno
所生产零件的序号
Varchar(20)
零件号
2.数据结构:
表1.3数据结构列表
数据结构编号
数据结构名
数据结构含义
组成部分
DS-1
Warehouse
仓库信息
Weno,We_phonenumberWe_Dname
DS-2
Product
产品信息
Ptno,Ptname,Ptprice
Parts_no,Parts_number
DS-3
Workshop
车间信息
Wpno,Wp_Daddress
Wp_Dphonenubmer,Wp_Dname
DS-4
Product_storage
产品储存信息
Ptst_weno
Ptst_ptnumber,Ptst_ptno
DS-5
Parts_storage
零件储存信息
Psst_weno
Psst_psnumber,Psst_psno
DS-6
Factory
工厂信息
Fyname
Fy_Dname
DS-7
Worker
工人信息
Wrno,Wrname,Wrsex
Wrage,Wrrypes,Wr_workshop
DS-8
Parts
零件信息
Psno,Psweight
Psprice
DS-9
Product_producing
产品生产信息
Pp_ptnumber,Pp_starttime
Pp_endtime,Pp_ptno,Pp_wpno
DS-10
Parts_producing
零件生产信息
Ps_starttime,Ps_psnumber
Ps_endtime,Ps_psno,Ps_wpno
3.处理逻辑描述
1.4处理逻辑列表
处理编号
处理功能
处理过程
PS-1
查询
先确定要查询的部门,然后通过语句可以查询出相应部门的信息,并且按表格的形式显示出结果
PS-2
更新
先确定要做更新的部门,把要修改、删除的信息通过平台进行修改
第二章概念设计阶段
2.1引言
工厂管理系统的主要目标是方便对工厂信息的管理和更新,实现工厂信息管理的系统化和自动化,使得工厂管理高度一体化,从而提高工厂生产效益。
主要任务是对仓库信息、车间信息、工人信息、产品和产品生产信息、零件和零件生产信息的操作及处理。
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。
2.2任务与目标
(1)设计分E-R图,即各子模块的E-R图;
(2)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;
(3)生成全局E-R图,通过消除冲突等方法。
2.3阶段结果
(1)各个子模块的E-R图:
图2.1仓库信息E-R图
图2.2产品信息E-R图
图2.3车间信息E-R图
图2.4产品储存信息E-R图
图2.5零件储存信息E-R图
图2.6工厂信息E-R图
图2.7工人信息E-R图
图2.8零件信息E-R图
图2.9产品生产信息E-R图
图2.10零件生产信息E-R图
(2)全局E-R图
1
N
图2.11全局E-R图
第三章逻辑设计阶段
3.1逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
3.2数据组织
3.2.1将E-R图转换为关系模型
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。
由于车间和工人是1:
n的关系,固可以将联系跟实体工人的关系模式合并,由于产品和车间,零件和车间都是m:
n的关系,所以可以建立一个独立的关系模式,另外产品和仓库的关系是1:
n,零件和仓库的关系是m:
n,两者也都可以建立一个独立的关系模式。
具体的基本E-R图向关系模型的转化如下:
工厂:
Factory(Fyname,Fy_Dname)
车间:
Workshop(Wpno,Wp_Dname,Wp_Dphonenubmer,Wp_Daddress)
工人:
Worker(Wrno,Wrname,Wrsex,Wrage,Wrtypes,Wr_workshop)
零件:
Parts(Psno,Psweight,Psprice)
产品:
Product(Ptno,Ptname,Ptprice,Parts_no,Parts_number)
仓库:
Warehous(Weno,We_phonenumber,We_Dname)
产品储存:
Product_storage(Ptst_weno,Ptst_ptnumber,Ptst_ptno)
零件储存:
Parts_storage(Psst_weno,Psst_psnumber,Psst_psno)
产品生产:
Product_producing(Pp_ptnumber,Pp_starttime,Pp_endtime,Pp_ptno,Pp_wpno)
零件生产:
Parts_producing(Ps_psnumber,Ps_starttime,Ps_endtime,Ps_psno,Ps_wpno)
3.2.2模型分析
关系模式Factory,Workshop,Worker,Parts,Product,Warehous,Product_storageParts_storage,Product_producing,Parts_producing不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF.
3.2.3用户子模式定义
表3.1用户子模式定义
编号
用户子模式(View)
作用(共性:
提供数据保密和安全保护机制)
V-1
Product_information
用于对产品信息的查询
V-2
Parts_information
用于对零件信息的查询
表3.2产品信息视图
列名
数据类型
可否为空
说明
Ptno
Varchar(20)
notnull
产品号
Ptname
Varchar(20)
notnull
产品名
Ptprice
numeric(10,1)
产品价格
Parts_no
Varchar(20)
notnull
产品所需零件的零件号
Parts_number
int
产品所需零件的数量
Ptst_weno
Varchar(20)
notnull
产品所存放的仓库
Ptst_ptnumber
int
存放的数量
Pp_ptnumber
Int
预计要生产的数量
Pp_starttime
Datetime
开始生产的时间
Pp_endtime
Datetime
结束生产的时间
Pp_wpno
Varchar(20)
notnull
生产车间
表3.2零件信息视图
列名
数据类型
可否为空
说明
Psno
Varchar(20)
notnull
零件号
Psweight
numeric(10,1)
零件重量
Ptprice
numeric(10,1)
零件价格
Psst_weno
Varchar(20)
notnull
零件所存放的仓库
Psst_psnumber
int
存放的数量
Ps_psnumber
Int
预计要生产的数量
Ps_starttime
Datetime
开始生产的时间
Ps_endtime
Datetime
结束生产的时间
Ps_wpno
Varchar(20)
notnull
生产车间
第四章物理设计阶段
4.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2数据存储方面
为数据库中各基本表建立的索引如下:
由于基本表Product,Parts的主码Ptno,Psno经常在查询条件和连接操作的连接条件,出现,且它们的值唯一,在两个属性上建立唯一性索引;
第五章数据库实施阶段
5.1建立数据库、数据表、视图、索引
5.1.1建立数据库
createdatabaseFactory
onprimary
(
name=factory_data,
filename='d:
\xcm\Factory.mdf',
size=50MB,
maxsize=70MB,
filegrowth=1MB)
logon(
name=factory_log,
filename='d:
\xcm\Factory.ldf',
size=10MB,
maxsize=15MB,
filegrowth=1MB)
5.1.2建立数据表
(1)建立工厂表
createtableFactory
(
Fynamevarchar(20)notnull,
Fy_Dnamevarchar(20)notnull,
primarykey(Fyname,Fy_Dname),
);
(2)建立车间表
createtableWorkshop
(
Wpnovarchar(20)primarykey,
Wp_Dnamevarchar(20)notnull,
Wp_Dphonenubmervarchar(20)notnull,
Wp_Daddressvarchar(20)notnull,
);
(3)建立工人表
createtableWorker
(
Wrnovarchar(20)primarykey,
Wrnamevarchar(20)notnull,
Wrageintnull,
Wrsexvarchar
(2)check(Wrsexin('男','女')),
Wrtypesvarchar(20),
Wr_workshopvarchar(20)notnull,
foreignkey(Wr_workshop)referencesWorkshop(Wpno)
ondeletecascade
onupdatecascade
);
(4)建立零件表
createtableParts
(
Psnovarchar(20)primarykey,
Pspricenumeric(10,1)default0,
check(Psprice>=0),
Psweightnumeric(10,1)default0,
check(Psweight>=0),
);
(5)建立产品表
createtableProduct
(
Ptnovarchar(20)primarykey,
Ptnamevarchar(20)notnull,
Ptpricenumeric(10,1)default0,
check(Ptprice>=0),
Parts_novarchar(20)notnull,
Parts_numberintdefault0,
foreignkey(Parts_no)referencesParts(Psno)
ondeletecascade
onupdatecascade
);
(6)建立仓库表
createtableWarehous
(
Wenovarchar(20)primarykey,
We_Dnamevarchar(20),
We_phonenumbervarchar(20)
);
(7)建立产品储存表
createtableProduct_storage
(
Ptst_wenovarchar(20),
Ptst_ptnumberint,
Ptst_ptnovarchar(20),
primarykey(ptst_weno,ptst_ptno),
foreignkey(Ptst_weno)referencesWarehous(Weno)
ondeletecascade
onupdatec