当前位置:文档之家› 交易中心管理系统-参考范文

交易中心管理系统-参考范文

交易中心管理系统(一)实验目的针对零件交易中心的实践调研,通过系统需求分析、数据库概念设计、逻辑设计到上机编程、调试和应用等全过程完成零件交易中心管理系统的后台数据库设计。

(二)实验设计简述零件交易中心管理系统主要提供顾客和供应商之间完成零件交易的功能,其中包括供应商信息、顾客信息以及零件信息。

此系统可以让供应商增加、删除和修改所提供的零件产品,还可以让顾客增加、删除和修改所需求的零件。

交易员可以利用顾客提出的需求信息和供应商提出的供应信息来提出交易的建议,由供应商和顾客进行确认后即完成这笔交易。

(三)系统需求分析l.供应商供应商的操作流程图如图5-1所示。

图5-1 供应商操作分类表2.顾客顾客的地位和供应商几乎是对称的,所以功能分类上也很相似.顾客的操作流程图如图5-2所示。

图5-2 顾客操作分类表3.交易员交易员的工作就是提出交易和完成交易。

这里需要仔细考虑的问题是:一个交易如何产生,并如何达成,可以用图5-3来说明这个问题。

在处理交易的时候可能面临如下问题:(1)一个交易只能在交易双方都同意的情况下才可以进行,所以数据库中的供求信息只能作为达成某个交易的基础(前提);(2)交易的双方可能不同时使用这个系统,因此需要系统提供一个双方交换信息的方式;(3)系统需要提供一种方便系统(交易员)向用户提出建议来促成交易的途径,并在保证数据库数据完整性的情况下达成交易。

图5-3 交易员操作图(四)概念模型设计数据库需要表述的信息有以下几种:(1)零件信息(2)供应商信息(3)顾客信息(4)供应商集和零件集之间的供应联系ER模型如图5-4所示。

图5-4供应商和零件之间的联系(供应) ER模型(5)顾客集和零件集之间的求购联系ER图如图5-5所示。

图5-5 顾客和零件之间的联系(求购) ER模型(6)交易(三元联系)可以用E/R模型表述该模型的设计,E/R图如图5-6所示。

图5-6 全局ER模型(五)逻辑模型设计通过ER模型到关系模型的转化,可以得到如下关系模式:(1)零件实体集转换为关系:Part(ID,Color,Name,Weight,Intro)(2)供应商实体集转换为关系Provider(ID,Name,Address,Tel,Intro)(3)顾客实体集转换为关系Customer(ID,Name,Address,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(零件)之间,不存在直接的约束,所以可以存在没有供应商供应同时也没有顾客求购的零件。

(六)物理模型设计1.存储记录结构设计表5.2 Part表其他表类似。

2.为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:(1)part(ID)(2)Provider(ID)(3)Customer(ID)(4)Supply(PartID,ProviderID)(5)OfferTOBuy(CustomerID,PartID)(6)Business(CustomerlD,ProviderID,PartID)(七)实现1.建立Part表CREATE TABLE Part(ID smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED,Color varchar(20),Name varchar(20) NOT NULL,Weight int DEFAULT 0,Intro text)2.建立Provider表CREATE TABLE Provider(ID smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,password varchar(8) NOT NULL,Address varchar(30),Tel varchar(20),Intro text)3.建立Customer表CREATE TABLE Customer(ID Smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,Address varchar(30),TeL Varchar(20) )4.建立Supply表CREATE TABLE Supply(PartID Smallint,ProviderID smallint,Price int,QUantity int,CONSTRAINT PK_SUPPL Y PRIMARY KEY CLUSTERED(PartID,ProviderID),CONSTRAINT FK_SUPPL Y_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID), CONSTRAINT FK_SUPPLY_PROVIDERID FOREIGN KEY(ProviderID) REFERENCES Provider(ID))5.建立OfferToBuy表CREATE TABLE OfferToBuy(CustomerID smallint,PartID Smallint,Price int,Quantity int,CONSTRAINT PK_OFFERTOBUY PRIMARY KEY CLUSTERED(CustomerID,PartID),CONSTRAINT FK_OFFERTOBUY_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCES Customer(ID),CONSTRAINT FK_OFFERTOBUY FOREIGN KEY(PartID)REFERENCES Part(ID))6.建立Business表CREATE TABLE Business(CustomerID smallint,ProviderID smallint,PartID Smallint,Price int,Quantity int,CONSTRAINT PK_BUSINEss PRIMARY KEY ClUSTERED(CustomerID,ProviderID, PartID),CONSTRAINT FK_BUSINESS_CUSTOMERID FOREIGN KEY(CustomerID)REFERENCES Customer(ID),CONSTRAINT FK_BUSINESS_PROVIDERlD FOREIGN KEY(ProviderID)REFERENCES Provider(ID),CONSTRAINT FK_BUSINESS_PARTID FOREIGN KEY(PartID)REFERENCES Part(ID))7.供应商操作(1)注册(register)INSERT INTO Provider(Name,password,Address,TeI,Intro)V ALUES(#Name,#password,#Address,#Tel,#Intro)在登记操作后,供应商得到一个唯一的ID,可以根据这个ID采查询和修改供应商的数据。

(2)注销(unregister)DELETE Provider WHERE(ID=#ID);(3)修改个人馆息(update)UPdate Provider Set(Name=#Name,Address=#Address,Tel=#Tel,Intro=#Intro)WHERE(ID=#ID);(4)增加供应项(add_supply_item)INSERT INTO Supply(PartID,Providerid,Price,Quantity)V ALUES(#PartID,#ProvderlD,#Price;#Quantily);(5)删除供应项(delete_supply_item)DELETE SupPlyWHERE(PartlD=#PartID AND ProvideID=#ProviderlD);(6)修改供应项(update_supply_item)UPDATESupplySET(Price=#Price,Quantity=#Quantity)WHERE(PartlD=#PartID AND ProviderID=#ProviderID)‘很明显,系统并没有提供面向供应商修改零件信息的接口,所以供应商提供的零件必须已经在零件表中存在;可以这祥假设,交易所的管理员负责更新零件信息,而供应商可以向交易所申请增加某种零件的信息.事实上顾客也可以提出这样的要求。

8.顾客操作(1)注册(register)INSERT INTO Customer(Name,Address,Tel)V ALUES(#Name,#Address,#Tel);在登记操作后,顾客得到一个唯一的ID,可以根据这个ID来查询和修改顾客的数据.(2)注销(unregister)DELETE CustomerWHERE<ID=#ID);(3)修改个人信息(update)UPDATE Customer Set(Name=#Name,Address=#Address,Tel=#Tel)WHERE(1D=#ID);(4)增加需求项(add_OfferToBuy_item)INSERT INTO OfferToBuy(PartID,CustomeriD,Price,Quantity)V ALUES(#PartID,#CustomerID,#Price,#Quantity)'(5)删除需求项(delete_OfferToBuy_iterm)DELETE OfferToBuyWHERE(PartlD=#PartlD AND CustomerlD=#CustomerID);(6)修改需求项(叩date_OfferToBuy_item)UPDATE OfferToBuy SET(Price=#Price,Quantity=#QuantityWHERE(PartlD=#PartID AND CustomeriD=#CustomerID)9.交易员针对需求分析中提出的问题,我们提出了“协议书”的解决方案,方案的说明如下:(1)每个交易在达成以前都作为协议书保存在数据库中,协议书具有和交易一样的完备信息,可以在条件成熟的情况下转为一个达成的交易;(2)协议书只有在供应商和顾客都签字的情况下才有效;有效的协议书由交易员签发,协议书一经签发,就生效,表明一个交易的达成,数据库中的数据将同时予以修改;(3)协议书可以由供应商、顾客或者交易员中的任意一个人提出申请。

相关主题