《數(shù)據(jù)庫原理與應用教程》(第4版)習題參考答案_第1頁
《數(shù)據(jù)庫原理與應用教程》(第4版)習題參考答案_第2頁
《數(shù)據(jù)庫原理與應用教程》(第4版)習題參考答案_第3頁
《數(shù)據(jù)庫原理與應用教程》(第4版)習題參考答案_第4頁
《數(shù)據(jù)庫原理與應用教程》(第4版)習題參考答案_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章數(shù)據(jù)庫概述

1.試說明數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的概念。

答:數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象。

數(shù)據(jù)庫:是存放數(shù)據(jù)的場所。

數(shù)據(jù)庫管理系統(tǒng):管理數(shù)據(jù)庫數(shù)據(jù)及其功能的系統(tǒng)軟件。

數(shù)據(jù)庫系統(tǒng):由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員和數(shù)據(jù)庫應用程序共同構(gòu)

成的系統(tǒng)。

2.數(shù)據(jù)管理技術的發(fā)展主要經(jīng)歷了哪幾個階段?

答:文件管理和數(shù)據(jù)庫管理。

3.文件管理方式在管理數(shù)據(jù)方面有哪些缺陷?

答:(1)編寫應用程序不方便。(2)數(shù)據(jù)冗余不可避免。(3)應用程序依賴性。(4)不

支持對文件的并發(fā)訪問。(5)數(shù)據(jù)間聯(lián)系弱。(6)難以滿足不同用戶對數(shù)據(jù)的需求。

4.與文件管理相比,數(shù)據(jù)庫管理有哪些優(yōu)點?

答:(1)相互關聯(lián)的數(shù)據(jù)集合;(2)較少的數(shù)據(jù)冗余;(3)程序與數(shù)據(jù)相互獨立;

(4)保證數(shù)據(jù)的安全可靠;(5)最大限度地保證數(shù)據(jù)的正確性;(6)數(shù)據(jù)可以共享并能

保證數(shù)據(jù)的一致性。

5.比較用文件管理和用數(shù)據(jù)庫管理數(shù)據(jù)的主要區(qū)別。

答:文件系統(tǒng)不能提供數(shù)據(jù)的獨立性,也不能提供數(shù)據(jù)共享、安全性等功能,這些

需要客戶端編程實現(xiàn)。而數(shù)據(jù)庫管理系統(tǒng)可以很方便地提供這些功能。

6.在數(shù)據(jù)庫管理方式中,應用程序是否需要關心數(shù)據(jù)的存儲位置和存儲結(jié)構(gòu)?為什

么?

答;不需要。因為這些都由數(shù)據(jù)庫管理系統(tǒng)來維護。

7.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫的作用是什么?

答:數(shù)據(jù)庫是存儲數(shù)據(jù)的倉庫,其作用是存儲數(shù)據(jù)。

8.在數(shù)據(jù)庫系統(tǒng)中,應用程序可以不通過數(shù)據(jù)庫管理系統(tǒng)而直接訪問數(shù)據(jù)文件嗎?

答:不可以。

9.數(shù)據(jù)獨立性指的是什么?它能帶來哪些好處?

答:數(shù)據(jù)獨立性包括邏輯獨立性和物理獨立性兩部分。物理獨立性是指當數(shù)據(jù)的存

儲結(jié)構(gòu)發(fā)生變化時,不影響應用程序的特性;邏輯獨立性是指當表達現(xiàn)實世界的信息內(nèi)

容發(fā)生變化時,不影響應用程序的特性。這兩個獨立性使用戶只需關心邏輯層即可,同

時增強了應用程序的可維護性。

10.數(shù)據(jù)庫系統(tǒng)由哪幾部分組成,每一部分在數(shù)據(jù)庫系統(tǒng)中的作用大致是什么?

答:數(shù)據(jù)庫系統(tǒng)一般包括3個主要部分:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和應用程序。數(shù)

據(jù)庫是數(shù)據(jù)的匯集,它以一定的組織形式保存在存儲介質(zhì)上;數(shù)據(jù)庫管理系統(tǒng)是管理數(shù)

據(jù)庫的系統(tǒng)軟件,它可以實現(xiàn)數(shù)據(jù)庫系統(tǒng)的各種功能;應用程序?qū)V敢詳?shù)據(jù)庫數(shù)據(jù)為基

礎的程序。

第2章數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)

1.解釋數(shù)據(jù)模型的概念,為什么要將數(shù)據(jù)模型分成兩個層次?

答:數(shù)據(jù)模型實際上是模型化數(shù)據(jù)和信息的工具,在數(shù)據(jù)庫中,數(shù)據(jù)模型要滿足三個要

求:第一,要能夠比較真實地模擬現(xiàn)實世界;第二,要容易被人們理解;第三,要能夠

很方便地在計算機上實現(xiàn)。用一種模型來同時滿足這三方面的要求比較困難,因此在在

數(shù)據(jù)庫系統(tǒng)中針對不同的使用對象和應用目的,采用了兩種不同的數(shù)據(jù)模型來實現(xiàn),一

個是概念層數(shù)據(jù)模型,用來滿足第一和第二個要求;另一個是組織層數(shù)據(jù)模型,用來滿

足第三個要求。

2.概念層數(shù)據(jù)模型和組織層數(shù)據(jù)模型分別是針對什么進行的抽象?

答:概念層數(shù)據(jù)模型主要針對用戶的業(yè)務進行抽象,組織層數(shù)據(jù)庫模型主要針對具體的

數(shù)據(jù)庫管理系統(tǒng)采用的數(shù)據(jù)組織方式進行抽象。

3.實體之間的聯(lián)系有幾種?分別是哪些?請為每一種聯(lián)系舉出一個例子。

答:有三種:1:1;1:n;m:no1:1示例:系和系主任。l:n示例:班和學生;m:n示例:

教師和學生。

4.說明實體-聯(lián)系模型中的實體、屬性和聯(lián)系的概念。

答:實體是具有公共性質(zhì)的并可相互區(qū)分的現(xiàn)實世界對象的集合。屬性是實體所具有的

特征或性質(zhì)。聯(lián)系是實體之間的關聯(lián)關系。

5.指明下列實體間聯(lián)系的種類:

(1)教研室和教師(假設一個教師只屬于一個教研室,一個教研室可有多名教師)。

答:一對多。

(2)商店和顧客。

答:多對多。

(3)國家和首都。

答:一對一。

6.解釋關系模型中的主碼、外碼、主屬性、非主屬性的概念,并說明主碼、外碼的作用。

答:主碼是用于唯一確定表中一個元組的一個屬性或最小的屬性組。用于實現(xiàn)實體完整

性。

外碼用于實現(xiàn)數(shù)據(jù)之間的關聯(lián)關系(參照完整性)。

主屬性:候選鍵所包含的屬性。

非屬性:主屬性之外的其他屬性。

7.指出下列關系模式的主碼:

(1)考試情況(課程號,考試性質(zhì),考試日期,考試地點)。假設一門課程在不同的日期可

以有多次考試,但在同一天只能考一次。多門不同的課程可以同時進行考試。

答:(課程號,考試日期)

(2)教師授課(教師號,課程號,授課時數(shù),學年,學期)。假設一名教師在同一個學年和

學期可以講授多門課程,也可以在不同學年和學期多次講授同一門課程,對每門課程的講授

都有一個授課時數(shù)。

答:(教師號,課程號,學年)

(3)圖書借閱(書號,讀者號,借書日期,還書日期)。假設一個讀者可以在不同的日期多

次借閱同一本書,一個讀者可以同時借閱多本不同的圖書,一本書可以在不同的時間借給不

同的讀者。但一個讀者不能在同一天對同一本書借閱多次。

答:(書號,讀者號,借書日期)

8.設有如下兩個關系模式,試指出每個關系模式的主碼、外碼,并說明外碼的引用關系。

產(chǎn)品表(產(chǎn)品號,產(chǎn)品名稱,產(chǎn)品價格,生產(chǎn)日期),其中產(chǎn)品名稱有重復。

銷售表(產(chǎn)品號,銷售時間,銷售數(shù)量),假設可同時銷售多種產(chǎn)品,但同一產(chǎn)品在

同一時間只銷售一次。

答:產(chǎn)品的主碼:產(chǎn)品號,無外瑪。

銷售的主碼:(產(chǎn)品號,銷售時間),其中產(chǎn)品號為引用產(chǎn)品表的外碼。

9.關系模型的數(shù)據(jù)完整性包含哪些內(nèi)容?分別說明每一種完整性的作用。

答:包含:實體完整性、參照完整性和用戶定義的完整性。

實體完整性:作用是保證表中的不存儲相同的數(shù)據(jù),也不存儲無意義的數(shù)據(jù)。

參照完整性:用于描述實體之間的聯(lián)系。

用戶定義的完整性:用于限定屬性的取值范圍,目的是保證數(shù)據(jù)庫中存儲的值與現(xiàn)

實世界相符。

10.數(shù)據(jù)庫系統(tǒng)包含哪三級模式?試分別說明每一級模式的作用?

答:外模式、模式和內(nèi)模式。

外模式是對現(xiàn)實系統(tǒng)中用戶感興趣的整體數(shù)據(jù)結(jié)構(gòu)的局部描述,用于滿足不同用戶

對數(shù)據(jù)的需求。

模式:是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它滿足所有用戶對數(shù)據(jù)的需

求。

內(nèi)模式:是對整個數(shù)據(jù)庫的底層表示,它描述了數(shù)據(jù)的存儲位置和存儲方式。

11.數(shù)據(jù)庫系統(tǒng)的兩級映像的功能是什么?它帶來了哪些好處?

答:兩級映像是外模式/模式映像和模式/內(nèi)模式映像。外模式/模式映像保證了當模式發(fā)

生變化時可以保證外模式不變,從而是用戶的應用程序不需要修改。模式/內(nèi)模式映像保

證了當內(nèi)模式發(fā)生變化,比如存儲位置或存儲文件名改變,可以保持模式不變,從而使

用戶不需要知道這些變化。

12.數(shù)據(jù)庫三級模式劃分的優(yōu)點是什么?它能帶來哪些數(shù)據(jù)獨立性?

答:數(shù)據(jù)庫三級模式的劃分使用戶可以在邏輯層處理數(shù)據(jù),而不需要關心具體的物理細

節(jié),同時當內(nèi)模式或模式發(fā)生變化時,可以通過模式之間的映像關系,保持外模式不變,

從而避免了修改應用程序。三級模式以及三級模式之間的兩級映像帶來了數(shù)據(jù)的邏輯獨

立性和物理獨立性。

13.簡單說明數(shù)據(jù)庫管理系統(tǒng)包含的功能。

答:數(shù)據(jù)定義、數(shù)據(jù)操縱、優(yōu)化和執(zhí)行、數(shù)據(jù)安全性和完整性、數(shù)據(jù)恢復和并發(fā)、盡可能高

效的完成各種操作。

第3章SQL語言基礎及數(shù)據(jù)定義功能

1.Tinyint數(shù)據(jù)類型定義的數(shù)據(jù)的取值范圍是多少?

答:0、255。

2.日期時間類型中的日期和時間的輸入格式是什么?

答:在輸入日期部分時可采用英文數(shù)字格式、數(shù)字加分隔符格式和純數(shù)字格式。采

用英文數(shù)字格式時,月份可用英文全名或縮寫形式。

在輸入時間部分時可以采用12小時格式或24小時格式。使用12小時制時要加

上AM或PY說明是上午還是下午。在時與分之間可以使用冒號(:)作為分隔符

3.SmallDatatime類型精確到哪個時間單位?

答:分鐘。

4.定點小數(shù)類型numeric中的p和q的含義分別是什么?

答:P代表數(shù)字位長度,即整數(shù)部分和小數(shù)部分的數(shù)字位之和。q代表小數(shù)位數(shù)。

5.Char(10)>nchar(10)的區(qū)別是什么?它們各能存放多少個字符?占用多少空間?

答:char(10)是普通編碼,固定占10個字節(jié),最多能存放10個字母或數(shù)字字符,5個

漢字。Nchar(10)是統(tǒng)一字符編碼,固定占20個字節(jié),最多能存放10個字符(包括字母

和漢字)。

6.Char(n)和varchar(n)的區(qū)別是什么?其中n的含義是什么?各占用多少空間?

答:Char(n)是定長字符類型,varchar(n)是可變長字符類型。Char(n)中的n代表固定

占n個字節(jié)的空間;varchar(n)中的n代表最多占n個字節(jié)的空間。

7.數(shù)據(jù)完整性的作用是什么?

答:數(shù)據(jù)的完整性作用是防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù)。

8.在對數(shù)據(jù)進行什么操作時,系統(tǒng)檢查DEFAULT約束?在進行什么操作時,檢查CHECK

約束?

答:插入操作且省略了某些列的值時檢查DEFAULT約束。插入和修改操作檢查CHECK約

束。

9.UNIQUE約束的作用是什么?

答:限制列的取值不重復。

10.寫出創(chuàng)建如下三張表的SQL語句,要求在定義表的同時定義數(shù)據(jù)的完整性約束:。

答:

Createtable圖書表(

書號nchar⑹primarykey,

書名nvarchar(30)notnull,

第一作者char(10)notnull,

出版日期smalldatetime,

價格:numeric(4,1)

Createtable書店表(

書店編號nchar(6)primarykey,

店名nvarchar(30)notnull,

電話char(8)check(電話like

'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9:,),

地址varchar(40),

郵政編碼char(6)

>

Createtable圖書銷售表(

書號nchar(6)notnull,

書店編號nchar(6)notnull,

銷售日期smalldatetimenotnull;

銷售數(shù)量smalldatetimecheck(銷售數(shù)量>=1);

>

11.為“圖書表”添加“印刷數(shù)量”歹u,類型為整數(shù),同時添加約束,要求此列的取值

要大于等于1000c

答:altertable圖書表Add印刷數(shù)量intcheck(印刷數(shù)量>=1000)

12.刪除“書店表”中的“郵政編碼”列。

答:altertable書店表Dropcolumn郵政編碼

13.將“圖書銷售表”中的“銷售數(shù)量”列的數(shù)據(jù)類型改為整型。

答:altertable圖書銷售表Altercolumn銷售數(shù)量int

第4章數(shù)據(jù)操作

1.查詢sc表中的全部數(shù)據(jù)。

Select*fromsc

2.查詢計算機系學生的姓名和年齡。

Selectsname,sagefromstudentwheresdept='計算機系'

3.查詢成績在70?80分的學生的學號、課程號和成績。

Selectsno,eno,gradefromscwheregradebetween70and80

4.查詢計算機系年齡在18?20歲的男學生的姓名和年齡。

Selectsname,sagefromstudent

wheresdept='計算機系'andsagebetween18and20

5.查詢課程號為“cOOl”的課程的最高的分數(shù)。。

Selectmax(grade)fromscwhereeno='C001z

6.查詢計算機系學生的最大年齡和最小年齡。

Selectmax(sage)最大年齡,min(sage)最小年齡fromstudent

Wheresdept='計算機系,

7.統(tǒng)計每個系的學生人數(shù)。

Selectsdept,count(*)人數(shù)fromstudent

Groupbysdept

8.統(tǒng)計每門課程的選課人數(shù)和考試最高分。

Selectcn。,count(*)選課人數(shù),max(grade)最高分fromsc

Groupbyeno

9.統(tǒng)計每個學生的選課門數(shù)和考試總成績,并按選課門數(shù)升序顯示結(jié)果。

Selectsno,count(*)選課門數(shù),sum(grade)fromsc

Groupbysnoorderbycount(*)asc

10.查詢總成績超過200分的學生,要求列出學號、總成績。

Selectsno,sum(grade)總成績fromsc

Groupbysnohavingsum(grade)>200

11.查詢選修“C002”號課程的學生的姓名和所在系。

Selectsname,sdeptfromstudentsjoinscons.sno=sc.sno

Whereeno='C002z

12.查詢成績80分以上的學生的姓名、課程號和成績,并按成績降序排列結(jié)果。

Selectsname,eno,grade

Fromstudentsjoinscons.sno=sc.sno

Wheregrade>80

Orderbygradedesc

13.查詢哪些課程沒有學生選修,要求列出課程號和課程名。

Selectc.cnozcnamefromcoursecleftjoinsconc.eno=sc.eno

Wheresc.enoisnull

14.查詢與Java在同一學期開設的課程的課程名和開課學期。

Selectame,cl.semesterfromcoursecl

joincoursec2oncl.semester=c2.semester

Whereame='Javazandame!='Java'

15.查詢與李勇年齡相同的學生的姓名、所在系和年齡。

Selectsi.sname,si.sdept,si.sagefromstudentsi

joinstudents2onsi.sage=s2.sage

Wheres2.sname='李勇,andsi.sname!='李勇,

16.用子查詢實現(xiàn)如下查詢:

(1)查詢選修了“C001”號課程的學生的姓名和所在系。

Selectsname,sdeptfromstudent

Wheresnoin(selectsnofromscwhereeno='C001')

(2)查詢數(shù)學系成績80分以上的學生的學號、姓名、課程號和成績。

Selectsnofsname,eno,gradefromstudents

Joinscons.sno=sc.sno

Wheresdept='數(shù)學系'andsnoin(

Selectsnofromscwheregrade>80)

(3)查詢計算機系考試成績最高的學生的姓名。

Selectsnamefromstudentsjoinscons.sno=sc.sno

Wheresdept='計算機系,andgrade=(

Selectmax(grade)fromscjoinstudentsons.sno=sc.sno

Wheresdept'計算機系,)

(4)查詢年齡最大的男學生的姓名和年齡。

Selectsname,sagefromstudent

Wheresage=(selectmax(sage)fromstudent

wheressex='男')

andssex='男'

(5)查詢數(shù)據(jù)結(jié)構(gòu)考試成績最高的學生的姓名、所在系、性別和成績。

Selectsname,sdept,ssex,gradefromstudents

Joinscons.sno=sc.sno

Joincourseconc.eno=sc.eno

Wherecname='數(shù)據(jù)結(jié)構(gòu)'

Andgradein(

Selectmax(grade)fromscjoincourseconc.cno=sc.eno

Wherecname='數(shù)據(jù)結(jié)構(gòu),)

17.查詢沒有選修Java課程的學生的姓名和所在系。

Selectsname,sdeptfromstudent

Wheresnonotin(

Selectsnofromscjoincourseconc.eno=sc.eno

Wherecname='Java')

18.查詢計算機系沒有選課的學生的姓名和性別。

Selectsname,ssexfromstudent

Wheresdept='計算機系,

Andsnonotin(

Selectsnofromsc)

19.創(chuàng)建一個新表,表名為其結(jié)構(gòu)為(COL1,COL2,COL3),其中,

COL1:整型,允許空值。

COL2:字符型,長度為10,不允許空值。

COL3:字符型,長度為10,允許空值。

試寫出按行插入如下數(shù)據(jù)的語句(空白處表示空值)。

C0L1C0L2C0L3

B1

1B2C2

2B3

Createtabletest_t(

C0L1int,

COL2char(10)notnull>

COL3char(10))

Insertintotest_t(COL2)values('Bl')

Insertintotest_t(COL1,COL2)values(1,zB2f)

Insertintotest_tvalues(2,'B3',NULL)

20.刪除考試成績低于50分的學生的選課記錄。

Deletefromscwheregrade<50

21.刪除沒人選的課程的基本信息。

Deletefromcoursewhereenonotin(

Selectenofromcourse)

22.刪除計算機系Java成績不及格學生的Java選課記錄。

Deletefromsc

Fromscjoinstudentsons.sno=sc.sno

Joincourseconc.eno=sc.eno

wherecname='Java7andgrade<60

andsdept='計算機系,

23.將第2學期開設的所有課程的學分增加2分。。

UpdateCoursesetcredit=credit+2

Wheresemester=2

24.將Java課程的學分改為3分。

Updatecoursesetcredit=3

wherecname='Java7

25.將計算機系學生的年齡增加1歲。

UpdateStudentsetsage=sage+1

wheresdept='計算機系'

26.將信息系學生的“計算機文化學”課程的考試成績加5分。

UpdateSCsetgrade=grade+5

Fromstudentsjoinscons.sno=sc.sno

Joincourseconc.eno=sc.eno

Wheresdept='信息系,andcname='計算機文化學,

27.查詢每個系年齡大于等于20的學生人數(shù),并將結(jié)果保存到一個新永久表Dept_Age中。

Selectsdept,count(*)人數(shù)intoDept_Agefromstudent

Wheresage>=20

Groupbysdept

28.查詢計算機系每個學生的JAVA考試情況,列出學號、姓名、成績和成績情況,其中成績

情況的顯示規(guī)則為:

如果成績大于等于90,則成績情況為“好”;

如果成績在80?89,則成績情況為“較好”;

如果成績在70?79,則成績情況為“一般”;

如果成績在60?69,則成績情況為“較差”;

如果成績小于60,則成績情況為“差二

Selects.sno,snam一,grade,成績情況=

Case

Whengrade>=90then'好'

Whengradebetween80and89then、較好,

Whengradebetween70and79then'一般,

Whengradebetween60and69then、較差,

Else'差,

end

fromstudentsjoinscons.sno=sc.sno

Joincourseconc.eno=sc.eno

Wheresdept>=20

29.統(tǒng)計每個學生的選課門數(shù)(包括沒有選課的學生),列出學號、選課門數(shù)和選課情況,其

中選課情況顯示規(guī)則為:

如果選課門數(shù)大于等于6門,則選課情況為“多”;

如果選課門數(shù)超過在3?5門,則選課情況為“一般”;

如果選課門數(shù)在「2H,則選課情況為“偏少

如果沒有選課,則選課情況為“未選課”。

30.修改全部課程的學分,修改規(guī)則如下:

如果是第1?2學期開設的課程,則學分增加5分;

如果是第3?4學期開設的課程,則學分增加3分;

如果是第5?6學期開設的課程,則學分增加1分;

對其他學期開設的課程,學分不變。

Selects.sno,count(sc.sno)選課門數(shù),選課情況=

Case

Whencount(sc.sno)>=6then'多,

Whencount(sc.sno)between3and5then'一般'

Whencount(sc.sno)between1and2then'偏少'

Whencount(sc.sno)=0then'未選課,

end

fromstudentsleftjoinscons.sno=sc.sno

Groupbys.sno

31.查詢“李勇”和“王大力”所選的全部課程,列出課程名、開課學期和學分,不包括重

復的結(jié)果。

Selectcname,semester,creditfromcoursec

joinsconc.eno=sc.eno

Joinstudentsons.sno=sc.sno

Wheresname='李勇'

union

Selectcname,semester^creditfromcoursec

joinsconc.eno=sc.eno

Joinstudentsons.sno=sc.sno

Wheresname='王大力'

32.查詢在第3學期開設的課程中,“李勇”選了但“王大力”沒選的課程,列出課程名和學

分。

Selectcname,semester,creditfromcoursec

joinsconc.eno=sc.eno

Joinstudentsons.sno=sc.sno

Wheresname='李勇'andsemester=3

except

Selectcname,semester,creditfromcoursec

joinsconc.eno=sc.eno

Joinstudentsons.sno=sc.sno

Wheresname='王大力'andsemester=3

33.查詢在學分大于3分的課程中,“李勇”和“王大力”所選的相同課程,列出課程名和學

分。

Selectcname,semester,creditfromcoursec

joinsconc.eno=sc.eno

Joinstudentsons.sno=sc.sno

Wheresname='李勇'andcredit>3

INTERSECT

Selectcname,semester,creditfromcoursec

joinsconc.eno=sc.eno

Joinstudentsons.sno=sc.sno

Wheresname='王大力'andcredit>3

第5章索引和視圖

1.試說明使用視圖的好處。

答:利用視圖可以簡化客戶端的數(shù)據(jù)查詢語句,使用戶能從多角度看待同一數(shù)據(jù),可以

提高數(shù)據(jù)的安全性,視圖對應數(shù)據(jù)庫三級模式中的外模式,因此提供了一定程度的邏輯

獨立性。

2.使用視圖可以加快數(shù)據(jù)的查詢速度,這句話對嗎?為什么?

答:不對,因為通過視圖查詢數(shù)據(jù)時,比直接針對基本表查詢數(shù)據(jù)多了一個轉(zhuǎn)換過程,

即從外模式到模式的轉(zhuǎn)換。

3.使用第3章建立的Student、Course和SC表,寫出創(chuàng)建滿足下述要求的視圖的SQL

語句。

(1)查詢學生的學號、姓名、所在系、課程號、課程名、課程學分。

CreateviewvlAs

Selects.sno,sname,sdept,c.cnofcnamezcredit

Fromstudentsjoinscons.sno=sc.sno

Joincourseconc.eno=sc.eno

(2)查詢學生的學號、姓名、選修的課程名和考試成績。

Createviewv2As

Selects.sno,sname,cname,grade

Fromstudentsjoinscons.sno=sc.sno

Joincourseconc.eno=sc.eno

(3)統(tǒng)計每個學生的選課門數(shù),要求列出學生學號和選課門數(shù)。

Createviewv3As

Selectsnozcount(*)astotal

Fromscgroupbysno

(4)統(tǒng)計每個學生的修課總學分,要求列出學生學號和總學分(說明:考試成績大于

等于60才可獲得此門課程的學分)。

Createviewv4As

Selectsno,sum(credit)astotal_credit

Fromsnojoincourseconc.eno=sc.eno

Wheregrade>=60

Groupbysno

(5)查詢計算機系JAVA考試成績最高的學生的學號、姓名和JAVA考試成績。

Createviewv5As

Selecttop1withtiess.sno,snamezgrade

Fromstudentsjoinscons.sno=sc.sno

Joincourseconc.eno=sc.eno

Wheresdept='計算機系,andcname='java,

Orderbygradedesc

4.利用第3題建立的視圖,完成如下查詢:

(1)查詢考試成績大于等于90分的學生的姓名、課程名和成績。

Selectsname,cname,gradeFromv2wheregrade>=90

(2)查詢選課門數(shù)超過3門的學生的學號和選課門數(shù)。

Select*fromv3wheretotal>=3

(3)查詢計算機系選課門數(shù)超過3門的學生的姓名和選課門數(shù)。

Selectsname,totalfromv3joinstudentsons.sno=v3.sno

Wheresdept='計算機系'andtotal>=3

(4)查詢修課總學分超過10分的學生的學號、姓名、所在系和修課總學分。

Selectv4.sno,sname,sdept,total_credit

Fromv4joinstudentsons.sno=v4.sno

Wheretotal_credit>=10

(5)查詢年齡大于等于20歲的學生中,修課總學分超過10分的學生的姓名、年齡、

所在系和修課總學分。

Selectsname,sage,sdept,total_credit

Fromv4joinstudentsons.sno=v4.sno

Wheresage>=20andtotal_credit>=10

5.修改第3題(4)定義的視圖,使其查詢每個學生的學號、總學分以及總的選課門數(shù)。

Alterviewv4As

Selectsno,sum(credit)astotal_creditzcount(*)astotal_cno

Fromscjoincourseconc.eno=sc.eno

Groupbysno

6.修改第3題(5)定義的視圖,使其統(tǒng)計全體學生中JAVA考試成績最高的學生的學號、姓

名、所在系和JAVA考試成績。

Alterviewv5As

Selecttop1withtiess.snozsname,sdept,grade

Fromstudentsjoinscons.sno=sc.sno

Joincourseconc.eno=sc.eno

Wherecname='java,

Orderbygradedesc

第6章關系數(shù)據(jù)庫規(guī)范化理論

L.關系規(guī)范化中的操作異常有哪些?它是由什么引起的?解決的辦法是什么?

答:主要有插入異常、刪除異常和修改異常,這些都是由數(shù)據(jù)冗余引起的,解決的辦法

是進行模式分解,消除數(shù)據(jù)冗余,

2.第一范式、第二范式和第三范式的關系的定義分別是什么?

答:第一范式:不包含重復組的關系(即不包含非原子項的屬性)是第一范式的關系。

第二范式:如果R(U,F)W1NF,并且R中的每個非主屬性都完全函數(shù)依賴于主碼,

MR(U,F)E2NFo

第三范式:如果R(U,F)W2NF,并且所有的非主屬性都不傳遞依賴于主碼,則

R(U,F)S3NF。

3.什么是部分函數(shù)依賴?什么是傳遞函數(shù)依賴?請舉例說明。

答:部分函數(shù)依賴:如果X-Y,并且對于X的一個任意真子集X,有X,一Y成立,則稱

Y部分函數(shù)依賴于X。

傳遞函數(shù)依賴:如果X-Y、Y-Z,則稱Z傳遞函數(shù)依賴于X。

例1.對于關系模式:選課(學號,姓名,課程號,成績)

該關系模式的主碼是(學號,課程號),而有:學號分姓名

因此姓名對主碼是部分函數(shù)依賴關系。

例2.對于關系模式:學生(學號,姓名,所在系,系主任)

該關系模式的主碼是:學號,由于有:學號令所在系,所在系9系主任

因此系主任對學號是傳遞函數(shù)依賴關系。

4.第三范式的關系模式是否一定不包含部分依賴關系?

答:是。

5.對于主碼只由一個屬性組成的關系模式,如果它是第一范式關系模式,則它是否一

定也是第二范式關系模式?

答:是。

6.設有關系模式:學生修課(學號,姓名,所在系,性別,課程號,課程名,學分,成績)。

設一個學生可以選多門課程,一門課程可以被多名學生選。每個學生對每門課程有唯一

的考試成績。一個學生有唯一的所在系,每門課程有唯一的課程名和學分。請指出此關

系模式的候選碼,判斷此關系模式是第幾范式的,若不是第三范式的,請將其規(guī)范化為

第三范式關系模式,并指出分解后的每個關系模式的主碼和外碼。

答:候選碼:(學號,課程號)

第一范式。因為有:學號分姓名,因此存在部分函數(shù)依賴(學號,課程號)P-姓名

第三范式關系模式:

學生(箜號,姓名,所在系,性別)

課程(課程號,課程名,學分)

考試(學號,課程號,成績),學號為引用學生的外碼,課程號為引用課程的外碼。

7.設有關系模式:學生(學號,姓名,所在系,班號,班主任,系主任),其語義為:一

個學生只在一個系的一個班學習,一個系只有一個系主任,一個人只擔任一個系的系主

任;一個班只有一名班主任,但一名教師可以擔任多個班的班主任;一個系可以有多個

班。請指出此關系模式的候選碼,判斷此關系模式是第幾范式的,若不是第三范式的,

請將其規(guī)范化為第三范式關系模式,并指出分解后的每個關系模式的主碼和外碼。

答:候選碼:學號

屬于第二范式。

但有:學號分班號,班號分班主任,因此存在傳遞函數(shù)依賴:學號傳遞分班主任。

第三范式關系模式:

學生(學號,姓名,所在系,班號),班號為引用班的外碼,所在系為引用系的外碼。

班(班號,班主任)

系(系名,系主任)

8.設有關系模式:教師授課(課程號,課程名,學分,教師號,教師名,職稱,授課時數(shù),

授課學年),其語義為:一門課程(由課程號決定)有確定的課程名和學分,每名教師

(由教師號決定)有確定的教師名和職稱,每門課程可以由多名教師講授,每名教師也

可以講授多門課程,在同一學年每個教師對每門課程只講授一次,且有確定的授課時數(shù)。

指出此關系模式的候選碼,判斷此關系模式屬于第幾范式,若不屬于第三范式,請將其

規(guī)范化為第三范式關系模式,并指出分解后的每個關系模式的主碼和外碼。。

答:候選碼:(課程號,授課教師號)

屬于第一范式。因為有:課程號分課程名,因此存在部分函數(shù)依賴關系:(課程號,

授課教師號)pl課程名

第三范式關系模式:

課程(課程號,課程名,學分)

教師(教師號,教師名,職稱)

授課(課程號,教師號,授課時數(shù),授課學年),課程號為引用課程的外碼,教師號

為引用教師的外碼。

第7章數(shù)據(jù)庫保護

1.試說明事務的概念及四個特征。

答:事務的概念及四個特征為原子性、一致性、隔離性和持久性。原子性指事務的原子

性是指事務是數(shù)據(jù)庫的邏輯工作單位,事務中的操作,要么都做,要么都不做。一致

性指定事務執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。隔

離性指數(shù)據(jù)庫中一個事務的執(zhí)行不能被其他事務干擾。持久性指事務一旦提交,則其

對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久的。

2.事務處理模型有哪兩種?

答:一種是ISO制定的事務處理模型,即明尾暗頭;另一種是T-SQL事務處理模型,即

事務有明確的開始和結(jié)束標記。

3.并發(fā)控制的措施是什么?

答:加鎖。

4.設有如下三個事務:

TLB二A+1:T2:B=B*2:T3:A=B+1

(1)設A的初值為2,B的初值為1,如果這三個事務并發(fā)的執(zhí)行,則可能的正確的執(zhí)行

結(jié)果有哪些?

答:Ti-T23T3:A=7B=6

ITT39T2:A=4B=6

T2^TI^T3:A=3B=3

A=3B=4

T;^TI^T2:A=2B=6

T^L^Ti:A=2B=3

(2)給出一種遵守兩段鎖協(xié)議的并發(fā)調(diào)度策略。

5.當某個事務對某段數(shù)據(jù)加了S鎖之后,在此事務釋放鎖之前,其他事務可以對此段數(shù)據(jù)

加什么鎖?

答:S鎖(共享鎖)。

6.什么是死鎖?如何預防死鎖?

答:事務為得到某個資源而處于無限等待狀態(tài),就是死鎖。預防死鎖的方法有多種,常用

的方法有一次封鎖法和順序封鎖法。

7.三級封鎖協(xié)議分別是什么?各級封鎖協(xié)議的主要區(qū)別是什么?每一級封鎖協(xié)議能保證

什么?

答:一級封鎖協(xié)議:對事務T要修改的數(shù)據(jù)加X鎖,直到事務結(jié)束(包括正常結(jié)束和非正

常結(jié)束)時才釋放。

二級封鎖協(xié)議:一級封鎖協(xié)議加上事務T對要讀取的數(shù)據(jù)加S鎮(zhèn),讀完后即釋放S鎖。

三級封鎖協(xié)議:一級封鎖協(xié)議加上事務T對要讀取的數(shù)據(jù)加S鎖,并直到事務結(jié)束才釋

放。

三個封鎖協(xié)議的區(qū)別是在對讀數(shù)據(jù)的加鎖上。

一級封鎖協(xié)議可以防止丟失修改;二級封鎖協(xié)議除了可以防止丟失修改外,還可以防止

讀“臟”數(shù)據(jù);三級封鎖協(xié)議除了可以防止丟失修改和不讀“臟”數(shù)據(jù)之外,還進一步防止

了不可重復讀。

8.什么是可串行化調(diào)度?如何判斷一個并行執(zhí)行的結(jié)果是否是正確的?

答:多個事務的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一順序的串行執(zhí)行的結(jié)果相同,

稱這種調(diào)度為可串行化的調(diào)度。

如果并發(fā)調(diào)度的執(zhí)行結(jié)果和某個串行調(diào)度結(jié)果一樣,這個并發(fā)調(diào)度就是正確的調(diào)度。

9.兩段鎖的含義是什么?

答:兩段鎖是指所有的事務必須分為兩個階段對數(shù)據(jù)進行加鎖和解鎖,具體內(nèi)容如下:

?在對任何數(shù)據(jù)進行讀、寫操作之前,首先要獲得對該數(shù)據(jù)的封鎖。

?在釋放一個封鎖之后,事務不再申請和獲得任何其他鎖。。

10.數(shù)據(jù)庫故障大致分為幾類?

答:主要有三類:事務內(nèi)部的故障;系統(tǒng)故障;其他故障。

11.數(shù)據(jù)庫備份的作用是什么?

答:主要有三類:事務內(nèi)部的故障;系統(tǒng)故障;其他故障。

第8章數(shù)據(jù)庫設計

1.簡述數(shù)據(jù)庫的設計過程。

答;數(shù)據(jù)庫設計一般包含如下過程;

?需求分析。

?結(jié)構(gòu)設計,包括概念結(jié)構(gòu)設計、邏輯結(jié)構(gòu)設計和物理結(jié)構(gòu)設計。

?行為設計,包括功能設計、事務設計和程序設計。

?數(shù)據(jù)庫實施,包括加載數(shù)據(jù)庫數(shù)據(jù)和調(diào)試運行應用程序。

?數(shù)據(jù)庫運行和維護階段。

2.數(shù)據(jù)庫結(jié)構(gòu)設計包含哪幾個過程?

答:概念結(jié)構(gòu)設計、邏輯結(jié)構(gòu)設計和物理結(jié)構(gòu)設計。

3.需求分析中發(fā)現(xiàn)事實的方法有哪些?

答:常用的有檢查文檔、面談、觀察操作中的業(yè)務、研究和問卷調(diào)查等。

4.數(shù)據(jù)庫概念結(jié)構(gòu)設計有哪些特點?

答:

?有豐富的語義表達能力。

?易于交流和理解。

?易于更改°

?易于向各種數(shù)據(jù)模型轉(zhuǎn)換,易于導出與DBMS有關的邏輯模型。

5.什么是數(shù)據(jù)庫的邏輯結(jié)構(gòu)設計?簡述其設計步驟。

答:邏輯結(jié)構(gòu)設計的任務是把在概念結(jié)構(gòu)設計中設計的基本E-R模型轉(zhuǎn)換為具體的數(shù)據(jù)

庫管理系統(tǒng)支持的組織層數(shù)據(jù)模型。

邏輯結(jié)構(gòu)設計一般包含兩個步驟:

(1)將概念結(jié)構(gòu)轉(zhuǎn)換為某種組織層數(shù)據(jù)模型。

(2)對組織層數(shù)據(jù)模型進行優(yōu)化。

6.把E-R模型轉(zhuǎn)換為關系模式的轉(zhuǎn)換規(guī)則有哪些?

答:轉(zhuǎn)換的一般規(guī)則如下:

一個實體轉(zhuǎn)換為一個關系模式。實體的屬性就是關系的屬性,實體的碼就是關系的

主碼。

對于實體間的聯(lián)系有以下不同的情況:

(1)1:1聯(lián)系一般是將聯(lián)系與任意一端實體所對應的關系模式合并,即在一個實體

的關系模式的屬性中加入另一個實體的碼和聯(lián)系本身的屬性。

(2)1:n聯(lián)系一般與n端所對應的關系模式合并,即在n端對應的關系模式中加入

1端實體的碼以及聯(lián)系本身的屬性。

(3)m:n聯(lián)系必須轉(zhuǎn)換為一個獨立的關系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)

系本身的屬性均轉(zhuǎn)換為此關系模式的屬性,且關系模式的主碼包含各實體的碼。

(4)有相同主碼的關系模式可以合并。

7.數(shù)據(jù)模型的優(yōu)化包含哪些方法?

答:數(shù)據(jù)模型的優(yōu)化通常以關系規(guī)范化理論為指導,并考慮系統(tǒng)的性能。具體為:

(1)確定各屬性間的函數(shù)依賴關系。根據(jù)需求分析階段得出的語義,分別寫出每個關系

模式的各屬性之間的函數(shù)依賴以及不同關系模式中各屬性之間的數(shù)據(jù)依賴關系。

(2)對各個關系模式之間的數(shù)據(jù)依賴進行極小化處理,消除冗余的聯(lián)系。

(3)判斷每個關系模式的范式,根據(jù)實際需要確定最合適的范式。

(4)根據(jù)需求分析階段得到的處理要求,分析這些模式對于這樣的應用環(huán)境是否合適,

確定是否要對某些模式進行分解或合并。

(5)對關系模式進行必要的分解,以提高數(shù)據(jù)的操作效率和存儲空間的利用率。常用的

分解方法是水平分解和垂直分解。

8.圖7-28(a)~(d)所示為某企業(yè)信息管理系統(tǒng)中的局部E-R圖,請將這些局部E-R

圖合并為一個全局E-R圖,并指明各實體以及聯(lián)系的屬性,標明聯(lián)系的種類(注:

為使圖形簡潔明了,在全局E-R圖中可只畫出實體和聯(lián)系,屬性單獨用文字描述)。

將合并后的E-R圖轉(zhuǎn)換為符合3NF要求的關系模式,并說明主碼和外碼。

9.將下列E-R圖轉(zhuǎn)換為符合3NF的關系模式,并指出每個關系模式的主碼和外碼。

(1)圖8-27所示為描述圖書、讀者以及讀者借閱圖書的E-R圖。

答:對圖書、讀者E-R模型,轉(zhuǎn)換后的關系模式為:

圖書(書號,書名,出版日期,作者)

讀者(讀者編號,讀者姓名,聯(lián)系電話,所在單位)

借閱(書號,讀者編號,借書日期)書號為引用圖書的外碼,讀者編號為引用讀者

的外碼。

(2)

廠家(廠家編號,聯(lián)系地址,聯(lián)系電話)

商店(商店編號,商店名,聯(lián)系電話)

商品(商品編號,商品名稱,庫存量,商品分類),

訂購(商店號,廠家編號,商品編號,訂購日期,訂購數(shù)量),商店號為引用商店的

外碼,商品編號為引用商品的外瑪,廠家編號為引用廠家的外碼。

(3)

學生(學號,姓名,性別,專業(yè),社團號,參加日期),社團號是引用社團的外碼。

社團(社團號,社團名,電話,性質(zhì))

第9章SQLServer基礎

二.SQLServer2012提供了幾個版本?

答:提供了企業(yè)版、商業(yè)智能版、標準版、開發(fā)版、簡易版。

對操作系統(tǒng)的要求:

2.安裝SQLServer2012對硬盤及內(nèi)存的要求分別是什么?

答:全部安裝大概需要4GB空間,內(nèi)存不小于IGBo

3.SQLServer實例的含義是什么?實例名的作用是什么?

答:實例代表一個實際安裝的SQLServer,實例名標識了每個不同的實例。

4.SQLServer2012的核心引擎是什么?

答:SQLServer(MSSQLSERVER)。

5.SQLServer2012提供的設置服務啟動方式的工具是哪個?

答:SQLServerConfigurationManager。

7.提供通過圖形化方法操作數(shù)據(jù)庫的工具是哪個?

答:SQLServerManagementStudio。

第10章數(shù)據(jù)庫及表的創(chuàng)建與管理

1.根據(jù)數(shù)據(jù)庫用途的不同,SQLServer將數(shù)據(jù)庫分為哪兩類?

答:系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。

2.安裝完SQLServer之后系統(tǒng)提供了哪些系統(tǒng)數(shù)據(jù)庫?每個系統(tǒng)數(shù)據(jù)庫的作用是什么?

答:4個系統(tǒng)數(shù)據(jù)庫:master、msdb>model和tempdbo

?master:用于記錄SQLServer系統(tǒng)中所有系統(tǒng)級信息。

?msdb:供SQLServer代理服務調(diào)度報警和作業(yè)以及記錄操作員時使用,保

存關于調(diào)度報警、作業(yè)、操作員等信息。

?mode1:包含所有用戶數(shù)據(jù)庫的共享信息。

?tempdb:是臨時數(shù)據(jù)走,用于存儲用戶創(chuàng)建的臨時表、用戶聲明的變量以及

用戶定義的游標數(shù)據(jù)等,并為數(shù)據(jù)的排序等操作提供一個臨時工作空間。

3.SQLServer數(shù)據(jù)庫由哪兩類文件組成?這些文件的推薦擴展名分別是什么?

答:數(shù)據(jù)文件和日志文件。數(shù)據(jù)文件中主數(shù)據(jù)文件的推薦擴展名為:.mdf;次要數(shù)據(jù)文

件的推薦擴展名為:.ndf。日志文件的推薦擴展名為:

4.SQLServer數(shù)據(jù)庫可以包含幾個主要數(shù)據(jù)文件?幾個次要數(shù)據(jù)文件?幾個日志文件?

答:1個主數(shù)據(jù)文件,。個或多個次要數(shù)據(jù)文件,1個或多個日志文件。

5.數(shù)據(jù)文件和口志文件分別包含哪些屬性?

答:包含:邏輯文件名、物理存儲位置、初始大小、增長方式、最大大小5個屬性。

6.SQLServer中數(shù)據(jù)的存儲單位是什么?存儲單位對存儲數(shù)據(jù)有何限制?

答:數(shù)據(jù)頁。數(shù)據(jù)頁是數(shù)據(jù)的最小存儲分配單位,其大小也就是表中一行數(shù)據(jù)的最大大

小,因為行不能跨頁存儲。

7.SQLServer2012每個數(shù)據(jù)頁的大小是多少?數(shù)據(jù)頁的大小對表中一行數(shù)據(jù)大小的限制

有何關系?

答:8KB。表中一行數(shù)據(jù)的大小不能超過一個數(shù)據(jù)頁的大小。

8.如何估算某個數(shù)據(jù)表所占的存儲空間?如果某個數(shù)據(jù)表包含20000行數(shù)據(jù),每行的

大小是5000字節(jié),則此數(shù)據(jù)庫表大約需要多少存儲空間?在這些存儲空間中,有多少

空間是浪費的?

答:根據(jù)數(shù)據(jù)是按數(shù)據(jù)頁存儲,且行不能跨頁存儲的原則即可估算出一個數(shù)據(jù)表所占的

大致空間。需要160MB。有差不多3/8是浪費的。

9.用戶創(chuàng)建數(shù)據(jù)

溫馨提示

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

評論

0/150

提交評論