存儲(chǔ)過(guò)程與觸發(fā)器實(shí)驗(yàn)_第1頁(yè)
存儲(chǔ)過(guò)程與觸發(fā)器實(shí)驗(yàn)_第2頁(yè)
存儲(chǔ)過(guò)程與觸發(fā)器實(shí)驗(yàn)_第3頁(yè)
存儲(chǔ)過(guò)程與觸發(fā)器實(shí)驗(yàn)_第4頁(yè)
存儲(chǔ)過(guò)程與觸發(fā)器實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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、北京郵電大學(xué)實(shí)驗(yàn)報(bào)告課程名稱數(shù)據(jù)庫(kù)系統(tǒng)概念實(shí)驗(yàn)名稱實(shí)驗(yàn)10存儲(chǔ)過(guò)程與觸發(fā)器實(shí)驗(yàn)系班姓名系班姓名教師 成績(jī)2011年5月30日實(shí)驗(yàn)?zāi)康? .理解存儲(chǔ)過(guò)程的工作原理和作用。掌握存儲(chǔ)過(guò)程設(shè)置和程序設(shè)計(jì)過(guò)程。理解觸發(fā)器的工作原理和作用。掌握觸發(fā)器編寫(xiě)方法。實(shí)驗(yàn)環(huán)境采用IBM DB2或Sybase數(shù)據(jù)庫(kù)管理系統(tǒng)作為實(shí)驗(yàn)平臺(tái)。其中,DB2可以采用DB2 Express-C 或 DB2 V8 Enterprise。Sybase 數(shù)據(jù)庫(kù)可以采用 Sybase SQL Anywhere StudioC SAS) 或 Sybase Adaptive Server Enterprise (ASE)。實(shí)驗(yàn)內(nèi)容一、存儲(chǔ)

2、過(guò)程實(shí)驗(yàn)針對(duì)下面2個(gè)完整性約束條件,建立存儲(chǔ)過(guò)程,實(shí)現(xiàn)當(dāng)數(shù)據(jù)導(dǎo)入或更新時(shí),可以自動(dòng)修改擁塞率、半速率話務(wù)量比例擁塞率 = 擁塞數(shù)量/呼叫數(shù)量半速率話務(wù)量比例= 半速率話務(wù)量/全速率話務(wù)量2.將存儲(chǔ)過(guò)程添加到數(shù)據(jù)庫(kù)服務(wù)器上在客戶端編寫(xiě)調(diào)用存儲(chǔ)過(guò)程的主程序例如,在插入一條數(shù)據(jù)的時(shí)候,調(diào)用存儲(chǔ)過(guò)程的程序?yàn)?SOL Statementsi nsert into HuaJAuvalues (1IJLILI. 90000, 28000, 23, 77. 7T, 7, 7)execute aidResultsExecLjtion time: U .111 seco nds2 recordfs) insert

3、ed運(yùn)行客戶端程序,調(diào)用存儲(chǔ)過(guò)程,觀察存儲(chǔ)過(guò)程執(zhí)行過(guò)程和數(shù)據(jù)更新情況;單獨(dú)插入一條數(shù)據(jù):數(shù)據(jù)情況為:運(yùn)行asd這個(gè)存儲(chǔ)過(guò)程后的數(shù)據(jù)情況為:Execute asd、觸發(fā)器實(shí)驗(yàn)1.針對(duì)下列約束條件,分別建立1個(gè)觸發(fā)器:1)每個(gè)小區(qū)/扇區(qū)最多占用14個(gè)TCH頻點(diǎn),合法頻點(diǎn)范圍在1,60之間。當(dāng)向小區(qū)中新加 入頻點(diǎn)時(shí),如果小區(qū)中現(xiàn)有頻點(diǎn)數(shù)目已達(dá)到14個(gè),則用新加入的頻點(diǎn)替換現(xiàn)有頻點(diǎn)中的最 小頻點(diǎn);當(dāng)修改或新加入頻點(diǎn)時(shí),如果發(fā)現(xiàn)頻點(diǎn)不在合法范圍內(nèi),則輸出提示信息,并拒 絕該操作。create trigger Pin_Dian_to_CELLonPin_Dianforinsert,update asif

4、exists(selectinserted.CelllDfrominserted,Pin_Dian,( select Pin_Dian.CellID,count(distinct Freq) as Freq_numberfromPin_Dian,CELLwherePin_Dian.CellID = CELL.CellIDgroup by Pin_Dian.CellID) asPin_Dian_Count_CellwhereFreq_number 14 )begindelete fromPin_DianwhereFreq=(select min(Pin_Dian.Freq) from Pin_D

5、ian, inserted where Pin_Dian.CellID=inserted.CellID and Pin_Dian.Freq!=inserted.Freq)print A CELL can only manage at most 14 TCH.if exists(selectinserted.Freqfrominserted,Pin_Dian,( select Pin_Dian.Freq as Freq_numberfromPin_Dian,CELLwherePin_Dian.CellID = CELL.CellID group by Pin_Dian.CellID) as Pi

6、n_Dian_Count_CellwhereFreq_number60 or Freq_number1 or Bcch_number90 or Bcch_number270)beginprint A Bcch can only be between 70 and 90.”rollback transactionend每個(gè)小區(qū)與其鄰小區(qū)的BCCH不允許相同。當(dāng)修改某小區(qū)的BCCH頻點(diǎn)值時(shí),如果發(fā)現(xiàn) 修改后與其它鄰區(qū)的BCCH頻點(diǎn)相同,則輸出提示信息,并拒絕該操作。create trigger CELL_to_Lin_Quon CELLfor update asif exists selectCE

7、LL.CelllD fromLin_Qu,inserted,CELL whereinserted.CelllD = Lin_Qu.CEL_CellID andLin_Qu.CellID = CELL.CellID and inserted.Bcch = CELL.Bcch begin print This BCCH is Already Exists,Operation Denied rollback transaction end將觸發(fā)器添加到數(shù)據(jù)庫(kù)服務(wù)器上 3.向數(shù)據(jù)庫(kù)添加新的TCH、BCCH頻點(diǎn)數(shù)據(jù),或修改已有TCH、BCCH頻點(diǎn)數(shù)據(jù),觀察當(dāng)違反上述3條約束時(shí),觸發(fā)器的執(zhí)行情況。1.當(dāng)插

8、入了多于14個(gè)的TCH頻點(diǎn)時(shí),情況如下:2.當(dāng)插入了多于60的頻率的數(shù)據(jù)元組后:在已經(jīng)滿14的情況下成功插入了一個(gè)元組,替換掉了之前的Freq為1的情況:ins er t i nt o F i ri_D i:htl v:dlueE(9152, 10)ResultsCelllDFreq19152492915234391522049152895915217691523679152778915221991522210915223119152241291522513915226149152103.當(dāng)插入一個(gè)BCCH為21的元組時(shí):SQL Statementsinsert intu CELL y:=lL

9、umi(9010/ QVEEEE3/ KF 14119, 121. 9的999199, 40. 8888888. 9. 400, 21)ResultsExecLjfirin tirrie: U.0S5 aecoridsu recordCs;! insertedA CELL can only have at rnost 1 BCCH.4 Bcch can only be between 70 and 904.檢查Bcch的值,并且更新值:SQL Statementsnip la te C ELL set E c ch= S2 vrh ere C ellIIl=yiJ 13尺巳suitsExecu

10、tion time: 0.219 seconds0 record(s) updatedThis BCCH is Already Exists .Operation Deried實(shí)驗(yàn)總結(jié)在最開(kāi)始的時(shí)候,由于理解偏差,雖然在實(shí)驗(yàn)中沒(méi)有碰見(jiàn)什么問(wèn)題, 但是后來(lái)在做進(jìn)一步實(shí)驗(yàn)的時(shí)候,發(fā)現(xiàn)存儲(chǔ)過(guò)程不是像子函數(shù)那么簡(jiǎn) 單,經(jīng)過(guò)資料查證,得知存儲(chǔ)過(guò)程的定義為:存儲(chǔ)過(guò)程(Stored Procedure)是一組為了完成特定功能的SQL語(yǔ)旬 集,是利用SQL Server所提供的Transact-SQL語(yǔ)言所編寫(xiě)的程序。 經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。存儲(chǔ)過(guò)程是數(shù)據(jù)庫(kù)中的一個(gè)重要對(duì)象,用 戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù)) 來(lái)執(zhí)行

溫馨提示

  • 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)論