浙江大学远程教育学院本科生毕业论文-《用数据库管理商品库存》何军炎D20600113002第1页共23页浙江大学远程教育学院本科生毕业论文(设计)题目用数据库管理商品库存专业计算机应用技术学习中心姓名学号指导教师年月日浙江大学远程教育学院本科生毕业论文-《用数据库管理商品库存》何军炎D20600113002第2页共23页摘要文章讨论了基于MSSQLServer和PowerBuilder的C/S两层数据库应用程序开发。在微软Windows操作系统环境下,服务器端安装SQLServer,客户端安装PowerBuilder开发的数据库应用程序,实现了简单的收货、发货商品库存管理。关键词:数据库程序设计SQLPowerBuilder收货发货库存浙江大学远程教育学院本科生毕业论文-《用数据库管理商品库存》何军炎D20600113002第3页共23页目录一、前言..................................................................................................................4二、应用系统运行平台..........................................................................................4(一)服务器端软件环境......................................................................................4(二)客户端软件环境(含开发工具)..............................................................4三、数据库设计......................................................................................................4(一)创建数据库..................................................................................................4(二)创建数据库用户..........................................................................................4(三)创建表和索引..............................................................................................4(四)建立表之间的关系......................................................................................5(五)定义数据库备份策略..................................................................................7四、应用程序设计..................................................................................................7(一)需求分析......................................................................................................71、访谈用户...............................................................................................72、需求说明书...........................................................................................7(二)软件设计......................................................................................................71、概览.......................................................................................................72、应用对象模块.......................................................................................83、用户登录模块.......................................................................................94、主界面模块.........................................................................................105、基础代码维护模块.............................................................................116、收货模块.............................................................................................157、发货模块.............................................................................................198、库存报表模块.....................................................................................21参考文献浙江大学远程教育学院本科生毕业论文-《用数据库管理商品库存》何军炎D20600113002第4页共23页一、前言随着计算机技术的发展,数据越来越重要,并且逐渐从程序中分离出来,至今已经形成了各种成熟的关系型数据库系统。在这个过程中,数据库的应用也越来越广泛,特别是在企业管理领域,从早期的MIS系统到现在的ERP软件和电子商务软件,都离不开数据库。数据库应用程序的开发工具也由早期的dbase、Foxbase发展到今天基于Web的面向对象的J2ee、.Net等开发平台。业界领先的ERP软件如SAP、Oracle等更是功能强大、庞大复杂,初始安装就需要上百GB的磁盘空间。然而,有许多原理是相通的,在这里我以MSSQLServer数据库管理系统和PowerBuilder开发工具创建一个库存管理的简单应用,以说明数据库应用的基本框架。二、应用系统运行平台(一)服务器端软件环境操作系统可安装Windows2000server(标准版或企业版)并打SP4补丁包或WindowsServer2003(标准版或企业版)并打SP2补丁包。数据库系统安装MicrosoftSQLServer2000(标准版或企业版)。(二)客户端软件环境(含开发工具)操作系统可安装Windows2000Professional版或WindowsXP,并打上最新的补丁包,再安装SQLServer2000客户端软件和PowerBuilder6.5。三、数据库设计(一)创建数据库通过SQLServer企业管理器创建一个名为Inventory的数据库,接受默认数据文件和日志文件的设置(如果是生产系统,还需考虑服务器性能并安排数据文件和日志文件到不同的磁盘阵列上)。(二)创建数据库用户通过SQLServer企业管理器,在数据库Inventory下创建用户MSA,并授予db_owner的角色。设置该用户的密码。(三)创建表和索引创建操作员代码表sys_opt,并将操作员代码设为主键:CREATETABLE[SYS_OPT]([CODE_OPT][char](6)NOTNULLprimarykey,--操作员代码[NAME_OPT][char](8)NOTNULL,--操作员姓名[PASSWORD][char](10)NULL--密码)GO在操作员代码表中先增加一条记录,用于管理员登录:浙江大学远程教育学院本科生毕业论文-《用数据库管理商品库存》何军炎D20600113002第5页共23页INSERTINTO[SYS_OPT]([CODE_OPT],[NAME_OPT],[PASSWORD])VALUES('admin','管理员','')GO创建仓库代码表list_warehouse,并将仓库代码设为主键:CREATETABLE[LIST_WAREHOUSE]([CK_NO][char](4)NOTNULLPRIMARYKEY,--仓库代码[CK_NAME][char](20)NOTNULL,--仓库名称[CK_ADDRESS][varchar](200)NULL--仓库地址)GO创建物料代码表list_material,并将物料代码设为主键:CREATETABLE[LIST_MATERIAL]([MATERIAL_NO][char](4)NOTNULLPRIMARYKEY,--物料代码[MATERIAL_NAME][char](20)NOTNULL,--物料名称[UNIT][char](4)NOTNULL--计量单位)GO创建收发货记录表MATERIAL_ACCOUNT,并将单据号码设为主键。因为收货单与发货单的结构非常相似,在这里用一张表来进行存储,增加一个单据类型字段,用以区分是收货单还是发货单。这里还假设计量单位都与物料代码表中的一致,所以不保存计量单位。为了简单起见,在这里用系统自动产生的流水号来表示单据号。CREATETABLEMATERIAL_ACCOUNT(--单据号码设为主键和自动增长标识列RECORD_NOINTNOTNULLIDENTITY(1,1)PRIMARYKEY,RECORD_TYPECHAR(2)NOTNULL,--单据类型(GR收货,GI发货)RECORD_DATEDATETIMENOTNULL,--制单日期CK_NOCHAR(4)NOTNULL,--仓库代码MATERIAL_NOCHAR(4)NOTNULL,--物料代码AMOUNTDECIMAL(18,3)NOTNULL,--数量CODE_OPTCHAR(6)NOTNULL--操作员代码)GO为了提高性能,在表MATERIAL_ACCOUNT中分别以操作员代码、仓库代码、物料代码创建索引。而操作员代码表、仓库代码表、物料代码表则已经有系统自动按关键字创建的索引了。(四)建立表之间的关系浙江大学远程教育学院本科生毕业论文-《用数据库管理商品库存》何军炎D20600113002第6页共23页为了避免在表MATERIAL_ACCOUNT中输入无效的仓库代码、物料代码和操作员代码,分别在这几列中创建外键约束,参照引用操作员代码表、物料代码表、仓库代码表。这样,就建立了表MATERIAL_ACCOUNT和表SYS_OPT、LIST_WAREHOUSE、LIST_MATERIAL之间的关系。浙江大学远程教育学院本科生毕业论文-《用数据库管理商品库存》何军炎D20600113002第7页共23页(五)定义数据库备份策略在这里仅仅使用简单恢复模型,并设定每周六凌晨0点进行完全备份和每天晚