計(jì)算機(jī)2級C語言筆試部分_第1頁
計(jì)算機(jī)2級C語言筆試部分_第2頁
計(jì)算機(jī)2級C語言筆試部分_第3頁
計(jì)算機(jī)2級C語言筆試部分_第4頁
計(jì)算機(jī)2級C語言筆試部分_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

路就在你腳下,只要走,就能到達(dá)遠(yuǎn)方。

二級C語言公共基礎(chǔ)知識之?dāng)?shù)據(jù)結(jié)構(gòu)

考點(diǎn)1算法的復(fù)雜度

1.算法的基本概念

算法的基本特征:可行性、確定性、有窮性、輸入(可為0)、輸出(不能為0)

2.算法復(fù)雜度包括時(shí)間復(fù)雜度和空間復(fù)雜度

名稱

描述

時(shí)間復(fù)雜度

是指執(zhí)行算法所需要的計(jì)算工作量

空間復(fù)雜度

是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間

考點(diǎn)2邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)

1.邏輯結(jié)構(gòu)

2.存儲結(jié)構(gòu)

考點(diǎn)3線性結(jié)構(gòu)和非線性結(jié)構(gòu)

根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的更雜程度

一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)和非線性結(jié)構(gòu)

如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:

(1)有且只有一個(gè)根結(jié)點(diǎn);

(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件

也最多有一個(gè)后件

則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)

線性結(jié)構(gòu)又稱線性表

在一個(gè)線性結(jié)構(gòu)中插入或刪除任何一個(gè)結(jié)點(diǎn)后還應(yīng)是線性結(jié)構(gòu)

枝、隊(duì)列、串等都線性結(jié)構(gòu)

如果一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu)

則稱之為非線性結(jié)構(gòu)

數(shù)組、廣義表、樹和圖等數(shù)據(jù)結(jié)構(gòu)都是非線性結(jié)構(gòu)

考點(diǎn)4棧

1.棧的基本概念

棧(stack)是一種特殊的線性表

是限定只在一端進(jìn)行插入和刪除的線性表

在棧中

一端是封閉的

既不允許進(jìn)行插入元素

也不允許刪除元素;另一端是開口的

允許插入和刪除元素

通常稱插入、刪除的這一端為棧頂

另一端為棧底

當(dāng)表中沒有元素時(shí)稱為空棧

棧頂元素總是后被插入的元素

從而也是最先被刪除的元素;棧底元素總是最先被插入的元素

從而也是最后才能被刪除的元素

"先進(jìn)后出"或"后進(jìn)先出〃

2.棧的順序存儲及其運(yùn)算棧的基本運(yùn)算有三種:入棧、退棧和讀棧頂元素

(1)入棧運(yùn)算:入棧運(yùn)算是指在棧頂位置插入一個(gè)新元素

(2)退棧運(yùn)算:退棧是指取出棧頂元素并賦給一個(gè)指定的變量

(3)讀棧頂元素:讀棧頂元素是指將棧頂元素賦給一個(gè)指定的變量

考點(diǎn)5隊(duì)列

1.隊(duì)列的基本概念

隊(duì)列是只允許在一端進(jìn)行刪除

在另一端進(jìn)行插入的順序表

通常將允許刪除的這一端稱為隊(duì)頭

允許插入的這一端稱為隊(duì)尾

當(dāng)表中沒有元素時(shí)稱為空隊(duì)列

隊(duì)列的修改是依照先進(jìn)先出的原則進(jìn)行的

因此隊(duì)列也稱為先進(jìn)先出的線性表

或者后進(jìn)后出的線性表

例如:火車進(jìn)遂道

最先進(jìn)遂道的是火車頭

最后是火車尾

而火車出遂道的時(shí)候也是火車頭先出

最后出的是火車尾

若有隊(duì)列:Q=(ql

q2

qn)

那么

ql為隊(duì)頭元素(排頭元素)

qn為隊(duì)尾元素

隊(duì)列中的元素是按照ql

q2

qn的順序進(jìn)入的

退出隊(duì)列也只能按照這個(gè)次序依次退出

即只有在q1

q2

qnT都退隊(duì)之后

qn才能退出隊(duì)列

因最先進(jìn)入隊(duì)列的元素將最先出隊(duì)

所以隊(duì)列具有先進(jìn)先出的特性

體現(xiàn)”先來先服務(wù)”的原則

隊(duì)頭元素ql是最先被插入的元素

也是最先被刪除的元素

隊(duì)尾元素qn是最后被插入的元素

也是最后被刪除的元素

”先進(jìn)先出〃

入隊(duì)運(yùn)算為往隊(duì)列隊(duì)尾插入一個(gè)數(shù)據(jù)元素

退隊(duì)運(yùn)算為從隊(duì)列的隊(duì)頭刪除?個(gè)數(shù)據(jù)元素

考點(diǎn)6鏈表

在鏈?zhǔn)酱鎯Ψ绞街?/p>

要求每個(gè)結(jié)點(diǎn)由兩部分組成:一部分用于存放數(shù)據(jù)元素值

稱為數(shù)據(jù)域

另一部分用于存放指針

稱為指針域

其中指針用于指向該結(jié)點(diǎn)的前一個(gè)或后一個(gè)結(jié)點(diǎn)(即前件或后件)

鏈?zhǔn)酱鎯Ψ绞郊瓤捎糜诒硎揪€性結(jié)構(gòu)

也可用于表示非線性結(jié)構(gòu)

(1)線性鏈表

線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表

在某些使用中

對線性鏈表中的每個(gè)結(jié)點(diǎn)設(shè)置兩個(gè)指針

一個(gè)稱為左指針

用以指向其前件結(jié)點(diǎn);另一個(gè)稱為右.指針

用以指向其后件結(jié)點(diǎn)

這樣的表稱為雙向鏈表

在線性鏈表中

各數(shù)據(jù)元素結(jié)點(diǎn)的存儲空間可以是不連續(xù)的

且各數(shù)據(jù)元素的存儲順序和邏輯順序可以不一致

在線性鏈表中進(jìn)行插入和刪除

不需要移動鏈表中的元素

(2)帶鏈的棧

棧也是線性表

也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)

帶鏈的棧可以用來收集計(jì)算機(jī)存儲空間中所有空閑的存儲結(jié)點(diǎn)

這種帶鏈的棧稱為可利用棧

考點(diǎn)7二叉樹及其基本性質(zhì)

1、二叉樹及其基本概念

二叉樹是一種很有用的非線性結(jié)構(gòu)

具有以下兩個(gè)特點(diǎn):

①非空二叉樹只有一個(gè)根結(jié)點(diǎn):

②每一個(gè)結(jié)點(diǎn)最多有兩棵子樹

且分別稱為該結(jié)點(diǎn)的左子樹和右子樹

在二叉樹中

每一個(gè)結(jié)點(diǎn)的度最大為2

即所有子樹(左子樹或右子樹)也均為二叉樹

另外

二叉樹中的每個(gè)結(jié)點(diǎn)的子樹被明顯地分為左子樹和右子樹

在二叉樹中

一個(gè)結(jié)點(diǎn)可以只有左子樹而沒有右子樹

也可以只有右子樹而沒有左子樹

當(dāng)一個(gè)結(jié)點(diǎn)既沒有左子樹也沒有右子樹時(shí)

該結(jié)點(diǎn)即為葉子結(jié)點(diǎn)

父結(jié)點(diǎn)(根)

在樹結(jié)構(gòu)中

每一個(gè)結(jié)點(diǎn)只有一個(gè)前件

稱為父結(jié)點(diǎn)

沒有前件的結(jié)點(diǎn)只有一個(gè)

稱為樹的根結(jié)點(diǎn)

簡稱樹的根

例如

在圖1-1中

結(jié)點(diǎn)A是樹的根結(jié)點(diǎn)

子結(jié)點(diǎn)和

葉子結(jié)點(diǎn)

在樹結(jié)構(gòu)中

每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件

稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)

沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)

例如

在圖1-1中

結(jié)點(diǎn)D

E

F均為葉子結(jié)點(diǎn)

在樹結(jié)構(gòu)中

一個(gè)結(jié)點(diǎn)所擁有的后件的個(gè)數(shù)稱為該結(jié)點(diǎn)的度

所有結(jié)點(diǎn)中最大的度稱為樹的度

例如

在圖1-1中

根結(jié)點(diǎn)A和結(jié)點(diǎn)B的度為2

結(jié)點(diǎn)C的度為1

葉子結(jié)點(diǎn)D

E

F的度為0

所以

該樹的度為2

深度

定義一棵樹的根結(jié)點(diǎn)所在的層次為1

其他結(jié)點(diǎn)所在的層次等于它的父結(jié)點(diǎn)所在的層次加1

樹的最大層次稱為樹的深度

例如

在圖1-1中

根結(jié)點(diǎn)A在第1層

結(jié)點(diǎn)B

C在第2層

結(jié)點(diǎn)D

E

F在第3層

該樹的深度為3

子樹

在樹中

以某結(jié)點(diǎn)的一個(gè)子結(jié)點(diǎn)為根構(gòu)成的樹稱為該結(jié)點(diǎn)的一棵子樹

2、二叉樹基本性質(zhì)

二叉樹具有以下幾個(gè)性質(zhì):

性質(zhì)1:在二叉樹的第k層上

最多有2k1(k>l)個(gè)結(jié)點(diǎn);

性質(zhì)2:深度為m的二叉樹最多有2m-l個(gè)結(jié)點(diǎn);

性質(zhì)3:在任意一棵二叉樹中

度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)

性質(zhì)4:具有n個(gè)結(jié)點(diǎn)的二叉樹

其深度至少為[log2n]+1

其中[log2n]表示取log2rl的整數(shù)部分

3、滿二叉樹和完全二叉樹

滿二叉樹是指這樣的一種二叉樹:除最后一層外

每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)

在滿二叉樹中

每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值

即在滿二叉樹的第k層上有2k-l個(gè)結(jié)點(diǎn)

且深度為m的滿二叉樹有2m—1個(gè)結(jié)點(diǎn)

完全二叉樹是指這樣的二叉樹:除最后一層外

每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值:在最后一層上只缺少右邊的若干結(jié)點(diǎn)

對于完全二叉樹來說

葉子結(jié)點(diǎn)只可能在層次最大的兩層上出現(xiàn):對于任何一個(gè)結(jié)點(diǎn)

若其右分支下的子孫結(jié)點(diǎn)的最大層次為P

則其左分支下的子孫結(jié)點(diǎn)的最大層次或?yàn)閜

或?yàn)閜+1

完全二叉樹具有以下兩個(gè)性質(zhì):

性質(zhì)5:具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為[log2n]-1

性質(zhì)6:設(shè)完全二叉樹共有n個(gè)結(jié)點(diǎn)

如果從根結(jié)點(diǎn)開始

按層次(每一層從左到右〕用自然數(shù)1

2

n給結(jié)點(diǎn)進(jìn)行編號

則對于編號為k(k=l

2

n)的結(jié)點(diǎn)有以下結(jié)論:

①若k=l

則該結(jié)點(diǎn)為根結(jié)點(diǎn)

它沒有父結(jié)點(diǎn);若

則該結(jié)點(diǎn)的父結(jié)點(diǎn)編號為INT(k/2)

②若2kWn

則編號為k的結(jié)點(diǎn)的左子結(jié)點(diǎn)編號為2k;否則該結(jié)點(diǎn)無左子結(jié)點(diǎn)(顯然也沒有右了?結(jié)點(diǎn))

③若2k+lWn

則編號為k的結(jié)點(diǎn)的右子結(jié)點(diǎn)編號為2k+l;否則該結(jié)點(diǎn)無右子結(jié)點(diǎn)

考點(diǎn)8二叉樹的遍歷

在遍歷二叉樹的過程中

一般先遍歷左子樹

再遍歷石子樹

在先左后右的原則下

根據(jù)訪問根結(jié)點(diǎn)的次序

二叉樹的遍歷分為三類:前序遍歷、中序遍歷和后序遍歷

(1)前序遍歷:先訪問根結(jié)點(diǎn)、然后遍歷左子樹

最后遍歷右子樹;并且

在遍歷左、右子樹時(shí)

仍然先訪問根結(jié)點(diǎn)

然后遍歷左子樹

最后遍歷右子樹

A

B

D

E

C

F

(2)中序遍歷:先遍歷左子樹、然后訪問根結(jié)點(diǎn)

最后遍歷右子樹;并且

在遍歷左、右子樹時(shí)

仍然先遍歷左子樹

然后訪問根結(jié)點(diǎn)

最后遍歷右子樹

D

B

E

A

C

F

(3)后序遍歷:先遍歷左子樹、然后遍歷右子樹

最后訪問根結(jié)點(diǎn);并且

在遍歷左、右子樹時(shí)

仍然先遍歷左子樹

然后遍歷右子樹

最后訪問根結(jié)點(diǎn)

D

E

B

F

C

A

考點(diǎn)9順序查找

查找是指在一個(gè)給定的數(shù)據(jù)結(jié)構(gòu)中查找某個(gè)指定的元素

從線性表的笫一個(gè)元素開始

依次將線性表中的元素和被查找的元素相比較

若相等則表示看找成功;若線性表中所有的元素都和被杳找元素進(jìn)行了比較但都不相等

則表示查找失敗

例如

在一維數(shù)組[21

46

24

99

57

77

86]中

查找數(shù)據(jù)元素98

首先從第1個(gè)元素21開始進(jìn)行比較

和要查找的數(shù)據(jù)不相等

接著和第2個(gè)元素46進(jìn)行比較

以此類推

當(dāng)進(jìn)行到和第4個(gè)元素比較時(shí)

它們相等

所以查找成功

如果查找數(shù)據(jù)元素100

則整個(gè)線性表掃描完畢

仍未找到和100相等的元素

表示線性表中沒有要查找的元素

在卜列兩種情況卜.也只能采用順序查找:

(1)如果線性表為無序表

則不管是順序存儲結(jié)構(gòu)還是鏈?zhǔn)酱鎯Y(jié)構(gòu)

只能用順序查找

(2)即使是有序線性表

如果采用鏈?zhǔn)酱鎯Y(jié)構(gòu)

也只能用順序查找

考點(diǎn)10二分法查找

二分法查找

也稱拆半查找

是一種高效的查找方法

能使用二分法查找的線性表必須滿足兩個(gè)條件:用順序存儲結(jié)構(gòu);線性表是有序表

在本書中

為了簡化問題

而更方便討論

“有序"是特指元素按非遞減排列

即從小到大排列

但允許相鄰元素相等

下一節(jié)排序中

有序的含義也是如此

順序查找法每一次比較

只將查找范闈減少1

而二分法查找

每比較一次

可將查找范圍減少為原來的一半

效率大大提高

對于長度為n的有序線性表

在最壞情況下

二分法查找只需比較log2n次

而順序查找需要比較n次

考點(diǎn)11排序

冒泡排序法和快速排序法都屬于交換類排序法

(1)冒泡排序法

首先

從表頭開始往后掃描線性表

逐次比較相鄰兩個(gè)元素的大小

若前面的元素大于后面的元素

則將它們互換

不斷地將兩個(gè)相鄰元素中的大者往后移動

最后最大者到了線性表的最后

然后

從后到前掃描剩下的線性表

逐次比較相鄰兩個(gè)元素的大小

若后面的元素小于前面的元素

則將它們互換

不斷地將兩個(gè)相鄰元素中的小者往前移動

最后最小者到了線性表的最前面

對剩下的線性表重復(fù)上述過程

直到剩下的線性表變空為止

此時(shí)已經(jīng)排好序

在最壞的情況下

冒泡排序需要比較次數(shù)為n(n-l)/2

(2)快速排序法

任取待排序序列中的某個(gè)元素作為基準(zhǔn)(一般取第一個(gè)元素)

通過一趟排序

將待排元素分為左右兩個(gè)子序列

左子序列元素的排序碼均小于?或等于基準(zhǔn)元素的排序碼

右子序列的排序碼則大于基準(zhǔn)元素的排序碼

然后分別對兩個(gè)子序列繼續(xù)進(jìn)行排序

直至整個(gè)序列有序

二級C語言公共基礎(chǔ)知識之軟件工程

考點(diǎn)1軟件工程基本概念

1.軟件定義和軟件特點(diǎn)

軟件指的是計(jì)算機(jī)系統(tǒng)中和硬件相互依存的另一部分

包括程序、數(shù)據(jù)和相關(guān)文檔的完整集合

程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計(jì)語言描述的、適合計(jì)算機(jī)執(zhí)行的指令

序列

數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)

文檔是和程序的開發(fā)、維護(hù)和使用有關(guān)的圖文資料

可見

軟件由兩部分組成:

(1)機(jī)器可執(zhí)行的程序和數(shù)據(jù);

(2)機(jī)器不可執(zhí)行的

和軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔

根據(jù)使用目標(biāo)的不同

軟件可分使用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)

名稱

描述

使用軟件

為解決特定領(lǐng)域的使用而開發(fā)的軟件

系統(tǒng)軟件

計(jì)算機(jī)管理自身資源

提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的軟件

支撐軟件(或工具軟件)

支撐軟件是介于兩者之間

協(xié)助用戶開發(fā)軟件的工具性軟件

2.軟件工程

為了擺脫軟件危機(jī)

提出了軟件工程的概念

軟件工程學(xué)是研究軟件開發(fā)和維護(hù)的普遍原理和技術(shù)的一門工程學(xué)科

所謂軟件工程是指

采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)和維護(hù)

軟件工程學(xué)的主要研究對象包括軟件開發(fā)和維護(hù)的技術(shù)、方法、工具和管理等方面

軟件工程包括3個(gè)要素:方法、工具和過程

名稱

描述

方法

方法是完成軟件工程項(xiàng)目的技術(shù)手段

工具

工具支持軟件的開發(fā)、管理、文檔生成

過程

過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理

考點(diǎn)2軟件生命周期

1.軟件生命周期概念

軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期

一般包括可行性分析研究和需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動

如圖3-1所示

軟件生命周期分為3個(gè)時(shí)期共8個(gè)階段

(1)軟件定義期:包括問題定義、可行性研究和需求分析3個(gè)階段;

(2)軟件開發(fā)期:包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測試4個(gè)階段;

(3)運(yùn)行維護(hù)期:即運(yùn)行維護(hù)階段

軟件生命周期各個(gè)階段的活動可以有重復(fù)

執(zhí)行時(shí)也可以有迭代

如圖3-1所示

2.軟件生命周期各階段的主要任務(wù)

任務(wù)

描述

問題定義

確定要求解決的問題是什么

可行性研究和計(jì)劃制定

決定該問題是否存在一個(gè)可行的解決辦法

指定完成開發(fā)任務(wù)的實(shí)施計(jì)劃

需求分析

對待開發(fā)軟件提出需求進(jìn)行分析并給出詳細(xì)定義

編寫軟件規(guī)格說明書及初步的用戶手冊

提交評審

軟件設(shè)計(jì)

通常又分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段

給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程

這階段提交評審的文檔有概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書和測試計(jì)劃初稿

軟件實(shí)現(xiàn)

在軟件設(shè)計(jì)的基礎(chǔ)上編寫程序

這階段完成的文檔有用戶手冊、操作手冊等面向用戶的文檔

以及為下一步作準(zhǔn)備而編寫的單元測試計(jì)劃

軟件測試

在設(shè)計(jì)測試用例的基礎(chǔ)上

檢驗(yàn)軟件的各個(gè)組成部分

編寫測試分析報(bào)告

運(yùn)行維護(hù)

將已交付的軟件投入運(yùn)行

同時(shí)不斷的維護(hù)

進(jìn)行必要而且可行的擴(kuò)充和刪改

考點(diǎn)3軟件設(shè)計(jì)基本概念

從技術(shù)觀點(diǎn)上看

軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)、過程設(shè)計(jì)

(1)結(jié)構(gòu)設(shè)計(jì)定義軟件系統(tǒng)各主要部件之間的關(guān)系;

(2)數(shù)據(jù)設(shè)計(jì)將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義:

(3)接口設(shè)計(jì)是描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件和人之間如何通信;

(4)過程設(shè)計(jì)則是把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換為軟件的過程性描述

從工程管理角度來看

軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)

(1)概要設(shè)計(jì)將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模

式;

(2)詳細(xì)設(shè)計(jì)確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)

用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)

考點(diǎn)4軟件設(shè)計(jì)的基本原理

1、軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和和軟件設(shè)計(jì)有關(guān)的概念

(1)抽象:軟件設(shè)計(jì)中考慮模塊化解決方案時(shí)

可以定出多個(gè)抽象級別

抽象的層次從概要設(shè)計(jì)到詳細(xì)設(shè)計(jì)逐步降低

(2)模塊化:模塊是指把一個(gè)待開發(fā)的軟件分解成若干小的簡單的部分

模塊化是指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程

(3)信息隱蔽:信息防蔽是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù))

對于不需要這些信息的其他模塊來說是不能訪問的

(4)模塊獨(dú)立性:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能

并且和其他模塊的聯(lián)系最少且接口簡單

模塊的獨(dú)立程度是評價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)

衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)

內(nèi)聚性是信息隱蔽和局部化概念的自然擴(kuò)展

一個(gè)模塊的內(nèi)聚性越強(qiáng)則該模塊的模塊獨(dú)立性越強(qiáng)

一個(gè)模塊和其他模塊的耦合性越強(qiáng)則該模塊的模塊獨(dú)立性越弱

2、衡量軟件模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)

內(nèi)聚性是度量一個(gè)模塊功能強(qiáng)度的一個(gè)相對指標(biāo)

內(nèi)聚是從功能角度來衡量模塊的聯(lián)系

它描述的是模塊內(nèi)的功能聯(lián)系

內(nèi)聚有如下種類

它們之間的內(nèi)聚度由弱到強(qiáng)排列:偶然內(nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、

順序內(nèi)聚、功能內(nèi)聚

耦合性是模塊之間互相連接的緊密程度的度量

耦合性取決于各個(gè)模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口

耦合可以分為下列幾種

它們之間的耦合度由高到低排列:內(nèi)容耦合、公共耦合、外部耦合、控制耦合、標(biāo)記耦合、

數(shù)據(jù)耦合、非直接耦合

在程序結(jié)構(gòu)中

各模塊的內(nèi)聚性越強(qiáng)

則耦合性越弱

一般較優(yōu)秀的軟件設(shè)計(jì)

應(yīng)盡量做到高內(nèi)聚

低耦合

即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性

有利于提高模塊的獨(dú)立性

考點(diǎn)5結(jié)構(gòu)化分析方法

1、結(jié)構(gòu)化分析方法的定義

結(jié)構(gòu)化分析方法就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹的

工具

來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔

結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流、自頂向下、對系統(tǒng)的功能進(jìn)行逐層分解、以數(shù)據(jù)流

圖和數(shù)據(jù)字典為主要工具

建立系統(tǒng)的邏輯模型

2、結(jié)構(gòu)化分析方法常用工具

(1)數(shù)據(jù)流圖(DFD)

數(shù)據(jù)流圖是系統(tǒng)邏輯模型的圖形表示

即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解它

因此它是分析員和用戶之間極好的通信工具

(2)數(shù)據(jù)字典(DD)

數(shù)據(jù)字典是對數(shù)據(jù)流圖中所有元素的定義的集合

是結(jié)構(gòu)化分析的核心

數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型

沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格

若沒有數(shù)據(jù)流圖

數(shù)據(jù)字典也難于發(fā)揮作用

數(shù)據(jù)字典中有4種類型的條目:數(shù)據(jù)流、數(shù)據(jù)項(xiàng)、數(shù)據(jù)存儲和加工

(3)判定表

有些加工的邏輯用語言形式不容易表達(dá)清楚

而用表的形式則一目了然

如果一個(gè)加工邏輯有多個(gè)條件、多個(gè)操作

并且在不同的條件組合下執(zhí)行不同的操作

那么可以使用判定表來描述

(4)判定樹

判定樹和判定表沒有本質(zhì)的區(qū)別

可以用判定表表示的加工邏輯都能用判定樹表示

3、軟件需求規(guī)格說明書

軟件需求規(guī)格說明書是需求分析階段的最后成果

是軟件開發(fā)的重要文檔之一

它的特點(diǎn)是具有正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可

追蹤性

考點(diǎn)6軟件測試的目的和準(zhǔn)則

1.軟件測試的目的

(1)測試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程

(2)好的測試用例(testcase)能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤

(3)一次成功的測試是能發(fā)現(xiàn)至今為止尚未發(fā)現(xiàn)的錯(cuò)誤

測試的目的是發(fā)現(xiàn)軟件中的錯(cuò)誤

但是

暴露錯(cuò)誤并不是軟件測試的最終R的

測試的根本目的是盡可能多地發(fā)現(xiàn)并排除軟件中隱藏的錯(cuò)誤

2.軟件測試的準(zhǔn)則

根據(jù)上述軟件測試的目的

為了能設(shè)計(jì)出有效的測試方案

以及好的測試用例

軟件測試人員必須深入理解

并正確運(yùn)用以下軟件測試的基本準(zhǔn)則

(1)所有測試都應(yīng)追溯到用戶需求

(2)在測試之前制定測試計(jì)劃

并嚴(yán)格執(zhí)行

(3)充分注意測試中的群集現(xiàn)象

(4)避免由程序的編寫者測試自己的程序

(5)不可能進(jìn)行窮舉測試

(6)妥善保存測試計(jì)戈I、測試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告

為維護(hù)提供方便

考點(diǎn)7軟件測試的方法和實(shí)施

【考點(diǎn)精講】

1、軟件測試方法

軟件測試具有多種方法

依據(jù)軟件是否需要被執(zhí)行

可以分為靜態(tài)測試和動態(tài)測試方法

如果依照功能劃分

可以分為白盒測試和黑盒測試方法

1.靜態(tài)測試和動態(tài)測試

(1)靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等

其中代碼檢查分為代碼審查、代碼走查、桌面檢查、靜態(tài)分析等具體形式

(2)動態(tài)測試

靜態(tài)測試不實(shí)際運(yùn)行軟件

主要通過人工進(jìn)行分析

動態(tài)測試就是通常所說的上機(jī)測試

是通過運(yùn)行軟件來檢驗(yàn)軟件中的動態(tài)行為和運(yùn)行結(jié)果的E確性

動態(tài)測試的關(guān)鍵是使用設(shè)計(jì)高效、合理的測試用例

測試用例就是為測試設(shè)計(jì)的數(shù)據(jù)

由測試輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果兩部份組成

測試用例的設(shè)計(jì)方法一般分為兩類:黑盒測試方法和白盒測試方法

2.黑盒測試和白盒測試

(1)白盒測試

白盒測試是把程序看成裝在?只透明的白盒子里

測試者完全了解程序的結(jié)構(gòu)和處理過程

它根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測試用例

檢查程序中的邏輯通路是否都按預(yù)定的要求正確地工作

(2)黑盒測試

黑盒測試是把程序看成一只黑盒子

測試者完全不了解

或不考慮程序的結(jié)構(gòu)和處理過程

它根據(jù)規(guī)格說明書的功能來設(shè)計(jì)測試用例

檢查程序的功能是否符合規(guī)格說明的要求

2、軟件測試的實(shí)施

軟件測試過程分4個(gè)步驟

即單元測試、集成測試、驗(yàn)收測試和系統(tǒng)測試

單元測試是對軟件設(shè)計(jì)的最小單位一模塊(程序單元)進(jìn)行正確性檢驗(yàn)測試

單元測試的技術(shù)可以采用靜態(tài)分析和動態(tài)測試

集成測試是測試和組裝軟件的過程

主要目的是發(fā)現(xiàn)和接口有關(guān)的錯(cuò)誤

主要依據(jù)是概要設(shè)計(jì)說明書

集成測試所設(shè)計(jì)的內(nèi)容包括:軟件單元的接口測試、全局?jǐn)?shù)據(jù)結(jié)構(gòu)測試、邊界條件和非法輸

入的測試等

集成測試時(shí)將模塊組裝成程序

通常采用兩種方式:非增量方式組裝和增量方式組裝

確認(rèn)測試的任務(wù)是驗(yàn)證軟件的功能和性能

以及其他特性是否滿足了需求規(guī)格說明中確定的各種需求

包括軟件配置是否完全、正確

確認(rèn)測試的實(shí)施首先運(yùn)用黑盒測試方法

對軟件進(jìn)行有效性測試

即驗(yàn)證被測軟件是否滿足需求規(guī)格說明確認(rèn)的標(biāo)準(zhǔn)

系統(tǒng)測試是通過測試確認(rèn)的軟件

作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素

和計(jì)算機(jī)硬件、外設(shè)、支撐軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起

在實(shí)際運(yùn)行(使用)環(huán)境下對計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的真成測試和確認(rèn)測試

系統(tǒng)測試的具體實(shí)施一般包括:功能測試、性能測試、操作測試、配置測試、外部接口則試、

安全性測試等

考點(diǎn)8程序的調(diào)試

在對程序進(jìn)行了成功的測試之后將進(jìn)入程序調(diào)試(通常稱Debug

即排錯(cuò))

程序的調(diào)試任務(wù)是診斷和改正程序中的錯(cuò)誤

調(diào)試主要在開發(fā)階段進(jìn)行

程序調(diào)試活動由兩部分組成

一是根據(jù)錯(cuò)誤的跡象確定程序中錯(cuò)誤的確切性質(zhì)、原因和位置.;二是對程序進(jìn)行修改

排除這個(gè)錯(cuò)誤

程序調(diào)試的基本步驟:

(1)錯(cuò)誤定位

從錯(cuò)誤的外部表現(xiàn)形式入手

研究有關(guān)部分的程序

確定程序中出錯(cuò)位置

找出錯(cuò)誤的內(nèi)在原因;

(2)修改設(shè)計(jì)和代碼

以排除錯(cuò)誤;

(3)進(jìn)行回歸測試

防止引進(jìn)新的錯(cuò)誤

軟件調(diào)試可分為靜態(tài)調(diào)試和動態(tài)調(diào)試

靜態(tài)調(diào)試主要是指通過人的思維來分析源程序代碼和排錯(cuò)

是主要的設(shè)計(jì)手段

而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試的

主要的調(diào)試方法有:(1)強(qiáng)行排錯(cuò)法;(2)回溯法;(3)原因排除法

二級C語言公共基礎(chǔ)知識之面向程序設(shè)計(jì)

考點(diǎn)1程序設(shè)計(jì)的方法和風(fēng)格

養(yǎng)成良好的程序設(shè)計(jì)風(fēng)格

主要考慮下述因素:

1.源程序文檔化

(1)符號名的命名:符號名的命名應(yīng)具有一定的實(shí)際含義

以便于對程序功能的理解

(2)程序注釋:在源程序中添加正確的注釋可幫助人們理解程序

程序注釋可分為序言性注釋和功能性注釋

(3)視覺組織:通過在程序中添加一些空格、空行和縮進(jìn)等

使人們在視覺上對程序的結(jié)構(gòu)一目了然

2.數(shù)據(jù)說明的方法

為使程序中的數(shù)據(jù)說明易于理解和維護(hù)

可采用下列數(shù)據(jù)說明的風(fēng)格

見表2-1

數(shù)據(jù)說明風(fēng)格

詳細(xì)說明

次序應(yīng)規(guī)范化

使數(shù)據(jù)說明次序固定

使數(shù)據(jù)的屬性容易查找

也有利于測試、排錯(cuò)和維護(hù)

變量安排有序化

當(dāng)多個(gè)變量出現(xiàn)在同一個(gè)說明語句中時(shí)

變量名應(yīng)按字母順序排序

以便于查找

使用注釋

在定義一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)時(shí)

應(yīng)通過注解來說明該數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)

3.語句的結(jié)構(gòu)程序應(yīng)該簡單易懂

語句構(gòu)造應(yīng)該簡單直接

4.輸入和輸出

考點(diǎn)2結(jié)構(gòu)化程序設(shè)計(jì)

1.構(gòu)化程序設(shè)計(jì)的原則

結(jié)構(gòu)化程序設(shè)計(jì)方法引入了工程思想和結(jié)構(gòu)化思想

使大型軟件的開發(fā)和編程得到了極大的改善

結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則為:自頂向下、逐步求精、模塊化和限制使用got。語句

自頂向上:先考慮整體

再考慮細(xì)節(jié):先考慮全局目標(biāo)

再考慮局部目標(biāo)

逐步求精:對復(fù)雜問題應(yīng)設(shè)計(jì)一些子目標(biāo)作為過渡

逐步細(xì)化

模塊化:把程序要解決的總目標(biāo)分解為分目標(biāo)

再進(jìn)一步分解為具體的小目標(biāo)

把每個(gè)小目標(biāo)稱為一個(gè)模塊

限制使用goto語句:在程序開發(fā)過程中要限制使用goto語句

2.結(jié)構(gòu)化程序的基本結(jié)構(gòu)

結(jié)構(gòu)化程存的基本結(jié)構(gòu)有二種類型:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)

順序結(jié)構(gòu):是最基本、最普通的結(jié)構(gòu)形式

按照程序中的語句行的先后順序逐條執(zhí)行

選擇結(jié)構(gòu):又稱為分支結(jié)構(gòu)

它包括簡單選擇和多分支選擇結(jié)構(gòu)

循環(huán)結(jié)構(gòu):根據(jù)給定的條件

判斷是否要重復(fù)執(zhí)行某一相同的或類似的程序段

循環(huán)結(jié)構(gòu)對應(yīng)兩類循環(huán)語句:先判斷后執(zhí)行的循環(huán)體稱為當(dāng)型循環(huán)結(jié)構(gòu);先執(zhí)行循環(huán)體后判

斷的稱為直到型循環(huán)結(jié)構(gòu)

考點(diǎn)3面向?qū)ο蠓椒?/p>

面向?qū)ο蠓椒êw對象及對象屬性和方法、類、繼承、多態(tài)性幾個(gè)基本要素

(1)對象

通常把對象的操作也稱為方法或服務(wù)

屬性即對象所包含的信息

它在設(shè)計(jì)對象時(shí)確定

一般只能通過執(zhí)行對象的操作來改變

屬性值應(yīng)該指的是純粹的數(shù)據(jù)值

而不能指對象

操作描述了對象執(zhí)行的功能

若通過信息的傳遞

還可以為其他對象使用

對象具有如下特征:標(biāo)識惟一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性

(2)類和實(shí)例

類是具有共同屬性、共同方法的對象的集合

它描述了屬于該對象類型的所有對象的性質(zhì)

而一個(gè)對象則是其對應(yīng)類的一個(gè)實(shí)例

類是關(guān)于對象性質(zhì)的描述

它同對象一樣

包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作

(3)消息

消息是實(shí)例之間傳遞的信息

它請求對象執(zhí)行某一處理或回答某一要求的信息

它統(tǒng)一了數(shù)據(jù)流和控制流

一個(gè)消息由三部分組成:接收消息的對象的名稱、消息標(biāo)識符(消息名)和零個(gè)或多個(gè)參數(shù)

(4)繼承

廣義地說

繼承是指能夠直接獲得已有的性質(zhì)和特征

而不必重復(fù)定義它們

繼承分為單繼承和多重繼承

單繼承是指

一個(gè)類只允許有一個(gè)父類

即類等級為樹形結(jié)構(gòu)

多重繼承是指

一個(gè)類允許有多個(gè)父類

(5)多態(tài)性

對象根據(jù)所接受的消息而做出動作

同樣的消息被不同的對象接受時(shí)可導(dǎo)致完全不同的行動

該現(xiàn)象稱為多態(tài)性

二級C語言公共基礎(chǔ)知識之?dāng)?shù)據(jù)庫

考點(diǎn)1數(shù)據(jù)庫的基本概念

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

描述事物的符號記錄

數(shù)據(jù)庫是長期儲存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合

它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi)

是多種使用數(shù)據(jù)的集成

并可被各個(gè)使用程序所共享

所以數(shù)據(jù)庫技術(shù)的根本目標(biāo)是解決數(shù)據(jù)共享問題

數(shù)據(jù)庫管理系統(tǒng)(DBMS

DatabaseManagementSystem)是數(shù)據(jù)庫的機(jī)構(gòu)

它是一種系統(tǒng)軟件

負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等

數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)系統(tǒng)的核心

為完成數(shù)據(jù)庫管理系統(tǒng)的功能

數(shù)據(jù)庫管理系統(tǒng)提供相應(yīng)的數(shù)據(jù)語言:數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言

考點(diǎn)2數(shù)據(jù)庫系統(tǒng)的發(fā)展和基本特點(diǎn)

1.數(shù)據(jù)庫系統(tǒng)的發(fā)展

數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段

關(guān)于數(shù)據(jù)管理三個(gè)階段中的軟硬件背景及處理特點(diǎn)

簡單概括見表4-1

人工管理階段

文件管理階段

數(shù)據(jù)庫系統(tǒng)管理階段

使用目的

科學(xué)計(jì)算

科學(xué)計(jì)算、管理

大規(guī)模管理

硬件背景

無直接存取設(shè)備

磁盤、磁鼓

大容量磁盤

軟件背景

無操作系統(tǒng)

有文件系統(tǒng)

有數(shù)據(jù)庫管理系統(tǒng)

處理方式

批處理

聯(lián)機(jī)實(shí)時(shí)處理、批處理

分布處理、聯(lián)機(jī)實(shí)時(shí)處理和批處理

點(diǎn)

數(shù)據(jù)管理者

文件系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)面向的對象

某個(gè)使用程序

某個(gè)使用程序

現(xiàn)實(shí)世界

數(shù)據(jù)共享程度

無共享

冗余度大

共享性差

冗余度大

共享性大

冗余度小

數(shù)據(jù)的獨(dú)立性

不獨(dú)立

完全依賴于程序

獨(dú)立性差

具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性

數(shù)據(jù)的結(jié)構(gòu)化

無結(jié)構(gòu)

記錄內(nèi)有結(jié)構(gòu)

整體無結(jié)構(gòu)

整體結(jié)構(gòu)化

用數(shù)據(jù)模型描述

數(shù)據(jù)控制能力

由使用程序控制

使用程序控制

由DBMS提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)

2.數(shù)據(jù)庫系統(tǒng)的特點(diǎn)

數(shù)據(jù)獨(dú)立性是數(shù)據(jù)和程序間的互不依賴性

即數(shù)據(jù)庫中的數(shù)據(jù)獨(dú)立于使用程序而不依賴于使用程序

數(shù)據(jù)的獨(dú)立.性一般分為物理獨(dú)立.性和邏輯獨(dú)立性兩種

(1)物理獨(dú)立性:當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式等)改變時(shí)

如存儲設(shè)備的更換、物理存儲的更換、存取方式改變等

使用程序都不用改變

(2)邏輯獨(dú)立性:數(shù)據(jù)的邏輯結(jié)構(gòu)改變了

如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等

用戶程序都可以不變

考點(diǎn)3數(shù)據(jù)庫系統(tǒng)的內(nèi)部體系結(jié)構(gòu)

1.數(shù)據(jù)統(tǒng)系統(tǒng)的3級模式

(1)概念模式

也稱邏輯模式

是對數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述

是全體用戶(使用)公共數(shù)據(jù)視圖

一個(gè)數(shù)據(jù)庫只有一個(gè)概念模式

(2)外模式

外模式也稱子模式

它是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述

它是由概念模式推導(dǎo)而出來的

是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖

是和某一使用有關(guān)的數(shù)據(jù)的邏輯表示

一個(gè)概念模式可以有若干個(gè)外模式

(3)內(nèi)模式

內(nèi)模式又稱物理模式

它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)和物理存取方法

內(nèi)模式處于最底層

它反映了數(shù)據(jù)在計(jì)算機(jī)物理結(jié)構(gòu)中的實(shí)際存儲形式

概念模式處于中間層

它反映了設(shè)計(jì)者的數(shù)據(jù)全局邏輯要求

而外模式處于最外層

它反映了用戶對數(shù)據(jù)的要求

2.數(shù)據(jù)庫系統(tǒng)的兩級映射

兩級映射保證了數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的獨(dú)立性

(1)概念模式到內(nèi)模式的映射

該映射給出了概念模式中數(shù)據(jù)的全局邏輯結(jié)構(gòu)到數(shù)據(jù)的物理存儲結(jié)構(gòu)間的對應(yīng)關(guān)系;

(2)外模式到概念模式的映射

概念模式是一個(gè)全局模式而外模式是用戶的局部模式

一個(gè)概念模式中可以定義多個(gè)外模式

而每個(gè)外模式是概念模式的一個(gè)基本視圖

考點(diǎn)4數(shù)據(jù)模型的基本概念

【考點(diǎn)精講】

數(shù)據(jù)模型從抽象層次上描述了數(shù)據(jù)庫系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束條件

因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束三部分組成

數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型分為3種:層次模型、網(wǎng)狀模型和關(guān)系模型

各數(shù)據(jù)模型的特點(diǎn)見表42

發(fā)展階段

主要特點(diǎn)

層次模型

用樹形結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系的模型稱為層次模型

上級結(jié)點(diǎn)和下級結(jié)點(diǎn)之間為一對多的聯(lián)系

網(wǎng)狀模型

用網(wǎng)狀結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系的模型稱為網(wǎng)狀模型

網(wǎng)中的每一個(gè)結(jié)點(diǎn)代表一個(gè)實(shí)體類型

允許結(jié)點(diǎn)有多于一個(gè)的父結(jié)點(diǎn)

可以有一個(gè)以上的結(jié)點(diǎn)沒有父結(jié)點(diǎn)

關(guān)系模型

用二維表結(jié)構(gòu)來表示實(shí)體以及實(shí)體之間聯(lián)系的模型稱為關(guān)系模型

在關(guān)系模型中把數(shù)據(jù)看成是二維表中的元素

一張二維表就是一個(gè)關(guān)系

考點(diǎn)5E-R模型

1、E-R模型的基本概念

(1)實(shí)體:現(xiàn)實(shí)世界中的事物可以抽象成為實(shí)體

實(shí)體是概念世界中的基本單位

它們是客觀存在的且又能相互區(qū)別的事物

(2)屬性:現(xiàn)實(shí)世界中事物均有一些特性

這些特性可以用屬性來表示

(3)碼:唯一標(biāo)識實(shí)體的屬性集稱為碼

(4)域:屬性的取值范圍稱為該屬性的域

(5)聯(lián)系:在現(xiàn)實(shí)世界中事物間的關(guān)聯(lián)稱為聯(lián)系

兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系

這種函數(shù)關(guān)系可以有下面幾種:一對一的聯(lián)系、一對多或多對一聯(lián)系、多對多

2、E-R模型的的圖示法,模型用E-R圖來表示

(1)實(shí)體表示法:在E-R圖中用矩形表示實(shí)體集

在矩形內(nèi)寫上該實(shí)

溫馨提示

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

最新文檔

評論

0/150

提交評論