数据库课程设计(自己做的).docx
货存控制系统6、1数据库设计概述数据库设计的概念:数据库设计就是指对于一个给定的应用环境,构造最优的数据库 模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息 要求与处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库设计的特点1、数据库建设就是硬件、软件与干件的结合:三分技术、七分管理、十二分基础数据, 技术与管理的界面称之为干件。2、数据库设计过程就是结构设计与行为设计的密切结合:结构设计就是设计数据库结构, 行为设计就是设计应用程序、事务处理等。数据库设计的方法1、手工试凑法:设计质量与设计人员的经验与水平有直接关系,缺乏科学理论与工程方 法的支持,工程质量难保证。2、规范设计法:基本思想就是过程迭代与逐步求精。数据库设计的基本步骤准备工作:选定参加设计的人员。分析员:数据库设计的核心人员,自始至终参与数据库设计,其水平决定了数据库系统 的质量。用户:主要参加需求分析与数据库的运行维护,用户的积极参与将加速数据库设计,提 高数据库设计的质量。程序员:在系统实施阶段参与进来,负责编制程序。操作员:在系统实施阶段参与进来,准备软硬件环境。数据库设计的过程(六个阶段)1、需求分析阶段:准确了解与分析用户需求(包括数据与处理),就是整个设计过程的基础,就是最困难、最 耗费时间的一步。2、概念结构设计阶段:整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型3、逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。4、数据库物理设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构与存取方法)。5、数据库实施阶段:运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计与物理设计的结果建立数据 库、编制与调试应用程序、组织数据入库并进行试运行。6、数据库运行与维护阶段:数据库应用系统经过试运行后即可投入正式运行,在运行过程中不断对其进行评价、调 整与修改。设计一个数据库应用系统往往就是上述六个阶段的不断反复。数据库设计各阶段的模式形成:1、需求分析阶段:综合各个用户的应用需求。2、概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图)。3、逻辑设计阶段:首先将E-R图转换成具体DBMS支持的数据模型,如关系模型,形成数 据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视 图(View),形成数据的外模式。4、物理设计阶段:根据DBMS特点与处理需要,进行物理存储安排,建立索引,形成数据库 内模式。一、课程设计题目:货存管理系统一个公司希望为控制它的货存建立一个数据库,货存中的产品被分为几类,如服装、食品 与文具。当产品需要从供应商那里重新订购时,工作人员需要提出一个购买订单。跟踪记录 要提供买进、卖出的货物以及其她的费用。实验课程任务与要求目的与任务:1、掌握数据库设计与实现的基本过程2、掌握数据库模式设计、分析与实现的方法3、了解数据库应用系统软件开发的一般过程。实验基本要求:(1)学习相关的预备知识(2)按照数据库设计与实现过程完成数据库的设计,应用程序的开发,上机调试、 运行(3)写出课程设计报告二、功能需求分析:根据系统要求分析,本系统功能如下:用户管理:添加用户,修改用户密码。客户管理:添加客户,查询客户信息。供应商管理:添加供应商,查询供应商信息。仓库管理:添加仓库,查询仓库信息。货物管理:添加物品信息,物品类型信息。入库管理:货物的入库信息的添加与修改。出库管理:货物的出库信息的添加与修改。1、CREATE TRIGGER Tr_入库表ON入库表after insert,update,deleteASbeginupdate a set a、库存数量二a、库存数量+b、入库数量from 零件信息表a,(select零件号,sum(入库数量)入库数量from inserted group by零件号)b 如果每次插入时零件号不重复,则不必聚合where a、零件号二b、零件号;goupdate a set a、库存数量二a、库存数量-b、入库数量from 零件信息表a,(select零件号,sum(入库数量)入库数量from deleted group by 零件号)b 如果每次插入时零件号不重复,则不必聚合where a、零件号二b、零件号;goend2、CREATE TRIGGER Tr_出库表 ON 出库表after insert,update,deleteASbeginupdate a set a、库存数量二a、库存数量-b、出库数量from 零件信息表a,(select零件号,sum(出库数量)出库数量from inserted group by零件号)b 如果每次插入时零件号不重复,则不必聚合where a、零件号二b、零件号;goupdate a set a、库存数量二a、库存数量+b、出库数量from 零件信息表a,(select零件号,sum(出库数量)出库数量from deleted group by 零件号)b 如果每次插入时零件号不重复,则不必聚合where a、零件号二b、零件号;goend库存信息:对货物的现有信息存量查询。三、数据库概念设计:本实例根据根据上面的设计规划出的实体有仓库实体、客户实体、供应商实体、管理员实体、 货物实体、货物类型实体、入库实体、出库实体、库存实体。各个实体的E-R图描述如下:仓库实体E-R图供应商实体E-R图客户实体E-R图管理员实体E-R图货物实体E-R图整体E-R图如下所示:一仓陶号;血H5)题员 管理员桐;char® 朝/蜘 管理员翻:char S)归:规:""fl碑件做龄邮"威ftSMii: char (40) &匡面口: int 着僮员盅昼cW(5)韩物品墉号:char (5 嬲铜;M(1U) '圭理轮血戒。) 仓库墉号:如蔺 切翩量;mt供应商编号:血(5)姬莅.现:血:;0) 供应觥北;:后1:;0) 邮编:chai(6)管国员编号:dial (B! !: :!: :!: !:!: :!:!:!: !:!: :韧解号:chai (5)char (ID) 益型铺:血曲)ii: reL,厨'j: mt瓢金额:御1褊号:chai (5)M: chai(20)谁物品编号;M (5由呈院:丽:汕 妲舸:chai®客棚号:char(5) 瑜5源弓:搦*如血丈) 翘名稀:骚(加) 出解佻real 出朝重:mt炸日烈沽客户墉写:char (5) 喜所凯:而) 灿:chai (40) KSS: cW(ll) 嬲嘛* char (5)田:&空:炽炽:迎:炽:&空:炽炽:此!: !:!::" :!:":!: !:<<!:<<!:":!:!: :!:":!: !:":!:":!:!:!笑膜型柄蹒号:chai (5) 翅翎;chai (2D) SSSS: char (5 D)四、数据库逻辑设计:ER图向关系模型的转关系数据库的数据模型(即关系模型)由一组关系模式组成,因而换实际上就就是将实体(包括实体的属性)与联系转换为关系模式,一般遵循以下基本原则:1、一个实体型转换为一个关系模式。实体的属性就就是关系的属性,实体的码就 就是关系的码。2、一个1:X(X为1或n)联系通常与某一端的关系模式合并,其中1:n的联系需要 与n端对应的关系模式合并。需要在合并的关系模式的属性中加入另一个关系模式的码与联 系本身的属性。3、一个m:n联系转换为一个关系模式。与该关系相连的各实体的码以及联系本身 的属性均转换为关系的属性,而关系的码为各实体码的组合。4、三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联 系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体的码的 组合。5、具有相同码的关系模式可合并。使用SQL server 2000企业管理器建立数据库与表(也可使用SQL语句建立数据库)。数据库包括:1、仓库的数据项描述:Storage数据项名对应英文名数据项含义类型长度说明仓库编号Sno仓库的编号char5主键仓库名称Sname仓库的名称char20仓库地址Saddr仓库的地址char40管理员编号Mno管理员的编号char5外键仓库面积Ssize仓库的大小int2、供应商的数据项描述:Provider数据项名对应英文名数据项含义类型长度说明供应商编号Pno供应商的识别号码char5主键供应商名称Pname供应商公司的名称char20供应商地址Paddr供应商公司的地址char40邮编Postcode公司的邮编char6电话Ptel公司的电话char113、客户的数据项描述:Client数据项名对应英文名数据项含义类型长度说明客户编号Cno客户的编号char5主键客户名称Cname客户公司的名称char20地址Caddr客户公司的地址char40联系电话Ctel客户联系电话char114.货物的数据项描述:Goods数据项名对应英文名数据项含义类型长度说明物品编号Gno物品的编号char5主键物品名称Gname物品的名称char20类型编号Tno物品的类型char5外键5、货物类型的数据项描述:Type数据项名对应英文名数据项含义类型长度说明类型编号Tno物品的类型的编号char5主键类型名称Tname物品的类型的名称char20类型描述Tdescription物品的类型的描述char506、管理员的数据项描述:Manager数据项名对应英文名数据项含义类型长度说明管理员编号Mno管理员的编号char5主键管理员姓名Mname管理员的姓名char20密码PW该管理员的密码Char67、库存的数据项描述:Stock数据项名对应英文名数据项含义类型长度说明物品编号Gno货物表中物品编号Char5外键、主键仓库编号Sno仓库的编号Char5外键物品名称Gname货物的名称Char10类型名称Tname货物的分类Char20物品数量Gnum货物的存储量Int入库(合计)-出库(合计)8、入库的数据项描述:Stock_In数据项名对应英文名数据项含义类型长度说明物品编号Gno货物表中物品编号Char5外键、主键供应商编号Pno供应商的编号Char5外键、主键物品名称Gname货物的名称Char10类型名称Tname货物的分类Char20购入单价Ginprice货物购入的价格Real入库数量Innum入库的数量Int采购金额Inprice本次采购的金额Real购入单价*入库数量入库日期Indate入库的时间Char209、出库的数据项描述:Stock_Out数据项名对应英文名数据项含义类型长度说明物品编号Gno货物表中物品编号Char5外键、主键客户编号Cno客户的编号Char5外键、主键物品名称Gname货物的名称Char10类型名称Tname货物的分类Char4出售单价Goutprice货物出售的价格Real出库数量Outnum出库的数量Int出库金额Outprice本次出库的金额Real出库数量*出售单 价出库日期Outdate出库的时间Char20五、系统开发1、数据库建立Create database storage_manage;供应商Provider create table Provider( Pno char(5) primary key, Pname char(20), Padddr char(40), Postcode char(6), Ptel char(11) );电巽L查询升折驿三巨区攵件。编辑政 查询® 工具 wnii)季助旧|画| D爪皿宜M3I就替&|窗田X3 DHI书邙FO62L3LE OnaWCGFOE ,DKr-acaPDasisiB丹| nastitrnode!U(J or Umi nd.0j OtTAAJl UlbJB-"iSSGSS4 I孩表.【* I世HJVcreate table FTovider.4Pno char(5.)priirary key,Pnamr char : 20.)F zchar JC ,Postcode char(6.FItL char 'll):三!< 1IJI,凶命令已成:功完虑兰V<|.> OBTKtFO213IB. stoxagB_>anagB. 0HT-C0F02131BXAjdB±ni8tritGd. -Xj|r扫果|园点j表属性一 Providex侦客户Client create table Client( Cno char(5) primary key, Cname char(20), Caddr char(40), Ctel char(11) );W SQL者询分新春匚-FX卫之匚 疏审追;苣询g M.(T)芍fl 帮助由台同 |、龟 I| H T |11目 MSagnan/T | W 皆徵 | 曾寻 OQn-EC6F06213 L B (QHY-fiCfiraE =um-oluum白3:3-:-+i.3-3-mister ma deL msdb Udrthfji'iiid pals storage_n:afiage _l习户古 A4 _J Ibo. 'Itpropcirta es E'11 dbo. Fruvi der副dho. CLidjitcreaie table ClientCn: char E primary keyCri-iin chaH。',Cad'ir chstr i 4'Ct ml char L_);<也1'计今己*<1 >f 查询OHT-6C6F062L31B. si arage_>sji%gc. DBT-6C6F062131BJulsinistrato. fL|fcT|3C |货物类型Type create table Type(Tno char(5) primary key, Tname char(20), Tdescription char(50) );货物 Goodscreate table Goods(Gno char(5) primary key,Gname char(20),Tno char(5), foreign key(Tno) references Type(Tno) );幡SOL Si斜得二叵区ie - Gr H 房坚电:A/卜.|H】rsnm非二蝇菅&虞忌1X j OHT-6D6FOB2L3LB C1Q-GOGJOE .土件口翎&互吾EM二日QJ宥口苴无上很od-u J E-,S-.S-.B-nsdbpubs stc-ragt ji-_|耻-Jrhdbo. CHentdh d. Jtjnr opbr ti beBi= -ZJ -二<«dhD.的口如dho. Pr DvidardhD. TypeHi应 查询 一OKY-6C6F062131E.stoxagB_>aiiage.007-661"06213181*±11104»4. L|D'lXsAcreate table Cools.Gno char:5.i priTraiy key,GnaiDe char:20.LTnn char (.5)forEign kev:TriD: references Type'Tno)V<iii ji力中2志和冗虱a9窒:1V>管理员 Manager create table Manager( Mno char(5) primary key, Mname char(20), PW char(6) );仓库 Storagecreate table Storage(Sno char(5) primary key,Sname char(20),Saddr char(40),Mno char(5),Ssize int,foreign key(Mno) references Manager(Mno) );表属性一Storage常规iff 名称怛);Storage根限所有者:dbo创建日期:2011-1-3 20:30:13文件组:PRIMARY行:0列:键ID数据类型大小.空状趺值Snochar! GnamecharSaddrcharMnocharS sizeints'ersrls520405 4| 确定 | 取消 I应用| 帮助 I库存 Stockcreate table Stock(Gno char(5),Sno char(5),Gname char(10),Tname char(20), Gnum int, primary key(Gno),foreign key(Gno) references Goods(Gno), foreign key(Sno) references Storage(Sno) );域3QL奄瞒析W. X> |l l 心-、c二 以智欢 雪鹊J 0m-eC6BDe£j31B i:OJff-EC&PJE g1 垂询 0mT-GC6F0G21 3 IB. at Drag:e aianage- OHT-CgFD6213BAdAini rt rjrtroz 无标迓 I=t_u-u-udm曰 <nortlwauid.pihMAh以.Cl I »ti-L:+i oH 3可mdbo. dlpTCTMt lm dbD.Goads dboJIuacr fbo.Ftwi.顼SH由 尸11 -ILe. 2a C_Id.'+1Si-a rJc_Qu.l_J i'bo.S'torftfftJI FJ fbo.TjT:I'ibo. Stackcreate table Stock1-Gnn char .5.Sno 匚bar j,Gnaire char 10)?Tnaire ehar 20J,Gnum intjprimary key : Gno1,fcireL:5n key'&no1 referencEE Goods '.Gdd.fcireijn key -Sno) references Storage .Stw.'<JJ土皿替对条句转.1口期&相hg I入库 Stock_Increate table Stock_In(Gno char(5),Pno char(5),Gname char(10),Tname char(20),Ginprice real, Innum int,Inprice real,Indata char(20), primary key(Gno,Pno),foreign key(Gno) references Goods(Gno),表JE牲一Stock_Inforeign key(Pno) references Provider(Pno);|M 右称'梢:5iock In.折有舌Thn丑建日节:2011 1 3 20:50 33文件担吁问的"孑。默认苗PnoGnomeThameGhpriceInnumInpricecharcha-charrralITreal_u _u5 1 2 4 4 4聊肖应,用成)出库 Stock_Outcreate table Stock_Out(Gno char(5),Cno char(5),尹有若dbo勺一起日期.2011 -1 -9 21107.CO立件滑PRIMARY巳0列.Gname char(10),Tname char(20),Goutprice real,Outnum int,Outprice real,Outdata char(20),primary key(Gno,Cno),foreign key(Gno) references Goods(Gno),foreign key(Cno) references Client(Cno)i S4L腐宵日可区I文伴啰 网陌 立岬迎.1 Xfl' Bn I?:1 瑚JQP| 'S 00* Q >lL & FD T 11. Hkar:mjBnjaF | 壬|话 反 皆 段- J vlir u_ Viie-i-用尸段.rn iiic°. Uiitfe 二dfat- dtprf+T1! -bEH- 2血枷心!+ °1 dfat I*l5工irE= 0 flb”. ItElwf时畿浴览窝怛i壬 直诉一。肝-W!GFIMW1l3li札玳配-OKT-SCEl?flifi2!l3lB;Miii应玳mt. 一 gl叵又IF _ dbc:. S tclc bfe 二Aits. £tc-ck xcreate tabic Etack.OuttGtw char (5)Qua char(E)?Cn:ane chWl。;、Tnane char (20 .Gautieri cc rc-al.Lkitimn int.Currier rtaL.Cutdata 毛pri nsary ke- Qi3B,Cna) Bforeign key Gjud) mEeraiccs GductelGn口;、farei-sn ks=? Qdd references Client Cod);< >苗中已成功宠帐Sffi: I表属性 Stocik_0utX |常规S网机山:5tock_Out顷 HI.擎宿亲型太小.空默认fl AGnoChoGnameTnameGoulpricBOulntwiOulpcice闫 一 V上_口由做回做回o O5 1 2 4 4 i确定 1甲、哨澜 1希助六、总结:本次课程设计虽然经历了许多困难,但就是也学到了很多东西,觉得还就是 很有收获。这次的课程设计根据老师给出的时间安排,我们花了一天时间上网找 资料,与去图书馆借相关的书籍,然后按照慢慢的做完这次的设计。虽然自己认为 自己的设计的比较合理,但就是在用编程工具实施的时候,就发现自己考虑问题 的时候还就是有很多欠缺与不足的地方。经过这一周的课程设计,我更加认识到自己的不足之处,对问题的分析就是 还不够全面,对事物瞧不还不很透彻。所以导致在设计的时候,就出现这样那样的 漏洞与不足。在现在的软件开发,我想不会存在自己一个人去开发一个软件,应该 就是一个团队来完成。我觉得我们应该早些培养这方面的意识。在以后的工作中 才更有利。经过此次课程设计使我们更加了解数据库的应用与对数据库的备份与恢复、性能 分析与改进等等,也使我们更加意识到不懂的问题就要问,最好问团队成员与同 学,不然就上网搜,可别一个人在那瞎想,这就是一个团队的事情,只有团队合作 好了,项目才能有质量、有效率的完成。