欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      2015年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案(樣例5)

      時(shí)間:2019-05-15 10:48:04下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《2015年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《2015年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案》。

      第一篇: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)力量等。

      下載2015年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案(樣例5)word格式文檔
      下載2015年數(shù)據(jù)結(jié)構(gòu)期末考試題及答案(樣例5).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        光纖通信期末考試題及答案分析

        一、填空: 1、1966年,在英國標(biāo)準(zhǔn)電信實(shí)驗(yàn)室工作的華裔科學(xué)家 首先提出用石英玻璃纖維作為光纖通信的媒質(zhì),為現(xiàn)代光纖通信奠定了理論基礎(chǔ)。 2、光纖傳輸是以 作為信號(hào)載體,以 作......

        數(shù)據(jù)結(jié)構(gòu)試題及答案

        1 數(shù)據(jù)結(jié)構(gòu)試卷(二) 一、選擇題(24分) 1.下面關(guān)于線性表的敘述錯(cuò)誤的是( )。 (A) 線性表采用順序存儲(chǔ)必須占用一片連續(xù)的存儲(chǔ)空間(B) 線性表采用鏈?zhǔn)酱鎯?chǔ)不必占用一片連續(xù)的存......

        數(shù)據(jù)結(jié)構(gòu)期末復(fù)習(xí)資料

        《數(shù)據(jù)結(jié)構(gòu)》課程復(fù)習(xí)資料 第一章:數(shù)據(jù)結(jié)構(gòu)概述 1、掌握數(shù)據(jù)結(jié)構(gòu)的定義,即數(shù)據(jù)結(jié)構(gòu)三要素:數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)、操作; 2、數(shù)據(jù)結(jié)構(gòu)包括:邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu); 3、數(shù)據(jù)之間的......

        數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題及答案5篇

        、數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題及答案 中南大學(xué)現(xiàn)代遠(yuǎn)程教育課程考試(??疲?fù)習(xí)題及參考答案 數(shù)據(jù)結(jié)構(gòu) 一、判斷題: 1. 數(shù)組是一種復(fù)雜的數(shù)據(jù)結(jié)構(gòu),數(shù)組元素之間的關(guān)系既不是線性的也不是樹形......

        數(shù)據(jù)結(jié)構(gòu)期中試卷及答案

        一、選擇題(每小題2分,共30分) 1. 數(shù)據(jù)結(jié)構(gòu)是( D )。 A.一種數(shù)據(jù)類型 B.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu) C.一組性質(zhì)相同的數(shù)據(jù)元素的集合 D.相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合 2.以下......

        數(shù)據(jù)結(jié)構(gòu)考試題目及答案

        數(shù)據(jù)結(jié)構(gòu)試題6 一、單項(xiàng)選擇題(每小題3分,共30分) 1.設(shè)棧的輸入序列是1、2、3、4,則______不可能是其出棧序列。( ) [A] 1234 [B] 2134 [C] 1432 [D] 4312 2.在一個(gè)具有n個(gè)結(jié)......

        數(shù)據(jù)結(jié)構(gòu)試卷(一)及答案

        數(shù)據(jù)結(jié)構(gòu)試卷(一) 一、選擇題(20分) 1.組成數(shù)據(jù)的基本單位是( )。(A) 數(shù)據(jù)項(xiàng) (B) 數(shù)據(jù)類型 (C) 數(shù)據(jù)元素 (D) 數(shù)據(jù)變量 2.設(shè)數(shù)據(jù)結(jié)構(gòu)A=(D,R),其中D={1,2,3,4},R={r},r={,,,},則數(shù)據(jù)結(jié)構(gòu)A是( )。(A......

        數(shù)學(xué)系第三學(xué)期數(shù)學(xué)分析期末考試題及答案

        第三學(xué)期《數(shù)學(xué)分析》期末試題 一、 選擇題:(15分,每小題3分) 1、累次極限存在是重極限存在的( ) A充分條件 B必要條件 C充分必要條件 D 無關(guān)條件 2、?f(x,y)|(x0,y0)?() ?xAlim?x?0f(x0??x......