1、数据库原理及应用 课程设计 <<医药销售管理系统>> 学生姓名: +++++++ 学生班级: ++++ 学生学号: ++++++ 指导老师: +++++++ 目录 一.系统需求分析 1 1.1 开发目的 1 1.2 开发背景 1 1.1.1系统功能基本要求 1 1.1.2具体要求如下 1 1.2.系统功能分析图 2 1.3数据流图和数据字典 3 1.3.1 数据流图(DFD) 3 1.3.2 数据字典(DD) 5 二.
2、概念结构设计 6 2.1 局部E-R图设计 6 2.3系统总E-R图 9 三 .逻辑结构设计 11 3.1.逻辑结构实体转换成关系 11 四.物理结构设计 13 4.1 分类存储 13 4.2 存取路径 13 4.3 备份和还原 13 4.4索引 14 4.5 视图的建立 14 五.数据库实施 15 5.1 建立数据库 15 5.2表和截图 15 5.3 程序代码 19 六.数据库的管理 (插入、删除、修改等) 21 结论……...……………………………………………………………………………………………26 参考文献.......................
3、 26 一.系统需求分析 1.1 开发目的 调查从事医药产品的零售、批发等工作的企业,根据其具体情况设计医药销售管理系统。主要功能包括:(1)基础信息管理包括药品信息、员工信息、客户信息(2 ) 医药及医药用品的销售管理实现药品的查询、销售、收费收据管理和药品退货处理等(3)系统设置管理包括不同角色的管理、不同用户权限的设置等 1.2 开发背景 医药作为民生的基本保障之一,是我们生活中不可缺少的部分。近来,越来越多的医药销售点的普及,规模各不一样。但总的来说,免不了两个部分:进购药品和
4、销售药品。为了实现这两个部分的功能和要求,需设计出功能细致的完整系统。该系统需包含对药品信息的管理、对财务状况的管理等。医药管理是一项琐碎、复杂而又十分细致的工作。手工进行企业日常的药品销售、出入库的工作,容易出现“开空单”的现象,且呆账、错账时有发生,而且费时费力。本系统在设计中考虑和克服了上诉问题,实现了企业管理工作的系统化、规范化和自动化。在本次课程设计中,基于对资料的调查了解和自身的主观认识粗略设计出如下医药销售系统,以达到实现简单的医药销售的各个功能的目的。 1.1.1系统功能基本要求 (1)基础信息管理包括药品信息、员工信息、客户信息(2) 医药及医药用品的销售管理实现药品
5、的查询、销售、收费收据管理和药品退货处理等(3)系统设置管理包括不同角色的管理、不同用户权限的设置等。 1.1.2具体要求如下 (1)在小组内进行分工系统调查搜集资料。 (2)系统的需求分析,根据自己的选题确定系统的功能需求性能需求绘制DFD,DD图表以及书写相关的文字说明。 (3)概念结构设计,绘制所选课题详细的E-R图(4)逻辑结构设计,将E-R图转换成数据库的逻辑结构并进行优化,此步骤可略(5)物理结构设计,选定实施环境确定系统数据库的存储结构和存取方法等(6)数据实施,用DBMS建立数据库结构加载数据实现各种查询链接、存储过程等对象并能对数据库做简单的维护操作。(7)自选开发工
6、具采用C/S或B/S模式实现软件功能。 3.课程设计报告的基本要求 1必须提交系统分析报告包括数据流图、数据词典和系统功能分析。 2数据库的设计与实现。包括数据库的数据字典数据库的概念结构E-R图数据库中的表、视图如果使用、存储过程如果使用的结构和定义数据库数据的插入、修改、删除、查询要求使用SQL脚本提供。 3程序设计的报告包括程序的运行环境、开发环境、程序的详细设计包括模块之间的关系模块的功能、主要功能实现的程序段 1.2.系统功能分析图 不同用户对系统的权限不同,经理对系统有查询和管理功能,员工对系统有查询、药品销售和退货的功能,而供应商和顾客对此系统没有使用权限,如图1-1
7、所示 1.3数据流图和数据字典 1.3.1 数据流图(DFD) (1) 对药品销售部分进行分析,画顶层数据流图,如下图所示 图1-2 顶层销售数据流图 (2)0 层图,如下图所示 图1-4 1层数据流图 1.3.2 数据字典(DD) (1) 主要数据项 数据项名称 含义说明 类型 长度 取值范围 别名 药品标号 唯一标识一个药品 varchar 10 00000-99999 药品号 员工编号 唯一标识一个员工 Varchar 10 00000-99999 员工号 顾客编号 唯一标识不同时间的一
8、个顾客 Varchar 10 00000-99999 顾客号 用户名 唯一标识一个用户 Varchar 10 用户名 供应商编号 唯一标识一个供应商 Varchar 10 00000-99999 供应商号 图 1-5 主要数据项列表 (2)主要数据结构 数据结构名称 含义说明 组成结构 顾客 定义了一个顾客的有关信息 顾客编号+顾客类型+会员号 员工 定义了一个员工的有关信息 员工编号+员工名称+联系电话 药品 定义了一个药品的有关信息 药品编号+要品名称+产地+生产编号+所属类型+进价+单价+会员所扣+包装规格+生产
9、日期+有效期 图1-6 主要数据结构列表 (3)主要数据流 数据流名称 含义 来源 去向 数据流量 组成 收费收据 顾客购买药品识填写的单据 员工 顾客 260份/每天 药品编号+员工编号+顾客编号+销售量编号+销售总额+销售日期 图1-7 主要数据流 (4) 信息存储 数据存储名称 含义说明 组成结构 用来说明药品在仓库中的存放数 药品信息 存放药品的有关信息 药品+库存数量 用来说明要药品在库存中的存放量 图 1-8 信息存储列表 (5) 处理过程 处理过程名称
10、输入 输出 加工逻辑 销售 药品编号 药品单价 根据药品信息表和顾客信息,如果库存不为零,则可以卖给给顾客,否则缺货 图1-9 处理过程列表 二.概念结构设计 采用自底向上的设计方将系统需求分析得到用户需求抽象为信息结构 2.1 局部E-R图设计 (1)药品信息E-R图 图2-1 药品信息E-R图 (2)顾客信息E-R图 顾客信息 会员号 顾客类型 顾客编号 图2-2 顾客信息 E-R图 (3)员工信息E-R图 员工信息 员工姓名 员工编号 登录密码 联系电话
11、 图2-3 员工信息E-R图 (4)供应商信息E-R图 供应商信息 所在城市 联系方式 供应商编号 供应商名称 联系人 图2-4 供应商信息E-R图 (5)经理 E-R图 经理信息 密码 用户名称 图2-5经理信息E-R图 2.2 局部E-R图 2.3系统总E-R图 经理 选择 供应商 供应 药品 查询 管理 员工 销售 购买 退还 编号 名称 批号 进价 单价 生产日期 有效期 库存 包装规格 登录密码 供应商编号 供应商名 用户名 联系方式
12、 员工名称 联系人 联系方式 所在地 顾客 顾客编号 顾客类型 会员号 1 1 1 n n m 1 m n m n m 图2-6系统概念结构模型 三 .逻辑结构设计 3.1.逻辑结构实体转换成关系 供应商 ( 供应商编号,供应商名称,联系人,联系方式,所在城市) 经理 (用户名,密码) 退货(药品编号,顾客编号,员工编号,退货数量,退货金额,退货日期) 销售 (药品编号,员工编号,顾客编号,销售数量,销售金额,销售日期) 药品 (药品编号,供应商编号,用户名,药品名称,产地,生产批号,所属类别,进价,单价
13、库存,会员折扣,包装规格,生产日期,有效期) 员工 (员工编号,用户名,员工姓名,联系电话,登录密码) 3.2 数据模型的优化 将转化的关系模式进行优化 ,最终达到3NF (供应商编号,供应名称,联系人) (供应商编号—>供应名称,供应商编号—>联系人) (联系人,联系方式,所在城市)(联系人—>联系方式,联系人—>所在地) 每个非主属性完全函数依赖于主关系键供应商编号 属于2NF 且不存在函数传递 所以为3NF 经理 (用户名,密码) (用户名—>密码 非主属性完全函数依赖于主关系键且不存在函数传递 为3NF) 退货 (药品编号,顾客编号,员工编号,退货数量,退货金额,退货日
14、期)(3个属性组合成主键,剩余的三个非主属性完全函数依赖于主关系键且不存在函数传递 故满足3NF) 销售 (药品编号,员工编号,顾客编号,销售数量,销售金额,销售日期)(3个属性组合成主关系键,剩余三个非主属性完全函数依赖于主关系键且不存在函数传递 故为3NF) 药品 (药品编号,供应商编号,用户名,药品名称,产地,生产批号,所属类别,进价,单价,库存,会员折扣,包装规格,生产日期,有效期)(三个属性组合成主关系键,剩余每个非主属性完全函数依赖于主关系键且不存在函数传递故为3NF) 员工 (员工编号,用户名,员工姓名,联系电话,登录密码)(两个属性组成主关系键,剩余每个非主属性完全函数依
15、赖于主关系键药品编号且不存在函数传递故为3NF) 3.3 看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解 最终分解成第三范式 供应商 ( 供应商编号,供应商名称,联系人,联系方式,所在城市)(供应商编号,供应名称,联系人) (供应商编号—>供应名称,供应商编号—>联系人) (联系人,联系方式,所在城市)(联系人—>联系方式,联系人—>所在地) 四.物理结构设计 4.1 分类存储 经常存取的部分是药品信息,顾客信息,销售信息,退货信息 其余的如供应商信息,经理信息是不经
16、常更换存取的 4.2 存取路径 存取方式的分析:采取顺序查找,平均查找n/2次,建立B+树索引,则平均查找次数为B+树的层数 所以选择B+树作为索引具体设计如下 4.3 备份和还原 为了使数据能完整的保存,每四个小时进行一次增量转储,每次进行一次海量转储,在晚上12:00时开始备份。 由于数据比较重要,所以需要异地备份,建议选着2处备份点 数据库完全备份 Backup database 医药管理系统 to Disk= N’E:\医药管理系统.Back’with noformat 数据库的差异备份 Backup database 医药管理系统 to Disk=
17、N’E:\医药管理系统.back’with differential 数据库的日志备份 Back log 医药管理系统 to Disk=N’E:\ 医药管理系统’with noformat 4.4索引 1.create unique index sci on 供应商(供应商编号) 2.create unique index jl on 经理信息(用户名) 3.create cluster index yp on 药品信息(药品编号,供应商编号,用户名) 4.create cluster index tuh on退货信息(药品编号,顾客编号,员工编号) 5.cr
18、eate cluster index xi on 销售信息(药品编号,顾客编号,员工编号) 6.create cluster index yu on 员工信息(员工编号) 4.5 视图的建立 为了便于查询,对顾客、药品和销售表建立视图,如下图所示 五.数据库实施 5.1 建立数据库 Create database 医药管理系统 On (name=医药管理系统_data, Filename=’d:\医药管理系统data.mdf’, Size=10, Maxsize=50, Filegrowth=5) Log on (name=医药管理系统_log,
19、 Filename=’d:\医药管理系统data.ldf’, Size=5, Maxsize=25, Filegrowth=5) 5.2表和截图 (2) 供应商信息表的设计如下图所示 (3)经理信息表的设计如下图所示 (4)退货信息表的设计如下图所示 (5)销售信息表的设计如图所示 (6)药品信息表的设计如图所示 5.3 程序代码 1. Create table 供应商 (供应商编号 varchar(10), 用户名 varchar(10), 供应商
20、名称 varchar(20), 联系人 char(10), 联系方式 numeric(11,0), 所在城市 varchar(10) ) 2. Create table 经理信息 (用户名 nchar(10)not null, 密码 nchar(10)not null ) 3. Create table 退货信息 (药品编号 varchar(10), 顾客编号 varchar(10), 员工编号varchar(10), 退货数量 nchar(10), 退货金额 money, 退货日期 datetime ) 4. Create table
21、销售信息 (药品编号 varchar(10), 员工编号 varchar(10), 顾客编号 nchar(10), 销售数量 numeric(18,0), 销售金额 money, 销售日期 datetime ) 5. Create table 药品信息 (药品编号 nvarchar(10), 供应商编号nvarchar(10), 用户名nvarchar(10), 药品名称 varchar(50), 产地 varchar(10), 生产批号 varchar(10), 所属类别 varchar(10), 进价 money, 单价 money, 库存 nvarc
22、har(50), 会员折扣 nvarchar(10), 包装规格 varchar(10), 生产日期 datetime, 有效期 datetime ) 六.数据库的管理 (插入、删除、修改等) (1)给药品信息中插入一条新记录 插入记录前表中数据,如下图所示 插入前药品信息 插入一条药品信息记录,如下图所示 插入药品 记录sql语句 插入后药品信息,如图所示 插入后药品信息 (2)删除药品信息中的一条记录 删除前药品信息表如下图示 删除前药品信息 删除前
23、销售信息如图所示 删除前销售信息 删除语句如下图示 删除语句 删除后药品信息表如下图所示 删除记录后药品信息表 删除后销售表如图所示 删除后销售表 (3)修改药品信息中的库存信息,将所有药品的库存全部加5 修改前库存如下图所示 修改前药品库存 修改语句如下图示 修改语句 修改后库存如下图所示 修改后库存 (4)按照药品编号查询药品信息,如下图所示 查询药品编号为yp002的药品信息 结论 在这次课程设计的过程中,我首先对医药管理进行了了解,仔细分析了
24、该管理对系统功能的要求并根据这些功能要求对系统进行定义,确定系统必须做什么。但由于对医药管理了解不多,需求分析难免不够完善。之后着手对系统的设计工作,首先是概念结构设计,根据需求分析结果总结系统内实体及联系并绘制系统的局部E-R图然后画出全部E-R图。结合需求分析与概念结构设计把设计好的E-R图转换为DBMS所支持的数据模型所符合的逻辑结构,运用sql数据库管理系统建好表和相关约束。 本系统最终能够基本实现绝大多数功能,但还有许多不足之处,如药品进库信息功能,对新进药品进行入库存储,但由于进价跟有效期的变化不能只是对药品的库存量改进。进价可以运用成本定价法更改。 在这次课程设
25、计中虽然遇到很多困难,但从中学到了很多知识,通过不断的翻阅资料,各个问题的解决使我对系统的设计越来越感兴趣。相信我从这次课程设计所学到的东西可以让我在以后的学习及工作中收益无限! 参考文献 [1].苗雪兰,刘瑞新,宋歌. 数据库系统原理及应用教程.机械工业出版社出版社,2007 [2].赵韶平,徐茂生,周勇华,罗海燕.PowerDesigner系统分析与建模.清华大学出版社,2009 2.27.202508:3608:36:3325.2.278时36分8时36分33秒2月. 27, 2527 二月 20258:36:33 上午08:36:33 2025年2月27日星期四08:36:33






