第一篇:2015年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案
2012年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案
一、選擇題
1.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為
C。
A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)
B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)
C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)
D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
2.?dāng)?shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中的表示是指 A。
A.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
B.?dāng)?shù)據(jù)結(jié)構(gòu)
C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)
D.?dāng)?shù)據(jù)元素之間的關(guān)系
3.在數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的A
結(jié)構(gòu)。
A.邏輯 B.存儲(chǔ)
C.邏輯和存儲(chǔ)
D.物理
4.在存儲(chǔ)數(shù)據(jù)時(shí),通常不僅要存儲(chǔ)各數(shù)據(jù)元素的值,而且還要存儲(chǔ)
C。
A.?dāng)?shù)據(jù)的處理方法
B.?dāng)?shù)據(jù)元素的類型
C.?dāng)?shù)據(jù)元素之間的關(guān)系
D.?dāng)?shù)據(jù)的存儲(chǔ)方法
5.在決定選取何種存儲(chǔ)結(jié)構(gòu)時(shí),一般不考慮
A。
A.各結(jié)點(diǎn)的值如何
B.結(jié)點(diǎn)個(gè)數(shù)的多少
C.對(duì)數(shù)據(jù)有哪些運(yùn)算
D.所用的編程語言實(shí)現(xiàn)這種結(jié)構(gòu)是否方便。
6.以下說法正確的是 D。
A.?dāng)?shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位
B.?dāng)?shù)據(jù)元素是數(shù)據(jù)的最小單位
C.?dāng)?shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項(xiàng)的集合
D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)
7.算法分析的目的是 C,算法分析的兩個(gè)主要方面是 A。
(1)A.找出數(shù)據(jù)結(jié)構(gòu)的合理性
B.研究算法中的輸入和輸出的關(guān)系
C.分析算法的效率以求改進(jìn)
C.分析算法的易讀性和文檔性
(2)A.空間復(fù)雜度和時(shí)間復(fù)雜度
B.正確性和簡(jiǎn)明性
C.可讀性和文檔性
D.?dāng)?shù)據(jù)復(fù)雜性和程序復(fù)雜性
8.下面程序段的時(shí)間復(fù)雜度是 O(n2)。
s =0;
for(I =0; i<n; i++)
for(j=0;j<n;j++)
s +=B[i][j];
sum = s ;
9.下面程序段的時(shí)間復(fù)雜度是 O(n*m)。
for(i =0; i<n; i++)
for(j=0;j<m;j++)
A[i][j] = 0;
10.下面程序段的時(shí)間復(fù)雜度是 O(log3n)。
i = 0;
while(i<=n)
i = i * 3;
11.在以下的敘述中,正確的是
B。
A.線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈表存儲(chǔ)結(jié)構(gòu)
B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表
C.棧的操作方式是先進(jìn)先出
(先進(jìn)后出)
D.隊(duì)列的操作方式是先進(jìn)后出
(先進(jìn)先出,尾進(jìn)首出)
12.通常要求同一邏輯結(jié)構(gòu)中的所有數(shù)據(jù)元素具有相同的特性,這意味著 B。
A.?dāng)?shù)據(jù)元素具有同一特點(diǎn)
B.不僅數(shù)據(jù)元素所包含的數(shù)據(jù)項(xiàng)的個(gè)數(shù)要相同,而且對(duì)應(yīng)的數(shù)據(jù)項(xiàng)的類型要一致
C.每個(gè)數(shù)據(jù)元素都一樣
D.?dāng)?shù)據(jù)元素所包含的數(shù)據(jù)項(xiàng)的個(gè)數(shù)要相等
13.鏈表不具備的特點(diǎn)是
A
。(順序表是隨機(jī)訪問的,只要知道首元素的地址,就可以知道任意的第i個(gè)元素的地址)
A.可隨機(jī)訪問任一結(jié)點(diǎn)
B.插入刪除不需要移動(dòng)元素
C.不必事先估計(jì)存儲(chǔ)空間
D.所需空間與其長度成正比
14.不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是
A。
A head==NULL
B head->next ==NULL
C.head->next ==head
D head?。絅ULL
15.帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是
B。
A head==NULL
B head->next ==NULL
C.head->next ==head
D head?。絅ULL
16.若某表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)或刪除最后一個(gè)結(jié)點(diǎn),則采用 D 存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。
A.單鏈表
B.給出表頭指針的單循環(huán)鏈表
C.雙鏈表
D.帶頭結(jié)點(diǎn)的雙循環(huán)鏈表
17.需要分配較大空間,插入和刪除不需要移動(dòng)元素的線性表,其存儲(chǔ)結(jié)構(gòu)是
B。
A.單鏈表
B.靜態(tài)鏈表
C.線性鏈表
D.順序存儲(chǔ)結(jié)構(gòu)(需要移動(dòng)元素)
動(dòng)態(tài)鏈表不需要分配很大的空間,如果空間不足夠,可以申請(qǐng)空間,靜態(tài)鏈表只能使用初始化時(shí)候的空間,不能夠追加空間
18.非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向)滿足 C。
A.p->next == NULL
B.p == NULL
C.p->next ==head
D.p == head 19.在循環(huán)雙鏈表的p所指的結(jié)點(diǎn)之前插入s所指結(jié)點(diǎn)的操作是
D。
P->prior->next=s;S-prior=p->prior;S->next=p;P->prior=s;
A.p->
prior->
prior
B.p->
prior->
prior
C.s->
prior->next = s
D.s->
prior->
prior = s
20.如果最常用的操作是取第i個(gè)結(jié)點(diǎn)及其前驅(qū),則采用 D 存儲(chǔ)方式最節(jié)省時(shí)間。
A.單鏈表
B.雙鏈表
C.單循環(huán)鏈表
D. 順序表
21.在一個(gè)具有n個(gè)結(jié)點(diǎn)的有序單鏈表中插入一個(gè)新結(jié)點(diǎn)并仍然保持有序的時(shí)間復(fù)雜度是 B。
A.O(1)
B.O(n)
C.O(n2)
D.O(nlog2n)
22.在一個(gè)長度為n(n>1)的單鏈表上,設(shè)有頭和尾兩個(gè)指針,執(zhí)行
B 操作與鏈表的長度有關(guān)。
A.刪除單鏈表中的第一個(gè)元素
B.刪除單鏈表中的最后一個(gè)元素
C.在單鏈表第一個(gè)元素前插入一個(gè)新元素
D.在單鏈表最后一個(gè)元素后插入一個(gè)新元素
23.與單鏈表相比,雙鏈表的優(yōu)點(diǎn)之一是 D。
A.插入、刪除操作更簡(jiǎn)單
B.可以進(jìn)行隨機(jī)訪問
C.可以省略表頭指針或表尾指針
D.順序訪問相鄰結(jié)點(diǎn)更靈活
24.如果對(duì)線性表的操作只有兩種,即刪除第一個(gè)元素,在最后一個(gè)元素的后面插入新元素,則最好使用
B。
A.只有表頭指針沒有表尾指針的循環(huán)單鏈表
B.只有表尾指針沒有表頭指針的循環(huán)單鏈表
C.非循環(huán)雙鏈表
D.循環(huán)雙鏈表
25.在長度為n的順序表的第i個(gè)位置上插入一個(gè)元素(1≤ i ≤n+1),元素的移動(dòng)次數(shù)為:
A。
A.n – i + 1
B.n – i
C.i
D.i – 1
26.對(duì)于只在表的首、尾兩端進(jìn)行插入操作的線性表,宜采用的存儲(chǔ)結(jié)構(gòu)為
C。
A.順序表
B. 用頭指針表示的循環(huán)單鏈表
C.用尾指針表示的循環(huán)單鏈表
D.單鏈表
27.下述哪一條是順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)?
C。
A插入運(yùn)算方便
B可方便地用于各種邏輯結(jié)構(gòu)的存儲(chǔ)表示
C存儲(chǔ)密度大
D刪除運(yùn)算方便(需要移動(dòng)元素)
28.下面關(guān)于線性表的敘述中,錯(cuò)誤的是哪一個(gè)?
B。
A線性表采用順序存儲(chǔ),必須占用一片連續(xù)的存儲(chǔ)單元
B線性表采用順序存儲(chǔ),便于進(jìn)行插入和刪除操作。
C線性表采用鏈?zhǔn)酱鎯?chǔ),不必占用一片連續(xù)的存儲(chǔ)單元
D線性表采用鏈?zhǔn)酱鎯?chǔ),便于進(jìn)行插入和刪除操作。
29.線性表是具有n個(gè)
B的有限序列。
A.字符
B.?dāng)?shù)據(jù)元素
C.?dāng)?shù)據(jù)項(xiàng)
D.表元素
30.在n個(gè)結(jié)點(diǎn)的線性表的數(shù)組(順序表)實(shí)現(xiàn)中,算法的時(shí)間復(fù)雜度是O(1)的操作是
A。
A.訪問第i(1<=i<=n)個(gè)結(jié)點(diǎn)和求第i個(gè)結(jié)點(diǎn)的直接前驅(qū)(1<i<=n)
B.在第i(1<=i<=n)個(gè)結(jié)點(diǎn)后插入一個(gè)新結(jié)點(diǎn)
C.刪除第i(1<=i<=n)個(gè)結(jié)點(diǎn)
D.以上都不對(duì)
31.若長度為n的線性表采用順序存儲(chǔ)結(jié)構(gòu),在其第i個(gè)位置插入一個(gè)新元素的算法的時(shí)間復(fù)雜度為C。
A.O(0)
B.O(1)
C.O(n)
D.O(n2)
32.對(duì)于順序存儲(chǔ)的線性表,訪問結(jié)點(diǎn)和增加、刪除結(jié)點(diǎn)的時(shí)間復(fù)雜度為
C
。(增加一個(gè)元素需要平均移動(dòng)n/2個(gè)元素,刪除一個(gè)元素需要平均移動(dòng)n-1/2個(gè)元素)
A.O(n)O(n)
B.O(n)O(1)
C.O(1)O(n)
D.O(1)O(1)
33.線性表(a1,a2,…,an)以鏈?zhǔn)椒绞酱鎯?chǔ),訪問第i位置元素的時(shí)間復(fù)雜度為
C。
A.O(0)
B.O(1)
C.O(n)
D.O(n2)
34.單鏈表中,增加一個(gè)頭結(jié)點(diǎn)的目的是為了 C。
A.使單鏈表至少有一個(gè)結(jié)點(diǎn)
B.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置
C.方便運(yùn)算的實(shí)現(xiàn)
D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)
35.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是
B。
S->next=p->next;P->next=s;
A.p->
next=p->
next=p->
next=s;
C.p->
next=s->
next=s->next;p->next=s
36.線性表的順序存儲(chǔ)結(jié)構(gòu)是一種 A。
A.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)
B.順序存取的存儲(chǔ)結(jié)構(gòu)
C.索引存取的存儲(chǔ)結(jié)構(gòu)
D.Hash存取的存儲(chǔ)結(jié)構(gòu)
37.棧的特點(diǎn)是
B,隊(duì)列的特點(diǎn)是 A。
A.先進(jìn)先出
B.先進(jìn)后出
38.棧和隊(duì)列的共同點(diǎn)是 C。
A.都是先進(jìn)后出
B.都是先進(jìn)先出
C.只允許在端點(diǎn)處插入和刪除元素
D.沒有共同點(diǎn)
39.一個(gè)棧的進(jìn)棧序列是a,b,c,d,e,則棧的不可能的輸出序列是
C。
A.edcba
B.decba
C.dceab
D.a(chǎn)bcde
40.設(shè)有一個(gè)棧,元素依次進(jìn)棧的順序?yàn)锳、B、C、D、E。下列
C
是不可能的出棧序列。
A.A,B,C,D,E
B.B,C,D,E,A
C.E,A,B,C,D
D.E,D,C,B,A
41.以下
B
不是隊(duì)列的基本運(yùn)算?(隊(duì)列只能隊(duì)列尾插入,隊(duì)列頭刪除)
A.從隊(duì)尾插入一個(gè)新元素
B.從隊(duì)列中刪除第i個(gè)元素
C.判斷一個(gè)隊(duì)列是否為空
D.讀取隊(duì)頭元素的值
42.若已知一個(gè)棧的進(jìn)棧序列是1,2,3,n,其輸出序列為p1,p2,p3,…,pn,若p1=n,則pi為
C。
A.i
B.n-i
C.n-i+
1D.不確定
43.判定一個(gè)順序棧st(最多元素為MaxSize)為空的條件是 B。
A.st->top!
top == -1
C.st->top!
top == MaxSize
44.判定一個(gè)順序棧st(最多元素為MaxSize)為滿的條件是 D。
A.st->top!
top == -1
C.st->top!
top == MaxSize
45.一個(gè)隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的輸出序列是 B。
A.4,3,2,1
B.1,2,3,4
C.1,4,3,2D.3,2,4,1
46.判定一個(gè)循環(huán)隊(duì)列qu(最多元素為MaxSize)為空的條件是 C。
A.qu->rear – qu->
rear – qu->front -1==MaxSize
C.qu->front==qu->rear
front -1
47.在循環(huán)隊(duì)列中,若front與rear 分別表示對(duì)頭元素和隊(duì)尾元素的位置,則判斷循環(huán)隊(duì)列空的條件是
C。
A.front==rear+1
B.rear==front+1
C.front==rear
D.front==0
48.向一個(gè)棧頂指針為h的帶頭結(jié)點(diǎn)的鏈棧中插入指針s所指的結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行 D 操作。
(鏈棧的操作和鏈表類似)
A.h->
next=h ;
C.s->
next=h->
next=s ;
49.輸入序列為ABC,可以變?yōu)镃BA時(shí),經(jīng)過的棧操作為
B。
A.push,pop,push,pop,push,pop
B.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,pop
D.push,pop,push,push,pop,pop(push是壓棧的意思,pop是彈出棧的意思)
50.若棧采用順序存儲(chǔ)方式存儲(chǔ),現(xiàn)兩棧共享空間V[1 m],top[1]、top[2]分別代表第1和第2個(gè)棧的棧頂,棧1的底在V[1],棧2的底在V[m],則棧滿的條件是
B。
A.|top[2]-top[1]|=0
B. top[1]+1=top[2]
C.top[1]+top[2]=m
D.top[1]=top[2]
51.設(shè)計(jì)一個(gè)判別表達(dá)式中左、右括號(hào)是否配對(duì)出現(xiàn)的算法,采用 D
數(shù)據(jù)結(jié)構(gòu)最佳。
A.線性表的順序存儲(chǔ)結(jié)構(gòu)
B.隊(duì)列
C.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
D.棧
52.允許對(duì)隊(duì)列進(jìn)行的操作有 D。
A.對(duì)隊(duì)列中的元素排序
B.取出最近進(jìn)隊(duì)的元素
C.在隊(duì)頭元素之前插入元素
D.刪除隊(duì)頭元素
53.對(duì)于循環(huán)隊(duì)列
D。
A.無法判斷隊(duì)列是否為空
B.無法判斷隊(duì)列是否為滿
C.隊(duì)列不可能滿
D.以上說法都不對(duì) 循環(huán)隊(duì)列滿的標(biāo)志:front==rear+1 對(duì)列空的標(biāo)志:front==rear
54.若用一個(gè)大小為6的數(shù)值來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為
B。
當(dāng)前隊(duì)列中元素個(gè)數(shù)公式:(rear-front+n)%n
A.1和B.2和C.4和
2D.5和1
55.隊(duì)列的“先進(jìn)先出”特性是指
D。
A.最早插入隊(duì)列中的元素總是最后被刪除
B.當(dāng)同時(shí)進(jìn)行插入、刪除操作時(shí),總是插入操作優(yōu)先
C.每當(dāng)有刪除操作時(shí),總是要先做一次插入操作
D.每次從隊(duì)列中刪除的總是最早插入的元素
56.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是 A。
A.通常不會(huì)出現(xiàn)棧滿的情況
B. 通常不會(huì)出現(xiàn)棧空的情況
C.插入操作更容易實(shí)現(xiàn)
D.刪除操作更容易實(shí)現(xiàn)
57.用不帶頭結(jié)點(diǎn)的單鏈表存儲(chǔ)隊(duì)列,其頭指針指向隊(duì)頭結(jié)點(diǎn),尾指針指向隊(duì)尾結(jié)點(diǎn),則在進(jìn)行出隊(duì)操作時(shí)
C。
A.僅修改隊(duì)頭指針
B.僅修改隊(duì)尾指針
C.隊(duì)頭、隊(duì)尾指針都可能要修改
D.隊(duì)頭、隊(duì)尾指針都要修改
71.樹最適合用來表示
C。
A.有序數(shù)據(jù)元素
B.無序數(shù)據(jù)元素
C.元素之間具有分支層次關(guān)系的數(shù)據(jù)
D.元素之間無聯(lián)系的數(shù)據(jù)
72.深度為5的二叉樹至多有
C
個(gè)結(jié)點(diǎn)。
A.16
B.
32C. 3C.
73.對(duì)一個(gè)滿二叉樹,m個(gè)葉子,n個(gè)結(jié)點(diǎn),深度為h,則 D。
A.n = h+m
B h+m = 2n
C m = h-1
D n = 2h-1
74.任何一棵二叉樹的葉子結(jié)點(diǎn)在前序、中序和后序遍歷序列中的相對(duì)次序
A。
A.不發(fā)生改變
B.發(fā)生改變
C.不能確定
D.以上都不對(duì)
75.在線索化樹中,每個(gè)結(jié)點(diǎn)必須設(shè)置一個(gè)標(biāo)志來說明它的左、右鏈指向的是樹結(jié)構(gòu)信息,還是線索化信息,若0標(biāo)識(shí)樹結(jié)構(gòu)信息,1標(biāo)識(shí)線索,對(duì)應(yīng)葉結(jié)點(diǎn)的左右鏈域,應(yīng)標(biāo)識(shí)為__ D __。
A.00
B.0
1C.10
D.11
76.在下述論述中,正確的是
D。
①只有一個(gè)結(jié)點(diǎn)的二叉樹的度為0;②二叉樹的度為2;③二叉樹的左右子樹可任意交換;
④深度為K的順序二叉樹的結(jié)點(diǎn)個(gè)數(shù)小于或等于深度相同的滿二叉樹。
A.①②③
B.②③④
C.②④
D.①④
77.設(shè)森林F對(duì)應(yīng)的二叉樹為B,它有m個(gè)結(jié)點(diǎn),B的根為p,p的右子樹的結(jié)點(diǎn)個(gè)數(shù)為n,森林F中第一棵樹的結(jié)點(diǎn)的個(gè)數(shù)是
A。
A.m-n
B.m-n-1
C.n+1
D.不能確定
78.若一棵二叉樹具有10個(gè)度為2的結(jié)點(diǎn),5個(gè)度為1的結(jié)點(diǎn),則度為0的結(jié)點(diǎn)的個(gè)數(shù)是 B。
A.9
B.11
C.1
5D.不能確定
79.具有10個(gè)葉子結(jié)點(diǎn)的二叉樹中有
B
個(gè)度為2的結(jié)點(diǎn)。
A.8
B.9
C.10
D.11
80.在一個(gè)無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的 C
倍。
A.1/
2B 1
C 2
D 4 同一條邊被兩端頂點(diǎn)計(jì)算了兩次
81.在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的 B 倍。
A.1/2
B 1
C 2
D 4 在一個(gè)有向圖中,入度之和等于出度之和
82.某二叉樹結(jié)點(diǎn)的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為:
C
A.B.2
C.4
D.5
83.已知一算術(shù)表達(dá)式的中綴形式為A+B *C–D/E,后綴形式為ABC *+DE/–,其前綴形式為
D。
A.–A+B*C/DE
B.–A+B*CD/E
C –+*ABC/DE
D.–+A*BC/DE
84.已知一個(gè)圖,如圖所示,若從頂點(diǎn)a出發(fā)按深度搜索法進(jìn)行遍歷,則可能得到的一種頂點(diǎn)序列為____D___;按廣度搜索法進(jìn)行遍歷,則可能得到的一種頂點(diǎn)序列為___A___;
①A.a(chǎn),b,e,c,d,f
B.a(chǎn),c,f,e,b,d C.a(chǎn),e,b,c,f,d,D.a(chǎn),e,d,f,c,b
②A.a(chǎn),b,c,e,d,f
B.a(chǎn),b,c,e,f,d C.a(chǎn),e,b,c,f,d,D.a(chǎn),c,f,d,e,b
85.采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似于二叉樹的___A____。
A.先序遍歷
B.中序遍歷
C.后序遍歷
D.按層遍歷 這是因?yàn)閳D的深度優(yōu)先遍歷算法先訪問所在結(jié)點(diǎn),再訪問它的鄰接點(diǎn)。與二叉樹的先序遍歷先訪問子樹的根結(jié)點(diǎn),再訪問它的孩子結(jié)點(diǎn)(鄰接點(diǎn))類似。圖的廣度優(yōu)先遍歷算法類似于二叉樹的按層次遍歷。
86.采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類似于二叉樹的___D____。
A.先序遍歷
B.中序遍歷
C.后序遍歷
D.按層遍歷
87.具有n 個(gè)結(jié)點(diǎn)的連通圖至少有
A
條邊。
A. n-1
B. n
C. n(n-1)/2
D. 2n
88.廣義表((a),a)的表頭是 C,表尾是 C。
A.a(chǎn)
B()
C(a)
D((a))
89.廣義表((a))的表頭是 C,表尾是 B。
A.a(chǎn)
B()
C(a)
D((a))
90.順序查找法適合于存儲(chǔ)結(jié)構(gòu)為
B 的線性表。
A 散列存儲(chǔ)
B 順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)
C 壓縮存儲(chǔ)
D 索引存儲(chǔ)
91.對(duì)線性表進(jìn)行折半查找時(shí),要求線性表必須 B。
A 以順序方式存儲(chǔ)
B 以順序方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
C 以鏈?zhǔn)椒绞酱鎯?chǔ)
D 以鏈?zhǔn)椒绞酱鎯?chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
折半查找必須是順序存儲(chǔ),而且關(guān)鍵字必須是有序的
92.采用折半查找法查找長度為n的線性表時(shí),每個(gè)元素的平均查找長度為
D。
A O(n2)
B O(nlog2n)
C O(n)
D O(log2n)
93.有一個(gè)有序表為{1,3,9,12,32,41,45,62,75,77,82,95,100},當(dāng)折半查找值為82的結(jié)點(diǎn)時(shí),C
次比較后查找成功。
A. 11
B 5
C
4D
94.二叉樹為二叉排序樹的充分必要條件是其任一結(jié)點(diǎn)的值均大于其左孩子的值、小于其右孩子的值。這種說法
B。
A
正確
B
錯(cuò)誤 二叉樹是二叉排序樹的充要條件:
(1)若左子樹不空,則左子樹上所有結(jié)點(diǎn)的值均小于它的根結(jié)點(diǎn)的值;(2)若右子樹不空,則右子樹上所有結(jié)點(diǎn)的值均大于或等于它的根結(jié)點(diǎn)的值;(3)左、右子樹也分別為二叉排序樹;(4)沒有鍵值相等的節(jié)點(diǎn)。
95.下面關(guān)于B樹和B+樹的敘述中,不正確的結(jié)論是
A。
A B樹和B+樹都能有效的支持順序查找
B B樹和B+樹都能有效的支持隨機(jī)查找
C B樹和B+樹都是平衡的多叉樹
D B樹和B+樹都可用于文件索引結(jié)構(gòu)
96.以下說法錯(cuò)誤的是
B。
A.散列法存儲(chǔ)的思想是由關(guān)鍵字值決定數(shù)據(jù)的存儲(chǔ)地址
B.散列表的結(jié)點(diǎn)中只包含數(shù)據(jù)元素自身的信息,不包含指針。
C.負(fù)載因子是散列表的一個(gè)重要參數(shù),它反映了散列表的飽滿程度。
D.散列表的查找效率主要取決于散列表構(gòu)造時(shí)選取的散列函數(shù)和處理沖突的方法。
97.查找效率最高的二叉排序樹是 C。
A.所有結(jié)點(diǎn)的左子樹都為空的二叉排序樹。
B.所有結(jié)點(diǎn)的右子樹都為空的二叉排序樹。
C.平衡二叉樹。
D.沒有左子樹的二叉排序樹。
98.排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進(jìn)行比較,將其放入已排序序列的正確位置上的方法,稱為
C。
A.希爾排序
B。冒泡排序
C插入排序
D。選擇排序
99.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是 D。
A.希爾排序
B.冒泡排序
C.直接插入排序
D.直接選擇排序
100.堆是一種有用的數(shù)據(jù)結(jié)構(gòu)。下列關(guān)鍵碼序列
D
是一個(gè)堆。
A.94,31,53,23,16,7B.94,53,31,72,16,23
C.16,53,23,94,31,72
D.16,31,23,94,53,72
101.堆排序是一種
B
排序。
A.插入
B.選擇
C.交換
D.歸并 堆排序是一種選擇排序
102.
D
在鏈表中進(jìn)行操作比在順序表中進(jìn)行操作效率高。
A.順序查找
B.折半查找
C.分塊查找 D.插入
103.直接選擇排序的時(shí)間復(fù)雜度為
D
。(n 為元素個(gè)數(shù))
A.O(n)
B.O(log2n)
C.O(nlog2n)
D. O(n2)
二、填空題。
1.?dāng)?shù)據(jù)邏輯結(jié)構(gòu)包括 線性結(jié)構(gòu)、樹形結(jié)構(gòu) 和 圖狀結(jié)構(gòu) 三種類型,樹形結(jié)構(gòu)和圖狀結(jié)構(gòu)合稱 非線性結(jié)構(gòu)。
2.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)分為
集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu) 和 圖狀結(jié)構(gòu) 4種。
3.在線性結(jié)構(gòu)中,第一個(gè)結(jié)點(diǎn) 沒有 前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有 1 個(gè)前驅(qū)結(jié)點(diǎn);最后一個(gè)結(jié)點(diǎn) 沒有 后續(xù)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有 1 個(gè)后續(xù)結(jié)點(diǎn)。
4.線性結(jié)構(gòu)中元素之間存在 一對(duì)一 關(guān)系,樹形結(jié)構(gòu)中元素之間存在 一對(duì)多 關(guān)系,圖形結(jié)構(gòu)中元素之間存在 多對(duì)多 關(guān)系。
5.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有 前驅(qū) 結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有 1 個(gè)前驅(qū)結(jié)點(diǎn);葉子結(jié)點(diǎn)沒有 后續(xù) 結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)的后續(xù)結(jié)點(diǎn)可以 任意多個(gè)。
6.?dāng)?shù)據(jù)結(jié)構(gòu)的基本存儲(chǔ)方法是 順序、鏈?zhǔn)?、索?和
散列 存儲(chǔ)。
7.衡量一個(gè)算法的優(yōu)劣主要考慮正確性、可讀性、健壯性和 時(shí)間復(fù)雜度與 空間復(fù)雜度。
8.評(píng)估一個(gè)算法的優(yōu)劣,通常從 時(shí)間復(fù)雜度
和 空間復(fù)雜度
兩個(gè)方面考察。
9.算法的5個(gè)重要特性是 有窮性、確定性、可行性、輸入和輸出。
10.在一個(gè)長度為n的順序表中刪除第i個(gè)元素時(shí),需向前移動(dòng) n-i-1 個(gè)元素。
11.在單鏈表中,要?jiǎng)h除某一指定的結(jié)點(diǎn),必須找到該結(jié)點(diǎn)的 前驅(qū) 結(jié)點(diǎn)。
12.在雙鏈表中,每個(gè)結(jié)點(diǎn)有兩個(gè)指針域,一個(gè)指向 前驅(qū) 結(jié)點(diǎn),另一個(gè)指向 后繼結(jié)點(diǎn)。
13.在順序表中插入或刪除一個(gè)數(shù)據(jù)元素,需要平均移動(dòng) n 個(gè)數(shù)據(jù)元素,移動(dòng)數(shù)據(jù)元素的個(gè)數(shù)與 位置 有關(guān)。
14.當(dāng)線性表的元素總數(shù)基本穩(wěn)定,且很少進(jìn)行插入和刪除操作,但要求以最快的速度存取線性表的元素是,應(yīng)采用 順序
存儲(chǔ)結(jié)構(gòu)。
15.根據(jù)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每一個(gè)結(jié)點(diǎn)包含的指針個(gè)數(shù),將線性鏈表分成 單鏈表
和 雙鏈表。
16.順序存儲(chǔ)結(jié)構(gòu)是通過 下標(biāo)
表示元素之間的關(guān)系的;鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是通過 指針 表示元素之間的關(guān)系的。
17.帶頭結(jié)點(diǎn)的循環(huán)鏈表L中只有一個(gè)元素結(jié)點(diǎn)的條件是 L->next->next=L。
18. 棧 是限定僅在表尾進(jìn)行插入或刪除操作的線性表,其運(yùn)算遵循 后進(jìn)先出 的原則。
19.空串是 零個(gè)字符的串,其長度等于 零??瞻状怯梢粋€(gè)或多個(gè)空格字符組成的串,其長度等于其包含的空格個(gè)數(shù)。
20.組成串的數(shù)據(jù)元素只能是 單個(gè)字符。
21.一個(gè)字符串中 任意個(gè)連續(xù)字符構(gòu)成的部分 稱為該串的子串。
22.子串 ”str” 在主串 ”datastructure” 中的位置是
5。
23.二維數(shù)組M的每個(gè)元素是6個(gè)字符組成的串,行下標(biāo)i的范圍從0到8,列下標(biāo)j的范圍從1到10,則存放M至少需要 540個(gè)字節(jié);M的第8列和第5行共占108個(gè)字節(jié)。
24.稀疏矩陣一般的壓縮存儲(chǔ)方法有兩種,即 三元組表 和 十字鏈表。
25.廣義表((a),((b),c),(((d))))的長度是 3,深
度是 4。
26.在一棵二叉樹中,度為零的結(jié)點(diǎn)的個(gè)數(shù)為n0,度為2 的結(jié)點(diǎn)的個(gè)數(shù)為n2,則有n0=
n2+1。
27.在有n個(gè)結(jié)點(diǎn)的二叉鏈表中,空鏈域的個(gè)數(shù)為__n+1__。
28.一棵有n個(gè)葉子結(jié)點(diǎn)的哈夫曼樹共有__2n-1_個(gè)結(jié)點(diǎn)。
29.深度為5的二叉樹至多有
31個(gè)結(jié)點(diǎn)。
30.若某二叉樹有20個(gè)葉子結(jié)點(diǎn),有30個(gè)結(jié)點(diǎn)僅有一個(gè)孩子,則該二叉樹的總結(jié)點(diǎn)個(gè)數(shù)為
69。
31.某二叉樹的前序遍歷序列是abdgcefh,中序序列是dgbaechf,其后序序列為 gdbehfca。
32.線索二叉樹的左線索指向其 遍歷序列中的前驅(qū),右線索指向其遍歷序列中的后繼。
33.在各種查找方法中,平均查找長度與結(jié)點(diǎn)個(gè)數(shù)n無關(guān)的查找方法是 散列查找法。
34.在分塊索引查找方法中,首先查找
索引表
,然后查找相應(yīng)的 塊表。
35.一個(gè)無序序列可以通過構(gòu)造一棵 二叉排序 樹而變成一個(gè)有序序列,構(gòu)造樹的過程即為對(duì)無序序列進(jìn)行排序的過程。
36.具有10個(gè)頂點(diǎn)的無向圖,邊的總數(shù)最多為__45__。
37.已知圖G的鄰接表如圖所示,其從頂點(diǎn)v1出發(fā)的深度優(yōu)先搜索序列為_v1v2v3v6v5v4_,其從頂點(diǎn)v1出發(fā)的廣度優(yōu)先搜索序列為_v1v2v5v4v3v6__。
38.索引是為了加快檢索速度而引進(jìn)的一種數(shù)據(jù)結(jié)構(gòu)。一個(gè)索引隸屬于某個(gè)數(shù)據(jù)記錄集,它由若干索引項(xiàng)組成,索引項(xiàng)的結(jié)構(gòu)為 關(guān)鍵字 和 關(guān)鍵字對(duì)應(yīng)記錄的地址。
39.Prim 算法生成一個(gè)最小生成樹每一步選擇都要滿足 邊的總數(shù)不超過n-1,當(dāng)前選擇的邊的權(quán)值是候選邊中最小的,選中的邊加入樹中不產(chǎn)生回路 三
項(xiàng)原則。
40.在一棵m階B樹中,除根結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn)最多有 m 棵子樹,最少有 m/
2棵子樹。
三、判斷題。
1.在決定選取何種存儲(chǔ)結(jié)構(gòu)時(shí),一般不考慮各結(jié)點(diǎn)的值如何。(√)
2.抽象數(shù)據(jù)類型(ADT)包括定義和實(shí)現(xiàn)兩方面,其中定義是獨(dú)立于實(shí)現(xiàn)的,定義僅給出一個(gè)ADT的邏輯特性,不必考慮如何在計(jì)算機(jī)中實(shí)現(xiàn)。(√)
3.抽象數(shù)據(jù)類型與計(jì)算機(jī)內(nèi)部表示和實(shí)現(xiàn)無關(guān)。(√)
4.順序存儲(chǔ)方式插入和刪除時(shí)效率太低,因此它不如鏈?zhǔn)酱鎯?chǔ)方式好。(×)
5.線性表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),結(jié)點(diǎn)和結(jié)點(diǎn)內(nèi)部的存儲(chǔ)空間可以是不連續(xù)的。(×)
6.對(duì)任何數(shù)據(jù)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)一定優(yōu)于順序存儲(chǔ)結(jié)構(gòu)。(×)
7.順序存儲(chǔ)方式只能用于存儲(chǔ)線性結(jié)構(gòu)。(×)
8.集合與線性表的區(qū)別在于是否按關(guān)鍵字排序。(×)
9.線性表中每個(gè)元素都有一個(gè)直接前驅(qū)和一個(gè)直接后繼。(×)
10.線性表就是順序存儲(chǔ)的表。(×)
11.取線性表的第i個(gè)元素的時(shí)間同i的大小有關(guān)。(×)
12.循環(huán)鏈表不是線性表。(×)
13.鏈表是采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表,進(jìn)行插入、刪除操作時(shí),在鏈表中比在順序表中效率高。(√)
14.雙向鏈表可隨機(jī)訪問任一結(jié)點(diǎn)。(×)
15.在單鏈表中,給定任一結(jié)點(diǎn)的地址p,則可用下述語句將新結(jié)點(diǎn)s插入結(jié)點(diǎn)p的后面 :p->
next;(×)
16.隊(duì)列是一種插入和刪除操作分別在表的兩端進(jìn)行的線性表,是一種先進(jìn)后出的結(jié)構(gòu)。(×)
17. 串是一種特殊的線性表,其特殊性體現(xiàn)在可以順序存儲(chǔ)。(×)
18.長度為1的串等價(jià)于一個(gè)字符型常量。(×)
19.空串和空白串是相同的。(×)
20.?dāng)?shù)組元素的下標(biāo)值越大,存取時(shí)間越長。(×)
21.用鄰接矩陣法存儲(chǔ)一個(gè)圖時(shí),在不考慮壓縮存儲(chǔ)的情況下,所占用的存儲(chǔ)空間大小只與圖中結(jié)點(diǎn)個(gè)數(shù)有關(guān),而與圖的邊數(shù)無關(guān)。(√)
22.一個(gè)廣義表的表頭總是一個(gè)廣義表。(×)
23.一個(gè)廣義表的表尾總是一個(gè)廣義表。(√)
24.廣義表(((a),b),c)的表頭是((a),b),表尾是(c)。(√)
25.二叉樹的后序遍歷序列中,任意一個(gè)結(jié)點(diǎn)均處在其孩子結(jié)點(diǎn)的后面。(√)
26.度為2的有序樹是二叉樹。(×)
27.二叉樹的前序遍歷序列中,任意一個(gè)結(jié)點(diǎn)均處在其孩子結(jié)點(diǎn)的前面。(√)
28.用一維數(shù)組存儲(chǔ)二叉樹時(shí),總是以前序遍歷順序存儲(chǔ)結(jié)點(diǎn)。(×)
29.若已知一棵二叉樹的前序遍歷序列和后序遍歷序列,則可以恢復(fù)該二叉樹。(×)
30.在哈夫曼樹中,權(quán)值最小的結(jié)點(diǎn)離根結(jié)點(diǎn)最近。(×)
31.強(qiáng)連通圖的各頂點(diǎn)間均可達(dá)。(√)
32.對(duì)于任意一個(gè)圖,從它的某個(gè)結(jié)點(diǎn)進(jìn)行一次深度或廣度優(yōu)先遍歷可以訪問到該圖的每個(gè)頂點(diǎn)。(×)
33.在待排序的記錄集中,存在多個(gè)具有相同鍵值的記錄,若經(jīng)過排序,這些記錄的相對(duì)次序仍然保持不變,稱這種排序?yàn)榉€(wěn)定排序。(√)
34.在平衡二叉樹中,任意結(jié)點(diǎn)左右子樹的高度差(絕對(duì)值)不超過1。(√)
35.拓?fù)渑判蚴前碅OE網(wǎng)中每個(gè)結(jié)點(diǎn)事件的最早發(fā)生時(shí)間對(duì)結(jié)點(diǎn)進(jìn)行排序。(×)
36.冒泡排序算法關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)。(×)
37.對(duì)線性表進(jìn)行折半查找時(shí),要求線性表必須以鏈?zhǔn)椒绞酱鎯?chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列。(×)
38.散列法存儲(chǔ)的思想是由關(guān)鍵字值決定數(shù)據(jù)的存儲(chǔ)地址。(√)
39.二叉樹為二叉排序樹的充分必要條件是其任一結(jié)點(diǎn)的值均大于其左孩子的值、小于其右孩子的值。(×)
40.具有n個(gè)結(jié)點(diǎn)的二叉排序樹有多種,其中樹高最小的二叉排序樹是最佳的。(√)
41.直接選擇排序算法在最好情況下的時(shí)間復(fù)雜度為O(n)。(×)
第二篇:2015年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案
2012年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案
一、選擇題
1.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為
C。
A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)
B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)
C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)
D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
2.?dāng)?shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中的表示是指 A。
A.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
B.?dāng)?shù)據(jù)結(jié)構(gòu)
C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)
D.?dāng)?shù)據(jù)元素之間的關(guān)系
3.在數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的A 結(jié)構(gòu)。
A.邏輯
B.存儲(chǔ)
C.邏輯和存儲(chǔ)
D.物理
4.在存儲(chǔ)數(shù)據(jù)時(shí),通常不僅要存儲(chǔ)各數(shù)據(jù)元素的值,而且還要存儲(chǔ)
C。
A.?dāng)?shù)據(jù)的處理方法
B.?dāng)?shù)據(jù)元素的類型
C.?dāng)?shù)據(jù)元素之間的關(guān)系
D.?dāng)?shù)據(jù)的存儲(chǔ)方法
5.在決定選取何種存儲(chǔ)結(jié)構(gòu)時(shí),一般不考慮
A。
A.各結(jié)點(diǎn)的值如何
B.結(jié)點(diǎn)個(gè)數(shù)的多少
C.對(duì)數(shù)據(jù)有哪些運(yùn)算
D.所用的編程語言實(shí)現(xiàn)這種結(jié)構(gòu)是否方便。
6.以下說法正確的是 D。
A.?dāng)?shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位
B.?dāng)?shù)據(jù)元素是數(shù)據(jù)的最小單位
C.?dāng)?shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項(xiàng)的集合
D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)
7.算法分析的目的是 C,算法分析的兩個(gè)主要方面是 A。
(1)A.找出數(shù)據(jù)結(jié)構(gòu)的合理性
B.研究算法中的輸入和輸出的關(guān)系
C.分析算法的效率以求改進(jìn)
C.分析算法的易讀性和文檔性
(2)A.空間復(fù)雜度和時(shí)間復(fù)雜度
B.正確性和簡(jiǎn)明性
C.可讀性和文檔性
D.?dāng)?shù)據(jù)復(fù)雜性和程序復(fù)雜性
8.下面程序段的時(shí)間復(fù)雜度是 O(n2)。
s =0;
for(I =0; i<n; i++)
for(j=0;j<n;j++)
s +=B[i][j];
sum = s ;
9.下面程序段的時(shí)間復(fù)雜度是 O(n*m)。
for(i =0; i<n; i++)
for(j=0;j<m;j++)
A[i][j] = 0;
10.下面程序段的時(shí)間復(fù)雜度是 O(log3n)。
i = 0;
while(i<=n)
i = i * 3;
11.在以下的敘述中,正確的是
B。
A.線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈表存儲(chǔ)結(jié)構(gòu)
B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表
C.棧的操作方式是先進(jìn)先出
D.隊(duì)列的操作方式是先進(jìn)后出
12.通常要求同一邏輯結(jié)構(gòu)中的所有數(shù)據(jù)元素具有相同的特性,這意味著 B。
A.?dāng)?shù)據(jù)元素具有同一特點(diǎn)
B.不僅數(shù)據(jù)元素所包含的數(shù)據(jù)項(xiàng)的個(gè)數(shù)要相同,而且對(duì)應(yīng)的數(shù)據(jù)項(xiàng)的類型要一致
C.每個(gè)數(shù)據(jù)元素都一樣
D.?dāng)?shù)據(jù)元素所包含的數(shù)據(jù)項(xiàng)的個(gè)數(shù)要相等
13.鏈表不具備的特點(diǎn)是
A。
A.可隨機(jī)訪問任一結(jié)點(diǎn)
B.插入刪除不需要移動(dòng)元素
C.不必事先估計(jì)存儲(chǔ)空間
D.所需空間與其長度成正比
14.不帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是
A。
next ==NULL
C.head->next ==head
D head?。絅ULL
15.帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是
B。
next ==NULL
C.head->next ==head
D head!=NULL
16.若某表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)或刪除最后一個(gè)結(jié)點(diǎn),則采用
D
存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。
A.單鏈表
B.給出表頭指針的單循環(huán)鏈表
C.雙鏈表
D.帶頭結(jié)點(diǎn)的雙循環(huán)鏈表
17.需要分配較大空間,插入和刪除不需要移動(dòng)元素的線性表,其存儲(chǔ)結(jié)構(gòu)是
B。
A.單鏈表
B.靜態(tài)鏈表
C.線性鏈表
D.順序存儲(chǔ)結(jié)構(gòu)
18.非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向)滿足 C。
A.p->next == NULL
B.p == NULL
C.p->next ==head
D.p == head
19.在循環(huán)雙鏈表的p所指的結(jié)點(diǎn)之前插入s所指結(jié)點(diǎn)的操作是
D。
A.p->
prior->
prior
B.p->
prior->
prior
C.s->
prior->next = s
D.s->
prior->
prior = s
20.如果最常用的操作是取第i個(gè)結(jié)點(diǎn)及其前驅(qū),則采用 D 存儲(chǔ)方式最節(jié)省時(shí)間。
A.單鏈表
B.雙鏈表
C.單循環(huán)鏈表
D.順序表
21.在一個(gè)具有n個(gè)結(jié)點(diǎn)的有序單鏈表中插入一個(gè)新結(jié)點(diǎn)并仍然保持有序的時(shí)間復(fù)雜度是 B。
A.O(1)
B.O(n)
C.O(n2)
D.O(nlog2n)
22.在一個(gè)長度為n(n>1)的單鏈表上,設(shè)有頭和尾兩個(gè)指針,執(zhí)行
B 操作與鏈表的長度有關(guān)。
A.刪除單鏈表中的第一個(gè)元素
B.刪除單鏈表中的最后一個(gè)元素
C.在單鏈表第一個(gè)元素前插入一個(gè)新元素
D.在單鏈表最后一個(gè)元素后插入一個(gè)新元素
23.與單鏈表相比,雙鏈表的優(yōu)點(diǎn)之一是 D。
A.插入、刪除操作更簡(jiǎn)單
B.可以進(jìn)行隨機(jī)訪問
C.可以省略表頭指針或表尾指針
D.順序訪問相鄰結(jié)點(diǎn)更靈活
24.如果對(duì)線性表的操作只有兩種,即刪除第一個(gè)元素,在最后一個(gè)元素的后面插入新元素,則最好使用
B。
A.只有表頭指針沒有表尾指針的循環(huán)單鏈表
B.只有表尾指針沒有表頭指針的循環(huán)單鏈表
C.非循環(huán)雙鏈表
D.循環(huán)雙鏈表
25.在長度為n的順序表的第i個(gè)位置上插入一個(gè)元素(1≤ i ≤n+1),元素的移動(dòng)次數(shù)為:
A。
A.n – i +
1B.n – i
C.i
D.i – 1
26.對(duì)于只在表的首、尾兩端進(jìn)行插入操作的線性表,宜采用的存儲(chǔ)結(jié)構(gòu)為
C。
A.順序表
B.用頭指針表示的循環(huán)單鏈表
C.用尾指針表示的循環(huán)單鏈表
D.單鏈表
27.下述哪一條是順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)?
C。
A插入運(yùn)算方便
B可方便地用于各種邏輯結(jié)構(gòu)的存儲(chǔ)表示
C存儲(chǔ)密度大
D刪除運(yùn)算方便
28.下面關(guān)于線性表的敘述中,錯(cuò)誤的是哪一個(gè)?
B。
A線性表采用順序存儲(chǔ),必須占用一片連續(xù)的存儲(chǔ)單元
B線性表采用順序存儲(chǔ),便于進(jìn)行插入和刪除操作。
C線性表采用鏈?zhǔn)酱鎯?chǔ),不必占用一片連續(xù)的存儲(chǔ)單元
D線性表采用鏈?zhǔn)酱鎯?chǔ),便于進(jìn)行插入和刪除操作。
29.線性表是具有n個(gè)
B 的有限序列。
A.字符
B.?dāng)?shù)據(jù)元素
C.?dāng)?shù)據(jù)項(xiàng)
D.表元素
30.在n個(gè)結(jié)點(diǎn)的線性表的數(shù)組實(shí)現(xiàn)中,算法的時(shí)間復(fù)雜度是O(1)的操作是
A。
A.訪問第i(1<=i<=n)個(gè)結(jié)點(diǎn)和求第i個(gè)結(jié)點(diǎn)的直接前驅(qū)(1<i<=n)
B.在第i(1<=i<=n)個(gè)結(jié)點(diǎn)后插入一個(gè)新結(jié)點(diǎn)
C.刪除第i(1<=i<=n)個(gè)結(jié)點(diǎn)
D.以上都不對(duì)
31.若長度為n的線性表采用順序存儲(chǔ)結(jié)構(gòu),在其第i個(gè)位置插入一個(gè)新元素的算法的時(shí)間復(fù)雜度為C。
A.O(0)
B.O(1)
C.O(n)
D.O(n2)
32.對(duì)于順序存儲(chǔ)的線性表,訪問結(jié)點(diǎn)和增加、刪除結(jié)點(diǎn)的時(shí)間復(fù)雜度為
C。
A.O(n)O(n)
B.O(n)O(1)
C.O(1)O(n)
D.O(1)O(1)
33.線性表(a1,a2,?,an)以鏈?zhǔn)椒绞酱鎯?chǔ),訪問第i位置元素的時(shí)間復(fù)雜度為
C。
A.O(0)
B.O(1)
C.O(n)
D.O(n2)
34.單鏈表中,增加一個(gè)頭結(jié)點(diǎn)的目的是為了 C。
A.使單鏈表至少有一個(gè)結(jié)點(diǎn)
B.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置
C.方面運(yùn)算的實(shí)現(xiàn)
D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)
35.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是
B。
A.p->
next=p->
next=p->
next=s;
C.p->
next=s->
next=s->next;p->next=s
36.線性表的順序存儲(chǔ)結(jié)構(gòu)是一種 A。
A.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)
B.順序存取的存儲(chǔ)結(jié)構(gòu)
C.索引存取的存儲(chǔ)結(jié)構(gòu)
D.Hash存取的存儲(chǔ)結(jié)構(gòu)
37.棧的特點(diǎn)是
B,隊(duì)列的特點(diǎn)是 A。
A.先進(jìn)先出
B.先進(jìn)后出
38.棧和隊(duì)列的共同點(diǎn)是 C。
A.都是先進(jìn)后出
B.都是先進(jìn)先出
C.只允許在端點(diǎn)處插入和刪除元素
D.沒有共同點(diǎn)
39.一個(gè)棧的進(jìn)棧序列是a,b,c,d,e,則棧的不可能的輸出序列是
C。
A.edcba
B.decba
C.dceab
D.a(chǎn)bcde
40.設(shè)有一個(gè)棧,元素依次進(jìn)棧的順序?yàn)锳、B、C、D、E。下列
C 是不可能的出棧序列。
A.A,B,C,D,E
B.B,C,D,E,A
C.E,A,B,C,D
D.E,D,C,B,A
41.以下
B 不是隊(duì)列的基本運(yùn)算?
A.從隊(duì)尾插入一個(gè)新元素
B.從隊(duì)列中刪除第i個(gè)元素
C.判斷一個(gè)隊(duì)列是否為空
D.讀取隊(duì)頭元素的值
42.若已知一個(gè)棧的進(jìn)棧序列是1,2,3,n,其輸出序列為p1,p2,p3,?,pn,若p1=n,則pi為
C。
A.i
B.n-i
C.n-i+
1D.不確定
43.判定一個(gè)順序棧st(最多元素為MaxSize)為空的條件是 B。
A.st->top!
top ==-1
C.st->top!
top == MaxSize
44.判定一個(gè)順序棧st(最多元素為MaxSize)為滿的條件是 D。
A.st->top!
top ==-1
C.st->top!
top == MaxSize
45.一個(gè)隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的輸出序列是 B。
A.4,3,2,1
B.1,2,3,4
C.1,4,3,2D.3,2,4,1
46.判定一個(gè)循環(huán)隊(duì)列qu(最多元素為MaxSize)為空的條件是 C。
A.qu->rear – qu->
rear – qu->front -1==MaxSize
C.qu->
front -1
47.在循環(huán)隊(duì)列中,若front與rear 分別表示對(duì)頭元素和隊(duì)尾元素的位置,則判斷循環(huán)隊(duì)列空的條件是
C。
A.front==rear+1
B.rear==front+1
C.front==rear
D.front==0
48.向一個(gè)棧頂指針為h的帶頭結(jié)點(diǎn)的鏈棧中插入指針s所指的結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行 D 操作。
A.h->
next=h ;
C.s->
next=h->
next=s ;
49.輸入序列為ABC,可以變?yōu)镃BA時(shí),經(jīng)過的棧操作為
B。
A.push,pop,push,pop,push,pop
B.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,pop
D.push,pop,push,push,pop,pop
50.若棧采用順序存儲(chǔ)方式存儲(chǔ),現(xiàn)兩棧共享空間V[1 m],top[1]、top[2]分別代表第1和第2個(gè)棧的棧頂,棧1的底在V[1],棧2的底在V[m],則棧滿的條件是
B。
A.|top[2]-top[1]|=0
B. top[1]+1=top[2]
C.top[1]+top[2]=m
D.top[1]=top[2]
51.設(shè)計(jì)一個(gè)判別表達(dá)式中左、右括號(hào)是否配對(duì)出現(xiàn)的算法,采用 D 數(shù)據(jù)結(jié)構(gòu)最佳。
A.線性表的順序存儲(chǔ)結(jié)構(gòu)
B.隊(duì)列
C.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
D.棧
52.允許對(duì)隊(duì)列進(jìn)行的操作有 D。
A.對(duì)隊(duì)列中的元素排序
B.取出最近進(jìn)隊(duì)的元素
C.在隊(duì)頭元素之前插入元素
D.刪除隊(duì)頭元素
53.對(duì)于循環(huán)隊(duì)列
D。
A.無法判斷隊(duì)列是否為空
B.無法判斷隊(duì)列是否為滿
C.隊(duì)列不可能滿
D.以上說法都不對(duì)
54.若用一個(gè)大小為6的數(shù)值來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為
B。
A.1和B.2和C.4和
2D.5和1
55.隊(duì)列的“先進(jìn)先出”特性是指
D。
A.最早插入隊(duì)列中的元素總是最后被刪除
B.當(dāng)同時(shí)進(jìn)行插入、刪除操作時(shí),總是插入操作優(yōu)先
C.每當(dāng)有刪除操作時(shí),總是要先做一次插入操作
D.每次從隊(duì)列中刪除的總是最早插入的元素
56.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是 A。
A.通常不會(huì)出現(xiàn)棧滿的情況
B.通常不會(huì)出現(xiàn)??盏那闆r
C.插入操作更容易實(shí)現(xiàn)
D.刪除操作更容易實(shí)現(xiàn)
57.用不帶頭結(jié)點(diǎn)的單鏈表存儲(chǔ)隊(duì)列,其頭指針指向隊(duì)頭結(jié)點(diǎn),尾指針指向隊(duì)尾結(jié)點(diǎn),則在進(jìn)行出隊(duì)操作時(shí)
C。
A.僅修改隊(duì)頭指針
B.僅修改隊(duì)尾指針
C.隊(duì)頭、隊(duì)尾指針都可能要修改
D.隊(duì)頭、隊(duì)尾指針都要修改
58.若串S=‘software’,其子串的數(shù)目是
B。
A.8
B.37
C.36
D.9
59.串的長度是指 B。
A.串中所含不同字母的個(gè)數(shù)
B.串中所含字符的個(gè)數(shù)
C.串中所含不同字符的個(gè)數(shù)
D.串中所含非空格字符的個(gè)數(shù)
60.串是一種特殊的線性表,其特殊性體現(xiàn)在 B。
A.可以順序存儲(chǔ)
B.?dāng)?shù)據(jù)元素是一個(gè)字符
C.可以鏈?zhǔn)酱鎯?chǔ)
D.?dāng)?shù)據(jù)元素可以是多個(gè)字符
61.設(shè)有兩個(gè)串p和q,求q在p中首次出現(xiàn)的位置的運(yùn)算稱為 B。
A.連接
B.模式匹配
C.求子串
D.求串長
62.?dāng)?shù)組A中,每個(gè)元素的長度為3個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放的存儲(chǔ)器內(nèi),該數(shù)組按行存放,元素A[8][5]的起始地址為
C。
A.SA+141 B. SA+14C.SA+22
2D.SA+225
63.?dāng)?shù)組A中,每個(gè)元素的長度為3個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放的存儲(chǔ)器內(nèi),該數(shù)組按行存放,元素A[5][8]的起始地址為
C。
A.SA+141 B. SA+180
C.SA+222
D.SA+225
64.若聲明一個(gè)浮點(diǎn)數(shù)數(shù)組如下: froat average[]=new float[30];
假設(shè)該數(shù)組的內(nèi)存起始位置為200,average[15]的內(nèi)存地址是 C。
A.214
B.21
5C.260
D.256
65.設(shè)二維數(shù)組A[1? m,1? n]按行存儲(chǔ)在數(shù)組B中,則二維數(shù)組元素A[i,j]在一維數(shù)組B中的下標(biāo)為
A。
A.n*(i-1)+j B. n*(i-1)+j-
1C.i*(j-1)
D.j*m+i-1
66.有一個(gè)100×90的稀疏矩陣,非0元素有10,設(shè)每個(gè)整型數(shù)占2個(gè)字節(jié),則用三元組表示該矩陣時(shí),所需的字節(jié)數(shù)是
B。
A.20
B. 66
C.18 000
D.33
67.?dāng)?shù)組A[0 ? 4,-1 ?-3,5 ?7]中含有的元素個(gè)數(shù)是 A。
A.55
B. 45
C.36
D.16
68.對(duì)矩陣進(jìn)行壓縮存儲(chǔ)是為了
D。
A.方便運(yùn)算 B.方便存儲(chǔ)
C.提高運(yùn)算速度
D.減少存儲(chǔ)空間
69.設(shè)有一個(gè)10階的對(duì)稱矩陣A,采用壓縮存儲(chǔ)方式,以行序?yàn)橹鞔鎯?chǔ),a1,1為第一個(gè)元素,其存儲(chǔ)地址為1,每個(gè)元素占1個(gè)地址空間,則a8,5的地址為 B。
A.13 B. 3C.18
D.40
70.稀疏矩陣一般的壓縮存儲(chǔ)方式有兩種,即 C。
A.二維數(shù)組和三維數(shù)組
B. 三元組和散列
C.三元組和十字鏈表
D. 散列和十字鏈表
71.樹最適合用來表示
C。
A.有序數(shù)據(jù)元素
B.無序數(shù)據(jù)元素
C.元素之間具有分支層次關(guān)系的數(shù)據(jù)
D.元素之間無聯(lián)系的數(shù)據(jù)
72.深度為5的二叉樹至多有
C 個(gè)結(jié)點(diǎn)。
A.16
B. 32
C. 31
C.
73.對(duì)一個(gè)滿二叉樹,m個(gè)葉子,n個(gè)結(jié)點(diǎn),深度為h,則 D。
A.n = h+m
B h+m = 2n
C m = h-1
D n = 2h-1
74.任何一棵二叉樹的葉子結(jié)點(diǎn)在前序、中序和后序遍歷序列中的相對(duì)次序
A。
A.不發(fā)生改變
B.發(fā)生改變
C.不能確定
D.以上都不對(duì)
75.在線索化樹中,每個(gè)結(jié)點(diǎn)必須設(shè)置一個(gè)標(biāo)志來說明它的左、右鏈指向的是樹結(jié)構(gòu)信息,還是線索化信息,若0標(biāo)識(shí)樹結(jié)構(gòu)信息,1標(biāo)識(shí)線索,對(duì)應(yīng)葉結(jié)點(diǎn)的左右鏈域,應(yīng)標(biāo)識(shí)為__ D __。
A.00
B.0
1C.10
D.11
76.在下述論述中,正確的是
D。
①只有一個(gè)結(jié)點(diǎn)的二叉樹的度為0;②二叉樹的度為2;③二叉樹的左右子樹可任意交換;
④深度為K的順序二叉樹的結(jié)點(diǎn)個(gè)數(shù)小于或等于深度相同的滿二叉樹。
A.①②③
B.②③④
C.②④
D.①④
77.設(shè)森林F對(duì)應(yīng)的二叉樹為B,它有m個(gè)結(jié)點(diǎn),B的根為p,p的右子樹的結(jié)點(diǎn)個(gè)數(shù)為n,森林F中第一棵樹的結(jié)點(diǎn)的個(gè)數(shù)是
A。
A.m-n
B.m-n-1
C.n+1
D.不能確定
78.若一棵二叉樹具有10個(gè)度為2的結(jié)點(diǎn),5個(gè)度為1的結(jié)點(diǎn),則度為0的結(jié)點(diǎn)的個(gè)數(shù)是 B。
A.9
B.11
C.1
5D.不能確定
79.具有10個(gè)葉子結(jié)點(diǎn)的二叉樹中有
B 個(gè)度為2的結(jié)點(diǎn)。
A.8
B.9
C.10
D.11
80.在一個(gè)無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的 C 倍。
A.1/
2B 1
C 2
D 4
81.在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)的出度之和的 B 倍。
A.1/2
B 1
C 2
D 4
82.某二叉樹結(jié)點(diǎn)的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為:
C
A.B.2
C.D.5
83.已知一算術(shù)表達(dá)式的中綴形式為A+B *C–D/E,后綴形式為ABC *+DE/–,其前綴形式為
D。
A.–A+B*C/DE
B.–A+B*CD/E
C –+*ABC/DE
D.–+A*BC/DE
84.已知一個(gè)圖,如圖所示,若從頂點(diǎn)a出發(fā)按深度搜索法進(jìn)行遍歷,則可能得到的一種頂點(diǎn)序列為____D___;按廣度搜索法進(jìn)行遍歷,則可能得到的一種頂點(diǎn)序列為___A___;
①A.a(chǎn),b,e,c,d,f
B.a(chǎn),c,f,e,b,d C.a(chǎn),e,b,c,f,d,D.a(chǎn),e,d,f,c,b
②A.a(chǎn),b,c,e,d,f
B.a(chǎn),b,c,e,f,d C.a(chǎn),e,b,c,f,d,D.a(chǎn),c,f,d,e,b
85.采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似于二叉樹的___A____。
A.先序遍歷
B.中序遍歷
C.后序遍歷
D.按層遍歷
86.采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類似于二叉樹的___D____。
A.先序遍歷
B.中序遍歷
C.后序遍歷
D.按層遍歷
87.具有n 個(gè)結(jié)點(diǎn)的連通圖至少有
A 條邊。
A. n-1
B. n
C. n(n-1)/2
D. 2n
88.廣義表((a),a)的表頭是 C,表尾是 C。
A.a(chǎn)
B()
C(a)
D((a))
89.廣義表((a))的表頭是 C,表尾是 B。
A.a(chǎn)
B()
C(a)
D((a))
90.順序查找法適合于存儲(chǔ)結(jié)構(gòu)為
B 的線性表。
A 散列存儲(chǔ)
B 順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)
C 壓縮存儲(chǔ)
D 索引存儲(chǔ)
91.對(duì)線性表進(jìn)行折半查找時(shí),要求線性表必須 B。
A 以順序方式存儲(chǔ)
B 以順序方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
C 以鏈?zhǔn)椒绞酱鎯?chǔ)
D 以鏈?zhǔn)椒绞酱鎯?chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
92.采用折半查找法查找長度為n的線性表時(shí),每個(gè)元素的平均查找長度為
D。
A O(n2)
B O(nlog2n)
C O(n)
D O(log2n)
93.有一個(gè)有序表為{1,3,9,12,32,41,45,62,75,77,82,95,100},當(dāng)折半查找值為82的結(jié)點(diǎn)時(shí),C
次比較后查找成功。
A. 11
B 5
C
4D
94.二叉樹為二叉排序樹的充分必要條件是其任一結(jié)點(diǎn)的值均大于其左孩子的值、小于其右孩子的值。這種說法
B。
A 正確
B 錯(cuò)誤
95.下面關(guān)于B樹和B+樹的敘述中,不正確的結(jié)論是
A。
A B樹和B+樹都能有效的支持順序查找
B B樹和B+樹都能有效的支持隨機(jī)查找
C B樹和B+樹都是平衡的多叉樹
D B樹和B+樹都可用于文件索引結(jié)構(gòu)
96.以下說法錯(cuò)誤的是
B。
A.散列法存儲(chǔ)的思想是由關(guān)鍵字值決定數(shù)據(jù)的存儲(chǔ)地址
B.散列表的結(jié)點(diǎn)中只包含數(shù)據(jù)元素自身的信息,不包含指針。
C.負(fù)載因子是散列表的一個(gè)重要參數(shù),它反映了散列表的飽滿程度。
D.散列表的查找效率主要取決于散列表構(gòu)造時(shí)選取的散列函數(shù)和處理沖突的方法。
97.查找效率最高的二叉排序樹是 C。
A.所有結(jié)點(diǎn)的左子樹都為空的二叉排序樹。
B.所有結(jié)點(diǎn)的右子樹都為空的二叉排序樹。
C.平衡二叉樹。
D.沒有左子樹的二叉排序樹。
98.排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進(jìn)行比較,將其放入已排序序列的正確位置上的方法,稱為
C。
A.希爾排序
B。冒泡排序
C插入排序
D。選擇排序
99.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是 D。
A.希爾排序
B.冒泡排序
C.直接插入排序
D.直接選擇排序
100.堆是一種有用的數(shù)據(jù)結(jié)構(gòu)。下列關(guān)鍵碼序列
D 是一個(gè)堆。
A.94,31,53,23,16,7B.94,53,31,72,16,23
C.16,53,23,94,31,72
D.16,31,23,94,53,72
101.堆排序是一種
B
排序。
A.插入
B.選擇
C.交換
D.歸并
102.
D 在鏈表中進(jìn)行操作比在順序表中進(jìn)行操作效率高。
A.順序查找
B.折半查找
C.分塊查找
D.插入
103.直接選擇排序的時(shí)間復(fù)雜度為
D。(n 為元素個(gè)數(shù))
A.O(n)
B.O(log2n)
C.O(nlog2n)
D. O(n2)
二、填空題。
1.?dāng)?shù)據(jù)邏輯結(jié)構(gòu)包括 線性結(jié)構(gòu)、樹形結(jié)構(gòu) 和 圖狀結(jié)構(gòu) 三種類型,樹形結(jié)構(gòu)和圖狀結(jié)構(gòu)合稱非線性結(jié)構(gòu)。
2.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)分為
集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu) 和 圖狀結(jié)構(gòu) 4種。
3.在線性結(jié)構(gòu)中,第一個(gè)結(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有 1 個(gè)前驅(qū)結(jié)點(diǎn);最后一個(gè)結(jié)點(diǎn)沒有 后續(xù)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有 1 個(gè)后續(xù)結(jié)點(diǎn)。
4.線性結(jié)構(gòu)中元素之間存在一對(duì)一關(guān)系,樹形結(jié)構(gòu)中元素之間存在一對(duì)多關(guān)系,圖形結(jié)構(gòu)中元素之間存在 多對(duì)多 關(guān)系。
5.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有 1 個(gè)前驅(qū)結(jié)點(diǎn);葉子結(jié)點(diǎn)沒有 后續(xù) 結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)的后續(xù)結(jié)點(diǎn)可以 任意多個(gè)。
6.?dāng)?shù)據(jù)結(jié)構(gòu)的基本存儲(chǔ)方法是順序、鏈?zhǔn)健⑺饕?和 散列 存儲(chǔ)。
7.衡量一個(gè)算法的優(yōu)劣主要考慮正確性、可讀性、健壯性和時(shí)間復(fù)雜度與空間復(fù)雜度。
8.評(píng)估一個(gè)算法的優(yōu)劣,通常從 時(shí)間復(fù)雜度 和 空間復(fù)雜度 兩個(gè)方面考察。
9.算法的5個(gè)重要特性是 有窮性、確定性、可行性、輸入和輸出。
10.在一個(gè)長度為n的順序表中刪除第i個(gè)元素時(shí),需向前移動(dòng) n-i-1 個(gè)元素。
11.在單鏈表中,要?jiǎng)h除某一指定的結(jié)點(diǎn),必須找到該結(jié)點(diǎn)的 前驅(qū) 結(jié)點(diǎn)。
12.在雙鏈表中,每個(gè)結(jié)點(diǎn)有兩個(gè)指針域,一個(gè)指向前驅(qū)結(jié)點(diǎn),另一個(gè)指向后繼結(jié)點(diǎn)。
13.在順序表中插入或刪除一個(gè)數(shù)據(jù)元素,需要平均移動(dòng) n 個(gè)數(shù)據(jù)元素,移動(dòng)數(shù)據(jù)元素的個(gè)數(shù)與位置有關(guān)。
14.當(dāng)線性表的元素總數(shù)基本穩(wěn)定,且很少進(jìn)行插入和刪除操作,但要求以最快的速度存取線性表的元素是,應(yīng)采用 順序 存儲(chǔ)結(jié)構(gòu)。
15.根據(jù)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每一個(gè)結(jié)點(diǎn)包含的指針個(gè)數(shù),將線性鏈表分成 單鏈表 和雙鏈表。
16.順序存儲(chǔ)結(jié)構(gòu)是通過下標(biāo) 表示元素之間的關(guān)系的;鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是通過 指針表示元素之間的關(guān)系的。
17.帶頭結(jié)點(diǎn)的循環(huán)鏈表L中只有一個(gè)元素結(jié)點(diǎn)的條件是 L->next->next=L。
18. 棧 是限定僅在表尾進(jìn)行插入或刪除操作的線性表,其運(yùn)算遵循 后進(jìn)先出 的原則。
19.空串是零個(gè)字符的串,其長度等于零??瞻状怯梢粋€(gè)或多個(gè)空格字符組成的串,其長度等于其包含的空格個(gè)數(shù)。
20.組成串的數(shù)據(jù)元素只能是單個(gè)字符。
21.一個(gè)字符串中任意個(gè)連續(xù)字符構(gòu)成的部分稱為該串的子串。
22.子串”str”在主串”datastructure”中的位置是
5。
23.二維數(shù)組M的每個(gè)元素是6個(gè)字符組成的串,行下標(biāo)i的范圍從0到8,列下標(biāo)j的范圍從1到10,則存放M至少需要 540個(gè)字節(jié);M的第8列和第5行共占108個(gè)字節(jié)。
24.稀疏矩陣一般的壓縮存儲(chǔ)方法有兩種,即三元組表 和 十字鏈表。
25.廣義表((a),((b),c),(((d))))的長度是 3,深度是 4。
26.在一棵二叉樹中,度為零的結(jié)點(diǎn)的個(gè)數(shù)為n0,度為2 的結(jié)點(diǎn)的個(gè)數(shù)為n2,則有n0=
n2+1。
27.在有n個(gè)結(jié)點(diǎn)的二叉鏈表中,空鏈域的個(gè)數(shù)為__n+1__。
28.一棵有n個(gè)葉子結(jié)點(diǎn)的哈夫曼樹共有__2n-1_個(gè)結(jié)點(diǎn)。
29.深度為5的二叉樹至多有 31 個(gè)結(jié)點(diǎn)。
30.若某二叉樹有20個(gè)葉子結(jié)點(diǎn),有30個(gè)結(jié)點(diǎn)僅有一個(gè)孩子,則該二叉樹的總結(jié)點(diǎn)個(gè)數(shù)為
69。
31.某二叉樹的前序遍歷序列是abdgcefh,中序序列是dgbaechf,其后序序列為 gdbehfca。
32.線索二叉樹的左線索指向其遍歷序列中的前驅(qū)
,右線索指向其遍歷序列中的后繼。
33.在各種查找方法中,平均查找長度與結(jié)點(diǎn)個(gè)數(shù)n無關(guān)的查找方法是 散列查找法。
34.在分塊索引查找方法中,首先查找 索引表
,然后查找相應(yīng)的 塊表。
35.一個(gè)無序序列可以通過構(gòu)造一棵 二叉排序樹而變成一個(gè)有序序列,構(gòu)造樹的過程即為對(duì)無序序列進(jìn)行排序的過程。
36.具有10個(gè)頂點(diǎn)的無向圖,邊的總數(shù)最多為__45__。
37.已知圖G的鄰接表如圖所示,其從頂點(diǎn)v1出發(fā)的深度優(yōu)先搜索序列為_v1v2v3v6v5v4_,其從頂點(diǎn)v1出發(fā)的廣度優(yōu)先搜索序列為_v1v2v5v4v3v6__。
38.索引是為了加快檢索速度而引進(jìn)的一種數(shù)據(jù)結(jié)構(gòu)。一個(gè)索引隸屬于某個(gè)數(shù)據(jù)記錄集,它由若干索引項(xiàng)組成,索引項(xiàng)的結(jié)構(gòu)為 關(guān)鍵字和關(guān)鍵字對(duì)應(yīng)記錄的地址。
39.Prim 算法生成一個(gè)最小生成樹每一步選擇都要滿足邊的總數(shù)不超過n-1,當(dāng)前選擇的邊的權(quán)值是候選邊中最小的,選中的邊加入樹中不產(chǎn)生回路 三項(xiàng)原則。
40.在一棵m階B樹中,除根結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn)最多有 m 棵子樹,最少有 m/2 棵子樹。
三、判斷題。
1.在決定選取何種存儲(chǔ)結(jié)構(gòu)時(shí),一般不考慮各結(jié)點(diǎn)的值如何。(√)
2.抽象數(shù)據(jù)類型(ADT)包括定義和實(shí)現(xiàn)兩方面,其中定義是獨(dú)立于實(shí)現(xiàn)的,定義僅給出一個(gè)ADT的邏輯特性,不必考慮如何在計(jì)算機(jī)中實(shí)現(xiàn)。(√)
3.抽象數(shù)據(jù)類型與計(jì)算機(jī)內(nèi)部表示和實(shí)現(xiàn)無關(guān)。(√)
4.順序存儲(chǔ)方式插入和刪除時(shí)效率太低,因此它不如鏈?zhǔn)酱鎯?chǔ)方式好。(×)
5.線性表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),結(jié)點(diǎn)和結(jié)點(diǎn)內(nèi)部的存儲(chǔ)空間可以是不連續(xù)的。(×)
6.對(duì)任何數(shù)據(jù)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)一定優(yōu)于順序存儲(chǔ)結(jié)構(gòu)。(×)
7.順序存儲(chǔ)方式只能用于存儲(chǔ)線性結(jié)構(gòu)。(×)
8.集合與線性表的區(qū)別在于是否按關(guān)鍵字排序。(×)
9.線性表中每個(gè)元素都有一個(gè)直接前驅(qū)和一個(gè)直接后繼。(×)
10.線性表就是順序存儲(chǔ)的表。(×)
11.取線性表的第i個(gè)元素的時(shí)間同i的大小有關(guān)。(×)
12.循環(huán)鏈表不是線性表。(×)
13.鏈表是采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表,進(jìn)行插入、刪除操作時(shí),在鏈表中比在順序表中效率高。(√)
14.雙向鏈表可隨機(jī)訪問任一結(jié)點(diǎn)。(×)
15.在單鏈表中,給定任一結(jié)點(diǎn)的地址p,則可用下述語句將新結(jié)點(diǎn)s插入結(jié)點(diǎn)p的后面:p->
next;(×)
16.隊(duì)列是一種插入和刪除操作分別在表的兩端進(jìn)行的線性表,是一種先進(jìn)后出的結(jié)構(gòu)。(×)
17.串是一種特殊的線性表,其特殊性體現(xiàn)在可以順序存儲(chǔ)。(×)
18.長度為1的串等價(jià)于一個(gè)字符型常量。(×)
19.空串和空白串是相同的。(×)
20.?dāng)?shù)組元素的下標(biāo)值越大,存取時(shí)間越長。(×)
21.用鄰接矩陣法存儲(chǔ)一個(gè)圖時(shí),在不考慮壓縮存儲(chǔ)的情況下,所占用的存儲(chǔ)空間大小只與圖中結(jié)點(diǎn)個(gè)數(shù)有關(guān),而與圖的邊數(shù)無關(guān)。(√)
22.一個(gè)廣義表的表頭總是一個(gè)廣義表。(×)
23.一個(gè)廣義表的表尾總是一個(gè)廣義表。(√)
24.廣義表(((a),b),c)的表頭是((a),b),表尾是(c)。(√)
25.二叉樹的后序遍歷序列中,任意一個(gè)結(jié)點(diǎn)均處在其孩子結(jié)點(diǎn)的后面。(√)
26.度為2的有序樹是二叉樹。(×)
27.二叉樹的前序遍歷序列中,任意一個(gè)結(jié)點(diǎn)均處在其孩子結(jié)點(diǎn)的前面。(√)
28.用一維數(shù)組存儲(chǔ)二叉樹時(shí),總是以前序遍歷順序存儲(chǔ)結(jié)點(diǎn)。(×)
29.若已知一棵二叉樹的前序遍歷序列和后序遍歷序列,則可以恢復(fù)該二叉樹。(×)
30.在哈夫曼樹中,權(quán)值最小的結(jié)點(diǎn)離根結(jié)點(diǎn)最近。(×)
31.強(qiáng)連通圖的各頂點(diǎn)間均可達(dá)。(√)
32.對(duì)于任意一個(gè)圖,從它的某個(gè)結(jié)點(diǎn)進(jìn)行一次深度或廣度優(yōu)先遍歷可以訪問到該圖的每個(gè)頂點(diǎn)。(×)
33.在待排序的記錄集中,存在多個(gè)具有相同鍵值的記錄,若經(jīng)過排序,這些記錄的相對(duì)次序仍然保持不變,稱這種排序?yàn)榉€(wěn)定排序。(√)
34.在平衡二叉樹中,任意結(jié)點(diǎn)左右子樹的高度差(絕對(duì)值)不超過1。(√)
35.拓?fù)渑判蚴前碅OE網(wǎng)中每個(gè)結(jié)點(diǎn)事件的最早發(fā)生時(shí)間對(duì)結(jié)點(diǎn)進(jìn)行排序。(×)
36.冒泡排序算法關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)。(×)
37.對(duì)線性表進(jìn)行折半查找時(shí),要求線性表必須以鏈?zhǔn)椒绞酱鎯?chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列。(×)
38.散列法存儲(chǔ)的思想是由關(guān)鍵字值決定數(shù)據(jù)的存儲(chǔ)地址。(√)
39.二叉樹為二叉排序樹的充分必要條件是其任一結(jié)點(diǎn)的值均大于其左孩子的值、小于其右孩子的值。(×)
40.具有n個(gè)結(jié)點(diǎn)的二叉排序樹有多種,其中樹高最小的二叉排序樹是最佳的。(√)
41.直接選擇排序算法在最好情況下的時(shí)間復(fù)雜度為O(n)。(×)
第三篇:數(shù)據(jù)庫期末考試題及答案
數(shù)據(jù)庫系統(tǒng)概論習(xí)題集 第一章 緒論
一、選擇題
1.DBS是采用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng),它是一個(gè)集合體,包含數(shù)據(jù)庫、計(jì)算機(jī)硬件、軟件和()。
A.系統(tǒng)分析員
B.程序員 C.數(shù)據(jù)庫管理員
D.操作員
2.數(shù)據(jù)庫(DB),數(shù)據(jù)庫系統(tǒng)(DBS)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間的關(guān)系是()。
A.DBS包括DB和DBMS
B.DBMS包括DB和DBS
C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS
3.下面列出的數(shù)據(jù)庫管理技術(shù)發(fā)展的三個(gè)階段中,沒有專門的軟件對(duì)數(shù)據(jù)進(jìn)行管理的是()。
I.人工管理階段
II.文件系統(tǒng)階段
III.?dāng)?shù)據(jù)庫階段
A.I 和 II
B.只有 II C.II 和 III
D.只有 I
4.下列四項(xiàng)中,不屬于數(shù)據(jù)庫系統(tǒng)特點(diǎn)的是()。
A.數(shù)據(jù)共享
B.數(shù)據(jù)完整性
C.數(shù)據(jù)冗余度高
D.數(shù)據(jù)獨(dú)立性高
5.數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨(dú)立性體現(xiàn)在()。
A.不會(huì)因?yàn)閿?shù)據(jù)的變化而影響到應(yīng)用程序
B.不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序
C.不會(huì)因?yàn)榇鎯?chǔ)策略的變化而影響存儲(chǔ)結(jié)構(gòu)
D.不會(huì)因?yàn)槟承┐鎯?chǔ)結(jié)構(gòu)的變化而影響其他的存儲(chǔ)結(jié)構(gòu)
6.描述數(shù)據(jù)庫全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。
A.模式
B.內(nèi)模式 C.外模式 D.用戶模式
7.要保證數(shù)據(jù)庫的數(shù)據(jù)獨(dú)立性,需要修改的是()。
A.模式與外模式
B.模式與內(nèi)模式
C.三層之間的兩種映射
D.三層模式
8.要保證數(shù)據(jù)庫的邏輯數(shù)據(jù)獨(dú)立性,需要修改的是()。
A.模式與外模式的映射
B.模式與內(nèi)模式之間的映射
C.模式
D.三層模式
9.用戶或應(yīng)用程序看到的那部分局部邏輯結(jié)構(gòu)和特征的描述是(),它是模式的邏輯子集。
A.模式
B.物理模式
C.子模式 D.內(nèi)模式
10.下述()不是DBA數(shù)據(jù)庫管理員的職責(zé)。
A.完整性約束說明 B.定義數(shù)據(jù)庫模式
C.數(shù)據(jù)庫安全 D.數(shù)據(jù)庫管理系統(tǒng)設(shè)計(jì)
選擇題參考答案:(1)C(2)A(3)D(4)C(5)B(6)A(7)C(8)A(9)C(10)D
二、簡(jiǎn)答題
1.試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。
數(shù)據(jù):描述事物的符號(hào)記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有文字、圖形、圖象、聲音、正文等等。數(shù)據(jù)與其語義是不可分的。
*解析:在現(xiàn)代計(jì)算機(jī)系統(tǒng)中數(shù)據(jù)的概念是廣義的。早期的計(jì)算機(jī)系統(tǒng)主要用于科學(xué)計(jì)算,處理的數(shù)據(jù)是整數(shù)、實(shí)數(shù)、浮點(diǎn)數(shù)等傳統(tǒng)數(shù)學(xué)中的數(shù)據(jù)等?,F(xiàn)在計(jì)算機(jī)能存儲(chǔ)和處理的對(duì)象十分廣泛,表示這些對(duì)象的 數(shù)據(jù)也越來越復(fù)雜。
數(shù)據(jù)與其語義是不可分的。500這個(gè)數(shù)字可以表示一件物品的價(jià)格是500元,也可以表示一個(gè)學(xué)術(shù)會(huì)議參加的人數(shù)有500人。還可以表示一袋奶粉重500克。
數(shù)據(jù)庫:數(shù)據(jù)庫是長期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。
*解析:簡(jiǎn)單地講,數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)具有永久儲(chǔ)存、有組織和可共享三個(gè)特點(diǎn)。
數(shù)據(jù)模型是數(shù)據(jù)庫的核心概念。每個(gè)數(shù)據(jù)庫中數(shù)據(jù)的都是按照某一種數(shù)據(jù)模型來組織的。
數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫系統(tǒng)(DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員構(gòu)成。
*解析:數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫是兩個(gè)概念。數(shù)據(jù)庫系統(tǒng)是一個(gè)人-機(jī)系統(tǒng),數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的一個(gè)組成部分。但是在日常工作中人們常常把把數(shù)據(jù)庫系統(tǒng)簡(jiǎn)稱為數(shù)據(jù)庫。希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據(jù)庫系統(tǒng)”和“數(shù)據(jù)庫”。不要引起混淆。
數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。用于科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。DBMS主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運(yùn)行管理功能、數(shù)據(jù)庫的建立和維護(hù)功能。
*解析:DBMS是一個(gè)大型復(fù)雜的軟件系統(tǒng)。是計(jì)算機(jī)中的基礎(chǔ)軟件。目前,專門研制DBMS的廠商及其研制的DBMS產(chǎn)品很多。著名的有美國IBM公司的DB2關(guān)系數(shù)據(jù)庫管理系統(tǒng)、IMS層次數(shù)據(jù)庫管理系統(tǒng);美國ORACLE公司的ORACLE關(guān)系數(shù)據(jù)庫管理系統(tǒng);SYBASE公司的SYBASE關(guān)系數(shù)據(jù)庫管理系統(tǒng);美國微軟公司的SQL SERVER關(guān)系數(shù)據(jù)庫管理系統(tǒng)等等。
2.使用數(shù)據(jù)庫系統(tǒng)有什么好處?
使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)或優(yōu)點(diǎn)決定的。
使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)的負(fù)擔(dān)等。
使用數(shù)據(jù)庫系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率。因?yàn)樵跀?shù)據(jù)庫系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲(chǔ)和數(shù)據(jù)存取的具體路徑,這些工作都由DBMS來完成。用一個(gè)通俗的比喻,使用了DBMS就如有了一個(gè)好參謀好助手,許多具體的技術(shù)工作都由這個(gè)助手來完成。開發(fā)人員就可以專注于應(yīng)用邏輯的設(shè)計(jì)而不必為管理數(shù)據(jù)的許許多多復(fù)雜的細(xì)節(jié)操心。
還有,當(dāng)應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)需要改變時(shí),由于數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)與程序之間的獨(dú)立性。數(shù)據(jù)邏輯結(jié)構(gòu)的改變是DBA的責(zé)任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序。從而既簡(jiǎn)化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護(hù)和修改。
使用數(shù)據(jù)庫系統(tǒng)可以減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)系統(tǒng)的負(fù)擔(dān)。因?yàn)镈BMS在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性,多用戶并發(fā)控制,故障恢復(fù)等等都由DBMS執(zhí)行。
總之,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護(hù)。讀者可以在自己今后的工作中結(jié)合具體應(yīng)用,認(rèn)真加以體會(huì)和總結(jié)。
3.試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和聯(lián)系。
文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別:文件系統(tǒng)面向某一應(yīng)用程序,共享性差、冗余度大,獨(dú)立性差,紀(jì)錄內(nèi)有結(jié)構(gòu)、整體無結(jié)構(gòu),應(yīng)用程序自己控制。
數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實(shí)世界,共享性高、冗余度小,具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力。
讀者可以參考《概論》書中表1.1 中的有關(guān)內(nèi)容。
文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的聯(lián)系是:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)都是計(jì)算機(jī)系統(tǒng)中管理數(shù)據(jù)的軟件。
*解析:
文件系統(tǒng)是操作系統(tǒng)的重要組成部分,而DBMS是獨(dú)立于操作系統(tǒng)的軟件。但是DBMS是在操作系統(tǒng)的基礎(chǔ)上實(shí)現(xiàn)的。數(shù)據(jù)庫中數(shù)據(jù)的組織和存儲(chǔ)是通過操作系統(tǒng)中文件系統(tǒng)來實(shí)現(xiàn)的。
讀者進(jìn)一步學(xué)習(xí)數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)的有關(guān)課程后可以對(duì)本題有深入的理解和全面的解答。因?yàn)镈BMS的實(shí)現(xiàn)與操作系統(tǒng)中的文件系統(tǒng)是緊密相關(guān)的。例如,數(shù)據(jù)庫實(shí)現(xiàn)的基礎(chǔ)是文件,對(duì)數(shù)據(jù)庫的任何操作最終要轉(zhuǎn)化為對(duì)文件的操作。所以在DBMS實(shí)現(xiàn)中數(shù)據(jù)庫物理組織的基本問題是如何利用或如何選擇操作系統(tǒng)提供的基本的文件組織方法。這里我們就不具體展開了。
4.舉出適合用文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子。
?適用于文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子
數(shù)據(jù)的備份,軟件或應(yīng)用程序使用過程中的臨時(shí)數(shù)據(jù)存儲(chǔ)一般使用文件比較合適。早期功能比較簡(jiǎn)單、比較固定的應(yīng)用系統(tǒng)也適合用文件系統(tǒng)。
?適用于數(shù)據(jù)庫系統(tǒng)而非文件系統(tǒng)的應(yīng)用例子
目前,幾乎所有企業(yè)或部門的信息系統(tǒng)都以數(shù)據(jù)庫系統(tǒng)為基礎(chǔ),都使用數(shù)據(jù)庫。如一個(gè)工廠的管理信息系統(tǒng)(其中會(huì)包括許多子系統(tǒng),如庫存管理系統(tǒng)、物資采購系統(tǒng)、作業(yè)調(diào)度系統(tǒng)、設(shè)備管理系統(tǒng)、人事管理系統(tǒng)等等),還比如學(xué)校的學(xué)生管理系統(tǒng),人事管理系統(tǒng),圖書館的圖書管理系統(tǒng)等等都適合用數(shù)據(jù)庫系統(tǒng)。希望同學(xué)們能舉出自己了解的應(yīng)用例子。
5.試述數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。
數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)有:
一、數(shù)據(jù)結(jié)構(gòu)化:數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。
*解析:注意這里“整體”兩個(gè)字。在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)不再針對(duì)某一個(gè)應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且數(shù)據(jù)的存取單位即一次可以存取數(shù)據(jù)的大小也很靈活??梢孕〉侥骋粋€(gè)數(shù)據(jù)項(xiàng)(如一個(gè)學(xué)生的姓名),大到一組記錄(成千上萬個(gè)學(xué)生記錄)。而在文件系統(tǒng)中,數(shù)據(jù)的存取單位只有一個(gè):記錄。如一個(gè)學(xué)生的完整記錄。
二、數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充 :數(shù)據(jù)庫的數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),因此可以被多個(gè)用戶、多個(gè)應(yīng)用、用多種不同的語言共享使用。由于數(shù)據(jù)面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴(kuò)充。
*解析:
數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間,同時(shí)還能夠避免數(shù)據(jù)之間的不相容性與不一致性。
所謂“數(shù)據(jù)面向某個(gè)應(yīng)用”是指數(shù)據(jù)結(jié)構(gòu)是針對(duì)某個(gè)應(yīng)用設(shè)計(jì)的,只被這個(gè)應(yīng)用程序或應(yīng)用系統(tǒng)使用。可以說數(shù)據(jù)是某個(gè)應(yīng)用的“私有資源”。
所謂“彈性大”是指系統(tǒng)容易擴(kuò)充也容易收縮,即應(yīng)用增加或減少時(shí)不必修改整個(gè)數(shù)據(jù)庫的結(jié)構(gòu),或者只要做很少的修改。
我們可以取整體數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒng),當(dāng)應(yīng)用需求改變或增加時(shí),只要重新選取不同的子集或加上一部分?jǐn)?shù)據(jù)便可以滿足新的需求。
三、數(shù)據(jù)獨(dú)立性高:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)的模式結(jié)構(gòu)和二級(jí)映象功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨(dú)立性和邏輯獨(dú)立性。
*解析:
所謂“獨(dú)立性”即相互不依賴。數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)和程序相互不依賴。即數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)改變了,程序不會(huì)跟著改變。數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由DBMS負(fù)責(zé),簡(jiǎn)化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。
四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制:數(shù)據(jù)庫的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時(shí)存取數(shù)據(jù)庫中同一個(gè)數(shù)據(jù)。為此,DBMS必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護(hù),數(shù)據(jù)的完整性檢查,并發(fā)控制和數(shù)據(jù)庫恢復(fù)。
*解析:
DBMS數(shù)據(jù)控制功能包括四個(gè)方面:
數(shù)據(jù)的安全性保護(hù):保護(hù)數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞;
數(shù)據(jù)的完整性檢查:將數(shù)據(jù)控制在有效的范圍內(nèi)或保證數(shù)據(jù)之間滿足一定的關(guān)系;
并發(fā)控制:對(duì)多用戶的并發(fā)操作加以控制和協(xié)調(diào),保證并發(fā)操作的正確性;
數(shù)據(jù)庫恢復(fù):當(dāng)計(jì)算機(jī)系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫部分或全部數(shù)據(jù)的丟失時(shí),能將數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))。
下面我們可以得到“什么是數(shù)據(jù)庫”的一個(gè)定義:
數(shù)據(jù)庫是長期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的大量的共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性。DBMS在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時(shí)使用數(shù)據(jù)庫時(shí)進(jìn)行并發(fā)控制,在發(fā)生故障后對(duì)系統(tǒng)進(jìn)行恢復(fù)。
數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。
6.?dāng)?shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?
①數(shù)據(jù)庫定義功能;
②數(shù)據(jù)存取功能;
③數(shù)據(jù)庫運(yùn)行管理;
④數(shù)據(jù)庫的建立和維護(hù)功能。
7.試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個(gè)要素。
數(shù)據(jù)模型是數(shù)據(jù)庫中用來對(duì)現(xiàn)實(shí)世界進(jìn)行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式構(gòu)架。
一般地講,數(shù)據(jù)模型是嚴(yán)格定義的概念的集合。這些概念精確地描述系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。
①數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合,是對(duì)系統(tǒng)的靜態(tài)特性的描述。
②數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫中各種對(duì)象(型)的實(shí)例(值)允許進(jìn)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。
③數(shù)據(jù)的約束條件:是完整性規(guī)則的集合,完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。
*解析:
數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中最重要的概念之一。同學(xué)們必須通過《概論》的學(xué)習(xí)真正掌握
數(shù)據(jù)模型的概念和作用。
數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。任何一個(gè)DBMS都以某一個(gè)數(shù)據(jù)模型為基礎(chǔ),或者說支持某一個(gè)數(shù)據(jù)模型。
數(shù)據(jù)庫系統(tǒng)中模型有不同的層次。根據(jù)模型應(yīng)用的不同目的,可以將模型分成兩類或說兩個(gè)層次:一是概念模型,是按用戶的觀點(diǎn)來對(duì)數(shù)據(jù)和信息建模,用于信息世界的建模,強(qiáng)調(diào)語義表達(dá)能力,概念簡(jiǎn)單清晰;另一是數(shù)據(jù)模型,是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,用于機(jī)器世界,人們可以用它定義、操縱數(shù)據(jù)庫中的數(shù)據(jù)。一般需要有嚴(yán)格的形式化定義和一組嚴(yán)格定義了語法和語義的語言,并有一些規(guī)定和限制,便于在機(jī)器上實(shí)現(xiàn)。
8.試述概念模型的作用。
概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言。
9.定義并解釋概念模型中以下術(shù)語:
實(shí)體,實(shí)體型,實(shí)體集,屬性,碼,實(shí)體聯(lián)系圖(E-R圖)
實(shí)體:客觀存在并可以相互區(qū)分的事物叫實(shí)體。
實(shí)體型:具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體稱為實(shí)體型。
實(shí)體集:同型實(shí)體的集合稱為實(shí)體集。
屬性:實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來刻畫。
碼:唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。
實(shí)體聯(lián)系圖:E-R圖提供了表示實(shí)體型、屬性和聯(lián)系的方法:
? 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。
? 屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。
?聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。
10.試給出三個(gè)實(shí)際部門的E-R圖,要求實(shí)體型之間具有一對(duì)一,一對(duì)多,多對(duì)多各種不同的聯(lián)系。
關(guān)系數(shù)據(jù)庫
一、選擇題
1.下面的選項(xiàng)不是關(guān)系數(shù)據(jù)庫基本特征的是()。
A.不同的列應(yīng)有不同的數(shù)據(jù)類型
B.不同的列應(yīng)有不同的列名
C.與行的次序無關(guān)
D.與列的次序無關(guān)
2.一個(gè)關(guān)系只有一個(gè)()。
A.候選碼
B.外碼
C.超碼
D.主碼
3.關(guān)系模型中,一個(gè)碼是()。
A.可以由多個(gè)任意屬性組成 B.至多由一個(gè)屬性組成
C.可有多個(gè)或者一個(gè)其值能夠唯一表示該關(guān)系模式中任何元組的屬性組成D.以上都不是
4.現(xiàn)有如下關(guān)系:
患者(患者編號(hào),患者姓名,性別,出生日起,所在單位)
醫(yī)療(患者編號(hào),患者姓名,醫(yī)生編號(hào),醫(yī)生姓名,診斷日期,診斷結(jié)果)
其中,醫(yī)療關(guān)系中的外碼是()。
A.患者編號(hào)
B.患者姓名
C.患者編號(hào)和患者姓名
D.醫(yī)生編號(hào)和患者編號(hào)
5.現(xiàn)有一個(gè)關(guān)系:借閱(書號(hào),書名,庫存數(shù),讀者號(hào),借期,還期),假如同一本書允許一個(gè)讀者多次借閱,但不能同時(shí)對(duì)一種書借多本,則該關(guān)系模式的外碼是()。
A.書號(hào)
B.讀者號(hào)
C.書號(hào)+讀者號(hào)
D.書號(hào)+讀者號(hào)+借期
6.關(guān)系模型中實(shí)現(xiàn)實(shí)體間 N:M 聯(lián)系是通過增加一個(gè)()。
A.關(guān)系實(shí)現(xiàn)
B.屬性實(shí)現(xiàn)
C.關(guān)系或一個(gè)屬性實(shí)現(xiàn)
D.關(guān)系和一個(gè)屬性實(shí)現(xiàn)
7.關(guān)系代數(shù)運(yùn)算是以()為基礎(chǔ)的運(yùn)算。
A.關(guān)系運(yùn)算
B.謂詞演算
C.集合運(yùn)算
D.代數(shù)運(yùn)算
8.關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。
A.排序、索引、統(tǒng)計(jì)
B.選擇、投影、連接 C.關(guān)聯(lián)、更新、排序
D.顯示、打印、制表
9.五種基本關(guān)系代數(shù)運(yùn)算是()。
A.∪ - × σ π
B.∪ - σ π
C.∪ ∩ × σ π
D.∪ ∩ σ π
10.關(guān)系代數(shù)表達(dá)式的優(yōu)化策略中,首先要做的是()。
A.對(duì)文件進(jìn)行預(yù)處理
B.盡早執(zhí)行選擇運(yùn)算
C.執(zhí)行笛卡爾積運(yùn)算
D.投影運(yùn)算
11.關(guān)系數(shù)據(jù)庫中的投影操作是指從關(guān)系中()。
A.抽出特定記錄
B.抽出特定字段
C.建立相應(yīng)的影像
D.建立相應(yīng)的圖形
12.從一個(gè)數(shù)據(jù)庫文件中取出滿足某個(gè)條件的所有記錄形成一個(gè)新的數(shù)據(jù)庫文件的操作是()操作。
A.投影
B.聯(lián)接
C.選擇
D.復(fù)制
13.關(guān)系代數(shù)中的聯(lián)接操作是由()操作組合而成。
A.選擇和投影 B.選擇和笛卡爾積
C.投影、選擇、笛卡爾積
D.投影和笛卡爾積
14.自然聯(lián)接是構(gòu)成新關(guān)系的有效方法。一般情況下,當(dāng)對(duì)關(guān)系R和S是用自然聯(lián)接時(shí),要求R和S含有一個(gè)或者多個(gè)共有的()。
A.記錄
B.行
C.屬性
D.元組
15.假設(shè)有關(guān)系R和S,在下列的關(guān)系運(yùn)算中,()運(yùn)算不要求:“R和S具有相同的元數(shù),且它們的對(duì)應(yīng)屬性的數(shù)據(jù)類型也相同”。
A.R∩S
B.R∪S
C.R-S
D.R×S
16.假設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式R-(R-S)表示的是()。
A.R∩S
B.R∪S
C.R-S
D.R×S
17.下面列出的關(guān)系代數(shù)表達(dá)是中,那些式子能夠成立()。
ⅰ.σf1(σf2(E))= σf1∧f2(E)
ⅱ.E1∞E2 = E2∞E1
ⅲ.(E1∞E2)∞E3 = E1∞(E2∞E3)
ⅳ.σf1(σf2(E))=σf2(σf1(E))
A.全部
B.ⅱ和ⅲ C.沒有
D.ⅰ和ⅳ
18.下面四個(gè)關(guān)系表達(dá)式是等價(jià)的,是判別它們的執(zhí)行效率()。
E1 =πA(σ B=C ∧ D=E′(R×S))
E2 =πA(σ B=C(R× σD=E′(S))
E3 =πA(R∞B=CσD=E′(S))
E3 =πA(σD=E′(R∞B=C S))
A.E3最快
B.E2最快 C.E4最快 D.E1最快
19.有關(guān)系SC(S_ID,C_ID,AGE,SCORE),查找年齡大于22歲的學(xué)生的學(xué)號(hào)和分?jǐn)?shù),正確的關(guān)系代數(shù)表達(dá)式是()。
ⅰ.πS_ID,SCORE(σ age>22(SC))
ⅱ.σ age>22(πS_ID,SCORE(SC))
ⅲ.πS_ID,SCORE(σ age>22(πS_ID,SCORE,AGE(SC)))
A.ⅰ和 ⅱ
B.只有ⅱ正確
C.只有 ⅰ正確
D.ⅰ和ⅲ正確
選擇題參考答案:(1)A(2)D(3)C(4)A(5)D(6)A(7)C(8)B(9)A(10)B
(11)B(12)C(13)B(14)C(15)D(16)A(17)C(18)A(19)D
二、簡(jiǎn)答題
1.試述關(guān)系模型的三個(gè)組成部分。
2.試述關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類。
3.設(shè)有一個(gè)SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個(gè)關(guān)系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成;零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成;工程項(xiàng)目表J由工程項(xiàng)目代碼(JNO)、工程項(xiàng)目名(JNAME)、工程項(xiàng)目所在城市(CITY)組成;供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項(xiàng)目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商供應(yīng)某種零件給某工程項(xiàng)目的數(shù)量為QTY。
試用關(guān)系代數(shù)完成如下查詢:
(1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO;
(2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO;
(3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO;
(4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO;
(5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO。
4.定義并理解下列術(shù)語,說明它們之間的聯(lián)系與區(qū)別:
(1)域,笛卡爾積,關(guān)系,元組,屬性
(2)主碼,候選碼,外碼
(3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫
5.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外碼屬性的值有時(shí)也可以為空?什么情況下才可以為空?
6.試述等值連接與自然連接的區(qū)別和聯(lián)系。
7.關(guān)系代數(shù)的基本運(yùn)算有哪些?
8.試用關(guān)系代數(shù)的基本運(yùn)算來表示其他運(yùn)算。
SQL語言
一、選擇題
1.SQL語言是()的語言,容易學(xué)習(xí)。
A.過程化
B.非過程化
C.格式化
D.導(dǎo)航式
2.SQL語言的數(shù)據(jù)操縱語句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最頻繁的語句是()。
A.SELECT B.INSERT
C.UPDATE D.DELETE
3.在視圖上不能完成的操作是()。
A.更新視圖
B.查詢
C.在視圖上定義新的表
D.在視圖上定義新的視圖
4.SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,其中,CREATE、DROP、ALTER語句是實(shí)現(xiàn)哪種功能()。
A.數(shù)據(jù)查詢
B.數(shù)據(jù)操縱
C.數(shù)據(jù)定義 D.數(shù)據(jù)控制
5.SQL語言中,刪除一個(gè)視圖的命令是()。
A.DELETE
B.DROP
C.CLEAR
D.REMOVE
6.在SQL語言中的視圖VIEW是數(shù)據(jù)庫的()。
A.外模式
B.模式
C.內(nèi)模式
D.存儲(chǔ)模式
7.下列的SQL語句中,()不是數(shù)據(jù)定義語句。
A.CREATE TABLE B.DROP VIEW
C.CREATE VIEW D.GRANT
8.若要撤銷數(shù)據(jù)庫中已經(jīng)存在的表S,可用()。
A.DELETE TABLE S B.DELETE S
C.DROP TABLE S D.DROP S
9.若要在基本表S中增加一列CN(課程名),可用()。
A.ADD TABLE S(CN CHAR(8))
B.ADD TABLE S ALTER(CN CHAR(8))
C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S(ADD CN CHAR(8))
10.學(xué)生關(guān)系模式 S(S#,Sname,Sex,Age),S的屬性分別表示學(xué)生的學(xué)號(hào)、姓名、性別、年齡。要在表S中刪除一個(gè)屬性“年齡”,可選用的SQL語句是()。
A.DELETE Age from S B.ALTER TABLE S DROP Age
C.UPDATE S Age D.ALTER TABLE S ‘Age’
11.有關(guān)系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是學(xué)生號(hào),SNAME是學(xué)生姓名,SAGE是學(xué)生年齡,C#是課程號(hào),CNAME是課程名稱。要查詢選修“ACCESS”課的年齡不小于20的全體學(xué)生姓名的SQL語句是SELECT SNAME FROM S,C,SC WHERE子句。這里的WHERE子句的內(nèi)容是()。
A.S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’
B.S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’
C.SAGE in>=20 and CNAME in ‘ACCESS’
D.SAGE>=20 and CNAME=’ ACCESS’
12.設(shè)關(guān)系數(shù)據(jù)庫中一個(gè)表S的結(jié)構(gòu)為S(SN,CN,grade),其中SN為學(xué)生名,CN為課程名,二者均為字符型;grade為成績,數(shù)值型,取值范圍0-100。若要把“張二的化學(xué)成績80分”插入S中,則可用()。
A.ADD INTO S VALUES(’張二’,’化學(xué)’,’80’)
B.INSERT INTO S VALUES(’張二’,’化學(xué)’,’80’)
C.ADD
INTO S VALUES(’張二’,’化學(xué)’,80)D.INSERT INTO S VALUES(’張二’,’化學(xué)’,80)
13.設(shè)關(guān)系數(shù)據(jù)庫中一個(gè)表S的結(jié)構(gòu)為:S(SN,CN,grade),其中SN為學(xué)生名,CN為課程名,二者均為字符型;grade為成績,數(shù)值型,取值范圍0-100。若要更正王二的化學(xué)成績?yōu)?5分,則可用()。
A.UPDATE S SET grade=85 WHERE SN=’王二’ AND CN=’化學(xué)’
B.UPDATE S SET grade=’85’WHERE SN=’王二’ AND CN=’化學(xué)’
C.UPDATE grade=85 WHERE SN=’王二’ AND CN=’化學(xué)’
D.UPDATE grade=’85’WHERE SN=’王二’ AND CN=’化學(xué)’
14.在SQL語言中,子查詢是()。
A.返回單表中數(shù)據(jù)子集的查詢語言
B.選取多表中字段子集的查詢語句
C.選取單表中字段子集的查詢語句
D.嵌入到另一個(gè)查詢語句之中的查詢語句
15.SQL是一種()語言。
A.高級(jí)算法
B.人工智能
C.關(guān)系數(shù)據(jù)庫 D.函數(shù)型
16.有關(guān)系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是學(xué)生號(hào),SNAME是學(xué)生姓名,SEX是性別,C#是課程號(hào),CNAME是課程名稱。要查詢選修“數(shù)據(jù)庫”課的全體男生姓名的SQL語句是SELECT SNAME FROM S,C,SC WHERE子句。這里的WHERE子句的內(nèi)容是()。
A.S.S# = SC.S# and C.C# = SC.C# and SEX=’男’ and CNAME=’數(shù)據(jù)庫’
B.S.S# = SC.S# and C.C# = SC.C# and SEX in’男’and CNAME in’數(shù)據(jù)庫’
C.SEX ’男’ and CNAME ’ 數(shù)據(jù)庫’
D.S.SEX=’男’ and CNAME=’ 數(shù)據(jù)庫’
17.若用如下的SQL語句創(chuàng)建了一個(gè)表SC:
CREATE TABLE SC(S# CHAR(6)NOT NULL,C# CHAR(3)NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行時(shí),()行可以被插入。
A.(’201009’,’111’,60,必修)
B.(’200823’,’101’,NULL,NULL)
C.(NULL,’103’,80,’選修’)
D.(’201132’,NULL,86,’ ’)
18.假設(shè)學(xué)生關(guān)系S(S#,SNAME,SEX),課程關(guān)系C(C#,CNAME),學(xué)生選課關(guān)系SC(S#,C#,GRADE)。要查詢選修“Computer”課的男生姓名,將涉及到關(guān)系()。
A.S B.S,SC C.C,SC D.S,C,SC
選擇題參考答案:(1)B(2)A(3)C(4)C(5)B(6)A(7)D(8)C(9)C(10)B
(11)A(12)D(13)A(14)D(15)C(16)A(17)B(18)D
二、簡(jiǎn)答題
1.試述SQL語言的特點(diǎn)。
答:(1)綜合統(tǒng)一。SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體。
(2)高度非過程化。用SQL語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無須指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動(dòng)完成。
(3)面向集合的操作方式。SQL語言采用集合操作方式,不僅操作對(duì)象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對(duì)象也可以是元組的集合。
(4)以同一種語法結(jié)構(gòu)提供兩種使用方式。SQL語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,也能夠嵌入到高級(jí)語言程序中,供程序員設(shè)計(jì)程序時(shí)使用。
(5)語言簡(jiǎn)捷,易學(xué)易用。
2.試述SQL的定義功能。
答: SQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。
SQL語言使用CREATE TABLE語句定義建立基本表,;ALTER TABLE語句修改基本表定義,DROP TABLE語句刪除基本表;建立索引使用CREATE INDEX語句建立索引,DROP INDEX語句刪除索引表;SQL語言使用CREATE VIEW命令建立視圖,DROP VIEW語句刪除視圖。
3.用SQL語句建立第3章習(xí)題3中的四個(gè)表。
答:對(duì)于S表:S(SNO,SNAME,STATUS,CITY);
建S表:CREATE TABLE S(SNO CHAR(3),SNAME CHAR(10),STATUS CHAR(2),CITY CHAR(10));
P(PNO,PNAME,COLOR,WEIGHT);
建P表:CREATE TABLE P(PNO CHAR(3),PNAME CHAR(10),COLOR CHAR(4),WEIGHT INT);
J(JNO,JNAME,CITY);
建J表:CREATE TABLE J(JNO CHAR(3),JNAME CHAR(10),CITY CHAR(10));
SPJ(SNO,PNO,JNO,QTY);
建SPJ表:CREATE TABLE SPJ(SNO CHAR(3),PNO CHAR(3),JNO CHAR(3),QTY INT);
4.針對(duì)上題中建立的四個(gè)表試用SQL語言完成第3章習(xí)題3中的查詢。
答:(1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO;
SELECT SNO
FROM SPJ
WHERE JNO=‘J1’;
(2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO;
SELECT SNO
FROM SPJ
WHERE JNO=‘J1’
AND PNO=‘P1’;
(3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO;
SELECT SNO
FROM SPJ
WHERE JNO=‘J1’
AND PNO IN
(SELECT PNO
FROM P
WHERE COLOR=‘紅’);
或
SELECT SNO
FROM SPJ,P
WHERE JNO=‘J1’
AND SPJ.PNO=P.PNO
AND COLOR=‘紅’;
(4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO;
解析:
用SQL語言表示如下:
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ.JNO=J.JNO
AND SNO IN
(SELECT SNO
FROM S
WHERE CITY=‘天津’)
AND PNO IN
(SELECT PNO
FROM P
WHERE COLOR=‘紅’));
或
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *1
FROM SPJ, S, P
WHERE SPJ.JNO=J.JNO
AND SPJ.SNO=S.SNO
AND SPJ.PNO=P.PNO
AND S.CITY=‘天津’
AND P.COLOR=‘紅’);
注意:從 J 表入手,以包含那些尚未使用任何零件的工程號(hào)。
(5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO。
解析:
用SQL語言表示如下:
SELECT DISTINCT JNO
FROM SPJ SPJZ
WHERE NOT EXISTS
(SELECT *
FROM SPJ SPJX
WHERE SNO='S1'
AND NOT EXISTS
(SELECT *
FROM SPJ SPJY
WHERE SPJY.PNO=SPJX.PNO
AND SPJY.JNON=SPJZ.JNO
AND SPJY.SNO=’S1’));
AND SPJY.SNO='S1'));
5.針對(duì)習(xí)題3中的四個(gè)表試用SQL語言完成以下各項(xiàng)操作:
(1)找出所有供應(yīng)商的姓名和所在城市。
(2)找出所有零件的名稱、顏色、重量。
(3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼。
(4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。
(5)找出上海廠商供應(yīng)的所有零件號(hào)碼。
(6)找出使用上海產(chǎn)的零件的工程名稱。
(7)找出沒有使用天津產(chǎn)的零件的工程號(hào)碼。
(8)把全部紅色零件的顏色改成藍(lán)色。
(9)由S5供給J4的零件P6改為由S3供應(yīng),請(qǐng)作必要的修改。
(10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。
(11)請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。
答:
(1)找出所有供應(yīng)商的姓名和所在城市。
SELECT SNAME, CITY
FROM S;
(2)找出所有零件的名稱、顏色、重量。
SELECT PNAME, COLOR, WEIGHT
FROM P;
(3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼。
SELECT JNO
FROM SPJ
WHERE SNO=‘S1’;
(4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。
SELECT P.PNAME, SPJ.QTY
FROM P, SPJ
WHERE P.PNO=SPJ.PNO
AND SPJ.JNO='J2';
(5)找出上海廠商供應(yīng)的所有零件號(hào)碼。
SELECT DISTINCT PNO
FROM SPJ
WHERE SNO IN
(SELECT SNO
FROM S
WHERE CITY='上海');
(6)找出使用上海產(chǎn)的零件的工程名稱。
SELECT JNAME
FROM J, SPJ, S
WHERE J.JNO=SPJ.JNO
AND SPJ.SNO=S.SNO
AND S.CITY='上海';
或
SELECT JNAME
FROM J
WHERE JNO IN
(SELECT JNO
FROM SPJ, S
WHERE SPJ.SNO=S.SNO
AND S.CITY='上海');
(7)找出沒有使用天津產(chǎn)的零件的工程號(hào)碼。
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ.JNO=J.JNO AND SNO IN
(SELECT SNO
FROM S
WHERE CITY=‘天津’));
或
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *1
FROM SPJ, S
WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’);
(8)把全部紅色零件的顏色改成藍(lán)色。
UPDATE P
SET COLOR='藍(lán)'
WHERE COLOR='紅';
(9)由S5供給J4的零件P6改為由S3供應(yīng),請(qǐng)作必要的修改。
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' AND JNO='J4' AND PNO='P6';
(10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。
DELETE
FROM SPJ
WHERE SNO='S2';
或
DELETE
FROM S
WHERE SNO='S2';
解析:注意刪除順序,應(yīng)該先從SPJ表中刪除供應(yīng)商S2所供應(yīng)零件的記錄,然后從從S表中刪除S2。
(11)請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。
INSERT INTO SPJ(SNO, JNO, PNO, QTY)
VALUES(S2,J6,P4,200);
或
INSERT INTO SPJ
VALUES(S2,P4,J6,200);
6.什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?
答:基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)表。
視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表。視圖本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫中,是一個(gè)虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。
7.試述視圖的優(yōu)點(diǎn)。
答:(1)視圖能夠簡(jiǎn)化用戶的操作。
(2)視圖使用戶能以多種角度看待同一數(shù)據(jù)。
(3)視圖對(duì)重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性。
(4)視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。
8.所有的視圖是否都可以更新?為什么?
答:不是。視圖是不實(shí)際存儲(chǔ)數(shù)據(jù)的虛表,因此對(duì)視圖的更新,最終要轉(zhuǎn)換為對(duì)基本表的更新。因?yàn)橛行┮晥D的更新不能唯一地有意義地轉(zhuǎn)換成對(duì)相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的。如《概論》3.5.1中的視圖S_G(學(xué)生的學(xué)號(hào)及他的平均成績)
CREAT VIEW S_G(Sno,Gavg)
AS SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno;
要修改平均成績,必須修改各科成績,而我們無法知道哪些課程成績的變化導(dǎo)致了平均成績的變化。
9.哪類視圖是可以更新的,哪類視圖是不可更新的? 各舉一例說明。
答:基本表的行列子集視圖一般是可更新的。如《概論》3.5.3中的例1。
若視圖的屬性來自集函數(shù)、表達(dá)式,則該視圖肯定是不可以更新的。
如《概論》3.5.3中的S_G視圖。
10.試述某個(gè)你熟悉的實(shí)際系統(tǒng)中對(duì)視圖更新的規(guī)定。
答:(略)
解析:不同的系統(tǒng)對(duì)視圖更新的規(guī)定是不同的,讀者必須了解你所用系統(tǒng)對(duì)視圖更新的規(guī)定。
11.請(qǐng)為三建工程項(xiàng)目建立一個(gè)供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件
代碼(PNO)、供應(yīng)數(shù)量(QTY)。針對(duì)該視圖完成下列查詢:
(1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。
(2)找出供應(yīng)商S1的供應(yīng)情況。
答:建視圖:
CREATE VIEW V_SPJ AS
SELECT SNO, PNO, QTY
FROM SPJ
WHERE JNO=
(SELECT JNO
FROM J
WHERE JNAME='三建');
對(duì)該視圖查詢:
(1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。
SELECT PNO, QTY
FROM V_SPJ;
(2)找出供應(yīng)商S1的供應(yīng)情況。
SELECT PNO, QTY /* S1供應(yīng)三建工程的零件號(hào)和對(duì)應(yīng)的數(shù)量*/
FROM V_SPJ
WHERE SNO='S1';
關(guān)系系統(tǒng)及其優(yōu)化
一、選擇題
1.概念模型是現(xiàn)實(shí)世界的第一層抽象,這一類最著名的模型是()。
A.層次模型 B.關(guān)系模型 C.網(wǎng)狀模型 D.實(shí)體-關(guān)系模型
2.區(qū)分不同實(shí)體的依據(jù)是()。
A.名稱 B.屬性 C.對(duì)象 D.概念
3.關(guān)系數(shù)據(jù)模型是目前最重要的一種數(shù)據(jù)模型,它的三個(gè)要素分別為()。
A.實(shí)體完整、參照完整、用戶自定義完整
B.數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作、完整性約束
C.數(shù)據(jù)增加、數(shù)據(jù)修改、數(shù)據(jù)查詢
D.外模式、模式、內(nèi)模式
4.在()中一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親,節(jié)點(diǎn)之間可以有多種聯(lián)系。
A.網(wǎng)狀模型 B.關(guān)系模型
C.層次模型 D.以上都有
5.()的存取路徑對(duì)用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。
A.網(wǎng)狀模型 B.關(guān)系模型
D.層次模型 D.以上都有
6.在關(guān)系數(shù)據(jù)庫中,要求基本關(guān)系中所有的主屬性上不能有空值,其遵守的約束規(guī)則是()。
A.數(shù)據(jù)依賴完整性規(guī)則 B.用戶定義完整性規(guī)則
C.實(shí)體完整性規(guī)則 D.域完整性規(guī)則
選擇題參考答案:(1)D(2)B(3)B(4)A(5)B(6)C
二、簡(jiǎn)答題
1.試述關(guān)系模型的三個(gè)組成部分。
答:關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。
2.試述關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類。
答:關(guān)系數(shù)據(jù)語言可以分為三類:
關(guān)系代數(shù)語言 例如ISBL
關(guān)系演算語言(元組關(guān)系演算語言 例如APLHA,QUEL 和 域關(guān)系演算語言 例如QBE)
具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言 例如SQL
這些關(guān)系數(shù)據(jù)語言的共同特點(diǎn)是,具有完備的表達(dá)能力,是非過程化的集合操作語言,功能強(qiáng),能夠嵌入高級(jí)語言中使用。
3.定義并理解下列術(shù)語,說明它們之間的聯(lián)系與區(qū)別:
(1)域,關(guān)系,元組,屬性
答: 域:域是一組具有相同數(shù)據(jù)類型的值的集合。
關(guān)系:在域D1,D2,?,Dn上笛卡爾積D1×D2×?×Dn的子集稱為關(guān)系,表示為
R(D1,D2,?,Dn)
元組:關(guān)系中的每個(gè)元素是關(guān)系中的元組。
屬性:關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。由于域可
以相同,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性(Attribute)。
(2)主碼,候選碼,外部碼
答: 候選碼:若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼(Candidate key)。
主碼:若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primary key)。
外部碼:設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外部碼(Foreign key),簡(jiǎn)稱外碼。
基本關(guān)系R稱為參照關(guān)系(Referencing relation),基本關(guān)系S稱為被參照關(guān)系(Referenced relation)或目標(biāo)關(guān)系(Target relation)。關(guān)系R和S可以是相同的關(guān)系。
(3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫
關(guān)系模式:關(guān)系的描述稱為關(guān)系模式(Relation Schema)。它可以形式化地表示為:
R(U,D,dom,F(xiàn))
其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。
關(guān)系:在域D1,D2,?,Dn上笛卡爾積D1×D2×?×Dn的子集稱為關(guān)系,表示為
R(D1,D2,?,Dn)
關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。
關(guān)系數(shù)據(jù)庫:關(guān)系數(shù)據(jù)庫也有型和值之分。關(guān)系數(shù)據(jù)庫的型也稱為關(guān)系數(shù)據(jù)庫模式,是對(duì)關(guān)系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常就稱為關(guān)系數(shù)據(jù)庫。
4.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空?
答: 關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。關(guān)系模型中可以有三類完整性約束:實(shí)體完整性、參照完整性和用戶定義的完整性。
其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。
1)實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。
2)參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必
須為: ? 或者取空值(F的每個(gè)屬性值均為空值);
? 或者等于S中某個(gè)元組的主碼值。
3)用戶定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。
在參照完整性中,外部碼屬性的值可以為空,它表示該屬性的值尚未確定。但前提條件是該外部碼屬性不是其所在關(guān)系的主屬性。
例如,在下面的“學(xué)生”表中,“專業(yè)號(hào)”是一個(gè)外部碼,不是學(xué)生表的主屬性,可以為空。其語義是,該學(xué)生的專業(yè)尚未確定。
學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)
專業(yè)(專業(yè)號(hào),專業(yè)名)
而在下面的“選修”表中的“課程號(hào)”雖然也是一個(gè)外部碼屬性,但它又是“選修”表的主屬性,所以不能為空。因?yàn)殛P(guān)系模型必須滿足實(shí)體完整性。
課程(課程號(hào),課程名,學(xué)分)
選修(學(xué)號(hào),課程號(hào),成績)
5.等值連接與自然連接的區(qū)別是什么?
答:連接運(yùn)算中有兩種最為重要也最為常用的連接,一種是等值連接(equi-join),另一種是自然連接(Natural join)。
θ為“=”的連接運(yùn)算稱為等值連接。
它是從關(guān)系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。即等值連接為:
R A=B S = { tr ts| tr∈R ∧ ts∈S ∧ tr[A] = ts[B] }
自然連接(Natural join)是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。即若R和S具有相同的屬性組B,則自然連接可記作:
R S = { tr ts| tr∈R ∧ ts∈S ∧ tr[B] = ts[B] }
關(guān)系數(shù)據(jù)理論
一、選擇題
1.為了設(shè)計(jì)出性能較優(yōu)的關(guān)系模式,必須進(jìn)行規(guī)范化,規(guī)范化主要的理論依據(jù)是()。
A.關(guān)系規(guī)范化理論 B.關(guān)系代數(shù)理論
C.?dāng)?shù)理邏輯 D.關(guān)系運(yùn)算理論
2.規(guī)范化理論是關(guān)系數(shù)據(jù)庫進(jìn)行邏輯設(shè)計(jì)的理論依據(jù),根據(jù)這個(gè)理論,關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足:每一個(gè)屬性都是()。
A.長度不變的 B.不可分解的 C.互相關(guān)聯(lián)的 D.互不相關(guān)的
3.已知關(guān)系模式R(A,B,C,D,E)及其上的函數(shù)相關(guān)性集合F={A→D,B→C,E→A },該關(guān)系模式的候選關(guān)鍵字是()。
A.AB B.BE
C.CD D.DE
4.設(shè)學(xué)生關(guān)系S(SNO,SNAME,SSEX,SAGE,SDPART)的主鍵為SNO,學(xué)生選課關(guān)系SC(SNO,CNO,SCORE)的主鍵為SNO和CNO,則關(guān)系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主鍵為SNO和CNO,其滿足()。
A.1NF B.2NF C.3NF D.BCNF
5.設(shè)有關(guān)系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學(xué)生,G表示成績,T表示時(shí)間,R表示教室,根據(jù)語義有如下數(shù)據(jù)依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },關(guān)系模式W的一個(gè)關(guān)鍵字是()。
A.(S,C)B.(T,R)
C.(T,P)D.(T,S)
6.關(guān)系模式中,滿足2NF的模式()。
A.可能是1NF B.必定是1NF
C.必定是3NF
D.必定是BCNF
7.關(guān)系模式R中的屬性全是主屬性,則R的最高范式必定是()。
A.1NF B.2NF
C.3NF D.BCNF
8.消除了部分函數(shù)依賴的1NF的關(guān)系模式,必定是()。
A.1NF B.2NF
C.3NF D.BCNF
9.如果A->B ,那么屬性A和屬性B的聯(lián)系是()。
A.一對(duì)多
B.多對(duì)一
C.多對(duì)多 D.以上都不是
10.關(guān)系模式的候選關(guān)鍵字可以有1個(gè)或多個(gè),而主關(guān)鍵字有()。
A.多個(gè)
B.0個(gè)
C.1個(gè)
D.1個(gè)或多個(gè)
11.候選關(guān)鍵字的屬性可以有()。
A.多個(gè)
B.0個(gè)
C.1個(gè)
D.1個(gè)或多個(gè)
12.關(guān)系模式的任何屬性()。
A.不可再分
B.可以再分
C.命名在關(guān)系模式上可以不唯一
D.以上都不是
13.設(shè)有關(guān)系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學(xué)生,G表示成績,T表示時(shí)間,R表示教室,根據(jù)語義有如下數(shù)據(jù)依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若將關(guān)系模式W分解為三個(gè)關(guān)系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),則W1的規(guī)范化程序最高達(dá)到()。
A.1NF B.2NF
C.3NF D.BCNF
14.在關(guān)系數(shù)據(jù)庫中,任何二元關(guān)系模式的最高范式必定是()。
A.1NF B.2NF
C.3NF D.BCNF
15.在關(guān)系規(guī)范式中,分解關(guān)系的基本原則是()。
I.實(shí)現(xiàn)無損連接
II.分解后的關(guān)系相互獨(dú)立
III.保持原有的依賴關(guān)系
A.Ⅰ和Ⅱ
B.Ⅰ和Ⅲ
C.Ⅰ
D.Ⅱ
16.不能使一個(gè)關(guān)系從第一范式轉(zhuǎn)化為第二范式的條件是()。
A.每一個(gè)非屬性都完全函數(shù)依賴主屬性
B.每一個(gè)非屬性都部分函數(shù)依賴主屬性
C.在一個(gè)關(guān)系中沒有非屬性存在 D.主鍵由一個(gè)屬性構(gòu)成17.任何一個(gè)滿足2NF但不滿足3NF的關(guān)系模式都不存在()。
A.主屬性對(duì)鍵的部分依賴
B.非主屬性對(duì)鍵的部分依賴
C.主屬性對(duì)鍵的傳遞依賴
D.非主屬性對(duì)鍵的傳遞依賴
18.設(shè)數(shù)據(jù)庫關(guān)系模式R=(A,B,C,D,E),有下列函數(shù)依賴:A→BC,D→E,C→D;下述對(duì)R的分解中,哪些分解是R的無損連接分解()。
I.(A,B,C)(C,D,E)
II.(A,B)(A,C,D,E)
III.(A,C)(B,C,D,E)
IV.(A,B)(C,D,E)
A.只有Ⅳ
B.Ⅰ和Ⅱ C.Ⅰ、Ⅱ和Ⅲ
D.都不是
19.設(shè)U是所有屬性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面關(guān)于多值依賴的敘述中,不正確的是()。
A.若X→→Y,則X→→Z
B.若X→Y,則X→→Y C.若X→→Y,且Y′∈Y,則X→→Y′
D.若Z=∮,則X→→Y
20.若關(guān)系模式R(U,F(xiàn))屬于3NF,則()。
A.一定屬于BCNF
B.消除了插入的刪除異常
C.仍存在一定的插入和刪除異常
D.屬于BCNF且消除了插入和刪除異常
21.下列說法不正確的是()。
A.任何一個(gè)包含兩個(gè)屬性的關(guān)系模式一定滿足3NF
B.任何一個(gè)包含兩個(gè)屬性的關(guān)系模式一定滿足BCNF
C.任何一個(gè)包含三個(gè)屬性的關(guān)系模式一定滿足3NF
D.任何一個(gè)關(guān)系模式都一定有碼
22.設(shè)關(guān)系模式R(A,B,C),F(xiàn)是R上成立的FD集,F(xiàn)={B→C},則分解P={AB,BC}相對(duì)于F()。
A.是無損聯(lián)接,也是保持FD的分解
B.是無損聯(lián)接,也不保持FD的分解
C.不是無損聯(lián)接,但保持FD的分解
D.既不是無損聯(lián)接,也不保持FD的分解
23.關(guān)系數(shù)據(jù)庫規(guī)范化是為了解決關(guān)系數(shù)據(jù)庫中()的問題而引入的。
A.插入、刪除和數(shù)據(jù)冗余
B.提高查詢速度
C.減少數(shù)據(jù)操作的復(fù)雜性
D.保證數(shù)據(jù)的安全性和完整性
24.關(guān)系的規(guī)范化中,各個(gè)范式之間的關(guān)系是()。
A.1NF∈2NF∈3NF
B.3NF∈2NF∈1NF
C.1NF=2NF=3NF
D.1NF∈2NF∈BCNF∈3NF
25.數(shù)據(jù)庫中的冗余數(shù)據(jù)是指可()的數(shù)據(jù)。
A.容易產(chǎn)生錯(cuò)誤
B.容易產(chǎn)生沖突
C.無關(guān)緊要
D.由基本數(shù)據(jù)導(dǎo)出
26.學(xué)生表(id,name,sex,age,depart_id,depart_name),存在函數(shù)依賴是id→name,sex,age,depart_id;dept_id→dept_name,其滿足()。
A.1NF B.2NF
C.3NF
D.BCNF
27.設(shè)有關(guān)系模式R(S,D,M),函數(shù)依賴集:F={S→D,D→M},則關(guān)系模式R的規(guī)范化程度最高達(dá)到()。
A.1NF B.2NF
C.3NF
D.BCNF 28.設(shè)有關(guān)系模式R(A,B,C,D),其數(shù)據(jù)依賴集:F={(A,B)→C,C→D},則關(guān)系模式R的規(guī)范化程度最高達(dá)到()。
A.1NF B.2NF
C.3NF
D.BCNF
29.下列關(guān)于函數(shù)依賴的敘述中,哪一條是不正確的()。
A.由X→Y,Y→Z,則X→YZ
B.由X→YZ,則X→Y,Y→Z
C.由X→Y,WY→Z,則XW→Z
D.由X→Y,Z∈Y,則X→Z
30.X→Y,當(dāng)下列哪一條成立時(shí),稱為平凡的函數(shù)依賴()。
A.X∈Y B.Y∈X
C.X∩Y=∮
D.X∩Y≠∮
31.關(guān)系數(shù)據(jù)庫的規(guī)范化理論指出:關(guān)系數(shù)據(jù)庫中的關(guān)系應(yīng)該滿足一定的要求,最起碼的要求是達(dá)到1NF,即滿足()。
A.每個(gè)非主鍵屬性都完全依賴于主鍵屬性
B.主鍵屬性唯一標(biāo)識(shí)關(guān)系中的元組
C.關(guān)系中的元組不可重復(fù)
D.每個(gè)屬性都是不可分解的32.根據(jù)關(guān)系數(shù)據(jù)庫規(guī)范化理論,關(guān)系數(shù)據(jù)庫中的關(guān)系要滿足第一范式,部門(部門號(hào),部門名,部門成員,部門總經(jīng)理)關(guān)系中,因哪個(gè)屬性而使它不滿足第一范式()。
A.部門總經(jīng)理
B.部門成員
C.部門名 D.部門號(hào)
33.有關(guān)系模式A(C,T,H,R,S),其中各屬性的含義是: C:課程 T:教員 H:上課時(shí)間 R:教室 S:學(xué)生。根據(jù)語義有如下函數(shù)依賴集:F={C→T,(H,R)→C,(H,T)RC,(H,S)→R}
(1)關(guān)系模式A的碼是()。
A.C
B.(H,S)
C.(H,R)
D.(H,T)
(2)關(guān)系模式A的規(guī)范化程度最高達(dá)到()。
A.1NF
B.2NF C.3NF D.BCNF
(3)現(xiàn)將關(guān)系模式A分解為兩個(gè)關(guān)系模式A1(C,T),A2(H,R,S),則其中A1的規(guī)范化程度達(dá)到()。
A.1NF B.2NF
C.3NF
D.BCNF
參考答案:(1)A(2)B(3)B(4)A(5)D(6)B(7)C(8)B(9)B(10)C(11)D(12)A(13)D(14)D(15)B(16)B(17)D(18)B(19)C(20)C(21)C(22)A(23)A(24)A(25)D(26)B(27)B(28)B(29)B(30)B(31)D(32)B(33)B B D
二、簡(jiǎn)答題
1.理解并給出下列術(shù)語的定義:
函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、候選碼、主碼、外碼、全碼。
解析:解答本題不能僅僅把《概論》上的定義寫下來。關(guān)鍵是真正理解和運(yùn)用這些概念。
答: 函數(shù)依賴:設(shè)R(U)是一個(gè)關(guān)系模式,U是R的屬性集合,X和Y是U的子集。對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,如果r中不存在兩個(gè)元組,它們?cè)赬上的屬性值相同,而在Y上的屬性值不同,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。
解析:1)函數(shù)依賴是最基本的一種數(shù)據(jù)依賴,也是最重要的一種數(shù)據(jù)依賴。
2)函數(shù)依賴是屬性之間的一種聯(lián)系,體現(xiàn)在屬性值是否相等。由上面的定義可以知道,如果X→Y,則r中任意兩個(gè)元組,若它們?cè)赬上的屬性值相同,那么在Y上的屬性值一定也相同。
3)我們要從屬性間實(shí)際存在的語義來確定他們之間的函數(shù)依賴,即函數(shù)依賴反映了(描述了)現(xiàn)實(shí)世界的一種語義。
4)函數(shù)依賴不是指關(guān)系模式R的在某個(gè)時(shí)刻的關(guān)系(值)滿足的約束條件,而是指R任何時(shí)刻的一切關(guān)系均要滿足的約束條件。
答: 完全函數(shù)依賴、部分函數(shù)依賴:在R(U)中,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X,都有X′→Y,則稱Y對(duì)X完全函數(shù)依賴;若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴;
候選碼、主碼: 設(shè)K為R(U,F(xiàn))中的屬性或?qū)傩越M合,若K → U則K為R的候選碼。若候選碼多于一個(gè),則選定其中的一個(gè)為主碼。
答: 外碼:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼也稱外碼。
全碼:整個(gè)屬性組是碼,稱為全碼(All-key)。
2.建立一個(gè)關(guān)于系、學(xué)生、班級(jí)、學(xué)會(huì)等諸信息的關(guān)系數(shù)據(jù)庫。
描述學(xué)生的屬性有:學(xué)號(hào)、姓名、出生年月、系名、班號(hào)、宿舍區(qū)。
描述班級(jí)的屬性有:班號(hào)、專業(yè)名、系名、人數(shù)、入校年份。
描述系的屬性有:系名、系號(hào)、系辦公室地點(diǎn)、人數(shù)。
描述學(xué)會(huì)的屬性有:學(xué)會(huì)名、成立年份、地點(diǎn)、人數(shù)。
有關(guān)語義如下:一個(gè)系有若干專業(yè),每個(gè)專業(yè)每年只招一個(gè)班,每個(gè)班有若干學(xué)生。一個(gè)系的學(xué)生住在同一宿舍區(qū)。每個(gè)學(xué)生可參加若干學(xué)會(huì),每個(gè)學(xué)會(huì)有若干學(xué)生。學(xué)生參加某學(xué)會(huì)有一個(gè)入會(huì)年份。
請(qǐng)給出關(guān)系模式,寫出每個(gè)關(guān)系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對(duì)于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。
指出各關(guān)系的候選碼、外部碼,有沒有全碼存在?
答:關(guān)系模式: 學(xué)生S(S#,SN,SB,DN,C#,SA)
班級(jí)C(C#,CS,DN,CNUM,CDATE)
系 D(D#,DN,DA,DNUM)
學(xué)會(huì)P(PN,DATE1,PA,PNUM)
學(xué)生--學(xué)會(huì)SP(S#,PN,DATE2)
其中,S#—學(xué)號(hào),SN—姓名,SB—出生年月,SA—宿舍區(qū)
C#—班號(hào),CS—專業(yè)名,CNUM—班級(jí)人數(shù),CDATE—入校年份
D#—系號(hào),DN—系名,DA—系辦公室地點(diǎn),DNUM—系人數(shù)
PN—學(xué)會(huì)名,DATE1—成立年月,PA—地點(diǎn),PNUM—學(xué)會(huì)人數(shù),DATE2—入會(huì)年份
每個(gè)關(guān)系模式的極小函數(shù)依賴集:
S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SA
C:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#
D:D#→DN,DN→D#,D#→DA,D#→DNUM
P:PN→DATE1,PN→PA,PN→PNUM
SP:(S#,PN)→DATE2
S中存在傳遞函數(shù)依賴: S#→DN, S#→SA, C#→SA
C中存在傳遞函數(shù)依賴:C#→DN
(S#,PN)→DATE2 和(CS,CDATE)→C# 均為SP中的函數(shù)依賴,是完全函數(shù)依賴
關(guān)系 候選碼 外部碼 全碼
S S# C#,DN 無
C C#,(CS,CDATE)DN 無
D D#和DN 無 無
P PN 無 無
SP(S#,PN)S#,PN 無
3.試由Armostrong公理系統(tǒng)推導(dǎo)出下面三條推理規(guī)則:
(1)合并規(guī)則:若X→Z,X→Y,則有X→YZ
(2)偽傳遞規(guī)則:由X→Y,WY→Z有XW→Z
(3)分解規(guī)則:X→Y,Z 包含于 Y,有X→Z
證:(1)已知X→Z,由增廣律知XY→YZ,又因?yàn)閄→Y,可得XX→XY→YZ,最后根據(jù)傳遞律得X→YZ。
(2)已知X→Y,據(jù)增廣律得XW→WY,因?yàn)閃Y→Z,所以XW→WY→Z,通過傳遞律可知XW→Z。
(3)已知Z 包含于 Y,根據(jù)自反律知Y→Z,又因?yàn)閄→Y,所以由傳遞律可得X→Z。
4.下面的結(jié)論哪些是正確的,哪些是錯(cuò)誤的?對(duì)于錯(cuò)誤的結(jié)論請(qǐng)給出理由或給出一個(gè)反例說明之。
(1)任何一個(gè)二目關(guān)系都是屬于3NF的?!?/p>
(2)任何一個(gè)二目關(guān)系都是屬于BCNF的。√
(3)任何一個(gè)二目關(guān)系都是屬于4NF的。√
(5)若R.A→R.B,R.B→R.C,則R.A→R.C √
(6)若R.A→R.B,R.A→R.C,則R.A→R.(B, C)√
(7)若R.B→R.A,R.C→R.A,則R.(B, C)→R.A √
(8)若R.(B, C)→R.A,則R.B→R.A,R.C→R.A ×
反例:關(guān)系模式 SC(S#,C#,G)(S#,C#)→G,但是S# → G,C#→G
數(shù)據(jù)庫設(shè)計(jì)
一、選擇題
1.數(shù)據(jù)流程圖是用于描述結(jié)構(gòu)化方法中()階段的工具。
A.概要設(shè)計(jì)
B.可行性分析
C.程序編碼
D.需求分析
2.數(shù)據(jù)庫設(shè)計(jì)中,用E-R圖賴描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,這是數(shù)據(jù)庫設(shè)計(jì)的()。
A.需求分析階段
B.邏輯設(shè)計(jì)階段
C.概念設(shè)計(jì)階段
D.物理設(shè)計(jì)階段
3.在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。
A.需求分析階段
B.邏輯設(shè)計(jì)階段
C.概念設(shè)計(jì)階段
D.物理設(shè)計(jì)階段
4.子模式DDL是用來描述()。
A.數(shù)據(jù)庫的總體邏輯結(jié)構(gòu)
B.數(shù)據(jù)庫的局部邏輯結(jié)構(gòu)
C.數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)
D.數(shù)據(jù)庫的概念結(jié)構(gòu)
5.數(shù)據(jù)庫設(shè)計(jì)的概念設(shè)計(jì)階段,表示概念結(jié)構(gòu)的常用方法和描述工具是()。
A.層次分析法和層次結(jié)構(gòu)圖
B.數(shù)據(jù)流程分析法和數(shù)據(jù)流程圖
C.實(shí)體聯(lián)系法和實(shí)體聯(lián)系圖
D.結(jié)構(gòu)分析法和模塊結(jié)構(gòu)圖
6.在E-R模型向關(guān)系模型轉(zhuǎn)換時(shí),M:N的聯(lián)系轉(zhuǎn)換為關(guān)系模式時(shí),其關(guān)鍵字是()。
A.M端實(shí)體的關(guān)鍵字
B.N端實(shí)體的關(guān)鍵字
C.M、N端實(shí)體的關(guān)鍵字組合D.重新選取其他屬性
7.某學(xué)校規(guī)定,每一個(gè)班級(jí)最多有50名學(xué)生,至少有10名學(xué)生;每一名學(xué)生必須屬于一個(gè)班級(jí)。在班級(jí)與學(xué)生實(shí)體的聯(lián)系中,學(xué)生實(shí)體的基數(shù)是()。
A.(0,1)
B.(1,1)
C.(1,10)
D.(10,50)
8.在關(guān)系數(shù)據(jù)庫設(shè)計(jì)中,設(shè)計(jì)關(guān)系模式是數(shù)據(jù)庫設(shè)計(jì)中()階段的任務(wù)。
A.邏輯設(shè)計(jì)階段
B.概念設(shè)計(jì)階段
C.物理設(shè)計(jì)階段
D.需求分析階段
9.關(guān)系數(shù)據(jù)庫的規(guī)范化理論主要解決的問題是()。
A.如何構(gòu)造合適的數(shù)據(jù)邏輯結(jié)構(gòu)
B.如何構(gòu)造合適的數(shù)據(jù)物理結(jié)構(gòu)
C.如何構(gòu)造合適的應(yīng)用程序界面
D.如何控制不同用戶的數(shù)據(jù)操作權(quán)限
10.數(shù)據(jù)庫設(shè)計(jì)可劃分為七個(gè)階段,每個(gè)階段都有自己的設(shè)計(jì)內(nèi)容,“為哪些關(guān)系,在哪些屬性上、鍵什么樣的索引”這一設(shè)計(jì)內(nèi)容應(yīng)該屬于()設(shè)計(jì)階段。
A.概念設(shè)計(jì)
B.邏輯設(shè)計(jì)
C.物理設(shè)計(jì)
D.全局設(shè)計(jì)
11.假設(shè)設(shè)計(jì)數(shù)據(jù)庫性能用“開銷”,即時(shí)間、空間及可能的費(fèi)用來衡量,則在數(shù)據(jù)庫應(yīng)用系統(tǒng)生存期中存在很多開銷。其中,對(duì)物理設(shè)計(jì)者來說,主要考慮的是()。
A.規(guī)劃開銷
B.設(shè)計(jì)開銷
C.操作開銷
D.維護(hù)開銷
12.數(shù)據(jù)庫物理設(shè)計(jì)完成后,進(jìn)入數(shù)據(jù)庫實(shí)施階段,下述工作中,()一般不屬于實(shí)施階段的工作。
A.建立庫結(jié)構(gòu)
B.系統(tǒng)調(diào)試
C.加載數(shù)據(jù)
D.擴(kuò)充功能
13.從ER圖導(dǎo)出關(guān)系模型時(shí),如果實(shí)體間的聯(lián)系是M:N的,下列說法中正確的是()。
A.將N方關(guān)鍵字和聯(lián)系的屬性納入M方的屬性中 B.將M方關(guān)鍵字和聯(lián)系的屬性納入N方的屬性中
C.增加一個(gè)關(guān)系表示聯(lián)系,其中納入M方和N方的關(guān)鍵字
D.在M方屬性和N方屬性中均增加一個(gè)表示級(jí)別的屬性
14.在ER模型中,如果有3個(gè)不同的實(shí)體集,3個(gè)M:N聯(lián)系,根據(jù)ER模型轉(zhuǎn)換為關(guān)系模型的規(guī)則,轉(zhuǎn)換為關(guān)系的數(shù)目是()。
A.4 B.5
C.6 D.7
參考答案:
(1)D(2)C(3)B(4)B(5)C(6)C(7)B(8)A(9)A(10)C(11)C(12)D(13)C(14)C
二、簡(jiǎn)答題
1.試述數(shù)據(jù)庫設(shè)計(jì)過程。
*解析:希望同學(xué)能夠認(rèn)真閱讀《概論》的內(nèi)容,了解并掌握數(shù)據(jù)庫設(shè)計(jì)過程。這里只概要列出數(shù)據(jù)庫設(shè)計(jì)過程的六個(gè)階段:
1)需求分析
2)概念結(jié)構(gòu)設(shè)計(jì)
3)邏輯結(jié)構(gòu)設(shè)計(jì)
4)數(shù)據(jù)庫物理設(shè)計(jì)
5)數(shù)據(jù)庫實(shí)施
6)數(shù)據(jù)庫運(yùn)行和維護(hù)
這是一個(gè)完整的實(shí)際數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計(jì)過程。不僅包括設(shè)計(jì)數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù)。
設(shè)計(jì)一個(gè)完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述六個(gè)階段的不斷反復(fù)。
2.試述數(shù)據(jù)庫設(shè)計(jì)過程的各個(gè)階段上的設(shè)計(jì)描述。
*解析:這是進(jìn)一步了解數(shù)據(jù)庫設(shè)計(jì)的具體內(nèi)容。設(shè)計(jì)描述是指在各個(gè)階段體現(xiàn)設(shè)計(jì)內(nèi)容,描述設(shè)計(jì)結(jié)果的各種文檔、程序。
答:各階段的設(shè)計(jì)要點(diǎn)如下:
1)需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。
2)概念結(jié)構(gòu)設(shè)計(jì):通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。
3)邏輯結(jié)構(gòu)設(shè)計(jì):將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。
4)數(shù)據(jù)庫物理設(shè)計(jì):為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。
5)數(shù)據(jù)庫實(shí)施:設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。
6)數(shù)據(jù)庫運(yùn)行和維護(hù):在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。
3.試述數(shù)據(jù)庫設(shè)計(jì)過程中結(jié)構(gòu)設(shè)計(jì)部分形成的數(shù)據(jù)庫模式。
答: 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的不同階段形成數(shù)據(jù)庫的各級(jí)模式,即:
在概念設(shè)計(jì)階段形成獨(dú)立于機(jī)器特點(diǎn),獨(dú)立于各個(gè)DBMS產(chǎn)品的概念模式,在本篇中就是E-R圖;
在邏輯設(shè)計(jì)階段將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式;然后在基本表的基礎(chǔ)上再建立必要的視圖(View),形成數(shù)據(jù)的外模式;
在物理設(shè)計(jì)階段,根據(jù)DBMS特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式。
概念模式是面向用戶和設(shè)計(jì)人員的,屬于概念模型的層次;邏輯模式、外模式、內(nèi)模式是DBMS支持的模式,屬于數(shù)據(jù)模型的層次。可以在DBMS中加以描述和存儲(chǔ)。
4.試述數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)。
答: 數(shù)據(jù)庫設(shè)計(jì)既是一項(xiàng)涉及多學(xué)科的綜合性技術(shù)又是一項(xiàng)龐大的工程項(xiàng)目。其主要特點(diǎn)有:
1)數(shù)據(jù)庫建設(shè)是硬件、軟件和干件(技術(shù)與管理的界面)的結(jié)合。
2)從軟件設(shè)計(jì)的技術(shù)角度看,數(shù)據(jù)庫設(shè)計(jì)應(yīng)該和應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合,也就是說,整個(gè)設(shè)計(jì)過程中要把結(jié)構(gòu)(數(shù)據(jù))設(shè)計(jì)和行為(處理)設(shè)計(jì)密切結(jié)合起來。
5.需求分析階段的設(shè)計(jì)目標(biāo)是什么?調(diào)查的內(nèi)容是什么?
答: 需求分析階段的設(shè)計(jì)目標(biāo)是通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。
調(diào)查的內(nèi)容是“數(shù)據(jù)”和“處理”,即獲得用戶對(duì)數(shù)據(jù)庫的如下要求:
(1)信息要求。指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。由信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲(chǔ)哪些數(shù)據(jù)。
(2)處理要求。指用戶要完成什么處理功能,對(duì)處理的響應(yīng)時(shí)間有什么要求,處理方式是批處理還是聯(lián)機(jī)處理。
(3)安全性與完整性要求。
6.數(shù)據(jù)字典的內(nèi)容和作用是什么?
答:數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內(nèi)容通常包括:數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理過程五個(gè)部分
其中數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位,若干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過對(duì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)的邏輯內(nèi)容。
數(shù)據(jù)字典的作用:
數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進(jìn)行概念設(shè)計(jì)的基礎(chǔ),并在數(shù)據(jù)庫設(shè)計(jì)過程中不斷修改、充實(shí)、完善。
(注意,數(shù)據(jù)庫設(shè)計(jì)階段形成的數(shù)據(jù)字典與后面講到的數(shù)據(jù)字典不同,后者是DBMS關(guān)于數(shù)據(jù)庫中數(shù)據(jù)的描述,當(dāng)然兩者是有聯(lián)系的)。
7.什么是數(shù)據(jù)庫的概念結(jié)構(gòu)?試述其特點(diǎn)和設(shè)計(jì)策略。
答:概念結(jié)構(gòu)是信息世界的結(jié)構(gòu),即概念模型,其主要特點(diǎn)是:
(1)能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對(duì)數(shù)據(jù)的處理要求。是對(duì)現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。
(2)易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設(shè)計(jì)成功的關(guān)鍵。
(3)易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對(duì)概念模型修改和擴(kuò)充。
(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。
概念結(jié)構(gòu)的設(shè)計(jì)策略通常有四種:
? 自頂向下。即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化;
? 自底向上。即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念
結(jié)構(gòu);
? 逐步擴(kuò)張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生
成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu);
? 混合策略。即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的
框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。
8.什么叫數(shù)據(jù)抽象?試舉例說明。
答: 數(shù)據(jù)抽象是對(duì)實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。
如分類這種抽象是:定義某一類概念作為現(xiàn)實(shí)世界中一組對(duì)象的類型。這些對(duì)象具有某些共同的特性和行為。它抽象了對(duì)象值和型之間的“is member of”的語義。在E-R模型中,實(shí)體型就是這種抽象。例如在學(xué)校環(huán)境中,李英是老師,表示李英是教師類型中的一員,則教師是實(shí)體型,李英是教師實(shí)體型中的一個(gè)實(shí)體值,具有教師共同的特性和行為:在某個(gè)系某個(gè)專業(yè)教學(xué),講授某些課程,從事某個(gè)方向的科研。
9.試述數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)的重要性和設(shè)計(jì)步驟。
答: 重要性:
數(shù)據(jù)庫概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,將在需求分析階段所得到的應(yīng)用需求首先抽
象為概念結(jié)構(gòu),以此作為各種數(shù)據(jù)模型的共同基礎(chǔ),從而能更好地、更準(zhǔn)確地用某一DBMS實(shí)現(xiàn)這些需求。
設(shè)計(jì)步驟:
概念結(jié)構(gòu)的設(shè)計(jì)方法有多種,其中最經(jīng)常采用的策略是自底向上方法,該方法的設(shè)計(jì)步
驟通常分為兩步:第1步是抽象數(shù)據(jù)并設(shè)計(jì)局部視圖,第2步是集成局部視圖,得到全局的概念結(jié)構(gòu)
10.什么是E-R圖?構(gòu)成E-R圖的基本要素是什么?
答: E-R圖為實(shí)體-聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。
構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:
? 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名;
? 屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來;
? 聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。
11.為什么要視圖集成?視圖集成的方法是什么?
答: 在對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)時(shí)一般采用自底向上的設(shè)計(jì)方法,把繁雜的大系統(tǒng)分解子系統(tǒng)。首先設(shè)計(jì)各個(gè)子系統(tǒng)的局部視圖,然后通過視圖集成的方式將各子系統(tǒng)有機(jī)的融合起來,綜合成一個(gè)系統(tǒng)的總視圖。這樣設(shè)計(jì)清晰,由簡(jiǎn)到繁。由于數(shù)據(jù)庫系統(tǒng)是從整體角度看待和描述數(shù)據(jù)的,因此數(shù)據(jù)不再面向某個(gè)應(yīng)用而是整個(gè)系統(tǒng)。因此必須進(jìn)行視圖集成,使得數(shù)據(jù)庫能被全系統(tǒng)的多個(gè)用戶、多個(gè)應(yīng)用共享使用。
一般說來,視圖集成可以有兩種方式:
? 多個(gè)分E-R圖一次集成;
? 逐步集成,用累加的方式一次集成兩個(gè)分E-R圖。
無論采用哪種方式,每次集成局部E-R圖時(shí)都需要分兩步走:
(1)合并。解決各分E-R圖之間的沖突,將各分E-R圖合并起來生成初步E-R圖。
(2)修改和重構(gòu)。消除不必要的冗余,生成基本E-R圖。
12.什么是數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)?試述其設(shè)計(jì)步驟。
答: 數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。
設(shè)計(jì)步驟為:
(1)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;
(2)將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;
(3)對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。
13.試述把E-R圖轉(zhuǎn)換為DBTG模型和關(guān)系模型的轉(zhuǎn)換規(guī)則。
答: E-R圖向DBTG模型的轉(zhuǎn)換規(guī)則:
1)每個(gè)實(shí)體型轉(zhuǎn)換為記錄型,實(shí)體的屬性轉(zhuǎn)換為記錄的數(shù)據(jù)項(xiàng);
2)實(shí)體型之間1:n(n≥1)的聯(lián)系轉(zhuǎn)換為一個(gè)系,沒有任何聯(lián)系的實(shí)體型轉(zhuǎn)換為奇異系;
3)K(K≥2)個(gè)實(shí)體型之間多對(duì)多的聯(lián)系,引入一個(gè)連結(jié)記錄,形成K個(gè)實(shí)體型和連結(jié)記錄之間的K個(gè)系。連結(jié)記錄的屬性由諸首記錄的碼及聯(lián)系屬性所組成;
4)同一實(shí)體型內(nèi)的1:n,n:m聯(lián)系,引入連結(jié)記錄,轉(zhuǎn)換為兩個(gè)系。
*解析:根據(jù)我國實(shí)際,網(wǎng)狀,層次數(shù)據(jù)庫系統(tǒng)已很少使用,因此《概論》第三版把它們刪去了,有關(guān)的主要概念放在第一章數(shù)據(jù)模型中介紹。對(duì)于DBTG模型的許多概念也介紹得很簡(jiǎn)單。本題的內(nèi)容已經(jīng)超出了書上的內(nèi)容,同學(xué)們只要了解就可以了。但是,下面E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則要求同學(xué)必須掌握,并且能夠舉一反三。
答: E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則:
一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。
對(duì)于實(shí)體間的聯(lián)系則有以下不同的情況:
(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。如果與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。
(2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。
(3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體碼的組合組成該關(guān)系的碼,或碼的一部分。
(4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。
(5)具有相同碼的關(guān)系模式可合并。
*14.你能給出由E-R圖轉(zhuǎn)換為IMS模型的轉(zhuǎn)換規(guī)則嗎?
答: E-R圖向IMS模型的轉(zhuǎn)換規(guī)則:
1)每個(gè)實(shí)體型轉(zhuǎn)換為記錄型,實(shí)體的屬性轉(zhuǎn)換為記錄的數(shù)據(jù)項(xiàng);
2)實(shí)體型之間1:n(n≥1)的聯(lián)系轉(zhuǎn)換記錄型之間的有向邊;
3)實(shí)體型之間m:n(m>1,n>1)的聯(lián)系則分解成一對(duì)多聯(lián)系,再根據(jù)2)轉(zhuǎn)換;
4)K(K≥2)個(gè)實(shí)體型之間多對(duì)多的聯(lián)系,可先轉(zhuǎn)換成多對(duì)兩個(gè)實(shí)體型之間的聯(lián)系,再根據(jù)3)轉(zhuǎn)換。
*解析:IMS是IBM公司的層次數(shù)據(jù)庫管理系統(tǒng)。IMS模型是層次模型。E-R圖向IMS模型轉(zhuǎn)換的另一種方法是,先把E-R圖轉(zhuǎn)換為網(wǎng)狀模型,再利用IMS邏輯數(shù)據(jù)庫LDB的概念來表示網(wǎng)狀模型。詳細(xì)方法這里從略。
數(shù)據(jù)庫恢復(fù)技術(shù)
一、選擇題
1.一個(gè)事務(wù)的執(zhí)行,要么全部完成,要么全部不做,一個(gè)事務(wù)中對(duì)數(shù)據(jù)庫的所有操作都是一個(gè)不可分割的操作序列的屬性是()。
A.原子性
B.一致性
C.獨(dú)立性
D.持久性
2.表示兩個(gè)或多個(gè)事務(wù)可以同時(shí)運(yùn)行而不互相影響的是()。
A.原子性
B.一致性
C.獨(dú)立性
D.持久性
3.事務(wù)的持續(xù)性是指()
A.事務(wù)中包括的所有操作要么都做,要么都不做。
B.事務(wù)一旦提交,對(duì)數(shù)據(jù)庫的改變是永久的。
C.一個(gè)事務(wù)內(nèi)部的操作對(duì)并發(fā)的其他事務(wù)是隔離的。
D.事務(wù)必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。
4.SQL語言中的COMMIT語句的主要作用是()。
A.結(jié)束程序
B.返回系統(tǒng)
C.提交事務(wù)
D.存儲(chǔ)數(shù)據(jù)
5.SQL語言中用()語句實(shí)現(xiàn)事務(wù)的回滾
A.CREATE TABLE B.ROLLBACK
C.GRANT和REVOKE D.COMMIT
6. 若系統(tǒng)在運(yùn)行過程中,由于某種硬件故障,使存儲(chǔ)在外存上的數(shù)據(jù)部分損失或全部損失,這種情況稱為()。
A.介質(zhì)故障
B.運(yùn)行故障
C.系統(tǒng)故障 D.事務(wù)故障
7. 在DBMS中實(shí)現(xiàn)事務(wù)持久性的子系統(tǒng)是()。
A.安全管理子系統(tǒng)
B.完整性管理子系統(tǒng)
C.并發(fā)控制子系統(tǒng)
D.恢復(fù)管理子系統(tǒng)
8.后援副本的作用是()。
A.保障安全性
B.一致性控制
C.故障后的恢復(fù)
D.數(shù)據(jù)的轉(zhuǎn)儲(chǔ)
9. 事務(wù)日志用于保存()。
A.程序運(yùn)行過程
B.程序的執(zhí)行結(jié)果
C.對(duì)數(shù)據(jù)的更新操作
D.數(shù)據(jù)操作
10. 數(shù)據(jù)庫恢復(fù)的基礎(chǔ)是利用轉(zhuǎn)儲(chǔ)的冗余數(shù)據(jù)。這些轉(zhuǎn)儲(chǔ)的冗余數(shù)據(jù)包括()。
A.數(shù)據(jù)字典、應(yīng)用程序、審計(jì)檔案、數(shù)據(jù)庫后備副本
B.數(shù)據(jù)字典、應(yīng)用程序、審計(jì)檔案、日志文件
C.日志文件、數(shù)據(jù)庫后備副本
D.數(shù)據(jù)字典、應(yīng)用程序、數(shù)據(jù)庫后備副本
選擇題答案:(1)A(2)C(3)B(4)C(5)B(6)A(7)D(8)C(9)C(10)C
二、簡(jiǎn)答題
1.試述事務(wù)的概念及事務(wù)的四個(gè)特性。
答: 事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的工作單位。
事務(wù)具有四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個(gè)四個(gè)特性也簡(jiǎn)稱為ACID特性。
原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。
一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。
隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。
持續(xù)性:持續(xù)性也稱永久性(Permanence),指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。
2.為什么事務(wù)非正常結(jié)束時(shí)會(huì)影響數(shù)據(jù)庫數(shù)據(jù)的正確性,請(qǐng)列舉一例說明之。
答: 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對(duì)數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時(shí)數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。
例如某工廠的庫存管理系統(tǒng)中,要把數(shù)量為Q的某種零件從倉庫1移到倉庫2存放。
則可以定義一個(gè)事務(wù)T,T包括兩個(gè)操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時(shí)只做了第一個(gè)操作,則數(shù)據(jù)庫就處于不一致性狀態(tài),庫存量無緣無故少了Q。
3.數(shù)據(jù)庫中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么?
答: 因?yàn)橛?jì)算機(jī)系統(tǒng)中硬件的故障、軟件的錯(cuò)誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運(yùn)行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失,因此必須要有恢復(fù)子系統(tǒng)。
恢復(fù)子系統(tǒng)的功能是:把數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。
4.?dāng)?shù)據(jù)庫運(yùn)行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破壞數(shù)據(jù)庫數(shù)據(jù)?
答:數(shù)據(jù)庫系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:
(1)事務(wù)內(nèi)部的故障;
(2)系統(tǒng)故障;
(3)介質(zhì)故障;
(4)計(jì)算機(jī)病毒。
事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行;介質(zhì)故障和計(jì)算機(jī)病毒破壞數(shù)據(jù)
庫數(shù)據(jù)。
5.據(jù)庫恢復(fù)的基本技術(shù)有哪些?
答:數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件是數(shù)據(jù)庫恢復(fù)的基本技術(shù)。
當(dāng)系統(tǒng)運(yùn)行過程中發(fā)生故障,利用轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫后備副本和日志文件就可以將數(shù)據(jù)庫恢復(fù)到故障前的某個(gè)一致性狀態(tài)。
6.數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)的意義是什么? 試比較各種數(shù)據(jù)轉(zhuǎn)儲(chǔ)方法。
答: 數(shù)據(jù)轉(zhuǎn)儲(chǔ)是數(shù)據(jù)庫恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲(chǔ)即DBA定期地將數(shù)據(jù)庫復(fù)制到磁帶或另一個(gè)磁盤上保存起來的過程。當(dāng)數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的狀態(tài)。
靜態(tài)轉(zhuǎn)儲(chǔ):在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作。靜態(tài)轉(zhuǎn)儲(chǔ)簡(jiǎn)單,但必須等待正運(yùn)行的用戶事務(wù)結(jié)束才能進(jìn)行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲(chǔ)結(jié)束才能執(zhí)行。顯然,這會(huì)降低數(shù)據(jù)庫的可用性。
動(dòng)態(tài)轉(zhuǎn)儲(chǔ):指轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫進(jìn)行存取或修改。動(dòng)態(tài)轉(zhuǎn)儲(chǔ)可克服靜態(tài)轉(zhuǎn)儲(chǔ)的缺點(diǎn),它不用等待正在運(yùn)行的用戶事務(wù)結(jié)束,也不會(huì)影響新事務(wù)的運(yùn)行。但是,轉(zhuǎn)儲(chǔ)結(jié)束時(shí)后援副本上的數(shù)據(jù)并不能保證正確有效。因?yàn)檗D(zhuǎn)儲(chǔ)期間運(yùn)行的事務(wù)可能修改了某些數(shù)據(jù),使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)庫的一致版本。
為此,必須把轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫的修改活動(dòng)登記下來,建立日志文件(log file)。這樣,后援副本加上日志文件就能得到數(shù)據(jù)庫某一時(shí)刻的正確狀態(tài)。
轉(zhuǎn)儲(chǔ)還可以分為海量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ)兩種方式。
海量轉(zhuǎn)儲(chǔ)是指每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫。增量轉(zhuǎn)儲(chǔ)則指每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過的數(shù)據(jù)。從恢復(fù)角度看,使用海量轉(zhuǎn)儲(chǔ)得到的后備副本進(jìn)行恢復(fù)一般說來更簡(jiǎn)單些。但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,則增量轉(zhuǎn)儲(chǔ)方式更實(shí)用更有效。
7.什么是日志文件?為什么要設(shè)立日志文件?
答:(1)日志文件是用來記錄事務(wù)對(duì)數(shù)據(jù)庫的更新操作的文件。
(2)設(shè)立日志文件的目的是: 進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù);協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。
8.登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫?
答: 把對(duì)數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個(gè)修改的日志記錄寫到日志文件中是兩個(gè)不同的操作。有可能在這兩個(gè)操作之間發(fā)生故障,即這兩個(gè)寫操作只完成了一個(gè)。
如果先寫了數(shù)據(jù)庫修改,而在運(yùn)行記錄中沒有登記這個(gè)修改,則以后就無法恢復(fù)這個(gè)修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫,在恢復(fù)時(shí)只不過是多執(zhí)行一次UNDO操作,并不會(huì)影響數(shù)據(jù)庫的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫的修改。
9.針對(duì)不同的故障,試給出恢復(fù)的策略和方法。(即如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?)
答: 事務(wù)故障的恢復(fù):
事務(wù)故障的恢復(fù)是由DBMS自動(dòng)完成的,對(duì)用戶是透明的。
DBMS執(zhí)行恢復(fù)步驟是:
(1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。
(2)對(duì)該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。
(3)繼續(xù)反向掃描日志文件,做同樣處理。
(4)如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,該事務(wù)故障的恢復(fù)就完成了。
答: 系統(tǒng)故障的恢復(fù):
系統(tǒng)故障可能會(huì)造成數(shù)據(jù)庫處于不一致狀態(tài):
一是未完成事務(wù)對(duì)數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫;
二是已提交事務(wù)對(duì)數(shù)據(jù)庫的更新可能還留在緩沖區(qū),沒來得及寫入數(shù)據(jù)庫。
因此恢復(fù)操作就是要撤銷(UNDO)故障發(fā)生時(shí)未完成的事務(wù),重做(REDO)已完成的事務(wù)。
系統(tǒng)的恢復(fù)步驟是:
(1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù)隊(duì)列(REDO隊(duì)列)和未完成的事務(wù)隊(duì)列(UNDO隊(duì)列)。
(2)對(duì)撤銷隊(duì)列中的各個(gè)事務(wù)進(jìn)行UNDO處理。
進(jìn)行UNDO處理的方法是,反向掃描日志文件,對(duì)每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”(Before Image)寫入數(shù)據(jù)庫。
(3)對(duì)重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行REDO處理。
進(jìn)行REDO處理的方法是:正向掃描日志文件,對(duì)每個(gè)REDO事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”(After Image)寫入數(shù)據(jù)庫。
*解析:
在第(1)步中如何找出REDO隊(duì)列和UNDO隊(duì)列?請(qǐng)大家思考一下。
下面給出一個(gè)算法:
1)建立兩個(gè)事務(wù)隊(duì)列:
? UNDO-LIST: 需要執(zhí)行undo操作的事務(wù)集合;
? REDO-LIST: 需要執(zhí)行redo操作的事務(wù)集合;
兩個(gè)事務(wù)隊(duì)列初始均為空。
2)從日志文件頭開始,正向掃描日志文件
? 如有新開始(遇到Begin Transaction)的事務(wù)Ti,把Ti暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列;
? 如有提交的事務(wù)(遇到End Transaction)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列;
直到日志文件結(jié)束
答: 介質(zhì)故障的恢復(fù):
介質(zhì)故障是最嚴(yán)重的一種故障。
恢復(fù)方法是重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。具體過程是:
(1)DBA裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時(shí)刻最近的轉(zhuǎn)儲(chǔ)副本),使數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。
(2)DBA裝入轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的日志文件副本
(3)DBA啟動(dòng)系統(tǒng)恢復(fù)命令,由DBMS完成恢復(fù)功能,即重做已完成的事務(wù)。
*解析
1)我們假定采用的是靜態(tài)轉(zhuǎn)儲(chǔ),因此第(1)步裝入數(shù)據(jù)庫后備副本便可以了。
2)如果采用的是靜動(dòng)態(tài)轉(zhuǎn)儲(chǔ),第(1)步裝入數(shù)據(jù)庫后備副本還不夠,還需同時(shí)裝入轉(zhuǎn)儲(chǔ)開始時(shí)刻的日志文件副本,經(jīng)過處理后才能得到正確的數(shù)據(jù)庫后備副本。
3)第(2)步重做已完成的事務(wù)的算法是:
a.正向掃描日志文件,找出故障發(fā)生前已提交的事務(wù)的標(biāo)識(shí),將其記入重做隊(duì)列
b.再一次正向掃描日志文件,對(duì)重做隊(duì)列中的所有事務(wù)進(jìn)行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。
10.具有檢查點(diǎn)的恢復(fù)技術(shù)有什么優(yōu)點(diǎn)?
答: 利用日志技術(shù)進(jìn)行數(shù)據(jù)庫恢復(fù)時(shí),恢復(fù)子系統(tǒng)必須搜索日志,確定哪些事務(wù)需要REDO,哪些事務(wù)需要UNDO。一般來說,需要檢查所有日志記錄。這樣做有兩個(gè)問題:
一是搜索整個(gè)日志將耗費(fèi)大量的時(shí)間。
二是很多需要REDO處理的事務(wù)實(shí)際上已經(jīng)將它們的更新操作結(jié)果寫到數(shù)據(jù)庫中了,恢復(fù)子系統(tǒng)又重新執(zhí)行了這些操作,浪費(fèi)了大量時(shí)間。
檢查點(diǎn)技術(shù)就是為了解決這些問題。
11.試述使用檢查點(diǎn)方法進(jìn)行恢復(fù)的步驟。
答: ① 從重新開始文件中找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個(gè)檢查點(diǎn)記錄。
② 由該檢查點(diǎn)記錄得到檢查點(diǎn)建立時(shí)刻所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST。
這里建立兩個(gè)事務(wù)隊(duì)列:
? UNDO-LIST: 需要執(zhí)行undo操作的事務(wù)集合;
? REDO-LIST: 需要執(zhí)行redo操作的事務(wù)集合;
把ACTIVE-LIST暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列,REDO隊(duì)列暫為空。
③ 從檢查點(diǎn)開始正向掃描日志文件
? 如有新開始的事務(wù)Ti,把Ti暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列;
? 如有提交的事務(wù)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列,直到日志文件結(jié)束;
④ 對(duì)UNDO-LIST中的每個(gè)事務(wù)執(zhí)行UNDO操作, 對(duì)REDO-LIST中的每個(gè)事務(wù)執(zhí)行REDO操作。
12.什么是數(shù)據(jù)庫鏡像?它有什么用途?
答: 數(shù)據(jù)庫鏡像即根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫或者其中的部分關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上。每當(dāng)主數(shù)據(jù)庫更新時(shí),DBMS自動(dòng)把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。
數(shù)據(jù)庫鏡像的用途有:
一是用于數(shù)據(jù)庫恢復(fù)。當(dāng)出現(xiàn)介質(zhì)故障時(shí),可由鏡像磁盤繼續(xù)提供使用,同時(shí)DBMS自動(dòng)利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本。
二是提高數(shù)據(jù)庫的可用性。在沒有出現(xiàn)故障時(shí),當(dāng)一個(gè)用戶對(duì)某個(gè)數(shù)據(jù)加排它鎖進(jìn)行修改時(shí),其他用戶可以讀鏡像數(shù)據(jù)庫上的數(shù)據(jù),而不必等待該用戶釋放鎖。
*13.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品中采用的恢復(fù)策略。
答: 下面簡(jiǎn)單介紹一下Oracle的恢復(fù)技術(shù):
Oracle中恢復(fù)機(jī)制也采用了轉(zhuǎn)儲(chǔ)和登記日志文件兩個(gè)技術(shù)。
Oracle向DBA提供了多種轉(zhuǎn)儲(chǔ)后備副本的方法,如文件拷貝、利用Oracle的Export實(shí)用程序、用SQL命令Spool以及自己編程實(shí)現(xiàn)等。相應(yīng)地,Oracle也提供了多種重裝后備副本的方法,如文件拷貝、利用Oracle的Import實(shí)用程序、利用SQL*LOADER以及自己編程實(shí)現(xiàn)等。
在Oracle 早期版本(V.5)中,日志文件以數(shù)據(jù)塊為單位,也就是說,Oracle的恢復(fù)操作是基于數(shù)據(jù)塊的,不是基于操作的。Oracle中記錄數(shù)據(jù)庫更新前的舊值的日志文件稱為數(shù)據(jù)庫前像文件(Before Image,簡(jiǎn)稱BI文件),記錄數(shù)據(jù)庫更新后的新值的日志文件稱為數(shù)據(jù)庫的后像文件(After Image,簡(jiǎn)稱AI文件)。BI文件是必須配置的,AI文件是可以任選的。
Oracle7為了能夠在出現(xiàn)故障時(shí)更有效地恢復(fù)數(shù)據(jù),也為了解決讀“臟”數(shù)據(jù)問題,提供了REDO日志文件和回滾段(Rollback Segment)。REDO日志文件中記錄了被更新數(shù)據(jù)的前像和后像?;貪L段記錄更新數(shù)據(jù)的前像,設(shè)在數(shù)據(jù)庫緩沖區(qū)中。在利用日志文件進(jìn)行故障恢復(fù)時(shí),為減少掃描日志文件的遍數(shù),Oracle7首先掃描REDO日志文件,重做所有操作,包括未正常提交的事務(wù)的操作,然后再根據(jù)回滾段中的數(shù)據(jù),撤銷未正常提交的事務(wù)的操作。
詳細(xì)技術(shù)希望同學(xué)自己設(shè)法了解Oracle最新版本的介紹,例如通過INTERNET訪問Oracle公司的網(wǎng)站。也可以了解其他DBMS廠商的產(chǎn)品情況。
*14.試用恢復(fù)的基本技術(shù)設(shè)計(jì)一個(gè)恢復(fù)子系統(tǒng),給出這個(gè)子系統(tǒng)的恢復(fù)策略,包括:
(a)當(dāng)產(chǎn)生某一類故障時(shí)如何恢復(fù)數(shù)據(jù)庫的方法;
(b)日志文件的結(jié)構(gòu);
(c)登記日志文件的方法;
(d)利用日志文件恢復(fù)事務(wù)的方法;
(e)轉(zhuǎn)儲(chǔ)的類型;
(f)轉(zhuǎn)儲(chǔ)的后備副本和日志文件如何配合使用。
*解析:這是一個(gè)大作業(yè)??梢跃C合復(fù)習(xí)和運(yùn)用學(xué)到的知識(shí)。設(shè)計(jì)一個(gè)恢復(fù)子系統(tǒng)。
例如,日志文件的結(jié)構(gòu)你可以記錄為單位,也可以以數(shù)據(jù)塊為單位。不同的日志文件結(jié)構(gòu),登記的日志內(nèi)容,日志文件恢復(fù)事務(wù)的方法也就不同了。
對(duì)于研究生,還應(yīng)該上機(jī)模擬實(shí)現(xiàn)你設(shè)計(jì)的恢復(fù)子系統(tǒng)。
數(shù)據(jù)庫并發(fā)控制
一、選擇題
1. 為了防止一個(gè)用戶的工作不適當(dāng)?shù)赜绊懥硪粋€(gè)用戶,應(yīng)該采取()。
A.完整性控制
B.訪問控制
C.安全性控制
D.并發(fā)控制
2.解決并發(fā)操作帶來的數(shù)據(jù)不一致問題普遍采用()技術(shù)。
A.封鎖
B.存取控制
C.恢復(fù)
D.協(xié)商
3. 下列不屬于并發(fā)操作帶來的問題是()。
A.丟失修改
B.不可重復(fù)讀
C.死鎖
D.臟讀
4. DBMS普遍采用()方法來保證調(diào)度的正確性。
A.索引
B.授權(quán)
C.封鎖
D.日志
5.事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X鎖,直到事務(wù)結(jié)束才釋放,這是()。
A.一級(jí)封鎖協(xié)議
B.二級(jí)封鎖協(xié)議
C.三級(jí)封鎖協(xié)議
D.零級(jí)封鎖協(xié)議
6. 如果事務(wù)T獲得了數(shù)據(jù)項(xiàng)Q上的排他鎖,則T對(duì)Q()。
A.只能讀不能寫
B.只能寫不能讀
C.既可讀又可寫 D.不能讀也不能寫
7.設(shè)事務(wù)T1和T2,對(duì)數(shù)據(jù)庫中地?cái)?shù)據(jù)A進(jìn)行操作,可能有如下幾種情況,請(qǐng)問哪一種不會(huì)發(fā)生沖突操作()。
A.T1正在寫A,T2要讀A
B.T1正在寫A,T2也要寫A
C.T1正在讀A,T2要寫A D.T1正在讀A,T2也要讀A
8.如果有兩個(gè)事務(wù),同時(shí)對(duì)數(shù)據(jù)庫中同一數(shù)據(jù)進(jìn)行操作,不會(huì)引起沖突的操作是()。
A.一個(gè)是DELETE,一個(gè)是SELECT
B.一個(gè)是SELECT,一個(gè)是DELETE
C.兩個(gè)都是UPDATE
D.兩個(gè)都是SELECT
9. 在數(shù)據(jù)庫系統(tǒng)中,死鎖屬于()。
A.系統(tǒng)故障
B.事務(wù)故障
C.介質(zhì)故障 D.程序故障
參考答案:(1)D(2)A(3)C(4)C(5)A(6)C(7)D(8)D(9)B
二、簡(jiǎn)答題
1.在數(shù)據(jù)庫中為什么要并發(fā)控制?
答:數(shù)據(jù)庫是共享資源,通常有許多個(gè)事務(wù)同時(shí)在運(yùn)行。
當(dāng)多個(gè)事務(wù)并發(fā)地存取數(shù)據(jù)庫時(shí)就會(huì)產(chǎn)生同時(shí)讀取和/或修改同一數(shù)據(jù)的情況。若對(duì)并發(fā)操作不加控制就可能會(huì)存取和存儲(chǔ)不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。所以數(shù)據(jù)庫管理系統(tǒng)必須提供并發(fā)控制機(jī)制。
2.并發(fā)操作可能會(huì)產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況?
答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟”數(shù)據(jù)。
(1)丟失修改(Lost Update)
兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導(dǎo)致T1的修改被丟失。
(2)不可重復(fù)讀(Non-Repeatable Read)
不可重復(fù)讀是指事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果。
(3)讀“臟”數(shù)據(jù)(Dirty Read)
讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時(shí)T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。
避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的并發(fā)控制技術(shù)是封鎖技術(shù)。
也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫系統(tǒng)中可以采用時(shí)間戳方法來進(jìn)行并發(fā)控制。
3.什么是封鎖?
答:封鎖就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對(duì)象。
封鎖是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)。
4.基本的封鎖類型有幾種?試述它們的含義。
答:基本的封鎖類型有兩種: 排它鎖(Exclusive Locks,簡(jiǎn)稱X鎖)和共享鎖(Share Locks,簡(jiǎn)稱S鎖)。
排它鎖又稱為寫鎖。若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)都不能再對(duì)A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。
共享鎖又稱為讀鎖。若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對(duì)A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對(duì)A做任何修改。
5.什么是封鎖協(xié)議?不同級(jí)別的封鎖協(xié)議的主要區(qū)別是什么?
答:在運(yùn)用封鎖技術(shù)對(duì)數(shù)據(jù)加鎖時(shí),要約定一些規(guī)則。例如,在運(yùn)用X鎖和S鎖對(duì)數(shù)據(jù)對(duì)象加鎖時(shí),要約定何時(shí)申請(qǐng)X鎖或S鎖、何時(shí)釋放封鎖等。這些約定或者規(guī)則稱為封鎖協(xié)議(Locking Protocol)。對(duì)封鎖方式約定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。不同級(jí)別的封鎖協(xié)議,例如《概論》中介紹的三級(jí)封鎖協(xié)議,三級(jí)協(xié)議的主要區(qū)別在于什么操作需要申請(qǐng)封鎖,何時(shí)申請(qǐng)封鎖以及何時(shí)釋放鎖(即持鎖時(shí)間的長短)。
一級(jí)封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X鎖,直到事務(wù)結(jié)束才釋放。
二級(jí)封鎖協(xié)議:一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,讀完后即可釋放S鎖。
三級(jí)封鎖協(xié)議:一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,直到事務(wù)結(jié)束才釋放。
6.不同封鎖協(xié)議與系統(tǒng)一致性級(jí)別的關(guān)系是什么?
答: 不同的封鎖協(xié)議對(duì)應(yīng)不同的一致性級(jí)別。
一級(jí)封鎖協(xié)議可防止丟失修改,并保證事務(wù)T是可恢復(fù)的。在一級(jí)封鎖協(xié)議中,對(duì)讀數(shù)據(jù)是不加S鎖的,所以它不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。
二級(jí)封鎖協(xié)議除防止了丟失修改,還可進(jìn)一步防止讀“臟”數(shù)據(jù)。在二級(jí)封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S鎖,所以它不能保證可重復(fù)讀。
在三級(jí)封鎖協(xié)議中,無論是讀數(shù)據(jù)還是寫數(shù)據(jù)都加長鎖,即都要到事務(wù)結(jié)束時(shí)才釋放封鎖。所以三級(jí)封鎖協(xié)議除防止了丟失修改和不讀“臟”數(shù)據(jù)外,還進(jìn)一步防止了不可重復(fù)讀。
7.試述活鎖的產(chǎn)生原因和解決方法。
答: 活鎖產(chǎn)生的原因:當(dāng)一系列封鎖不能按照其先后順序執(zhí)行時(shí),就可能導(dǎo)致一些事務(wù)無限期等待某個(gè)封鎖,從而導(dǎo)致活鎖。
避免活鎖的簡(jiǎn)單方法是采用先來先服務(wù)的策略。當(dāng)多個(gè)事務(wù)請(qǐng)求封鎖同一數(shù)據(jù)對(duì)象時(shí),封鎖子系統(tǒng)按請(qǐng)求封鎖的先后次序?qū)κ聞?wù)排隊(duì),數(shù)據(jù)對(duì)象上的鎖一旦釋放就批準(zhǔn)申請(qǐng)隊(duì)列中第一個(gè)事務(wù)獲得鎖。
8.請(qǐng)給出預(yù)防死鎖的若干方法。
答: 在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個(gè)或多個(gè)事務(wù)都已封鎖了一些數(shù)據(jù)對(duì)象,然后又都請(qǐng)求已被其他事務(wù)封鎖的數(shù)據(jù)加鎖,從而出現(xiàn)死等待。
防止死鎖的發(fā)生其實(shí)就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:
(1)一次封鎖法
要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。
(2)順序封鎖法
預(yù)先對(duì)數(shù)據(jù)對(duì)象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。
不過,預(yù)防死鎖的策略不大適合數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。
9.請(qǐng)給出檢測(cè)死鎖發(fā)生的一種方法,當(dāng)發(fā)生死鎖后如何解除死鎖?
答:數(shù)據(jù)庫系統(tǒng)一般采用允許死鎖發(fā)生,DBMS檢測(cè)到死鎖后加以解除的方法。
DBMS中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時(shí)法或事務(wù)等待圖法。
超時(shí)法是:如果一個(gè)事務(wù)的等待時(shí)間超過了規(guī)定的時(shí)限,就認(rèn)為發(fā)生了死鎖。超時(shí)法實(shí)現(xiàn)簡(jiǎn)單,但有可能誤判死鎖,事務(wù)因其他原因長時(shí)間等待超過時(shí)限時(shí),系統(tǒng)會(huì)誤認(rèn)為發(fā)生了死鎖。若時(shí)限設(shè)置得太長,又不能及時(shí)發(fā)現(xiàn)死鎖發(fā)生。
DBMS并發(fā)控制子系統(tǒng)檢測(cè)到死鎖后,就要設(shè)法解除。通常采用的方法是選擇一個(gè)處理死鎖代價(jià)最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有鎖,使其他事務(wù)得以繼續(xù)運(yùn)行下去。當(dāng)然,對(duì)撤銷的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復(fù)。
10.什么樣的并發(fā)調(diào)度是正確的調(diào)度?
答: 可串行化(Serializable)的調(diào)度是正確的調(diào)度。
可串行化的調(diào)度的定義:多個(gè)事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時(shí)的結(jié)果相同,我們稱這種調(diào)度策略為可串行化的調(diào)度。
11.試述兩段鎖協(xié)議的概念。
答: 兩段鎖協(xié)議是指所有事務(wù)必須分兩個(gè)階段對(duì)數(shù)據(jù)項(xiàng)加鎖和解鎖。
? 在對(duì)任何數(shù)據(jù)進(jìn)行讀、寫操作之前,首先要申請(qǐng)并獲得對(duì)該數(shù)據(jù)的封鎖;
? 在釋放一個(gè)封鎖之后,事務(wù)不再申請(qǐng)和獲得任何其他封鎖。
“兩段”的含義是,事務(wù)分為兩個(gè)階段:
第一階段是獲得封鎖,也稱為擴(kuò)展階段。在這階段,事務(wù)可以申請(qǐng)獲得任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但是不能釋放任何鎖。
第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務(wù)釋放已經(jīng)獲得的鎖,但是不能再申請(qǐng)任何鎖。
12.為什么要引進(jìn)意向鎖? 意向鎖的含義是什么?
答: 引進(jìn)意向鎖是為了提高封鎖子系統(tǒng)的效率。該封鎖子系統(tǒng)支持多種封鎖粒度。
原因是:在多粒度封鎖方法中一個(gè)數(shù)據(jù)對(duì)象可能以兩種方式加鎖—顯式封鎖和隱式封鎖。因此系統(tǒng)在對(duì)某一數(shù)據(jù)對(duì)象加鎖時(shí)不僅要檢查該數(shù)據(jù)對(duì)象上有無(顯式和隱式)封鎖與之沖突;還要檢查其所有上級(jí)結(jié)點(diǎn)和所有下級(jí)結(jié)點(diǎn),看申請(qǐng)的封鎖是否與這些結(jié)點(diǎn)上的(顯式和隱式)封鎖沖突;顯然,這樣的檢查方法效率很低。為此引進(jìn)了意向鎖。
意向鎖的含義是:對(duì)任一結(jié)點(diǎn)加鎖時(shí),必須先對(duì)它的上層結(jié)點(diǎn)加意向鎖。
例如事務(wù)T要對(duì)某個(gè)元組加X鎖,則首先要對(duì)關(guān)系和數(shù)據(jù)庫加IX鎖。換言之,對(duì)關(guān)系和數(shù)據(jù)庫加IX鎖,表示它的后裔結(jié)點(diǎn)—某個(gè)元組擬(意向)加X鎖。
引進(jìn)意向鎖后,系統(tǒng)對(duì)某一數(shù)據(jù)對(duì)象加鎖時(shí)不必逐個(gè)檢查與下一級(jí)結(jié)點(diǎn)的封鎖沖突了。例如,事務(wù)T要對(duì)關(guān)系R加X鎖時(shí),系統(tǒng)只要檢查根結(jié)點(diǎn)數(shù)據(jù)庫和R本身是否已加了不相容的鎖(如發(fā)現(xiàn)已經(jīng)加了IX,則與X沖突),而不再需要搜索和檢查R中的每一個(gè)元組是否加了X鎖或S鎖。
13.試述常用的意向鎖:IS鎖,IX鎖,SIX鎖,給出這些鎖的相容矩陣。
答: IS鎖:如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加IS鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加S鎖。例如,要對(duì)某個(gè)元組加S鎖,則要首先對(duì)關(guān)系和數(shù)據(jù)庫加IS鎖
IX鎖:如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加IX鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加X鎖。例如,要對(duì)某個(gè)元組加X鎖,則要首先對(duì)關(guān)系和數(shù)據(jù)庫加IX鎖。
SIX鎖:如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加SIX鎖,表示對(duì)它加S鎖,再加IX鎖,即SIX = S + IX。
相容矩陣(略)
14.理解并解釋下列術(shù)語的含義:封鎖,活鎖,死鎖,排它鎖,共享鎖,并發(fā)事務(wù)的調(diào)度,可串行化的調(diào)度,兩段鎖協(xié)議。
答:(略,已經(jīng)在上面有關(guān)習(xí)題中解答)
*15.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品的并發(fā)控制機(jī)制。
答:(略)
數(shù)據(jù)庫安全性
一、選擇題
1.以下()不屬于實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的主要技術(shù)和方法。
A.存取控制技術(shù)
B.視圖技術(shù)
C.審計(jì)技術(shù) D.出入機(jī)房登記和加鎖
2. SQL中的視圖提高了數(shù)據(jù)庫系統(tǒng)的()。
A.完整性
B.并發(fā)控制
C.隔離性
D.安全性
3. SQL語言的GRANT和REMOVE語句主要是用來維護(hù)數(shù)據(jù)庫的()。
A.完整性
B.可靠性
C.安全性
D.一致性
4.在數(shù)據(jù)庫的安全性控制中,授權(quán)的數(shù)據(jù)對(duì)象的(),授權(quán)子系統(tǒng)就越靈活。
A.范圍越小
B.約束越細(xì)致
C.范圍越大
D.約束范圍大
選擇題答案:
(1)D(2)D(3)C(4)A
三、簡(jiǎn)答題
1.什么是數(shù)據(jù)庫的安全性?
答: 數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。
2.數(shù)據(jù)庫安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?
答: 安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問題。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。
系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一。
數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的,3.試述實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。
答: 實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:
1)用戶標(biāo)識(shí)和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過鑒定后才提供系統(tǒng)的使用權(quán)。
2)存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如C2級(jí)中的自主存取控制(DAC),B1級(jí)中的強(qiáng)制存取控制(MAC);
3)視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無權(quán)存取的用戶隱藏起來,從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。
4)審計(jì):建立審計(jì)日志,把用戶對(duì)數(shù)據(jù)庫的所有操作自動(dòng)記錄下來放入審計(jì)日志中,DBA可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
5)數(shù)據(jù)加密:對(duì)存儲(chǔ)和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。
具體內(nèi)容請(qǐng)參見《概論》9.2。
4.什么是數(shù)據(jù)庫中的自主存取控制方法和強(qiáng)制存取控制方法?
答:自主存取控制方法:定義各個(gè)用戶對(duì)不同數(shù)據(jù)對(duì)象的存取權(quán)限。當(dāng)用戶對(duì)數(shù)據(jù)庫訪問時(shí)首先檢查用戶的存取權(quán)限。防止不合法用戶對(duì)數(shù)據(jù)庫的存取。
強(qiáng)制存取控制方法:每一個(gè)數(shù)據(jù)對(duì)象被(強(qiáng)制地)標(biāo)以一定的密級(jí),每一個(gè)用戶也被(強(qiáng)制地)授予某一個(gè)級(jí)別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級(jí)別的用戶才能存取某一個(gè)密級(jí)的數(shù)據(jù)對(duì)象。
*解析:自主存取控制中自主的含義是:用戶可以將自己擁有的存取權(quán)限“自主”地授予別人。即用戶具有一定的“自主”權(quán)。
5.SQL語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?請(qǐng)?jiān)嚺e幾例說明它們的使用方法。
答:SQL中 的自主存取控制是通過GRANT 語句和 REVOKE 語句來實(shí)現(xiàn)的。如:
GRANT SELECT,INSERT ON Student TO 王平WITH GRANT OPTION;
就將Student表的SELECT和INSERT權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION”子句表示用戶王平同時(shí)也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。
REVOKE INSERT ON Student FROM 王平CASCADE;
就將Student表 的INSERT權(quán)限從用戶王平處收回,選項(xiàng) CASCADE 表示,如果用戶王平將 Student 的 INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。
6.今有兩個(gè)關(guān)系模式:
職工(職工號(hào),姓名,年齡,職務(wù),工資,部門號(hào))
部門(部門號(hào),名稱,經(jīng)理名,地址,電話號(hào))
請(qǐng)用SQL的GRANT和REVOKE語句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:
(a)用戶王明對(duì)兩個(gè)表有SELECT權(quán)力;
GRANT SELECT ON 職工,部門 TO 王明;
(b)用戶李勇對(duì)兩個(gè)表有INSERT和DELETE權(quán)力;
GRANT INSERT,DELETE ON 職工,部門 TO 李勇;
(c)*每個(gè)職工只對(duì)自己的記錄有SELECT權(quán)力;
GRANT SELECT ON 職工 WHEN USER()= NAME TO ALL;
這里假定系統(tǒng)的GRANT語句支持WHEN子句和USER()的使用。用戶將自己的名字作為ID。注意,不同的系統(tǒng)這些擴(kuò)展語句可能是不同的。讀者應(yīng)該了解你使用的DBMS產(chǎn)品的擴(kuò)展語句。
(d)用戶劉星對(duì)職工表有SELECT權(quán)力,對(duì)工資字段具有更新權(quán)力;
GRANT SELECT,UPDATE(工資)ON 職工 TO 劉星;
(e)用戶張新具有修改這兩個(gè)表的結(jié)構(gòu)的權(quán)力;
GRANT ALTER TABLE ON 職工,部門 TO 張新;
(f)用戶周平具有對(duì)兩個(gè)表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力;
GRANT ALL PRIVILIGES ON 職工,部門 TO 周平WITH GRANT OPTION;
(g)用戶楊蘭具有從每個(gè)部門職工中SELECT最高工資,最低工資,平均工資的權(quán)力,他不能查看每個(gè)人的工資。
答: 首先建立一個(gè)視圖。然后對(duì)這個(gè)視圖定義楊蘭的存取權(quán)限。
CREATE VIEW 部門工資 AS
SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門
WHERE 職工.部門號(hào) = 部門.部門號(hào)
GROUP BY 職工.部門號(hào);
GRANT SELECT ON 部門工資 TO 楊蘭;
7.把習(xí)題8中(a)~(g)的每一種情況,撤銷各用戶所授予的權(quán)力。
答:(a)REVOKE SELECT ON 職工,部門 FROM 王明;
(b)REVOKE INSERT,DELETE ON 職工,部門 FROM 李勇;
(c)REOVKE SELECT ON 職工 WHEN USER()= NAME FROM ALL;
這里假定用戶將自己的名字作為ID,且系統(tǒng)的REOVKE語句支持WHEN子句,系統(tǒng)也支持USER()的使用。
(d)REVOKE SELECT,UPDATE ON 職工 FROM 劉星;
(e)REVOKE ALTER TABLE ON 職工,部門 FROM 張新;
(f)REVOKE ALL PRIVILIGES ON 職工,部門 FROM 周平;
(g)REVOKE SELECT ON 部門工資 FROM 楊蘭;
DROP VIEW 部門工資;
8.為什么強(qiáng)制存取控制提供了更高級(jí)別的數(shù)據(jù)庫安全性?
答:強(qiáng)制存取控制(MAC)是對(duì)數(shù)據(jù)本身進(jìn)行密級(jí)標(biāo)記,無論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體,只有符合密級(jí)標(biāo)記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級(jí)別的安全性。
9.理解并解釋MAC機(jī)制中主體、客體、敏感度標(biāo)記的含義。
答:主體是系統(tǒng)中的活動(dòng)實(shí)體,既包括DBMS所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。
客體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的,包括文件、基表、索引、視圖等。
對(duì)于主體和客體,DBMS為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label)。敏感度標(biāo)記被分成若干級(jí)別,例如絕密(Top Secret)、機(jī)密(Secret)、可信(Confidential)、公開(Public)等。主體的敏感度標(biāo)記稱為許可證級(jí)別(Clearance Level),客體的敏感度標(biāo)記稱為密級(jí)(Classification Level)。
10.什么是數(shù)據(jù)庫的審計(jì)功能,為什么要提供審計(jì)功能?
答:審計(jì)功能指DBMS的審計(jì)模塊在用戶對(duì)數(shù)據(jù)庫執(zhí)行操作的同時(shí)把所有操作自動(dòng)記錄到系統(tǒng)的審計(jì)日志中。
因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計(jì)功能,DBA可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
11.統(tǒng)計(jì)數(shù)據(jù)庫中存在何種特殊的安全性問題?
答: 統(tǒng)計(jì)數(shù)據(jù)庫允許用戶查詢聚集類型的信息,如合計(jì)、平均值、最大值、最小值等,不允許查詢單個(gè)記錄信息。但是,人們可以從合法的查詢中推導(dǎo)出不合法的信息,即可能存在隱蔽的信息通道,這是統(tǒng)計(jì)數(shù)據(jù)庫要研究和解決的特殊的安全性問題。
*12.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品的安全性措施。
答: 不同的DBMS產(chǎn)品以及同一產(chǎn)品的不同版本的安全措施各不相同,仁者見仁,智者見智,請(qǐng)讀者自己了解?!陡耪摗飞?.4 簡(jiǎn)單介紹了有關(guān)ORACLE數(shù)據(jù)庫的安全性措施。
數(shù)據(jù)庫完整性
一、選擇題
1.完整性檢查和控制的防范對(duì)象(),防止它們進(jìn)入數(shù)據(jù)庫。安全性控制的防范對(duì)象是(),防止他們對(duì)數(shù)據(jù)庫數(shù)據(jù)的存取。
A.不合語義的數(shù)據(jù)
B.非法用戶
C.不正確的數(shù)據(jù)
D.非法操作
2.下述哪個(gè)是SQL語言中的數(shù)據(jù)控制命令()。
A.GRANT B.COMMIT
C.UPDATE D.SELECT
3.下述SQL語言中的權(quán)限,哪一個(gè)允許用戶定義新關(guān)系時(shí),引用其他關(guān)系的主碼作為外碼()。
A.INSERT
B.DELETE
C.REFERENCES D.SELECT
參考答案:(1)A C B D(2)A(3)C
二、簡(jiǎn)答題
1.什么是數(shù)據(jù)庫的完整性?
答:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。
2.數(shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和聯(lián)系?
答:數(shù)據(jù)的完整性和安全性是兩個(gè)不同的概念,但是有一定的聯(lián)系。
前者是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出,即所謂垃圾進(jìn)垃圾出(Garbage In Garbage Out)所造成的無效操作和錯(cuò)誤結(jié)果。
后者是保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。
也就是說,安全性措施的防范對(duì)象是非法用戶和非法操作,完整性措施的防范對(duì)象是不合語義的數(shù)據(jù)。
3.什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?
答:完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該滿足的語義約束條件。
一般可以分為六類:
靜態(tài)列級(jí)約束、靜態(tài)元組約束、靜態(tài)關(guān)系約束、動(dòng)態(tài)列級(jí)約束、動(dòng)態(tài)元組約束、動(dòng)態(tài)關(guān)系約束。
靜態(tài)列級(jí)約束是對(duì)一個(gè)列的取值域的說明,包括以下幾方面:
1.對(duì)數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長度、單位、精度等
2.對(duì)數(shù)據(jù)格式的約束
3.對(duì)取值范圍或取值集合的約束。
4.對(duì)空值的約束
5.其他約束
靜態(tài)元組約束就是規(guī)定組成一個(gè)元組的各個(gè)列之間的約束關(guān)系,靜態(tài)元組約束只局限在單個(gè)元組上。
靜態(tài)關(guān)系約束是在一個(gè)關(guān)系的各個(gè)元組間或者若干關(guān)系間常常存在各種聯(lián)系或約束。常見的靜態(tài)關(guān)系約束有:
1.實(shí)體完整性約束。
2.參照完整性約束。?
3.函數(shù)依賴約束。
動(dòng)態(tài)列級(jí)約束是修改列定義或列值時(shí)應(yīng)滿足的約束條件,包括下面兩方面:
1.修改列定義時(shí)的約束
2.修改列值時(shí)的約束
動(dòng)態(tài)元組約束是指修改某個(gè)元組的值時(shí)需要參照其舊值,并且新舊值之間需要滿足某種約束條件。
動(dòng)態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原子性等約束條件。
詳細(xì)內(nèi)容可以參見《概論》10.1中的介紹。
4.DBMS的完整性控制機(jī)制應(yīng)具有哪些功能?
答:DBMS的完整性控制機(jī)制應(yīng)具有三個(gè)方面的功能:
1).定義功能,即提供定義完整性約束條件的機(jī)制。
2.檢查功能,即檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件。
3).違約反應(yīng):如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來保證數(shù)據(jù)的完整性。
5.RDBMS在實(shí)現(xiàn)參照完整性時(shí)需要考慮哪些方面?
答: RDBMS在實(shí)現(xiàn)參照完整性時(shí)需要考慮以下幾個(gè)方面:
1)外碼是否可以接受空值
2)刪除被參照關(guān)系的元組時(shí)的考慮,這時(shí)系統(tǒng)可能采取的作法有三種:
(a)級(jí)聯(lián)刪除(CASCADES);
(b)受限刪除(RESTRICTED);
(c)置空值刪除(NULLIFIES)
3)在參照關(guān)系中插入元組時(shí)的問題,這時(shí)系統(tǒng)可能采取的作法有:
(a)受限插入
(b)遞歸插入
4)修改關(guān)系中主碼的問題
一般是不能用UPDATE語句修改關(guān)系主碼的。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中。
如果允許修改主碼,首先要保證主碼的唯一性和非空,否則拒絕修改。然后要區(qū)分是參照關(guān)系還是被參照關(guān)系。
詳細(xì)討論可以參見《概論》10.2。
6.假設(shè)有下面兩個(gè)關(guān)系模式:
職工(職工號(hào),姓名,年齡,職務(wù),工資,部門號(hào)),其中職工號(hào)為主碼;
部門(部門號(hào),名稱,經(jīng)理名,電話),其中部門號(hào)為主碼;
用SQL語言定義這兩個(gè)關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:
定義每個(gè)模式的主碼;定義參照完整性;定義職工年齡不得超過60歲。
答:CREATE TABLE DEPT
(Deptno NUMBER(2),Deptname VARCHAR(10),Manager VARCHAR(10),PhoneNumber Char(12)
CONSTRAINT PK_SC PRIMARY KEY(Deptno));
CREATE TABLE EMP
(Empno NUMBER(4),Ename VARCHAR(10),Age NUMBER(2),CONSTRAINT C1 CHECK(Age《=60),Job VARCHAR(9),Sal NUMBER(7,2),Deptno NUMBER(2),CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFERENCES DEPT(Deptno));
7.關(guān)系系統(tǒng)中,當(dāng)操作違反實(shí)體完整性、參照完整性和用戶定義的完整性約束條件時(shí),一般是如何分別進(jìn)行處理的?
答: 對(duì)于違反實(shí)體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進(jìn)行處理。而對(duì)于違反參照完整性的操作,并不都是簡(jiǎn)單地拒絕執(zhí)行,有時(shí)要根據(jù)應(yīng)用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的正確性。具體的處理可以參見上面第5題或《概論》10.2中相應(yīng)部分。
*8.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品的完整性控制策略。
答:不同的DBMS產(chǎn)品以及同一產(chǎn)品的不同版本的完整性控制策略各不相同,讀者要去了解某一個(gè)DBMS產(chǎn)品的完整性控制策略。
數(shù)據(jù)庫系統(tǒng)概論習(xí)題集
第一章 緒論
一、選擇題
1.DBS是采用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng),它是一個(gè)集合體,包含數(shù)據(jù)庫、計(jì)算機(jī)硬件、軟件和()。
A.系統(tǒng)分析員
B.程序員 C.數(shù)據(jù)庫管理員
D.操作員
2.數(shù)據(jù)庫(DB),數(shù)據(jù)庫系統(tǒng)(DBS)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間的關(guān)系是()。
A.DBS包括DB和DBMS
B.DBMS包括DB和DBS
C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS
3.下面列出的數(shù)據(jù)庫管理技術(shù)發(fā)展的三個(gè)階段中,沒有專門的軟件對(duì)數(shù)據(jù)進(jìn)行管理的是()。
I.人工管理階段
II.文件系統(tǒng)階段
III.?dāng)?shù)據(jù)庫階段
A.I 和 II
B.只有 II C.II 和 III
D.只有 I
4.下列四項(xiàng)中,不屬于數(shù)據(jù)庫系統(tǒng)特點(diǎn)的是()。
A.數(shù)據(jù)共享
B.數(shù)據(jù)完整性
C.數(shù)據(jù)冗余度高
D.數(shù)據(jù)獨(dú)立性高
5.數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨(dú)立性體現(xiàn)在()。
A.不會(huì)因?yàn)閿?shù)據(jù)的變化而影響到應(yīng)用程序
B.不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序
C.不會(huì)因?yàn)榇鎯?chǔ)策略的變化而影響存儲(chǔ)結(jié)構(gòu)
D.不會(huì)因?yàn)槟承┐鎯?chǔ)結(jié)構(gòu)的變化而影響其他的存儲(chǔ)結(jié)構(gòu)
6.描述數(shù)據(jù)庫全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。
A.模式
B.內(nèi)模式 C.外模式 D.用戶模式
7.要保證數(shù)據(jù)庫的數(shù)據(jù)獨(dú)立性,需要修改的是()。
A.模式與外模式
B.模式與內(nèi)模式
C.三層之間的兩種映射 D.三層模式
8.要保證數(shù)據(jù)庫的邏輯數(shù)據(jù)獨(dú)立性,需要修改的是()。
A.模式與外模式的映射
B.模式與內(nèi)模式之間的映射
C.模式
D.三層模式
9.用戶或應(yīng)用程序看到的那部分局部邏輯結(jié)構(gòu)和特征的描述是(),它是模式的邏輯子集。
A.模式
B.物理模式
C.子模式 D.內(nèi)模式
10.下述()不是DBA數(shù)據(jù)庫管理員的職責(zé)。
A.完整性約束說明 B.定義數(shù)據(jù)庫模式
C.數(shù)據(jù)庫安全 D.數(shù)據(jù)庫管理系統(tǒng)設(shè)計(jì)
選擇題參考答案:(1)C(2)A(3)D(4)C(5)B(6)A(7)C(8)A(9)C(10)D
二、簡(jiǎn)答題
1.試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。
數(shù)據(jù):描述事物的符號(hào)記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有文字、圖形、圖象、聲音、正文等等。數(shù)據(jù)與其語義是不可分的。
*解析:在現(xiàn)代計(jì)算機(jī)系統(tǒng)中數(shù)據(jù)的概念是廣義的。早期的計(jì)算機(jī)系統(tǒng)主要用于科學(xué)計(jì)算,處理的數(shù)據(jù)是整數(shù)、實(shí)數(shù)、浮點(diǎn)數(shù)等傳統(tǒng)數(shù)學(xué)中的數(shù)據(jù)等?,F(xiàn)在計(jì)算機(jī)能存儲(chǔ)和處理的對(duì)象十分廣泛,表示這些對(duì)象的 數(shù)據(jù)也越來越復(fù)雜。
數(shù)據(jù)與其語義是不可分的。500這個(gè)數(shù)字可以表示一件物品的價(jià)格是500元,也可以表示一個(gè)學(xué)術(shù)會(huì)議參加的人數(shù)有500人。還可以表示一袋奶粉重500克。
數(shù)據(jù)庫:數(shù)據(jù)庫是長期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。
*解析:簡(jiǎn)單地講,數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)具有永久儲(chǔ)存、有組織和可共享三個(gè)特點(diǎn)。
數(shù)據(jù)模型是數(shù)據(jù)庫的核心概念。每個(gè)數(shù)據(jù)庫中數(shù)據(jù)的都是按照某一種數(shù)據(jù)模型來組織的。
數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫系統(tǒng)(DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員構(gòu)成。
*解析:數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫是兩個(gè)概念。數(shù)據(jù)庫系統(tǒng)是一個(gè)人-機(jī)系統(tǒng),數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的一個(gè)組成部分。但是在日常工作中人們常常把把數(shù)據(jù)庫系統(tǒng)簡(jiǎn)稱為數(shù)據(jù)庫。希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據(jù)庫系統(tǒng)”和“數(shù)據(jù)庫”。不要引起混淆。
數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。用于科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。DBMS主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運(yùn)行管理功能、數(shù)據(jù)庫的建立和維護(hù)功能。
*解析:DBMS是一個(gè)大型復(fù)雜的軟件系統(tǒng)。是計(jì)算機(jī)中的基礎(chǔ)軟件。目前,專門研制DBMS的廠商及其研制的DBMS產(chǎn)品很多。著名的有美國IBM公司的DB2關(guān)系數(shù)據(jù)庫管理系統(tǒng)、IMS層次數(shù)據(jù)庫管理系統(tǒng);美國ORACLE公司的ORACLE關(guān)系數(shù)據(jù)庫管理系統(tǒng);SYBASE公司的SYBASE關(guān)系數(shù)據(jù)庫管理系統(tǒng);美國微軟公司的SQL SERVER關(guān)系數(shù)據(jù)庫管理系統(tǒng)等等。
2.使用數(shù)據(jù)庫系統(tǒng)有什么好處?
使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)或優(yōu)點(diǎn)決定的。
使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)的負(fù)擔(dān)等。
使用數(shù)據(jù)庫系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率。因?yàn)樵跀?shù)據(jù)庫系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲(chǔ)和數(shù)據(jù)存取的具體路徑,這些工作都由DBMS來完成。用一個(gè)通俗的比喻,使用了DBMS就如有了一個(gè)好參謀好助手,許多具體的技術(shù)工作都由這個(gè)助手來完成。開發(fā)人員就可以專注于應(yīng)用邏輯的設(shè)計(jì)而不必為管理數(shù)據(jù)的許許多多復(fù)雜的細(xì)節(jié)操心。
還有,當(dāng)應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)需要改變時(shí),由于數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)與程序之間的獨(dú)立性。數(shù)據(jù)邏輯結(jié)構(gòu)的改變是DBA的責(zé)任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序。從而既簡(jiǎn)化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護(hù)和修改。
使用數(shù)據(jù)庫系統(tǒng)可以減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)系統(tǒng)的負(fù)擔(dān)。因?yàn)镈BMS在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性,多用戶并發(fā)控制,故障恢復(fù)等等都由DBMS執(zhí)行。
總之,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護(hù)。讀者可以在自己今后的工作中結(jié)合具體應(yīng)用,認(rèn)真加以體會(huì)和總結(jié)。
3.試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和聯(lián)系。
文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別:文件系統(tǒng)面向某一應(yīng)用程序,共享性差、冗余度大,獨(dú)立性差,紀(jì)錄內(nèi)有結(jié)構(gòu)、整體無結(jié)構(gòu),應(yīng)用程序自己控制。
數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實(shí)世界,共享性高、冗余度小,具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力。
讀者可以參考《概論》書中表1.1 中的有關(guān)內(nèi)容。
文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的聯(lián)系是:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)都是計(jì)算機(jī)系統(tǒng)中管理數(shù)據(jù)的軟件。
*解析:
文件系統(tǒng)是操作系統(tǒng)的重要組成部分,而DBMS是獨(dú)立于操作系統(tǒng)的軟件。但是DBMS是在操作系統(tǒng)的基礎(chǔ)上實(shí)現(xiàn)的。數(shù)據(jù)庫中數(shù)據(jù)的組織和存儲(chǔ)是通過操作系統(tǒng)中文件系統(tǒng)來實(shí)現(xiàn)的。
讀者進(jìn)一步學(xué)習(xí)數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)的有關(guān)課程后可以對(duì)本題有深入的理解和全面的解答。因?yàn)镈BMS的實(shí)現(xiàn)與操作系統(tǒng)中的文件系統(tǒng)是緊密相關(guān)的。例如,數(shù)據(jù)庫實(shí)現(xiàn)的基礎(chǔ)是文件,對(duì)數(shù)據(jù)庫的任何操作最終要轉(zhuǎn)化為對(duì)文件的操作。所以在DBMS實(shí)現(xiàn)中數(shù)據(jù)庫物理組織的基本問題是如何利用或如何選擇操作系統(tǒng)提供的基本的文件組織方法。這里我們就不具體展開了。
4.舉出適合用文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子。
·適用于文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子
數(shù)據(jù)的備份,軟件或應(yīng)用程序使用過程中的臨時(shí)數(shù)據(jù)存儲(chǔ)一般使用文件比較合適。早期功能比較簡(jiǎn)單、比較固定的應(yīng)用系統(tǒng)也適合用文件系統(tǒng)。
·適用于數(shù)據(jù)庫系統(tǒng)而非文件系統(tǒng)的應(yīng)用例子
目前,幾乎所有企業(yè)或部門的信息系統(tǒng)都以數(shù)據(jù)庫系統(tǒng)為基礎(chǔ),都使用數(shù)據(jù)庫。如一個(gè)工廠的管理信息系統(tǒng)(其中會(huì)包括許多子系統(tǒng),如庫存管理系統(tǒng)、物資采購系統(tǒng)、作業(yè)調(diào)度系統(tǒng)、設(shè)備管理系統(tǒng)、人事管理系統(tǒng)等等),還比如學(xué)校的學(xué)生管理系統(tǒng),人事管理系統(tǒng),圖書館的圖書管理系統(tǒng)等等都適合用數(shù)據(jù)庫系統(tǒng)。希望同學(xué)們能舉出自己了解的應(yīng)用例子。
5.試述數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。
數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)有:
一、數(shù)據(jù)結(jié)構(gòu)化:數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。
*解析:注意這里“整體”兩個(gè)字。在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)不再針對(duì)某一個(gè)應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且數(shù)據(jù)的存取單位即一次可以存取數(shù)據(jù)的大小也很靈活。可以小到某一個(gè)數(shù)據(jù)項(xiàng)(如一個(gè)學(xué)生的姓名),大到一組記錄(成千上萬個(gè)學(xué)生記錄)。而在文件系統(tǒng)中,數(shù)據(jù)的存取單位只有一個(gè):記錄。如一個(gè)學(xué)生的完整記錄。
二、數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充 :數(shù)據(jù)庫的數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),因此可以被多個(gè)用戶、多個(gè)應(yīng)用、用多種不同的語言共享使用。由于數(shù)據(jù)面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴(kuò)充。
*解析:
數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間,同時(shí)還能夠避免數(shù)據(jù)之間的不相容性與不一致性。
所謂“數(shù)據(jù)面向某個(gè)應(yīng)用”是指數(shù)據(jù)結(jié)構(gòu)是針對(duì)某個(gè)應(yīng)用設(shè)計(jì)的,只被這個(gè)應(yīng)用程序或應(yīng)用系統(tǒng)使用??梢哉f數(shù)據(jù)是某個(gè)應(yīng)用的“私有資源”。
所謂“彈性大”是指系統(tǒng)容易擴(kuò)充也容易收縮,即應(yīng)用增加或減少時(shí)不必修改整個(gè)數(shù)據(jù)庫的結(jié)構(gòu),或者只要做很少的修改。
我們可以取整體數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒng),當(dāng)應(yīng)用需求改變或增加時(shí),只要重新選取不同的子集或加上一部分?jǐn)?shù)據(jù)便可以滿足新的需求。
三、數(shù)據(jù)獨(dú)立性高:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)的模式結(jié)構(gòu)和二級(jí)映象功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨(dú)立性和邏輯獨(dú)立性。
*解析:
所謂“獨(dú)立性”即相互不依賴。數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)和程序相互不依賴。即數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)改變了,程序不會(huì)跟著改變。數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由DBMS負(fù)責(zé),簡(jiǎn)化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。
四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制:數(shù)據(jù)庫的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時(shí)存取數(shù)據(jù)庫中同一個(gè)數(shù)據(jù)。為此,DBMS必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護(hù),數(shù)據(jù)的完整性檢查,并發(fā)控制和數(shù)據(jù)庫恢復(fù)。
*解析:
DBMS數(shù)據(jù)控制功能包括四個(gè)方面:
數(shù)據(jù)的安全性保護(hù):保護(hù)數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞;
數(shù)據(jù)的完整性檢查:將數(shù)據(jù)控制在有效的范圍內(nèi)或保證數(shù)據(jù)之間滿足一定的關(guān)系;
并發(fā)控制:對(duì)多用戶的并發(fā)操作加以控制和協(xié)調(diào),保證并發(fā)操作的正確性;
數(shù)據(jù)庫恢復(fù):當(dāng)計(jì)算機(jī)系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫部分或全部數(shù)據(jù)的丟失時(shí),能將數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))。
下面我們可以得到“什么是數(shù)據(jù)庫”的一個(gè)定義:
數(shù)據(jù)庫是長期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的大量的共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性。DBMS在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時(shí)使用數(shù)據(jù)庫時(shí)進(jìn)行并發(fā)控制,在發(fā)生故障后對(duì)系統(tǒng)進(jìn)行恢復(fù)。
數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。
6.?dāng)?shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?
①數(shù)據(jù)庫定義功能;
②數(shù)據(jù)存取功能;
③數(shù)據(jù)庫運(yùn)行管理;
④數(shù)據(jù)庫的建立和維護(hù)功能。
7.試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個(gè)要素。
數(shù)據(jù)模型是數(shù)據(jù)庫中用來對(duì)現(xiàn)實(shí)世界進(jìn)行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式構(gòu)架。
一般地講,數(shù)據(jù)模型是嚴(yán)格定義的概念的集合。這些概念精確地描述系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。
①數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合,是對(duì)系統(tǒng)的靜態(tài)特性的描述。
②數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫中各種對(duì)象(型)的實(shí)例(值)允許進(jìn)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。
③數(shù)據(jù)的約束條件:是完整性規(guī)則的集合,完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。
*解析:
數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中最重要的概念之一。同學(xué)們必須通過《概論》的學(xué)習(xí)真正掌握
數(shù)據(jù)模型的概念和作用。
數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。任何一個(gè)DBMS都以某一個(gè)數(shù)據(jù)模型為基礎(chǔ),或者說支持某一個(gè)數(shù)據(jù)模型。
數(shù)據(jù)庫系統(tǒng)中模型有不同的層次。根據(jù)模型應(yīng)用的不同目的,可以將模型分成兩類或說兩個(gè)層次:一是概念模型,是按用戶的觀點(diǎn)來對(duì)數(shù)據(jù)和信息建模,用于信息世界的建模,強(qiáng)調(diào)語義表達(dá)能力,概念簡(jiǎn)單清晰;另一是數(shù)據(jù)模型,是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,用于機(jī)器世界,人們可以用它定義、操縱數(shù)據(jù)庫中的數(shù)據(jù)。一般需要有嚴(yán)格的形式化定義和一組嚴(yán)格定義了語法和語義的語言,并有一些規(guī)定和限制,便于在機(jī)器上實(shí)現(xiàn)。
8.試述概念模型的作用。
概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言。
9.定義并解釋概念模型中以下術(shù)語:
實(shí)體,實(shí)體型,實(shí)體集,屬性,碼,實(shí)體聯(lián)系圖(E-R圖)
實(shí)體:客觀存在并可以相互區(qū)分的事物叫實(shí)體。
實(shí)體型:具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體稱為實(shí)體型。
實(shí)體集:同型實(shí)體的集合稱為實(shí)體集。
屬性:實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來刻畫。
碼:唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。
實(shí)體聯(lián)系圖:E-R圖提供了表示實(shí)體型、屬性和聯(lián)系的方法:
· 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。
· 屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。
·聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。
10.試給出三個(gè)實(shí)際部門的E-R圖,要求實(shí)體型之間具有一對(duì)一,一對(duì)多,多對(duì)多各種不同的聯(lián)系。
關(guān)系數(shù)據(jù)庫
一、選擇題
1.下面的選項(xiàng)不是關(guān)系數(shù)據(jù)庫基本特征的是()。
A.不同的列應(yīng)有不同的數(shù)據(jù)類型
B.不同的列應(yīng)有不同的列名
C.與行的次序無關(guān)
D.與列的次序無關(guān)
2.一個(gè)關(guān)系只有一個(gè)()。
A.候選碼
B.外碼
C.超碼
D.主碼
3.關(guān)系模型中,一個(gè)碼是()。
A.可以由多個(gè)任意屬性組成 B.至多由一個(gè)屬性組成
C.可有多個(gè)或者一個(gè)其值能夠唯一表示該關(guān)系模式中任何元組的屬性組成D.以上都不是
4.現(xiàn)有如下關(guān)系:
患者(患者編號(hào),患者姓名,性別,出生日起,所在單位)
醫(yī)療(患者編號(hào),患者姓名,醫(yī)生編號(hào),醫(yī)生姓名,診斷日期,診斷結(jié)果)
其中,醫(yī)療關(guān)系中的外碼是()。
A.患者編號(hào)
B.患者姓名
C.患者編號(hào)和患者姓名
D.醫(yī)生編號(hào)和患者編號(hào)
5.現(xiàn)有一個(gè)關(guān)系:借閱(書號(hào),書名,庫存數(shù),讀者號(hào),借期,還期),假如同一本書允許一個(gè)讀者多次借閱,但不能同時(shí)對(duì)一種書借多本,則該關(guān)系模式的外碼是()。
A.書號(hào)
B.讀者號(hào)
C.書號(hào)+讀者號(hào)
D.書號(hào)+讀者號(hào)+借期
6.關(guān)系模型中實(shí)現(xiàn)實(shí)體間 N:M 聯(lián)系是通過增加一個(gè)()。
A.關(guān)系實(shí)現(xiàn)
B.屬性實(shí)現(xiàn)
C.關(guān)系或一個(gè)屬性實(shí)現(xiàn)
D.關(guān)系和一個(gè)屬性實(shí)現(xiàn)
7.關(guān)系代數(shù)運(yùn)算是以()為基礎(chǔ)的運(yùn)算。
A.關(guān)系運(yùn)算
B.謂詞演算
C.集合運(yùn)算
D.代數(shù)運(yùn)算
8.關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。
A.排序、索引、統(tǒng)計(jì)
B.選擇、投影、連接 C.關(guān)聯(lián)、更新、排序
D.顯示、打印、制表
9.五種基本關(guān)系代數(shù)運(yùn)算是()。
A.∪ - × σ π
B.∪ - σ π
C.∪ ∩ × σ π
D.∪ ∩ σ π
10.關(guān)系代數(shù)表達(dá)式的優(yōu)化策略中,首先要做的是()。
A.對(duì)文件進(jìn)行預(yù)處理
B.盡早執(zhí)行選擇運(yùn)算
C.執(zhí)行笛卡爾積運(yùn)算
D.投影運(yùn)算
11.關(guān)系數(shù)據(jù)庫中的投影操作是指從關(guān)系中()。
A.抽出特定記錄
B.抽出特定字段
C.建立相應(yīng)的影像
D.建立相應(yīng)的圖形
12.從一個(gè)數(shù)據(jù)庫文件中取出滿足某個(gè)條件的所有記錄形成一個(gè)新的數(shù)據(jù)庫文件的操作是()操作。
A.投影
B.聯(lián)接
C.選擇
D.復(fù)制
13.關(guān)系代數(shù)中的聯(lián)接操作是由()操作組合而成。
A.選擇和投影 B.選擇和笛卡爾積
C.投影、選擇、笛卡爾積
D.投影和笛卡爾積
14.自然聯(lián)接是構(gòu)成新關(guān)系的有效方法。一般情況下,當(dāng)對(duì)關(guān)系R和S是用自然聯(lián)接時(shí),要求R和S含有一個(gè)或者多個(gè)共有的()。
A.記錄
B.行
C.屬性
D.元組
15.假設(shè)有關(guān)系R和S,在下列的關(guān)系運(yùn)算中,()運(yùn)算不要求:“R和S具有相同的元數(shù),且它們的對(duì)應(yīng)屬性的數(shù)據(jù)類型也相同”。
A.R∩S
B.R∪S
C.R-S
D.R×S
16.假設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式R-(R-S)表示的是()。
A.R∩S
B.R∪S
C.R-S
D.R×S
17.下面列出的關(guān)系代數(shù)表達(dá)是中,那些式子能夠成立()。
ⅰ.σf1(σf2(E))= σf1∧f2(E)
ⅱ.E1∞E2 = E2∞E1
ⅲ.(E1∞E2)∞E3 = E1∞(E2∞E3)
ⅳ.σf1(σf2(E))=σf2(σf1(E))
A.全部
B.ⅱ和ⅲ C.沒有
D.ⅰ和ⅳ
18.下面四個(gè)關(guān)系表達(dá)式是等價(jià)的,是判別它們的執(zhí)行效率()。
E1 =πA(σ B=C ∧ D=E′(R×S))
E2 =πA(σ B=C(R× σD=E′(S))
E3 =πA(R∞B=CσD=E′(S))
E3 =πA(σD=E′(R∞B=C S))
A.E3最快
B.E2最快 C.E4最快 D.E1最快
19.有關(guān)系SC(S_ID,C_ID,AGE,SCORE),查找年齡大于22歲的學(xué)生的學(xué)號(hào)和分?jǐn)?shù),正確的關(guān)系代數(shù)表達(dá)式是()。
ⅰ.πS_ID,SCORE(σ age>22(SC))
ⅱ.σ age>22(πS_ID,SCORE(SC))
ⅲ.πS_ID,SCORE(σ age>22(πS_ID,SCORE,AGE(SC)))
A.ⅰ和 ⅱ
B.只有ⅱ正確
C.只有 ⅰ正確
D.ⅰ和ⅲ正確
選擇題參考答案:(1)A(2)D(3)C(4)A(5)D(6)A(7)C(8)B(9)A(10)B
(11)B(12)C(13)B(14)C(15)D(16)A(17)C(18)A(19)D
二、簡(jiǎn)答題
1.試述關(guān)系模型的三個(gè)組成部分。
2.試述關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類。
3.設(shè)有一個(gè)SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個(gè)關(guān)系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成;零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成;工程項(xiàng)目表J由工程項(xiàng)目代碼(JNO)、工程項(xiàng)目名(JNAME)、工程項(xiàng)目所在城市(CITY)組成;供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項(xiàng)目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商供應(yīng)某種零件給某工程項(xiàng)目的數(shù)量為QTY。
試用關(guān)系代數(shù)完成如下查詢:
(1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO;
(2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO;
(3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO;
(4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO;
(5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO。
4.定義并理解下列術(shù)語,說明它們之間的聯(lián)系與區(qū)別:
(1)域,笛卡爾積,關(guān)系,元組,屬性
(2)主碼,候選碼,外碼
(3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫
5.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外碼屬性的值有時(shí)也可以為空?什么情況下才可以為空?
6.試述等值連接與自然連接的區(qū)別和聯(lián)系。
7.關(guān)系代數(shù)的基本運(yùn)算有哪些?
8.試用關(guān)系代數(shù)的基本運(yùn)算來表示其他運(yùn)算。
SQL語言
一、選擇題
1.SQL語言是()的語言,容易學(xué)習(xí)。
A.過程化
B.非過程化
C.格式化
D.導(dǎo)航式
2.SQL語言的數(shù)據(jù)操縱語句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最頻繁的語句是()。
A.SELECT B.INSERT
C.UPDATE D.DELETE
3.在視圖上不能完成的操作是()。
A.更新視圖
B.查詢
C.在視圖上定義新的表
D.在視圖上定義新的視圖
4.SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,其中,CREATE、DROP、ALTER語句是實(shí)現(xiàn)哪種功能()。
A.數(shù)據(jù)查詢
B.數(shù)據(jù)操縱
C.數(shù)據(jù)定義 D.數(shù)據(jù)控制
5.SQL語言中,刪除一個(gè)視圖的命令是()。
A.DELETE
B.DROP
C.CLEAR
D.REMOVE
6.在SQL語言中的視圖VIEW是數(shù)據(jù)庫的()。
A.外模式
B.模式
C.內(nèi)模式
D.存儲(chǔ)模式
7.下列的SQL語句中,()不是數(shù)據(jù)定義語句。
A.CREATE TABLE B.DROP VIEW
C.CREATE VIEW D.GRANT
8.若要撤銷數(shù)據(jù)庫中已經(jīng)存在的表S,可用()。
A.DELETE TABLE S B.DELETE S
C.DROP TABLE S D.DROP S
9.若要在基本表S中增加一列CN(課程名),可用()。
A.ADD TABLE S(CN CHAR(8))
B.ADD TABLE S ALTER(CN CHAR(8))
C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S(ADD CN CHAR(8))
10.學(xué)生關(guān)系模式 S(S#,Sname,Sex,Age),S的屬性分別表示學(xué)生的學(xué)號(hào)、姓名、性別、年齡。要在表S中刪除一個(gè)屬性“年齡”,可選用的SQL語句是()。
第四篇:電商期末考試題及答案
一填空題
1.電子商務(wù)的基本功能為__內(nèi)容管理、協(xié)議管理、網(wǎng)上交易 2.網(wǎng)絡(luò)上用人性化的名字表示主機(jī)地址稱為__域名__。
3.FTP中將網(wǎng)頁文件從客戶機(jī)發(fā)送到服務(wù)器的過程稱為____上載____。4.網(wǎng)上市場(chǎng)調(diào)查的方法有網(wǎng)上__直接__市場(chǎng)調(diào)查和網(wǎng)上___間接___市場(chǎng)調(diào)查。5.由供方與需方以外的物流企業(yè)提供物流服務(wù)的業(yè)務(wù)模式稱為__第三方物流__。6.當(dāng)前國際上,電子商務(wù)按照英文縮寫分為_ EC狹義__和_EB廣義___。7.網(wǎng)上商店銷售的商品按商品的性質(zhì)分為_實(shí)體_商品和__虛擬_商品。8.FTP中將網(wǎng)頁文件從客戶機(jī)發(fā)送到服務(wù)器的過程稱為__上載_。9.TCP/IP協(xié)議稱為_傳輸控制___協(xié)議和__/互聯(lián)網(wǎng)絡(luò)_協(xié)議。
10.承擔(dān)網(wǎng)上安全電子交易認(rèn)證服務(wù),能簽發(fā)數(shù)字證書并能確認(rèn)用戶身份的服務(wù)機(jī)構(gòu)為——CA認(rèn)證中心__。
11.電子商務(wù)發(fā)展可以分為兩個(gè)主要階段,即開始于20世紀(jì)80年代中期的___基于EDI電子商務(wù)和開始于20世紀(jì)90年初期___基于Internet電子商務(wù)
12.CA認(rèn)證中心的主要職能是__證書的頒發(fā)__、__證書的更新__、_ 證書的查詢__、____ 證書的作廢__、__證書的歸檔___。13.目前Internet使用的基本協(xié)議是_ TCP/IP _。
二、單選題(共20分)
1.以下電子商務(wù)模式中屬于企業(yè)與企業(yè)間電子交易的是(A)。A、B TO B B、B TO C C、C TO C D、B TO G 2.以下域名路徑輸入正確的是(c)。A html://004km.cn的,必須在CNNIC登記備案 20.網(wǎng)絡(luò)營銷作為一種營銷未來方式,下列說法正確的是(BD)。A.網(wǎng)絡(luò)營銷只是局限于一種營銷手段和媒體的改變 B.將影響到營銷所涉及到的各個(gè)方面 C.已經(jīng)與傳統(tǒng)營銷方式完全整合
D.網(wǎng)絡(luò)營銷與傳統(tǒng)營銷最終將形成相互影響和相互促進(jìn)的局面最后實(shí)現(xiàn)融洽的內(nèi)在統(tǒng)一 21.關(guān)于數(shù)字證書的原理說法錯(cuò)誤的是(BC)。A.采用公鑰體制
B.每個(gè)用戶自己設(shè)定一把公有密鑰,用它進(jìn)行解密和簽名
C.當(dāng)發(fā)送一份保密文件時(shí),發(fā)送方使用接收方的私鑰對(duì)數(shù)據(jù)加密,而接收方則使用自己的私鑰解密 D.設(shè)定一把公共密鑰為一組用戶所共享,用戶加密和驗(yàn)證簽名
22.以下哪些屬于網(wǎng)上購物的購物車應(yīng)該具備的功能(ACD)。A.自動(dòng)跟蹤并記錄消費(fèi)者在網(wǎng)上購物過程中所選擇的商品 B.不允許購物者更新購物車中的商品 C.自動(dòng)計(jì)算用戶所購買商品的總價(jià) D.允許用戶隨時(shí)查詢購物車中有關(guān)信息
23.如何提高在線調(diào)查結(jié)果的質(zhì)量,是開展網(wǎng)上市場(chǎng)調(diào)查過程的關(guān)鍵。因此我們應(yīng)遵循以下原則:(ABCDA.吸引盡可能多的人參與調(diào)查 B.公布保護(hù)個(gè)人信息聲明 C.避免濫用市場(chǎng)調(diào)查功能
D.設(shè)計(jì)大獎(jiǎng)作為補(bǔ)償或刺激參與者的積極性
24.以下對(duì)網(wǎng)絡(luò)營銷和傳統(tǒng)營銷未來發(fā)展的認(rèn)識(shí)正確的是(BCD)。A.互聯(lián)網(wǎng)作為新的媒體,它將覆蓋所有的群體 B.互聯(lián)網(wǎng)作為一種有效的渠道有著自己的特點(diǎn)和優(yōu)勢(shì))。
C.傳統(tǒng)一些以人為主的營銷策略所具有獨(dú)特的親和力是網(wǎng)絡(luò)營銷所不具備的 D.網(wǎng)絡(luò)營銷不會(huì)完全替代傳統(tǒng)營銷
25.以下(ACDE)是政府上網(wǎng)的主要目的。A.節(jié)省辦公費(fèi)用,提高工作效率 B.政務(wù)公開
C.節(jié)省政府招標(biāo)時(shí)間和費(fèi)用 D.便于政府與公眾加強(qiáng)溝通,利于政府樹立良好形象 26.以下關(guān)于數(shù)字簽名說法不正確的是(AC)。A.保證信息是由對(duì)方簽名發(fā)送的,簽名者不能否認(rèn)或難以否認(rèn) B.保證信息是由簽名者自己簽名發(fā)送的,簽名者不能否認(rèn)或難以否認(rèn) C.保證信息簽發(fā)后未曾做過任何修改,簽發(fā)的文件是真實(shí)文件
D.保證信息自簽發(fā)后到收到為止沒有做任何修改,簽發(fā)的文件是真實(shí)文件 27.以下關(guān)于數(shù)字時(shí)間戳說法正確的是(ACD)。A.用來證明消息的收發(fā)時(shí)間的 B.數(shù)字時(shí)間戳是由簽署人自己寫上的 C.該服務(wù)有效地為文件發(fā)表時(shí)間提供了佐證 D.它是由認(rèn)證單位DTS添加的 E.是以發(fā)送方發(fā)送文件的時(shí)間為依據(jù)
28.?dāng)?shù)字證書的作用是(ABCD)。A.信息的保密性 B.交易者身份的確定性 C.交易不可否認(rèn)性 D.交易不可修改性
29.以下關(guān)于第三方物流企業(yè)與客戶之間的關(guān)系說法正確的是(BCD)。A.第三方物流企業(yè)與客戶是競(jìng)爭(zhēng)關(guān)系 B.第三方物流企業(yè)是客戶的戰(zhàn)略同盟者
C.第三方物流企業(yè)是客戶的戰(zhàn)略投資人,也是風(fēng)險(xiǎn)承擔(dān)者 D.利益一體化是第三方物流企業(yè)的利潤基礎(chǔ)
30.因特網(wǎng)的發(fā)展對(duì)企業(yè)及其經(jīng)營的影響表現(xiàn)在(ACD)。A.網(wǎng)絡(luò)技術(shù)使得大眾市場(chǎng)終結(jié),最終可達(dá)到針對(duì)每一個(gè)用戶的需求進(jìn)行生產(chǎn) B.互聯(lián)網(wǎng)使得大企業(yè)的規(guī)模優(yōu)勢(shì)更加明顯 C.企業(yè)的組織層次越來越少 D.企業(yè)競(jìng)爭(zhēng)將以客戶為焦點(diǎn)
31.網(wǎng)上單證的設(shè)計(jì)面對(duì)網(wǎng)絡(luò)消費(fèi)者,所以必須做到(ABD)。
A、格式簡(jiǎn)潔 B、界面風(fēng)格友好 C、詳盡的說明 D、功能完整 E、色彩艷麗
32.網(wǎng)絡(luò)商務(wù)信息相對(duì)于傳統(tǒng)商務(wù)信息,具有以下顯著的特點(diǎn)(ACE)。A、實(shí)效性強(qiáng) B、傳遞速度慢 C、準(zhǔn)確性高 D、更新不及時(shí) E、便于存儲(chǔ)
33.TCP/IP協(xié)議規(guī)定,每個(gè)IP地址由(AD)組成。A、網(wǎng)絡(luò)地址 B、端口地址 C、協(xié)議地址 D、主機(jī)地址 E、機(jī)器地址
34.網(wǎng)絡(luò)市場(chǎng)調(diào)查的特點(diǎn)是(ABCDE)。
D 及時(shí)調(diào)整性 B、組織簡(jiǎn)單,費(fèi)用低廉 C、高效性 D、無時(shí)空限制 E、客觀性
35.旗幟廣告媒體選擇需要考慮的有(ABDE)。B 廣告費(fèi)用 B、廣告的收益 C、廣告的位置 D、廣告的效率 E、媒體的形象是否與你廣告推廣形象吻合
36.物流系統(tǒng)的功能要素一般包括運(yùn)輸、儲(chǔ)存保管、(ABCDE)。B 包裝 B、搬運(yùn)裝卸 C、流通加工 D、配送 E、物流信息處理
37.CA認(rèn)證中心的職能為(ABDE)。
A、證書更新 B、證書發(fā)放 C、證書打印 D、證書撤消 E、證書驗(yàn)證
38.按密鑰和相關(guān)加密程序類型可把加密分為三類(BDE)。A、數(shù)字簽名 B、散列編碼 C、數(shù)字時(shí)間戳 D、對(duì)稱加密 E、非對(duì)稱加密 39.SET協(xié)議(安全電子交易)所涉及的對(duì)象有(ABCDE)。A、消費(fèi)者 B、在線商店 C、收單銀行 D、認(rèn)證中心 E、電子貨幣發(fā)行機(jī)構(gòu) 40.電子現(xiàn)金必須滿足如下一些要求(ACDE)。A、獨(dú)立性 B、可掛失 C、不可復(fù)用 D、匿名性 E、可分性
41.當(dāng)前,在國內(nèi)網(wǎng)上購物可以選擇下列哪些付款方式(ABCDE)。B 郵局匯款 B、銀行電匯 C、貨到付款 D、在線支付 E、招行&<47;一網(wǎng)通&<48;42.目前SET協(xié)議定義有三種方式(ADE)。
A、E_mail B、傳真方式 C、電話方式 D、Web E、離線方式
43.防火墻具有的基本功能包括(ABCDE)。
C 過濾進(jìn)出網(wǎng)絡(luò)的數(shù)據(jù)包 B、管理進(jìn)出網(wǎng)絡(luò)的訪問行為 D 封堵某些禁止的訪問行為 D、記錄通過防火墻的信息內(nèi)容和活動(dòng) E、對(duì)網(wǎng)絡(luò)攻擊進(jìn)行檢測(cè)和告警
44.按照物流在社會(huì)再生產(chǎn)過程中不同階段的活動(dòng)范圍和業(yè)務(wù)性質(zhì),一般可將物流系統(tǒng)分為(ABCDE)。A、供應(yīng)物流 B、生產(chǎn)物流 C、銷售物流 D、回收物流 E、廢棄物流 45.?dāng)?shù)字證書一般有三種類型,分別是(CDE)。A、銀行數(shù)字證書 B、信用數(shù)字證書 C、個(gè)人數(shù)字證書 D、企業(yè)(服務(wù)器)數(shù)字證書 E、軟件(開發(fā)者)數(shù)字證書
四.簡(jiǎn)答
1.相對(duì)于傳統(tǒng)的商務(wù)信息網(wǎng)絡(luò)商務(wù)信息的分為哪些不同的等級(jí)? 第一級(jí)是免費(fèi)商務(wù)信息。這些信息主要是社會(huì)公益性的信息。第二級(jí)是收取較低費(fèi)用的信息。這些信息是屬于一般性的普通類信息。
第三級(jí)是收取標(biāo)準(zhǔn)信息費(fèi)的信息。是屬于知識(shí)、經(jīng)濟(jì)類的信息,收費(fèi)采用成本加利潤的資費(fèi)標(biāo)準(zhǔn)。
第四級(jí)是優(yōu)質(zhì)優(yōu)價(jià)的信息。這類信息是有極高使用價(jià)值的專用信息,如重要的市場(chǎng)走向分析、網(wǎng)絡(luò)暢銷商品的情況調(diào)查、新產(chǎn)品新技術(shù)信息、專利技術(shù)以及其它獨(dú)特的專門性的信息等.2.在網(wǎng)上銀行電子支付中,SSL協(xié)議與SET協(xié)議的區(qū)別是什么?
SSL與SET的區(qū)別:SSL協(xié)議能確保兩個(gè)應(yīng)用程序之間通訊內(nèi)容的保密性和數(shù)據(jù)的完整性。SSL協(xié)議層包括兩個(gè)協(xié)議子層:SSL記錄協(xié)議與SSL握手協(xié)議。
SET涵蓋了信用卡在電子商務(wù)交易中的交易規(guī)定、信息保密、資料完整即數(shù)字認(rèn)證、數(shù)字簽名等,這一標(biāo)準(zhǔn)被公認(rèn)為全球國際網(wǎng)絡(luò)的標(biāo)準(zhǔn),其交易形態(tài)將成為未來&<47;電子商務(wù)&<48;的典范。SSL協(xié)議屬于網(wǎng)絡(luò)對(duì)話層標(biāo)準(zhǔn)協(xié)議,SET協(xié)議是對(duì)話層之上的應(yīng)用層的標(biāo)準(zhǔn)協(xié)議。
3.網(wǎng)上商店銷售的商品分為實(shí)體性商品和虛擬商品,它們具有什么不同點(diǎn)?
實(shí)體性商品:是指具有物理形態(tài)的物質(zhì)形態(tài)產(chǎn)品,是人可以通過視覺和觸覺所能感覺到的。如:圖書、家電、日用品等等。虛擬商品:一般是無形的,即使表現(xiàn)出一定的形態(tài)也是通過其載體體現(xiàn)出來的。如:網(wǎng)絡(luò)軟件、MP3音樂、商務(wù)信息等等。4.為什么說現(xiàn)代物流是實(shí)施電子商務(wù)的關(guān)鍵?
物流現(xiàn)代化中最重要的部分是物流信息化,物流的信息化是電子商務(wù)物流的基本要求,是企業(yè)信息化的重要組成部分,表現(xiàn)為:物流信息的商品化,物流信息收集的數(shù)據(jù)化和代碼化,物流信息處理的電子化和計(jì)算機(jī)化,物流信息傳遞的標(biāo)準(zhǔn)化和實(shí)時(shí)化,物流存儲(chǔ)的數(shù)字化;物流信息化能更好地協(xié)調(diào)生產(chǎn)和銷售、運(yùn)輸、存儲(chǔ)等環(huán)節(jié)的聯(lián)系,對(duì)優(yōu)化供貨程序、縮短物流時(shí)間及降低庫存具有重要意義,所以說物流現(xiàn)代化是電子商務(wù)的基礎(chǔ)。
5.在保證電子商務(wù)交易安全中經(jīng)常用到數(shù)字簽名,什么是數(shù)字簽名及其實(shí)現(xiàn)原理?
數(shù)字簽名(digital signature):是將摘要用發(fā)送者的私鑰加密,與原文一起傳送給接收者。接收者只有用發(fā)送者的公鑰才能解密被加密的摘要,在電子商務(wù)安全保密系統(tǒng)中,數(shù)字簽名技術(shù)有著特別重要的地位,在電子商務(wù)安全服務(wù)中的源鑒別、完整性服務(wù)、不可否認(rèn)服務(wù)中都要用到數(shù)字簽名技術(shù)。1.為什么說網(wǎng)絡(luò)營銷與傳統(tǒng)營銷將最終實(shí)現(xiàn)整合?
網(wǎng)絡(luò)營銷作為新的營銷理念和策略,憑借互聯(lián)網(wǎng)特性對(duì)傳統(tǒng)經(jīng)營方式產(chǎn)生了巨大的沖擊,但這并不等于說網(wǎng)絡(luò)營銷將完全取代傳統(tǒng)營銷,網(wǎng)絡(luò)營銷與傳統(tǒng)營銷是一個(gè)整合的過程。這是因?yàn)椋菏紫?,互?lián)網(wǎng)作為新興的虛擬市場(chǎng),它覆蓋的群體只是整個(gè)市場(chǎng)中某一部分群體,許多的群體由于各種原因還不能或者不愿意使用互聯(lián)網(wǎng),如老人和落后國家地區(qū),因此傳統(tǒng)的營銷策略和手段則可以覆蓋這部分群體。其次,互聯(lián)網(wǎng)作為一種有效的渠道有著自己的特點(diǎn)和優(yōu)勢(shì),但對(duì)于許多消費(fèi)者來說,由于個(gè)人生活方式不愿意接收或者使用新的溝通方式和營銷渠道,如許多消費(fèi)者不愿意在網(wǎng)上購物,而習(xí)慣在商場(chǎng)上一邊購物一邊休閑。第三,互聯(lián)網(wǎng)作為一種有效溝通方式,可以方便企業(yè)與用戶之間直接雙向溝通,但消費(fèi)者有著自己個(gè)人偏好和習(xí)慣,愿意選擇傳統(tǒng)方式進(jìn)行溝通,如報(bào)紙有網(wǎng)上電子版本后,并沒有沖擊原來的紙張印刷出版業(yè)務(wù),相反起到相互促進(jìn)的作用。最后,互聯(lián)網(wǎng)只是一種工具,營銷面對(duì)的靈性的人,因此傳統(tǒng)一些以人為主的營銷策略所具有獨(dú)特的親和力是網(wǎng)絡(luò)營銷沒有辦法替代的。隨著技術(shù)的發(fā)展,互聯(lián)網(wǎng)將逐步克服上述不足,在很長一段時(shí)間內(nèi)網(wǎng)絡(luò)營銷與傳統(tǒng)營銷是相互影響和相互促進(jìn)的局面,最后實(shí)現(xiàn)融洽的內(nèi)在統(tǒng)一,在將來沒有必要再談?wù)摼W(wǎng)絡(luò)營銷了,因?yàn)闋I銷的基礎(chǔ)之一就是網(wǎng)絡(luò)。2.實(shí)施電子商務(wù)安全的基本要素有哪些,并分別加以闡述? 1)信息的保密性:是指信息在傳輸或存儲(chǔ)過程中不被他人竊??;
2)信息的完整性:由于數(shù)據(jù)輸入時(shí)的意外差錯(cuò)或欺詐行為,可能導(dǎo)致貿(mào)易各方信息的差異;
3)信息的有效性:電子商務(wù)以電子形式取代了紙張,如何保證這種電子形式貿(mào)易信息的有效性是開展電子商務(wù)的前提。4)信息的不可抵賴性:要求在交易信息的傳輸過程中為參與交易的個(gè)人、企業(yè)或國家提供可靠的標(biāo)識(shí),使原發(fā)方在發(fā)送數(shù)據(jù)后不能抵賴;接收方在接收數(shù)據(jù)后也不能抵賴。
5)交易身份的真實(shí)性:交易者身份的真實(shí)性是指交易雙方確實(shí)是存在的,不是假冒的。
6)系統(tǒng)的可靠性:電子商務(wù)系統(tǒng)是計(jì)算機(jī)系統(tǒng),其可靠性是指防止由于計(jì)算機(jī)失效、程序錯(cuò)誤、傳輸錯(cuò)誤、硬件故障、系統(tǒng)軟件錯(cuò)誤、計(jì)算機(jī)病毒和自然災(zāi)害等所產(chǎn)生的潛在威脅,并加以控制和預(yù)防,確保系統(tǒng)安全可靠。1.請(qǐng)敘述建立電子商務(wù)網(wǎng)站的基本過程,以及當(dāng)前進(jìn)行網(wǎng)站推廣的形式有哪些?
建立電子商務(wù)網(wǎng)站可分為申請(qǐng)域名、申請(qǐng)空間、建立網(wǎng)站框架、制作首頁、建立鏈接、網(wǎng)頁測(cè)試與發(fā)布等步驟。1)電子郵件; 2)友情鏈接; 3)搜索引擎; 4)討論組; 5)利用網(wǎng)絡(luò)廣告;6)利用傳統(tǒng)方式。
2.當(dāng)前網(wǎng)上銀行電子支付中執(zhí)行SET協(xié)議的目標(biāo)是什么? 1)保證信息在互聯(lián)網(wǎng)上的安全傳輸,防止數(shù)據(jù)被竊??;
2)保證電子商務(wù)參與者信息的相互隔離,即銀行與客戶之間數(shù)據(jù)的隔離; 3)對(duì)在線商店的信譽(yù)程度認(rèn)證,同時(shí)還有消費(fèi)者、在線商店與銀行間的認(rèn)證; 4)保證網(wǎng)上交易的實(shí)時(shí)性,使所有的支付過程都是在線的;
5)規(guī)范協(xié)議和消息格式,促使不同軟件具有兼容性和互操作功能,可以運(yùn)行在不同的計(jì)算機(jī)平臺(tái)上。3.在保證電子商務(wù)交易安全中經(jīng)常用到數(shù)字簽名,什么是數(shù)字簽名及其實(shí)現(xiàn)原理?
數(shù)字簽名(digital signature):是將摘要用發(fā)送者的私鑰加密,與原文一起傳送給接收者。
接收者只有用發(fā)送者的公鑰才能解密被加密的摘要,在電子商務(wù)安全保密系統(tǒng)中,數(shù)字簽名技術(shù)有著特別重要的地位,在電子商務(wù)安全服務(wù)中的源鑒別、完整性服務(wù)、不可否認(rèn)服務(wù)中都要用到數(shù)字簽名技術(shù)。4.為什么說現(xiàn)代物流是實(shí)施電子商務(wù)的關(guān)鍵?
當(dāng)前制約電子商務(wù)發(fā)展的瓶頸中最突出的就是物流問題,即物流與信息流、商流、資金流嚴(yán)重脫節(jié)的問題。沒有物流,電子商務(wù)只能是一張空頭支票。1)物流保障生產(chǎn)
合理化、現(xiàn)代化的物流,通過降低費(fèi)用從而降低成本、優(yōu)化庫存結(jié)構(gòu)、減少資金占?jí)骸⒖s短生產(chǎn)周期,保障了現(xiàn)代化生產(chǎn)的高效進(jìn)行。
2)物流是實(shí)現(xiàn)個(gè)性化服務(wù)的保證
電子商務(wù)的出現(xiàn),在最大程度上方便了消費(fèi)者,而物流是電子商務(wù)實(shí)現(xiàn)個(gè)性化服務(wù)的最終保證,缺少了現(xiàn)代化的物流系統(tǒng),電子商務(wù)給消費(fèi)者帶來的購物便捷等于零。3)物流服務(wù)于商流
在整個(gè)電子商務(wù)的交易過程中,物流實(shí)際上是以商流的后續(xù)者和服務(wù)者的姿態(tài)出現(xiàn)的。沒有現(xiàn)代化的物流,任何輕松的商流活動(dòng)都將退化為一紙空文。
5.網(wǎng)絡(luò)營銷對(duì)傳統(tǒng)營銷策略的影響有哪些? 1)對(duì)傳統(tǒng)產(chǎn)品品牌策略的影響; 2)對(duì)定價(jià)策略的影響; 3)對(duì)傳統(tǒng)營銷渠道的影響; 4)對(duì)傳統(tǒng)廣告策略的影響。
1.電子商務(wù)交易中始終貫穿著商流、物流、信息流和資金流,請(qǐng)論述四流之間的相互關(guān)系?
商流、物流、信息流和資金流是從商品流通內(nèi)部結(jié)構(gòu)描述流通過程的概念。它們之間的關(guān)系密切,可以說失去其中任何一個(gè),另外的都不會(huì)長期存在下去。四&<47;流&<48;是相互依存的前提條件,又是相互依存的基礎(chǔ)。主要表現(xiàn)在:
1)信息流是由商流和物流引起并反映其變化的各種信息、情報(bào)、資料、指令等在傳遞過程中形成的經(jīng)濟(jì)活動(dòng)。缺少信息流,商流和物流都不能順利地進(jìn)行。
2)資金流表示電子支付中,電子現(xiàn)金、電子支票、信用卡中資金的回饋過程。
3)商流指商品所有權(quán)的轉(zhuǎn)移過程,物流指物質(zhì)實(shí)體的運(yùn)動(dòng)過程。商流和物流是前繼和后起關(guān)系。
4)信息流既制約著商流,又制約著物流,它為商品和物流提供預(yù)測(cè)和決策依據(jù)。同時(shí),信息流又是將商流和物流相互溝通,以完成商品流通的全過程。
5)四流之間相輔相成,緊密聯(lián)系,相互促進(jìn)。因而,四流不僅有利于提高商品流通企業(yè)的經(jīng)濟(jì)效益,而且也有利于提高社會(huì)效益。
2.實(shí)施電子商務(wù)安全的基本要素有哪些,并分別加以闡述? 1)信息的保密性:是指信息在傳輸或存儲(chǔ)過程中不被他人竊??;
2)信息的完整性:由于數(shù)據(jù)輸入時(shí)的意外差錯(cuò)或欺詐行為,可能導(dǎo)致貿(mào)易各方信息的差異;
3)信息的有效性:電子商務(wù)以電子形式取代了紙張,如何保證這種電子形式貿(mào)易信息的有效性是開展電子商務(wù)的前提。4)信息的不可抵賴性:要求在交易信息的傳輸過程中為參與交易的個(gè)人、企業(yè)或國家提供可靠的標(biāo)識(shí),使原發(fā)方在發(fā)送數(shù)據(jù)后不能抵賴;接收方在接收數(shù)據(jù)后也不能抵賴。
5)交易身份的真實(shí)性:交易者身份的真實(shí)性是指交易雙方確實(shí)是存在的,不是假冒的。
6)系統(tǒng)的可靠性:電子商務(wù)系統(tǒng)是計(jì)算機(jī)系統(tǒng),其可靠性是指防止由于計(jì)算機(jī)失效、程序錯(cuò)誤、傳輸錯(cuò)誤、硬件故障、系統(tǒng)軟件錯(cuò)誤、計(jì)算機(jī)病毒和自然災(zāi)害等所產(chǎn)生的潛在威脅,并加以控制和預(yù)防,確保系統(tǒng)安全可靠。
第五篇:大學(xué)軍事理論期末考試題及答案
一、選擇題
1、國防的基本要素是(ABCDE)。A 政治要素 B 經(jīng)濟(jì)要素 C 科技要素 D 自然要素 E 軍事要素
2、現(xiàn)代國防的基本類型是(ABC)A 侵略擴(kuò)張型; B 自衛(wèi)防御型; C 互相聯(lián)盟型; D 不獨(dú)不統(tǒng)型; 3、1989年江澤民同志出任中央軍委主席,提出堅(jiān)持走(BCDE)的國防建設(shè)之路。A 大打 B 精兵 C 利器 D 合成 E 高效
4、當(dāng)前國際戰(zhàn)略格局主要現(xiàn)狀表現(xiàn)為(ACD)(A)世界呈多極化趨勢(shì),但美國單邊主義有恃無恐(B)霸權(quán)主義對(duì)第三世界國家實(shí)施圍堵(C)國際恐怖活動(dòng)猖獗,對(duì)國際安全影響嚴(yán)重(D)世界軍備競(jìng)賽加劇,對(duì)穩(wěn)定產(chǎn)生不利影響
5、軍事戰(zhàn)略的特點(diǎn)(ACD)
(A)立足于威懾;(B)立足于核戰(zhàn)爭(zhēng);(C)立足于威懾;(D)立足常規(guī)戰(zhàn)爭(zhēng)。
6、中國安全政策的目的是(ABCD),確保國家安全。(A)鞏固國防;(B)捍衛(wèi)國家主權(quán);(C)維護(hù)領(lǐng)土完整;(D)抵御侵略。
7、精確制導(dǎo)武器為直接摧毀概率超過(C)的制導(dǎo)武器。A 60%,B 70%,C 50%,D 90%
8、導(dǎo)彈與精確制導(dǎo)彈藥的主要區(qū)別是(C)A 前者有彈翼,而后者沒有; B 后者有彈翼,而前者沒有; C 前者有動(dòng)力裝置,而后者沒有; D 后者有動(dòng)力裝置,而前者沒有;
9、一顆靜止衛(wèi)星可以覆蓋大約地球表面(C)的區(qū)域。A 60%,B 50%,C40%,D30% 10、20世紀(jì)90年代初,一場(chǎng)以美國為首的多國部隊(duì)打擊伊拉克軍隊(duì)的海灣戰(zhàn)爭(zhēng),向人們提出了戰(zhàn)爭(zhēng)的(B)這一重大命題。A 機(jī)械化 B 信息化 C 精確化 D 立體化
11、海灣戰(zhàn)爭(zhēng)發(fā)生于(B)年。
A 1990 B 1991 C 1999 D 2003
12、未來信息化戰(zhàn)爭(zhēng)中,軍隊(duì)規(guī)模將向(C)方向發(fā)展。A 大型化
B 一體化
C 小型化
D 立體化
二、填空題
1、中國國防的歷史包括(中國古代國防)、(中國近代國防)、(新中國的國防)等三個(gè)階段。
2、(1964)年(10)月(16)日(15)時(shí),第一顆原子弱試驗(yàn)成功,中國從此有了自己的核威懾力量。
3、毛澤東所強(qiáng)調(diào)的“二十一字方針”是:(積極防御);(誘敵深入);(打人民戰(zhàn)爭(zhēng));(打運(yùn)動(dòng)戰(zhàn));(打殲滅戰(zhàn))。
4、軍事戰(zhàn)略是指(籌劃)和(指導(dǎo))戰(zhàn)爭(zhēng)全局的方略。
5、所謂多極格局,是指多種戰(zhàn)略力量既(相對(duì)獨(dú)立)又(相互聯(lián)系),既相互合作又(相互制約)而形成的一種相對(duì)穩(wěn)定的戰(zhàn)略關(guān)系。
6、中國是一個(gè)陸海大國,位于歐亞大陸的東南部,陸疆面積(960)萬平方公 里,有(2.2)萬多公里的陸地邊界。同時(shí),中國又是一個(gè)有(300)多萬平方公里的海洋權(quán)益的大國,東臨太平洋,海岸線長(1.8)萬多公里,擁有便利的海上通道和豐富的海洋資源。
7、當(dāng)代高技術(shù)包括六大高技術(shù)群體,即(信息技術(shù))群、(新材料技術(shù))群、(新能源技術(shù))群、(航天技術(shù))群、(生物技術(shù))群和(海洋開發(fā)技術(shù))群。
8、軍事高技術(shù)對(duì)現(xiàn)代戰(zhàn)爭(zhēng)的影響概括起來就是(偵察立體)化、(打擊精確)化、(反應(yīng)高速)化、(防護(hù)綜合)化、(控制智能)化。
9、導(dǎo)彈的本體一般由(戰(zhàn)斗部及引信)、(動(dòng)力裝置)、(制導(dǎo)系統(tǒng))和(彈體)四部分組成。10、1991年的海灣戰(zhàn)爭(zhēng)和隨后發(fā)生的科索沃戰(zhàn)爭(zhēng)、阿富汗戰(zhàn)爭(zhēng)、伊拉克戰(zhàn)爭(zhēng),不僅向人們提出了戰(zhàn)爭(zhēng)的“信息化”這一重大命題,而且逐步孕育了一個(gè)全新的戰(zhàn)爭(zhēng)形態(tài)(信息化戰(zhàn)爭(zhēng))。
11、迄今為止,人類社會(huì)已經(jīng)發(fā)生了(5)次信息革命。
12、未來信息化戰(zhàn)爭(zhēng)中,戰(zhàn)爭(zhēng)目的將由“消滅敵人、保存自己”轉(zhuǎn)變?yōu)椋刂茢橙耍?、(保護(hù)自己)。
三、簡(jiǎn)答題
1、國防的基本概念是什么?
答:國家為防備和抵抗侵略,制止武裝顛覆,保衛(wèi)國家的主權(quán)、統(tǒng)一、領(lǐng)土完整和安全所進(jìn)行的軍事活動(dòng),以及與軍事有關(guān)的政治、經(jīng)濟(jì)、外交、科技、教育等方面的活動(dòng)。
2、國防的職能包括哪些? 答:保衛(wèi)國家主權(quán)、保衛(wèi)國家領(lǐng)土完整、保衛(wèi)國家的統(tǒng)一、維護(hù)國家安全、保障國家發(fā)展、鞏固國家的地位。
3、簡(jiǎn)述國際戰(zhàn)略格局的基本特點(diǎn)。
答:國際戰(zhàn)略格局的時(shí)代性,國際戰(zhàn)略格局的適應(yīng)性,國際戰(zhàn)略格局的關(guān)聯(lián)性。
4、簡(jiǎn)述產(chǎn)生恐怖活動(dòng)的主要原因。
答:一是舊的、不合理的國際政治與經(jīng)濟(jì)秩序?yàn)榭植阑顒?dòng)的滋生和生長提供了基礎(chǔ)。二是美、英一意孤行地發(fā)動(dòng)伊拉克戰(zhàn)爭(zhēng),改變了中東的政治格局,極大的刺激了國際恐怖活動(dòng),特別是中東地區(qū)激進(jìn)組織的暴力行動(dòng)。三是形形色色的邪教、極端宗教等組織作祟。
5、激光武器對(duì)目標(biāo)造成破壞的主要效應(yīng)有哪些? 答:主要是燒蝕效、激波效應(yīng)和輻射效應(yīng)
6、隱身兵器對(duì)作戰(zhàn)有哪些影響? 答:①隱身飛行器的出現(xiàn),增大了對(duì)空防御難度。②地面兵器“隱身”能力增強(qiáng),戰(zhàn)場(chǎng)生存能力明顯提高。③武器系統(tǒng)的隱身攻擊能力使指揮系統(tǒng)面臨生存威脅。④隱身兵器使電子對(duì)抗和偵察與反偵察的斗爭(zhēng)更加劇烈。
7、信息化戰(zhàn)爭(zhēng)的內(nèi)涵是什么?
答:廣泛使用信息技術(shù)及其物化的武器裝備,通過奪取信息優(yōu)勢(shì)和制信息權(quán)取得勝利而進(jìn)行的戰(zhàn)爭(zhēng),就可稱之為信息化戰(zhàn)爭(zhēng)?;颍含F(xiàn)階段和即將到來的戰(zhàn)爭(zhēng)形式為核威懾下的信息化戰(zhàn)爭(zhēng)。
8、C4ISR系統(tǒng)中的C4指的是什么?
答:即指自動(dòng)化指揮系統(tǒng),是美國人開發(fā)的一個(gè)通訊聯(lián)絡(luò)系統(tǒng)。C4表示Command—指揮、Control—控制、Communication—通信、Computer—計(jì)算機(jī)。
四、論述題
1、作為當(dāng)代的大學(xué)生,談?wù)勅绾卧鰪?qiáng)國防觀念為祖國作貢獻(xiàn)?(1)努力學(xué)習(xí)國防知識(shí);(2)為國防建設(shè)做貢獻(xiàn);
(3)為形成擁軍、愛民的良好社會(huì)氛圍做貢獻(xiàn)。
2、通過軍事理論課程學(xué)習(xí)及軍訓(xùn)活動(dòng),談?wù)勛约旱闹饕斋@與體會(huì)。(1)激發(fā)了愛國主義熱情,強(qiáng)化了國防意識(shí),增強(qiáng)了社會(huì)責(zé)任感;
(2)增長了國防和軍事方面的知識(shí),了解了解放軍的優(yōu)秀傳統(tǒng)和軍人的良好品格。
(3)增強(qiáng)了組織紀(jì)律觀念,培養(yǎng)了勇敢頑強(qiáng)、吃苦耐勞精神。(4)努力學(xué)習(xí),掌握本領(lǐng),將來報(bào)效祖國和人民。
3、簡(jiǎn)論高技術(shù)發(fā)展與軍事變革的關(guān)系(1)高技術(shù)群的發(fā)展推動(dòng)新軍事變革;(2)高技術(shù)是新軍事變革的主要內(nèi)容;
(3)軍事需求既牽引了高技術(shù)的發(fā)展,又推動(dòng)了軍事的變革
4、信息化戰(zhàn)爭(zhēng)的構(gòu)成要素是什么? 信息化
戰(zhàn)爭(zhēng)的構(gòu)成要素包括信息化武器裝備和信息化戰(zhàn)爭(zhēng)作戰(zhàn)力量。
(1)信息化武器裝備。信息化武器裝備是信息化戰(zhàn)爭(zhēng)的物質(zhì)基礎(chǔ)。它的發(fā)展對(duì)作戰(zhàn)的影響是廣泛和持久的,從現(xiàn)代幾場(chǎng)戰(zhàn)爭(zhēng)的實(shí)踐來看,武器裝備對(duì)作戰(zhàn)的影響主要表現(xiàn)在聯(lián)合、控制、精確、快速等四個(gè)方面。
(2)信息化戰(zhàn)爭(zhēng)作戰(zhàn)力量。信息化戰(zhàn)爭(zhēng)作戰(zhàn)力量是取得信息化戰(zhàn)爭(zhēng)勝利的重要保證。信息化戰(zhàn)爭(zhēng)作戰(zhàn)力量構(gòu)成有多種區(qū)分方法,按照軍種、兵種結(jié)構(gòu)區(qū)分是基本方法,通常包括陸上作戰(zhàn)力量、海上作戰(zhàn)力量、空中作戰(zhàn)力量、戰(zhàn)略導(dǎo)彈作戰(zhàn)力量、空間作戰(zhàn)力量、信息作戰(zhàn)力量等。