数据库原理及应用课程设计--药品存储信息管理系统

这篇具有很好参考价值的文章主要介绍了数据库原理及应用课程设计--药品存储信息管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1.  数据库需求分析

1.1项目提出

1.2.调查使用该药品存储信息数据库的用户的实际需求

1.3 功能需求

1.供应商基本信息模块,完成对供应商基本信息的输入、修改和查询;

2.员工基本信息模块,完成对员工基本情况的输入、修改和查询;

3.药品基本信息模块,完成对药品基本信息的输入、修改和查询;

4.客户基本信息模块,完成对客户基本信息的输入、修改和查询

5.药品库存信息模块,完成对仓库基本信息的输入、修改和查询;

6. 供应信息模块,完成对药品供应情况的输入、修改和查询;

7. 销售信息模块,完成对药品销售情况的输入、修改和查询;

1.4 数据字典

表名称

关系模式中的名称

Supplier

供应商

Medicine

药品

Warehouse

仓库

Staff

员工

Customer

客户

SuppList

供应订单

SaleList

销售订单

Supplier供应商基本情况表:

描述

名称

数据类型

是否为空

说明

供应商编号

Supid

char(10)

not null

主键

供应商名称

Supname

char(50)

not null

供应商地址

Supaddress

char(50)

not null

供应商联系方式

Suptel

char(20)

not null

Medicine药品信息基本情况表:

描述

名称

数据类型

是否为空

说明

药品编号

Medid

Char(10)

not null

主键

药品名称

Medname

Char(20)

not null

生产厂家

Medfactory

char(50)

not null

生产日期

Medborn

date

not null

保质期

Meddate

char(20)

not null

用途

Medpurpose

char(100)

not null

价格

Medprice

float

not null

经手人

Medper

Char(20)

not null

Warehouse仓库信息基本情况表:

描述

名称

数据类型

是否为空

说明

仓库编号

Warid

char(10)

not null

联合主键

药品编号

Warmedid

char(10)

not null

联合主键

药品位置

Warposition

char(20)

not null

药品库存

Warnum

int

not null

Staff员工信息基本情况表:

描述

名称

数据类型

是否为空

说明

员工编号

Staid

char(10)

not null

主键

员工姓名

Staname

char(20)

not null

员工性别

Stasex

char(2)

not null

员工年龄

Staage

int

not null

员工学历

Staedu

char(20)

not null

员工职务

Staduty

char(20)

not null

Customer客户信息基本情况表:

描述

名称

数据类型

是否为空

说明

客户编号

Cusid

cha(10)

not null

主键

客户姓名

Cusname

char(20)

not null

客户联系方式

Custel

char(20)

not null

客户性别

Cussex

char(2)

not null

SuppList供应信息基本情况表:

描述

名称

数据类型

是否为空

说明

供应订单号

Supno

char(20)

not null

主键

供应商编号

Supid

char(10)

not null

药品编号

Supmedid

char(10)

not null

入库编号

Inwarid

char(10)

not null

供应数量

Supnum

int

not null

供应时间

Suptime

date

not null

SaleList销售信息基本情况表:

描述

名称

数据类型

是否为空

说明

销售订单号

Salno

char(20)

not null

主键

员工编号

Salstaid

char(10)

not null

客户编号

Salcusid

char(10)

not null

药品编号

Salmedid

char(10)

not null

出库编号

Outwarid

char(10)

not null

销售数量

Salnum

int

not null

销售时间

Saltime

data

not null

导入:

数据库原理及应用课程设计--药品存储信息管理系统

数据库原理及应用课程设计--药品存储信息管理系统

 数据库概念结构设计

2.1.实体E-R图

药品信息实体图:

数据库原理及应用课程设计--药品存储信息管理系统数据库原理及应用课程设计--药品存储信息管理系统

 

供应商信息实体图:仓库信息实体图:员工信息实体图:客户信息实体图:

数据库原理及应用课程设计--药品存储信息管理系统数据库原理及应用课程设计--药品存储信息管理系统

数据库原理及应用课程设计--药品存储信息管理系统

 

2.2系统E-R图

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

(2)修改和重构。消除不必要的冗余。

实体与联系的E-R图:完整E-R图:

数据库原理及应用课程设计--药品存储信息管理系统数据库原理及应用课程设计--药品存储信息管理系统

数据库逻辑结构设计

 将E-R图转换为关系模型

(1)药品(药品编号,药品名称,生产厂家,生产日期,保质期,价格,用途,经手人)

此为药品实体对应的关系模式。

(2)供应商(供应商编号,供应商名称,供应商地址,供应商联系方式 )

此为供应商类别实体对应的关系模式。

(3)仓库(仓库编号,药品编号,药品位置,药品库存)

此为仓库类别实体对应的关系模式。

(4)员工(员工编号,员工姓名,员工性别,员工年龄,员工学历,员工职务)

此为员工类别实体对应的关系模式。

(5)客户(客户编号,客户姓名,客户联系方式,客户性别)

此为客户类别实体对应的关系模式。

(6)供应(供应商编号药品编号,供应数量,供应时间,供应订单)

此为联系“供应”对应的关系模式。

(7)销售(员工编号,客户编号,药品编号,销售时间,销售数量, ……)

此为联系“销售”对应的关系模式。

(8)入库(药品编号,入库编号,供应时间,供应数量, ……)

此为联系“入库”对应的关系模式。

(9)出库(药品编号,出库编号,出库时间,出库数量,……)

此为联系“出库”对应的关系模式。

 数据库物理结构设计

为数据库中各基本表建立的索引如下:

属性:(药品编号,供应商编号,客户编号)经常在查询条件里出现,故而在这些属性上建立索引,从而优化数据库,使查询的速度更快。

为数据库中各基本表建立的索引如下:
属性:(药品编号,供应商编号,客户编号)经常在查询条件里出现,故而在这些属性上建立索引,从而优化数据库,使查询的速度更快。
create unique index Supid_index on Supplier(Supid)
create unique index Medid_index on Medicine(Medid)
create unique index Cusid_index on Customer(Cusid)

数据库操作代码部分

5.1 数据库创建代码

创建数据库:

create database 药品存销信息管理系统;

5.2 创建表代码

创建供应商信息表:

create table Supplier

(

   Supid char(10) primary key,

   Supname char(50) not null,

   Supaddress char(50) not null,

   Suptel char(20) not null

)

创建药品信息表:

create table Medicine

(

   Medid char(10) primary key,

   Medname char(20) not null,

   Medfactory char(50) not null,

   Medborn date not null,

   Meddate char(20) not null,

   Medpurpose char(100) not null,

   Medprice float not null,

   Medper char(20) not null

)

创建仓库信息表:

create table Warehouse

(

   Warid char(10),

   Warmedid char(10) not null,

   Warposition char(20) not null,

   Warnum int not null,

   primary key(Warid,Warmedid)

)

创建员工信息表:

create table Staff

(

   Staid char(10) primary key,

   Staname char(20) not null,

   Stasex char(2) check(Stasex in('男','女')) not null,

   Staage int not null,

   Staedu char(20) not null,

   Staduty char(20) not null 

)

创建客户信息表:

create table Customer

(

   Cusid char(10) primary key,

   Cusname char(20) not null,

   Custel char(20) not null,

   Cussex char(2) check(Cussex in('男','女')) not null

)

创建供应信息表:

create table SuppList

(

    Supno char(20) primary key,

   Supid char(10),

   Supmedid char(10),

   Inwarid char(10),

   Supnum int not null,

   Suptime date not null

) 

创建销售信息表:

create table SaleList

(

    Salno  char(20) primary key,

   Salstaid char(10) not null,

   Salcusid char(10) not null,

   Salmedid char(10) not null,

   Outwarid char(10) not null,

   Salnum int  not null,

   Saltime date not null,

)

5.3 数据库的查询操作代码

1. 查询所有供应商的名称和地址信息

select Supname,Supaddress

from Supplier

2. 查询采购于贵州国泰医药有限公司有限公司的所有药品的名称与价格

select Medname,Medprice

from Medicine

where Medfactory = '贵州国泰医药有限公司';

3. 首先查询库存量从20到50的药品的信息(名称、价格、仓库编号),再将查询结果按照药品价格由低到贵的顺序进行排序

select Medname,Warid,Medprice

from Medicine,Warehouse

where Medicine.Medid = Warehouse.Warmedid and Warehouse.Warnum  between 20 and 50

order by Medprice;

4. 查询购买了药品阿莫西林的客户信息(姓名、性别、联系方式、药品名称)

select Cusname,Cussex,Custel,Medname

from Customer,SaleList,Medicine

where Customer.Cusid  = SaleList.Salcusid

and SaleList.Salmedid = Medicine.Medid

and Medicine.Medname = '阿莫西林';

5.4视图创建代码

1. 建立药品与其用途的视图

create view Med_purpose

as

select Medname,Medpurpose

from Medicine

2. 建立购买药品三清双黄连的客户信息的视图

create view Cus_sanqingshuanghuanglian

as

select Cusname,Cussex,Custel

from Customer,SaleList,Medicine

where Customer.Cusid  = SaleList.Salcusid and SaleList.Salmedid = Medicine.Medid

      and Medicine.Medname = '三清双黄连';

3. 建立客户购买的药品名称和数量的视图

create view Cus_Med

as

select Cusname,Medname,Salnum

from Customer,Medicine,SaleList

where Customer.Cusid  = SaleList.Salcusid and SaleList.Salmedid = Medicine.Medid

 系统规范化设计

 数据库的完整性设计(你创建了哪些约束和触发器,要有触发器的代码)

约束:

实体完整性:主码唯一且不能为空

参照完整性:设置外码

触发器:

1. 出现新的供应药品订单时,需要对供应信息表进行更新,此时供应数量不大于0的话不符合实际情况,触发器将激活并提示“供应数量不得小于等于0!”。而数量大于0时,对供应信息表进行更新,药品的数量增加,需要对仓库表中药品的数量进行更改,触发器将会激活完成相应的操作。

create trigger In_Warehouse on SuppList

for Insert

as

begin

if exists(select*from SuppList

where supnum<=0)

begin

print'供应数量大于0!'

rollback transaction

end

else

begin 

update Warehouse

set Warnum=Warnum+(select Supnum from inserted)

where Warehouse.Warmedid=(select Supmedid from inserted)

   and Warehouse.Warid=(select Inwarid from inserted)

end

end

2. 对药品信息表进行插入或者更新操作,当药品价格不大于0时,触发器将激活,中止该操作并提示“药品价格不能小于等于0!”

create trigger Insert_Med on Medicine

for insert,update

as

begin

if exists(select*from Medicine

where Medprice<=0)

begin

print'药品价格不能小于等于0!'

rollback transaction

end

else

begin

print'插入或者更新成功!'

end

end

 

3. 出现新的销售订单,需对销售信息表进行更新,若顾客购买数量不大于0则不符合实际情况,触发器将激活并提示“顾客购买数量不得小于等于0!”。当顾客购买数量比药店仓库库存量大时也不符合实际情况,触发器将激活并提示“库存不足!”。若数量大于0且小于库存量,在对销售信息表进行更新时,药品的数量减少,还需对仓库表中药品的数量进行更改,触发器则激活完成相应的操作。

create trigger Out_Warehousee on SaleList

for Insert

as

begin

if exists(select*from Salelist

where Salnum<=0)

begin

print'顾客购买数量小于等于0!'

rollback transaction

end

if exists(select*from Salelist,Warehouse

where Salelist.Salnum>Warehouse.Warnum AND

Salelist.Outwarid=Warehouse.Warid AND

Salelist.Salmedid=Warehouse.Warmedid)

begin

print'库存不足!'

rollback transaction

end

else

begin

update Warehouse

set Warnum=Warnum-(select Salnum from inserted)

where Warehouse.Warmedid=(select Salmedid from inserted)

   and Warehouse.Warid=(select Outwarid from inserted)

end

end

4. 在药品信息表中对药品信息进行删除操作时,仓库表中对应药品的信息也将被删除

create trigger drop_med on Medicine

after delete

as

begin

delete  from Warehouse where Warmedid=(select Medid from deleted)

end

 数据库的维护和安全性设计(你设置了哪些用户,他们的权限是怎样的)

角色:经理,销售员,仓库管理员

用户:经理,销售员,仓库管理员

1.创建用户:经理

create login manager with password = '111'

create user manager1 for login manager

2.创建用户:销售员

create login salesperson with password = '222'

create user salesperson1 for login salesperson

3.创建用户:仓库管理员

create login warekeeper with password = '333'

create user warekeeper1 for login warekeeper

4.创建角色:经理,他拥有对所有表的查询,更新,插入和删除的权限。将经理角色Rmanager授予用户lhh1。

create role Rmanager

grant select,update,insert,delete

on dbo.Supplier

to Rmanager

with grant option

grant select,update,insert,delete

on dbo.Medicine

to Rmanager

with grant option

grant select,update,insert,delete

on dbo.Warehouse

to Rmanager

with grant option

grant select,update,insert,delete

on dbo.Staff

to Rmanager

with grant option

grant select,update,insert,delete

on dbo.Customer

to Rmanager

with grant option

grant select,update,insert,delete

on dbo.SuppList

to Rmanager

with grant option

grant select,update,insert,delete

on dbo.SaleList

to Rmanager

with grant option

exec sp_addrolemember 'Rmanager','lhh1'

5.创建角色:销售员,他拥有对药品信息表Medicine和客户信息表Customer的查询权限和对销售信息表SalesList的查询和插入的权限。将销售员角色Rsaleperson授予用户salesperson1

create role Rsaleperson

grant select

on dbo.Medicine

to Rsaleperson

with grant option

grant select

on dbo.Customer

to Rsaleperson

with grant option

grant select,insert

on dbo.SaleList

to Rsaleperson

with grant option

exec sp_addrolemember 'Rsaleperson','salesperson1'

6.创建角色:仓库管理员,他拥有对仓库信息表Warehouse的查询,插入,更新和删除的权限。将仓库管理员的角色--Rwarekeeper授予给用户warekeeper1。

create role Rwarekeeper

grant select,insert,update,delete

on dbo.Warehouse

to Rwarekeeper

exec sp_addrolemember 'Rwarekeeper','warekeeper1'文章来源地址https://www.toymoban.com/news/detail-482172.html

到了这里,关于数据库原理及应用课程设计--药品存储信息管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机毕业设计springboot基于Java开发的药店药品管理系统490pr9【附源码+数据库+部署+LW】

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。 系统的选题背景和意义 题背景: 随着人们健康意识的提高和医疗水平的不断发展,药店作为提供药品销售和咨询服务的重要机构,承担着满足人们日常用药需求的重要角色。然而

    2024年02月03日
    浏览(49)
  • 《MySQL数据库原理、设计与应用》课后习题及答案 黑马程序员编著

    答案有文档形式,但是csdn必须要下载,,需要的人就去那里下载吧。《MySQL数据库原理、设计与应用》课后习题及答案黑马程序员编著 一、 填空题 1.关系型数据库的标准语言是_ SQL _。 2.数据库发展的3个阶段中,数据独立性最高的是_ 数据库系统 _阶段。 3.概念模型中的3种基

    2024年02月03日
    浏览(53)
  • 数据库概论课程设计-汽车租赁公司数据库系统的设计

    进入新的世纪以来,经济的快速发展,让很多东西都快速的淘汰了,好多新型的东西也逐渐进入我的视野,而更有好多以前很贵的东西,渐渐降价普及了,汽车逐渐走进了千家万户。而汽车作为一种高价位消费品,结合我国低购买力的国情,很多人就买不起汽车了,所以公司

    2024年02月02日
    浏览(71)
  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

    目录 1、需求分析 1 1.1 数据需求描述 1 1.2 系统功能需求 3 1.3 其他性能需求 4 2、概念结构设计 4 2.1 局部E-R图 4 2.2 全局E-R图 5 2.3 优化E-R图 6 3、逻辑结构设计 6 3.1 关系模式设计 6 3.2 数据类型定义 6 3.3 关系模式的优化 8 4、物理结构设计 9 4.1 聚簇设计 9 4.2 索引设计 9 4.3 分区设

    2024年02月03日
    浏览(71)
  • 医院管理数据库课程设计

    一节复一节,千枝攒万叶。我自不开花,免撩蜂与蝶。 皓首犹贪学,谦虚德益丰。潜神无朕际,悟物不言中。 我将其开源.但希望你能从中学习到数据库设计思想. 诚然,我不是一名DBA,我仅仅读过半本高性能MySQL(第3版)和一本数据库系统概论(第5版),一本java开发手册(华山版).我

    2024年02月05日
    浏览(39)
  • 数据库课程设计------书店管理系统

    书店会员管理系统 具体的效果图看博客-----书店管理系统2(https://blog.csdn.net/qq_45981397/article/details/124062654?spm=1001.2014.3001.5502) 需求分析 (1).信息需求 书店的管理人员和员工可以为管理系统添加图书的购买记录和退书记录. 会员可以购买图书以及退书,工作人员对会员的姓名,

    2024年02月04日
    浏览(46)
  • 数据库课程设计-人事管理系统

    学期就要结束了,要完成一个数据库的课程设计项目,想想自己一个学期下来啥也没学到,现在突然要独立完成一个小项目,不能偷懒,记录一下吧。 代码已经放在文章末尾 ^ v ^ 完成软件下载与环境配置,成功运行老师写好的学生管理系统。  第一次实现用代码弹出具体的

    2024年02月05日
    浏览(52)
  • 学生信息管理系统 Java+SQL Server 数据库原理课程

    该项目实现了图形化界面的数据库的登录,以及对数据库中表的增删查改。 正好老师布置了相关作业,通过Java 连接 SQL Server 数据库,就写一个学生管理系统。 jdk8 数据库连接通过sqljdbc6.0 图形化界面用swing 目录 1、Java 连接SQL Server数据库 2、准备数据库 3、登录界面 要求:

    2024年02月09日
    浏览(68)
  • 数据库课程设计(教室设备故障报修系统)

      内容与要求: 完成需求分析,写出功能需求和数据需求描述; 在需求分析的基础上,完成数据库概念结构设计、逻辑结构设计、物理结构设计和数据库创建; 完成视图、存储过程设计,要求定义合理。 在应用程序中合理运用存储过程,正确运用DML语句。 1.1 设计的背景和

    2024年02月12日
    浏览(46)
  • java课程设计(学生信息管理系统设计)+数据库

    🔍 🔎 本期带领大家一起来学习 java课程设计(学生信息管理系统设计)+数据库 的实现思路 🔍 🔎 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计学生信息管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、学生信息录入功能

    2024年02月08日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包