资源描述
数据库原理课程设计
18
2020年4月19日
文档仅供参考
目录
数据库原理课程设计任务书 0
1.问题描述 2
1.1背景 2
1.2数据需求 2
2.数据库设计 3
2.1 E-R图 3
2.2数据流程图 7
2.3数据字典 7
2.4关系图: 9
3.数据库源代码 10
3.1数据库建立 10
3.2数据初始化 12
4.结果数据处理 15
4.1单表查询 15
5.结束语 24
5.1课程设计心得 24
1.问题描述
1.1背景
. 药品管理系统是为了加强药品管理,以便更好地对药品进行监督和管理,对售药机构人员的工作,起到了高效性、准确性管理而开发。本系统主要包含系统用户管理模块、药品管理模块、销售管理模块、进货管理模块、存货转移管理模块。药品管理系统是以合理、全面、准确的药品编码体系为基础,提供了对药品数量、金额、有效期的全面管理,统一的药价管理机制规范了药品的价格。系统能随时提供药库的库存、药品流向和消耗,还能根据现有库存,药品有效期提供采购计划或应暂停采购的药品清单,以提高资金的利用率,避免不必要的损失,方便快捷的途径对药基本信息进行定期的更新和删除等管理。
1.2数据需求
药品管理系统需要完成功能主要有:
(1) 药品进货管理:当企业需要增加新的销售药品时,利用此模块能够添加新的药品信息,删除旧的药品信息,修改已存在的药品信息,提供所有与药品相关的各类信息,初始化库存,初始化供应商相关信息。
(2)药品销售管理:药品统一的价格销售,对已查询销售单,能够对药品的价格进行控制。
(3)库存转移管理:实际生活中容易发生药品过期和损毁,此时利用此模块对过期的药品和损毁的药品进行清理。
(4)查询与报表分析:此功能并未单独作为一个模块,而是分布在各个模块中,各个模块产生业务时,能够在各模块的相应功能按钮上选择查询。
2.数据库设计
2.1概念结构设计
. 药品管理系统是为了加强药品管理,以便更好地对药品进行监督和管理,对售药机构人员的工作,起到了高效性、准确性管理而开发。本系统主要包含系统用户管理模块、药品管理模块、销售管理模块、进货管理模块、存货转移管理模块。药品管理系统是以合理、全面、准确的药品编码体系为基础,提供了对药品数量、金额、有效期的全面管理,统一的药价管理机制规范了药品的价格。系统能随时提供药库的库存、药品流向和消耗,还能根据现有库存,药品有效期提供采购计划或应暂停采购的药品清单,以提高资金的利用率,避免不必要的损失,方便快捷的途径对药基本信息进行定期的更新和删除等管理。
2.1.1类别实体E-R图:
药品E-R图
制造商信息E-R图
药品存储信息E-R图
实体联系E-R图
数据库的逻辑设计
3.逻辑结构设计:
(1)买药人信息:(买药人编号,药品编号,药品数量,买药人姓名,买药人性别,买药人年龄,买药人联系电话)。
(2) 药品信息:(药品编号,药品名称,药品分类,药品规格,制造商编号,进药单价,卖药单价)。
(3)药品存储信息:(仓库编号,药品编号,药品数量)。
(4) 制造商信息(制造商编号,制造商名称,制造商地址,制造商联系电话)。
数据库的物理设计
药品信息
表中列名
数据类型
可否为空
说明
药品编号
INT
NOT NULL(主键)
药品编号
药品名称
CHAR
NOT NULL
药品名称
药品分类
CHAR
NOT NULL
药品分类
药品规格
CHAR
NOT NULL
药品规格
制造商编号
INT
NOT NULL
制造商编号
进药单价
MONEY
NULL
进药单价
卖药单价
MONEY
NULL
卖药单价
制造商信息
表中列名
数据类型
可否为空
说明
制造商编号
INT
NOT NULL(主键)
制造商编号
制造商名称
VARCHAR
NOT NULL unique
制造商名称
制造商地址
VARCHAR
NOT NULL
制造商地址
制造商联系电话
VARCHAR
NULL
制造商联系电话
药品存储信息
表中列名
数据类型
可否为空
说明
仓库编号
INT
NOT NULL (主键),
仓库编号
药品编号
INT
NOT NULL (外主键)
药品编号
药品数量
INT
NOT NULL
药品数量
买药人信息
表中列名
数据类型
可否为空
说明
买药人编号
INT
NOT NULL (主键),
买药人编号
药品编号
INT
NOT NULL (外主键)
药品编号
药品数量
INT
NULL
药品数量
买药人姓名
CHAR
NULL
买药人姓名
买药人性别
CHAR
NULL
买药人性别
买药人年龄
INT
NULL
买药人年龄
买药人联系电话
CHAR
NULL
买药人联系电话
2.4关系图:
数据库存表关系图
3.数据库源代码
3.1数据库建立
create database 药品管理系统
on
(name='药品管理_DATA',
filename='e:\药品管理系统\DATA\药品管理_DATA.MDF',
size=10,
maxsize=50,
filegrowth=2)
log on
( name='药品管理_LOG',
filename='e:\药品管理系统\DATA\药品管理_LOG.LDF',
size=2,
maxsize=10,
filegrowth=1)
go
3.1.2创立药品信息表
create table 药品信息
(
药品编号INT NOT NULL PRIMARY KEY,
药品名称CHAR(40) NOT NULL,
药品分类CHAR(20) NOT NULL,
药品规格CHAR(20),
制造商编号INT NOT NULL FOREIGN KEY REFERENCES 制造商信息(制造商编号),
进药单价MONEY CHECK(进药单价>0),
卖药单价MONEY CHECK(卖药单价>0),
)
3.1.3创立制造商信息表
CREATE TABLE 制造商信息
(
制造商编号INT NOT NULL PRIMARY KEY,
制造商名称VARCHAR(40) NOT NULL unique,
制造商地址VARCHAR(40) NOT NULL,
制造商联系电话VARCHAR(20),
)
3.1.4创立药品存储信息表
CREATE TABLE 药品存储信息
(
仓库编号INT NOT NULL PRIMARY KEY,
药品编号INT NOT NULL FOREIGN KEY REFERENCES 药品信息(药品编号),
药品数量INT NOT NULL CHECK(药品数量>=0),
)
3.1.5买药人信息表
CREATE TABLE 买药人信息
(
买药人编号INT NOT NULL PRIMARY KEY,
药品编号INT NOT NULL FOREIGN KEY REFERENCES 药品信息(药品编号),
药品数量INT,
买药人姓名CHAR(20),
买药人性别CHAR(2) DEFAULT'男',
买药人年龄INT,
买药人联系电话CHAR(20),
)
3.2数据初始化
3.2.1添加药品到表药品信息中
INSERT 药品信息
VALUES( ,'珍视明滴眼液','眼科用药','250ml',1002,4.5,8)
INSERT 药品信息
VALUES( ,'阿莫西林胶囊','消炎药','0.25克/粒',1001,4.5,8)
INSERT 药品信息
VALUES( ,'健胃消食片','胃病用药','0.15mg',1001,3,5)
INSERT 药品信息
VALUES( ,'维C银翘片','感冒用药类','0.15mg',1005,5.5,8)
INSERT 药品信息
VALUES( ,'速效伤风胶囊','感冒用药类','0.15mg',1000,4.5,6)
INSERT 药品信息
VALUES( ,'慢咽舒宁','咽喉口腔用药','0.15mg',1004,3,5)
INSERT 药品信息
VALUES( ,'炎可宁片','消炎药','0.2mg',1003,7,8)
3.2.2添加制造商到表制作商信息中
insert 制造商信息
values(1000,'上海强生制药有限公司','上海',)
insert 制造商信息
values(1001,'广州白云山制药股份有限公司','广东',)
insert 制造商信息
values(1002,'江西珍视明药业有限公司','江西',)
insert 制造商信息
values(1003,'北京同仁堂','北京',)
insert 制造商信息
values(1004,'太极集团锦阳制药有限公司','北京',)
insert 制造商信息
values(1005,'云南白药制药有限公司','云南',)
3.2.3添加库存信息到表药品存储信息中
INSERT 药品存储信息
VALUES(0001, ,14000)
INSERT 药品存储信息
VALUES(0001, , 0)
INSERT 药品存储信息
VALUES(0001, ,14300)
INSERT 药品存储信息
VALUES(0002, ,18740)
INSERT 药品存储信息
VALUES(0003, ,24300)
INSERT 药品存储信息
VALUES(0003, ,43500)
INSERT 药品存储信息
VALUES(0004, ,15200)
INSERT 药品存储信息
VALUES(0004, ,34300)
3.2.4添加买药人到表买药人信息中
INSERT 买药人信息
VALUES( 1, ,5,'苏子威','女',50,)
INSERT 买药人信息
VALUES( 2, ,10,'叶小四','女',70,)
INSERT 买药人信息
VALUES( 3, ,1,'张三','男',20,)
INSERT 买药人信息
VALUES( 4, ,6,'李四','男',30,)
INSERT 买药人信息
VALUES( 5, ,8,'王五','女',18,)
INSERT 买药人信息
VALUES( 6, ,8,'李刚','女',5,)
4.结果数据处理
4.1单表查询
4.1.1表药品信息中查询演示:
4.1.2表制造商信息中查询演示:
4.1.3表药品存储信息中查询演示:
4.1.4表买药人信息查询演示:
查询买药人年龄小于50岁的姓名
SQL语言:
select 买药人姓名
from 买药人信息
where 买药人年龄<50
go
查询买药人为女的信息。
SQL语言:
select *
from 买药人信息
where 买药人性别='女'
go
5.结束语
5.1课程设计心得
经过这次设计,我进一步加深对基础理论的理解,扩大专业知识面,对收集资料、查阅文献、方案制定等实践方面得到了很好的锻练,促进对所学知识应用能力的提高。同时,发现问题、分析归纳、综合比较的逻辑分析能力、处理问题等能力也得到了提高。可是在这次设计过程中,还是发现了自己很多不足之处,也遇到了许多问题和困难,而这些困难大多是学习中不注重自己系统学习,学有所用造成的,这让我认识到系统的学习和锻炼的重要性,基础知识掌握不但要多,而且要会运用它,那样的话设计才会更全面、更顺利、更完美。
展开阅读全文