工厂数据库管理系统-华工数据库大作业(含源文件)

工厂数据库管理系统-华工数据库大作业(含源文件)

ID:81829595

大小:132.04 KB

页数:19页

时间:2022-10-13

上传者:胜利的果实
工厂数据库管理系统-华工数据库大作业(含源文件)_第1页
工厂数据库管理系统-华工数据库大作业(含源文件)_第2页
工厂数据库管理系统-华工数据库大作业(含源文件)_第3页
工厂数据库管理系统-华工数据库大作业(含源文件)_第4页
工厂数据库管理系统-华工数据库大作业(含源文件)_第5页
工厂数据库管理系统-华工数据库大作业(含源文件)_第6页
工厂数据库管理系统-华工数据库大作业(含源文件)_第7页
工厂数据库管理系统-华工数据库大作业(含源文件)_第8页
工厂数据库管理系统-华工数据库大作业(含源文件)_第9页
工厂数据库管理系统-华工数据库大作业(含源文件)_第10页
资源描述:

《工厂数据库管理系统-华工数据库大作业(含源文件)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

课程设计任务书课程名称:数据库系统原理设计题目:工厂数据库管理系统已知技术参数和设计要求:需求说明及要求题目:工厂数据库管理系统一、工厂管理数据库工厂需建立一个管理数据库存储以下信息:*工厂信息包括工厂代号,工厂名,厂长名及工厂运营开销。*一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址,电话及每个月的车间运营开销。*一个车间有多个工人,每个工人有职工号、姓名、年龄、性别,工种及月工资。*一个车间生产多种产品,产品有产品号、产品名、规格,制造成本和销售价格。*一个车间生产多个零件,一个零件也可能由多个车间制造.零件有零件号、零件名,制造成本和销售价格。*一个产品由多个零件组成,一个零件也可装配出多种产品。*产品与零件均存入仓库中。*厂内有多个仓库,仓库有仓库号,仓库主任姓名、电话及仓库的运营成本。应完成的主要功能:(1)各种各样的管理功能,如工厂信息的管理功能,包括录入、修改、查询、输出工厂的信息;车间信息的管理功能,包括录入、修改、查询、输出车间的信息;还有工人,零件,产品,仓库等的信息管理功能。(2)工厂的利润统计,包括月利润和年利润统计。(3)能输出各种各样的报表,如工人工资月报表,年报表;每个车间生产的产品和零件数量的月报表;仓库存储产品和零件数量的月报表;工厂运营开销和车间运营开销的月报表等.二、开发环境数据库选用微软的SQLSERVER。开发环境可以选择:(1)Delphi;(2)VisualBasic;(3)C++builder;(4)VisualC++.只选择其中的一种软件开发工具就可以。三、基本要求(1)完成问题陈述中所提到的所有需求功能(2)要求撰写不少于2500个文字的文档。(3)文档中至少要包括:ER模型图、系统功能图、数据字典、表关系的详细说明。(4)用户界面设计:采用窗口式,色彩要柔和,界面要友好,操作要简单。(5)用户手册,描述软件系统所具有的功能及基本的使用方法。使用户能了解该软件的用途,并能确定在什么情况下、如何使用它。(6)操作手册,为操作人员提供该软件每一个运行的具体过程和相关知识,包括操作方法的细节等。四、文档格式1、概述包括项目背景、编写目的、软件定义、开发环境等内容。

12、需求分析问题陈述、需完成的功能摘要在计算机日益普及的今天,对个人而言若采用一套行之有效的工厂管理系统来管理生产,会方便许多.对工厂管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。为了便于工厂产品和职工的管理,需要有效的工厂管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达到提高产品生产信息管理效率的目的。采用数据库技术生成的工厂管理系统将会极大地方便了工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。基于这个问题,开发了工厂数据库管理系统。本文通过作者设计和开发一个中小型工厂管理系统的实践,阐述了工厂数据库管理软件中所应具有的基本功能、设计、实现.分别从设备管理和用户管理等角度进行处理,并对需求分析、概念设计、逻辑设计、物理设计、数据库实施和维护进行了阐述,实行设备管理的计算机自动化.关键字:工厂数据库职工管理生产管理目录1.本论文的目标与任务············································12.数据库设计····················································12。1需求分析阶段··············································12。2概念设计阶段··············································22.3逻辑设计阶段··············································32。4物理设计阶段··············································32。5数据库安全及维护设计······································52.6数据库实施阶段············································62.6.1建立数据库、数据表、

2索引····························62.6.2数据入库············································93.系统调试和测试················································164.课程设计总结···················································21参考文献························································221本论文的目标与任务建立一个某工厂管理数据库存储以下信息:1、工厂包括厂名和厂长名。2、一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。3、一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。4、一个车间生产多种产品,产品有产品号、产品名称和价格。5、一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。6、一个产品由多种零件组成,一种零件也可装配出多种产品。7、产品与零件均存入仓库中。8、厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。针对各工厂信息管理情况,设计出适合它们的计算机辅助工厂数据库管理系统.实现对工厂产品和职工基本信息进行计算机辅助管理,完成有关信息的记录、修改、查询、删除等一系列任务的计算机管理与实现。系统有对产品、零件、车间和职工等信息的管理,其功能是实现对各部分数据内容进行添加、修改、查询等操作。2数据库设计2.1需求分析阶段(1)对象处理:工厂信息:厂名、厂长名。车间信息:车间号、车间主任姓名、地址和电话。职工信息:职工号、姓名、年龄、性别和工种.产品信息:产品号、产品名称和价格。零件信息:零件号、重量和价格.仓库信息:仓库号、仓库主任姓名和电话。(2)功能及要求:

3能对一定量的工厂信息进行管理,主要包括:存储管理工厂信息,修改和查询工厂信息以及管理职工和工作人员信息。系统安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,通过用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。近而可以满足用户的基本数据安全性要求。完整性要求用于描述各种信息之间的制约关系,以及关联关系,各个数据项的取值范围以及各个数据项是否可以不取值。根据实际需要,采取一定的手段来满足用户的完整性需求。-1-(3)数据结构表2.1数据结构名数据结构含义组成fac工厂基本信息Fname,fn_nameroom车间基本信息RnoRnameRaddrRcallworker工人基本信息WnoWnameWageWsexWtypeproduct产品基本信息PnoPnamePricecomponent零件基本信息CnoweigtPricestore仓库基本信息SnoSnameScall2.2概念设计阶段(1)实体通过对上面的系统总体分析,可以得到大概的实体-关系模型(E-R模型),如下:工厂:{厂名,厂长名}工人:{职工号,姓名,性别,年龄,工种}车间:{车间号,车间主任姓名,地址,电话}产品:{产品号,价格,产品名}零件:{零件号,价格,重量}仓库:{仓库号,仓库主任姓名,电话}(2)由各子E-R合并得到的基本E—R如下图所示:图2。1-2—2.3逻辑结构设计根据上面的数据库ER图,现在需要将上面的数据库概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。实体型转换为关系模式.实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

4一个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(产品与仓库的联系);基本表的组成:表2.1基本表数据结构含义组成fac工厂基本信息Fname,fn_nameroom车间基本信息Rno,Rname,Raddr,Rcallworker工人基本信息Wno,Wname,Wage,Wsex,Wtypeproduct产品基本信息Pno,Pname,Pricecomponent零件基本信息Cno,weigt,Pricestore仓库基本信息Sno,Sname,Scallroom_com零件与车间的联系Rno,Cno,Stimepro_com零件与产品的联系Pno,Cno,numbercom_str零件与仓库的联系Cno,Sno,Strnum1pro_str产品与仓库的联系Pno,Sno,Strnum2工厂表表2。2列名数据类型能否空值默认值键/索引说明fnamevarchar(20)否主键、索引厂名fn_namevarchar(20)否厂长名车间表表2.3列名数据类型能否空值默认值键/索引说明Rnovarchar(10)否主键、索引车间号

5Rnamevarchar(20)否车间主任姓名Raddrvarchar(20)否车间地址Rcallint否电话零件表表2.4列名数据类型能否空值默认值键/索引说明Cnovarchar(10)否主键、索引零件号weightint否重量Pricenumeric(5,1)否价格工人表表2。5列名数据类型能否空值默认值键/索引说明Wnovarchar(10)否主键、索引职工号Wnamevarchar(20)否姓名Wageint否年龄Wsexvarchar(2)否性别Wtypevarchar(20)否工种产品表表2。6列名数据类型能否空值默认值键/索引说明Pnovarchar(10)否主键、索引产品号Pnamevarchar(20)否产品名称Pricenumeric(5,1)否价格—4-仓库表表2。7列名数据类型能否空值默认值键/索引说明Snovarchar(10)否主键、索引仓库号Snamevarchar(20)否仓库主任姓名Scallint否仓库电话生产表表2.8列名数据类型能否空值默认值键/索引说明Rnovarchar(10)否主键车间号Cnovarchar(10)否主键零件号Stimedatetime否生产日期组装表表2.9列名数据类型能否空值默认值键/索引说明Pnovarchar(10)否主键产品号Cnovarchar(10)否主键零件号numberint否组装数存放表表2.10列名数据类型能否空值默认值键/索引说明Snovarchar(10)否主键仓库号Cnovarchar(10)否主键零件号Pnovarchar(10)否主键产品号Strnum1Int否零件存放量

6Strnum2int否产品存放量建立索引:索引中记录了表中的关键值,提供了指向表中行的指针.它既可以在定义表时创建,也可以在定义表之后的任何时候创建.索引可以创建在一个列或多个列的组合上。(1)、在车间信息表车间号列上创建索引createindexroomRnoonroom(Rno)(2)、在车间信息表的车间主任姓名列上创建索引createindexroomRnameonroom(Rname)为数据库中各基本表建立的索引如下:由于有的基本表经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;2.5数据库安全及维护设计(1)在数据库fac中添加新用户xcm.usefactoryexecsp_grantdbaccess'yangkun','xcm'(2)创建登录名,添加角色execsp_addlogin'yangkun’,’1234',’factory’execsp_addsrvrolemember'yangkun’,'sysadmin’—5-(3)授权与基本表grantselect,updateonproducttoxcm;grantallprivilegesonworkertoxcm;grantallprivilegesoncomponenttoxcm;grantallprivilegesonstoretoxcm;grantallprivilegesonroomtoxcm;(4)创建视图createviewIS_storeasselectSno,Sname,ScallfromstorecreateviewIS_workerasselectWno,Wname,Wsex

7fromworkerwhereWsex=’女’createviewIS_productasselectPno,Pname,PricefromproductwherePno=12。6数据库实施阶段2.6.1建立数据库、数据表、索引—6-(1)建立数据库createdatabasefactoryonprimary(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,

8Wnamevarchar(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,

9numberint,primarykey(Pno,Cno),foreignkey(Pno)referencesproduct(Pno),foreignkey(Cno)referencescomponent(Cno));—8-创建存放表1createtablepro_str(Pnovarchar(10)notnull,Snovarchar(10)notnull,Strnum1int,primarykey(Pno,Sno),foreignkey(Pno)referencesproduct(Pno),foreignkey(Sno)referencesstore(Sno));创建存放表2createtablecom_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)2.6。2数据入库(1)存储过程createprocworker(@Wnovarchar(10),@Wnamevarchar(20),@Wageint,@Wsexvarchar(2),@Wtypevarchar(20),@Rnovarchar(10))asinsertintoworkervalues(@Wno,@Wname,@Wage,

10@Wsex,@Wtype,@Rno);-9—createprocroom(@Rnovarchar(10),@Rnamevarchar(20),@Rcallint,@Raddrchar(8),@fnamevarchar(20))asinsertintoroomvalues(@Rno,@Rname,@Rcall,@Raddr,@fname);createprocproduct1(@Pnovarchar(10),@Pnamevarchar(20),@Pricenumeric(5,1),@Rnovarchar(10))asinsertintoproductvalues(@Pno,@Pname,@Price,@Rno);createproccomponent1(@Cnovarchar(10),@Pricefloat,@weightfloat,)asinsertintocomponentvalues(@Cno,@Price,@weight);createprocstore1(@Snovarchar(10),@Snamevarchar(20),@Scallint,@fnamevarchar(20))asinsert-10-intostorevalues(@Sno,@Sname,@Scall,@fname);

11createprocfac1(@fnamevarchar(20),@fn_namevarchar(20))asinsertintofacvalues(@fname,@fn_name);createprocroom_com1(@Rnovarchar(10),@Cnovarchar(10),@stimedatetime)asinsertintoroom_comvalues(@Rno,@Cno,@stime);createprocpro_com1(@Cnovarchar(10),@Pnovarchar(10),@numberint)asinsertintopro_comvalues(@Cno,@Pno,@number);createprocpro_str1(@Pnovarchar(10),@Snovarchar(10),@Strnum1int)asinsertintopro_strvalues(@Pno,@Sno,@Strnum1);-11—createproccom_str1(@Cnovarchar(10),@Snovarchar(10),@Strnum2int)asinsertintocom_str

12values(@Cno,@Sno,@Strnum2);(2)存储数据execfac1@fname='奔驰’,@fn_name=’张磊’execroom1@Rno=1,@Rname=’刘基',@Rcall=4254357,@Raddr=’长沙’,@fname='奔驰'execroom1@Rno=2,@Rname='刘择机',@Rcall=4250046,@Raddr=’株洲',@fname=’奔驰’execworker1@Wno=102,@Wname='刘雄峰’,@Wage=40,@Wsex=’男’,@Wtype=’搬运工',@Rno=1execworker1—12—@Wno=103,@Wname=’刘芸',@Wage=21,@Wsex=’女’,@Wtype=’经理',@Rno=2execworker1@Wno=101,@Wname=’郑凡',@Wage=21,@Wsex='女',@Wtype=’前台接待',

13@Rno=1execworker1@Wno=104,@Wname='黄晓明',@Wage=27,@Wsex=’男',@Wtype='技术人员’,@Rno=2execproduct1@Pno=201,@Pname='轮胎’,@Price=’500’,@Rno=1execproduct1@Pno=202,@Pname=’引擎’,@Price=’9584.1’,@Rno=2execproduct1@Pno=203,@Pname='挡风玻璃',-13—@Price='1584。1’,@Rno=1execproduct1@Pno=204,@Pname='奔驰摩托',@Price='9999.9’,@Rno=1execproduct1@Pno=205,@Pname='奔驰货车',@Price='9999.0’,@Rno=2execcomponent1@Cno=c1002,@Price=’6520',

14@weight=’200'execcomponent1@Cno=c1001,@Price=’520’,@weight='10'execcomponent1@Cno=c1003,@Price=’925',@weight=’150'execcomponent1@Cno=c1004,@Price='654',@weight='100'execstore1-14-@Sno=101,@Sname='刘羽琦',@Scall=6991431,@fname='奔驰'execstore1@Sno=102,@Sname='吉鹏’,@Scall=6991254,@fname='奔驰’execroom_com1@Rno=1,@Cno=c1002,@stime=’2009-05—26'execroom_com1@Rno=2,@Cno=c1003,@stime=’2009-06-01’execpro_com1@Cno=c1002,@Pno=204,@number=45

15execpro_com1@Cno=c1004,@Pno=201,@number=89execpro_com1@Cno=c1001,@Pno=202,@number=124exec-15—pro_str1@Pno=201,@Sno=101,@Strnum1=345execpro_str1@Pno=203,@Sno=102,@Strnum1=1254execcom_str1@Cno=c1001,@Sno=102,@Strnum2=458execcom_str1@Cno=c1004,@Sno=101,@Strnum2=1461execcom_str1@Cno=c1002,@Sno=101,@Strnum2=1852execcom_str1@Cno=c1003,@Sno=102,@Strnum2=25413。系统调试和测试工厂表

16表3.1车间表表3。2—16—零件表表3。3产品表表3。4工人表表3.5仓库表表3。6存放表表3.7存放表表3.8组装表-17-表3.9生产表表3.10插入零件号=c1005结果截图insertintocomponent(Cno,price,weight)values(’c1005',98,695)表3。11查询产品信息selectPno,Pname,Pricefromproduct表3。12查在长沙生产地产品名称和产品价格selectPname,Pricefromproduct,roomwhereproduct。Rno=room.Rnoandroom。Raddr=’长沙’表3.13—18—把产品号为203的产品改成车头updateproductsetPname=’车头'wherePno=203表3.14查询价格大于2000.0元产品的信息select*fromproduct

17wherePrice>2000。0表3。15删除零件号为c1005的零件信息deletefromcomponentwhereCno=’c1005’表3.16把重量大于100的零件的价格改成65689。1updatecomponentsetPrice=5689.1whereweight>100表3.17—19—创建用户usefactoryexecsp_grantdbaccess'yangkun','xcm'图3.1创建的视图图3。2-20-图3。3图3。64。课程设计总结这次课程设计加深了我对数据库系统概论相关知识和SQLSERVER相关功能的理解。例如对建立基本表、视图、索引等,都比以前更加的熟练。并在解决遇到的各种问题的过程中,学到了很多新的知识。比如在导入\导出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题。一般是先导入主键表,后导入外键表,这样可以避免很多的错误.另外我还充分体会了从事软件开发工作需要特别严谨认真的态度和作风,一点都马虎不得.每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙了才向专家请教.尽管向专家请教解决问题比较快,自己钻研花的时间较多,但我强迫自己独立的思考对我的学习提高帮助非常大.由于我的知识浅薄,经验不足及阅历颇浅,在设计的过程中也存在一些问题。比如需求分析阶段的工作完成的不是很充分,在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利.另外比如功能过少等问题,我会在工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美.-21—

18参考文献:[1]萨师煊,王珊,数据库系统概论(第四版).北京:高等教育出版社,2008-22—

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭