数据库技术是信息系统的一个核心技术

上传人:nu****n 文档编号:102968530 上传时间:2022-06-07 格式:DOC 页数:19 大小:82.51KB
收藏 版权申诉 举报 下载
数据库技术是信息系统的一个核心技术_第1页
第1页 / 共19页
数据库技术是信息系统的一个核心技术_第2页
第2页 / 共19页
数据库技术是信息系统的一个核心技术_第3页
第3页 / 共19页
资源描述:

《数据库技术是信息系统的一个核心技术》由会员分享,可在线阅读,更多相关《数据库技术是信息系统的一个核心技术(19页珍藏版)》请在装配图网上搜索。

1、目录 1. 摘要和需求分析32. 数据库结构设计2.1 概念设计全局/整体E-R图72.2 逻辑设计建立关系模式9用户子模式建立9关系模式逻辑结构定义103. 数据库物理设计 3.1 索引10 3.2 触发器10 3.3 存储过程114.数据库入库与测试 4.1数据入库12 4.2 数据库测试12参考文献12附录 SQL语句1 基本表132 视图143 索引154 触发器155 存储过程18药品进销存管理系统数据库设计摘要:随着计算机技术、通信技术和网络技术的迅猛发展,人类社会已经进入了信息化时代。信息资源成为最重要、最宝贵的资源之一,数据库技术已经成为信息社会中对大量数据进行组织与管理的信息

2、系统核心技术和网络信息化管理系统的重要基础。是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。目前中小型的药店营业规模不断扩大,药品的数量和种类不断增加,人工管理的难度也越来越大,如果开发出药品进销存管理系统,通过使用计算机对物质信息进行管理,可以很大程度上方便管理人员对药品的管理,实现管理的高效化和统一化。从而给工作带来了巨大的方便,给药店带来了巨大的经济利益。1. 需求分析需求分析阶段就是分析用户的需求,这也是设计数据库的第

3、一步。药品进销存管理系统是中小型药店管理人员方便药店的各个流程的工作为目的的。需求分析这个阶段,主要确定包括业务流程,数据流程,以及要实现的流程和目标,通过数据的分析,可以得到市场的信息,便于管理人员提高,优化管理水平。让销售更加方便,节约成本,带来经济效益。1.1.业务流图包括药品的采购,库存管理和销售,主要是阐述整个药品的进存的流水作业过程。如图1-1所示:存单提货提货单发货单发货提货单缺货查看销售部客户订货订货单提货单提货存档库存单退货单退货仓库采购员采购缺货单缺货供应厂家发货发货单验货入库药店采购退货单退货入库单入库1.2 .数据流程图是反映 药店作业过程的数据去向和流向。通过数据流程

4、图,抽象现实的数据到药品进销存的物理模型。再根据这个物理模型抽象出信息流,将物理模型转化成逻辑模型,反映信息在系统中的流动,处理,存储情况。流程图分为顶层数据流图,第一层数据流图,第二层数据流图。E1供应厂家P6进销存E2客户S1库存台帐图1-2 顶层数据流程图E1 供应厂家P1进货P4盘存P3报损P2销售E2客户S1 库存台帐E3库房图1-3 第一层数据流程图E2 客户P2.1 销售S1 库存合账P2.2 确认退货P2.3 退货S2 收支帐务图1-4第二层数据流程图 (销售) 库房 E3P3.1 库房报损S1 库存台帐P2 销售P3.2 销售报损图1-5 第二层数据流图 (库存管理)数据库结

5、构设计 主要分为概念设计和逻辑设计两个部分。2.1 概念设计1. E-R图设计如下:供应存储药品仓库供应厂家退货购买客户属性如下所示:供应厂家(供应厂编号,供应厂名称,供应厂厂址,供应厂电话,供应厂网站)药品(药品编码,药品商品名,通用名,药品分类,药品剂型,生产厂家,单价,生产日期,保质期)仓库(仓库编号,仓库类别,仓库地址)职员(职工编号,姓名,性别,年龄)客户(客户编号,名称,性别,电话)供应(供应量)购买(购买量)退货(退货原因,退货数量)2.2逻辑设计逻辑设计的任务是把概念结构设计好的基本E-R图转为与选用DBMS产品所支持数据模型相符合的逻辑结构。药品管理系统的设计采用关系模型。将

6、E-R图中的实体的属性和实体型之间的联系转化为关系模式。对于实体型间的联系有以下不同的情况:(1) 一个1:1联系可以转换为一个独立的关系模式,也可以以任一端对应的模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系的本身属性都转换为关系的属性。(2) 一个1:n联系可以转换为一个独立的关系模式,也可以与任一端对应的模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系的本身属性都转换为关系的属性。(3) 一个m:n联系转换为一个关系模式,与该联系相连的个实体的码以及联系本身的属性转换为关系属性,各实体的码组成关系的码或关系的码的一部分。药品管理系统涉

7、及的关系模式的几种情况主要来自以下几种联系 :供应厂家和药品信息的关系(m:n),药品和仓库的关系(m:1),药品通过销售部门和客户建立的联系(m:n)。2.2.1 建立关系模式药品进销存系统涉及的关系主要有:供应厂家的药品为m:n(多对多)的关系,将它们之间的联系转化为独立的关系模式。仓库和药品的关系为1:n(一对多),将其之间的联系与n端实体合并。职工和仓库的关系为1:n(一对多)的关系,也将其之间的联系与n端实体合并。客户和药品之间的联系为m:n(多对多)的关系,将它们之间的联系转换为独立的关系模式。具体的转换如下图所示,主键或外键已标注:供应厂家(供应厂编号,供应厂名称,供应厂厂址,供

8、应厂电话,供应厂网站)药品(药品编码,药品商品名,通用名,药品分类,药品剂型,单价,生产日期,保质期,库存量,报损量)仓库(仓库编号,仓库类别,仓库管理人员)管理(职工号,仓库号)客户(客户编号,名称,性别,电话)供应(供应厂家编号,药品编号,供应量)销售(药品编号,客户编号,销售量)退货(药品编号,客户编号,退货原因,退货数量)2.2.2 用户子模式建立根据需求分析研究建立满足不同需求的用户子模式,各个子模式的建立在更大程度上方便数据操作。用户子模式的定义如表所示。具体实现过程见附录3-2 用户子模式定义编号 用户子模式(VIEW) 作用V-1 vi supplier方便查询药品供应商信息V

9、-2 vi medicine方便查询各类药品的信息V-3 vi storehouse 方便查询仓库基本信息V-4 vi storage方便查询库存信息V-5 vi sale方便查询药品销售信息关系模式逻辑结构定义药品进销存管理系统涉及的8张表,分别是 Supplier, Medicine, Storehouse, Customer, Buy, Storage, Sale, Back。如下表所示:具体定义见对其对应附录。 编号 基本表定义 安全性和完整性T-1 Supplier 见附录T-2 Medicine 见附录T-3 Storehouse 见附录T-4 Customer 见附录T-5 Bu

10、y 见附录T-6 Storage 见附录 T-7 Sale 见附录T-8 Back 见附录3.数据库物理设计数据库在物理设备上的存储结构与存取方法就是数据库的物理结构,它依赖与选定的数据库管理系统。为给一个给定的逻辑数据模型选取一个最合适的应用环境的物理结构的过程,就是数据库的物理设计。这一阶段任务是确定数据库的物理结构,并不断的进行优化处理,主要建立索引,触发器,存储过程。3.1 索引建立索引是加快查询的有效手段。建立的索引如下表所示。编号 名称 定义 备注1-1 In SupName 见附录1-2 In MedNo 见附录1-3 In CusName 见附录3.2触发器 触发器是用户定义在

11、关系表上的一类由事件驱动的过程。触发器的定义可以更加便捷的实现数据的操作,增加数据操作的灵活性,对数据有更大的控制能力。如进货量,药品的入库保值期的检测。建立的触发器见下表。编号 触发器名称 定义 作用T-1 tri med1 见附录 限制更新药品保质期大于6个月T-2 tri med2 见附录 限制更新药品进价不小于1元T-3 tri med Date 见附录 限制过期药品不能插入T-4 tri cus1 见附录 限制将Sale表的购买量小于10的改为10T-5 tri acc 见附录 限制某一药品仓库存量不大于400T-6 tri cus2 见附录 限制删除C-4020客户的退货记录T-7

12、 tri buy1 见附录 限制采购量更新量不小于1003.3存储过程存储过程可以实现数据库操作的增删改功能,在执行时需要调用。药品的进存销过程部分存储过程如下所示。编号 存储过程名称 定义 作用P-1 pro sel sup 见附录 查询供货商信息P-2 pro sel med1 见附录 查询某一药品生产日期P-3 pro sel med2 见附录 查询呼吸系统药物P-4 pro upd med3 见附录 更新五官科药品保质期P-5 pro sel sale1 见附录 查询中草药的销售量P-6 pro sel back1 见附录 查询某种退货药品的退货量P-7 pro add sup 见附录

13、 插入一条供应商信息P-8 pro add med 见附录 插入一条药品信息P-9 pro add cus 见附录 插入一条客户信息P-10 pro del med 见附录 删除一条药品记录P-11 pro del back见附录 删除一条退货信息P-12 pro order sale见附录 按药品销量排序4.数据入库与测试 数据入库各个主要数据表如药品信息,供应厂家信息记录在20条以上,经过整理收集在EXCEL中,设置所需格式用批量导入的方式进行导入到数据库中。先导入基本表,再导入关系表,成功证明导入后的数据表可以打开,导入失败要检验是否符合完整性和逻辑要求。进行修改重新导入。4.1.2 数

14、据库测试 数据库测试是对建立的数据库及数据库对象进行测试。设计的测试案例主要有基本信息表数据的查询,插入,删除和更新操作。插入不满足约束条件的数据以检测触发器触发,基本操作都是以存储过程的形式实现代码的封装,执行时调用存储过程。参考文献【1】 萨师煊 王珊 数据库系统概论(第四版) 北京 高教出版社 【2】附录 sql 语句1 基本表Create database DrugstroeCreate table Supplier(Supno char(10) primary key,Supname char(40) not null,Supaddr char(10),Suptel char(15)

15、,Supnet char(20));Create table medicine(Medno char(10) primary key,Medname char(20) not null,Medtong char(20)not null,Medkind char(10),Medtype char(10),Medpri float,Meddate char(10),Medexp char(10);Create table customer(Cusno char(10) primary key,Cusname char(10) not null,Cussex char(2) check(cussex

16、 in(man, woman),Custel char(15) not null);Create table buy(Supno char(10),Medno char(10),Buyqua smallint,Primary key(supno, medno),Foreign key(supno) references supplier(supno),Foreign key(medno)references medicine(medno);Create table storage(Medno char(10),Stono char(10),Stoqua int,Lostqua int,Prim

17、ary key (stono,medno),Foreign key (stono) references storehouse (stono),Foreign key(medno) reference medicine (medno);Create table sale(Medno char(10),Cusno char(10),Salqua int,Foreign key(medno) references medicine (medno),Foreign key(medno) reference customer (cusno);Create table back(Medno char(1

18、0),Cusno char(10),Backsake char(40),Backqua int,Foreign key(medno) references medicine (medno),Foreign key(cusno) references customer (cusno);2.视图-建立视图Create view vi_supplierasSelect supnoFrom suppliercreate view vi_medicineasselect mednofrom medicineCreate view vi_stroehouseasSelect stonoFrom store

19、houseCreate view vi_storageasselect stonofrom storagecreate view vi_saleasselect medname 药名,Salequa销售量from medicine, salewhere medicine.medno = sale.mednoorder by salequa desc3.索引Create nonclustered index in_supnameOn supplier (supname)Create nonclustered index in_mednoOn medicine (medno)Create nonc

20、lustered index in_cusnameOn customer(cusname)2. 触发器触发器的建立-创建限制插入药品保质期大于6个月Create triger tri_med1On medicineAfter insert ,updataAsIf exists(Select medexpFrom medicineWhere medexp 6)begin print 保质期必须大于6个月 rollbackend 限制更新的药品进价不小于1元,小于一元的改为1元create trigger tri_med2on medicineafter insert ,updateas decl

21、aremedno char(10),medipri floatSelectmedno=medno,medipri=mediprifrom insertedifmedipri medexp)BeginPrint药品已过期Rollbackend-限制将表的购买量小于10的改为10Create trigger tri_cus1On saleFor updateAsIf updateasif update (salequa)if exists( Select*From inserted join deleted on inserted.medno = deleted.mednoWhere insert

22、ed.salequa = 10And deleted.salequa 400Print 存储量大于400-限制删除C-4020客户的退货记录Create trigger tri_cus2On backAfter deleteAs ifExists( select*From deletedWhere cusno = C-4020)beginprint删除记录end -限制采购量更新量不小于100Create trigger tri_buy1On buyFor insert, updateasif exist(select*from insertedwhere buyqua 100) beginp

23、rint 采购量小于100end5存储过程-建立存储过程-查询供货商信息Create procedure pro_sel_supasselect *from supplier-测试执行结果Execute pro_sel_sup-查询药品信息-create pro pro_medAsSelect *medicine-查询某一药品生产日期Create pro pro_sel_medl medname char(20)AsSelect medname药品名, meddate 生产日期From medicineWhere medname = medname测试执行结果(带参数)Exec pro_sel

24、_med1护彤颗粒-查询呼吸系统药Create proc pro_sel_med2AsSelect medno编号, medname 药品名称, medtong 通用名 from medicineWhere medkind=呼吸系统药 -测试执行结果Exec pro_sel_med2-更新五官科药品保质期Create proc pro_upd_med3AsUpdate medicineSet medexp = medexp + 12Where medkind = 五官科药-测试执行结果Exec pro_upd_med3-查询中成药的销售量Create proc pro_sel_saleAsSe

25、lect medicine药名, salequa 销量From medicine, saleWhere medicine.medno = sale.medno and medkind =中成药-测试执行结果Exec pro_ sel_sale-查询某种原因的药品的退货量Create proc pro_sel_back backsake char(40)As Select medname 药名,backqua 退货量From medicine, backWhere medicine.medno = back.medno and backsake-测试执行结果Exec pro_sel_back 过

26、期Exec pro_sel_back 数量有误-插入一条药品信息Create proc pro_add_medmedno char(10),medname char(20),medtong char (20),medkind char (10),medtype char (10),medipri float,meddate datetime,medexp intAsInsert into medicineValues(medno, medname,medtong,medking,medtype,medipri,meddate,medexp)-测试执行结果 Exec pro_add_med m-

27、2030, 好娃娃, 小儿氨酚烷胺颗粒, 呼吸系统药, 颗粒剂, 12, 2010-2-3, 24Exec pro_med-插入一条客户信息Create proc pro_add_cuscusno char(10),cusname char(20),cussex char(2),custel char(15)AsInsert into customerValues (cusno, cusname, cussex,custel)-测试执行结果Exec pro_add_cusC-4030, 张小铭, 男, -删除一条退货信息Create proc pro_del_backmedno char(10

28、)As deleteFrom backWhere medno = medno-测试执行结果Exec pro_del_back m-2001-删除一条药品记录Create proc pro_del_medmedicine char(20)As deleteFrom medicineWhere medname = mednameExec pro_del_med 好娃娃-按销售量排序Create proc pro_order_saleAsSelect medname 药品名, saleque 销售量From medicine, saleWhere medicine, medno = sale.mednoOrder by salequa descExec pro_order_sale

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!