人力資源SQL系統(tǒng)環(huán)境_第1頁(yè)
人力資源SQL系統(tǒng)環(huán)境_第2頁(yè)
人力資源SQL系統(tǒng)環(huán)境_第3頁(yè)
人力資源SQL系統(tǒng)環(huán)境_第4頁(yè)
人力資源SQL系統(tǒng)環(huán)境_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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、PAGE PAGE 13第8章 SQLL系統(tǒng)環(huán)環(huán)境本章主要要討論數(shù)數(shù)據(jù)庫(kù)的的設(shè)計(jì)步步驟以及及每個(gè)步步驟用到到的方法法。數(shù)據(jù)庫(kù)的的設(shè)計(jì)主主要有四四個(gè)步驟驟:需求求分析、概念設(shè)設(shè)計(jì)、邏邏輯設(shè)計(jì)計(jì)和物理理設(shè)計(jì)。本章的主主要知識(shí)識(shí)點(diǎn)包括括:學(xué)習(xí)要點(diǎn)點(diǎn)1、嵌嵌入式SSQL學(xué)習(xí)要點(diǎn)點(diǎn)2、有有關(guān)事物物的嵌入入式SQQL學(xué)習(xí)要點(diǎn)點(diǎn)3、SSQL環(huán)環(huán)境學(xué)習(xí)要點(diǎn)點(diǎn)4、數(shù)數(shù)據(jù)庫(kù)的的完整性性學(xué)習(xí)要點(diǎn)點(diǎn)5、SSQL中中的安全全和用戶戶權(quán)限學(xué)習(xí)要點(diǎn)點(diǎn)1、嵌嵌入式SSQL1、什么么是嵌入入式SQQL當(dāng)一個(gè)程程序既要要訪問(wèn)數(shù)數(shù)據(jù)庫(kù),又又要處理理數(shù)據(jù)時(shí)時(shí),把SSQL語(yǔ)語(yǔ)言嵌入入程序設(shè)設(shè)計(jì)語(yǔ)言言即宿主主語(yǔ)言中中,將SSQL語(yǔ)語(yǔ)言訪

2、問(wèn)問(wèn)數(shù)據(jù)庫(kù)庫(kù)的功能能和宿主主語(yǔ)言的的數(shù)據(jù)處處理功能能相結(jié)合合,是目目前解決決該問(wèn)題題的最有有效途徑徑。這樣樣使用的的SQLL稱為嵌嵌入式SSQL。2、如何何實(shí)現(xiàn)嵌嵌入式SSQL對(duì)于不同同的DBBMS和和宿主語(yǔ)語(yǔ)言,實(shí)實(shí)現(xiàn)嵌入入式SQQL的方方法基本本相同,只只是在一一些特殊殊的地方方略有差差異。實(shí)實(shí)現(xiàn)嵌入入式SQQL語(yǔ)言言主要是是實(shí)現(xiàn)說(shuō)說(shuō)明部分分的嵌入入和執(zhí)行部部分的嵌嵌入。以SQLL嵌入C語(yǔ)言為為例說(shuō)明明實(shí)現(xiàn)嵌嵌入式SSQL的的方法。說(shuō)明部分分C語(yǔ)言和和SQLL語(yǔ)言之之間是通通過(guò)共享享變量來(lái)來(lái)進(jìn)行數(shù)數(shù)據(jù)的傳傳送。共享變量量是由宿宿主語(yǔ)言言程序定定義、用用SQLL的DECCLARRE語(yǔ)句句說(shuō)明

3、,以以后可在在SQLL語(yǔ)句中中引用的的宿主語(yǔ)語(yǔ)言變量量。共享變量量需用以以“EXEEC SSQL”為前綴綴的說(shuō)明明語(yǔ)句說(shuō)說(shuō)明,在在說(shuō)明語(yǔ)語(yǔ)句的結(jié)結(jié)尾加“;”。在SQLL語(yǔ)句中中引用共共享變量量時(shí),每每個(gè)共享享變量前前要加“:”。在共享變變量中,有有一個(gè)系系統(tǒng)定義義的特殊殊變量,稱稱為SQQLSTTATEE。在每每執(zhí)行一一個(gè)SQQL語(yǔ)句句時(shí),都都要返回回一個(gè)SSQLSSTATTE代碼碼,來(lái)表表示這個(gè)個(gè)SQLL語(yǔ)句是是否執(zhí)行行成功等等情況。當(dāng)SQLLSTAATE為為全零時(shí)時(shí),表示示SQLL語(yǔ)句執(zhí)執(zhí)行成功功;當(dāng)SQLLSTAATE為為“020000”時(shí),表表示SQQL語(yǔ)句句已執(zhí)行行,但未未找到元元組

4、。所有SQQL語(yǔ)句句中用到到的共享享變量,除除系統(tǒng)定定義的(例例如SQQLSTTATEE)以外外,都必必須在宿宿主程序序中進(jìn)行行說(shuō)明。說(shuō)明語(yǔ)語(yǔ)句的開開頭行為為:EXECC SQQL BBEGIIN DDECLLAREE SEECTIION;說(shuō)明語(yǔ)句句的結(jié)束束行為:EXECC SQQL EEND DECCLARRE SSECTTIONN;在一個(gè)說(shuō)說(shuō)明語(yǔ)句句中定義義幾個(gè)共共享變量量,它們們都是按按照C語(yǔ)言的的數(shù)據(jù)類類型和格格式進(jìn)行行定義的的。EXECC SQQL BBEGIIN DDECLLAREE SEECTIION;charr snno66,ssnamme220;int sagge;charr

5、 SQQLSTTATEE6;EXECC SQQL EEND DECCLARRE SSECTTIONN;執(zhí)行部分分插入語(yǔ)句句的格式式為:EXECC SQQL IINSEERTINTOO Sttudeent (SttudeentNNo,StuudenntNaame)VALUUES (:ssno, :ssnamme);修改語(yǔ)句句的格式式為:EXECC SQQL UUPDAATE Stuudennt SET (SttudeentNNamee=:snaame,StuudenntAgge=:sagge)WHERRE SStuddenttNo=:snoo;刪除語(yǔ)句句的格式式為:EXECC SQQL DDEL

6、EETE FROMM SttudeentCCourrseWHERRE SStuddenttNo=(SELLECTT SStuddenttNo FROOM SStuddenttWHERRE SStuddenttNamme=:snaame);查詢語(yǔ)句句:當(dāng)查詢的的結(jié)果只只有一個(gè)個(gè)元組時(shí)時(shí),EXECC SQQL SSELEECT StuudenntNaame,StuudenntDeept INTTO :snaame,:sdeept FRROM StuudenntWHERRE SStuddenttNo=:snoo;當(dāng)查詢的的結(jié)果有有多個(gè)元元組時(shí),需需采用涉涉及到游游標(biāo)的查查詢方法法。3、使用用游標(biāo)的的

7、SQLL編程利用游標(biāo)標(biāo)進(jìn)行查查詢需要要四種語(yǔ)語(yǔ)句:說(shuō)說(shuō)明游標(biāo)標(biāo)語(yǔ)句、打開游游標(biāo)語(yǔ)句句、推進(jìn)進(jìn)語(yǔ)句和和關(guān)閉游游標(biāo)語(yǔ)句句。分析學(xué)生生成績(jī)的的分布情情況。首首先從SStuddenttCouursee中取出出每個(gè)元元組的GGradde;其其次設(shè)置置游標(biāo)sscCuursoor復(fù)蓋蓋這些元元組;然然后打開開游標(biāo),使使之處于于初始位位置;隨隨后,推推進(jìn)游標(biāo)標(biāo),取出出一個(gè)單單分量元元組放入入共享變變量grradee;接著著,確定定該成績(jī)績(jī)屬于哪哪一段,并并在相應(yīng)應(yīng)的統(tǒng)計(jì)計(jì)上加11;不斷斷推進(jìn)游游標(biāo),重重復(fù)上述述統(tǒng)計(jì)過(guò)過(guò)程,直直到元組組全部取取完,再再關(guān)閉游游標(biāo);最最后打印印統(tǒng)計(jì)結(jié)結(jié)果。舉例:假設(shè)分析析學(xué)生成成

8、績(jī)的分分布情況況,把統(tǒng)統(tǒng)計(jì)結(jié)果果劃分為為11段段:09,110119,2202299099,1100。首先從SStuddenttCouursee中取出出每個(gè)元元組的GGradde;其其次設(shè)置置游標(biāo)sscCuursoor復(fù)蓋蓋這些元元組;然然后打開開游標(biāo),使使之處于于初始位位置;隨隨后,推推進(jìn)游標(biāo)標(biāo),取出出一個(gè)單單分量元元組放入入共享變變量grradee;接著著,確定定該成績(jī)績(jī)屬于哪哪一段,并并在相應(yīng)應(yīng)的統(tǒng)計(jì)計(jì)上加11;不斷斷推進(jìn)游游標(biāo),重重復(fù)上述述統(tǒng)計(jì)過(guò)過(guò)程,直直到元組組全部取取完,再再關(guān)閉游游標(biāo);最最后打印印統(tǒng)計(jì)結(jié)結(jié)果。程序如下下:#deffinee NOO-TUUPLEE !(strrcm

9、pp(SQQLSTTATEE,0020000)voidd grradeeSecctioon() int i,ssecttionn,coountt111;EXECC SQQL BBEGIIN DDECLLAREE SEECTIION;int graade;charr SQQLSTTATEE6;EXECC SQQL EEND DECCLARRE SSECTTIONN;EXECC SQQL DDECLLAREE sccCurrsorr CUURSOOR FFORSELEECT Graade FROOM SSC;EXECC SQQL OOPENN sccCurrsorr;for(i=00;i11;i+

10、) ccounntii=00;whille(11)EXECC SQQL FFETCCH FFROMM sccCurrsorr IINTOO:grradee;if (NO-TUPPLE) brreakk;secttionn=grradee/100;counntssecttionn+;EXECC SQQL CCLOSSE sscCuursoor;for(i=00;i11;i+)couttSecctioon=ii+1 nuumbeer=ccounntiinn;學(xué)習(xí)要點(diǎn)點(diǎn)2、有有關(guān)事物物的嵌入入式SQQL在集中選選課的時(shí)時(shí)間里,學(xué)學(xué)生可以以在能連連接到數(shù)數(shù)據(jù)庫(kù)上上的成百百上千臺(tái)臺(tái)計(jì)算機(jī)機(jī)上同時(shí)時(shí)對(duì)一個(gè)

11、個(gè)數(shù)據(jù)庫(kù)庫(kù)進(jìn)行操操作。在在同一時(shí)時(shí)間里,數(shù)數(shù)據(jù)庫(kù)中中完全有有可能存存在相互互影響的的兩個(gè)或或者更多多的操作作。如果果對(duì)這些些操作的的順序沒(méi)沒(méi)有限制制,那么么它們之之間的相相互影響響就有可可能產(chǎn)生生錯(cuò)誤。1、事務(wù)務(wù)假定某門門課的選選課余額額為1,這時(shí)時(shí),同時(shí)時(shí)有兩名名學(xué)生進(jìn)進(jìn)行了上上面的查查詢。結(jié)結(jié)果兩名名學(xué)生都都選上了了這門課課,并分分別把選選課余額額由1修改為為0。把一一個(gè)選課課的名額額送給兩兩個(gè)學(xué)生生顯然是是不妥當(dāng)當(dāng)?shù)?。解決這個(gè)個(gè)問(wèn)題的的方式就就是當(dāng)一一個(gè)函數(shù)數(shù)正在執(zhí)執(zhí)行的時(shí)時(shí)候,限限制另一一個(gè)函數(shù)數(shù),不能能讓它也也執(zhí)行。這種方方式執(zhí)行行的兩個(gè)個(gè)函數(shù)是是串行的的。SQQL中的的機(jī)制就就是使

12、兩兩個(gè)函數(shù)數(shù)的執(zhí)行行實(shí)現(xiàn)串串行化。EXECC SQQL BBEGIIN DDECLLAREE SEECTIION;int cNoo;charr cNNamee200; int nLeeft;EXECC SQQL EEND DECCLARRE SSECTTIONN;voidd ChhoosseCooursse()coutt cNoo;EXECC SQQL SSELEECT nummLefft INTOO :nnLefft FFROMM CooursseWHERRE ccourrseNNo=:cNoo;if(nnLefft00)EXECC SQQL UUPDAATE CouurseeSET num

13、mLefft=nnumLLeftt-1WHERRE ccourrseNNo=:cNoo;coutt “你你已經(jīng)選選定了這這門課。”; EXECC SQQL CCOMMMIT; elsee couut accct1 aacctt2 ammounnt;EXECC SQQL SSELEECT b IINTOO :bb1FROMM AcccouuntssWHERRE aaccttNo=:accct11;if(bb1=acccounnt)EXECC SQQL UUPDAATE AcccounntsSET b=bb-:aamouunt20)WWHERRE aaccttNo=:accct11;EXECC S

14、QQL UUPDAATE AcccounntsSET b=bb+:aamouuntWHERRE aaccttNo=:accct22; EXECC SQQL CCOMMMIT; elsee coutt ” 沒(méi)有足足夠結(jié)余余“; EXECC SQQL RROLLLBACCK;我們假定定在程序序執(zhí)行完完20)行行的時(shí)候候發(fā)生了了故障。我們只只知道這這時(shí)數(shù)據(jù)據(jù)庫(kù)的狀狀態(tài):在在第一個(gè)個(gè)帳戶中中,已經(jīng)經(jīng)扣除了了要轉(zhuǎn)的的這筆金金額,而而這筆金金額并沒(méi)沒(méi)有加到到第二個(gè)個(gè)帳戶中中去。用用戶在這這個(gè)過(guò)程程中損失失掉了這這筆錢。數(shù)據(jù)庫(kù)操操作的某某些組合合需要以以原子的的方式完完成,也也就是說(shuō)說(shuō),它們們或者都都做,或

15、或者都不不做。一個(gè)通常常的解決決方式是是讓對(duì)數(shù)數(shù)據(jù)庫(kù)的的所有改改變?cè)诒颈镜氐墓すぷ鲄^(qū)完完成,并并且只有有當(dāng)所有有的工作作完成以以后才把把這種改改變提交交給數(shù)據(jù)據(jù)庫(kù)。兩種結(jié)束束事務(wù)的的方法當(dāng)所有操操作都正正確合理理地執(zhí)行行完畢之之后,使使用SQQL語(yǔ)句句COMMMITT來(lái)提交交做過(guò)的的操作。如果事務(wù)務(wù)異常中中止,則則使用SSQL語(yǔ)語(yǔ)句ROOLLBBACKK。學(xué)習(xí)要點(diǎn)點(diǎn)3、SSQL環(huán)環(huán)境1、數(shù)據(jù)據(jù)庫(kù)元素素的層次次結(jié)構(gòu)通常可以以把運(yùn)行行在某個(gè)個(gè)設(shè)備上上的數(shù)據(jù)據(jù)庫(kù)管理理系統(tǒng)看看作是SSQL的的環(huán)境。我們討討論過(guò)的的數(shù)據(jù)庫(kù)庫(kù)元素,比比如基本本表、視視圖,都都是在SSQL環(huán)環(huán)境中定定義的。這些元元素組成成

16、了層次次結(jié)構(gòu)。(圖見881.pptt)模式(SScheema):是指數(shù)數(shù)據(jù)庫(kù)模模式,而而不是關(guān)關(guān)系模式式,是表表、視圖圖、域等等數(shù)據(jù)庫(kù)庫(kù)元素的的聚集。模式是是整個(gè)體體系結(jié)構(gòu)構(gòu)的基本本單位。一個(gè)模式式,包括括學(xué)生、課程和和學(xué)生選選課等三三個(gè)關(guān)系系以及計(jì)計(jì)算機(jī)系系學(xué)生視視圖,其其說(shuō)明簡(jiǎn)簡(jiǎn)要描述述如下:CREAATE SCHHEMAA SttudeentSScheemaCREAATETABBLE StuudenntCREAATE TABBLE CouurseeCREAATE TABBLE StuudenntCooursseCREAATE VIEEW CCompputeerDeeptSStudd我們要

17、把把學(xué)生模模式作為為當(dāng)前模模式,可可如下設(shè)設(shè)置:SET SCHHEMAA SttudeentSScheema;于是,隨隨后定義義的表、視圖等等模式元元素均屬屬于學(xué)生生模式。目錄(CCataalogg):是模模式的聚聚集,即即每個(gè)目目錄都有有一個(gè)或或多個(gè)模模式。在在一個(gè)目目錄中模模式的名名字必須須是唯一一的。每每個(gè)目錄錄都包含含一個(gè)稱稱為INNFORRMATTIONN-SCCHEMMA(信信息模式式)的特特殊模式式,該模模式包含含該目錄錄中所有有模式的的信息。在目錄中中建立模模式類似似于在模模式中建建立表或或視圖之之類的模模式元素素??梢砸栽O(shè)想用用如下語(yǔ)語(yǔ)句建立立學(xué)生目目錄:CREAATE CA

18、TTALOOG SStuddenttCattaloog后面跟著著屬于學(xué)學(xué)生目錄錄的模式式及模式式的說(shuō)明明??梢杂肧SET CATTALOOG(設(shè)設(shè)置目錄錄)語(yǔ)句句設(shè)置當(dāng)當(dāng)前目錄錄。我們們要把學(xué)學(xué)生目錄錄作為當(dāng)當(dāng)前目錄錄,可如如下設(shè)置置:SET CATTALOOG SStuddenttCattaloog;于是,隨隨后定義義的模式式將屬于于學(xué)生目目錄。群集(CClussterr):是目目錄的聚聚集。每每個(gè)用戶戶都有相相關(guān)的群群集,也也就是該該用戶可可以訪問(wèn)問(wèn)的所有有目錄的的集合。群集是是數(shù)據(jù)庫(kù)庫(kù)可以操操作的最最大范圍圍,因此此,對(duì)于于特定的的用戶,群群集就是是“數(shù)據(jù)庫(kù)庫(kù)”。2、客戶戶程序和和服務(wù)程

19、程序系統(tǒng)統(tǒng)SQL的的客戶程程序和服服務(wù)程序序與連接接、會(huì)話話和模塊塊這三個(gè)個(gè)概念緊緊密地聯(lián)聯(lián)系在一一起。連接是指指把客戶戶程序和和服務(wù)程程序連接接起來(lái)??捎萌缛缦碌腟SQL連連接語(yǔ)句句在客戶戶程序和和服務(wù)程程序之間間打開連連接:CONNNECTT TOO AS 一般把服服務(wù)器名名作為服服務(wù)程序序名。會(huì)話:當(dāng)當(dāng)連接激激活時(shí),所所執(zhí)行的的SQLL操作將將在客戶戶程序和和服務(wù)程程序之間間形成請(qǐng)請(qǐng)求響應(yīng)式式的交往往,我們們稱這種種操作序序列為會(huì)會(huì)話(SSesssionn)。會(huì)話與建建立它的的連接處處于同一一狀態(tài)。模塊:SSQL22標(biāo)準(zhǔn)建建議SQQL實(shí)現(xiàn)現(xiàn)至少為為用戶提提供如下下三種類類型的應(yīng)應(yīng)用程序序

20、(稱為為模塊,Module)之一:通用SQQL接口口嵌入式SSQL實(shí)際模塊塊3、Clliennt/SServver體體系結(jié)構(gòu)構(gòu)Clieent/Serrverr體系結(jié)結(jié)構(gòu)如圖圖所示。(如圖圖822.pppt所示示)客戶機(jī)和和服務(wù)器器的執(zhí)行行過(guò)程如如圖所示示。(如如圖83.pppt所所示)學(xué)習(xí)要點(diǎn)點(diǎn)4、數(shù)數(shù)據(jù)庫(kù)的的完整性性數(shù)據(jù)庫(kù)運(yùn)運(yùn)行時(shí),應(yīng)應(yīng)防止輸輸入或輸輸出不符符合語(yǔ)義義的錯(cuò)誤誤數(shù)據(jù),而而始終保保持其中中數(shù)據(jù)的的正確性性。這就就是通常常所說(shuō)的的數(shù)據(jù)庫(kù)庫(kù)的完整整性(IInteegriity)。1、說(shuō)明明鍵碼約約束數(shù)據(jù)庫(kù)中中最重要要的約束束就是說(shuō)說(shuō)明某個(gè)個(gè)屬性或或?qū)傩约瘶?gòu)成關(guān)關(guān)系的鍵鍵碼。這這意味

21、著著對(duì)于關(guān)關(guān)系的兩兩個(gè)元組組,不允允許在說(shuō)說(shuō)明為鍵鍵碼的屬屬性上一一致,或或者不允允許在共共同構(gòu)成成鍵碼的的屬性集集的所有有屬性上上一致。鍵碼約約束在SSQL的的建表語(yǔ)語(yǔ)句中說(shuō)說(shuō)明。假設(shè)學(xué)生生都不重重名,則則可用姓姓名作為為學(xué)生關(guān)關(guān)系的鍵鍵碼,而而把學(xué)號(hào)號(hào)作為主主鍵碼。建表語(yǔ)語(yǔ)句如下下:CREAATE TABBLE Stuudennt(StuddenttNo INTT PRRIMAARY KEYY,StuddenttNamme CCHARR(300) UUNIQQUE,StuddenttAgee INNT,StuddenttGennderr CHHAR(1); 在屬性上上建立索索引,除除了用C

22、CREAATE INDDEX語(yǔ)語(yǔ)句之外外,還可可加上關(guān)關(guān)鍵字UUNIQQUE,從從而在為為屬性建建立索引引的同時(shí)時(shí)將其說(shuō)說(shuō)明為鍵鍵碼。比比如,用用如下語(yǔ)語(yǔ)句既為為學(xué)生姓姓名建立立索引,又又為之說(shuō)說(shuō)明了唯唯一值約約束:CREAATE UNIIQUEE INNDEXXStuddenttNammeInndexx ON SStuddentt(SttudeentNNamee); 2、說(shuō)明明外鍵碼碼約束可以把一一個(gè)關(guān)系系的屬性性或?qū)傩孕约f(shuō)明明為外鍵鍵碼(FForeeignn Keey)。一是指引引用另外外一個(gè)關(guān)關(guān)系的某某個(gè)屬性性或?qū)傩孕约?,而而所引用用的屬性性或?qū)傩孕约仨氻毷撬谠陉P(guān)系的的主鍵碼碼。二

23、是指說(shuō)說(shuō)明為外外鍵碼的的屬性值值必須是是所引用用的關(guān)系系的某個(gè)個(gè)相應(yīng)屬屬性值。對(duì)于學(xué)生生選課關(guān)關(guān)系,可可用如下下語(yǔ)句說(shuō)說(shuō)明:CREAATE TABBLE StuudenntCooursse(StuddenttNo INTT,CourrseNNo IINT,Gradde SSMALLLINNTPRIMMARYY KEEY(SStuddenttNo,CouurseeNo),FOREEIGNN KEEY(SStuddenttNo) REEFERRENCCES Stuudennt(SStuddenttNo),FOREEIGNN KEEY (CouurseeNo) REEFERRENCCESCCourr

24、se(CouurseeNo),); 3、說(shuō)明明檢驗(yàn)約約束檢驗(yàn)(CCHECCK)約約束是除除了鍵碼碼約束和和外鍵碼碼約束之之外的第第三種重重要的約約束。檢檢驗(yàn)約束束既可用用于屬性性,也可可用于元元組。基于屬性性的檢驗(yàn)驗(yàn)約束可先說(shuō)明明域(DDOMAAIN)的的約束:CREAATE DOMMAINN GeendeerDoomaiin CHAAR(11)CHECCK(VVALUUE IIN (F,MM);屬性geendeer可用用如下形形式來(lái)說(shuō)說(shuō)明:gendder GennderrDommainn,基于元組組的檢驗(yàn)驗(yàn)約束基于元組組的檢驗(yàn)驗(yàn)約束就就是對(duì)單單個(gè)關(guān)系系中的元元組給予予某種限限制。當(dāng)當(dāng)用CRR

25、EATTE TTABLLE語(yǔ)句句建表時(shí)時(shí),要想想說(shuō)明對(duì)對(duì)關(guān)系元元組的檢檢驗(yàn)約束束,可在在屬性表表和鍵碼碼、外鍵鍵碼的說(shuō)說(shuō)明之后后加上關(guān)關(guān)鍵字CCHECCK和約約束條件件。4、更新新約束可以在任任何時(shí)候候更新約約束,即即增加、更改或或撤消約約束。對(duì)約束命命名在約束之之前加上上關(guān)鍵字字CONNSTRRAINNT(約約束)和和該約束束名。把表明屬屬性naame為為主鍵碼碼的約束束命名為為NammeIssKeyy,其說(shuō)說(shuō)明如下下:namee CHHAR(30) COONSTTRAIINT NammeIssKeyy PRRIMAARY KEYY 更新約束束更改約束束:用ALTTER語(yǔ)語(yǔ)句。AALTEER

26、 TTABLLE即用用于基于于屬性的的檢驗(yàn),也也用于基基于元組組的檢驗(yàn)驗(yàn)。ALLTERR TAABLEE語(yǔ)句有有幾個(gè)選選項(xiàng),使使之既可可用于撤撤消約束束,也可可用于增增加約束束。撤消約束束:用關(guān)關(guān)鍵字DDROPP隨后加加上要撤撤消的約約束名。比如,要要把表明明namme為關(guān)關(guān)系A(chǔ)cctorr的主鍵鍵碼這一一約束撤撤消,可可用如下下語(yǔ)句:ALTEER TTABLLE AActoor DDROPP COONSTTRAIINT NammeIssKeyy;增加約束束:用關(guān)關(guān)鍵字AADD隨隨后加上上要增加加的約束束名。比如,要要增加一一個(gè)約束束以表明明namme為關(guān)關(guān)系A(chǔ)cctorr的主鍵鍵碼,可可用如

27、下下語(yǔ)句:ALTEER TTABLLE AActoor AADD CONNSTRRAINNT NNameeIsKKeyPRIMMARYY KEEY(nnamee); 5、觸發(fā)發(fā)與觸發(fā)發(fā)程序觸發(fā)(TTrigggerr)有時(shí)時(shí)也稱為為事件條件件動(dòng)作作規(guī)則(EventConditionAction Rule)或ECA規(guī)則。觸發(fā)程序序的選項(xiàng)項(xiàng)與結(jié)構(gòu)構(gòu)(1)規(guī)定的動(dòng)動(dòng)作與觸觸發(fā)事件件之間的的關(guān)系1)AFFTERR 2)BEEFORRE3)INNSTEEAD OF常用的觸觸發(fā)事件件的類型型1)UPPDATTE2)INNSERRT3)DEELETTE用元組變變量引用用元組1)觸發(fā)發(fā)事件為為UPDDATEE2

28、)觸發(fā)發(fā)事件為為INSSERTT3)觸發(fā)發(fā)事件為為DELLETEE觸發(fā)程序序分類觸發(fā)程序序可分為為元組級(jí)級(jí)觸發(fā)程程序和語(yǔ)語(yǔ)句級(jí)觸觸發(fā)程序序兩類。舉例:假設(shè)學(xué)生生的英語(yǔ)語(yǔ)考試分分為初試試和復(fù)試試。初試試后的成成績(jī)存入入學(xué)生選選課關(guān)系系SC。若復(fù)試試成績(jī)比比初試成成績(jī)好,則則按復(fù)試試成績(jī)修修改原有有成績(jī),否否則不應(yīng)應(yīng)修改。CREAATE TRIIGGEER GGTriiggeerAFTEER UUPDAATE OF G OON SSCREFEERENNCINNGOLD AS OlddTupple,NEW AS NewwTuppleWHENN(OlddTupple.GNNewTTuplle.GGAN

29、D NewwTupple.Cnoo=0112)UPDAATE SCSET G=OOldTTuplle.GGWHERRE SSno=NewwTupple.Snoo ANND CCno=NewwTupple.CnooFOR EACCH RROW假設(shè)在安安排課程程時(shí)發(fā)現(xiàn)現(xiàn)某門課課選課人人數(shù)過(guò)少少而暫停停開設(shè),且且把選課課的學(xué)生生并入同同類的另另一門課課,于是是要在學(xué)學(xué)生選課課關(guān)系SSC中修修改課稱稱號(hào)。若若修改課課程號(hào)而而使某門門課的選選課人員員超過(guò)1150人人,則不不應(yīng)修改改。CREAATE TRIIGGEER CCTriiggeerINSTTEADD OFF UPPDATTE OF CCNo ON SCREFEERENNCINNGOLD_TABBLE AS OlddSettNEW_TABBLE AS NewwSettWHENN (1150=ALLL( SELEECT COUUNT(SNoo)FROMM( SC EXCCEPTT OlldSeet)UNIOON NNewSSet) GROUUP BBY CCNo )DELEETE FROOM SSCWHERRE (SNoo,CNNo,GG) IIN OOldSSet;INSEERT INTTO S

溫馨提示

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