数据库系统基本知识教学规划(最终版).doc

上传人:小** 文档编号:4526302 上传时间:2021-09-26 格式:DOC 页数:27 大小:270.45KB
返回 下载 相关 举报
数据库系统基本知识教学规划(最终版).doc_第1页
第1页 / 共27页
数据库系统基本知识教学规划(最终版).doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《数据库系统基本知识教学规划(最终版).doc》由会员分享,可在线阅读,更多相关《数据库系统基本知识教学规划(最终版).doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、,数据数据库库原理及原理及应应用用课课程程设计设计 小小组组名称:名称: 小太阳小小太阳小组组 数据数据库库名称:名称: 药药品存品存销销信息管理系信息管理系统统 ,目目录录1 数据库需求分析.11.1 需求分析.11.2 功能需求分析.21.2.1 药品存销基本流程图.21.2.2 信息的更新.21.2.3 数据需求.31.3 数据字典.51.4 数据结构名称.62 数据库概念结构设计.93 数据库逻辑结构设计.94 数据库物理结构设计.155 数据库操作代码部分.185.1 数据库创建代码.185.2 创建表代码.185.3 数据库的查询操作代码.205.4 视图创建代码.216 系统规范

2、化设计.226.1 数据库表的规范化设计.226.2 数据库的完整性设计.226.3 数据库的维护和安全性设计.227 总结.237.1 收获.24,7.2 不足和改进.24,1 数据数据库库需求分析需求分析1.1 需求分析需求分析病人对药物有需求之后向药店的销售人员发出买某种药品的请求,经过某销售人员核查审视之后向药店仓库管理人员发出取药请求(病人和销售人员为多对多的关系,销售人员和仓库管理人员为多对多关系),仓库管理人员接受请求之后去仓库拿药并记录在案(仓库管理人员和仓库之间为一对一关系),之后将所需要的药给销售人员,再由销售人员售卖给客户并记录在案。当仓库某药品库存不够的时候,由仓库保管

3、员发出进药请求,经过核实之后由药品制造厂商供货给仓库保管员(药品供货厂商和仓库之间为多对一关系),并由仓库保管员记录并使药品存入其中一个仓库并记录在案,以便下次销售人员请求提取药品。,1.2 功能需求分析功能需求分析1.2.1 药药品存品存销销基本流程基本流程图图1.2.2 信息的更新信息的更新药品供应商信息药品信息供应订单信息销售订单信息仓库信息客户信息仓库药品库存信息存储 修改 删除 查询员工信息药品供应商是否提交订单是仓库客户客户是否提交订单是根据库存情况提交药品订单药品入库 否否,1.2.3 数据需求数据需求1.药药品供品供应应商:商:公司名、地点、联系方式、供应药品名称2.药药品:品

4、:药品编号、药品名称 、生产厂家、生产日期、保质期、用途、进价、售价3.员员工:工:员工编号、姓名、性别、年龄、学历4.仓库仓库: :仓库编号、药品存放位置、药品名称、药品编号、数量5.入入库单库单: :仓库编号、仓库保管员编号、药品名称、药品数量6.仓库仓库保管保管员员: :仓库保管员编号、姓名7.出出库单库单: :仓库编号、仓库保管员编号、药品名称、出库药品数量、销售人员编号8.销销售人售人员员: :,销售人员编号、姓名9.客客户户: :客户编号、姓名、联系方式、性别,1.3 数据字典数据字典1.supCom 供应商公司名 varchar(20)2.supPos 供应商地点 varchar

5、(40)3.supPhon 供应商联系方式 varchar(20)4.supMed 供应商药品名称 varchar(20)5.supTime 供应时间 datetime6.supNum 供应数量 int7.medName 药品名称 varchar(20)8.medNum 药品编号 int9.medProd 药品生产厂家 varchar(20)10. medTime 药品生产时间 date11. medExpDate 药品保质期 varchar(20)12. medUse 药品用途 varchar(40)13. InPri 药品进价 float14. OutPri药品售价float15. cus

6、Num 客户编号 int16. cusTime 客户购买时间 date17. salNum 销售数量 int18. cusName 客户姓名 varchar(20)19. cusPhone 客户联系方式 varchar(11)20. cusSex 客户性别 varchar(2)21. staNum员工编号 int22. staName 员工姓名 varchar(20)23. staSex员工性别varchar(2)24. staAge员工年龄int25. staEdu员工学历varchar(20)26. warNum仓库编号int27. warMedNum仓库药品库存 int28. medPo

7、s药品存放位置varchar(20)29. salPeoNum销售人员编号int30. warPeoNum仓库保管员编号int31. OutMedNum出库药品数量 int,1.4 数据数据结结构名称构名称数据结构名称含义组成Supplier供应商supCom *1supPosesupPhonsupMedSupplyChain供应订单supCom *1supNumsupTimemedName *2Medicine药品medNum *3medName *2medProdmedTimemedExpDatemedUseInPri,OutPriSalesOrder销售订单cusNum *9cusTim

8、emedNum *7salNumsalPeoNum *8SaleMan销售人员salPeoNum *8 *6staNameCustomer客户cusNum*9cusNamecusPhonecusSexStaff员工staNum *6staNamestaSexstAgestaEdu,WarStorage仓库warNum*4medPosmedNamemedNumwarMedNumInStorage入库单warNumwarPeoNummedNum *3supNumStoreKeeper仓库保管员warPeoNum *6warPeoNamewarNum *4OutStorage出库单warNumwar

9、PeoNummedNum *7outMedNumsalPeoNum,2 数据数据库库概念概念结结构构设计设计药品供应供应商数量时间入库仓库公司名称mingchen数量时间药品编号仓库员工出库销售员工销售客户数量时间药品编号销售员工编号仓库员工编号,3 数据数据库逻辑结库逻辑结构构设计设计Supplier数据项含义数据类型长度其他supCom供应商公司名varchar20主键suppose供应商地点varchar40supPhon供应商联系方式varchar20supMed供应商药品名称varchar20SupplyChain数据项含义数据类型长度其他supCom供应商公司名varchar20外

10、键supNum供应数量intsupTime供应时间datetimemedName药品名称varchar20主键,Medicine数据项含义数据类型长度其他medNum药品编号int主键medName药品名称varchar20外键medProd药品生产厂家varchar20medTime药品生产时间datemedExpDate药品保质期varchar20medUse药品用途varchar40InPri药品进价floatOutPri药品售价floatSalesOrder数据项含义数据类型长度其他cusNum客户编号int外键cusTime客户购买时间datemedNum客户编号int外键salNu

11、m销售数量intsalPeoNum销售人员编号int外键,SaleMan数据项含义数据类型长度其他salPeoNum销售人员编号int主键、外键staName员工姓名varchar20Customer数据项含义数据类型长度其他cusNum客户编号int主键cusName客户姓名varchar20cusPhone客户联系方式varchar11cusSex客户性别varchar2Staff数据项含义数据类型长度其他staNum员工编号int主键staName员工姓名varchar20staSex员工性别varchar2stAge员工年龄intstaEdu员工学历varchar20,WarStora

12、ge数据项含义数据类型长度其他warNum仓库编号int主键medPos药品存放位置varchar20medName药品名称varchar20medNum药品编号intwarMedNum仓库药品库存intInStorage数据项含义数据类型长度其他warNum仓库编号intwarPeoNum销售人员编号intmedNum药品编号int外键supNum供应数量intStoreKeeper数据项含义数据类型长度其他,warPeoNum仓库保管员编号int外键warPeoName仓库保管姓名varchar20warNum仓库编号int外键OutStorage数据项含义数据类型长度其他warNum仓库

13、编号intwarPeoNum仓库保管员编号intmedNum药品编号int主键outMedNum出库药品数量intsalPeoNum销售人员编号int,4 数据数据库库物理物理结结构构设计设计create database MEDCINEcreate schema SALES;create table SALES.Supplier(supCom VARCHAR(20) PRIMARY KEY, supPose VARCHAR(40),supPhon VARCHAR(20),supMed VARCHAR(20);create table SALES.SupplyChain(supCom VARC

14、HAR(20),foreign key(supCom)references SALES.Supplier(supCom),supNum INTEGER,supTime DATETIME,medName VARCHAR(20) PRIMARY KEY)create table SALES.Medicine(medNumINTEGER PRIMARY KEY,medNameVARCHAR(20),foreign key(medName)references SALES.SupplyChain(medName),medProdVARCHAR(20),medExpDateVARCHAR(20),med

15、UseVARCHAR(40),InpriFLOAT,OutPriFLOAT)create table SALES.Customer(cusNumINTEGER PRIMARY KEY,cusNameVARCHAR(20),cusPhone VARCHAR(11),cusSexVARCHAR(2)create table SALES.Staff(staNumINTEGER PRIMARY KEY,staNameVARCHAR(20),staSexVARCHAR(2),staAgeINTEGER,staEduVARCHAR(20)create table SALES.SaleMan(salPeoN

16、umINTEGER PRIMARY KEY,foreign key(salPeoNum)references SALES.Staff(staNum),staNameVARCHAR(20)create table SALES.WarStorage(warNumINTEGER PRIMARY KEY,medPosVARCHAR(20),medNameVARCHAR(20),medNumINTEGER,warMedNumINTEGER)create table SALES.InStorage(warNumINTEGER,foreign key(warNum)references SALES.WarS

17、torage(warNum),warPeoNumINTEGER,medNumINTEGER,foreign key(medNum)references SALES.Medicine(medNum),supNumINTEGER,)create table SALES.StoreKeeper(warPeoNumINTEGER,foreign key(warPeoNum)references SALES.Staff(staNum),warPeoNameVARCHAR(20),warNumINTEGER,foreign key(warNum)references SALES.WarStorage(wa

18、rNum),)create table SALES.OutStorage(warNumINTEGER,warPeoNumINTEGER,medNumINTEGER PRIMARY KEY,outMedNumINTEGER,salPeoNumINTEGER),create table SALES.SalesOrder(cusNumINTEGER,foreign key(cusNum)references SALES.Customer(cusNum),cusTimeDATETIME,medNumINTEGER,foreign key(medNum)references SALES.OutStora

19、ge(medNum),salNumINTEGER,salPeoNumINTEGER,foreign key(salPeoNum)references SALES.SaleMan(salPeoNum),5 数据数据库库操作代操作代码码部分部分5.1 数据数据库创库创建建代代码码create database MEDCINEcreate schema SALES;5.2 创创建表代建表代码码create table SALES.Supplier(supCom VARCHAR(20) PRIMARY KEY, supPose VARCHAR(40),supPhon VARCHAR(20),supMe

20、d VARCHAR(20) UNIQUE);create table SALES.SupplyChain(supCom VARCHAR(20),foreign key(supCom)references SALES.Supplier(supCom),supNum INTEGER,supTime DATETIME,medName VARCHAR(20) PRIMARY KEY)create table SALES.Medicine(medNumINTEGER PRIMARY KEY,medNameVARCHAR(20),foreign key(medName)references SALES.S

21、upplyChain(medName),medProdVARCHAR(20) NOT NULL,medExpDateVARCHAR(20) NOT NULL,medUseVARCHAR(40),InpriFLOAT,OutPriFLOAT)create table SALES.Customer(cusNumINTEGER PRIMARY KEY,cusNameVARCHAR(20) not NULL,cusPhone VARCHAR(11) NOT NULL,cusSexVARCHAR(2),)create table SALES.Staff(staNumINTEGER PRIMARY KEY

22、,staNameVARCHAR(20),staSexVARCHAR(2) CHECK(staSex= 男or staSex= 女),staAgeINTEGER,staEduVARCHAR(20)create table SALES.SaleMan(salPeoNumINTEGER PRIMARY KEY,foreign key(salPeoNum)references SALES.Staff(staNum),staNameVARCHAR(20)create table SALES.WarStorage(warNumINTEGER PRIMARY KEY,medPosVARCHAR(20) UN

23、IQUE,medNameVARCHAR(20),medNumINTEGER,warMedNumINTEGER)create table SALES.InStorage(warNumINTEGER,foreign key(warNum)references SALES.WarStorage(warNum),warPeoNumINTEGER,medNumINTEGER,foreign key(medNum)references SALES.Medicine(medNum),supNumINTEGER,)create table SALES.StoreKeeper(warPeoNumINTEGER,

24、foreign key(warPeoNum)references SALES.Staff(staNum),warPeoNameVARCHAR(20),warNumINTEGER,foreign key(warNum)references SALES.WarStorage(warNum),)create table SALES.OutStorage(warNumINTEGER,warPeoNumINTEGER,medNumINTEGER PRIMARY KEY,outMedNumINTEGER,salPeoNumINTEGER)create table SALES.SalesOrder(cusN

25、umINTEGER,foreign key(cusNum)references SALES.Customer(cusNum),cusTimeDATETIME,medNumINTEGER UNIQUE,foreign key(medNum)references SALES.OutStorage(medNum),salNumINTEGER,salPeoNumINTEGER,foreign key(salPeoNum)references SALES.SaleMan(salPeoNum)5.3 数据数据库库的的查询查询操作操作代代码码销售人员查询订单表select * from Sales.Sale

26、sOrder仓库保管员查询仓库内药品库存select mednum 药品名,WarMedNum 剩余库存from Sales.WarStorageBOSS查询公司内所有员工的姓名和编号select staNum 员工编号,staName 员工姓名from Sales.Staff查询顾客所购药品的用途select c.cusNum 客户编号,cusName 客户姓名,medName 药品名称,medUse 药品用途from Sales.Medicine A,sales.SalesOrder B,Sales.Customer Cwhere A.medNum=B.medNumand B.cusNum

27、=C.cusNum,5.4 视图创视图创建代建代码码顾客所购买药品用途create view XC ASselect c.cusNum 客户编号,cusName 客户姓名,medName 药品名称,medUse 药品用途from Sales.Medicine A,sales.SalesOrder B,Sales.Customer Cwhere A.medNum=B.medNumand B.cusNum=C.cusNum各个员工的职责create view sd asselect 员工编号,员工姓名,员工职责 from sd1union select 员工编号,员工姓名,员工职责from sd2

28、子视图 sd2create view sd2 asselect salPeoNum 员工编号,staName 员工姓名,销售人员员工职责 from Sales.SaleMan子视图 sd1create view sd1 asselect warpeonum 员工编号,warpeoname 员工姓名,仓库保管员 员工职责from Sales.StoreKeeper,6 系系统统规规范化范化设计设计6.1 数据数据库库表的表的规规范化范化设计设计(你(你设计设计的表都的表都满满足第几范足第几范式)式)由于每个属性不可再分,所以满足第一范式;每一组非主属性都完全依赖于主码,满足第二范式6.2 数据数

29、据库库的完整性的完整性设计设计(你你创创建了哪些建了哪些约约束和触束和触发发器,器,要有触要有触发发器的代器的代码码)约束:员工性别和客户性别不能为空,客户联系方式不能为空,药品保质期和生产日期不能为空,员工编号和药品编号唯一,其他某些属性为主键和外键约束。入库时,修改仓库内该药品的库存数量:create trigger inWare on Sales.Instorage For Insert as begin update Sales.WarStorageset WarMedNum=WarMedNum+(select supNum from insertedwhere WarStorage.

30、MedNum=inserted.MedNum)end出库时修改相应的库存数据create trigger OutWare on Sales.OutStorageFor Insert as begin if exists (select * from Sales.WarStorage,insertedwhere inserted.OutMedNumSales.WarStorage.WarMedNum )begin print 库存不足rollback transaction,endupdate Sales.WarStorageset WarMedNum = WarMedNum-(select O

31、utMedNum from insertedwhere WarStorage.MedNum=inserted.MedNum)end删除销售人员时连带员工表的删除操作create trigger scr on Sales.SaleManFor deleteasbegin delete from Sales.Staffwhere Sales.Staff.staNum=(select salPeoNum from deleted)end删除仓库保管员时连带员工表的删除操作create trigger scr1 on Sales.StoreKeeperFor deleteasbegin delete

32、from Sales.Staffwhere Sales.Staff.staNum=(select warPeoNum from deleted)end6.3 数据库的维护和安全性设计(你设置了哪些用户,他们的权限是怎样的)登录名 用户Boss 所有表的管理删除修改权限 BSaleMan 对客户表的查询修改 对订单表的查修修改权限 SMStoreKeeper 对仓库表的查询修改 对出库单的查询修改 对入库单的查询修改 SKSaleManager 对销售人员表的查询修改删除 ManagerSaleKeeperManager 对仓库保管员表的查询修改删除 ManagerKeeperReceiving

33、Peo 进货人员 对供应商,供应订单有查询修改删除权限 对药品有查询权限 RecePeople,7 总结总结7.1 收获在完成这次数据库原理及应用课程设计大作业的过程中,我们小组多处利用软件工程思想,出现问题时充分利用网上学习经验,以及利用网络的学习资源,成功的结束了这次课程设计。在完成这次课程设计的过程中,我们小组成员团结协作,分工明确,配合默契,课程熟练的同学带动其他同学,同时对课程熟练的同学也对数据库原理及应用这门课有了新的认识,使小组成员都参与到本次课程设计中并发挥自己的作用,弥补自己的短板,大家共同进步。7.2 不足和改进对于范式的应用还不完善,应该加强对范式的理解,关于主码外码的性质应该进行更好的优化。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁