零件交易中心.docx
- 文档编号:12645948
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:18
- 大小:46.16KB
零件交易中心.docx
《零件交易中心.docx》由会员分享,可在线阅读,更多相关《零件交易中心.docx(18页珍藏版)》请在冰豆网上搜索。
零件交易中心
湖南人文科技学院计算机系
课程设计说明书
课程名称:
《数据库原理课程设计》
课程代码:
408015
题目:
零件交易中心管理系统课程设计
年级/专业/班:
计算机科学与技术二班
学生姓名:
蒋和晶、刘杰、郑剧本、陈武
学号:
07408242、47、36、26
指导教师:
刘刚常
开题时间:
2009年12月21日
完成时间:
2010年1月3日
目录
摘要1
一、引言2
二、设计目的与任务2
三、设计方案2
1、需求分析2
1.1供应商2
1.2顾客3
1.3交易员3
2、概念设计4
2.1零件信息4
2.2供应商信息4
2.3顾客信息4
2.4供应商集和零件集之间的联系(供应)4
2.5顾客集和零件集之间的联系(求购)4
2.6交易(三元联系)4
3、逻辑设计5
4、数据库实现5
4.1建立索引5
4.2用SQL实现设计5
四、结论13
五、致谢13
六、参考文献13
摘要
随着计算机的普及,传统对零件交易采用人工进行管理的方式日益凸显出起局限性。
效率低下、费时费力,不符合提高效率的现代化管理要求。
为了对交易过程中的各种信息进行全面管理,有效地控制零件交易成本,提高交易的便捷性,扩大零件的销售数量,提高经济效益,我们开发了这套零件交易中心管理系统。
该系统是一套对供应商信息、顾客信息及零件信息进行全面管理的系统。
通过采集交易过程中所产生的各种原始数据,根据交易管理的要求,对原始数据进行分类、汇总、分析,及时准确地提供各种信息数据,使顾客及供应商能随时了解交易状况,为交易的顺利进行提供便捷安全的服务。
关键词:
系统设计、系统分析、信息系统
Abstract
Withtheproliferationofcomputers,thetraditionaltradeofpartsartificialwaytomanageanincreasinglyhighlightsfromlimitations.Inefficient,time-consumingeffort,doesnotmeetmodernregulatoryrequirementstoimproveefficiency.Inordertodealintheprocessofoverallmanagementofavarietyofinformationandeffectivecontrolofsparepartstransactioncostsandimprovetheconvenienceofthetransactiontoexpandsalesofspareparts,improvingeconomicefficiency,wehavedevelopedthispartofthetransactionmanagementsystem.Thesystemisasetofsupplierinformation,customerinformationandpartinformationtoconductacomprehensivemanagementsystem.Throughtheacquisitiontransactionarisingfromavarietyofrawdata,transactionmanagementaccordingtotherequirementsoftheoriginaldataclassification,compilation,analysis,providingtimelyandaccurateinformationanddata,sothatcustomersandsupplierscanbekeptinformedofstatusofthetransaction,inordertotoprovidesmoothandconvenienttransactionsecurityservices.
Keywords:
systemdesign,systemanalysis,informationsystem
《数据库原理与应用》课程设计
-----零件交易管理系统设计
一、引言
随着社会与科学技术的不断发展,社会的组织化程度以及企业生产的社会化程度越来越高。
信息作为一种资源已经和材料、能源并称为现代社会发展的三大支柱。
信息的迅速发展对社会经济以及社会中的企事业单位、部门都带来了巨大的影响。
为了面向21世纪信息化社会的需要,我国的广大企业要在中国加入WTO后的激烈市场竞争中立于不败之地,逐步缩小与发达国家之间的差距,必须不断提升自身的管理水平,特别要注重对信息资源的开发、管理和利用,而管理信息软件系统的适当应用必将起到推波助澜的作用。
显然,由于不同的企业经营体制和管理体制各有不同,不是所有的企业之间都能顺利便捷的进行零件交易。
我们的设计题目来源单位有其自身运营机制的特殊性,迫切需要一套较适合的管理软件来提高它的业务及管理水平。
我们正是由此目的出发设计该零件交易中心管理系统的。
该零件交易中心管理系统主要提供顾客和供应商之间完成零件交易的功能,其中包括供应商信息、顾客信息以及零件信息。
此系统可以让供应商增加、删除和修改所提供的零件产品,还可以让顾客增加、删除和修改所需求的零件。
交易员可以利用顾客提出的需求信息和供应商提出的供应信息来提出交易的建议,由供应商和顾客进行确认后即完成这笔交易。
二、设计目的与任务
通过本课程设计教学所要求达到的目的是:
通过该课程设计,学习数据库设计工具的使用,搞清数据库设计的基本方法、步骤和数据库设计各阶段的任务,完成对某一小型数据库设计和相应文档的编写工作。
使学生更加深入地掌握数据库系统分析与设计的基本概念和基本方法,提高从事数据库系统建设和管理工作的基本技能和能力。
三、设计方案
1、需求分析
1.1供应商
供应商的操作流程图如图A1所示。
图1 供应商操作分类表
1.2顾客
顾客的地位和供应商几乎是对称的,所以功能分类上也很相似.顾客的操作流程图如图A2所示。
图2 顾客操作分类表
1.3交易员
交易员的工作就是提出交易和完成交易。
这里需要仔细考虑的问题是:
一个交易如何产生,并如何达成,可以用图A3来说明这个问题.
我们在处理交易的时候可能面临如下问题:
(1)一个交易只能在交易双方都同意的情况下才可以进行,所以数据库中的供求信息只能作为达成某个交易的基础;
(2)交易的双方可能不同时使用这个系统,因此需要系统提供一个双方交换信息的方式;
(3)系统需要提供一种方便系统(交易员)向用户提出建议来促成交易的途径,并在保证数据库数据完整性的情况下达成交易。
图3 交易员操作图
2、概念设计
数据库需要表述的信息有以下几种:
2.1零件信息
2.2供应商信息
2.3顾客信息
2.4供应商集和零件集之间的联系(供应)
图4供应商和零件之间的联系(供应)E/R模型
2.5顾客集和零件集之间的联系(求购)
图5顾客和零件之间的联系(求购)E/R模型
2.6交易(三元联系)
可以用E/R模型表述该模型的设计,E/R图如图A7所示。
图6 全局E/R模型
3、逻辑设计
通过E/R模型到关系模型的转化,可以得到如下关系模式:
(1)零件实体集转换为 关系:
Part(ID,Color,Name,Weight,Intro)
(2)供应商实体集转换为 关系Provider(ID,Name,Addtess,Tel,Intro)
(3)顾客实体集转换为 关系Customer(ID,Name,Addtess,Tel)
(4)供应联系转换为 关系Supply(PartlD,ProviderlD,Price,Quantity)
(5)求购联系转换为 关系OfferToBuy(CustomerlD,PartID,Price,Quantity)
(6)交易联系转换为 关系Business(CustomerlD,ProviderlD,PartID,Price,Quantity)
每个关系模式的主键码都用下划线标出。
同时,对于从联系导出的关系Supply(供应),OfferToBuy(求购)和Business(交易),使用与之相联系的实体集的主健码作为自己的键码,必须符合外键码约束。
对于Customer(顾客),Provider(供应商)和Part(零件)之间,不存在直接的约束,所以可以存在没有供应商供应同时也没有顾客求购的零件。
4、数据库实现
4.1建立索引
为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各中建立索引的表项:
(1)part(ID)
(2)Provider(ID)
(3)Customer(ID)
(4)Supply(PartID,ProviderID>
(5)OfferTOBuy(CustomerID,PartID)
(6)Business(CustomerlD,ProviderID,PartID)
4.2用SQL实现设计
实现该设计的环境为Windows2000Perfessinal+MSSQLServer2000.0
1.建立Part表
CREATETABLEPart(
ID smallint IDENTITY(1,1) PRIMARYKEYCLUSTERED,
Color varchar(20),
Name varchar(20)NOTNULL,
WeightintDEFAULT0,
Intro text)
2.建立Provider表
CREATE TABLEProvider(
ID smallint IDENTITY(1,1) PRIMARYKEYCLUSTERED,
Name varchar(20)NOTNULL,
passwordvarchar(8) NOTNULL,
Address varchar(30),
Telvarchar(20),
Intro text)
3.建立Customer表
CREATETABLE Customer(
ID SmallintIDENTITY(1,1) PRIMARYKEYCLUSTERED,
Namevarchar(20)NOTNULL,
Addressvarchar(30),
TeL Varchar(20))
4.建立Supply表
CREATETABLESupply(
PartIDSmallint,
ProviderID smallint,
Priceint,
QUantityint,
CONSTRAINTPK_SUPPLY PRIMARYKEYCLUSTERED(PartID,ProviderID),
CONSTRAINTFK_SUPPLY_PARTID FOREIGNKEY(PartID) REFERENCESPart(ID),
CONSTRAINTFK_SUPPLY_PROVIDERIDFOREIGNKEY(ProviderID)REFERENCESProvider(ID))
5.建立OfferToBuy表
CREATETABLEOfferToBuy(
CustomerID smallint,
PartID Smallint,
Price int,
Quantity int,
CONSTRAINTPK_OFFERTOBUYPRIMARYKEYCLUSTERED(CustomerID,PartID),
CONSTRAINTFK_OFFERTOBUY_CUSTOMERIDFOREIGNKEY(CustomerID)
REFERENCESCustomer(ID),
CONSTRAINTFK_OFFERTOBUYFOREIGNKEY(PartID)
REFERENCESPart(ID))
6.建立Business表
CREATETABLEBusiness(
CustomerID smallint,
ProviderID smallint,
PartID Smallint,
Price int,
Quantity int,
CONSTRAINTPK_BUSINEss PRIMARYKEYClUSTERED(CuscomerID,ProviderID,PartID),
CONSTRAINTFK_BUSINESS_CUSTOMERID FOREIGNKEY(CustomerID)
REFERENCESCustomer(ID),
CONSTRAINTFK_BUSINESS_PROVIDERlD FOREIGNKEY(ProviderID)
REFERENCESProvider(ID),
CONSTRAINTFK_BUSINESS_PARTID FOREIGNKEY(PartID)
REFERENCES Part(ID))
7.供应商操作
(1)注册(register)
INSERTINTOProvider(Name,password,Address,TeI,Intro)
VALUES(#Name,#password,#Address,#Tel,#Intro)
在登记操作后,供应商得到一个唯一的ID,可以根据这个ID采查询和修改供应商的数据。
(2)注销(unregister)
DELETEProvider WHERE(ID=#ID);
(3)修改个人馆息(update)
UPdate ProviderSet(Name=#Name,Address=#Address,Tel=#Tel,Intro=#Intro)
WHERE(ID=#ID);
(4)增加供应项(add_supply_item)
INSERTINTOSupply(PartID,Providerid,Price,Quantity)
VALUES(#PartID,#ProvderlD,#Price;#Quantily);
(5)删除供应项(delete_supply_item)
DELETESupPly
WHERE(PartlD=#PartIDANDProvideID=#ProviderlD);
(6)修改供应项(update_supply_item)
UPDATESupplySET(Price=#Price,Quantity=#Quantity)
WHERE(PartlD=#PartIDANDProviderID=#ProviderID)‘
很明显,系统并没有提供面向供应商修改零件信息的接口,所以供应商提供的零件必须已经在零件表中存在;可以这祥假设,交易所的管理员负责更新零件信息,而供应商可以向交易所申请增加某种零件的信息.事实上顾客也可以提出这样的要求。
8.顾客操作 ‘
(1)注册(register)
INSERTINTOCustomer(Name,Address,Tel)
VALUES(#Name,#Address,#Tel);
在登记操作后,顾客得到一个唯一的ID,可以根据这个ID来查询和修改顾客的数据.
(2)注销(unregister)
DELETECustomer
WHERE (3)修改个人信息(update) UPDATECustomerSet(Name=#Name,Address=#Address,Tel=#Tel) WHERE(1D=#ID); (4)增加需求项(add_OfferToBuy_item) INSERTINTOOfferToBuy(PartID,CustomeriD,Price,Quantity) VALUES(#PartID,#CustomerID,#Price,#Quantity)' (5)删除需求项(delete_OfferToBuy_iterm) DELETEOfferToBuy WHERE(PartlD=#PartlDANDCustomerlD=#CustomerID); (6)修改需求项(叩date_OfferToBuy_item) UPDATEOfferToBuySET(Price=#Price,Quantity=#Quantity WHERE(PartlD=#PartIDANDCustomeriD=#CustomerID) 9.交易员 针对需求分析中提出的问题,我们提出了“协议书”的解决方案,方案的说明如下: (1)每个交易在达成以前都作为协议书保存在数据库中,协议书具有和交易一样的完备信息,可以在条件成熟的情况下转为一个达成的交易; (2)协议书只有在供应商和顾客都签字的情况下才有效;有效的协议书由交易员签发,协议书一经签发,就生效,表明一个交易的达成,数据库中的数据将同时予以修改; (3)协议书可以由供应商、顾客或者交易员中的任意一个人提出申请。 当协议书在双方没有都签字前,协议的双方或者交易员都可以删除这个协议书;但是,当协议书签字完毕后,协议书就不得删除(修改),只能由交易员进行处理; (4)协议书有可能在转成交易的过程中失败,因为在交易达成以前,数据库中的数据有可能因为其他交易而变化,一个协议书可能失效,这是允许的。 根据以上分析,对数据库的模型作一些修改,增加协议书表,其关系模式如下: Agreement(CustomerlD,ProviderID,PartID,Price,Quantity,CustomerSign,ProviderSign) 对应的SQL描述为: CREATETABLEAgreement( Customerm smallint, ProviderlD smallint, PartlD smallint, Price int, Quantity int, CustomerSign int, ProviderSign int, · CONSTRAINTPK_AGREEMENT PRIMARYKEYCLUSTERED(CustomerID,ProviderID,PartID), CONSTRAINTFK_AGREEMENT_CUSTOMERIDFOREIGNKEY(CustomerID) REFERENCESCustomer(ID), CONSTRAINTFK_AGREEMENT_PROVlDERIDFOREIGNKEY(ProviderID) REFERENCESProvider(ID), CONSTRAINTFK_AGREEMENT_PARTID FOREIGNKEY(PartID) REFERENCESPart(ID)) 与上述其他操作相比,对交易的操作对数据完整性要求比较高,其中需要注意的地方是; 要防止同一用户(供应商,顾客)的数据因两个交易而同时修改; 需要同时对供应数据库(Supply)、需求数据库(OfferToBuy)、交易数据库(Business) 和协议数据库(Agreement)作出修改,而且需要保持这些修改的原子性; 很显然,这些要求正是对于一个事务(transaction)的要求,所以可以用一个事务来完成签发一个协议的操作。 事务的描述如下: CREATEPROCPASS_AGREEMENT @providerIDint, @customeridint, @partlD int AS DECLARE@TransName VARCHAR(20) SELECT@TransName='Pass_Agreement' BEGIN TRANSACTION@TransName DEClARE@priceINT,@qUANTITYint SELECT@price=price,@quantity=quantityFROMAgreement WHEREprIVIderID=@providerID ANDcustomerID=@customerIDAND PanID=@partID 1NSERTINTOBusiness(ProviderID,CustomerID,PartID,Price,Quantity) VALues(@providerid,@customerID,@PartID,@price,@quantity) UPDATESupply SETquantity=quantity-@quantity WHEREProviderID=@prividerID ANDpartID=@partID IF(SELECTquantity FROM Supply WHEREProiderid=@provider ANDpartID=@PartID)<0 ROLLBACK TRANSACTlON @TranSName DELETEFROMSupply WHEREquantity=0 UPDATE OfferToBuy SETquantity=quanttity-@quantity WHERE CustomerID=@customeridANDpartlD=@partID IF(SELECT quandtity FROM OfferToBuy WHERE CustomerID=@CustomerIDANDpartID=@partlD)<0 ROLLBACKTRANSACTION@TransName DELETE FROMOfferToBuyWHEREquantity=0 COMMITTRANSACTION@TransName
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 零件 交易中心