數(shù)據(jù)庫原理簡單的數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)-圖書管理系統(tǒng)041440516董迎順_第1頁
數(shù)據(jù)庫原理簡單的數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)-圖書管理系統(tǒng)041440516董迎順_第2頁
數(shù)據(jù)庫原理簡單的數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)-圖書管理系統(tǒng)041440516董迎順_第3頁
數(shù)據(jù)庫原理簡單的數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)-圖書管理系統(tǒng)041440516董迎順_第4頁
數(shù)據(jù)庫原理簡單的數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)-圖書管理系統(tǒng)041440516董迎順_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

長春高校計(jì)算機(jī)學(xué)院網(wǎng)絡(luò)工程專業(yè)數(shù)據(jù)庫原理試驗(yàn)報(bào)告試驗(yàn)名稱:試驗(yàn)五簡潔的數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)——圖書管理系統(tǒng)班級(jí):網(wǎng)絡(luò)五班姓名:董迎順學(xué)號(hào):041440516試驗(yàn)地點(diǎn):機(jī)房日期:2015-12-7一、試驗(yàn)?zāi)康模和ㄟ^完成從用戶需求分析、數(shù)據(jù)庫設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過程,進(jìn)一步理解和駕馭數(shù)據(jù)庫的設(shè)計(jì)過程及方法。二、試驗(yàn)內(nèi)容、要求和環(huán)境:【試驗(yàn)要求】注:將完成的試驗(yàn)報(bào)告重命名為:班級(jí)+學(xué)號(hào)+姓名+(試驗(yàn)五),(如:041340538張三(試驗(yàn)五)),發(fā)郵件到:。提交時(shí)限:本次試驗(yàn)后24小時(shí)之內(nèi)。試驗(yàn)課要攜帶教材、學(xué)習(xí)輔導(dǎo)、老師下發(fā)的試驗(yàn)報(bào)告文檔等。課前要對(duì)試驗(yàn)內(nèi)容和步驟部分進(jìn)行預(yù)習(xí)。【試驗(yàn)環(huán)境】1.SQLSERVER2005/2008;2.KingBaseESV7.0,人大金倉。【試驗(yàn)內(nèi)容和步驟】一個(gè)簡潔的圖書管理系統(tǒng)包括圖書館內(nèi)書籍的信息、學(xué)校在校學(xué)生的信息以及學(xué)生的借閱信息。此系統(tǒng)功能分為面對(duì)學(xué)生和面對(duì)管理員兩部分,其中面對(duì)學(xué)生部分可以進(jìn)行借閱、續(xù)借、歸還和查詢書籍等操作;面對(duì)管理員部分可以完成書籍和學(xué)生的增加、刪除和修改以及對(duì)學(xué)生借閱、續(xù)借、歸還的確認(rèn)。參照附錄的試驗(yàn)報(bào)告參考實(shí)例,完成如下內(nèi)容:1.需求分析(1)借閱人基本信息的查詢,輸入,插入,修改,刪除。包括借閱人的圖書證號(hào),姓名,班級(jí),電話,已借書目,能否能借書。(2)圖書基本信息的查詢,輸入,插入,修改,刪除。包括圖書的圖書編號(hào),書名,書號(hào),類別,定價(jià),入庫時(shí)間,庫存量等。(3)借閱的基本信息的查詢,輸入,插入,修改,刪除。包括借閱的借書時(shí)間,應(yīng)還時(shí)間,圖書證號(hào),圖書編號(hào),是否續(xù)借等。(4)借閱書籍基本信息的查詢,輸入,插入,修改,刪除。包括借閱書籍的圖書編號(hào),圖書證號(hào),書名等。(5)歸還書籍基本信息的查詢,輸入,插入,修改,刪除。包括歸還書籍的圖書編號(hào),圖書證號(hào),書名等。(6)管理基本信息的查詢,輸入,插入,修改,刪除。包括管理的圖書編號(hào),圖書證號(hào),登記借書日期,是否在庫,存放位置等。(7)管理員基本信息的查詢,輸入,插入,修改,刪除。包括管理員的編號(hào),姓名,性別,值日時(shí)間,聯(lián)系方式等。2.概念結(jié)構(gòu)設(shè)計(jì)(E-R圖)實(shí)體:圖書信息,借閱書籍,歸還書籍,借閱人,管理員聯(lián)系:借閱信息,管理信息。庫存量入庫時(shí)間定價(jià)類別書號(hào)書名圖書編號(hào)庫存量入庫時(shí)間定價(jià)類別書號(hào)書名圖書編號(hào) 是否在庫圖書編號(hào)是否在庫圖書編號(hào)存放位置借書時(shí)間圖書信息存放位置借書時(shí)間圖書信息管理借閱信息 m m管理借閱信息登記日期借書時(shí)間登記日期借書時(shí)間圖書編號(hào)應(yīng)還時(shí)間圖書編號(hào)應(yīng)還時(shí)間姓名圖書證號(hào)姓名圖書證號(hào)班級(jí)圖書編號(hào)借閱人借閱書籍歸還書籍班級(jí)圖書編號(hào)借閱人借閱書籍歸還書籍姓名管理員姓名管理員電話圖書證號(hào)電話圖書證號(hào)性別性別書名書名編號(hào)圖書證號(hào)編號(hào)圖書證號(hào)值日時(shí)間已借書目值日時(shí)間已借書目姓名能否能借書圖書證號(hào)圖書編號(hào)聯(lián)系方式姓名能否能借書圖書證號(hào)圖書編號(hào)聯(lián)系方式3.邏輯結(jié)構(gòu)設(shè)計(jì)通過E-R圖,寫出關(guān)系模式的邏輯結(jié)構(gòu)。借閱人(圖書證號(hào)【主碼】,姓名,班級(jí),電話,已借書目,能否能借書)圖書基本信息(圖書編號(hào)【主碼】,書名,書號(hào),類別,定價(jià),入庫時(shí)間,庫存量)借閱的基本信息(圖書證號(hào),圖書編號(hào)【外碼】,借書時(shí)間【主碼】,應(yīng)還時(shí)間,是否續(xù)借)借閱書籍基本信息(圖書編號(hào)【外碼】,圖書證號(hào)【外碼】,書名)歸還書籍基本信息(圖書編號(hào)【外碼】,圖書證號(hào)【外碼】,書名)管理基本信息(圖書編號(hào)【外碼】,圖書證號(hào)【外碼】,登記借書日期【外碼】,是否在庫,存放位置)管理員基本信息(編號(hào)【主碼】,姓名,性別,值日時(shí)間,聯(lián)系方式)4.物理設(shè)計(jì)1.圖書基本信息屬性數(shù)據(jù)類型長度主碼/外碼圖書編號(hào)char10主碼書名char10書號(hào)char10類別char10定價(jià)money入庫時(shí)間date庫存量int借閱人基本信息屬性數(shù)據(jù)類型長度主碼/外碼姓名char10電話char10班級(jí)char10圖書證號(hào)char10主碼已借書目int能否能借書char2借閱的基本信息屬性數(shù)據(jù)類型長度主碼/外碼圖書證號(hào)char10圖書編號(hào)char10外碼借書時(shí)間date主碼應(yīng)還時(shí)間date是否續(xù)借char2借閱書籍基本信息屬性數(shù)據(jù)類型長度主碼/外碼圖書編號(hào)char10外碼圖書證號(hào)char10外碼書名char106管理基本信息屬性數(shù)據(jù)類型長度主碼/外碼圖書編號(hào)char10外碼圖書證號(hào)char10外碼登記借書日期date外碼是否在庫char2存放位置char107管理員基本信息屬性數(shù)據(jù)類型長度主碼/外碼姓名char10性別char2編號(hào)char10主碼值日時(shí)間date聯(lián)系方式char105.用SQL實(shí)現(xiàn)數(shù)據(jù)庫的設(shè)計(jì),并在SQLServer上調(diào)試通過。(1)建表(考慮完整性約束)/**********圖書基本信息*************/createtable圖書基本信息(圖書編號(hào)char(10)primarykey,書名char(10),書號(hào)char(10),類別char(10),定價(jià)money,入庫時(shí)間date,庫存量int)/**********借閱人基本信息**********/createtable借閱人(圖書證號(hào)char(10)primarykey,姓名char(10),班級(jí)char(10),電話char(10),已借書目int,能否能借書char(2),)/***********借閱基本信息**********/createtable 借閱的基本信息(圖書證號(hào)char(10),圖書編號(hào)char(10)references圖書基本信息(圖書編號(hào)),借書時(shí)間dateprimarykey,應(yīng)還時(shí)間date,是否續(xù)借char(10),)/******借閱書籍基本信息*******/createtable 借閱書籍基本信息(圖書編號(hào)char(10)references圖書基本信息(圖書編號(hào)),圖書證號(hào)char(10)references借閱人(圖書證號(hào)),書名char(10))/*******歸還書籍基本信息********/createtable歸還書籍基本信息(圖書編號(hào)char(10)references圖書基本信息(圖書編號(hào)),圖書證號(hào)char(10)references借閱人(圖書證號(hào)),書名char(10))/**********管理基本信息**********/createtable管理基本信息(圖書編號(hào)char(10)references圖書基本信息(圖書編號(hào)),圖書證號(hào)char(10)references借閱人(圖書證號(hào)),登記借書日期datereferences借閱的基本信息(借書時(shí)間),是否在庫char(2),存放位置char(10))/**********管理員基本信息************/createtable管理員基本信息(姓名char(10),性別char(2),編號(hào)char(10)primarykey,值日時(shí)間date,聯(lián)系方式char(10))(2)學(xué)生、圖書以及借閱信息的輸入、刪除和修改。/********借閱人信息輸入************/insertinto借閱人values(20151214,'張三','網(wǎng)絡(luò)五班',1234564789,3,'能')insertinto借閱人values(20151216,'王五','網(wǎng)絡(luò)五班',1434564789,1,'能')insertinto借閱人values(20151217,'董六','網(wǎng)絡(luò)五班',1534564789,2,'能')insertinto借閱人values(20151218,'孫七','網(wǎng)絡(luò)五班',1634564789,3,'能')/********圖書基本信息輸入************/insertinto圖書基本信息values(000001,'英語','b001','語言類',30,'2015-12-01',150)insertinto圖書基本信息values(000002,'線性代數(shù)','b011','幾何類',34,'2015-11-01',100)insertinto圖書基本信息values(000003,'數(shù)據(jù)庫','b101','計(jì)算機(jī)類',40,'2015-12-11',90)insertinto圖書基本信息values(000004,'近代史','b111','歷史類',25,'2015-10-01',50)/********借閱的基本信息輸入************/insertinto借閱的基本信息values(20151214,000001,'2015-12-11','2016-01-11','否')insertinto借閱的基本信息values(20151216,000002,'2015-11-11','2015-12-11','否')insertinto借閱的基本信息values(20151217,000003,'2015-12-12','2016-01-12','否')insertinto借閱的基本信息values(20151218,000004,'2015-12-10','2016-01-10','否')三、思索題:對(duì)數(shù)據(jù)庫設(shè)計(jì)的過程有了哪些進(jìn)一步的理解?答;通過這次的課程設(shè)計(jì),我對(duì)數(shù)據(jù)庫有了進(jìn)一步的了解,我嫻熟的駕馭了數(shù)據(jù)庫的一些基本語法,比如如何建表,以及添加,刪除,查找,更新等操作。我也練習(xí)了創(chuàng)建E-R圖和從E-R圖得到關(guān)系圖,通過設(shè)計(jì)物理結(jié)構(gòu),來創(chuàng)建一個(gè)圖書管理系統(tǒng)。立刻就要期末考試了,這次課程設(shè)計(jì),幫助了我復(fù)習(xí)以前的學(xué)問。五、老師評(píng)語:試驗(yàn)成果:老師:(簽名)年月日附:試驗(yàn)報(bào)告參考示例零件交易中心管理系統(tǒng)試驗(yàn)報(bào)告一、試驗(yàn)?zāi)康耐ㄟ^完成從用戶需求分析、數(shù)據(jù)庫設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過程,進(jìn)一步理解和駕馭數(shù)據(jù)庫的設(shè)計(jì)過程及方法。二、試驗(yàn)內(nèi)容零件交易中心管理系統(tǒng)主要供應(yīng)顧客和供應(yīng)商之間完成零件交易的功能,其中包括供應(yīng)商信息、顧客信息以及零件信息。供應(yīng)商信息包括供應(yīng)商、供應(yīng)商號(hào)、地址、電話、簡介;顧客信息包括顧客號(hào)、顧客名、地址、電話;零件信息包括零件號(hào)、零件名、重量、顏色、簡介等。此系統(tǒng)可以讓供應(yīng)商增加、刪除和修改所供應(yīng)的零件產(chǎn)品,還可以讓顧客增加、刪除和修改所需求的零件。交易員可以利用顧客提出的需求信息和供應(yīng)商提出的供應(yīng)信息來提出交易的建議,由供應(yīng)商和顧客進(jìn)行確認(rèn)后完成交易。三、試驗(yàn)過程需求分析(1)供應(yīng)商供應(yīng)商的操作流程如圖1所示。圖1(2)顧客顧客的地位和供應(yīng)商幾乎是對(duì)稱的,所以功能分類上也很相像。顧客的操作流程如圖2所示:圖2(3)交易員交易員的工作就是提出交易和完成交易。須要細(xì)致考慮的問題是:一個(gè)交易如何產(chǎn)生,并如何達(dá)成。這可以用圖3來說明。圖3處理交易的時(shí)候可能面臨如下問題:a.一個(gè)交易只能在交易雙方都同意的狀況下才可以進(jìn)行,所以數(shù)據(jù)庫中的供求信息只能作為達(dá)成某個(gè)交易的基礎(chǔ);b.交易的雙方可能不同時(shí)運(yùn)用這個(gè)系統(tǒng),因此須要系統(tǒng)供應(yīng)一個(gè)雙方交換信息的方式;c.系統(tǒng)須要供應(yīng)一種便利系統(tǒng)(交易員)向用戶提出建議來促成交易的途徑,并在保證數(shù)據(jù)庫數(shù)據(jù)完整性的狀況下達(dá)成交易。2.概念模型設(shè)計(jì)數(shù)據(jù)庫須要表述的信息有以下幾種:(1)零件信息;(2)供應(yīng)商信息;(3)顧客信息;(4)供應(yīng)商零件之間的聯(lián)系(供應(yīng))(5)顧客和零件之間的聯(lián)系(求購);(6)交易(三元聯(lián)系)用E-R模型表述該模型的設(shè)計(jì),E-R圖如圖4所示。圖43.邏輯設(shè)計(jì)通過E-R模型到關(guān)系模型的轉(zhuǎn)化,可以得到如下關(guān)系模式:(1)零件關(guān)系:part(ID,color,name,weight,intro)(2)供應(yīng)商關(guān)系:provider(ID,name,address,tele,intro)(3)顧客關(guān)系:customer(ID,name,address,tele)(4)供應(yīng)關(guān)系:supply(partID,provideID,price,quantity)(5)求購關(guān)系:after(customerID,partID,price,quantity)(6)交易關(guān)系:Business(customerID,provideID,partID,price,quantity)每個(gè)關(guān)系模式的主碼都用下劃線標(biāo)出。同時(shí),對(duì)于從聯(lián)系導(dǎo)出的關(guān)系供應(yīng),求購和交易,運(yùn)用與之相聯(lián)系的實(shí)體集的碼作為自己的主碼,必需符合外碼的約束。對(duì)于顧客,供應(yīng)商和零件之間,不存在干脆的約束,所以可以存在沒有供應(yīng)商供應(yīng)同時(shí)也沒有顧客求購的零件。4.物理設(shè)計(jì)為了提高在表中搜尋元組的速度,在實(shí)際實(shí)現(xiàn)的時(shí)候應(yīng)當(dāng)基于碼建立索引。下面是各表中建立索引的表項(xiàng)。part(ID)provider(ID)customer(ID)supply(partID,provideID)after(customerID,partID)Business(customerID,provideID,partID5.用SQL實(shí)現(xiàn)設(shè)計(jì)實(shí)現(xiàn)該設(shè)計(jì)的環(huán)境為Windows2000Professional+MSSQLServer2000。(1)建立各表①建立零件表CREATETABLEPart(IDsmallintidentity(1,1)PRIMARYKEYCLUSTERED,Colorvarchar(20),Namevarchar(20)NOTNULL,Weightintdefault0,Introtext);②建立Provider表CREATETABLEProvider(IDsmallintidentity(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,Passwordvarchar(8)NOTNULL,Addressvarchar(30),Telvarchar(20),Introtext);③建立Customer表CREATETABLECustomer(IDsmallintidentity(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,Passwordvarchar(8)NOTNULL,Addressvarchar(30),Telvarchar(20));④建立Supply表CREATETABLESupply(PartIDsmallint,ProvideIDsmallint,Priceint,Quantityint,CONSTRAINTPK_SUPPLYPRIMARYKEYCLUSTERED(PartID,ProvideID),CONSTRAINTPK_SUPPLY_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID),CONSTRAINTPK_SUPPLY_PROVIDERIDFOREIGNKEY(ProvideID)REFERENCESProvider(ID));⑤建立After表CREATETABLEAfter(CustomerID,smallint,PartIDsmallint,Priceint,Quantityint,CONSTRAINTPK_AFTERPRIMARYKEYCLUSTERED(CustomerID,PartID),CONSTRAINTPK_AFTER_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTPK_AFTER_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));⑥建立Business表CREATETABLEBusiness(CustomerID,smallint,PartIDsmallint,ProvideIDsmallint,Priceint,Quantityint,CONSTRAINTPK_BUSSINESSPRIMARYKEYCLUSTERED(CustomerID,ProvideID,PartID),CONSTRAINTPK_BUSSINESS_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTPK_BUSSINESS_PROVIDERIDFOREIGNKEY(ProvideID)REFERENCESProvider(ID));CONSTRAINTPK_BUSSINESS_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));⑦供應(yīng)商操作a.注冊(cè)(Register)INSERTINTOProvider(Name,Address,Tel,Intro)VALUES(#Name,#Address,#Tel,#Intro)在登記操作后,供應(yīng)商得到一個(gè)惟一的ID,可以依據(jù)這個(gè)ID來查詢和修改供應(yīng)商的數(shù)據(jù)。b.注銷(UnRegister)DELETEProviderWHEREID=#ID;c.修改個(gè)人信息(Update)UPDATEProviderSetName=#Name,Address=#Address,Tel=#Tel,Intro=#IntroWHEREID=#IDd.增加供應(yīng)項(xiàng)(Add_Supply_Item)INSERTINTOSupply(PartID,ProviderID,Price,Quantity)VALUES(#PartID,#ProviderID,#Price,#Quantity))e.刪除供應(yīng)項(xiàng)(Delete_Supply_Item)DELETESupplyWHEREPartID=#PartIDandProvideID=#ProvideID);f.修改供應(yīng)項(xiàng)(Update_Supply_Item)UPDATESupplySETPrice=#Price,Quantity=#Quantity)WHEREPartID=#PartIDandProvideID=#ProvideID;很明顯,系統(tǒng)并沒有供應(yīng)商品面對(duì)供應(yīng)商修改零件信息的接口,所以供應(yīng)商供應(yīng)的零件必需已經(jīng)在零件表中存在;可以這樣假設(shè),交易所的管理員負(fù)責(zé)更新零件信息,而供應(yīng)商可以向交易所申請(qǐng)?jiān)黾幽撤N零件的信息。事實(shí)上顧客也可提出這樣的要求。⑧顧客a.注冊(cè)(Register)INSERTINTOCustomer(Name,Address,Tel)VALUES(#Name,#Address,#Tel)在登記操作后,供應(yīng)商得到一個(gè)惟一的ID,可以依據(jù)這個(gè)ID來查詢和修改供應(yīng)商的數(shù)據(jù)。b.注銷(UnRegister)DELETECustomerWHEREID=#ID;c.修改個(gè)人信息(Update)UPDATECustomerSetName=#Name,Address=#Address,Tel=#TelWHEREID=#IDd.增加需求項(xiàng)(Add_After_Item)INSERTINTOAfter(PartID,CustomerID,Price,Quantity)VALUES(#PartID,#ProviderID,#Price,#Quantity))e.刪除需求項(xiàng)(Delete_After_Item)DELETEAfterWHEREPartID=#PartIDandCustomerID=#CustomerID);f.修改需求項(xiàng)(Update_After_Item)UPDATEAfterSETPrice=#Price,Quantity=#Quantity)WHEREPartID=#PartIDandCustomerID=#CustomerID;⑨交易員針對(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í)予以修改;協(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(CustomerID,ProviderID,PartID,Price,Quantity,CustomerSign,ProviderSign)對(duì)應(yīng)的SQL描述為:CREATETABLEAgreement(CustomerID,smallint,PartIDsmallint,ProvideIDsmallint,Priceint,Quantityint,CustomerSignint,ProviderSignint,CONSTRAINTPK_AGREEMENTPRIMARYKEYCLUSTERED(CustomerID,ProvideID,PartID),CONSTRAINTPK_AGREEMENT_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTPK_AGREEMENT_PROVIDERIDFOREIGNKEY(ProvideID)REFERENCESProvider(ID));CONSTRAINTPK_AGREEMENT_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));與上述其他操作相比,交易的操作對(duì)數(shù)據(jù)完整性要求比較高,其中須要留意的地方是:要防止同一用戶(供應(yīng)商,顧客)的數(shù)據(jù)因兩個(gè)交易而同時(shí)修改;須要同時(shí)對(duì)供應(yīng)數(shù)據(jù)庫(S upply)、需求數(shù)據(jù)庫(After)、交易數(shù)據(jù)庫(Business)和協(xié)議數(shù)據(jù)庫(Agreement)作出特性而且須要保持這些修改的原子性;很明顯,這些要求正是對(duì)一個(gè)事務(wù)(Transaction)的要求,所以可以用一個(gè)事務(wù)來完成簽發(fā)一個(gè)協(xié)議的操作。事務(wù)的描述如下:CREATEPROCPASS_AGREEMENT@providerIDint,@customerIDint,@partIDintASDECLARE@TransNameVARCHAR(20)SELECT@TransName=’Pass_Agreement’BEGINTRANSACTION@TransNameDECLARE@priceint@quantityintSELECT@price=price,@quantity=quantityFROMAgreementWHEREprovideID=@providerIDandcustomerID=@customerIDANDpartID=@partIDINSERTINTOBusiness(ProviderID,customerID,PartID,Price,Quantity)VALUES(@ProviderID,@CustomerID,@PartID,@Price,@Quantity)UPDATESupplySETquantity=quantity-@quantityWHEREProviderID=@ProviderIDANDpartID=@partIDIF(SELECTquantityFROMSupplyWHEREprovideID=@providerIDANDpartID=@partID)<9ROLLBACKTRANSACTION@TransNameDELETEFROMSupplyWHEREquantity=0UPDATEafterSETquantity=quantity-@quantityWHERECustomerID=@CustomerIDANDpartID=@partIDIf(SELECTquantityFROMAfterWHERECustomerID=@CustomerIDANDpartID=@partID)<0ROLLBACKTRANSACTION@TransNameDELETEFROMAfterWHEREquantity=0COMMITTRANSACTION@TransShowGO為了運(yùn)用便利,這里定義了一個(gè)存儲(chǔ)過程,功能是完成從Agreement的一個(gè)元組到期Business的每個(gè)元組的轉(zhuǎn)化工具。這里考慮到了刪除空的Supply和After項(xiàng),更加重要的是,這里考慮到了非法的Agreement的狀況,在一段時(shí)間后,由于供應(yīng)商式或者顧客修改數(shù)據(jù),Agreement可能就非法,這時(shí)就須要把這個(gè)事務(wù)廢除,所以這里檢查Supply表和After表中的數(shù)據(jù),確保數(shù)據(jù)仍舊正確。另外,交易員,或者說交易所必需擔(dān)當(dāng)?shù)囊豁?xiàng)任務(wù)是更新零件列表,這里在考慮顧客和供應(yīng)商的時(shí)候

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論