sql數(shù)據(jù)庫(kù)實(shí)例零件銷售中心管理系統(tǒng)_第1頁(yè)
sql數(shù)據(jù)庫(kù)實(shí)例零件銷售中心管理系統(tǒng)_第2頁(yè)
sql數(shù)據(jù)庫(kù)實(shí)例零件銷售中心管理系統(tǒng)_第3頁(yè)
sql數(shù)據(jù)庫(kù)實(shí)例零件銷售中心管理系統(tǒng)_第4頁(yè)
sql數(shù)據(jù)庫(kù)實(shí)例零件銷售中心管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 重慶工商大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)書2004.1 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)sql server2000 課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)a1 綜合實(shí)驗(yàn)本課程的教學(xué)實(shí)驗(yàn)分為兩部分:第一部分是按照實(shí)驗(yàn)指導(dǎo)書所要求的實(shí)驗(yàn)在計(jì)算機(jī)2 上完成;第二部分是作完上述實(shí)驗(yàn)后按照本課程設(shè)計(jì)教學(xué)實(shí)驗(yàn)指導(dǎo)書做的一個(gè)綜合性實(shí)驗(yàn)。通過(guò)教學(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)。如果覺(jué)得有參考答案可能會(huì)束縛自己的思維,也可選作第二或第三個(gè)實(shí)驗(yàn)課題??傊?,因

2、時(shí)間關(guān)系, 只要求每個(gè)讀者任選一個(gè)課題。若有時(shí)間,有興趣,可考慮另外兩個(gè)課題,也會(huì)有所收益a11 實(shí)驗(yàn)一零件交易中心管理系統(tǒng)(實(shí)驗(yàn)?zāi)康?通過(guò)完成從用戶需求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過(guò)程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容。(實(shí)驗(yàn)簡(jiǎn)述 ) 零件交易中心管理系統(tǒng)主要提供顧客和供應(yīng)商之間完成零件交易的功能,其中包括3 供應(yīng)商信息、顧客信息以及零件信息。供應(yīng)商信息包括供應(yīng)商號(hào)、供應(yīng)商名、地址、電話、簡(jiǎn)介;顧客信息包括顧客號(hào),顧客名、地址、電話;零件信息包括零件號(hào)、零件名、重量、顏色、簡(jiǎn)介等。此系統(tǒng)可以讓供應(yīng)商增加、刪除和修改所提供的零件產(chǎn)品,還可以讓顧客增加、刪除和修改所需求的零件。交

3、易員可以利用顧客提出的需求信息和供應(yīng)商提出的供應(yīng)信息來(lái)提出交易的建議,由供應(yīng)商和顧客進(jìn)行確認(rèn)后即完成這筆交易。(實(shí)驗(yàn)要求 ) 完成該系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì):用 sql 實(shí)現(xiàn)數(shù)據(jù)庫(kù)的設(shè)計(jì),并在sqlserver上調(diào)試通過(guò)a12 實(shí)驗(yàn)三民航售票系統(tǒng)(實(shí)驗(yàn)?zāi)康?) 通過(guò)完成從用戶需求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過(guò)程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容。4 (實(shí)驗(yàn)簡(jiǎn)述 民航訂票系統(tǒng)主要分為機(jī)場(chǎng)、航空公司和客戶三方的服務(wù)。航空公司提供航線和飛機(jī)的資料,機(jī)場(chǎng)則對(duì)在本機(jī)場(chǎng)起飛和降落的航班和機(jī)票進(jìn)行管理,而客戶能得到的服務(wù)應(yīng)該有航班線路和剩余票數(shù)的查詢,以及網(wǎng)上訂票等功能??蛻粲挚梢苑譃閮深?,一類是普

4、通客戶,對(duì)于普通客戶只有普通的查詢功能和訂票功能,沒(méi)有相應(yīng)的機(jī)票優(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ù)庫(kù)設(shè)計(jì);用 sql 、實(shí)現(xiàn)數(shù)據(jù)庫(kù)的設(shè)計(jì),并在sqlservcr 上調(diào)試通過(guò)。a13 實(shí)驗(yàn)二圖書管理系統(tǒng)( 實(shí)驗(yàn)?zāi)康?) 通過(guò)完成從用戶需求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過(guò)程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容 實(shí)驗(yàn)簡(jiǎn)述 5 一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)包括圖書館內(nèi)書籍的信息、學(xué)校在校學(xué)生的信息以及學(xué)生的借閱信息。此系統(tǒng)功能分為面向?qū)W生和面向管理員兩部分,其中

5、學(xué)生可以進(jìn)行借閱、續(xù)借、歸還和查詢書籍等操作,管理員可以完成書籍和學(xué)生的增加,刪除和修改以及對(duì)學(xué)生,借閱、續(xù)借、歸還的確認(rèn) 實(shí)驗(yàn)要求 完成該系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì);用 sql實(shí)現(xiàn)數(shù)據(jù)庫(kù)的設(shè)計(jì),并在sq sqlserver上調(diào)試通過(guò)a2 零件交易中心管理系統(tǒng)實(shí)驗(yàn)報(bào)告( 參考答案 ) ( 實(shí)驗(yàn)?zāi)康?) 通過(guò)完成從用戶需求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過(guò)程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容。( 實(shí)驗(yàn)簡(jiǎn)述 ) 零件交易中心管理系統(tǒng)主要提供顧客和供應(yīng)商之間完成零件交易的功能,其中包括供應(yīng)商信息、顧客信息以及零件信6 息。此系統(tǒng)可以讓供應(yīng)商增加、刪除和修改所提供的零件產(chǎn)品,還可以讓顧客增加、刪除和

6、修改所需求的零件。交易員可以利用顧客提出的需求信息和供應(yīng)商提出的供應(yīng)信息來(lái)提出交易的建議,由供應(yīng)商和顧客進(jìn)行確認(rèn)后即完成這筆交易。 課程設(shè)計(jì)全過(guò)程 1 需求分析:(實(shí)際詳細(xì)調(diào)查)2 數(shù)據(jù)庫(kù)設(shè)計(jì): (sql server 2000 設(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ì)象、功能、性能等需求)7 l 供應(yīng)商供應(yīng)商的操作流程圖如圖a1所示。圖 a1 供應(yīng)商操作分類

7、表2顧客顧客的地位和供應(yīng)商幾乎是對(duì)稱的,所以功能分類上也很相似顧客的操作流程圖如圖a2示所。圖 a2 顧增加供應(yīng)項(xiàng)修改供應(yīng)項(xiàng)刪除供應(yīng)項(xiàng)修改個(gè)人信息供應(yīng)項(xiàng)注冊(cè)注銷增加需求項(xiàng)修改需求項(xiàng)刪除需求項(xiàng)修改個(gè)人信息顧客注冊(cè)注銷8 客操作分類表 3 交易員交易員的工作就是提出交易和完成交易。這里需要仔細(xì)考慮的問(wèn)題是:一個(gè)交易如何產(chǎn)生,并如何達(dá)成,可以用圖 a3來(lái)說(shuō)明這個(gè)問(wèn)題我們?cè)谔幚斫灰椎臅r(shí)候可能面臨如下問(wèn)題:(1) 一個(gè)交易只能在交易雙方都同意的情況下才可以進(jìn)行,所以數(shù)據(jù)庫(kù)中的供求信息只能作為達(dá)成某個(gè)交易的基礎(chǔ);(2) 交易的雙方可能不同時(shí)使用這個(gè)系統(tǒng),因此需要系統(tǒng)提供一個(gè)雙方交換信息的方式;(3) 系統(tǒng)

8、需要提供一種方便系統(tǒng)( 交易員 ) 向用戶提出建議來(lái)促成交易的途徑,并在保證數(shù)據(jù)庫(kù)數(shù)據(jù)完整性的情況下達(dá)成交易。交易員協(xié)議書草案供應(yīng)商以及顧客簽字正式簽字交易員簽發(fā)完成交易供應(yīng)商提出交易顧客提出交易申請(qǐng)交易員提出交易建議9 圖 a3 交易員操作圖 概念模型設(shè)計(jì) (從實(shí)踐概括抽象出理論模型e/r)數(shù)據(jù)庫(kù)需要表述的信息有以下幾種: (1)零件信息 (2)供應(yīng)商信息 (3)顧客信息(4) 供應(yīng)商 集和零件 集之間的聯(lián)系 ( 供應(yīng))m : 零件顏色零件號(hào)零件名重量簡(jiǎn)介供應(yīng)商名供應(yīng)商供應(yīng)商號(hào)地址電話簡(jiǎn)介供應(yīng)數(shù)量?jī)r(jià)格10 圖 a4 供應(yīng)商和零件之間的聯(lián)系( 供應(yīng)) e/r 模型(5) 顧客集和零件 集之間的

9、聯(lián)系 (求購(gòu))m : n 零件顏色零件號(hào)零件名重量簡(jiǎn)介顧客電話顧客號(hào)顧客名地址求購(gòu)數(shù)量?jī)r(jià)格11 圖 a5 顧客和零件之間的聯(lián)系 ( 求購(gòu)) e/r 模型(6) 交易( 三元聯(lián)系 ) 可以用 e/r 模型表述該模型的設(shè)計(jì), e/r圖如圖 a7所示。圖 a7 全局 e/r 模型供應(yīng)商交易價(jià)格數(shù)量求購(gòu)數(shù)量?jī)r(jià)格供應(yīng)商號(hào)供應(yīng)商名地址電話簡(jiǎn)介供應(yīng)數(shù)量?jī)r(jià)格零件顏色零件號(hào)零件名重量簡(jiǎn)介顧客電話顧客號(hào)顧客名地址12 邏輯設(shè)計(jì) ( 從理論e/r模型到理論關(guān)系模型 的整理轉(zhuǎn)換 ) 通過(guò) e/r 模型到關(guān)系模型的轉(zhuǎn)化,可以得到如下關(guān)系模式:(1) 零件實(shí)體集轉(zhuǎn)換為關(guān)系:part( id,color ,name ,we

10、ight,intro) (2) 供應(yīng)商實(shí)體集轉(zhuǎn)換為關(guān)系provider( id,name ,addtess,tel ,intro) (3) 顧客實(shí)體集轉(zhuǎn)換為關(guān)系customer(id,name ,addtess,tel) (4) 供應(yīng)聯(lián)系 轉(zhuǎn)換為關(guān)系supply( partld ,providerld ,price ,quantity) (5) 求購(gòu) 聯(lián)系 轉(zhuǎn)換為關(guān)系offertobuy( customerld,partid ,price ,quantity) (6) 交易 聯(lián) 系轉(zhuǎn)換 為關(guān) 系business( customerld,providerld ,partid ,price ,qu

11、antity) 13 每個(gè)關(guān)系模式的 主鍵碼都用下劃線 標(biāo)出。同時(shí), 對(duì)于從聯(lián)系導(dǎo)出的關(guān)系supply( 供應(yīng) ) ,offertobuy( 求購(gòu))和 business( 交易) ,使用與之相聯(lián)系的實(shí)體集的主健碼作為自己的鍵碼,必須符合外鍵碼約束 。對(duì) 于customer( 顧 客 ) , provider(供 應(yīng) 商 ) 和part( 零件) 之間,不存在直接的約束,所以可以存在沒(méi)有供應(yīng)商供應(yīng)同時(shí)也沒(méi)有顧客求購(gòu)的零件。 物理設(shè)計(jì) (從理論關(guān)系模型到實(shí)現(xiàn)實(shí)施數(shù)據(jù)庫(kù)建立)(物理文件的安排和建立索引) 1 為了提高在表中搜索元組的速度,在實(shí)際實(shí)現(xiàn)的時(shí)候應(yīng)該基于鍵碼建立索引是各表中建立索引的表項(xiàng):

12、(1)part(id) (2)provider(id) (3)customer(id) 14 (4)supply(partid,providerid (5)offertobuy(customerid,partid) (6)business(customerld,providerid ,partid) 2 用 sql實(shí)現(xiàn)設(shè)計(jì) 實(shí) 現(xiàn) 該 設(shè) 計(jì) 的 環(huán) 境 為windows 2000 perfessinal+mssqlserver 2000.0 1建立 part 表create table part ( id smallint identity(1,1) primary key clustere

13、d, color varchar(20), name varchar(20) not null, weight int default 0, intro text) 2建立 provider表 create table provider( idsmallint identity(1,1) primary key clustered, name varchar(20) not null, passwordvarchar(8) not null, 15 address varchar(30), tel varchar(20), intro text) 3建立 customer 表create ta

14、ble 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_supply primary key clustered(partid,providerid), constraint fk

15、_supply_partid foreign key(partid) references part(id), 16 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

16、,partid), constraint fk_offertobuy_customerid foreign key(customerid) references customer(id), constraint fk_offertobuy foreign key(partid) references part(id) 6建立 business 表17 create table business( customerid smallint, providerid smallint, partid smallint, price int, quantity int, constraint pk_bu

17、siness primary key clustered(cuscomerid,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) r18 eferences part(id) 7

18、供應(yīng)商操作(1) 注冊(cè)(register) insert into provider(name , password,address,tei,intro) values(#name, #password, #address ,#tel ,#intro) 在登記操作后,供應(yīng)商得到一個(gè)唯一的id,可以根據(jù)這個(gè) id 采查詢和修改供應(yīng)商的數(shù)據(jù)。(2) 注銷(unregister) delete provider where(id=#id);(3) 修改個(gè)人館息 (update) update provider set(name=#name,address=#address , tel=#tel,in

19、tro=#intro) where(id #id) ;(4) 增加供應(yīng)項(xiàng) (add_supply_item) insert into supply(partid, providerid,price ,quantity) values(#partid, #provderld, #price;#quantily);19 (5) 刪除供應(yīng)項(xiàng) (delete_supply_item) delete supply where(partld=#partid and provideid=#providerld);(6) 修改供應(yīng)項(xiàng) (update_supply_item) updatesupplyset(p

20、rice=#price,quantity=#quantity) where(partld=#partid and providerid=#providerid)很明顯,系統(tǒng)并沒(méi)有提供面向供應(yīng)商修改零件信息的接口,所以供應(yīng)商提供的零件必須已經(jīng)在零件表中存在;可以這祥假設(shè),交易所的管理員負(fù)責(zé)更新零件信息,而供應(yīng)商可以向交易所申請(qǐng)?jiān)黾幽撤N零件的信息事實(shí)上顧客也可以提出這樣的要求。8顧客操作 (1)注冊(cè)(register) insert into customer(name ,address,tel) values(#name,#address,#tel) ;在登記操作后,顧客得到一個(gè)唯一的id,可以

21、根據(jù)這個(gè) id 來(lái)查詢和修改顧客的數(shù)據(jù)(2) 注銷(unregister) delete customer 20 whereid=#id);(3) 修改個(gè)人信息 (update) update customer set(name=#name,address=#address,tel=#tel) where(1d=#id);(4) 增加需求項(xiàng) (add_offertobuy_item) insert into offertobuy(partid,customerid,price ,quantity) values(#partid,#customerid,#price,#quantity) (5)

22、 刪除需求項(xiàng) (delete_offertobuy_iterm) delete offertobuy where(partld=#partld and customerld=#customerid) ;(6) 修改需求項(xiàng) ( 叩 date_offertobuy_item) update offertobuy set(price=#price,quantity=#quantity where(partld=#partid and customerid=#customerid) 9 交易員針對(duì)需求分析中提出的問(wèn)題,我們提出了?協(xié)議書?的解決方案,方案的說(shuō)明如下:21 (1)每個(gè)交易在達(dá)成以前都作為

23、協(xié)議書保存在數(shù)據(jù)庫(kù)中,協(xié)議書具有和交易一樣的完備信息,可以在條件成熟的情況下轉(zhuǎn)為一個(gè)達(dá)成的交易; (2)協(xié)議書只有在供應(yīng)商和顧客都簽字的情況下才有效;有效的協(xié)議書由交易員簽發(fā),協(xié)議書一經(jīng)簽發(fā),就生效,表明一個(gè)交易的達(dá)成,數(shù)據(jù)庫(kù)中的數(shù)據(jù)將同時(shí)予以修改; (3)協(xié)議書可以由供應(yīng)商、 顧客或者交易員中的任意一個(gè)人提出申請(qǐng)。當(dāng)協(xié)議書在雙方?jīng)]有都簽字前,協(xié)議的雙方或者交易員都可以刪除這個(gè)協(xié)議書;但是,當(dāng)協(xié)議書簽字完畢后,協(xié)議書就不得刪除( 修改) ,只能由交易員進(jìn)行處理; (4)協(xié)議書有可能在轉(zhuǎn)成交易的過(guò)程中失敗,因?yàn)樵诮灰走_(dá)成以前,數(shù)據(jù)庫(kù)中的數(shù)據(jù)有可能因?yàn)槠渌灰锥兓?,一個(gè)協(xié)議書可能失效,這是允許的

24、。根據(jù)以上分析,對(duì)數(shù)據(jù)庫(kù)的模型作一些修改,增加協(xié)議書表,其關(guān)系模式如下:agreement(customerld ,providerid ,partid ,price ,quantity ,customersign,providersign) 對(duì)應(yīng)的 sql描述為:create table agreement( 22 customerm smallint, providerld smallint, partld smallint,price int, quantity int,customersign int,providersign int ,constraint pk_agreement

25、primary key clustered(customerid,providerid ,partid) ,constraint fk_agreement_customerid foreign key(customerid) references customer(id) ,constraint fk_ agreement_provlderid foreign key(providerid) references provider(id),constraint fk_agreement_partid foreign key(partid) 23 eferences part(id) 與上述其他

26、操作相比,對(duì)交易的操作對(duì)數(shù)據(jù)完整性要求比較高,其中需要注意的地方是;要防止同一用戶 ( 供應(yīng)商,顧客 ) 的數(shù)據(jù)因兩個(gè)交易而同時(shí)修改;需要同時(shí)對(duì)供應(yīng)數(shù)據(jù)庫(kù)(supply) 、需求數(shù)據(jù)庫(kù)(offertobuy) 、交易數(shù)據(jù)庫(kù) (business) 和協(xié)議數(shù)據(jù)庫(kù) (agreement) 作出修改,而且需要保持這些修改的原子性;很 顯 然 , 這 些 要 求 正 是 對(duì) 于 一 個(gè) 事 務(wù)(transaction)的要求,所以可以用一個(gè)事務(wù)來(lái)完成簽發(fā)一個(gè)協(xié)議的操作。事務(wù)的描述如下:create proc pass_agreement providerid int,customerid int , p

27、artld int as declare transname varchar(20) 24 select transname=pass_agreement begin transaction transname declare price int ,quantity int select price=price,quantity=quantity from agreement where prividerid=providerid and customerid=customerid and panid=partid 1nsert into business(providerid,custome

28、rid,partid ,price ,quantity) values(providerid,customerid ,partid,price,quantity) update supply set quantity=quantity-quantity where providerid=prividerid and partid=partid if (select quantity from supply 25 where proiderid=provider and partid=partid)0 rollback transactlon transname delete from supp

29、ly where quantity=0 update offertobuy set quantity=quanttity-quantity where customerid=customerid and partld=partid if(select quandtity from offertobuy where customerid=customerid and partid=partld)0 rollback transaction transname delete from offertobuy where quantity=0 commit transaction transname

30、為了使用方便 , 這里定義了一個(gè)存貯過(guò)程; 功能是完成從 agreementt 的一個(gè)元組到business 的一個(gè)元組的轉(zhuǎn)化工作。這里考慮到了刪除空的suppiy 和26 offertobuy項(xiàng),更加重要的是,這里考慮到了非法的agreement的情況,在一段時(shí)間后, 由于供應(yīng)商或者顧客修改數(shù)據(jù),agreement 可能就非法,這時(shí)就需要把這個(gè) 事 務(wù) 廢 除 , 所 以 , 這 里 檢 查 了supply表 和offertobuy 表中的數(shù)據(jù),確保數(shù)據(jù)仍然正確。另外交易員,或者說(shuō)交易所必須承擔(dān)的一項(xiàng)任務(wù)是更新零件列表。這里在考慮顧客和供應(yīng)商的時(shí)候并沒(méi)有給予他們修改零件列表的權(quán)利,所以他們必

31、須根據(jù)數(shù)據(jù)庫(kù)中已有的項(xiàng)更新自己的供求信息。由于這個(gè)數(shù)據(jù)庫(kù)實(shí)際上更加偏重于模型化,而不是一個(gè)實(shí)際環(huán)境中的數(shù)據(jù)庫(kù),所以在實(shí)現(xiàn)應(yīng)用模型的時(shí)候我們還需要對(duì)這個(gè)數(shù)據(jù)庫(kù)的模型作一些修改。由 于 本 實(shí) 驗(yàn) 在 模 型 設(shè) 計(jì) 上 使 用 了microsoft transact-sql 的語(yǔ)法,因此以上的數(shù)據(jù)庫(kù)操作都是在sqlserver2000上測(cè)試通過(guò)的。 實(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ì):27 1)插入零件信息; insert into part(color,name ,weight,int

32、ro) values(black, stick, 30, of steel);顯示剛插人的零件id : select id from part where name=stick; id - 1 (1 row(s) affected) (不同的實(shí)驗(yàn), id 值可能不同。以后相應(yīng)操作要保持前后一致就可以丁。) 2)插入供應(yīng)商信息: insert into provider(name ,password,address,tel ,intro) values(coml,1234 , 北京 ,6543210,nothing);顯示剛插入的供應(yīng)商id : select id from provider w

33、here 28 name=coml ; id - - - 1 (1 row(s) affected) 3)插入顧客信息: insert into customer(name,address,tel) values(cusl, 北京 ,6666666) 顯示剛插入的顧客id : select id from customer where name id - - - 1 (1 row(s)affected) 4)插入供應(yīng)商供應(yīng)信息: insert into supply(partid,providerld ,price ,quantity) values(1,1,20,100);5)插入顧客需求信

34、息: insert into offertobuy(partld,customerid,priee ,quantity) values(1,1,20,50);29 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í)行交易操作設(shè)計(jì) : 1) 執(zhí)行交易存儲(chǔ)過(guò)程pass_agreement,參數(shù)為:1,1,1:pass_agreement 1,1,1; (后面的三個(gè)參數(shù)分別對(duì)應(yīng)前面選擇

35、出的供應(yīng)商id、顧客 id 和零件 id。) 2)結(jié)果:顯示交易后供應(yīng)信息和需求信息: select quantity from supply where partld 1 and providerld=1; quantity - - - - 70 (1 row(s) affected) select quantity from offertobuy where 30 partld=l and customerid; quantity - 20 (1 row(s) affected) 3)分析結(jié)果 :首先,保存在 supply 表中 1d為 1 的零件供應(yīng)量為 100( 參見(jiàn)supply 表的

36、insert語(yǔ)句 ) ,保存在offertobuy表中 id 為 1 的零件需求量為50( 參見(jiàn)offertobuy 表的 insert語(yǔ)句)。在 agreement 表中指出 id 為 1 的供應(yīng)商和 id 為 1 的顧客要交易 30 個(gè) id為 1 的零件。當(dāng)執(zhí)行存儲(chǔ)過(guò)程pass_agreement之后,supply 和 offertobuy 表中相應(yīng)的數(shù)量都減少了30,交易成功。4)再次執(zhí)行交易操作:delete from business;附錄:交易系統(tǒng)的另一種sql語(yǔ)言(數(shù)據(jù)表建立 ): /* microsoft sql server - scripting */ /* server

37、: 7523teacher */ 31 /* database: 商品交易系統(tǒng)*/ /* creation date 02-10-18 9:46:43 */ create table dbo.customer ( id smallint identity (1, 1) not null , name varchar (20) not null , address varchar (30) null , intro text null ) go alter table dbo.customer with nocheck add constraint pk_customer primary key

38、 clustered ( id ) on primary go create table dbo.part ( id smallint identity (1, 1) not null , 32 color varchar (20) null , name varchar (20) not null , weight int null , intro text null ) go alter table dbo.part with nocheck add constraint pk_part primary key clustered ( id ) on primary go create t

39、able vider ( id smallint identity (1, 1) not null , name varchar (20) not null , password varchar (8) not null , address varchar (30) null , tel varchar (20) null , intro text null ) 33 go alter table vider with nocheck add constraint pk_provider primary key clustered ( id ) on primary

40、 go create table dbo.supply ( partid smallint not null , providerid smallint not null , price smallint null , quantity int null ) go create table dbo.bussiness ( customerid smallint not null , partid smallint not null , providerid smallint not null , price smallint null , quantity int null ) 34 go c

41、reate table dbo.offertobuy ( customerid smallint not null , partid smallint not null , price smallint null , quantity int null ) alter table dbo.bussiness with nocheck add constraint pk_bussiness primary key clustered ( customerid, partid, providerid ) on primary go alter table dbo.offertobuy with nocheck add constraint pk_offertobuy 35 primary key clustered ( customerid, partid ) on primary go alter table dbo.supply with nocheck add constraint pk_supply primary key clustered ( partid, providerid ) on primary go alter table dbo.bussiness add constraint fk_bussiness_cust

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論