资源描述:
《药品进销存系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
电商09数据库系统实习报告(学号+姓名)浙江树人大学信息科技学院《数据库系统实习》实习报告课题:进销存管理系统班级:电商091学号:200905017122姓名:何锴翔2012.320
1电商09数据库系统实习报告(学号+姓名)目录第一章需求分析31.1功能介绍31.2系统目标31.3系统功能划分31.4功能描述3第二章概念结构设计52.1目的52.2各个分E-R图52.3全局E-R图8第三章逻辑结构设计103.1目的103.2建立关系模式103.3关系模式规范化10第四章物理结构设计124.1目的124.2表的构建124.3索引的作用154.4索引代码15第五章数据库完整性、安全性设计165.1目的165.2数据库完整性设计165.3数据库安全性设计18第六章实训总结206.1实训总结2020
2电商09数据库系统实习报告(学号+姓名)需求分析1.1功能介绍 进销存软件的功能有购采购、采购退货、采购付款、销售、销售退货、销售付款、退货情况、盘库、仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,采购付款汇总、明细报表多仓库,多币种,多结算方式(先进先出,移动平均等),报表等功能,进销存可以使您摆脱繁杂的数字统计等琐事,只需轻松的点击鼠标即可,进销存可以分为B/S架构和C/S架构.B/S是浏览器/服务器模式,只要在服务器装好后,其他人只需要用浏览器(比如IE)就可以正常浏览。1.2系统目标药房进销存系统组织结构图1.3系统功能划分系统功能结构图1.4功能描述w入库管理入库单录入:将新进的药品进行入库扫描,录入,方便确认核对。冲入库单:将之前录入的入库单进行冲销,进行第二次录入入库单作废:药品录入完毕时,发现入库单有错但已无法更改时,该入库单将以作废处理,再进行重新录入。20
3电商09数据库系统实习报告(学号+姓名)重打入库单:对已录入的入库单进行重新操作。添加发票号:将录入完成的药品添加发票号。w出库管理出库单录入:药品在出仓前进行出库扫描,方便确认核对。冲出库单:将之前录入的出库单进行冲销,进行第二次录入。出库单作废:药品录入完毕时,发现入库单有错但已无法更改时,该出库单将以作废处理,再进行重新录入。重打出库单:对已录入的出库单进行重新操作。w移库管理移库单录入:药品从该仓库转移到另一仓库时,双方仓库均进行移库扫描,方便确认核对。冲移库单:将之前录入的移库单进行冲销,进行第二次录入。移库单作废:将要移库药品录入完毕时,发现移库单有错但已无法更改时,该移库单将以作废处理,再进行重新录入。重打移库单:对已录入的移库单进行重新操作。接受移库:确定转移的药品无误,双方录入也无错误时,确定接受移库。w仓库复核在进行入库,出库,移库等操作后进行仓库的复核,确定药品出入无误。w查询与统计入库单查询:对已经录入仓库的药品进行查询。出库单查询:对已经录入出库的药品进行查询。移库单查询:对已经录入移库的药品进行查询。仓库查询:对仓库中存有的药品进行查询。打印物价本:对全部采购记录以报表的形式进行打印输出。w收款与复核进行财务的核对。w系统维护对整个系统,数据,以及客户资料进行维护。20
4电商09数据库系统实习报告(学号+姓名)第二章概念结构设计2.1目的w掌握数据库概念结构设计的方法w掌握E-R图的画法2.2各个分E-R图分E-R图的建立依据于数据流图的建立,如下图所示。w供应商实体图的属性包括供应商编号,供应商名称,供应商品数量,供应商地址,联系方式。如图2-1所示图2-1供应商实体图w管理员实体图的属性包括管理员编号,管理员姓名,性别,地址,联系方式,部门。如图2-2所示图2-2管理员实体图w客户实体图的属性包括编号,姓名,性别,年龄,联系方式,地址。如图2-3所示20
5电商09数据库系统实习报告(学号+姓名)图2-3客户实体图w商品实体图的属性包括商品编号,商品名称,供应商,商品批号商品规格,生产厂家,生产日期,入库价格,零售价格,备注。如图2-4所示图2-4商品实体图w仓库实体图的属性包括仓库名称,仓库编号,备注信息。如图2-5所示20
6电商09数据库系统实习报告(学号+姓名)图2-5仓库实体图w采购员实体图的属性包括编号,姓名,地址,联系方式。如图2-6所示图2-6采购员实体图w供应商—采购员之间的联系图,如图2-7所示图2-7供应商—采购员联系图供应商可以将商品提供给多个采购员,采购员也可以向多个供应商进行采购,因此,供应商与采购员之间的联系是m:n的关系。w商品—采购员之间的联系图,如图2-8所示图2-8商品—采购员联系图商品可以提供给多个采购员,采购员也可以采购多种商品,因此,商品与采购员之间的联系是m:n的关系。20
7电商09数据库系统实习报告(学号+姓名)w商品—管理员之间的联系图,如图2-9所示图2-9商品—管理员之间的联系图管理员可以管理多种商品,因此,商品与管理员之间的联系是1:n的关系。w仓库—管理员之间的联系图,如图2-10所示图2-10管理员—仓库之间的联系图管理员可以同时管理多个仓库,一个仓库也可以由多个管理员来管理,因此,仓库与管理员之间的联系是m:n的关系。w仓库—商品之间的联系图,如图2-11所示图2-11商品—仓库之间的联系图仓库可以存储多种商品,方便管理将多个商品也能存储在一个仓库中,因此,仓库与商品之间的联系是1:n的关系。w仓库—商品之间的联系图,如图2-12所示图2-12商品—客户之间的联系图商品可以由多个客户购买,一个客户也可以购买多个商品,因此,商品与客户之间的联系是m:n的关系。2.3全局E-R图综合各部分的分E-R图,药品进销存管理系统的总体E-R图的设计如下图2-13所示。20
8电商09数据库系统实习报告(学号+姓名)图2-13全局E-R图供应商提供商品给采购员,可以是多个供应商将商品提供给多个采购员,因此,供应商与采购员的关系是m:n的关系。多个采购员采购商品,可以采购多种商品,因此,采购员与商品之间的联系是m:n的关系。管理员将商品进行整理,为管理方便,通常由一个管理员来整理仓库中的商品,因此,管理员与商品之间的联系是m:n的关系。为了方便管理,由管理员来管理多个仓库,因此,管理员与仓库之间的联系是1:n的关系。仓库可以存储多种商品,商品也能存储在多个仓库中,因此,仓库与商品之间的联系是1:n的关系。客户购买商品,经常是多个客户买多种商品,所以商品与客户之间的联系也是m:n的关系。20
9电商09数据库系统实习报告(学号+姓名)第三章逻辑结构设计3.1目的w掌握数据库逻辑结构设计的方法w掌握E-R图向管理数据模型转化的几个原则3.2建立关系模式供应商和采购员为m:n的关系,将它们之间的联系转换为独立的关系模式。采购员和商品为m:n的关系,将它们之间的联系转换为独立的关系模式。仓库和商品的关系为1:n,将它们之间的联系与n端实体合并。管理员和仓库为m:n的关系,将它们之间的联系转换为独立的关系模式。管理员和商品的关系为1:n的关系,将它们之间的联系与n端实体合并。客户和商品之间的联系为m:n的关系,将它们之间的联系转换为独立的关系模式。w实体转换为关系模式供应商(供应商编号,供应商名称,供应商品数量,供应商地址,联系方式)采购员(采购员编号,采购员姓名,地址,联系方式)商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注)管理员(管理员编号,管理员姓名,性别,部门,联系方式,地址)仓库(仓库编号,仓库名称,备注)客户(客户编号,客户姓名,性别,年龄,联系方式,地址)w联系转换为关系模式提供(供应商编号,采购员编号,供应商品数量,联系方式)采购(商品编号,采购员编号,商品数量,商品价格,采购日期)整理(商品编号,管理员编号,商品数量)管理(管理员编号,仓库编号,部门)存储(商品编号,仓库编号,商品数量)购买(商品编号,客户编号,商品数量,零售价格,销售日期,联系方式)3.3关系模式规范化w供应商和采购员为m:n的关系,将它们之间的联系转换为独立的关系模式。供应商(供应商编号,供应商名称,供应商品数量,供应商地址,联系方式)采购员(采购员编号,采购员姓名,地址,联系方式)提供(供应商编号,采购员编号,供应商品数量,联系方式)w采购员和商品为m:n的关系,将它们之间的联系转换为独立的关系模式。采购员(采购员编号,采购员姓名,地址,联系方式)商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注)采购(商品编号,采购员编号,商品数量,商品价格,采购日期)w仓库和商品的关系为1:n,将它们之间的联系与n端实体合并。仓库(仓库编号,仓库名称,备注)20
10电商09数据库系统实习报告(学号+姓名)商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注,商品数量)w管理员和仓库为m:n的关系,将它们之间的联系转换为独立的关系模式。管理员(管理员编号,管理员姓名,性别,部门,联系方式,地址)仓库(仓库编号,仓库名称,备注)管理(管理员编号,仓库编号,部门)w管理员和商品的关系为1:n的关系,将它们之间的联系与n端实体合并。管理员(管理员编号,管理员姓名,性别,部门,联系方式,地址)商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注,商品数量)w客户和商品之间的联系为m:n的关系,将它们之间的联系转换为独立的关系模式。商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注)客户(客户编号,客户姓名,性别,年龄,联系方式,地址)购买(商品编号,客户编号,商品数量,零售价格,销售日期,联系方式)20
11电商09数据库系统实习报告(学号+姓名)第四章物理结构设计4.1目的w掌握将数据库关系模式在相应的DBMS上实现的方法4.2表的构建w供应商CREATETABLEgys(供应商编号Char(4)Notnullprimarykey,供应商名称Varchar(20)Notnull,供应商品数量Varchar(20),供应商地址Varchar(4),联系方式Char(4))列名数据类型字符允许空供应商编号Char4Checked供应商名称Varchar20Checked供应商品数量Varchar20Checked供应商地址Varchar4Checked联系方式Char4Checkedw采购员CREATETABLEcgy(采购员编号Char(4)Notnullprimarykey,采购员姓名Varchar(20)Notnull,地址Varchar(20),联系方式Varchar(4))列名数据类型字符允许空采购员编号Char4Checked采购员姓名Varchar20Checked地址Varchar20Checked联系方式Varchar4Checkedw商品CREATETABLEsp(商品编号Char(4)Notnullprimarykey,商品名称Varchar(20)Notnull,供应商Varchar(20),商品批号Varchar(4),商品规格Char(4),生产厂家Varchar(20)入库价格Varchar(4),零售价格Varchar(4),生产日期Varchar(4),备注Varchar(20))列名数据类型字符允许空商品编号Char4Checked商品名称Varchar20Checked供应商Varchar20Checked商品批号Varchar4Checked20
12电商09数据库系统实习报告(学号+姓名)商品规格Char4Checked生产厂家Varchar20Checked入库价格Varchar4Checked零售价格Varchar4Checked生产日期Varchar4Checked备注Varchar20Checkedw管理员CREATETABLEgly(管理员编号Char(4)Notnullprimarykey,管理员姓名Varchar(20)Notnull,性别Varchar(4),部门Varchar(20),联系方式Char(4),地址Varchar(20))列名数据类型字符允许空管理员编号varchar4Checked管理员姓名varchar20Checked性别varchar10Checked部门varchar10Checked联系方式varchar10Checked地址varchar20Checkedw仓库CREATETABLEck(仓库编号Char(4)Notnullprimarykey,仓库名称Varchar(20)Notnull,备注Varchar(20))列名数据类型字符允许空仓库编号Char4Checked仓库名称Varchar20Checked备注Varchar20Checkedw客户CREATETABLEgly(客户编号Char(4)Notnullprimarykey,客户姓名Varchar(20)Notnull,性别Varchar(4),年龄Varchar(4),联系方式Char(4),地址Varchar(20))列名数据类型字符允许空客户编号Char4Checked客户姓名Varchar20Checked性别Varchar4Checked年龄Varchar4Checked联系方式Char(50)4Checked地址Varchar(50)20Checked20
13电商09数据库系统实习报告(学号+姓名)w提供CREATETABLEtg(供应商编号Char(4)Notnullprimarykey,采购员编号Varchar(20)Notnull,供应商品数量Varchar(20),联系方式Char(4))列名数据类型字符允许空供应商编号Char4Checked采购员编号Varchar20Checked供应商品数量Varchar20Checked联系方式Char4Checkedw采购CREATETABLEcg(商品编号Char(4)Notnullprimarykey,采购员编号Varchar(20)Notnull,商品数量Varchar(20),商品价格Char(4),采购日期Varchar(20))列名数据类型字符允许空商品编号Char4Checked采购员编号Varchar20Checked商品数量Varchar20Checked商品价格Char4Checked采购日期Varchar20Checkedw整理CREATETABLEzl(商品编号Char(4)Notnullprimarykey,管理员编号Varchar(20)Notnull,商品数量Varchar(20))列名数据类型字符允许空商品编号Char4Checked管理员编号Varchar20Checked商品数量Varchar20Checkedw管理CREATETABLEgl(管理员编号Char(4)Notnullprimarykey,仓库编号Varchar(20)Notnull,部门Varchar(20))列名数据类型字符允许空管理员编号Char4Checked仓库编号Varchar20Checked部门Varchar20Checkedw存储20
14电商09数据库系统实习报告(学号+姓名)CREATETABLEcc(商品编号Char(4)Notnullprimarykey,仓库编号Varchar(20)Notnull,商品数量Varchar(20))列名数据类型字符允许空商品编号Char4Checked仓库编号Varchar20Checked商品数量Varchar20Checkedw购买CREATETABLEgm(商品编号 Char(4)Notnullprimarykey,客户编号Varchar(4)Notnull,商品数量Varchar(4),零售价格Char(4),销售日期Varchar(4),联系方式Varchar(4))列名数据类型字符允许空商品编号Char4Checked客户编号Varchar4Checked商品数量Varchar4Checked零售价格Char4Checked销售日期Varchar4Checked联系方式Varchar4Checked4.3索引的作用w通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 w可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 w可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 w在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 w通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。4.4索引代码w为‘sp’表格的商品名称添加索引,代码如下:USEhkxgoCREATEINDEX商品名称ONdbo.sp(商品名称)w为‘kh’表格的客户编号添加索引,代码如下:USEhkxgoCREATEINDEX客户编号ONdbo.kh(客户编号)w为‘gly’表格的管理员编号添加索引,代码如下:USEhkxgoCREATEINDEX管理员编号ONdbo.gly(管理员编号)20
15电商09数据库系统实习报告(学号+姓名)第五章数据库完整性、安全性设计5.1目的w掌握约束、默认、规则的创建方法w掌握存储过程、触发器的创建方法w掌握数据库安全性的设计方法,包括账户管理和权限管理5.2数据库完整性设计w约束约束名:为各表的主键供应商表(gys):供应商编号;采购员(cgy):采购员编号;商品(sp):商品编号;管理员(gly):管理员编号;仓库(ck):仓库编号;客户(gly):客户编号;提供(tg):供应商编号约束类型主键约束(PRIMARYKEY)、唯一键约束(UNIQUE)、默认值约束(DEFAULT)、检查约束(CHECK)、外键约束(FOREIGNKEY)约束的作用:保证插入数据的有效性。代码以PRIMARYKEY,UNIQUE,DEFAULT,CHECK为例primarykey约束CREATETABLEgys(供应商编号Char(4)Notnullprimarykey,供应商名称Varchar(20)Notnull,供应商品数量Varchar(20),供应商地址Varchar(4),联系方式Char(4))Unqiue约束CREATETABLEcgy(采购员编号Char(4)Notnullprimarykey,采购员姓名Varchar(20)unique,地址Varchar(20),联系方式Varchar(4))Default约束CREATETABLEgly(客户编号Char(4)Notnullprimarykey,客户姓名Varchar(20)Notnull,性别Varchar(4)default'男',年龄Varchar(4),联系方式Char(4),地址Varchar(20))Check约束CREATETABLEsp(商品编号Char(4)Notnullprimarykey,商品名称Varchar(20)Notnull,供应商Varchar(20),商品批号Varchar(4),商品规格Char(4),生产厂家Varchar(20)20
16电商09数据库系统实习报告(学号+姓名)入库价格Varchar(4),零售价格Varchar(4),生产日期Varchar(4)check(生产日期between1998and2001),备注Varchar(20))w默认默认名:default默认的绑定对象:列或用户定义的数据类型默认的作用:在数据库中对存储在表的列或用户自定义数据类型中的值进行默认。创建和绑定默认的代码以性别为例:createdefaultdef_性别as'男'goexecsp_bindefault'def_性别','kh.[性别]'以部门为例:createdefaultdef_部门as'采购部'goexecsp_bindefault'def_部门','gly.[部门]'w规则规则名:rule规则的绑定对象:列或用户定义的数据类型规则的作用:在数据库中对存储在表的列或用户自定义数据类型中的值的规定和限制。创建和绑定规则的要求:以商品的生产日期为例:createrule生产日期_ruleas@生产日期>1998and@生产日期<2001execsp_bindrule'生产日期_rule','sp.[生产日期]'以客户年龄为例:createrule年龄_ruleas@年龄>25and@年龄<35execsp_bindrule'年龄_rule','sp.[年龄]'w存储过程存储名:procedure存储过程的作用:有特定的功能,可被调用,提高了程序的运行效率存储过程的代码以购买信息为例:ifexists(selectnamefromhkxwherename='购买信息' andtype='p')dropprocedure购买信息gocreateprocedure购买信息asselectsp.商品编号,kh.客户编号,gm.商品编号,gm.客户编号,客户姓名fromsp,gm,khwheresp.商品编号=gm.商品编号andkh.客户编号=gm.客户编号20
17电商09数据库系统实习报告(学号+姓名)go以购买信息为例:ifexists(selectnamefromhkxwherename='存储信息' andtype='p')dropprocedure存储信息gocreateprocedure存储信息asselectsp.商品编号,ck.仓库编号,cc.商品编号,cc.仓库编号,商品名称fromsp,gm,khwheresp.商品编号=cc.商品编号andck.仓库编号=cc.仓库编号gow触发器触发器名:trigger触发器作用:在执行语句事件时自动生效,用来同步更新数据。触发器代码以采购数量为例:createtriggertri_采购数量oncgforinsert,updateasifexists(select*frominsertedwhere采购数量<100)beginprint'采购量小于100'end5.3数据库安全性设计w登录设计为药房进销存系统设计数据库登陆账号:execsp_addlogin'hkx','123',为药房进销存系统设计Windows登录帐号:execsp_grantlogin'windows','123'w数据库用户设计为数据库中windows账号添加数据库用户:execsp_grantdbaccess'hkx','billy'删除数据库用户:execsp_revokedbaccess'billy'创建特殊数据库用户:execsp_grantdbaccessguestw各个登录的权限设计赋予登陆账号sa的用户select权限:grantselectonsptobilly赋予登陆账号sa的用户update权限:grantupdateonsptobilly赋予登陆账号sa的用户delete权限:grantdeleteonsptobillyw各个数据库用户的权限设计将sp表上的insert,update和delete授权于用户billy角色grantinsert,update,deleteonsptobillygo废除授予billy的关于sp表的insert,update和delete权限revokeinsert,update,deleteonspfrombillygo20
18电商09数据库系统实习报告(学号+姓名)拒绝用户billy角色在sp表上的insert,update和delete权限denyinsert,update,deleteonsptobillygo20
19电商09数据库系统实习报告(学号+姓名)第六章实训总结6.1实训总结一星期的实训已接近尾声,这次的实训内容是设计一个进销存数据库系统,刚开始时,感觉之前学的已忘的差不多了,也担心这个实训内容相当的困难,但一天天下来,在不断摸索的同时,也回顾了之前的知识。这次实训,从系统的组织结构图、功能结构图,到E-R图的设计,再到数据库的设计,综合应用了数据库、SQLServer2005等知识,让我们所学的知识得到了充分的延伸与拓展,同时,也提高了我们的综合实践能力。第一天的系统组织图与功能图的设计,让我有些摸不着边,无从着手,通过资料的查找之后,最终确立了主题:药品进销存系统。在第二天的E-R图设计中,实体,属性与联系的设计,难免会有一些碰壁,分E-R图和全局E-R图的建立,遇到的问题又增加了许多,实体与实体之间的联系,实体的属性,让人难以入手,但通过网上的搜寻,老师同学的指导,这些问题也随之迎刃而解。接下来就完全沉浸在数据库的建设中,数据库表的建立,索引的创建,约束、默认、规则、存储过程、触发器的创建,因为对概念的不清楚,加上对代码的不熟悉,操作起来相当困难,经过网上资料的查找,对书本知识的回顾,慢慢地对概念清晰了,代码也熟练了,这些问题也很快被解决了。其实,不管我们做什么事情,我们都应该想清楚,首先干什么,其次干什么,有了一个合理的规划,我们做起来也就比较的有了方向,有了目标,再向目标去奋斗,这样我们才能更好的把握自己,使自己更好的发展。20