【正文】
在Agreement表中指出ID為1的供應商和ID為1的顧客要交易30個ID為1的零件。顯示剛插入的顧客id: select id from Customer where name id 1 (1 row(S)affected)4)插入供應商供應信息: insert into Supply(PartID,ProviderlD,Price,Quantity) values(1,1,20,100);5)插入顧客需求信息: insert into OfferToBuy(PartlD,CustomerID,Priee,Quantity) values(1,1,20,50);6)插入?yún)f(xié)議信息: insert into Agreement(CustomerID,ProviderID,PartlD,Price,Quantity,CustomerSign,ProviderSign) values(1,1,1,20,30,1,1);(2)執(zhí)行交易操作設計: 1)執(zhí)行交易存儲過程PASS_AGREEMENT,參數(shù)為:1,1,1:PASS_AGREEMENT 1,1,1。北京39。l39。北京39。l39。stick39。3039。black39。并沒有給予他們修改零件列表的權利,所以他們必須根據(jù)數(shù)據(jù)庫中已有的項更新自己的供求信息。BEGIN TRANSACTION TransNameDEClARE price INT,qUANTITY intSELECT price=price,quantity=quantity FROM AgreementWHERE prIVIderID=providerID AND customerID=customerID AND PanID=partID1NSERT INTO Business(ProviderID,CustomerID,PartID,Price,Quantity)VALues(providerid,customerID,PartID,price,quantity)UPDATE Supply SET quantity=quantityquantityWHERE ProviderID=prividerID AND partID=partIDIF (SELECT quantity FROM Supply WHERE Proiderid=provider AND partID=PartID)0 ROLLBACK TRANSACTlON TranSNameDELETE FROM Supply WHERE quantity=0UPDATE OfferToBuy SET quantity=quanttityquantityWHERE CustomerID=customerid AND partlD=partIDIF(SELECT quandtity FROM OfferToBuy WHERE CustomerID=CustomerID AND partID=partlD)0 ROLLBACK TRANSACTION TransNameDELETE FROM OfferToBuy WHERE quantity=0COMMIT TRANSACTION TransName 為了使用方便,這里定義了一個存貯過程;功能是完成從Agreementt的一個元組到Business的一個元組的轉化工作。 根據(jù)以上分析,對數(shù)據(jù)庫的模型作一些修改,增加協(xié)議書表,其關系模式如下: Agreement(CustomerlD,ProviderID,PartID,Price,Quantity,CustomerSign,ProviderSign) 對應的SQL描述為:CREATE TABLE Agreement( Customerm smallint, ProviderlD smallint, PartlD smallint,Price int,Quantity int,CustomerSign int,ProviderSign int, (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) VALUES(PartID,ProvderlD,Price;Quantily);(5)刪除供應項(delete_supply_item) DELETE SupPly WHERE(PartlD=PartID AND ProvideID=ProviderlD);(6)修改供應項(update_supply_item) UPDATESupplySET(Price=Price,Quantity=Quantity) WHERE(PartlD=PartID AND ProviderID=ProviderID)‘ 很明顯,系統(tǒng)并沒有提供面向供應商修改零件信息的接口,所以供應商提供的零件必須已經(jīng)在零件表中存在;可以這祥假設,交易所的管理員負責更新零件信息,而供應商可以向交易所申請增加某種零件的信息.事實上顧客也可以提出這樣的要求。供應商交易價格數(shù)量求購數(shù)量價格供應商號供應商名地址電話簡介供應數(shù)量價格零件顏色零件號零件名重量簡介顧客電話顧客號顧客名地址圖A.7 全局ER模型 [邏輯設計](從理論‘ER模型’到理論‘關系模型’的整理轉換) 通過ER模型到關系模型的轉化,可以得到如下關系模式:(1)零件實體集轉換為 關系:Part(ID,Color,Name,Weight,Intro)(2)供應商實體集轉換為