工厂数据库管理系统华工数据库大作业含源文件.docx
《工厂数据库管理系统华工数据库大作业含源文件.docx》由会员分享,可在线阅读,更多相关《工厂数据库管理系统华工数据库大作业含源文件.docx(29页珍藏版)》请在冰豆网上搜索。
工厂数据库管理系统华工数据库大作业含源文件
课程设计任务书之蔡仲巾千创作
课程名称:
数据库系统原理
设计题目:
工厂数据库管理系统
已知技术参数和设计要求:
需求说明及要求
题目:
工厂数据库管理系统
一、工厂管理数据库
工厂需建立一个管理数据库存储以下信息:
*工厂信息包含工厂代号,工厂名,厂长名及工厂运营开销。
*一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址,电话及每个月的车间运营开销。
*一个车间有多个工人,每个工人有职工号、姓名、年龄、性别,工种及月工资。
*一个车间生产多种产品,产品有产品号、产品名、规格,制造成本和销售价格。
*一个车间生产多个零件,一个零件也可能由多个车间制造。
零件有零件号、零件名,制造成本和销售价格。
*一个产品由多个零件组成,一个零件也可装配出多种产品。
*产品与零件均存入仓库中。
*厂内有多个仓库,仓库有仓库号,仓库主任姓名、电话及仓库的运营成本。
应完成的主要功能:
(1)各种各样的管理功能,如工厂信息的管理功能,包含录入、修改、查询、输出工厂的信息;车间信息的管理功能,包含录入、修改、查询、输出车间的信息;还有工人,零件,产品,仓库等的信息管理功能。
(2)工厂的利润统计,包含月利润和年利润统计。
(3)能输出各种各样的报表,如工人工资月报表,年报表;每个车间生产的产品和零件数量的月报表;仓库存储产品和零件数量的月报表;工厂运营开销和车间运营开销的月报表等。
二、开发环境
数据库选用微软的SQLSERVER。
开发环境可以选择:
(1)Delphi;
(2)VisualBasic;(3)C++builder;(4)VisualC++。
只选择其中的一种软件开发工具就可以。
三、基本要求
(1)完成问题陈述中所提到的所有需求功能
(2)要求撰写很多于2500个文字的文档。
(3)文档中至少要包含:
ER模型图、系统功能图、数据字典、表关系的详细说明。
(4)用户界面设计:
采取窗口式,色彩要柔和,界面要友好,操纵要简单。
(5)用户手册,描述软件系统所具有的功能及基本的使用方法。
使用户能了解该软件的用途,并能确定在什么情况下、如何使用它。
(6)操纵手册,为操纵人员提供该软件每一个运行的具体过程和相关知识,包含操纵方法的细节等。
四、文档格式
1、概述
包含项目布景、编写目的、软件定义、开发环境等内容。
2、需求分析
问题陈述、需完成的功能
摘要
在计算机日益普及的今天,对个人而言若采取一套行之有效的工厂管理系统来管理生产,会方便许多。
对工厂管理部分而言,以前单一的手工检索已不克不及满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。
为了便于工厂产品和职工的管理,需要有效的工厂管理软件,减轻工作人员的工作量,方便工作人员对它的操纵,提高管理的质量和水平,做到高效、智能化管理,达到提高产品生产信息管理效率的目的。
采取数据库技术生成的工厂管理系统将会极大地方便了工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
基于这个问题,开发了工厂数据库管理系统。
本文通过作者设计和开发一个中小型工厂管理系统的实践,论述了工厂数据库管理软件中所应具有的基本功能、设计、实现。
分别从设备管理和用户管理等角度进行处理,并对需求分析、概念设计、逻辑设计、物理设计、数据库实施和维护进行了论述,实行设备管理的计算机自动化。
关键字:
工厂数据库职工管理生产管理
1.本论文的目标与任务············································1
2.数据库设计····················································1
2.1需求分析阶段··············································1
··············································2
2.3逻辑设计阶段··············································3
2.4物理设计阶段··············································3
2.5数据库平安及维护设计······································5
2.6数据库实施阶段············································6
2.6.1建立数据库、数据表、索引····························6
············································9
················································16
···················································21
参考文献························································22
1本论文的目标与任务
建立一个某工厂管理数据库存储以下信息:
1、工厂包含厂名和厂长名。
2、一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。
3、一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。
4、一个车间生产多种产品,产品有产品号、产品名称和价格。
5、一个车间生产多种零件,一个零件也可能为多个车间制造。
零件有零件号、重量和价格。
6、一个产品由多种零件组成,一种零件也可装配出多种产品。
7、产品与零件均存入仓库中。
8、厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
针对各工厂信息管理情况,设计出适合它们的计算机辅助工厂数据库管理系统。
实现对工厂产品和职工基本信息进行计算机辅助管理,完成有关信息的记录、修改、查询、删除等一系列任务的计算机管理与实现。
系统有对产品、零件、车间和职工等信息的管理,其功能是实现对各部分数据内容进行添加、修改、查询等操纵。
2数据库设计
(1)对象处理:
工厂信息:
厂名、厂长名。
车间信息:
车间号、车间主任姓名、地址和电话。
职工信息:
职工号、姓名、年龄、性别和工种。
产品信息:
产品号、产品名称和价格。
零件信息:
零件号、重量和价格。
仓库信息:
仓库号、仓库主任姓名和电话。
(2)功能及要求:
能对一定量的工厂信息进行管理,主要包含:
存储管理工厂信息,修改和查询工厂信息以及管理职工和工作人员信息。
系统平安性先通过视图机制,分歧的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的平安性,再通过用户授权机制,通过用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高条理的平安保密功能。
近而可以满足用户的基本数据平安性要求。
完整性要求用于描述各种信息之间的制约关系,以及关联关系,各个数据项的取值范围以及各个数据项是否可以不取值。
根据实际需要,采纳一定的手段来满足用户的完整性需求。
-1-
(3)数据结构
数据结构名
数据结构含义
组成
fac
工厂基本信息
Fname,fn_name
room
车间基本信息
RnoRnameRaddrRcall
worker
工人基本信息
WnoWnameWageWsexWtype
product
产品基本信息
PnoPnamePrice
component
零件基本信息
CnoweigtPrice
store
仓库基本信息
SnoSnameScall
2.2概念设计阶段
(1)实体
通过对上面的系统总体分析,可以得到大概的实体-关系模型(E-R模型),如下:
工厂:
{厂名,厂长名}
工人:
{职工号,姓名,性别,年龄,工种}
车间:
{车间号,车间主任姓名,地址,电话}
产品:
{产品号,价格,产品名}
零件:
{零件号,价格,重量}
仓库:
{仓库号,仓库主任姓名,电话}
(2)由各子E-R合并得到的基本E-R如下图所示:
-2-
根据上面的数据库ER图,现在需要将上面的数据库概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下分歧的情况:
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系自己的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系自己的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系自己的属性均转换为关系的属性,而关系的码为各实体码的组合
逻辑结构设计的任务是将概念结构设计的E-R图,转化为与选用的DBMS所支持的数据模型相符的逻辑结构,形成逻辑模型。
工厂(厂名,厂长名)
车间(车间号,车间主任姓名,地址,电话)
工人(职工号,姓名,年龄,性别,工种)
产品(产品号,产品名称,价格)
零件(零件号,重量,价格)
仓库(仓库号,仓库主任姓名,电话)
生产(车间号,零件号,生产日期)
组装(产品号,零件号,组装数)
存入(仓库号,产品号,零件号,存储量)
2.4物理结构设计
操纵环境windows2KS,SQL2000数据库系统.
确定数据库及表的名称及其组成:
建立数据库createdatabasefactory,数据库名称factory(工厂数据库)
数据说明处理:
store(仓库)fac(工厂),room(车间)worker(工人),
-3-
product(产品),component(零件),room_com(零件与车间的联系)
pro_com(零件与产品的联系),com_str(零件与仓库的联系)
pro_str(产品与仓库的联系);
基本表
数据结构含义
组成
fac
工厂基本信息
Fname,fn_name
room
车间基本信息
Rno,Rname,Raddr,Rcall
worker
工人基本信息
Wno,Wname,Wage,Wsex,Wtype
product
产品基本信息
Pno,Pname,Price
component
零件基本信息
Cno,weigt,Price
store
仓库基本信息
Sno,Sname,Scall
room_com
零件与车间的联系
Rno,Cno,Stime
pro_com
零件与产品的联系
Pno,Cno,number
com_str
零件与仓库的联系
Cno,Sno,Strnum1
pro_str
产品与仓库的联系
Pno,Sno,Strnum2
列名
数据类型
能否空值
默认值
键/索引
说明
fname
varchar(20)
否
主键、索引
厂名
fn_name
varchar(20)
否
厂长名
列名
数据类型
能否空值
默认值
键/索引
说明
Rno
varchar(10)
否
主键、索引
车间号
Rname
varchar(20)
否
车间主任姓名
Raddr
varchar(20)
否
车间地址
Rcall
int
否
电话
列名
数据类型
能否空值
默认值
键/索引
说明
Cno
varchar(10)
否
主键、索引
零件号
weight
int
否
重量
Price
numeric(5,1)
否
价格
列名
数据类型
能否空值
默认值
键/索引
说明
Wno
varchar(10)
否
主键、索引
职工号
Wname
varchar(20)
否
姓名
Wage
int
否
年龄
Wsex
varchar
(2)
否
性别
Wtype
varchar(20)
否
工种
列名
数据类型
能否空值
默认值
键/索引
说明
Pno
varchar(10)
否
主键、索引
产品号
Pname
varchar(20)
否
产品名称
Price
numeric(5,1)
否
价格
-4-
列名
数据类型
能否空值
默认值
键/索引
说明
Sno
varchar(10)
否
主键、索引
仓库号
Sname
varchar(20)
否
仓库主任姓名
Scall
int
否
仓库电话
列名
数据类型
能否空值
默认值
键/索引
说明
Rno
varchar(10)
否
主键
车间号
Cno
varchar(10)
否
主键
零件号
Stime
datetime
否
生产日期
列名
数据类型
能否空值
默认值
键/索引
说明
Pno
varchar(10)
否
主键
产品号
Cno
varchar(10)
否
主键
零件号
number
int
否
组装数
列名
数据类型
能否空值
默认值
键/索引
说明
Sno
varchar(10)
否
主键
仓库号
Cno
varchar(10)
否
主键
零件号
Pno
varchar(10)
否
主键
产品号
Strnum1
Int
否
零件存放量
Strnum2
int
否
产品存放量
建立索引:
索引中记录了表中的关键值,提供了指向表中行的指针。
它既可以在定义表时创建,也可以在定义表之后的任何时候创建。
索引可以创建在一个列或多个列的组合上。
(1)、在车间信息表车间号列上创建索引
createindexroomRnoonroom(Rno)
(2)、在车间信息表的车间主任姓名列上创建索引
createindexroomRnameonroom(Rname)
为数据库中各基本表建立的索引如下:
由于有的基本表经常在查询条件和连接操纵的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;
2.5数据库平安及维护设计
(1)在数据库fac中添加新用户xcm.
usefactory
execsp_grantdbaccess'yangkun','xcm'
(2)创建登录名,添加角色
execsp_addlogin'yangkun','1234','factory'
execsp_addsrvrolemember'yangkun','sysadmin'
-5-
(3)授权与基本表
grantselect,update
onproduct
toxcm;
grantallprivileges
onworker
toxcm;
grantallprivileges
oncomponent
toxcm;
grantallprivileges
onstore
toxcm;
grantallprivileges
onroom
toxcm;
(4)创建视图
createviewIS_store
as
selectSno,Sname,Scall
fromstore
createviewIS_worker
as
selectWno,Wname,Wsex
fromworker
whereWsex='女'
createviewIS_product
as
selectPno,Pname,Price
fromproduct
wherePno=1
2.6数据库实施阶段
建立数据库、数据表、索引
-6-
(1)建立数据库
createdatabasefactory
onprimary
(
name=factory_data,
filename='d:
\cxm\factory.mdf',
size=50MB,
maxsize=70MB,
filegrowth=1MB)
logon(
name=factory_log,
filename='d:
\cxm\factory.ldf',
size=10MB,
maxsize=15MB,
filegrowth=1MB)
(2)创建基本表
创建工厂表
createtablefac
(fnamevarchar(20)primarykey,
fn_namevarchar(20)notnull,
);
创建车间表
createtableroom
(Rnovarchar(10)primarykey,
Rnamevarchar(20),
Rcallint,
Raddrvarchar(20),
fnamevarchar(20)notnull,
foreignkey(fname)referencesfac(fname)
);
创建工人表
createtableworker
(Wnovarchar(10)primarykey,
Wnamevarchar(20),
Wageint,
Wsexvarchar
(2)check(Wsexin(‘男’,‘女’)),
Wtypevarchar(20),
Rnovarchar(10)notnull,
foreignkey(Rno)referencesroom(Rno)
);-7-
创建产品表
createtableproduct
(Pnovarchar(10)primarykey,
Pnamevarchar(20),
Pricenumeric(5,1)default0,
check(Price>0),
Rnovarchar(10)notnull,
foreignkey(Rno)referencesroom(Rno)
);
创建零件表
createtablecomponent
(Cnovarchar(10)primarykey,
Pricenumeric(5,1)default0,
check(Price>0),
weightint
);
创建仓库表
createtablestore
(Snovarchar(10)primarykey,
Snamevarchar(20),
Scallint,
fnamevarchar(20)notnull,
foreignkey(fname)referencesfac(fname)
);
创建生产表
createtableroom_com
(Rnovarchar(10)notnull,
Cnovarchar(10)notnull,
Stimedatetime,
primarykey(Rno,Cno),
foreignkey(Rno)referencesroom(Rno),
foreignkey(Cno)referencescomponent(Cno)
);
创建组装表
createtablepro_com
(Cnovarchar(10)notnull,
Pnovarchar(10)notnull,
numberint,
primarykey(Pno,Cno),
foreignkey(Pno)referencesproduct(Pno),
foreignkey(Cno)referencescomponent(Cno));
-8-
创建存放表1
createtablepro_str
(Pnovarchar(10)notnull,
Snovarchar(10)notnull,
Strnum1int,
primarykey(Pno,Sno),
foreignkey(Pno)referencesproduct(Pno),
foreignkey(Sno)referencesstore(Sno)
);
创建存放表2
createtablecom_str
(Cnovarchar(10)notnull,
Snovarchar(10)notnull,
Strnum2int,
primarykey(Cno,Sno),
foreignkey(Cno)referencescomponent(Cno),
foreignkey(Sno)referencesstore(Sno)
);
(3)创建索引
createindexroomRnoonroom(Rno)
createindexroomRnameonroom(Rname)
createindexproPnoonproduct(Pno)
createindexfacfnemeonfac(fname)
createindexcomCnooncomponent(Cno)
createindexstrSnoonstore(Sno)
(1)存储过程
createprocworker(
@Wnovarchar(10),
@Wnamevarchar(20),
@Wageint,
@Wsexvarchar
(2),
@Wtypevarchar(20),
@Rnovarchar(10)
)
as
insert
intoworker
values(@Wno,@Wname,@Wage,
@Wsex,@Wtype,@Rno);
-9-
createprocroom
(@Rnovarchar(10),
@Rnamevarchar(20),
@Rcallint,
@Raddrchar(8),
@fnamevarchar(20)
)
as
insert
intoroom
values(@Rno,@Rname,@Rcall,
@Raddr,@fname);
createprocproduct1
(@Pnovarchar(10),
@Pnamevarchar(20),
@Pricenumeric(5,1),
@