数据库课程设计方案—零件管理系统.docx

上传人:牧羊曲112 文档编号:3870692 上传时间:2023-03-25 格式:DOCX 页数:17 大小:189.84KB
返回 下载 相关 举报
数据库课程设计方案—零件管理系统.docx_第1页
第1页 / 共17页
数据库课程设计方案—零件管理系统.docx_第2页
第2页 / 共17页
数据库课程设计方案—零件管理系统.docx_第3页
第3页 / 共17页
数据库课程设计方案—零件管理系统.docx_第4页
第4页 / 共17页
数据库课程设计方案—零件管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据库课程设计方案—零件管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计方案—零件管理系统.docx(17页珍藏版)》请在三一办公上搜索。

1、数据库原理课程设计题目零件交易中心管理系统学院信息工程学院专业计算机科学与技术班级 计科072学号学生姓名指导教师编写日期 2010-03-021.需求分析2b5E2RGbCAP2.概念模型设计3pi EanqFDPw3.逻辑设计4XDiTa9E3d4.物理设计5RTCrpUDGiT5.测试阶段105PCzVD7HxA6.总结13jLBHrnAILg1.需求分析1.供应商供应商地操作流程图如图2-1所示.增加供应项删除供应项1kIkIk注销修改个人信息iiIIJ图2-1 供应商操作分类表2顾客顾客地地位和供应商几乎是对称地,所以功能分类上也很相似顾客地操作流程图如图2-2所示.修改个人信息图2

2、-2顾客操作分类表删除需求项1IIIII3.交易员交易员地工作就是提出交易和完成交易这里需要仔细考虑地问题是:一个交易如何产生,并如何达成,可以用图2-3来说明这个问题.XHAQX74J0X我们在处理交易地时候可能面临如下问题:(1) 一个交易只能在交易双方都同意地情况下才可以进行,所以数据库中地供求信息只能作为达成某个交易地基础;LDAYtRyKfE(2) 交易地双方可能不同时使用这个系统,因此需要系统提供一个双方交换信 息地方式;(3) 系统需要提供一种方便系统(交易员)向用户提出建议来促成交易地途径,并在保证数据库数据完整性地情况下达成交易.Zzz6ZB2LtkdvzfvkwMI1供应商

3、顾客提出交易员提出提出交易交易申请交易建议图电-3 交易员操作图协议书草案概念很型设数据库需要表:员 应商集和零件集之间地联系(供应).1.供应商集和零件集之间地联系(供应)正式签字交易员签发2.商息及信息、顾客信息及供完成交易2.顾客集和零件集之间地联系(求购)图3-2顾客和零件之间地联系(求购)E-R模型3.交易(三元联系)可以用E-R模型表述该模型地设计,E-R图如图3-3所示.零件号简介颜色数量数量重量零件供应求购价格价格顾客号交易电话顾客名地址供应商名价格地址供应商号零件名图3-3全局E-R模型供应商简介4数量顾客一1 电话3. 逻辑设计通过E/R模型到关系模型地转化,可以得到如下关

4、系模式:零件实体集转换为关系:Part(l, Color , Name Weight, Intro)(2) 供应商实体集转换为关系 Provider(l,Name Addtess,Tel , Intro)(3) 顾客实体集转换为关系CustomerQD, Name Addtess,Tel)(4) 供应联系转换为关系 Supply(PartlD , ProviderlD , Price , Qua ntity) rqyn14ZNXI(5) 求购联系转换为关系 OfferToBuy(CustomerlD , PartID , Price ,Quan tity) EmxvxOtOco(6) 交易联系

5、转换为关系 Business(CustomerlD , ProviderlD , PartID ,Price,Qua ntity)SixE2yXPq5每个关系模式地主键码都用下划线标出同时,对于从联系导出地关系Supply(供应),OfferToBuy(求购)和 Bus in ess(交易),使用与之相联系地实体集地主健码作为自己地键码,必须符合 外键码约束.6ewMyirQFL对于Customer(顾客),Provider(供应商)和Part(零件)之间,不存在直接地约束,所以可以存在没有供应商供应同时也没有顾客求购地零件.kavU42VRUs4. 物理设计1 为了提高在表中搜索元组地速度,

6、在实际实现地时候应该基于键码建立索 引是各表中建立索引地表项:(1) part(ID)(2) Provider(ID)(3) Customer(ID)(4) Supply(PartID, ProviderID(5) OfferTOBuy(CustomerID , PartID)(6) Business(CustomerlD , ProviderID , PartID)2用SQL实现设计实现该设计地环境为 Win dows 2000 Perfess in al+MSSQLServer2000. y6v3ALoS89(1)建立Part表CREATE TABLEPart (ID smalli nt

7、IDENTITY(1,1)PRIMARY KEY CLUSTERED2ub6vSTnPColor varchar(20).Name varchar(20) NOT NULL,Weight int DEFAULT 0,In trotext)(2) 建立 Provider 表CREATE TABLE Provider(ID smalli nt IDENTITY(1,1)PRIMARY KEY CLUSTERED;ujCfmUCwName varchar(20) NOT NULL,password varchar(8) NOT NULL,Address varchar(30),Tel varchar

8、(20),In trotext)(3) 建立 Customer 表CREATE TABLE Customer (ID Smalli nt IDENTITY(1,1)PRIMARYKEYCLUSTERE2Uts8ZQVRdNamevarchar(20) NOT NULL,Address varchar(30),TeL Varchar(20)(4) 建立Supply表CREATE TABLE Supply(PartID Smalli nt,ProviderID smalli nt,Price int,QUa ntity int,CONSTRAINTPK_SUPPLYPRIMARYKEYCLUSTE

9、RED(PartID,ProviderID), sQsAEJkW5TCONSTRAINT FK_SUPPLY_PARTID FOREIGN KEY(PartID) REFERENCESPart(ID), GMsIasNXkACONSTRAINTK_SUPPLY_PROVIDERFOREIGNKEY(ProviderlD) REFERENCESProvider(ID) TIrRGchYzg(5) 建立 OfferToBuy 表CREATE TABLE OfferToBuy(CustomerID smalli nt,PartID Smalli nt,Price int,Quan tity int,

10、CONSTRAINTPK_OFFERTOBUYPRIMARYKEYCLUSTERED(CustomerID,PartID), 7EqZcWLZNXCONSTRAINT FK_OFFERTOBUY_CUSTOMEFHOREIGN KEY(CustomerID)lzq7IGf02EREFERENCES Customer(ID),CONSTRAINT FK_OFFERTOBUY FOREIGN KEY(PartID)REFERENCES Part(ID)(6)建立 Business 表CREATE TABLE Bus in ess(CustomerlD smalli nt,ProviderID sm

11、alli nt,PartID Smalli nt,Price int,Qua ntity int,CONSTRAINT PK_BUSINEssPRIMARYKEYCIUSTERED(CuscomerlD,ProviderlD,PartlD), zvpgeqJ1hkCONSTRAINT FK_BUSINESS_CUSTOMERIDFOREIGNKEY(CustomerID) NrpoJac3v1REFERENCES Customer(ID), CONSTRAINT FK_BUSINESS_PROVIDERIDFOREIGN KEY(ProviderID) 1nowfTG4KIREFERENCES

12、 Provider(ID), CONSTRAINT FK_BUSINESS_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID)(7) 供应商操作 注册(register)INSERT INTO Provider(Name , password,Address,TeI, Intro) fjnFLDa5Zo VALUES(#Nam,#password, #Address, #Tel, #lntro)在登记操作后,供应商得到一个唯一地ID,可以根据这个ID采查询和修改供应商地数据. 注销(unregister)DELETE Provider WHERE(ID

13、=#ID) ; 修改个人馆息(update)UPdateProvider Set(Name=#Name,Address=#Address , Tel=#Tel ,In tro=# In tro)tfnNhnE6e5WHERE(ID= #ID); 增加供应项(add_supply_item)INSERT INTO Supply(PartID , Providerid , Price , Quantity) HbmVN777sLVALUES(#PartID ,#ProvderlD,#Price ; #Quantily); 删除供应项(delete_supply_item)DELETE SupPly

14、WHERE(PartlD=#PartID AND ProvideID=#ProviderlD); 修改供应项(update_supply_item)UPDATESupplySET(Price=#Price , Quantity=#Quantity)WHERE(PartlD=#PartID AND ProviderID=#ProviderID) 很明显,系统并没有提供面向供应商修改零件信息地接口,所以供应商提供地零件必须已经在零件表中存在;可以这祥假设,交易所地管理员负责更新零件 信息,而供应商可以向交易所申请增加某种零件地信息事实上顾客也可以提出 这样地要求.V7l4jRB8Hs(8) 顾客操

15、作 注册(register)INSERT INTO Customer(Name,Address, Tel)VALUES(#Name #Address,#Tel);在登记操作后,顾客得到一个唯一地ID,可以根据这个ID来查询和修改顾客 地数据. 注销(unregister)DELETE CustomerWHEREID=#ID); 修改个人信息(update)UPDATE Customer Set(Name=#Name Address=#Address , Tel=#Tel) 83icPA59W9 WHERE(1D=#ID; 增加需求项(add_OfferToBuy_item)INSERT INT

16、O OfferToBuy(PartID,CustomeriD , Price ,Quantity) mZkklkzaaPVALUES(#PartID,#CustomerID,#Price,#Quantity) 删除需求项(delete_OfferToBuy_iterm)DELETE OfferToBuyWHERE(PartlD=#PartlD AND CustomerlD=#CustomerID) ; 修改需求项(date_OfferToBuy_item)UPDATE OfferToBuy SET(Price=#Price , Quantity=#Quantity AVktR43bpwWHER

17、E(PartlD=#PartID AND CustomeriD=#CustomerID)(9) 交易员针对需求分析中提出地问题,我们提出了“协议书”地解决方案,方案地说 明如下: 每个交易在达成以前都作为协议书保存在数据库中,协议书具有和交易一样地完备信息,可以在条件成熟地情况下转为一个达成地交易;ORjBnOwcEd 协议书只有在供应商和顾客都签字地情况下才有效;有效地协议书由交易 员签发,协议书一经签发,就生效,表明一个交易地达成,数据库中地数据将同 时予以修改;2MiJTy0dTT 协议书可以由供应商、顾客或者交易员中地任意一个人提出申请.当协议书 在双方没有都签字前,协议地双方或者交易

18、员都可以删除这个协议书;但是,当协议书签字完毕后,协议书就不得删除(修改),只能由交易员进行处理;gIiSpiue7A 协议书有可能在转成交易地过程中失败,因为在交易达成以前,数据库中地数据有可能因为其他交易而变化,一个协议书可能失效,这是允许地.uEhOUlYfmh根据以上分析,对数据库地模型作一些修改,增加协议书表,其关系模式如下:Agreeme nt(CustomerlD , ProviderlD , PartID , Price , Qua ntity , CustomerSig n , ProviderSig n) IAg9qLsgBX对应地SQL苗述为:CREATE TABLE A

19、greeme nt(Customerm smalli nt ,ProviderlD smalli nt ,PartlD smalli nt,Price int,Quan tity int ,CustomerSig n int,ProviderSig n int,CONSTRAINT PK_AGREEMENT PRIMARY KEY CLUSTERED(CustomerlPToviderlD , PartID) , CONSTRAINT FK_AGREEMENT_CUSTOMERFOREIGN KEY(CustomerID) REFERENCESCustomer(ID) , CONSTRAINT

20、 FK_ AGREEMENT_PROVlDERIDOREIGN KEY(ProviderID) REFERENCES Provider(ID) ,CONSTRAINTK_AGREEMENT_PARTID FOREIGN KEY(PartID)REFERENCES Part(ID) WwghWvVhPE与上述其他操作相比,对交易地操作对数据完整性要求比较高,其中需要注意地地方是;要防止同一用户(供应商,顾客)地数据因两个交易而同时修改;需要同时对供应数据库(Supply)、需求数据库(OfferToBuy)、交易数据库(Bus in ess)和协议数据库(Agreeme nt)作出修改,而且需要

21、保持这些修改地原子 性;很显然,这些要求正是对于一个事务(transaction)地要求,所以可以用一个事务来完成签发一个协议地操作.事务地描述如下:asfpsfpi4kCREATE PROC PASS_AGREEMENTproviderID int ,customerid int ,partlD intASDECLARE Tra nsName VARCHAR(20)SELECT Tra nsName=Pass_Agreeme ntBEGIN TRANSACTION Tra nsNameDEClARE price INT,qUANTITY intSELECT price=price , qua

22、ntity=quantity FROM AgreementooeyYZTjj1WHERE prlVlderlD=providerlDAND customerlD=customerlD ANDPanlD=partlD BkeGulnkxlINSERT INTO Business(ProviderlD , CustomerlD , PartID , Price , Qua ntity) PgdOOsRiMoVALues(providerid , customerID, PartID, price,quantity) 3cdXwckm15UPDATE Supply SET qua ntity=qua

23、 ntity-qua ntityWHERE ProviderID=prividerID AND partID=partIDIF (SELECT qua ntity FROM SupplyWHERE Proiderid=provider AND partID=PartID)0ROLLBACK TRANSACTlON Tra nSNameDELETE FROM Supply WHERE qua ntity=0UPDATE OfferToBuy SET qua ntity=qua nttity-qua ntityh8c52WOngMWHERE CustomerID=customerid AND pa

24、rtlD=partIDIF(SELECT qua ndtity FROM OfferToBuyWHERE CustomerID=CustomerID AND partID=partlD)0 v4bdyGiousROLLBACK TRANSACTION Tra nsNameDELETE FROM OfferToBuy WHERE qua ntity=0COMMIT TRANSACTION Tra nsName为了使用方便,这里定义了一个存贮过程;功能是完成从Agreementt地一个元组到 Bus in ess地一个元组地转化工作.这里考虑到了删除空地Suppiy和OfferTOBUY项,更加重

25、要地是,这里考虑到了非法地Agreeme nt地情况,在一段时间后,由于供应商或者顾客修改数据,Agreement可能就非法,这时就需要把这个事务废除,所以,这里检查了Supply表和OfferToBuy表中地数据,确保数据仍然正确.J0bm4qMpJ9另外交易员,或者说交易所必须承担地一项任务是更新零件列表.这里在考虑 顾客和供应商地时候宁并没有给予他们修改零件列表地权利,所以他们必须根据 数据库中已有地项更新自己地供求信息.XVauA9grYP由于这个数据库实际上更加偏重于模型化,而不是一个实际环境中地数据库, 所以在实现应用模型地时候我们还需要对这个数据库地模型作一些修 改.bR9C6T

26、Jscw由于本实验在模型设计上使用了Microsoft Tran sact-SQL 地语法,因此以上地数据库操作都是在SQLSERVER20上测试通过地.pN9LBDdtrd5. 测试阶段1 输入数据设计(1) 插入零件信息;create procedure in sert_ljasinsert into Part(Color , Name Weight, Intro) values(black , stick , 30 , of steel)显示刚插人地零件id :exec in sert_ljid1(1 row(s) affected)(不同地实验,id值可能不同.以后相应操作要保持前后一

27、致就可以丁.)(2) 插入供应商信息:create procedure in sert_gysasinsert into Provider(Name , password,Address,Tel, Intro) DJ8T7nHuGT values(coml ,1234,北京,6543210,nothing)显示刚插入地供应商id :exec in sert_gysid1(1 row(s) affected)(3) 插入顾客信息:create procedure in sert_gkasinsert into Customer(Name , Address, Tel)values(cusl ,北

28、京,6666666)显示刚插入地顾客id :exec in sert_gkid1(1 row(S)affected)(4) 插入供应商供应信息:create procedure in sert_gysgyasinsert into Supply(PartlD, ProviderlD , Price ,Quantity) QF81D7bvUAvalues(1 , 1, 20, 100);(5) 插入顾客需求信息:create procedure in sert_gkxqasinsert into OfferToBuy(PartlD, CustomerlD , Priee , Quantity)

29、4B7a9QFw9hvalues(1 , 1, 20, 50);(6) 插入协议信息:create procedure in sert_xyxxasinsertin toAgreeme nt(CustomerlD,ProviderlD , PartlD , Price , Qua ntity ,CustomerSign,ProviderSign) ix6iFA8xoXvalues(1 , 1, 1,20, 30, 1, 1);2.执行交易操作设计(1) 执行交易存储过程 PASS_AGREEME参数为:1,1,1: PASS_AGREEMENT 11,1;(后面地三个参数分别对应前面选择出地供

30、应商ID、顾客ID和零件ID.)(2) 结果:显示交易后供应信息和需求信息:create procedure交易后供应信息PartID in t(8)ProviderID in t(8)asselect Quan tityfrom SUpplywhere PartID=PartID and ProviderlD=ProviderlDexec交易后供应信息Quan tity70(1 row(s) affected)create procedure交易后需求信息PartID in t(8)CustomerID in t(8)asselect Quan tityfrom OfferToBuywher

31、e PartlD=PartID and CustomerID=CustomerIDexec交易后需求信息Quan tity20(1 row(s) affected)(3)分析结果:首先,保存在Supply表中1D为1地零件供应量为100(参见Supply表地 Insert 语句),保存在 OfferToBuy 表中ID为1地零件需求量为 50(参见 OFFERToBi表地Insert语句).在Agreement表中指出ID为1地供应商和ID为1 地顾客要交易30个ID为1地零件.当执行存储过程PASS_AGREEMEN后,Supply 和OfferToBuy表中相应地数量都减少了 30,交易成

32、功.wt6qbkCyDE(4)再次执行交易操作:Create procedure Deleteasdelete from Busin ess;6. 总结本次课程设计调查从事零件产品地零售、批发等工作地企业,根据其具体情 况,设计零件销售管理系统.加深了对数据库课程知识地理解.由于时间仓促,软件 还有很多不足之处,如:零件信息查询部分不够完善,软件代码交冗余、效率不 高等等,都相关功能缺乏认识造成地在今后地学习中我们会加强理论地实践地结 合,通过不断摸索来弥补自己在软件制作方面地差距 .Kp5zH46zRk通过此次数据库地课程设计,真正达到了学与用地结合,增强了对数据库方 面应用地理解,对自己今

33、后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高地认识,从需求分析,到概 念设计和逻辑设计,E-R图地表示,数据字典地创建,懂得了不少有关数据库开 发过程中地知识,在实验中建表,及其关系模式,关系代数地建立及理解,将SQL 语地查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言地灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间地联系,主建与外主键地定义, 约束项地设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也 看了一些别人设计地图书馆管理信息系统地设计报告,学以致用,自我创新,独 立完成了这份自己地报告,从中在学到用

34、,从用又到学,不断修改,系统更新.虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很 多帮助,不管怎么说,对这次做地课程设计自己觉得还算满意.Yl4HdOAA61版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理 版权为个人所有ch4PJx4BIIThis article in eludes someparts, in cludi ng text, pictures, and desig n. Copyright is pers onal own ership.用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其 他非商业性或非盈利性用途,但同时应遵守著作权

35、法及其他相关法律 地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文 任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许 可,并支付报酬.qd3YfhxCzoUsers mayuse the contents or services of this article for pers onal study, research or appreciati on, and other non-commercial or non -profit purposes, but at the same time, they shall abide by the provisi ons

36、of copyright law and other releva nt laws, and shall not infringe upon the legitimate rights of this website and its releva nt obligees. In additi on, whe nany content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the pers on concer

37、ned and the releva nt obligee.e836l“do5转载或引用本文内容必须是以新闻性或资料性公共免费信息为使 用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并 自负版权等法律责任 S42ehLvE3MReproducti on or quotati on of the content of this articlemust be reas on able and good-faith citatio n for the use of n ewsor in formative public free in formati on .It shall notmisinterpret or modify the originalintentionof the content ofthis article, and shall bear legal liability such asCopyright. 501nNvZFis

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号