最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

計算機二級考試基礎(chǔ)知識

2022-12-16 16:15 作者:答案鬼  | 我要投稿

計算機二級公共基礎(chǔ)知識



1算法的基本概念

1、算法一般應(yīng)具有以下幾個基本特征:可行性、確定性、有窮性、擁有足夠的情報。

算法是對解題方案的準確而完整的描述,是一組嚴謹?shù)囟x運算順序的規(guī)則,并且每一個規(guī)則都是有效和明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。

2、算法的基本要素

(1)算法中對數(shù)據(jù)的運算和操作。通常有4類:算術(shù)運算,邏輯運算,關(guān)系運算和數(shù)據(jù)傳輸。

(2)算法的控制結(jié)構(gòu)。算法的功能不僅僅取決于所選擇的操作,還與操作之間的執(zhí)行順序及算法的控制結(jié)構(gòu)有關(guān)。

3、算法設(shè)計基本方法

算法設(shè)計的基本方法有列舉法、歸納法和遞推法、遞歸法和減半遞推技術(shù)。

4、算法的復(fù)雜度(在算法正確的前提下,評價算法的標準)

(1)算法的時間復(fù)雜度

算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量。算法的工作量用算法所執(zhí)行的基本運算次數(shù)來度量,而算法所執(zhí)行的基本運算次數(shù)是問題規(guī)模的函數(shù)。

(2)算法的空間復(fù)雜度

算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。

數(shù)據(jù)結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。

數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為4類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)圖是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機有兩種,即順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。

時間復(fù)雜度與空間復(fù)雜度之間沒有必然的聯(lián)系。


2數(shù)據(jù)結(jié)構(gòu)基本概念

1、 數(shù)據(jù)結(jié)構(gòu)是指反映數(shù)據(jù)元素之間的數(shù)年據(jù)元素集合的表示。

2、 所謂數(shù)據(jù)的邏輯結(jié)構(gòu),是指所映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)有兩個要素:一是數(shù)據(jù)元素的集合;二是數(shù)據(jù)元素之間的關(guān)系。

3、 各數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。



3線性表和線性鏈表

1、 線性結(jié)構(gòu)與非線性結(jié)構(gòu)

根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:

(1) 有且只有一個根結(jié)點。(2)每一個結(jié)點最多有一個前件,也最多有一個后件。

則稱該數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu)。

如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字

2、 線性表的基本概念

線性表是由n(n>=0)個數(shù)據(jù)元素

組成的一個有限序列,表中的每一個數(shù)據(jù)元素,除了第一個外,有且只有一個前件,除了最后一個外,有且只有一個后件。

3、線性表的順序存儲結(jié)構(gòu)

線性表的順序存儲結(jié)構(gòu)具有以下兩個基本特點:線性表中所有元素所占的存儲空間是連續(xù)的。線性表中各數(shù)據(jù)元素在存儲結(jié)構(gòu)中,其前后件兩個元素在存儲空間中是緊鄰的,且前件元素一定存儲在后件元素的前面。

在順序存儲結(jié)構(gòu)中,線性表中每一個數(shù)據(jù)元素在計算機存儲空間中的存儲地址由該元素在線性表中的位置序號唯一確定。

3、 線性鏈表

大的線性表,特別是元素變動頻繁的大線性表不宜采用順序存儲結(jié)構(gòu),而應(yīng)采用鏈式存儲結(jié)構(gòu)。

在鏈式存儲結(jié)構(gòu)中,要求每個結(jié)點由兩部分組成:一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域;另一部分用于存放指針,稱為指針域。其中指針于指向該結(jié)點的前一個或后一個結(jié)點。

在鏈式存儲結(jié)構(gòu)稱為線性鏈表。一般來說,在線性表的鏈式存儲結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點的存儲序號是不連續(xù)的,并且各結(jié)點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。棧和隊列也是線性表,也可以采用鏈式存儲結(jié)構(gòu)。

4、 線性鏈表的基本運算

線性鏈表的基本運算有:在非空線性鏈表中尋找包含指定元素值X的前一個結(jié)點P,線性鏈表的插入,線性鏈表的刪除。

5、 循環(huán)鏈表及其基本運算

循環(huán)鏈表的結(jié)構(gòu)與一般的單鏈表相比,具有以下兩個特點:

(1) 在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或者根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。

(2) 循環(huán)鏈表中最后一個結(jié)點的指針域不是空,而是指向表頭結(jié)點。

(3) 在單鏈表中,增加頭結(jié)點的目的是方便運算的實現(xiàn)。

(4) 循環(huán)鏈表的主要優(yōu)點是從表中任一結(jié)點出發(fā)都能訪問到整個鏈表。

⑸ 線性表的順序存儲結(jié)構(gòu)和線性表的鏈式存儲結(jié)構(gòu)分別是隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)

4棧和隊列

棧是限定在一端進行插入與刪除的線性表。棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。棧的運算、退棧運算、讀棧頂元素。

隊列是是允許在一端進行插入、而在另一端進行刪除的線性表。隊列又稱為“先進先出”或“后進后出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則。

所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上環(huán)狀空間,供隊列循環(huán)使用。循環(huán)隊列的初始狀態(tài)為空,即rear=front=m。

循環(huán)隊列主要有兩個基本運算:入隊運算和退隊運算。


5樹與二叉樹

1、 樹的基本概念

樹是一種簡單的非線性結(jié)構(gòu)。樹結(jié)構(gòu)中,每一個結(jié)點只有一個前件,稱為父結(jié)點。在樹中,沒前件的結(jié)點只有一個,稱為樹的根結(jié)點,簡稱為樹的根。在樹結(jié)構(gòu)中,每一個結(jié)點可以有多個后件,它們都稱為該結(jié)點的子結(jié)點。沒有后件的結(jié)點稱為葉子結(jié)點。

在樹結(jié)構(gòu)中,一個結(jié)點所擁有的后件個數(shù)稱為結(jié)點的度。

樹結(jié)構(gòu)具有明顯的層次關(guān)系,樹是是一種層次結(jié)構(gòu)。根結(jié)點在第1層。同一層上所有結(jié)點的所有子結(jié)點在下一層。樹的最大層次稱為樹的深度。

在樹中,以某結(jié)點的一個子結(jié)點為根構(gòu)成的樹稱為該結(jié)點的一棵子樹。要樹中,葉子結(jié)點沒有子樹。

2、 二叉樹的特點

(1) 非空二叉樹只有一個根結(jié)點;每一個結(jié)點最多有兩個棵子樹,且分別稱為該結(jié)點的左子樹與與右子樹。

(2) 在二叉樹中,每一個結(jié)點的度最大為2,即所有子樹(左子樹或右子樹)也均為二叉樹。而樹結(jié)構(gòu)中的每一個結(jié)點的度可以是任意的。另外,二叉樹中的每一個結(jié)點的子樹被明顯地分為左子樹與右子樹。在二叉樹中,一個結(jié)點可以只有左子樹而沒有右子樹,也可以只有右子樹而沒有左子樹。當一個結(jié)點既沒有左子樹也沒有右子樹時,該結(jié)點即是葉子結(jié)點。

3、 二叉樹的性質(zhì)

(1) 在二叉樹的第K層上,最多有2 k-1(k≥1)個結(jié)點。

(2) 深度為m的二叉樹最多有2 m-1個結(jié)點。

(3) 在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。

(4) 具有n個結(jié)點的二叉樹,其深度至少為[log2n]+1,其中[log2n]表示取log2n的整數(shù)部分。

4、 滿二叉樹與完全二叉樹

(1) 滿二叉樹,除最后一層外,每一層上的所有結(jié)點都有兩個子結(jié)點。這就是說,在滿二叉樹中,每一層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第k層上有2 k-1個結(jié)點,且深度為m的滿二叉樹有2 m-1個結(jié)點。

(2) 完全二叉樹。除最后一層外,每一層上的結(jié)點數(shù)均達到最大值;在最后一層上只缺少右邊的若干結(jié)點。

對于完全二叉樹來說,葉子結(jié)點只可能在層次最大的兩層上出現(xiàn);對于任何一個結(jié)點,若其右分支下的子孫結(jié)點的最大層次為p,則其左分支下的子孫結(jié)點的最大層次或為p,或為p+1.

滿二叉樹也是完全二叉樹,而完全二叉樹一般不是滿二叉樹。

具有n個結(jié)點的完全二叉樹的深度為[log2n]+1。

5、 二叉樹的存儲結(jié)構(gòu)

二叉樹通常采用鏈式存儲結(jié)構(gòu)。與線性鏈表類似,用于存儲二叉樹中各元素的存儲結(jié)點也由兩部分組成:數(shù)據(jù)域與指針域。

6、 二叉樹的遍歷 微信公眾號:高校學(xué)習(xí)墻

二叉樹的遍歷是指不重復(fù)地訪問二叉樹中的所有結(jié)點。在遍歷二叉樹的過程中,一般先遍歷左子樹,然后再遍歷右子樹。在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為3種:前序遍歷、中序遍歷、后序遍歷。

(1) 前序遍歷(DLR)。所謂前序遍歷是首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。因此,前序遍歷二叉樹的過程是一個遞歸的過程。

(2) 中序遍歷(LDR)。所謂中序遍歷是首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。因此,中序遍歷二叉樹的過程也是一個遞歸的過程。

(3) 后序遍歷(LRD)。所謂后序遍歷是首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點,并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后右子樹,最后訪問根結(jié)點。因此,后序遍歷二叉樹的過程也是一個遞歸的過程。


6查找技術(shù)

1、順序查找

順序查找又稱順序搜索。順序查找一般是指在線性表中查找指定的元素。

如果線性表中的第一個元素就是被查找的元素,則只需做一次比較就查找成功,最壞的情況是被查元素是線性表中的最后一個元素,或者被查元素在線性表中根本不存在,則為了查找這個元素需要與線性表中所有的元素進行比較。平均情況下,利用順序查找法在線性表中查找一個元素,大約要與線性表中一半的元素進行比較。

2、二分法查找

二分法查找只適用于順序存儲的有序表。

設(shè)有序線性表的長度為n,被查元素為x,則對分查找的方法為:將x與線性表的中間項進行比較,如果中間項的值等于x,則說明查到,查找結(jié)束;如果x小于中間項的值,則在線性表的前半部分以相同的方法進行查找;如果大于中間項的值,則在線性表的后半部分以相同的方法進行查找,這個過程一直進行到查找成功或子表長度為0(說明線性表中沒有該元素)為止。

當有序線性表為順序存儲時才能采用二分查找,效率比順序查找高得多。對于長度為n的有序線性表,在最壞的情況下,二分查找只需要比較log2n次。

最簡單的交換排序方法是冒泡排序法。


7排序技術(shù)

排序是指將一個無序序列整理成按值非遞減順序排序的有序序列。

1、 交換類排序法

交換類排序法是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法。冒泡排序法和快速排序法都屬于交換類的排序方法。

(1) 冒泡排序。假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。

(2) 快速排序??焖倥判蚍ǖ幕舅枷霝椋簭木€性表中選取一個元素,設(shè)為T,將線性表后面小于T的元素移到前面,而前面大于T的元素移到后面,結(jié)果就將線性表分成了兩部分,T插入到分界線的位置處,這個過程稱為線性表的分隔。如果對分割后的各子表再按上述原則進行分割,并且,這種分割過程可以一直做下去,直到所有子表為空為止,則此時的線性表就變成了有序表。

2、 插入排序法

所謂插入排序,是指將無序序列中的各元素依次插入到已經(jīng)有序的線性表中。

(1) 簡單插入排序法。在簡單插入排序中,每一次比較后最多移掉一個逆序,因此,這種排序方法的效率與冒泡排序法相同。在最壞情況下,簡單插入排序需要n(n-1)/2次比較。

(2) 希爾排序法。希爾排序的效率與所選取的增量序列有關(guān)。如果選取上述增量序列,則在最壞情況下,希爾排序所需要的比較次數(shù)為O(n1.5).

3選擇類排序

(1) 簡單選擇排序。簡單選擇排序在最壞情況下需要比較n(n-1)/2次。

(2) 堆排序。在最壞情況下,堆排序需要比較的次數(shù)為O(nlog2n)。

4常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。


8程序設(shè)計方法與風(fēng)格

1、 源程序文檔化

(1) 符號的命名:符號名應(yīng)具有一定的實際含義,以便于對程序功能的理解。

(2) 程序注釋:正確的注釋能夠幫助讀者理解程序。注釋一般分為序言性注釋功能性注釋。

(3) 視覺組織:為使程序的結(jié)構(gòu)一目了然,可以在程序中利用空格、空行、縮進等技巧使程序?qū)哟吻逦?/p>

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

數(shù)據(jù)說明的風(fēng)格一般應(yīng)注意:數(shù)據(jù)說明的次序規(guī)范化;說明語句中變量安排有序化;使用釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。

3、 語言結(jié)構(gòu)

程序應(yīng)簡單易懂,語句構(gòu)造應(yīng)簡單直接。

4、 輸入和輸出

輸入輸出的方式和格式應(yīng)盡可能方便用戶的使用。


9結(jié)構(gòu)化程序設(shè)計

1、 結(jié)構(gòu)化程序設(shè)計的原則

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

(1) 自頂向下:程序設(shè)計時,應(yīng)先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標;先從最上層總目標開始設(shè)計,逐步使問題具體化。

(2) 逐步求精:對復(fù)雜問題,應(yīng)設(shè)計一些子目標作為過渡,逐步細化。

(3) 模塊化:一個復(fù)雜問題,是由若干個簡單問題構(gòu)成的。模塊化是把程序要解決的總目標分解分目標,再進一步分解為具體的小目標,把每一個小目標稱為一個模塊。

(4) 限制使用goto語句:濫用goto語句有害,應(yīng)盡量避免。

2、 結(jié)構(gòu)化程序的基本結(jié)構(gòu)和特點

采用結(jié)構(gòu)化程序設(shè)計方法編寫程序,可使程序結(jié)構(gòu)良好、易讀、易理解、易維護。程序設(shè)計語言僅用順序、選擇、重復(fù)3種基本控制結(jié)構(gòu)就可以表達出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。

(1) 順序結(jié)構(gòu):順序結(jié)構(gòu)是順序執(zhí)行結(jié)構(gòu),所謂順序執(zhí)行,就是按照程序語句行的自然順序,一條語句一條語句地執(zhí)行程序。

(2) 選擇結(jié)構(gòu):又稱為分支結(jié)構(gòu),它包括簡單選擇和多分支選項擇結(jié)構(gòu)。這種結(jié)構(gòu)根據(jù)設(shè)定的條件,判斷應(yīng)該選擇哪一條分支來執(zhí)行相應(yīng)的語句。

(3) 重復(fù)結(jié)構(gòu):又稱循環(huán)結(jié)構(gòu),它根據(jù)給定的條件,判斷是否需要重復(fù)執(zhí)行某一相同的或類似的程序段,利用重復(fù)結(jié)構(gòu)可簡化大量的程序行。重復(fù)結(jié)構(gòu)有兩類循環(huán)語句,先判斷后執(zhí)行循環(huán)體的稱為當型循環(huán)結(jié)構(gòu),先執(zhí)行循環(huán)后判斷的稱為直到型循環(huán)結(jié)構(gòu)。

遵循結(jié)構(gòu)化程序的設(shè)計原則,按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序具有的優(yōu)點為:其一,程序易于理解、使用和維護;其二,提高了編程工作的效率,降低了軟件開發(fā)成本。

3、 結(jié)構(gòu)化程序的設(shè)計原則和方法的應(yīng)用

在結(jié)構(gòu)圖化程序設(shè)計的具體實施中,要注意把握如下因素:

(1) 使用程序設(shè)計語言的順序、選擇、循環(huán)等有限的控制結(jié)構(gòu)表示程序的控制邏輯。

(2) 選用的控制結(jié)構(gòu)只準許有一個入口和一個出口。

(3) 程序語句組成容易識別的塊,每塊只有一個入口和一個出口。

(4) 復(fù)雜結(jié)構(gòu)應(yīng)該應(yīng)用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)。

(5) 語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬。

(6) 嚴格控制goto語句的使用。



10面向?qū)ο蟮某绦蛟O(shè)計

1、 面向?qū)ο蠓椒ǖ闹饕獌?yōu)點

面向?qū)ο蠓椒ǖ闹饕獌?yōu)點為:與人類習(xí)慣的思維方式一致;穩(wěn)定性好;可重用性好;易于開發(fā)大型軟件產(chǎn)品;可維護性好。

2、 面向?qū)ο蠹夹g(shù)的基本概念

(1) 對象。面向?qū)ο蟮某绦蛟O(shè)計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個實體,是構(gòu)成系統(tǒng)的一個基本單位,它由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。

(2) 類和實例。類是具有共同屬性、共同方法的對象的集合。類是對象的抽象,它描述了屬于該對象類型的所有對象的性質(zhì),而一個對象是其對應(yīng)類的一個實例。類同對象一樣,也包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。

(3) 消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。消息的使用類似于函數(shù)調(diào)用,消息中指定了某一個實例,一個操作和一個參數(shù)表。

(4) 繼承。繼承是使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。在面向?qū)ο蠹夹g(shù)中,把類組成具有層次結(jié)構(gòu)的系統(tǒng):一個類的上層可以有父類,下層可以有子類;一個類直接繼承其父類的描述(數(shù)據(jù)和操作)或特性,子類自動地共享基類中定義的數(shù)據(jù)和方法。

(5) 多態(tài)性。對象根據(jù)所接受的信息而做出動作,同樣的消息被不同的對象接受時可導(dǎo)致完全不同的行動,該現(xiàn)象稱為多態(tài)性。更多資料關(guān)注微信公眾號:高校學(xué)習(xí)墻

(6) 面向?qū)ο蠹夹g(shù)中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者對象的和設(shè)計者分開。


11軟件工程基本概念

1、 軟件及軟件工程的定義

軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。

程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的,用程序設(shè)計語言描述的、適合計算機執(zhí)行的指令序列。數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。文檔是與程序開發(fā)、維護和使用有關(guān)的圖文資料。

軟件工程學(xué)是用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法的一門工程學(xué)科。軟件工程是應(yīng)用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。

軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。

2、 軟件生命周期

軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用以及維護等活動。還可將軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。軟件生命周期的主要活動階段是:可行性研究與計劃指定、需求分析、軟件設(shè)計、軟件測試、運行和維護。

3、 軟件開發(fā)工具與軟件開發(fā)環(huán)境

軟件開發(fā)工具與軟件開發(fā)環(huán)境的使用提高了軟件的開發(fā)效率、維護效率和軟件質(zhì)量。

軟件工程的出現(xiàn)是由于軟件危機的出現(xiàn)。

軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于輔助資源。

軟件結(jié)構(gòu)是以模塊化為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。


12結(jié)構(gòu)化分析方法

1、 需求分析與需求分析方法

軟件需求是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過程。

需求分析階段的工作,可概括為以下幾方面:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審。

常見的需求分析方法有結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒ā?/p>

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

結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計理論在軟件需求分析階段的運用。結(jié)構(gòu)化分析方法是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

結(jié)構(gòu)化分析的常用工具有數(shù)據(jù)流圖、數(shù)字字典、判斷樹、判斷表。

(1) 數(shù)據(jù)流圖(DFD)。數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素如下圖。

第一個是加工(轉(zhuǎn)換);第二個是數(shù)據(jù)流;第三個是存儲文件(數(shù)據(jù)源);第四個是源(潭)。

建立數(shù)據(jù)流圖的步驟:由外向里,自頂向下,逐層分解。

(2) 數(shù)據(jù)字典(DD)。數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。數(shù)據(jù)字典是對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表。數(shù)據(jù)字典的作用是對數(shù)據(jù)流圖中出現(xiàn)的被命名的圖形元素的確切解釋。數(shù)據(jù)字典包含的信息有名稱、別名、何處使用如何使用、內(nèi)容描述、補充信息等。

(3) 數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項,是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)項,也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過程的輸入或輸出;數(shù)據(jù)存儲,處理過程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計算機文件;處理過程

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

軟件需求規(guī)格說明書把在軟件計劃中確定的軟件范圍加以展開,制定出完整的信息描述、詳細的功能說明、恰當?shù)臋z驗標準以及其他與要求有關(guān)的數(shù)據(jù)。


13結(jié)構(gòu)化設(shè)計方法

1、 軟件設(shè)計的基本概念

從技術(shù)觀點來看,軟件設(shè)計包括結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計。從工程管理角度來看,軟件設(shè)計分兩步完全,即概要設(shè)計和詳細設(shè)計。

2、 軟件設(shè)計的基本原理

衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準。耦合性是模塊間互相聯(lián)結(jié)的緊密程度的度量。內(nèi)聚性是一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度量。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合

3、 概要設(shè)計

概要設(shè)計也稱總體設(shè)計。軟件概要設(shè)計的任務(wù)是:設(shè)計軟件系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計、編寫概要設(shè)計文檔、概要設(shè)計文檔評審。

常用的軟件設(shè)計工具為程序結(jié)構(gòu)圖。

典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。

設(shè)計準則:提高模塊獨立性;模塊規(guī)模適中;深度、寬度、扇入和扇出適當;使模塊的作用域在該模塊的控制域內(nèi);應(yīng)減少模塊的接口和界面的復(fù)雜性;設(shè)計成單入口、單出口的模塊;設(shè)計功能可預(yù)測的模塊。

4、 詳細設(shè)計

詳細設(shè)計為軟件結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié)。

設(shè)計工具:圖形工具(程序流程圖、N-S、PAD、HIPO)、表格工具(判定表)、語言工具(偽碼)。

結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是程序易讀性。

軟件的過程設(shè)計是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。

軟件設(shè)計模塊化的目的是降低復(fù)雜性。

結(jié)構(gòu)化分析方法主要包括:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structured analysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD-Jackson system development method)和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Data structured system development method)。


14軟件測試

1、 軟件測試方法和技術(shù)

軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,其主要過程涵蓋了整個軟件生命期的過程。

若從是否需要執(zhí)行被測軟件的角度劃分,軟件測試方法和技術(shù)可以分為靜態(tài)測試和動態(tài)測試方法。若按照功能劃分,可以分為黑盒測試和白盒測試。

(1) 白盒測試

白盒測試方法也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試把測試對象看做一個打開的盒子,允許測試人員利用程序內(nèi)部進行,主要用于完成軟件內(nèi)部操作的驗證。

白盒測試的基本原則:保證所測模塊中每一獨立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測模塊中每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。

白盒測試的主要方法有邏輯覆蓋、基本路徑測試等。

(2) 黑盒測試方法

黑盒測試方法也稱功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明。黑盒測試在軟件接口處進行。

黑盒測試主要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯誤。

黑盒測試的主要診斷方法有等價類劃分法、邊界分析法、錯誤推測法、因果圖法等,主要用于軟件確認測試。

2、 軟件測試的實施

軟件測試一般按4個步驟進行,即單元測試、集成測試、確認測試和系統(tǒng)測試。通過這些步驟的實施來驗證軟件是否合格,能否交付用戶使用。

軟件測試的目標是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定;調(diào)試也稱排錯,它是一個與測試有聯(lián)系又有區(qū)別的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。


15程序的調(diào)試

程序進行了成功的測試之后進入調(diào)試階段,程序調(diào)試是診斷和改正程序中潛在的錯誤。調(diào)試主要在開發(fā)階段。

程序的調(diào)試活動由兩部分組成,一是根據(jù)錯誤的跡象確定程序中錯誤的確切性質(zhì)、原因和位置。二是對程序進行修改,排除錯誤。

程序調(diào)試的基本步驟為:錯誤定位,修改設(shè)計和代碼,進行回歸測試。

軟件調(diào)試的方法從是否跟蹤和執(zhí)行程序的角度,可分為靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試主要指通過人的思維來分析源程序代碼和排錯,是主要的調(diào)試手段,而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試的。

主要的調(diào)試方法為:強行排錯法,回溯法,原因排除法。


16數(shù)據(jù)庫系統(tǒng)的基本概念

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

(1) 數(shù)據(jù)。數(shù)據(jù)是描述事物的符號記錄。

(2) 數(shù)據(jù)庫。數(shù)據(jù)庫是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。

(3) 數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)是位于用戶與操作系統(tǒng)之間的一個數(shù)據(jù)管理軟件。負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等。

(4) 數(shù)據(jù)庫管理系統(tǒng)提供給用戶的接口是宿主語言。

(5) 數(shù)據(jù)庫管理員。由于數(shù)據(jù)庫的共享性,因此對數(shù)據(jù)庫的規(guī)劃、設(shè)計、維護、監(jiān)視等需要有專人管理,稱他們?yōu)閿?shù)據(jù)管理員。主要工作有數(shù)據(jù)庫設(shè)計、數(shù)據(jù)庫維護、改善系統(tǒng)性能和提高系統(tǒng)效率等。

(6) 數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫系統(tǒng)(Database Sytem,DBS)由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)管理員(人員)、硬件平臺(系統(tǒng)平臺之一)和軟件平臺(系統(tǒng)平臺之一)5部分組成。在數(shù)據(jù)庫系統(tǒng)中,硬件平臺包括:計算機和網(wǎng)絡(luò),軟件平臺包括:操作系統(tǒng)數(shù)據(jù)庫開發(fā)工具和接口軟件。

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

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

數(shù)據(jù)管理的發(fā)展經(jīng)歷了3個階段:

(1) 人工管理階段主要用于科學(xué)計算,硬件沒有磁盤,數(shù)據(jù)被直接存取,軟件沒有操作系統(tǒng)。

(2) 文件系統(tǒng)階段具有簡單的數(shù)據(jù)共享和數(shù)據(jù)管理能力,無法提供統(tǒng)一的、完整的管理和數(shù)據(jù)共享能力。

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

數(shù)據(jù)庫系統(tǒng)階段具有以下特點:

1、 數(shù)據(jù)的集成性:采用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)方式:按照多個應(yīng)用的需要組織全局的統(tǒng)一的數(shù)據(jù)結(jié)構(gòu);每個應(yīng)用的數(shù)據(jù)是全局結(jié)構(gòu)中的一部分。

2、 數(shù)據(jù)的高共享性與低冗余性:數(shù)據(jù)共享可減少數(shù)制冗余及存儲空間,避免數(shù)據(jù)的不一致。

3、 數(shù)據(jù)獨立性:這是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。數(shù)據(jù)獨立性分為物理獨立性和邏輯獨立性。

4、 數(shù)據(jù)統(tǒng)一管理與控制:主要包含3個主面,即數(shù)據(jù)的完整性檢查、數(shù)據(jù)的安全性保護和并發(fā)控制。數(shù)據(jù)的恢復(fù)。

5、 安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯誤發(fā)生;恢復(fù):當數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,使數(shù)據(jù)庫能恢復(fù)到正確的狀態(tài)。

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

數(shù)據(jù)庫的三級模式:概念模式、外模式、內(nèi)模式。

數(shù)據(jù)庫的二級映射:概念模式到內(nèi)模式的映射,外模式到概念模式的映射。

內(nèi)模式是能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方式。

外模式是用戶的數(shù)據(jù)視圖。也就是用戶所見到的數(shù)據(jù)模式。

概念模式是數(shù)據(jù)庫系統(tǒng)中全局邏輯結(jié)構(gòu)的描述,是全體用戶的公共數(shù)據(jù)視圖。

數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

數(shù)據(jù)元素之間邏輯關(guān)系的整體稱為邏輯結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)的組織形式。

分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是數(shù)據(jù)冗余。而具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復(fù)制透明性、分布性。

為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是匯編語言。

(DDL)是數(shù)據(jù)描述語言,(DML)數(shù)據(jù)操縱語言。

關(guān)系的完整性約束指關(guān)系的某種約束條件,包括實體完整性、參照完整性和用戶定義的完整性。其中,前兩種完整性約束由關(guān)系數(shù)據(jù)庫系統(tǒng)自動支持。

17數(shù)據(jù)模型(數(shù)據(jù)庫設(shè)計的核心)

1、 數(shù)據(jù)模型的基本概念

數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型是數(shù)據(jù)特征的抽象。數(shù)據(jù)模型所描述的內(nèi)容有3個部分:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,分別是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型

概念模型與具體的數(shù)據(jù)庫管理系統(tǒng)無關(guān),與具體的計算機平臺無關(guān)。較為有名的概念模型有E-R模型、擴充的E-R模型、面向?qū)ο竽P图爸^詞模型等。

邏輯數(shù)據(jù)模型又稱數(shù)據(jù)模型,是一種面向數(shù)據(jù)庫系統(tǒng)的模型。概念模型只有在轉(zhuǎn)換成數(shù)據(jù)模型后才能在數(shù)據(jù)庫中得以表示。大量使用過的邏輯數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型(堅實理論基礎(chǔ))和面向?qū)ο竽P?/strong>。

物理數(shù)據(jù)模型又稱物理模型,它是一種面向計算機物理表示的模型,此模型給出了數(shù)據(jù)模型在計算機上物理結(jié)構(gòu)的表示。

2、E-R模型

(1)E-R模型的基本概念

現(xiàn)實世界中的事物可以抽象成為實體,實體是概念世界中的基本單位,它們是客觀存在的且又能相互區(qū)別的事物。凡是有共性的實體可組成一個集合,稱為實體集。

屬性刻畫了實體的特征。一個實體可以有若干個屬性。每個屬性可以有值,一個屬性的取值范圍稱為該屬性的值域或值集。

(2)實體間的聯(lián)系

實體集間的聯(lián)系可以歸結(jié)為3類:

a) 一對一的聯(lián)系,簡記為1:1。

b) 一對多的聯(lián)系,簡記為M:1(m:1)或1:M(1:m)。

c) 多對多的聯(lián)系,簡記為M:N或m:n。

(3)E-R模型的圖示法

E-R模型可以用一種直觀圖的形式來表示,這種圖稱為E-R圖。

(4)一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為一元關(guān)系。

3、層次模型

層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),自頂向下,層次分明。由于層次模型形成早,受文件系統(tǒng)影響大,模型受限制多,物理成分復(fù)雜,操作與使用均不理想,且不適用于表示非層次性的聯(lián)系。

4、 網(wǎng)狀模型

網(wǎng)狀模型是不加任何條件限制的無向圖。網(wǎng)狀模型在數(shù)據(jù)表示和數(shù)據(jù)操縱方面比層次模型更高效、更成熟。但網(wǎng)狀模型在使用時涉及系統(tǒng)內(nèi)部的物理因素較多,用戶使用操作并不方便,其數(shù)據(jù)模式與系統(tǒng)實現(xiàn)也不甚理想。

5、 關(guān)系模型

(1) 關(guān)系的數(shù)據(jù)結(jié)構(gòu)

關(guān)系模型采用二維來表示,簡稱表。二維表由表框架和表的元組組成。表框架由n個命名的屬性組成,每個屬性有一個取值范圍稱為值域。在框架中按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。

在二維表中能唯一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。表A中的某屬性集是某表B的鍵,則稱為該屬性集為A的外鍵或外碼。

表中一定要有鍵,如果表中所有屬性的子集均不是鍵,則表中屬性的全集必為鍵。在關(guān)系元組的分量中允許出現(xiàn)空值表示信息空缺。主鍵中不允許出現(xiàn)空值。

關(guān)系框架與關(guān)系元組構(gòu)成一個關(guān)系。一個語義相關(guān)的關(guān)系集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。關(guān)系的框架稱為關(guān)系模式,而語義相關(guān)的關(guān)系模式集合構(gòu)成了關(guān)系數(shù)據(jù)庫模式。

關(guān)系模式支持子模式,關(guān)系子模式是關(guān)系數(shù)據(jù)庫模式中用戶所見到的那部分數(shù)據(jù)模式的描述。關(guān)系子模式也是二維表結(jié)構(gòu),關(guān)系子模式對應(yīng)用戶數(shù)據(jù)庫稱為視圖。

(2) 關(guān)系的操縱

關(guān)系模型的數(shù)據(jù)操縱,即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有查詢、增加、刪除及修改4種。

(3) 關(guān)系中的數(shù)據(jù)約束

關(guān)系模型允許定義3類數(shù)據(jù)約束,它們是實體完整性約束、參照完整性約束和用戶完整性約束。

18關(guān)系代數(shù)

關(guān)系數(shù)據(jù)庫系統(tǒng)建立在數(shù)學(xué)理論的基礎(chǔ)之上,使用關(guān)系代數(shù)可以表示關(guān)系模型的數(shù)據(jù)操作。由于操作是對關(guān)系的運算,而關(guān)系是有序組的集合,因此,可以將操作看成是集合的運算。

1、 關(guān)系模型的基本運算

(1) 插入

設(shè)有關(guān)系R需插入若干元組,要插入的元組組成關(guān)系R`,則插入可用集合并運算表示為R并R`。

(2) 刪除

設(shè)有關(guān)系R需刪除若干元組,要刪除的元組組成關(guān)系R`,則刪除可用集合差運算表示為R-R`。

(3) 修改

修改關(guān)系R內(nèi)的元組內(nèi)容可以用下面的方法實現(xiàn):設(shè)需修改的元組構(gòu)成關(guān)系R`,則先作刪除得R-R`。設(shè)修改后的元組構(gòu)成關(guān)系R``,此時將其插入即得到結(jié)果:(R-R`)U R’’。

(4) 查詢

投影運算:投影運算是在給定關(guān)系的某些域上進行的運算。經(jīng)過投影運算后,會取消某些,而且有可能出現(xiàn)一些重復(fù)元組。

選擇運算:關(guān)系R通過選擇運算后,由R中滿足邏輯條件的元組組成。

笛卡兒運算:對于兩個關(guān)系的合并操作可以用笛卡兒積表示。設(shè)有n元關(guān)系R及m元關(guān)系S,它們分別有p、q個元組,則關(guān)系R與S經(jīng)笛卡兒積記為RXS.該關(guān)系是一個n+m元關(guān)系,元組個數(shù)是pXq,由R與S的有序組組合而成。

2、 關(guān)系代數(shù)中的擴充運算

(1) 交運算。關(guān)系R與S經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S

(2) 除運算。當關(guān)系T=RXS時,則可將除運算寫為T/R=S。設(shè)有關(guān)系T、S,T能被R除的充分必要條件是:T中的域包含R中的所有屬性;T中有一些域不出現(xiàn)在R中。在除運算中S的域由T中那些不出現(xiàn)在R中的域所組成。

(3) 連接與自然連接運算。連接運算又可稱為

連接運算,通過它可以將兩個關(guān)系合并成一個大關(guān)系。

注意:投影、選擇、連接是從二維表的列的方向來進行運算。

19數(shù)據(jù)庫設(shè)計與管理

數(shù)據(jù)庫設(shè)計目前一般采用生命周期法,即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)分解成目標獨立的若干階段。它們是:需求分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運行階段、進一步修改階段。

1、 數(shù)據(jù)庫設(shè)計的需求分析

需求分析階段的任務(wù)是通過詳細調(diào)查現(xiàn)實世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。

分析和表達用戶的需求,經(jīng)常采用的方法有結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆椒?。結(jié)構(gòu)化分析方法用自頂向下、逐層分解的的方式分析系統(tǒng)。數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關(guān)系,數(shù)據(jù)字典對系統(tǒng)中數(shù)據(jù)的詳盡描述是各類數(shù)據(jù)屬性的清單。數(shù)據(jù)字典是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它包含5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程。數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)設(shè)計過程中不斷修改、充實、完善的。

2、 數(shù)據(jù)庫的概念設(shè)計

(1) 數(shù)據(jù)庫概念設(shè)計

數(shù)據(jù)庫概念設(shè)計的目的是分析數(shù)據(jù)間內(nèi)的語義關(guān)聯(lián),在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。數(shù)據(jù)庫概念設(shè)計的方法有兩種:集中式模式設(shè)計法:視圖集成設(shè)計法以下。

(2) 數(shù)據(jù)庫概念設(shè)計的過程

使用E-R模型與視圖集成法進行設(shè)計時,需要按以下步驟進行:首先選擇局部應(yīng)用,再進行局部視圖進行集成得到概念模式。

3、 數(shù)據(jù)庫的邏輯設(shè)計

(1) 從E-R圖向關(guān)系模式轉(zhuǎn)換

將E-R圖轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換方法如下:

一個實體型轉(zhuǎn)換為一個關(guān)系模式。

一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端(一般為全部參與方)對應(yīng)的關(guān)系模式合并。

一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。

一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。

3個或3個以上實體間的多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。

具有相同碼的關(guān)系模式可合并。

(2) 邏輯模式規(guī)范化

在關(guān)系數(shù)據(jù)庫設(shè)計中經(jīng)常存在的問題有:數(shù)據(jù)冗余、插入異常、刪除異常和更新異常。

數(shù)據(jù)庫規(guī)范化的目的在于消除數(shù)據(jù)冗余和插入、刪除、更新異常。規(guī)范化理論有4個范式,從第一范式一第四范式的規(guī)范化程度逐漸升高。

(3) 關(guān)系視圖設(shè)計

關(guān)系視圖又稱為外模式設(shè)計。關(guān)系視圖是在關(guān)系模式基礎(chǔ)上所設(shè)計的直接面向操作用戶的視圖,它可以根據(jù)用戶需求隨時創(chuàng)建。

4、 數(shù)據(jù)庫的物理設(shè)計

數(shù)據(jù)庫物理設(shè)計的主要目標是對數(shù)據(jù)庫內(nèi)部物理結(jié)構(gòu)作調(diào)整并選擇合理的存取路徑,以提高數(shù)據(jù)庫訪問速度及有效利用存儲空間。

5、 數(shù)據(jù)庫管理

數(shù)據(jù)庫管理包括數(shù)據(jù)庫的建立、調(diào)整、重組、安全性與完整性控制、故障恢復(fù)和監(jiān)控。

6、 數(shù)據(jù)庫的建立包括數(shù)據(jù)模式的建立和數(shù)據(jù)加載。

定義指向整型元素的指針變量形式為:int*指針變量名。定義指向整型一維數(shù)組的行指針形式為:int(*指針變量名[長度],定義指向返回值為整型的函數(shù)的指針變量的形式為:int(*函數(shù)名)(),定義返回值為指向整型的指針型函數(shù)的形式為:int *函數(shù)名()。本題定義的是一個返回值為指針型的函數(shù)f()。

程序設(shè)計語言的基本成分是數(shù)據(jù)成分、運算成分、控制成分和傳輸成分。

SQL語言又稱為結(jié)構(gòu)化查詢語言。

C語言的函數(shù)可以嵌套調(diào)用

構(gòu)成C程序的基本單位是函數(shù)

常用的存儲表示方法有4種,順序存儲、鏈式存儲、索引存儲、散列存儲。其中,順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置也相鄰的存儲單元中。

軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境,其主體內(nèi)容是軟件開發(fā)方法學(xué)。軟件工程管理包括:軟件管理學(xué)、軟件工程經(jīng)濟學(xué),以及軟件心理學(xué)等內(nèi)容。

在關(guān)系操作中,所有操作對象與操作結(jié)果都是關(guān)系。而關(guān)系定義為元數(shù)相同的元組的集合。因此,關(guān)系操作的特點是集合操作。

在一般系統(tǒng)中,一個float型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位),一個double型數(shù)據(jù)占8個字節(jié)。

ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語句中的ORDER子句中。



計算機二級考試基礎(chǔ)知識的評論 (共 條)

分享到微博請遵守國家法律
通辽市| 凌云县| 建瓯市| 马尔康县| 台前县| 武穴市| 横峰县| 韩城市| 改则县| 江油市| 永兴县| 集贤县| 马公市| 榆中县| 崇阳县| 江川县| 得荣县| 郎溪县| 桃园县| 晋宁县| 漳州市| 类乌齐县| 临高县| 岢岚县| 通辽市| 获嘉县| 乌苏市| 福州市| 家居| 莒南县| 隆子县| 侯马市| 同江市| 炎陵县| 阿克苏市| 夏津县| 贵港市| 基隆市| 丹东市| 常州市| 中方县|