药品存销信息管理系统(全)

更新时间:2024-03-20 06:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

信息工程学院

《数据库课程设计》论文

题 目:学 号:专业班级:姓 名:指导老师:完成日期:药品存销信息管理系统

*********** 计算机科学与技术103

***** ****** 2012年01月13日

药品存销信息管理系统数据库设计

****

(信息工程学院计算机科学与技术10级3班)

摘 要

本次课程设计是药品存销信息管理系统,伴随着社会的复杂化,传统的“一支笔,一本帐簿”的药品销售管理方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。因此设计药品存销信息系统是当务之急,本系统包括药品采购,药品存储,药品销售。药品采购包括采购员进货,采购员退货。药品存储包括仓库存储以及仓库管理员管理仓库。药品销售包括顾客买药与顾客退药。本系统包括几个视图来使数据库使用者快速的查询想要得到的信息,本系统包括几个PL/SQL语句块,还包括几个触发器,使得数据得到同步修改,使数据库中的数据更加合理。

关键字:数据库;经销存;药品管理系统

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

目录

目录............................................................................................................................. - 1 - 1.需求分析 .................................................................................................................. - 3 -

1.1需求分析阶段处理对象及组织 ......................................................................... - 3 - 1.2信息处理及系统功能 ....................................................................................... - 3 -

1.2.2数据字典 .............................................................................................. - 5 - 2.数据库结构设计 ...................................................................................................... - 5 -

2.1 概念设计........................................................................................................ - 5 -

2.2 逻辑设计........................................................................................................ - 8 -

2.2.1 建立关系模式 ........................................................................................ - 8 -

2.2.2 关系模式规范化处理...........................................................................- 10 - 以上关系模式中的各实体和联系之间不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。 ......................................- 10 -

2.2.3 用户子模式建立..................................................................................- 10 -

3. 数据库物理设计 ...................................................................................................- 10 -

3.1 物理设计阶段目标和任务 ..............................................................................- 10 - 3.2数据存储方面 ................................................................................................- 11 -

3.2.1 建立索引的原则..................................................................................- 11 - 4.数据库实施与测试 .................................................................................................- 11 -

4.1 数据库实施 ...................................................................................................- 11 - 4.1.1 数据库及数据库对象建立....................................................................- 11 -

5.总结 ......................................................................................................................- 13 - 6.附录 ......................................................................................................................- 13 - 附录1 :....................................................................................................................- 13 -

附录2 ..................................................................................................................- 17 - 附录3 ..................................................................................................................- 22 -

- 1 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

引言

随着全球信息技术的飞速发展,尤其是因特网的出现和普及,企业和决策都

发生 了根本的改变。采用信息技术促进、改造药店的生产、经营、管理,有效采集和处理 信息,增强企业决策的有效性,适应全球发展的要求,将成为企业发展的必由之路。 信息管理系统已经成为现代企业的一个重要标志和衡量企业综合实力的重要组成部分。但是,信息管理系统的开发却非常困难。开发一个成功的企业信息管理系统,不仅要有方方面面的专业知识,还要充分分析企业内部、外部环境的变化和关系,以及 在信息管理系统开发过程中所涉及的设备、技术上的复杂性。这就需要系统开发者不断总结经验,不断探索更好的方法和技术。

如今药品无论在任何时候都是一个国家最重要的东西,也是对一个人最需要的东西,药品管理正处于一个高速发展的时期。药品的信息在供应商与销售部和顾客之间大量的流通,因此,建立一个合适的数据库来管理这些数据是必不可少的。这样药品存销信息管理系统就这样诞生了,它可以高效的来管理这些数据,是药品高效的发货和供应。

本次数据库设计严格按照书上的要求和设计数据库步骤,从需求分析,概念设计,逻辑设计,物理设计,到数据库最后的建立、运行。

- 2 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

1.需求分析

主要包括内容:处理对象及组织;信息处理及系统功能;数据库系统性能需要,数据库系统开发环境需求等。在阐述信息及其处理过程时,要辅助业务流程图、数据流程图及数据字典。对上述三个问题可以以附录的形式详细罗列,但正文中必须指明做了哪些业务流程图、数据流程图和数据字典的规模。

1.1需求分析阶段处理对象及组织

(1)熟悉业务并绘制业务路程图;

(2)根据业务流程图明确有哪些数据流动,绘制数据流程图;

(3)建立数据字典,其中包括数据项、数据结构、数据流、数据存储、处理过程等。

1.2信息处理及系统功能 1.2.1数据流程图

药品存销信息管理系统数据流程图如下

(3)第一层数据流程图

图1-1第一层数据流程图

- 3 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

(2)第二层数据流程图——进货

图1-2 进货数据流程图

(4)第二层数据流程图——销售

图1-3 销售数据流程图

- 4 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

(5)第二层数据流程图——存储

图1-4 存储数据流程图

1.2.2数据字典

包含数据项、数据结构、数据流、处理逻辑、数据存储定义(详见附录1)。

2.数据库结构设计

2.1 概念设计

阶段要求:

(1)能真实、充分地反映现实世界,包括事物与事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;

(2)易于理解,因此可以用它和不熟悉计算机的用户交换意见; (3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;

(4)易于向关系、网状、层次等各种数据模型转换。

- 5 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

2.2.1 分E-R图的建立

建立分E-R图的思想:

对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体的属性,标识实体的码,确定实体之间的联系类型(1:1,1:n,m:n),设计分E-R图;

参照数据流程图画出分E-R图 (1)进货时的分E-R图

图2-1 进货时的分E-R图

- 6 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

(2)销售时的分E-R图

图2-2销售时的分E-R图

(3)盘存时的分E-R图

图2-3盘存时的分E-R图

2.1.2 全局/整体E-R图

1.每次集成局部E-R图是,分两步走

(1)合并。解决各分E-R图之间的冲突,将各分E-R图合并起来生成初步的E-R图。

- 7 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

(2)修改和重构。消除不必要的冗余。 总E-R图

图2-4 总E-R图

2.2 逻辑设计

概念设计阶段是独立于任何一种数据模型的,而逻辑设计阶段则与现实结合起来,逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为与项目所支持的数据模型相符合的逻辑结构。具体任务包括将E-R图转换成关系模型、模型优化、数据库模式定义、用户模式设计。

2.2.1 建立关系模式

转化规则:一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。一个1:1联系可以转换为一个独立关系模式,也可以与任意一端关系模式合并;一个1:N联系可以转换为一个独立关系模式,也可以与n端实对应的关系模式合并;一个M:N联系转换为一个独立关系模式,具有相同码的关系模式可以合并

- 8 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

退货单 表6-12 属性名 类型 SupNumber varchar(20) mannum varchar(20) Gnumber varchar(20) Gweight Float Thdate

Date

销售员售货 属性名 类型 mannum varchar(20) Gnumber varchar(20) Cusnum varchar(20) Gweight Float Gprice Float Gjhdate

Date

顾客退货 属性名 类型

mannum varchar(20) Gnumber varchar(20) Cusnum varchar(20) Gweight Float Gthdate

Date

2.SQL语言实现

创建货物表

create table Goods (

Gnumber varchar(20) primary key, Gname varchar(20) not null, Gweight float check (Gweight>0), Gtype varchar(20),

Gprice float check (Gprice>0), Gdate date,

Gstodate int check(Gstodate>0) )

创建供应商表

create table Supplier (

取值范围 >0

表6-13 取值范围 >0 >0

表6-14 取值范围

- 19 - 是否为主键 Y Y Y N N

是否为主键 Y Y Y N N N

是否为主键 Y Y Y N N

是否可为空 N N N Y Y

是否可为空 N N N Y Y Y

是否可为空 N N N Y Y

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

SupNumber varchar(20) primary key, SupName varchar(20) not null, SupAddress varchar(20), SupPhone varchar(20) )

创建仓库存储表

create table Storageage (

StorageSno int primary key, StorageMin int check(storagemin>0),

StorageNow int check(storagenow>0 and storagenow<=1000), StorageMax int check(storagemax>0 and storagemax<=1000), mannum varchar(20) references Worker(mannum), Jhdate date )

创建工人表

create table Worker (

mannum varchar(20) primary key, manname varchar(20) not null, manPho varchar(20), manAdd varchar(20), mantype varchar(20) )

创建顾客表

create table Customer (

Cusnum varchar(20) primary key, Cusname varchar(20) not null, Cusage int,

CusPhone varchar(20), CusAddress varchar(20), Cusnumber varchar(20) )

仓库货物

create table Manger (

StorageSno int primary key ,

- 20 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

Gnumber varchar(20) references goods(gnumber), StorageNow int check(StorageNow>0) ) 订货单

create table Orderbook (SupNumber varchar(20), mannum varchar(20), Gnumber varchar(20),

Gweight float check (Gweight>0), Gprice float check (Gprice>0), Jhdate date,

primary key (SupNumber,mannum,Gnumber),

foreign key (SupNumber) references Supplier(SupNumber), foreign key (mannum) references Worker(mannum), foreign key (Gnumber) references Goods(Gnumber) ) 退货单

create table Returnbook1 (

SupNumber varchar(20), mannum varchar(20), Gnumber varchar(20),

Gweight float check(Gweight>0), Thdate date,

primary key (SupNumber,mannum,Gnumber),

foreign key (SupNumber) references Supplier(SupNumber), foreign key (mannum) references Worker(mannum), foreign key (Gnumber) references Goods(Gnumber) )

销售员售货

create table Salebook (

mannum varchar(20), Gnumber varchar(20), Cusnum varchar(20),

Gweight float check(Gweight>0), Gprice float check(Gprice>0), Gjhdate date,

primary key(mannum,Gnumber,Cusnum),

foreign key (mannum) references Worker(mannum),

- 21 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

foreign key (Gnumber) references Goods(Gnumber), foreign key (Cusnum) references Customer(Cusnum) )

顾客退货

create table Rerurnbook2 (

mannum varchar(20), Gnumber varchar(20), Cusnum varchar(20),

Gweight float check(Gweight>0), Gthdate date,

primary key(mannum,Gnumber,Cusnum),

foreign key (mannum) references Worker(mannum), foreign key (Gnumber) references Goods(Gnumber), foreign key (Cusnum) references Customer(Cusnum) )

附录3

一.数据库视图

1.创建各种商品的单价的视图

create view price as

select Gname,Gprice from goods

select gname,gprice from price

- 22 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

2.查询目前仓库货物数量的试图create view StorageNow as

select StorageSno,StorageNow from manger

select StorageSno,StorageNow from storagenow

3.查询采购员的采购信息

create view Workweight as

select mannum,Gweight from orderbook

select * from workweight

- 23 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

4.查询售货员卖了多少东西

二.存储过程

1.输入一个供应商编号查询其电话号码

create or replace procedure SupPhone(v_supsno in Supplier.Supnumber%type,v_supphone out Supplier.Supphone%type) is begin

select supphone into v_supphone from Supplier

where v_supsno=supnumber; end; 测试 declare

a varchar2(10):='4'; b varchar2(20); supphone(a,b);

begin

- 24 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

dbms_output.put_line(b);

end; 结果输出

2.查询哪些药品价格大于20(用游标) create or replace procedure goodsprice

is

v_Gname goods.gname%type; v_Gprice Goods.Gprice%type; cursor c1 is select Gname, Gprice from Goods where Gweight>20; begin open c1;

loop

fetch c1 into v_Gname,v_Gprice; exit when c1%notfound;

dbms_output.put_line(v_Gname||'---'||v_Gprice);

end loop;

close c1;

end; 检验:

begin goodsprice; end; 输出结果

3.输入仓库号查询其剩余货物量

create or

replace

procedure

Storagenow1(v_storagesno

Storageage.Storagesno%type,v_storagenow out Storageage.Storagenow%type)

is begin

- 25 - in

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

select Storagenow into v_storagenow From manger

where v_storagesno=Storagesno; end; 测试 declare a int:=5; b int; begin

Storagenow1(a,b);

dbms_output.put_line(b); end; 输出结果

4.向员工基本信息表插入一个元组

create

or

replace

procedure

worker_Insert(v_mannum

worker.mannum%type,v_manname worker.manadd%type,v_mantype

worker.manname%type,v_manpho worker.mantype%type) as begin

insert into worker(mannum,manname,manpho,manadd,mantype) values(v_mannum,v_manname,v_manpho,v_manadd,v_mantype); commit; end; 测试:

begin worker_insert('99','99','99','99','售货员'); end;

select * from worker 输出结果

worker.manpho%type,v_manadd

- 26 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

5.向订单基本信息表插入一个元组

create or replace procedure Book_Insert(v_mannum orderbook.SupNumber%type,v_manname orderbook.mannum%type,v_manpho

orderbook.Gweight%type,v_mantype orderbook.Gprice%type) as begin

insert into orderbook(SupNumber,mannum,Gnumber,Gweight,Gprice) values(v_mannum,v_manname,v_manpho,v_manadd,v_mantype); commit; end;

orderbook.Gnumber%type,v_manadd

测试:

begin Book_Insert('1','27','2',5,5); end;

select * from orderbook

结果输出

6.向销售单基本信息表插入一个元组

create

or

replace

procedure

Book_Insert(v_mannum

salebook.mannum%type,v_manname

salebook.Gnumber%type,v_manpho salebook.Cusnum%type,v_manadd salebook.Gweight%type,v_mantype salebook.Gprice%type) as begin

insert into salebook(mannum,Gnumber,Cusnum,Gweight,Gprice) values(v_mannum,v_manname,v_manpho,v_manadd,v_mantype); commit; end;

测试:

begin Book_Insert('1','1','2',1,2); end;

select * from salebook

- 27 -

10级计算机科学与技术专业103班数据库应用系统课程设计课程论文

7.向退货单基本信息表插入一个元组

create begin delete

from returnbook1

where a=supnumber and b=mannum and c=gnumber; commit;

end return_delete;

or

replace

procedure

Return_delete(a

returnbook1.SupNumber%type,b

returnbook1.mannum%type,c returnbook1.gnumber%type) is

begin

delete('1','27','1'); end;

三.触发器

当向订货单插入一条数据时修改仓库数据

create or replace trigger Book_triger after insert on orderbook for each row begin

update manger

set StorageNow=StorageNow+:new.Gweight where manger.Gnumber=:new.Gnumber; end Book_triger;

检验

insert into orderbook(SupNumber ,mannum ,Gnumber, Gweight, Gprice) values('3','27','2',10,2)

- 28 -

本文来源:https://www.bwwdw.com/article/ckx8.html

Top