华南理工大数据库大作业.docx
《华南理工大数据库大作业.docx》由会员分享,可在线阅读,更多相关《华南理工大数据库大作业.docx(30页珍藏版)》请在冰豆网上搜索。
华南理工大数据库大作业
课程设计任务书
课程名称:
数据库系统原理
设计题目:
工厂数据库管理系统
技术参数和设计要求:
需求说明与要求
题目:
工厂数据库管理系统
一、工厂管理数据库
工厂需建立一个管理数据库存储以下信息:
*工厂信息包括工厂代号,工厂名,厂长名与工厂运营开销。
*一个厂内有多个车间,每个车间有车间号、车间主任某某、地址,与每个月的车间运营开销。
*一个车间有多个工人,每个工人有职工号、某某、年龄、性别,工种与月工资。
*一个车间生产多种产品,产品有产品号、产品名、规格,制造本钱和销售价格。
*一个车间生产多个零件,一个零件也可能由多个车间制造。
零件有零件号、零件名,制造本钱和销售价格。
*一个产品由多个零件组成,一个零件也可装配出多种产品。
*产品与零件均存入仓库中。
*厂内有多个仓库,仓库有仓库号,仓库主任某某、与仓库的运营本钱。
应完成的主要功能:
〔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概念设计阶段··············································2
2.3逻辑设计阶段··············································3
2.4物理设计阶段··············································3
2.5数据库安全与维护设计······································5
2.6数据库实施阶段············································6
建立数据库、数据表、索引····························6
数据入库············································9
················································16
···················································21
参考文献························································22
1本论文的目标与任务
建立一个某工厂管理数据库存储以下信息:
1、工厂包括厂名和厂长名。
2、一个厂内有多个车间,每个车间有车间号、车间主任某某、地址和。
3、一个车间有多个工人,每个工人有职工号、某某、年龄、性别和工种。
4、一个车间生产多种产品,产品有产品号、产品名称和价格。
5、一个车间生产多种零件,一个零件也可能为多个车间制造。
零件有零件号、重量和价格。
6、一个产品由多种零件组成,一种零件也可装配出多种产品。
7、产品与零件均存入仓库中。
8、厂内有多个仓库,仓库有仓库号、仓库主任某某和。
针对各工厂信息管理情况,设计出适合它们的计算机辅助工厂数据库管理系统。
实现对工厂产品和职工根本信息进展计算机辅助管理,完成有关信息的记录、修改、查询、删除等一系列任务的计算机管理与实现。
系统有对产品、零件、车间和职工等信息的管理,其功能是实现对各局部数据内容进展添加、修改、查询等操作。
2数据库设计
〔1〕对象处理:
工厂信息:
厂名、厂长名。
车间信息:
车间号、车间主任某某、地址和。
职工信息:
职工号、某某、年龄、性别和工种。
产品信息:
产品号、产品名称和价格。
零件信息:
零件号、重量和价格。
仓库信息:
仓库号、仓库主任某某和。
〔2〕功能与要求:
能对一定量的工厂信息进展管理,主要包括:
存储管理工厂信息,修改和查询工厂信息以与管理职工和工作人员信息。
系统安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,通过用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全某某功能。
近而可以满足用户的根本数据安全性要求。
完整性要求用于描述各种信息之间的制约关系,以与关联关系,各个数据项的取值X围以与各个数据项是否可以不取值。
根据实际需要,采取一定的手段来满足用户的完整性需求。
-1-
〔3〕数据结构
数据结构名
数据结构含义
组成
fac
工厂根本信息
Fname,fn_name
room
车间根本信息
RnoRnameRaddrRcall
worker
工人根本信息
WnoWnameWageWsexWtype
product
产品根本信息
PnoPnamePrice
ponent
零件根本信息
oweigtPrice
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〔产品〕,ponent〔零件〕,room_〔零件与车间的联系〕
pro_〔零件与产品的联系〕,_str〔零件与仓库的联系〕
pro_str〔产品与仓库的联系〕;
根本表的组成:
表2.1
根本表
数据结构含义
组成
fac
工厂根本信息
Fname,fn_name
room
车间根本信息
Rno,Rname,Raddr,Rcall
worker
工人根本信息
Wno,Wname,Wage,Wsex,Wtype
product
产品根本信息
Pno,Pname,Price
ponent
零件根本信息
o,weigt,Price
store
仓库根本信息
Sno,Sname,Scall
room_
零件与车间的联系
Rno,o,Stime
pro_
零件与产品的联系
Pno,o,number
_str
零件与仓库的联系
o,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
否
列名
数据类型
能否空值
默认值
键/索引
说明
o
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〕
否
主键
车间号
o
varchar〔10〕
否
主键
零件号
Stime
datetime
否
生产日期
列名
数据类型
能否空值
默认值
键/索引
说明
Pno
varchar〔10〕
否
主键
产品号
o
varchar〔10〕
否
主键
零件号
number
int
否
组装数
列名
数据类型
能否空值
默认值
键/索引
说明
Sno
varchar〔10〕
否
主键
仓库号
o
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
onponent
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)
);
创建零件表
createtableponent
(ovarchar(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_
(Rnovarchar(10)notnull,
ovarchar(10)notnull,
Stimedatetime,
primarykey(Rno,o),
foreignkey(Rno)referencesroom(Rno),
foreignkey(o)referencesponent(o)
);
创建组装表
createtablepro_
(ovarchar(10)notnull,
Pnovarchar(10)notnull,
numberint,
primarykey(Pno,o),
foreignkey(Pno)referencesproduct(Pno),
foreignkey(o)referencesponent(o));
-8-
创建存放表1
createtablepro_str
(Pnovarchar(10)notnull,
Snovarchar(10)notnull,
Strnum1int,
primarykey(Pno,Sno),
foreignkey(Pno)referencesproduct(Pno),
foreignkey(Sno)referencesstore(Sno)
);
创建存放表2
createtable_str
(ovarchar(10)notnull,
Snovarchar(10)notnull,
Strnum2int,
primarykey(o,Sno),
foreignkey(o)referencesponent(o),
foreignkey(Sno)referencesstore(Sno)
);
〔3〕创建索引
createindexroomRnoonroom(Rno)
createindexroomRnameonroom(Rname)
createindexproPnoonproduct(Pno)
createindexfacfnemeonfac(fname)
createindexoonponent(o)
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),
Rnovarchar(10)
)
as
insert
intoproduct
values(Pno,Pname,Price,Rno);
createprocponent1
(ovarc