【正文】
數(shù)據(jù)的標(biāo)識符。該約束強(qiáng)制實體完整性。一個表中最多只能有一個主鍵,且主鍵列不允許取空值。UNIQUE(唯一性)約束指定表中某一個列或多個列不能有相同的兩行或兩行以上的數(shù)據(jù)存在。這種約束通過實現(xiàn)唯一性索引來強(qiáng)制實體完整性。當(dāng)表中已經(jīng)有了一個主鍵約束時,如果需要在其他列上實現(xiàn)實體完整性,又因為表中不能有兩個或兩個以上的主鍵約束,所以只能通過創(chuàng)建UNIQUE約束來實現(xiàn)。一般的,把UNIQUE約束稱為候選的主鍵約束。3.簡述TSQL語言的特點。答:(1)綜合統(tǒng)一:TSQL語言集數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言和附加語言元素為一體。(2)兩種使用方式,統(tǒng)一的語法結(jié)構(gòu):即聯(lián)機(jī)交互式和嵌入高級語言的使用方式。(3)高度非過程化。(4)類似于人的思維習(xí)慣,容易理解和掌握。4.簡述存儲過程的優(yōu)點。答:存儲過程最主要的特色是當(dāng)寫完一個存儲過程后即被翻譯成可執(zhí)行碼存儲在系統(tǒng)表內(nèi),當(dāng)作是數(shù)據(jù)庫的對象之一,一般用戶只要執(zhí)行存儲過程,并且提供存儲過程所需要的參數(shù)就可以得到所要的結(jié)果而不必再去編輯TSQL命令。5.簡述死鎖及其解決辦法。答:產(chǎn)生死鎖的情況一般包括以下兩種:第一種情況,當(dāng)兩個事務(wù)分別鎖定了兩個單獨的對象,這時每一個事務(wù)都要求在另外一個事務(wù)鎖定的對象上獲得一個鎖,因此每一個事務(wù)都必須等待另外一個事務(wù)釋放占有的鎖,這時,就發(fā)生了死鎖。這種死鎖是最典型的死鎖形式。第二種情況,當(dāng)在一個數(shù)據(jù)庫中時,有若干個長時間運行的事務(wù)執(zhí)行并行的操作,當(dāng)查詢分析器處理一種非常復(fù)雜的查詢例如連接查詢時,那么由于不能控制處理的順序,有可能發(fā)生死鎖現(xiàn)象。在數(shù)據(jù)庫中解決死鎖常用的方法有:(1)要求每個事務(wù)一次就將要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。(2)允許死鎖發(fā)生,系統(tǒng)來用某些方式診斷當(dāng)前系統(tǒng)中是否有死鎖發(fā)生。五、綜合題(每小題10分,共30分)學(xué)號姓名學(xué)分課程名1.ER圖: 學(xué)習(xí)課程號課程學(xué)生 M N年齡性別成績關(guān)系模式:學(xué)生(學(xué)號,姓名,性別,年齡)課程(課程號,課程名,學(xué)分)學(xué)習(xí)(學(xué)號,課程號,成績)2.(1)關(guān)系模式R的主關(guān)鍵字是(運動員編號,項目號)。(2)R最高屬于第一范式。因為存在著姓名,性別,班級和項目名對主關(guān)鍵字(運動員編號,項目號)的部分函數(shù)依賴,沒有達(dá)到2NF。(3)首先分解為2NF:R1(運動員編號,姓名,性別,班級,班主任),R2(項目號,項目名),R3(運動員編號,項目號,成績)。因為R1存在班主任對運動員編號的傳遞函數(shù)依賴,所以沒有達(dá)到3NF,再分解為3NF:R1分解為R1(運動員編號,姓名,性別,班級)和R4(班級,班主任)3.(1)select 姓名,所在系,年齡from Studentwhere 年齡20 and 性別=‘女’(2)select , from Student,SC,Course Where = and =(3)create view view1 as select 所在系,課程號,avg(成績)as 平均成績 from student,course where = group by 所在系,課程號 having(avg(成績)=80)(4)if(select count(*)from sc where sno=‘95013’)0 Select*from sc where sno=‘95013’elseprint‘此學(xué)生無成績’7