数据库系统概论课程设计-库存物资管理系统的设计与实现.doc

上传人:小小飞 文档编号:3277234 上传时间:2019-08-07 格式:DOC 页数:35 大小:1.61MB
返回 下载 相关 举报
数据库系统概论课程设计-库存物资管理系统的设计与实现.doc_第1页
第1页 / 共35页
数据库系统概论课程设计-库存物资管理系统的设计与实现.doc_第2页
第2页 / 共35页
数据库系统概论课程设计-库存物资管理系统的设计与实现.doc_第3页
第3页 / 共35页
数据库系统概论课程设计-库存物资管理系统的设计与实现.doc_第4页
第4页 / 共35页
数据库系统概论课程设计-库存物资管理系统的设计与实现.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《数据库系统概论课程设计-库存物资管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《数据库系统概论课程设计-库存物资管理系统的设计与实现.doc(35页珍藏版)》请在三一文库上搜索。

1、 数据库系统概论课程设计(库存物资管理系统的设计与实现)作者: 专业: 信息管理与信息系统 班级: 2班 学号: 222008362063033 成绩: 指导教师: 西南大学信息管理系目录前 言3一、需求分析4系统功能分析41.组织机构42.管理职能分析43.业务流程分析5数据分析51.用户与设计需求52.数据字典7二、概念结构设计121.实体及其属性图132.实体及其联系图143.完整的实体-联系图(E-R图)154.视图的集成15三、逻辑结构设计151.E-R图向关系模型的转换以及数据模型的优化152.设计用户子模式163.系统逻辑模型17四、数据库的物理设计171.关系模式存取方法的选择

2、172.确定数据的存储结构173.确定系统配置184.评价物理结构18五、数据库的实施和维护181.数据的载入和应用程序的调试182.数据库的试运行183.数据库的运行和维护18附录1: 系统截图19附录2:部分程序的代码清单21参考文献36前 言在计算机日益普及的今天,对个人而言若采用一套行之有效的库存管理系统来管理自己的物品,会方便许多。对库存管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到高效的管理效率。为了便于库存物资的管理需要有高效的库存物资管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,达

3、到提高库存信息管理效率的目的。采用数据库技术生成的库存物资管理系统将会极大地方便使用者并简化库存管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。基于这个问题,开发了简洁的通用库存物资管理系统。系统采用C/S模式,实现了出/入库的方便、高效性、有效性和及时性。本课程设计通过作者设计和开发一个中小型库存物资管理系统的实践,阐述了库存物资管理软件中所应具有的基本功能、设计、实现。关键字:库存;物资管理;数据库维护;本课程设计以库存物资管理系统开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。在程序设计与调试上采用了自上而

4、下,逐步细化,逐步完善的原则。采用结构化的功能模块设计系统功能,可读性好,易于扩充。基本功能较全面,系统可读性好,易于维护、更新,安全性好。一、需求分析背景资料:1) 有不止一个存放商品的仓库,每天都有商品出库和入库。2) 每种商品都有名称、生产厂家、型号、规格、库存量。3) 出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期时间、出入库单位名称、经手人姓名。系统功能分析1.组织机构据通用库存管理系统的分析,假设库存管理部门的组织机构图如图1所示:图1 组织结构设置图2.管理职能分析由组织结构设置关系和客观分析,可以得到系统的管理职能图,如图2所示:图2 管理职能3

5、.业务流程分析现行库存物资管理系统的业务流程图如图3所示:图3 业务流程图数据分析1.用户与设计需求(1) 信息要求由背景资料可知本系统必须存储商品信息和出入库信息,具体分析就是:商品名称、生产厂家、型号、规格、数量、日期时间、出入库单位名称、经手人姓名、库存量。(2) 处理要求用户的要求:1.能够显示商品的基本信息:商品名称、生产厂家、型号、规格、库存量。2在进行商品出入库信息处理时,能够方便、快捷地将原始出入库单据的信息录入系统。3.实现按商品名称、出入库日期的查询。4.实现分别按日、月、年对出入库商品数量的统计。.响应时间的要求:(国际标准)处理方式:批处理。(3) 安全性与完整性要求安

6、全性设计要求:数据库安全级别:C1 自主安全保护(Discretionary Security Protection)TCSEC/TDI标准完整性设计要求(数据库的完整性约束条件):1. 出库数量=0)3. 当原始库存0时,有库存量 = 入库数量 出库数量4. 库存量=05. 入库数量=06. 出库数量=07. 各属性值!=null8. 商品基本信息视图中的“库存量”=f(商品编号i,仓库编号j) (i,j=0,1,2n)其中,f(商品编号i,仓库编号j)表示由商品编号i和仓库编号j所唯一确定的库存量。此表达式的意思是在视图的“库存量”属性显示该商品在所有仓库中库存量的总和。备注:原始库存,即

7、在系统建立之前存入库的,并且原始凭证丢失或损坏或与实际库存情况不符的那部分商品库存。(4) 数据流图(DFD)1. 顶层数据流程图如图4所示:图4 顶层DFD“1”:商品入库单据“2”:商品出库单据“3”:商品基本信息“4”:出入库信息和商品基本信息的查询、统计结果2. 第一层数据流程图如图5所示:图5中的数据流“1,2,3,4”与图4中的数据流“1,2,3,4,”相同。图5 第一层DFD3. 第二层数据流程图如图6所示:现对图6中的数据流说明如下:“1”:录入数据库的商品信息“2”:录入数据库的仓库信息“3”:录入数据库的生产厂家信息“4”:进行商品入库业务时所填制的纸质单据“5”:进行商品

8、出库业务时所填制的纸质单据“6”:将商品信息、仓库信息、生产厂家信息通过连接等操作实现商品信息查询与统计“7”:将手工的商品入库凭证、商品出库凭证转化为数据库中的电子记录,并通过连接等操作实现商品出入库信息的查询与统计“8”:将商品信息、商品出入库信息的查询与统计结果输出至系统视图并显示图6 第二层DFD2.数据字典(1)数据项01 商品编号 nchar(10) 主键 02 商品名称 nchar(10)03 厂家编号 nchar(10) 主键04 厂家名称 nchar(10) 别名:生产厂家05 型号 nchar(10)06 规格 nchar(10)07 库存量 int08 仓库编号 ncha

9、r(10) 主键09 仓库名称 nchar(10)10 单位编号 nchar(10) 主键11 单位名称 nchar(10) 别名:出库单位/入库单位12 经手人姓名 nchar(10)13 入库时间 datetime14 入库数量 int15 出库时间 datetime16 出库数量 int(2)数据结构01 商品表 02 商品编号 nchar(10)主键 02 商品名称 nchar(10) 02 型号 nchar(10) 02 规格 nchar(10)01 仓库表 02 仓库编号 nchar(10) 主键 02 仓库名称 nchar(10)01 生产厂家表 02 厂家编号 nchar(10

10、) 主键 02 厂家名称 nchar(10)01出/入库单位表 02单位编号 nchar(10) 主键02单位名称 nchar(10)02经手人姓名 nchar(10)01 商品-仓库表 02 商品编号 nchar(10) 外键 参照主表:商品表 02 仓库编号 nchar(10) 外键 参照主表:仓库表 02 库存量 int01 商品-生产表 02商品编号 nchar(10) 外键 参照主表:商品表 02厂家编号 nchar(10) 外键 参照主表:生产厂家表01 商品-入库表 02商品编号 nchar(10) 外键 参照主表:商品表02单位编号 nchar(10) 外键 参照主表:出/入库

11、单位表02入库时间 datetime 主键02入库数量 int01 商品-出库表 02商品编号 nchar(10) 外键 参照主表:商品表02单位编号 nchar(10) 外键 参照主表:出/入库单位表02出库时间 datetime 主键02出库数量 int(3)数据流1. 数据流名:商品基本信息说明:将商品表和仓库表通过商品-仓库表连接,然后再与生产厂家表通过商品-生产表连接,并输出至系统终端显示。流量:实时查询、更新,基本无限制来源:商品表、仓库表、商品-仓库表、生产厂家表、商品-生产表去向:系统终端视图2. 数据流名:商品入库信息说明:将商品表和出/入库单位表通过商品-入库表连接,然后再

12、与生产厂家表通过商品-生产表连接,并输出至系统终端显示。流量:最大(MAX)50次/日 平均(AVG)30次/日来源:商品表、出/入库单位表、商品-入库表、生产厂家表、商品-生产表去向:系统终端视图3. 数据流名:商品出库信息说明:将商品表和出/入库单位表通过商品-出库表连接,然后再与生产厂家表通过商品-生产表连接,并输出至系统终端显示。流量:最大(MAX)50次/日 平均(AVG)30次/日来源:商品表、出/入库单位表、商品-出库表、生产厂家表、商品-生产表去向:系统终端视图(5) 数据存储1. 手工凭单:入库单据、出库单据存取方式:手工填制存取频度:随填随存、随填随取来源:真实的出/入库业

13、务去向:录入系统的数据库2. 计算机文档:基本表 商品表、出/入库单位表、商品-出库表、商品-入库表、生产厂家表、商品-生产表、仓库表、商品-仓库表视图商品基本信息视图、商品入库信息视图、商品出库信息视图基本表: 商品表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AVG)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接 出/入库单位表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AVG)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接 商品-出库表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AV

14、G)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接 商品-入库表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AVG)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接 生产厂家表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AVG)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接 商品-生产表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AVG)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接 仓库表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AV

15、G)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接 商品-仓库表存取方式:批处理、检索、更新存取频度:最大(MAX)50次/日 平均(AVG)30次/日来源:录入系统的数据库的数据去向:与其他基本表连接视图: 商品基本信息视图存取方式:检索、更新存取频度:基本无限制,视具体情况而定来源:数据库中的基本表去向:在系统终端显示 商品入库信息视图存取方式:检索、更新存取频度:基本无限制,视具体情况而定来源:数据库中的基本表去向:在系统终端显示 商品出库信息视图存取方式:检索、更新存取频度:基本无限制,视具体情况而定来源:数据库中的基本表去向:在系统终端显示(6) 处理过程1. 商品基本

16、信息显示说明:用于显示商品的基本信息输入:商品表、仓库表、商品-仓库表、生产厂家表、商品-生产表输出:商品基本信息2. 商品入库信息显示说明:用于显示商品入库信息输入:商品表、生产厂家表、商品-生产表、出/入库单位表、商品-入库表输出:商品入库信息3. 商品出库库信息显示说明:用于显示商品入库信息输入:商品表、生产厂家表、商品-生产表、出/入库单位表、商品-出库表输出:商品出库信息具体处理过程见数据流图(DFD)。二、概念结构设计本系统的概念结构设计采用自顶向下方法。即首先定义全局概念结构的框架,然后逐步细化,如图7所示:图7 本系统概念模式的自顶向下策略系统E-R图的设计和实现:1. 实体及

17、其属性图根据数据抽象得到实体及其属性图,如图8所示:图8 实体及其属性图2. 实体及其联系图根据实体及其属性图设计实体及其联系图,如图9所示:图9 实体及其联系图3. 完整的实体-联系图(E-R图)合并实体及其属性图和实体及其联系图,得到完整的实体-联系图(E-R图),如图10所示:图10 完整的实体-联系图(E-R图)4.视图的集成本系统属于小型管理信息系统,E-R图很简单,在设计之初便完成了集成,无需多次集成。三、逻辑结构设计1.E-R图向关系模型的转换以及数据模型的优化根据系统的E-R图转换关系模型如下,规范化水平:BCNF仓库(仓库编号,仓库名称)生产厂家(厂家编号,厂家名称)商品(商

18、品编号,名称,型号,规格)出入库单位(单位编号,单位名称,经手人姓名)商品-生产(商品编号,厂家编号)商品-仓库(商品编号,仓库编号,库存量)商品-入库(商品编号,单位编号,入库时间,入库数量)商品-出库(商品编号,单位编号,出库时间,出库数量)备注:有下划线的属性为主键或外键本系统数据库各基本表的逻辑关系如图11所示:图11 各基本表的逻辑结构图2.设计用户子模式(1)使用符合用户习惯的别名厂家名称 nchar(10) 别名:生产厂家单位名称 nchar(10) 别名:出库单位/入库单位(2)定义用户视图(View)商品基本信息视图(商品名称,生产厂家,型号,规格,库存量)商品入库信息视图(

19、商品名称,生产厂家,型号,规格,入库数量,入库单位,经手人姓名,入库时间)商品出库信息视图(商品名称,生产厂家,型号,规格,出库数量,出库单位,经手人姓名,出库时间)4. 系统逻辑模型系统逻辑模型如图12所示:图12 系统逻辑模型四、数据库的物理设计1.关系模式存取方法的选择本系统采用默认存取方法:B+树索引方法。2.确定数据的存储结构本系统采用顺序存储和链式存储相结合的存储结构。3.确定系统配置本系统采用单机用户操作方式,基本配置如下:机型:ACER光驱:DVD-R硬盘:540MB内存:8MB显示器:LED打印机:HP操作系统:Windows XP、Windows 7、Windows 200

20、0软件环境:.NET CLR安装地点:仓库办公室4.评价物理结构综合存取时间、存储空间利用率、维护代价3个方面的因素,本系统物理结构评级为:中上。五、数据库的实施和维护1.数据的载入和应用程序的调试本系统采用Visual C#.NET开发,在Visual Studio 2010环境下编写代码,运行调试。使用Microsoft SQL Server 2005创建并连接数据库。2.数据库的试运行在载如数据后,跟踪观测数据库运行的情况,因为系统规模较小,设计时考虑较周全,没有发现异常状况。3.数据库的运行和维护在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的,包括: 数据库的转储和恢复

21、 数据的安全性、完整性控制 数据库性能的监督、分析和改造 数据库的重组织与重构造附录1: 系统截图主界面商品入库信息窗口商品出口信息窗口基本信息录入窗口入库信息查询窗口出口信息查询窗口MessageBox出入库信息统计查询窗口附录2:部分程序的代码清单连接类class dbconn string sql = data source=MOONHOW-E3BEA7B;initial catalog = 库存管理系统;Integrated Security=True; public SqlConnection getconn() SqlConnection mycon = new SqlConnec

22、tion(sql); return mycon; 操作类 class dboperation dbconn connstr = new dbconn (); /返回数据集ds public DataSet getdataset(string sql, string table) SqlConnection conn = connstr.getconn (); conn.Open(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); sda.Fill(ds, table); conn.

23、Close(); return ds; /执行Dsql public void sqlcmd(string sqlstr) SqlConnection conn = connstr.getconn(); conn.Open(); SqlCommand scmd = new SqlCommand(sqlstr, conn); scmd.ExecuteNonQuery(); conn.Close(); /返回datatable public DataTable GetTable(string sql) SqlConnection conn = connstr.getconn(); conn.Ope

24、n(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); sda.Fill(dt); return dt; 主窗体public Form1() InitializeComponent(); private void 入库信息查询ToolStripMenuItem_Click(object sender, EventArgs e) Fm_r_chaxun f = new Fm_r_chaxun(); f.Show(); private void 退出ToolStripMenuI

25、tem_Click(object sender, EventArgs e) this.Close(); private void 入库信息录入ToolStripMenuItem_Click(object sender, EventArgs e) Fm_l_ruku lk = new Fm_l_ruku(); lk.Show(); private void 出库信息录入ToolStripMenuItem_Click(object sender, EventArgs e) Fm_l_chuku lc = new Fm_l_chuku(); lc.Show(); private void 基本信息录

26、入ToolStripMenuItem_Click(object sender, EventArgs e) Fm_jiben j = new Fm_jiben(); j.Show(); private void 出库信心查询ToolStripMenuItem_Click(object sender, EventArgs e) Fm_c_chaxun c = new Fm_c_chaxun(); c.Show(); private void 入库信息统计ToolStripMenuItem_Click(object sender, EventArgs e) Fm_t f = new Fm_t();

27、f.Show(); 提示窗体代码 public Fm_tisi() InitializeComponent(); private void Fm_tisi_Load(object sender, EventArgs e) this.label1.Text = 按年统计 yyyy 按月统计 yyyy-mm 按天统计 yyyy-mm-dd; 统计窗体代码public partial class Fm_t : Form public Fm_t() InitializeComponent(); private void button1_Click(object sender, EventArgs e)

28、 string time = this.textBox1.Text.Trim(); dbconn myconn = new dbconn(); SqlConnection conn = myconn.getconn(); string sql = select 入库单位,入库数量 from 商品入库信息视图 where 入库时间 like%+time+% ; conn.Open(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); sda.Fill(dt); dataGrid

29、View1.DataSource = dt; sql = select 出库单位,出库数量 from 商品出库信息视图 where 出库时间 like %+time+%; SqlDataAdapter sda1 = new SqlDataAdapter(sql, conn); DataTable dt1 = new DataTable(); sda1.Fill(dt1); dataGridView2.DataSource = dt1; private void textBox1_MouseEnter(object sender, EventArgs e) if(public.i=1 ) Fm_

30、tisi tis = new Fm_tisi(); tis.Show(); public.i+; 基础信息输入窗口表public partial class Fm_jiben : Form public Fm_jiben() InitializeComponent(); private void button1_Click(object sender, EventArgs e) this.tb_cjbh.Text = ; this.tb_cjmc.Text = ; this.tb_ckbh.Text = ; this.tb_ckmc.Text = ; this.tb_dwbh.Text = ;

31、 this.tb_dwmc.Text = ; this.tb_gg.Text = ; this.tb_jbrxm.Text = ; this.tb_kcl.Text = ; this.tb_spbh.Text = ; this.tb_spmc.Text = ; this.tb_xh.Text = ; this.tb_spbh.Focus(); private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) /商品表 string spbh = tb_spbh.Text; string spm

32、c = tb_spmc.Text; string xh = tb_xh.Text; string gg = tb_gg.Text; /连接数据库,插入数据 string sqlstr = insert into 商品(商品编号,商品名称,型号,规格)values( + spbh + , + spmc + , + xh + , + gg + ); dbconn mycon = new dbconn(); SqlConnection conn = mycon.getconn(); conn.Open(); SqlCommand scmd = new SqlCommand(sqlstr, conn)

33、; scmd.ExecuteNonQuery(); / / /对下面的下拉列表框进行更新 sqlstr = select 商品编号 from 商品; SqlCommand command = new SqlCommand(sqlstr, conn); SqlDataReader dr = command.ExecuteReader(); while (dr.Read() this.cob_spbh.Items.Add(dr0.ToString(); / / command.Cancel(); dr.Close(); conn.Close(); private void linkLabel2_L

34、inkClicked(object sender, LinkLabelLinkClickedEventArgs e) /入库出库单位 string dwbh = tb_dwbh.Text; string dwmc = tb_dwmc.Text; string jsrxm = tb_jbrxm.Text; /连接数据库 ,插入数据 string sqlstr = insert into 出入库单位(单位编号,单位名称,经手人姓名)values( +dwbh + , + dwmc + , + jsrxm + ); dbconn mycon = new dbconn(); SqlConnection

35、 conn = mycon.getconn(); conn.Open(); SqlCommand scmd = new SqlCommand(sqlstr, conn); scmd.ExecuteNonQuery(); conn.Close(); private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) /生产厂商信息 string cjbh = tb_cjbh.Text; string cjmc = tb_cjmc.Text; /连接数据库,插入数据 string sqlstr =

36、insert into 生产厂家(厂家编号,厂家名称)values( + cjbh + , + cjmc + ); dbconn mycon = new dbconn(); SqlConnection conn = mycon.getconn(); conn.Open(); SqlCommand scmd = new SqlCommand(sqlstr, conn); scmd.ExecuteNonQuery(); conn.Close(); private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) /仓库表 string ckbh = tb_ckbh.Text; string ckmc = tb_ckmc.Text; /连接数据库,插入数据 string sqlstr = insert into 仓库(仓库编号,仓库名称)values( + c

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1