學(xué)生教務(wù)管理系統(tǒng)作業(yè)_第1頁
學(xué)生教務(wù)管理系統(tǒng)作業(yè)_第2頁
學(xué)生教務(wù)管理系統(tǒng)作業(yè)_第3頁
學(xué)生教務(wù)管理系統(tǒng)作業(yè)_第4頁
學(xué)生教務(wù)管理系統(tǒng)作業(yè)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗十二某管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計實驗名稱:某管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計實驗學(xué)時:8實驗?zāi)康模罕緦嶒灥哪康氖菫榱俗寣W(xué)生能夠全面了解數(shù)據(jù)庫應(yīng)用系統(tǒng)的整個開發(fā)過程,逐步掌握系統(tǒng)開發(fā)的以下相關(guān)技術(shù):(1)鞏固數(shù)據(jù)庫理論知識,熟悉一種具體的數(shù)據(jù)庫管理系統(tǒng)(例如:SQLServer)的使用方法。(2)掌握針對特定應(yīng)用環(huán)境數(shù)據(jù)庫的設(shè)計。(3)綜合使用SQLServer中數(shù)據(jù)庫、表、視圖、索引、觸發(fā)器、存儲過程的創(chuàng)建使用方法。(4)體會運用軟件工程的設(shè)計思想進行軟件系統(tǒng)開發(fā)的過程與方法。通過本課程設(shè)計,有助于學(xué)生鞏固數(shù)據(jù)庫系統(tǒng)的理論,掌握數(shù)據(jù)庫的設(shè)計方法及數(shù)據(jù)庫的運用和開發(fā)技術(shù).實驗內(nèi)容及步驟:針對某部門或公司的實踐調(diào)研,通過系統(tǒng)需求分析、數(shù)據(jù)庫概念設(shè)計、邏輯設(shè)計,用SQL上機編程、調(diào)試和應(yīng)用實現(xiàn)數(shù)據(jù)庫的設(shè)計,最終完成某管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計。系統(tǒng)需求分析和系統(tǒng)設(shè)計用軟件工程的方法進行系統(tǒng)需求分析和系統(tǒng)設(shè)計得出系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)字典和信息模型。數(shù)據(jù)庫設(shè)計按數(shù)據(jù)庫設(shè)計方法和規(guī)范化理論得出符合3NF的邏輯模型,外模型和物理模型。數(shù)據(jù)庫定義和數(shù)據(jù)安全性與完整性定義定義SQL、Server2000的基本表和安全性、完整性要求。應(yīng)用程序設(shè)計和程序調(diào)試設(shè)計并編寫輸入\輸出、查詢\統(tǒng)計、數(shù)據(jù)維護等功能模塊的應(yīng)用程序。撰寫課程設(shè)計報告對系統(tǒng)的各個功能模塊進行集成、總調(diào)試,撰寫課程設(shè)計報告。參考選題:1民航售票系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計(系統(tǒng)簡述)民航訂票系統(tǒng)主要分為機場、航空公司和客戶三方的服務(wù)。航空公司提供航線和飛機的資料,機場則對在本機場起飛和降落的航班和機票進行管理,而客戶能得到的服務(wù)應(yīng)該有航班線路和剩余票數(shù).的查詢,以及網(wǎng)上訂票等功能。客戶又可以分為兩類,一類是普通客戶,對于普通客戶只有普通的查詢功能和訂票功能,沒有相應(yīng)的機票優(yōu)惠,另一種是經(jīng)常旅客,需要辦理注冊手續(xù),但增加了里程積分功能和積分優(yōu)惠政策。機場還要有緊急應(yīng)對措施,在航班出現(xiàn)延誤時,要發(fā)送相應(yīng)的信息。2圖書管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計(系統(tǒng)簡述)一個簡單的圖書管理系統(tǒng)包括圖書館內(nèi)書籍的信息、學(xué)校在校學(xué)生的信息以及學(xué)生的借閱信息。此系統(tǒng)功能分為面向?qū)W生和面向管理員兩部分,其中學(xué)生可以進行借閱、續(xù)借、歸還和查詢書籍等操作,管理員可以完成書籍和學(xué)生的增加,刪除和修改以及對學(xué)生,借閱、續(xù)借、歸還的確認。人事管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計碟片出租系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計酒店管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計汽車租借信息系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計酒店管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計超市管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計學(xué)生信息管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計工資信息管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計

課程設(shè)計實驗報告模版:綜合性、設(shè)計性實驗報告實驗課程名稱學(xué)生信息管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計專業(yè)計算機科學(xué)與技術(shù)班級01學(xué)號姓名學(xué)號姓名學(xué)號姓名指導(dǎo)教師及職稱_(講師)_開課學(xué)期2015至2016學(xué)年第二學(xué)期設(shè)計時間

設(shè)計題目學(xué)生信息管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計實驗?zāi)康模罕菊n程設(shè)計的目的是為了讓學(xué)生能夠全面了解數(shù)據(jù)庫應(yīng)用系統(tǒng)的整個開發(fā)過程,逐步掌握系統(tǒng)開發(fā)的以下相關(guān)技術(shù):(1)鞏固數(shù)據(jù)庫理論知識,熟悉一種具體的數(shù)據(jù)庫管理系統(tǒng)(例如:SQLServer)的使用方法。(2)掌握針對特定應(yīng)用環(huán)境數(shù)據(jù)庫的設(shè)計。(3)綜合使用SQLServer中數(shù)據(jù)庫、表、視圖、索引、觸發(fā)器、存儲過程的創(chuàng)建使用方法。(4)體會運用軟件工程的設(shè)計思想進行軟件系統(tǒng)開發(fā)的過程與方法。軟硬件環(huán)境:Win7實驗設(shè)計簡述:運用access進行數(shù)據(jù)庫的設(shè)計,綜合考慮多個因素,權(quán)衡各自利弊,確定數(shù)據(jù)表的結(jié)構(gòu),做到3NF。系統(tǒng)需求分析與功能設(shè)計(根據(jù)課題的要求進行簡單的需求分析,設(shè)計相應(yīng)的數(shù)據(jù)流圖,得出相應(yīng)的系統(tǒng)功能需要,系統(tǒng)數(shù)據(jù)流圖)高校教務(wù)管理系統(tǒng)應(yīng)有一下幾個方面的數(shù)據(jù):有關(guān)學(xué)生的數(shù)據(jù):學(xué)號、姓名、性別、年齡、籍貫、學(xué)籍、政治面貌、民族、班級所在、身份證號有關(guān)學(xué)生的成績的數(shù)據(jù):

學(xué)號,課程編號、成績、考試次數(shù)、是否補修、重考。有關(guān)課程的數(shù)據(jù):

課程編號、課程名稱、開課學(xué)期、開課系部、授課時數(shù)、學(xué)分、課程類型、考試形式有關(guān)班級的數(shù)據(jù):班級編號、班級名稱、班級簡稱、年級、班級人數(shù)、班主任、所屬系部有關(guān)教師的數(shù)據(jù):教師編號、教師姓名、性別、職稱、學(xué)歷、身份證號、聯(lián)系電話、所屬部門、政治面貌、民族、籍貫。學(xué)生信息管理系統(tǒng)中應(yīng)有處理查找學(xué)生信息,統(tǒng)計學(xué)生成績,查詢課程信息,等功能。概念模型設(shè)計(按數(shù)據(jù)庫設(shè)計方法和規(guī)范化理論,從實踐概括抽象出ER模型)1.確定實體:學(xué)生信息管理系統(tǒng)應(yīng)對學(xué)生,班級、教師、課程就行有效的管理,掌握課程信息,和老師受課程情況,對學(xué)生成績進行匯總,統(tǒng)計。經(jīng)過需求分析后,發(fā)現(xiàn)設(shè)計的實體主要有,部門、班級、學(xué)生、課程、教師。教師通過和學(xué)生授課建立聯(lián)系。確定屬性:列舉各個實體的屬性構(gòu)成。(詳見上頁)3.實體聯(lián)系類型班級與學(xué)生是一對多的關(guān)系,學(xué)生與課程是多對多的關(guān)系4.E-R圖NN成績課程選修學(xué)生M1課程教學(xué)教師NN成績課程選修學(xué)生M1課程教學(xué)教師成績表課程表學(xué)生表教師表數(shù)據(jù)表選修教學(xué)課程學(xué)生教師成績NNM選修教學(xué)課程1學(xué)生教師成績表課程表學(xué)生表教師表數(shù)據(jù)表選修教學(xué)課程學(xué)生教師成績NNM選修教學(xué)課程1學(xué)生教師6.邏輯模型設(shè)計(按數(shù)據(jù)庫設(shè)計方法和規(guī)范化理論得出符合3NF的邏輯模型,ER圖設(shè)計,ER圖轉(zhuǎn)化為相應(yīng)的關(guān)系模式,設(shè)計數(shù)據(jù)庫的邏輯模型)教師實體轉(zhuǎn)化為關(guān)系:教師(教師編號、教師姓名、性別、職稱。。。。。。)主關(guān)鍵字為教師編號學(xué)生實體轉(zhuǎn)化為關(guān)系:學(xué)生(學(xué)號、姓名、性別、籍貫、學(xué)籍。。。。。。)主關(guān)鍵字為學(xué)號課程實體轉(zhuǎn)化為關(guān)系:課程(課程編號、課程名稱、開課學(xué)期。。。。。。。)主關(guān)鍵字為課程編號聯(lián)系轉(zhuǎn)化為關(guān)系:成績(學(xué)生編號、課程編號、成績)主關(guān)鍵字為學(xué)生編號7.物理模型設(shè)計(存儲記錄結(jié)構(gòu)設(shè)計,物理文件的安排和建立索引)8.實現(xiàn)(數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的程序代碼,基本操作的程序代碼)9.實驗總結(jié)(主要對本實驗開發(fā)過程進行歸納和總結(jié),還應(yīng)包括在設(shè)計過程中所遇到的技術(shù)難點及解決方法,尚存在的問題以及進一步開發(fā)的見解與建議。)10.參考文獻指導(dǎo)老師評語及得分:簽名:年月日

參考示例——交易中心管理系統(tǒng)(實驗?zāi)康?針對零件交易中心的實踐調(diào)研,通過系統(tǒng)需求分析、數(shù)據(jù)庫概念設(shè)計、邏輯設(shè)計到上機編程、調(diào)試和應(yīng)用等全過程完成零件交易中心管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計。(實驗環(huán)境)略(實驗設(shè)計簡述)零件交易中心管理系統(tǒng)主要提供顧客和供應(yīng)商之間完成零件交易的功能,其中包括供應(yīng)商信息、顧客信息以及零件信息。此系統(tǒng)可以讓供應(yīng)商增加、刪除和修改所提供的零件產(chǎn)品,還可以讓顧客增加、刪除和修改所需求的零件。交易員可以利用顧客提出的需求信息和供應(yīng)商提出的供應(yīng)信息來提出交易的建議,由供應(yīng)商和顧客進行確認后即完成這筆交易。(系統(tǒng)需求分析)l.供應(yīng)商供應(yīng)商的操作流程圖如圖A1所示。增加供應(yīng)項增加供應(yīng)項修改供應(yīng)項刪除供應(yīng)項修改個人信息供應(yīng)項注冊注銷圖A1供應(yīng)商操作分類表2.顧客顧客的地位和供應(yīng)商幾乎是對稱的,所以功能分類上也很相似.顧客的操作流程圖如圖A2所示。增加需求項增加需求項修改需求項刪除需求項修改個人信息顧客注冊注銷圖A2顧客操作分類表圖A2顧客操作分類表3.交易員交易員的工作就是提出交易和完成交易。這里需要仔細考慮的問題是:一個交易如何產(chǎn)生,并如何達成,可以用圖A3來說明這個問題.我們在處理交易的時候可能面臨如下問題:(1)一個交易只能在交易雙方都同意的情況下才可以進行,所以數(shù)據(jù)庫中的供求信息只能作為達成某個交易的基礎(chǔ);(2)交易的雙方可能不同時使用這個系統(tǒng),因此需要系統(tǒng)提供一個雙方交換信息的方式;(3)系統(tǒng)需要提供一種方便系統(tǒng)(交易員)向用戶提出建議來促成交易的途徑,并在保證數(shù)據(jù)庫數(shù)據(jù)完整性的情況下達成交易。交易員交易員協(xié)議書草案供應(yīng)商以及顧客簽字正式簽字交易員簽發(fā)完成交易供應(yīng)商提出交易顧客提出交易申請交易員提出交易建議圖A.3交易員操作圖(概念模型設(shè)計)數(shù)據(jù)庫需要表述的信息有以下幾種:(1)零件信息(2)供應(yīng)商信息(3)顧客信息(4)供應(yīng)商集和零件集之間的聯(lián)系(供應(yīng))M:NM:N零件顏色零件號零件名重量簡介供應(yīng)商名供應(yīng)商供應(yīng)商號地址電話簡介供應(yīng)數(shù)量價格圖A.4供應(yīng)商和零件之間的聯(lián)系(供應(yīng))ER模型(5)顧客集和零件集之間的聯(lián)系(求購)M:NM:N零件顏色零件號零件名重量簡介顧客電話顧客號顧客名地址求購數(shù)量價格圖A.5顧客和零件之間的聯(lián)系(求購)ER模型(6)交易(三元聯(lián)系)可以用E/R模型表述該模型的設(shè)計,E/R圖如圖A7所示。零件名零件號零件名零件號簡介求購數(shù)量簡介求購數(shù)量價格供應(yīng)數(shù)量價格重量顏色供應(yīng)數(shù)量價格重量顏色零件零件nmnmmnmnpm交易顧客號pm交易顧客號n顧客電話供應(yīng)商n顧客電話供應(yīng)商顧客名簡介顧客名簡介地址供應(yīng)商名數(shù)量地址供應(yīng)商名數(shù)量價格地址電話供應(yīng)商號價格地址電話供應(yīng)商號圖A.7全局ER模型(邏輯模型設(shè)計)通過ER模型到關(guān)系模型的轉(zhuǎn)化,可以得到如下關(guān)系模式:(1)零件實體集轉(zhuǎn)換為關(guān)系:Part(ID,Color,Name,Weight,Intro)(2)供應(yīng)商實體集轉(zhuǎn)換為關(guān)系Provider(ID,Name,Addtess,Tel,Intro)(3)顧客實體集轉(zhuǎn)換為關(guān)系Customer(ID,Name,Addtess,Tel)(4)供應(yīng)聯(lián)系轉(zhuǎn)換為關(guān)系Supply(PartlD,ProviderlD,Price,Quantity)(5)求購聯(lián)系轉(zhuǎn)換為關(guān)系OfferToBuy(CustomerlD,PartID,Price,Quantity)(6)交易聯(lián)系轉(zhuǎn)換為關(guān)系Business(CustomerlD,ProviderlD,PartID,Price,Quantity)每個關(guān)系模式的主鍵碼都用下劃線標出。同時,對于從聯(lián)系導(dǎo)出的關(guān)系Supply(供應(yīng)),OfferToBuy(求購)和Business(交易),使用與之相聯(lián)系的實體集的主健碼作為自己的鍵碼,必須符合外鍵碼約束。對于Customer(顧客),Provider(供應(yīng)商)和Part(零件)之間,不存在直接的約束,所以可以存在沒有供應(yīng)商供應(yīng)同時也沒有顧客求購的零件。(物理模型設(shè)計)1.存儲記錄結(jié)構(gòu)設(shè)計Part表列名類型長度約束IDsmallintPRIMARYKEYColorvarchar20Namevarchar20NOTNULLWeightintDEFAULT0Introtext其他表類似2.為了提高在表中搜索元組的速度,在實際實現(xiàn)的時候應(yīng)該基于鍵碼建立索引是各表中建立索引的表項:(1)part(ID)(2)Provider(ID)(3)Customer(ID)(4)Supply(PartID,ProviderID>(5)OfferTOBuy(CustomerID,PartID)(6)Business(CustomerlD,ProviderID,PartID)(實現(xiàn))實現(xiàn)該設(shè)計的環(huán)境為Windows2000Perfessinal+MSSQLServer2000.01.建立Part表CREATETABLEPart(IDsmallintIDENTITY(1,1)PRIMARYKEYCLUSTERED,Colorvarchar(20),Namevarchar(20)NOTNULL,WeightintDEFAULT0,Introtext)2.建立Provider表CREATETABLEProvider(IDsmallintIDENTITY(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))4.建立Supply表CREATETABLESupply(PartIDSmallint,ProviderIDsmallint,Priceint,QUantityint,CONSTRAINTPK_SUPPLYPRIMARYKEYCLUSTERED(PartID,ProviderID),CONSTRAINTFK_SUPPLY_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID),CONSTRAINTFK_SUPPLY_PROVIDERIDFOREIGNKEY(ProviderID)REFERENCESProvider(ID))5.建立OfferToBuy表CREATETABLEOfferToBuy(CustomerIDsmallint,PartIDSmallint,Priceint,Quantityint,CONSTRAINTPK_OFFERTOBUYPRIMARYKEYCLUSTERED(CustomerID,PartID),CONSTRAINTFK_OFFERTOBUY_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTFK_OFFERTOBUYFOREIGNKEY(PartID)REFERENCESPart(ID))6.建立Business表CREATETABLEBusiness(CustomerIDsmallint,ProviderIDsmallint,PartIDSmallint,Priceint,Quantityint,CONSTRAINTPK_BUSINEssPRIMARYKEYClUSTERED(CuscomerID,ProviderID,PartID),CONSTRAINTFK_BUSINESS_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTFK_BUSINESS_PROVIDERlDFOREIGNKEY(ProviderID)REFERENCESProvider(ID),CONSTRAINTFK_BUSINESS_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID))7.供應(yīng)商操作(1)注冊(register)INSERTINTOProvider(Name,password,Address,TeI,Intro)VALUES(#Name,#password,#Address,#Tel,#Intro)在登記操作后,供應(yīng)商得到一個唯一的ID,可以根據(jù)這個ID采查詢和修改供應(yīng)商的數(shù)據(jù)。(2)注銷(unregister)DELETEProviderWHERE(ID=#ID);(3)修改個人館息(update)UPdateProviderSet(Name=#Name,Address=#Address,Tel=#Tel,Intro=#Intro)WHERE(ID=#ID);(4)增加供應(yīng)項(add_supply_item)INSERTINTOSupply(PartID,Providerid,Price,Quantity)VALUES(#PartID,#ProvderlD,#Price;#Quantily);(5)刪除供應(yīng)項(delete_supply_item)DELETESupPlyWHERE(PartlD=#PartIDANDProvideID=#ProviderlD);(6)修改供應(yīng)項(update_supply_item)UPDATESupplySET(Price=#Price,Quantity=#Quantity)WHERE(PartlD=#PartIDANDProviderID=#ProviderID)‘很明顯,系統(tǒng)并沒有提供面向供應(yīng)商修改零件信息的接口,所以供應(yīng)商提供的零件必須已經(jīng)在零件表中存在;可以這祥假設(shè),交易所的管理員負責(zé)更新零件信息,而供應(yīng)商可以向交易所申請增加某種零件的信息.事實上顧客也可以提出這樣的要求。8.顧客操作‘(1)注冊(register)INSERTINTOCustomer(Name,Address,Tel)VALUES(#Name,#Address,#Tel);在登記操作后,顧客得到一個唯一的ID,可以根據(jù)這個ID來查詢和修改顧客的數(shù)據(jù).(2)注銷(unregister)DELETECustomerWHERE<ID=#ID);(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)DELETEOfferToBuyWHERE(PartlD=#PartlDANDCustomerlD=#CustomerID);(6)修改需求項(叩date_OfferToBuy_item)UPDATEOfferToBuySET(Price=#Price,Quantity=#QuantityWHERE(PartlD=#PartIDANDCustomeriD=#CustomerID)9.交易員針對需求分析中提出的問題,我們提出了“協(xié)議書”的解決方案,方案的說明如下:(1)每個交易在達成以前都作為協(xié)議書保存在數(shù)據(jù)庫中,協(xié)議書具有和交易一樣的完備信息,可以在條件成熟的情況下轉(zhuǎn)為一個達成的交易;(2)協(xié)議書只有在供應(yīng)商和顧客都簽字的情況下才有效;有效的協(xié)議書由交易員簽發(fā),協(xié)議書一經(jīng)簽發(fā),就生效,表明一個交易的達成,數(shù)據(jù)庫中的數(shù)據(jù)將同時予以修改;(3)協(xié)議書可以由供應(yīng)商、顧客或者交易員中的任意一個人提出申請。當(dāng)協(xié)議書在雙方?jīng)]有都簽字前,協(xié)議的雙方或者交易員都可以刪除這個協(xié)議書;但是,當(dāng)協(xié)議書簽字完畢后,協(xié)議書就不得刪除(修改),只能由交易員進行處理;(4)協(xié)議書有可能在轉(zhuǎn)成交易的過程中失敗,因為在交易達成以前,數(shù)據(jù)庫中的數(shù)據(jù)有可能因為其他交易而變化,一個協(xié)議書可能失效,這是允許的。根據(jù)以上分析,對數(shù)據(jù)庫的模型作一些修改,增加協(xié)議書表,其關(guān)系模式如下:Agreement(CustomerlD,ProviderID,PartID,Price,Quantity,CustomerSign,ProviderSign)對應(yīng)的SQL描述為:CREATETABLEAgreement(Customermsmallint,ProviderlDsmallint,PartlDsmallint,Priceint,Quantityint,CustomerSignint,ProviderSignint,CONSTRAINTPK_AGREEMENTPRIMARYKEYCLUSTERED(CustomerID,ProviderID,PartID),CONSTRAINTFK_AGREEMENT_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTFK_AGREEMENT_PROVlDERIDFOREIGNKEY(ProviderID)REFERENCESProvider(ID),CONSTRAINTFK_AGREEMENT_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID))與上述其他操作相比,對交易的操作對數(shù)據(jù)完整性要求比較高,其中需要注意的地方是;要防止同一用戶(供應(yīng)商,顧客)的數(shù)據(jù)因兩個交易而同時修改;需要同時對供應(yīng)數(shù)據(jù)庫(Supply)、需求數(shù)據(jù)庫(OfferToBuy)、交易數(shù)據(jù)庫(Business)和協(xié)議數(shù)據(jù)庫(Agreement)作出修改,而且需要保持這些修改的原子性;很顯然,這些要求正是對于一個事務(wù)(transaction)的要求,所以可以用一個事務(wù)來完成簽發(fā)一個協(xié)議的操作。事務(wù)的描述如下:CREATEPROCPASS_AGREEMENT@providerIDint,@customeridint,@partlDintASDECLARE@TransNameVARCHAR(20)SELECT@TransName='Pass_Agreement'BEGINTRANSACTION@TransNameDEClARE@priceINT,@qUANTITYintSELECT@price=price,@quantity=quantityFROMAgreementWHEREprIVIderID=@providerIDANDcustomerID=@customerIDANDPanID=@partIDINSERTINTOBusiness(ProviderID,CustomerID,PartID,Price,Quantity)VALues(@providerid,@customerID,@PartID,@price,@quantity)UPDATESupplySETquantity=quantity-@quantityWHEREProviderID=@prividerIDANDpartID=@partIDIF(SELECTquantityFROMSupplyWHEREProiderid=@providerANDpartID=@PartID)<0ROLLBACKTRANSACTlON@TranSNameDELETEFROMSupplyWHEREquantity=0UPDATEOfferToBuySETquantity=quanttity-@quantityWHERECustomerID=@customeridANDpartlD=@partIDIF(SELECTquandtityFROMOfferToBuyWHERECustomerID=@CustomerIDANDpartID=@partlD)<0ROLLBACKTRANSACTION@TransNameDELETEFROMOfferToBuyWHEREquantity=0COMMITTRANSACTION@TransName為了使用方便,這里定義了一個存貯過程;功能是完成從Agreementt的一個元組到Business的一個元組的轉(zhuǎn)化工作。這里考慮到了刪除空的Suppiy和OfferTOBUY項,更加重要的是,這里考慮到了非法的Agreement的情況,在一段時間后,由于供應(yīng)商或者顧客修改數(shù)據(jù),Agreement可能就非法,這時就需要把這個事務(wù)廢除,所以,這里檢查了Supply表和OfferToBuy表中的數(shù)據(jù),確保數(shù)據(jù)仍然正確。另外交易員,或者說交易所必須承擔(dān)的一項任務(wù)是更新零件列表。這里在考慮顧客和供應(yīng)商的時候÷并沒有給予他們修改零件列表的權(quán)利,所以他們必須根據(jù)數(shù)據(jù)庫中已有的項更新自己的供求信息。由于這個數(shù)據(jù)庫實際上更加偏重于模型化,而不是一個實際環(huán)境中的數(shù)據(jù)庫,所以在實現(xiàn)應(yīng)用模型的時候我們還需要對這個數(shù)據(jù)庫的模型作一些修改。由于本實驗在模型設(shè)計上使用了MicrosoftTransact-SQL的語法,因此以上的數(shù)據(jù)庫操作都是在SQLSERVER2000上測試通過的。[實驗數(shù)據(jù)示例:測試階段](1.實驗方案設(shè)計2.測試,查找錯誤校正錯誤,檢查是否符合用戶的功能性能要求)1.實驗方案設(shè)計(1)輸入數(shù)據(jù)設(shè)計:1)插入零件信息;insertintoPart(Color,Name,Weight,Intro)values('black','stick','30','ofsteel');顯示剛插人的零件id:selectidfromPartwherename='stick';id----1(1row(s)affected)(不同的實驗,id值可能不同。以后相應(yīng)操作要保持前后一致就可以丁。)2)插入供應(yīng)商信息:insertintoProvider(Name,password,Address,Tel,Intro)values('coml','1234','北京',6543210,'nothing');顯示剛插入的供應(yīng)商id:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論