版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、重慶工商大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)數(shù)據(jù)庫原理課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)書重點(diǎn)課程數(shù)據(jù)庫原理教研組2004.1數(shù)據(jù)庫原理課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)SQLServer2000課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)A.1綜合實(shí)驗(yàn)本課程的教學(xué)實(shí)驗(yàn)分為兩部分:第一部分是按照實(shí)驗(yàn)第二部分是作完上述指導(dǎo)書所要求的實(shí)驗(yàn)在計(jì)算機(jī)上完成;實(shí)驗(yàn)后按照本課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)書做的一個(gè)綜合性實(shí)驗(yàn)。通過教學(xué)實(shí)驗(yàn)可使讀者較系統(tǒng)、全面地掌握相關(guān)的教學(xué)內(nèi)容和必要的上機(jī)操作。下面給出三個(gè)實(shí)驗(yàn)課題,其中第一個(gè)課題還附有參考答案。希望讀者在理解題意的基礎(chǔ)上發(fā)揮自己的創(chuàng)新精神,有創(chuàng)意地完成教學(xué)實(shí)驗(yàn)。如果覺得有參考答案可能會(huì)束縛自己的思維,也可選作第二或第三個(gè)實(shí)驗(yàn)課題
2、.。總之,因時(shí)間關(guān)系,只要求每個(gè)讀者任選一個(gè)課題。若有時(shí)間,有興趣,可考慮另外兩個(gè)課題,也會(huì)有所收益.A.1.1實(shí)驗(yàn)一零件交易中心管理系統(tǒng)(實(shí)驗(yàn)?zāi)康耐ㄟ^完成從用戶需求分析、數(shù)據(jù)庫設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)和掌握本書中所講解的內(nèi)容。(實(shí)驗(yàn)簡(jiǎn)述)零件交易中心管理系供應(yīng)商信息、顧客信供應(yīng)商信息包括供應(yīng)顧客信息包括顧客號(hào)零件信息包括零件號(hào)此系統(tǒng)可以讓供應(yīng)商還可以讓顧客增加、交易員可以利用顧客統(tǒng)主要提供顧客和供應(yīng)商之間完成零件交息以及零件信息。商號(hào)、供應(yīng)商名、地址、電話、簡(jiǎn)介;,顧客名、地址、電話;、零件名、重量、顏色、簡(jiǎn)介等。增加、刪除和修改所提供的零件產(chǎn)品,刪除和修改所需求的零件。提出的需求信息和供應(yīng)
3、商提出的供應(yīng)信息用等全過程,進(jìn)一步了解易的功能,其中包括來提出交易的建議,由供應(yīng)商和顧客進(jìn)行確認(rèn)后即完成這筆交易。(實(shí)驗(yàn)要求)完成該系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì):用SQl實(shí)現(xiàn)數(shù)據(jù)庫的設(shè)計(jì),并在SQLServer上調(diào)試通過.A.1.2實(shí)驗(yàn)三民航售票系統(tǒng)(實(shí)驗(yàn)?zāi)康模┩ㄟ^完成從用戶需求分析、數(shù)據(jù)庫設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容。(實(shí)驗(yàn)簡(jiǎn)述民航訂票系統(tǒng)主要分為機(jī)場(chǎng)、航空公司和客戶三方的服務(wù)。航空公司提供航線和飛機(jī)的資料,機(jī)場(chǎng)則對(duì)在本機(jī)場(chǎng)起飛和降落的航班和機(jī)票進(jìn)行管理,路和剩余票數(shù).的查詢,以及網(wǎng)上訂票等功能。客戶又可普通客戶只有普通的查詢功能和訂票功能,沒有相應(yīng)的機(jī)而客戶能
4、得到的服務(wù)應(yīng)該有航班線以分為兩類,一類是普通客戶,對(duì)于票優(yōu)惠,另一種是經(jīng)常旅客,需要辦理注冊(cè)手續(xù),但增加了里程積分功能和積分優(yōu)惠政策。機(jī)場(chǎng)還要有緊急應(yīng)對(duì)措施,在航班出現(xiàn)延誤時(shí),要發(fā)送相應(yīng)的信息。(實(shí)驗(yàn)要求)完成該系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì);用SQL實(shí)現(xiàn)數(shù)據(jù)庫的設(shè)計(jì),并在SQIServcr上調(diào)試通過。A.1.3實(shí)驗(yàn)二圖書管理系統(tǒng)(實(shí)驗(yàn)?zāi)康模┩ㄟ^完成從用戶需求分析、數(shù)據(jù)庫設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容.實(shí)驗(yàn)簡(jiǎn)述一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)包括圖書館內(nèi)書籍的信息、學(xué)校在校學(xué)生的信息以及學(xué)生的借閱信息。此系統(tǒng)功能分為面向?qū)W生和面向管理員兩部分,其中學(xué)生可以進(jìn)行借閱、續(xù)借、歸還和
5、查詢書籍等操作,管理員可以完成書籍和學(xué)生的增加,刪除和修改以及對(duì)學(xué)生,借閱、續(xù)借、歸還的確認(rèn).實(shí)驗(yàn)要求完成該系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì);用SQL實(shí)現(xiàn)數(shù)據(jù)庫的設(shè)計(jì),并在SQSQLServer上調(diào)試通過.A.2零件交易中心管理系統(tǒng)實(shí)驗(yàn)報(bào)告(參考答案)(實(shí)驗(yàn)?zāi)康模┩ㄟ^完成從用戶需求分析、數(shù)據(jù)庫設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容。(實(shí)驗(yàn)簡(jiǎn)述)零件交易中心管理系統(tǒng)主要提供顧客和供應(yīng)商之間完成零件交易的功能,其中包括供應(yīng)商信息此系統(tǒng)可以讓供應(yīng)商還可以讓顧客增加、顧客信息以及零件信息。增加、刪除和修改所提供的零件產(chǎn)品,刪除和修改所需求的零件。交易員可以利用顧客提出的需求信息和供應(yīng)商
6、提出的供應(yīng)信息來提出交易的建議,由供應(yīng)商和顧客進(jìn)行確認(rèn)后即完成這筆交易。課程設(shè)計(jì)全過程1需求分析:(實(shí)際詳細(xì)調(diào)查)2數(shù)據(jù)庫設(shè)計(jì):(SQLServer2000設(shè)計(jì))概念(模型)設(shè)計(jì)(實(shí)際到概念)邏輯設(shè)計(jì)(邏輯推導(dǎo))物理設(shè)計(jì)(理論到實(shí)現(xiàn))SQL編程、調(diào)試(測(cè)試驗(yàn)證)(實(shí)踐反復(fù)檢驗(yàn))3應(yīng)用程序編程、調(diào)試、測(cè)試(用人機(jī)交互前臺(tái)開發(fā)工具VB.NET開發(fā)windows和Web應(yīng)用程序)需求分析(詳細(xì)地調(diào)查分析系統(tǒng)對(duì)象、功能、性能等需求)I供應(yīng)商供應(yīng)商的操作流程圖如圖A1所示。圖A1供應(yīng)商操作分類表2.顧客顧客的地位和供應(yīng)商幾乎是對(duì)稱的,所以功能分類上也很相似顧客的操作流程圖如圖A2所示。據(jù)庫中的供求信息只
7、能作雙方交換信息的方式;顧客提出交易員提出交易申請(qǐng)交易建議3交易員交易員的工作就是提出交易和完成交易。這里需要仔細(xì)考慮的問題是:一個(gè)交易如何產(chǎn)生,并如何達(dá)成,可以用圖A3來說明這個(gè)問題.我們?cè)谔幚斫灰椎臅r(shí)候可能面臨如下問題:一個(gè)交易只能在交易雙方都同意的情況下才可以進(jìn)行,所以數(shù)為達(dá)成某個(gè)交易的基礎(chǔ);交易的雙方可能不同時(shí)使用這個(gè)系統(tǒng),因此需要系統(tǒng)提供一個(gè)系統(tǒng)需要提供一種方便系統(tǒng)(交易員)向用戶提出建議來促成交易的途徑,并在保證數(shù)據(jù)庫供應(yīng)商提出交易交易員數(shù)據(jù)完整性的情況圖A.3交易員操作圖概念模型設(shè)計(jì)(從實(shí)踐概括抽象出理論模型E/R)數(shù)據(jù)庫需要表述的信息有以下幾種:(1)零件信息(2)供應(yīng)商信息(
8、3)顧客信息供應(yīng)商集和零件集之間的聯(lián)系(供應(yīng))供應(yīng)商名件名價(jià)格簡(jiǎn)介簡(jiǎn)介重量電話地址顏色M供應(yīng)商號(hào)零件號(hào)供應(yīng)商零件1供應(yīng)數(shù)量圖A.4供應(yīng)商和零件之間的聯(lián)系(供應(yīng))E/R模型圖A.5顧客和零件之間的聯(lián)系(求購(gòu))E/R模型交易(三元聯(lián)系)可以用E/R模型表述該模型的設(shè)計(jì),E/R圖如圖A7所示。顏色數(shù)量數(shù)量零件供應(yīng)求購(gòu)價(jià)格價(jià)格供應(yīng)商交易顧客電話簡(jiǎn)介顧客名地址數(shù)量供應(yīng)商名價(jià)格電話地址供應(yīng)商號(hào)零件號(hào)零件名簡(jiǎn)介重量圖A.7全局E/R模型邏輯設(shè)計(jì)(從理論E/R模型到理論關(guān)系模型的整理轉(zhuǎn)換)通過E/R模型到關(guān)系模型的轉(zhuǎn)化,可以得到如下關(guān)系模式:(1) 零件實(shí)體集轉(zhuǎn)換為二關(guān)系:Part(ID,Color,Name
9、Weight,Intro)供應(yīng)商實(shí)體集轉(zhuǎn)換為關(guān)系Provider(ID,NameAddtess,Tel,Intro)顧客實(shí)體集轉(zhuǎn)換為關(guān)系Customer(ID,NameAddtess,Tel)供應(yīng)聯(lián)系轉(zhuǎn)換為關(guān)系Supply(PartlD,ProviderlD,Price,Quantity)求購(gòu)聯(lián)系轉(zhuǎn)換為關(guān)系OfferToBuy(CustomerlD,PartlD,Price,Quantity)交易聯(lián)系轉(zhuǎn)換為關(guān)系Business(CustomerlD,ProviderlD,PartlD,Price,Quantity)每個(gè)關(guān)系模式的主鍵碼都用下劃線標(biāo)出。同時(shí),對(duì)于從聯(lián)系導(dǎo)出的關(guān)系Supply(供應(yīng)
10、),OfferToBuy(求購(gòu))和Business(交易),使用與之相聯(lián)系的實(shí)體集的主健碼作為自己的鍵碼,必須符合外鍵碼約束。對(duì)于Customer(顧客),Provider(供應(yīng)商)和Part(零件)之間,不存在直接的約束,所以可以存在沒有供應(yīng)商供應(yīng)同時(shí)也沒有顧客求購(gòu)的零件。物理設(shè)計(jì)(從理論關(guān)系模型到實(shí)現(xiàn)實(shí)施數(shù)據(jù)庫建立)(物理文件的安排和建立索引)1為了提高在表中搜索元組的速度,在實(shí)際實(shí)現(xiàn)的時(shí)候應(yīng)該基于鍵碼建立索引是各表中建立索引的表項(xiàng):part(ID)(2) Provider(ID)(3) Customer(ID)(4) Supply(PartlD,ProviderID>(5) Off
11、erTOBuy(CustomerlD,PartID)(6) Business(CustomerlD,ProviderID,PartID)2用SQL實(shí)現(xiàn)設(shè)計(jì)實(shí)現(xiàn)該設(shè)計(jì)的環(huán)境為Windows2000Perfessinal+MSSQLServer2000.01.建立Part表CREATETABLEPart(IDsmallintIDENTITY(1,1)PRIMARYKEYCLUSTEREDColorvarchar(20),Namevarchar(20)NOTNULL,WeightintDEFAULT0,Introtext)2.建立Provider表CREATETABLEProvider(IDsmal
12、lintIDENTITY(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,passwordvarchar(8)NOTNULL,Addressvarchar(30),Telvarchar(20),Introtext)3.建立Customer表CREATETABLECustomer(IDSmallintIDENTITY(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,Addressvarchar(30),TeLVarchar(20)建立Supply表CREATETABLESupply(PartIDSmall
13、int,ProviderlDsmallint.Priceint,QUantityint,CONSTRAINPK_SUPPLYPRIMARYKEYCLUSTERED(PartlD,ProviderlD),CONSTRAINTFK_SUPPLY_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID),CONSTRAINTFK_SUPPLY_PROVIDERIDFOREIGNKEY(ProviderID)REFERENCES-ovider(ID)建立OfferToBuy表CREATETABLE)fferToBuy(CustomerIDsmallint,PartIDSma
14、llint,Priceint,Quantityint,CONSTRAINTPK_OFFERTOBUYPRIMARYKEYCLUSTERED(CustomerID,PartID),CONSTRAINTK_OFFERTOBUY_CUSTOMEROREIGNKEY(CustomerlD)REFERENCESUstomer(ID),CONSTRAINTK_OFFERTOBUYOREIGNKEY(PartlD)REFERENCESart(ID)建立Business表CREATETABL田usiness(CustomerIDsmallint,ProviderlDsmallint,PartIDSmallin
15、t,Priceint,Quantityint,CONSTRAINTPK_BUSINEssPRIMARYKEYClUSTERED(CuscomerID,ProviderID,PartID),CONSTRAINTK_BUSINESS_CUSTOMERIDFOREIGNKEY(CustomerlD)REFERENCESustomer(ID),CONSTRAINTK_BUSINESS_PROVIDERIDFOREIGNKEY(ProviderlD)REFERENCEB-ovider(ID),CONSTRAINTK_BUSINESS_PARTIDFOREIGNKEY(PartlD)REFERENCESP
16、art(ID)4. 供應(yīng)商操作注冊(cè)(register)INSERTINTOProvider(Name,password,Address,Tel,Intro)VALUES(#Nam,#password,#Address,#Tel,#lntro)在登記操作后,供應(yīng)商得到一個(gè)唯一的ID,可以根據(jù)這個(gè)ID采查詢和修改供應(yīng)商的數(shù)據(jù)。注銷(unregister)DELETEProviderWHERE(ID=#ID);修改個(gè)人館息(update)UPdateProviderSet(Name=#Name,Address=#Address,Tel=#Tel,Intro=#Intro)WHERE(ID=#ID);
17、增加供應(yīng)項(xiàng)(add_supply_item)INSERTINTOSupply(PartID,Providerid,Price,Quantity)VALUES(#PartID,#ProvderlD,#Price;#Quantily);刪除供應(yīng)項(xiàng)(delete_supply_item)DELETESupPlyWHERE(PartlD=#PartIDANDProvidelD=#ProviderlD);修改供應(yīng)項(xiàng)(update_supply_item)UPDATESupplySET(Price=#Price,Quantity=#Quantity)WHERE(PartlD=#PartIDANDProvi
18、derID=#ProviderID)'很明顯,系統(tǒng)并沒有提供面向供應(yīng)商修改零件信息的接口,所以供應(yīng)商提供的零件必須已經(jīng)在零件表中存在;可以這祥假設(shè),交易所的管理員負(fù)責(zé)更新零件信息,而供應(yīng)商可以向交易所申請(qǐng)?jiān)黾幽撤N零件的信息事實(shí)上顧客也可以提出這樣的要求。8.顧客操作(1)注冊(cè)(register)INSERTINTOCustomer(Name,Address,Tel)VALUES(#Name#Address,#Tel);在登記操作后,顧客得到一個(gè)唯一的ID,可以根據(jù)這個(gè)ID來查詢和修改顧客的數(shù)據(jù).(2)注銷(unregister)DELETECustomerWHERE<ID=#ID
19、)修改個(gè)人信息(update)UPDATECustomerSet(Name=#Name,Address=#Address,Tel=#Tel)WHERE(1D=#ID;增加需求項(xiàng)(add_OferToBuy_item)INSERTINTOOfferToBuy(PartID,CustomeriD,Price,Quantity)VALUES(#PartID,#CustomerID,#Price,#Quantity)'刪除需求項(xiàng)(delete_OferToBuy_iterm)DELETEOfferToBuyWHERE(PartlD=#PartlDANDCustomerlD=#CustomerI
20、D);修改需求項(xiàng)(叩date_OfferToBuy_item)UPDATEOfferToBuySET(Price=#Price,Quantity=#QuantityWHERE(PartlD=#PartIDANDCustomeriD=#CustomerID)9交易員針對(duì)需求分析中提出的問題,我們提出了“協(xié)議書”的解決方案,方案的說明如下:每個(gè)交易在達(dá)成以前都作為協(xié)議書保存在數(shù)據(jù)庫中,協(xié)議書具有和交易一樣的完備信息,可以在條件成熟的情況下轉(zhuǎn)為一個(gè)達(dá)成的交易;協(xié)議書只有在供應(yīng)商和顧客都簽字的情況下才有效;有效的協(xié)議書由交易員簽發(fā),協(xié)議書一經(jīng)簽發(fā),就生效,表明一個(gè)交易的達(dá)成,數(shù)據(jù)庫中的數(shù)據(jù)將同時(shí)予以修
21、改;協(xié)議書可以由供應(yīng)商、顧客或者交易員中的任意一個(gè)人提出申請(qǐng)。當(dāng)協(xié)議書在雙方?jīng)]有都簽字前,協(xié)議的雙方或者交易員都可以刪除這個(gè)協(xié)議書;但是,當(dāng)協(xié)議書簽字完畢后,協(xié)議書就不得刪除(修改),只能由交易員進(jìn)行處理;協(xié)議書有可能在轉(zhuǎn)成交易的過程中失敗,因?yàn)樵诮灰走_(dá)成以前,數(shù)據(jù)庫中的數(shù)據(jù)有可能因?yàn)槠渌灰锥兓粋€(gè)協(xié)議書可能失效,這是允許的。根據(jù)以上分析,對(duì)數(shù)據(jù)庫的模型作一些修改,增加協(xié)議書表,其關(guān)系模式如下:Agreement(CustomerlD_,ProviderlD,PartID,Price,Quantity,CustomerSign,ProviderSign)對(duì)應(yīng)的SQL描述為:CREATET
22、ABLAgreement(Customermsmallint,ProviderlDsmallint,PartlDsmallint,Priceint,Quantityint,CustomerSignint,ProviderSignint,CONSTRAINTPK_AGREEMENTPRIMARYKEYCLUSTERED(CustomerlDProviderID,PartID),CONSTRAINTFK_AGREEMENT_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTFK_AGREEMENT_PROVlDERID
23、FOREIGNKEY(ProviderID)REFERENCESProvider(ID),CONSTRAINTKAGREEMENTPARTIOREIGNKEY(PartID)REFERENCEP5art(ID)與上述其他操作相比,對(duì)交易的操作對(duì)數(shù)據(jù)完整性要求比較高,其中需要注意的地方是;要防止同一用戶(供應(yīng)商,顧客)的數(shù)據(jù)因兩個(gè)交易而同時(shí)修改;需要同時(shí)對(duì)供應(yīng)數(shù)據(jù)庫(Supply)、需求數(shù)據(jù)庫(OfferToBuy)、交易數(shù)據(jù)庫(Business)和協(xié)議數(shù)據(jù)庫(Agreement)作出修改,而且需要保持這些修改的原子性;很顯然,這些要求正是對(duì)于一個(gè)事務(wù)(transaction)的要求,所以可以用
24、一個(gè)事務(wù)來完成簽發(fā)一個(gè)協(xié)議的操作。事務(wù)的描述如下:CREATEPROPASS_AGREEMENTproviderIDint,customeridint,partlDintASDECLARETransNameVARCHAR(20)SELECTTransName='Pass_Agreement'BEGINTRANSACTIONTransNameDECIAREpriceINT,qUANTITYntSELECTprice=price,quantity=quantityFROMAgreementWHEREprlVlderlD=providerlDANDcustomerlD=custome
25、rlDANDPanID=partlD1NSERTINTOBusiness(ProviderlD,CustomerlD,PartID,Price,Quantity)VALues(providerid,customerID,PartID,price,quantity)UPDATESupplySETquantity=quantity-quantityWHEREroviderID=prividerIDANDpartID=partIDIF(SELECTquantityFROMSupplyWHEREroiderid=providerANDpartlD=PartlD)<0ROLLBACKTRANSAC
26、TlONTranSNameDELETEFROMSupplyWHEREquantity=OUPDATEOfferToBuySETquantity=quanttity-quantityWHERECustomerID=customeridANDpartlD=partIDIF(SELECTquandtityFROMOfferToBuyWHERECustomerID=CustomerIDANDpartID=partlD)<0ROLLBACKTRANSACTIOTransNameDELETEFROMOfferToBuyWHEREjuantity=OCOMMITTRANSACTIOTransName為
27、了使用方便,這里定義了一個(gè)存貯過程;功能是完成從Agreementt的一個(gè)元組到Business的一個(gè)元組的轉(zhuǎn)化工作。這里考慮到了刪除空的Suppiy和OfferTOBUY項(xiàng),更加重要的是,這里考慮到了非法的Agreement的情況,在一段時(shí)間后,由于供應(yīng)商或者顧客修改數(shù)據(jù),Agreement可能就非法,這時(shí)就需要把這個(gè)事務(wù)廢除,所以,這里檢查了Supply表和OfferToBuy表中的數(shù)據(jù),確保數(shù)據(jù)仍然正確。另外交易員,或者說交易所必須承擔(dān)的一項(xiàng)任務(wù)是更新零件列表。這里在考慮顧客和供應(yīng)商的時(shí)候十并沒有給予他們修改零件列表的權(quán)利,所以他們必須根據(jù)數(shù)據(jù)庫中已有的項(xiàng)更新自己的供求信息。由于這個(gè)數(shù)據(jù)
28、庫實(shí)際上更加偏重于模型化,而不是一個(gè)實(shí)際環(huán)境中的數(shù)據(jù)庫,所以在實(shí)現(xiàn)應(yīng)用模型的時(shí)候我們還需要對(duì)這個(gè)數(shù)據(jù)庫的模型作一些修改。由于本實(shí)驗(yàn)在模型設(shè)計(jì)上使用了MicrosoftTransact-SQL的語法,因此以上的數(shù)據(jù)庫操作都是在SQLSERVER200上測(cè)試通過的。實(shí)驗(yàn)數(shù)據(jù)示例:測(cè)試階段(1.實(shí)驗(yàn)方案設(shè)計(jì)2.測(cè)試,查找錯(cuò)誤校正錯(cuò)誤,檢查是否符合用戶的功能性能要求)1.實(shí)驗(yàn)方案設(shè)計(jì)(1)輸入數(shù)據(jù)設(shè)計(jì):1)插入零件信息;insertintoPart(Color,NameWeight,Intro)values('black','stick','30',
29、39;ofsteel')顯示剛插人的零件id:selectidfromPartwherename='stick';id1(1row(s)affected)(不同的實(shí)驗(yàn),id值可能不同。以后相應(yīng)操作要保持前后一致就可以丁。2)插入供應(yīng)商信息:insertintoProvider(Name,password,Address,Tel,Intro)values('coml','1234','北京','nothing');顯示剛插入的供應(yīng)商id:selectidfromProviderwherename='c
30、oml';id1(1row(s)affected)3)插入顧客信息:insertintoCustomer(Name,Address,Tel)values('cusl','北京','')'顯示剛插入的顧客id:selectidfromCustomerwherenameid1(1row(S)affected)4)插入供應(yīng)商供應(yīng)信息:insertintoSupply(PartlD,ProviderlD,Price,Quantity)values(1,1,20,100);5)插入顧客需求信息:insertintoOfferToBuy(Pa
31、rtlD,CustomerID,Priee,Quantity)values(1,1,20,50);6)插入?yún)f(xié)議信息:intoProviderinsertAgreement(CustomerlD,ProviderlD,PartlD,Price,Quantity,CustomerSign,Sign)values(1,1,1,20,30,1,1);(2)執(zhí)行交易操作設(shè)計(jì):1)執(zhí)行交易存儲(chǔ)過程PASS_AGREEMENT數(shù)為:1,1,1:PASS_AGREEMENT1,1;2) (后面的三個(gè)參數(shù)分別對(duì)應(yīng)前面選擇出的供應(yīng)商ID、顧客ID和零件ID。)結(jié)果:顯示交易后供應(yīng)信息和需求信息:selectQua
32、ntityfromSupplywherePartlD=1andProviderlD=1;Quantity70(1row(s)affected)selectQuantityfromOfferToBuywherePartlD=landCustomerIDQuantity20(1row(s)affected)3)分析結(jié)果:首先,保存在Supply表中1D為1的零件供應(yīng)量為100(參見Supply表的Insert語句),保存在OfferToBuy表中ID為1的零件需求量為50(參見OFFERToBu表的Insert語句)。在Agreement表中指出ID為1的供應(yīng)商和ID為1的顧客要交易30個(gè)ID為1
33、的零件。當(dāng)執(zhí)行存儲(chǔ)過程PASS_AGREEME之后,Supply和OfferToBuy表中相應(yīng)的數(shù)量都減少了30,交易成功。4)再次執(zhí)行交易操作:deletefromBusiness;附錄:交易系統(tǒng)的另一種SQL語言(數(shù)據(jù)表建立):/*MicrosoftSQLServer-Scripting*/*Server:7523TEACHER*/*Database:商品交易系統(tǒng)*/*CreationDate02-10-189:46:43*/CREATETABLEdbo.customer(idsmallintIDENTITY(1,1)NOTNULL,namevarchar(20)NOTNULL,addre
34、ssvarchar(30)NULL,IntrotextNULL)GOALTERTABLEdbo.customerWITHNOCHECKADDCONSTRAINTPK_customerPRIMARYKEYCLUSTERED(id)ONPRIMARYGOCREATETABLEdbo.part(idsmallintcolorvarcharnamevarcharweightintIntrotextIDENTITY(1,1)NOTNULL,(20)NULL,(20)NOTNULL,NULL,NULL)GOALTERTABLEdbo.partWITHNOCHECKADDCONSTRAINpK_partPR
35、IMARYKEYCLUSTERED(id)ONPRIMARYGOCREATETABLEvider(idsmallintIDENTITY(1,1)NOTNULL,namevarchar(20)NOTNULL,passwordvarchar(8)NOTNULL,addressvarchar(30)NULL,Telvarchar(20)NULL,IntrotextNULL)GOALTERTABLEviderWITHNOCHECKADDCONSTRAINTPK_providerPRIMARYKEYCLUSTERED(id)ONPRIMARYGOCREATETABLEdbo.
36、supply(partidsmallintNOTNULL,provideridsmallintNOTNULL,pricesmallintNULL,quantityintNULL)GOCREATETABLEdbo.bussiness(customerIDsmallintNOTNULL,partidsmallintNOTNULL,provideridsmallintNOTNULL,pricesmallintNULL,quantityintNULL)GOCREATETABLEdbo.offertobuy(customerIDsmallintNOTNULL,partidsmallintNOTNULL,
37、pricesmallintNULL,quantityintNULL)WITHNOCHECKADDPRIMARYKEYCLUSTEREDWITHNOCHECKADDPRIMARYKEYCLUSTEREDALTERTABLEdbo.bussinessCONSTRAINTPK_bussiness(customerID,partid,providerid)ONPRIMARYGOALTERTABLEdbo.offertobuyCONSTRAINIPK_offertobuy(customerID,partid)ONPRIMARYGOALTERTABLEdbo.supplyWITHNOCHECKADDCONSTRAINTPK_supplyPRIMARYKEYCLUSTERED(partid,providerid
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力安全事故應(yīng)急處置和調(diào)查處理?xiàng)l例114
- 招生工作的困難與挑戰(zhàn)
- 應(yīng)屆高中畢業(yè)生的招生指南
- 二零二五年度金融資產(chǎn)交易-債權(quán)讓與擔(dān)保交易合同4篇
- 2024物聯(lián)網(wǎng)智能家居集成合同
- 國(guó)際學(xué)生招生要點(diǎn)
- 2024年09月江蘇2024年江蘇省農(nóng)村信用社聯(lián)合社金融市場(chǎng)部校園招考筆試歷年參考題庫附帶答案詳解
- 加油站裝修設(shè)計(jì)與空間利用
- 2024年06月廣東長(zhǎng)沙銀行廣州分行社會(huì)招考筆試歷年參考題庫附帶答案詳解
- 2025年紙箱自動(dòng)化生產(chǎn)線承包合同范本(二零二五版)4篇
- 第二章 運(yùn)營(yíng)管理戰(zhàn)略
- 《三本白皮書》全文內(nèi)容及應(yīng)知應(yīng)會(huì)知識(shí)點(diǎn)
- 專題14 思想方法專題:線段與角計(jì)算中的思想方法壓軸題四種模型全攻略(解析版)
- 醫(yī)院外來器械及植入物管理制度(4篇)
- 圖像識(shí)別領(lǐng)域自適應(yīng)技術(shù)-洞察分析
- 港口與港口工程概論
- 《念珠菌感染的治療》課件
- 個(gè)體戶店鋪?zhàn)赓U合同
- 門店裝修設(shè)計(jì)手冊(cè)
- 考研計(jì)算機(jī)學(xué)科專業(yè)基礎(chǔ)(408)研究生考試試卷與參考答案(2025年)
- 新概念英語第二冊(cè)考評(píng)試卷含答案(第49-56課)
評(píng)論
0/150
提交評(píng)論