久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

計(jì)算機(jī)二級(jí)Python公共基礎(chǔ)部分

 昵稱A4812 2019-02-27

  1. 公共基礎(chǔ)知識(shí)不單獨(dú)考試,與其他二級(jí)科目組合在一起,作為二級(jí)科目考核內(nèi)容的一部分,。
  2. 考試方式為上機(jī)考試,10 道選擇題,占 10 分。

1. 基本數(shù)據(jù)結(jié)構(gòu)與算法

1.1 算法的基本概念

算法是一種設(shè)計(jì)好的計(jì)算序列,,用來(lái)解決一類問(wèn)題,。
算法復(fù)雜的包括:時(shí)間復(fù)雜度和空間復(fù)雜度。時(shí)間復(fù)雜度指計(jì)算工作量,,空間復(fù)雜度指內(nèi)存空間的要求,。

綜合起來(lái):如果一個(gè)算法的執(zhí)行次數(shù)是 T(n),那么只保留最高次項(xiàng),,同時(shí)忽略最高項(xiàng)的系數(shù)后得到函數(shù) f(n),,此時(shí)算法的時(shí)間復(fù)雜度就是 O(f(n))。為了方便描述,,下文稱此為 大O推導(dǎo)法,。

  • 對(duì)于一個(gè)循環(huán),假設(shè)循環(huán)體的時(shí)間復(fù)雜度為 O(n),,循環(huán)次數(shù)為 m,,則這個(gè)
    循環(huán)的時(shí)間復(fù)雜度為 O(n×m),。
void aFunc(int n) {
    for(int i = 0; i < n; i++) {         // 循環(huán)次數(shù)為 n
        printf("Hello, World!\n");      // 循環(huán)體時(shí)間復(fù)雜度為 O(1)
    }
}

此時(shí)時(shí)間復(fù)雜度為 O(n × 1),即 O(n),。

  • 對(duì)于多個(gè)循環(huán),,假設(shè)循環(huán)體的時(shí)間復(fù)雜度為 O(n),各個(gè)循環(huán)的循環(huán)次數(shù)分別是a, b, c…,,則這個(gè)循環(huán)的時(shí)間復(fù)雜度為 O(n×a×b×c…),。分析的時(shí)候應(yīng)該由里向外分析這些循環(huán)。
void aFunc(int n) {
    for(int i = 0; i < n; i++) {         // 循環(huán)次數(shù)為 n
        for(int j = 0; j < n; j++) {       // 循環(huán)次數(shù)為 n
            printf("Hello, World!\n");      // 循環(huán)體時(shí)間復(fù)雜度為 O(1)
        }
    }
}

此時(shí)時(shí)間復(fù)雜度為 O(n × n × 1),,即 O(n^2),。

  • 對(duì)于順序執(zhí)行的語(yǔ)句或者算法,,總的時(shí)間復(fù)雜度等于其中最大的時(shí)間復(fù)雜度,。
void aFunc(int n) {
    // 第一部分時(shí)間復(fù)雜度為 O(n^2)
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            printf("Hello, World!\n");
        }
    }
    // 第二部分時(shí)間復(fù)雜度為 O(n)
    for(int j = 0; j < n; j++) {
        printf("Hello, World!\n");
    }
}

此時(shí)時(shí)間復(fù)雜度為 max(O(n^2), O(n)),即 O(n^2),。

  • 對(duì)于條件判斷語(yǔ)句,,總的時(shí)間復(fù)雜度等于其中 時(shí)間復(fù)雜度最大的路徑 的時(shí)間復(fù)雜度,。
void aFunc(int n) {
    if (n >= 0) {
        // 第一條路徑時(shí)間復(fù)雜度為 O(n^2)
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < n; j++) {
                printf("輸入數(shù)據(jù)大于等于零\n");
            }
        }
    } else {
        // 第二條路徑時(shí)間復(fù)雜度為 O(n)
        for(int j = 0; j < n; j++) {
            printf("輸入數(shù)據(jù)小于零\n");
        }
    }
}

此時(shí)時(shí)間復(fù)雜度為 max(O(n^2), O(n)),即 O(n^2),。

空間復(fù)雜度(Space Complexity)

S(n)定義為該算法所耗費(fèi)的存儲(chǔ)空間,,它也是問(wèn)題規(guī)模n的函數(shù)。漸近空間復(fù)雜度也常常簡(jiǎn)稱為空間復(fù)雜度,。
空間復(fù)雜度(Space Complexity)是對(duì)一個(gè)算法在運(yùn)行過(guò)程中臨時(shí)占用存儲(chǔ)空間大小的量度,。一個(gè)算法在計(jì)算機(jī)存儲(chǔ)器上所占用的存儲(chǔ)空間,包括:

  • 存儲(chǔ)算法本身所占用的存儲(chǔ)空間
  • 算法的輸入輸出數(shù)據(jù)所占用的存儲(chǔ)空間
  • 算法在運(yùn)行過(guò)程中臨時(shí)占用的存儲(chǔ)空間

算法的輸入輸出數(shù)據(jù)所占用的存儲(chǔ)空間是由要解決的問(wèn)題決定的,,是通過(guò)參數(shù)表由調(diào)用函數(shù)傳遞而來(lái)的,,它不隨本算法的不同而改變。存儲(chǔ)算法本身所占用的存儲(chǔ)空間與算法書(shū)寫(xiě)的長(zhǎng)短成正比,,要壓縮這方面的存儲(chǔ)空間,,就必須編寫(xiě)出較短的算法。算法在運(yùn)行過(guò)程中臨時(shí)占用的存儲(chǔ)空間隨算法的不同而異,,有的算法只需要占用少量的臨時(shí)工作單元,,而且不隨問(wèn)題規(guī)模的大小而改變,我們稱這種算法是“就地"進(jìn)行的,,是節(jié)省存儲(chǔ)的算法,,如這一節(jié)介紹過(guò)的幾個(gè)算法都是如此;有的算法需要占用的臨時(shí)工作單元數(shù)與解決問(wèn)題的規(guī)模n有關(guān),,它隨著n的增大而增大,,當(dāng)n較大時(shí),將占用較多的存儲(chǔ)單元,例如將在第九章介紹的快速排序和歸并排序算法就屬于這種情況,。

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

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

程序=數(shù)據(jù)結(jié)構(gòu)+算法

計(jì)算機(jī)科學(xué)中,,數(shù)據(jù)結(jié)構(gòu)(datastructure)是計(jì)算機(jī)中存儲(chǔ)、組織數(shù)據(jù)的方式,。指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來(lái)更高的運(yùn)行或者存儲(chǔ)效率,。

  1. 數(shù)據(jù)的邏輯結(jié)構(gòu)
    反映數(shù)據(jù)元素之間的關(guān)系的數(shù)據(jù)元素集合的表示,。數(shù)據(jù)的邏輯結(jié)構(gòu)包括集合、線形結(jié)構(gòu),、樹(shù)形結(jié)構(gòu)和圖形結(jié)構(gòu)四種
  2. 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)
    數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間種的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),。常用的存儲(chǔ)結(jié)構(gòu)有順序,、鏈接、索引等存儲(chǔ)結(jié)構(gòu),。

常見(jiàn)的數(shù)據(jù)結(jié)構(gòu):

數(shù)組(Array)
堆棧(Stack)
隊(duì)列(Queue)
鏈表(Linked List)
樹(shù)(Tree)
圖(Graph)
堆(Heap)
散列表(Hash)
線性結(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)。

1.3 線性表

線性表的定義
線性表(Linear List)是由n(n≥0)個(gè)數(shù)據(jù)元素(結(jié)點(diǎn))a[0],,a[1],,a[2]…,a[n-1]組成的有限序列,。

  • 數(shù)據(jù)元素的個(gè)數(shù)n定義為表的長(zhǎng)度 = “l(fā)ist”.length() (“l(fā)ist”.length() = 0(表里沒(méi)有一個(gè)元素)時(shí)稱為空表)
  • 將非空的線性表(n>=0)記作:(a[0],,a[1],a[2],,…,,a[n-1])
  • 數(shù)據(jù)元素a[i](0≤i≤n-1)只是個(gè)抽象符號(hào),其具體含義在不同情況下可以不同

常見(jiàn)的線性表有順序表鏈表
順序表是線性表的順序存儲(chǔ)結(jié)構(gòu),,指的是用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表的數(shù)據(jù)元素,。
順序表常見(jiàn)操作*(括號(hào)中為算法平均時(shí)間復(fù)雜度,沒(méi)有寫(xiě)明的具體復(fù)雜度依賴不同算法和運(yùn)算規(guī)則)*:

插入(O(n)),、刪除(O(n)),、查找、排序,、分解,、合并、復(fù)制(O(n)),、逆轉(zhuǎn)(O(n))

1.4 棧和隊(duì)列

棧實(shí)際上也是一個(gè)線性表,,只不過(guò)是一種特殊的線性表。棧是只能在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,,通常稱插入,、刪除這一端為棧頂(TOP),,另一端為棧底(BOTTOM)。當(dāng)表中沒(méi)有元素時(shí)稱為???。 棧頂元素總是后被插入(入棧)的元素,從而也是最先被移除(出棧)的元素,;棧底元素總是最先被插入的元素,,從而也是最后才能被移除的元素。所以棧是個(gè)**后進(jìn)先出(LIFO)**的數(shù)據(jù)結(jié)構(gòu)

棧的基本運(yùn)算有三種:入棧,、出棧與讀棧頂,,時(shí)間復(fù)雜度都是O(1)

隊(duì)列

隊(duì)列是只允許在一端刪除,在另一端插入的順序表,,允許刪除的一端叫做隊(duì)頭,,用對(duì)頭指針 front 指向?qū)︻^元素的下一個(gè)元素,允許插入的一端叫做隊(duì)尾,,用隊(duì)尾指針 rear 指向隊(duì)列中的隊(duì)尾元素,,因此,從排頭指針 front 指向的下一個(gè)位置直到隊(duì)尾指針 rear 指向的位置之間所有的元素均為隊(duì)列中的元素,。隊(duì)列的修改是 先進(jìn)先出(FIFO) ,。往隊(duì)尾插入一個(gè)元素稱為入隊(duì)運(yùn)算。從對(duì)頭刪除一個(gè)元素稱為退隊(duì)運(yùn)算,。

隊(duì)列主要有兩種基本運(yùn)算:入隊(duì)運(yùn)算和退隊(duì)運(yùn)算,,復(fù)雜度都是O(1)

1.5 鏈表

鏈表指線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

  • 單鏈表
    一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素,,因此,,為了表示每個(gè)數(shù)據(jù)元素 ai 與其直接后繼數(shù)據(jù)元素 ai+1 之間的邏輯關(guān)系,對(duì)數(shù)據(jù)元素 ai 來(lái)說(shuō),,除了存儲(chǔ)其本身的信息(數(shù)據(jù)域)之外,,還需存儲(chǔ)一個(gè)變量指示其直接后繼的信息(指針域)。這兩部分信息組成數(shù)據(jù)元素 ai 的存儲(chǔ)映象,,稱為結(jié)點(diǎn),。N 個(gè)結(jié)點(diǎn)鏈結(jié)成一個(gè)鏈表。該鏈表就是傳統(tǒng)的單向鏈表,。

有時(shí),,我們?cè)趩捂湵淼牡谝粋€(gè)結(jié)點(diǎn)之前附設(shè)一個(gè)結(jié)點(diǎn),稱之為頭結(jié)點(diǎn),,它指向表中第一個(gè)結(jié)點(diǎn),。頭結(jié)點(diǎn)的數(shù)據(jù)域可 以不存儲(chǔ)任何信息,也可存儲(chǔ)如線性表的長(zhǎng)度等類的附加信息,頭結(jié)點(diǎn)的指針域存儲(chǔ)指向第一個(gè)結(jié)點(diǎn)的指針,。在單鏈表中,,取得第 I 個(gè)數(shù)據(jù)元素必須從頭指針出發(fā)尋找,因此,,鏈表是非隨機(jī)存取的存儲(chǔ)結(jié)構(gòu),。

  • 循環(huán)鏈表
    以上提到的鏈表指針域只包括一個(gè)指針,指向下一個(gè)數(shù)據(jù)的地址,,如果我們將鏈表最后一個(gè)結(jié)點(diǎn)指針域的指針指向鏈表的頭結(jié)點(diǎn)地址,,就構(gòu)成了一個(gè)環(huán)狀的存儲(chǔ)結(jié)構(gòu),我們稱作循環(huán)鏈表,。

  • 雙向鏈表
    當(dāng)然我們可以給每個(gè)結(jié)點(diǎn)的指針域再添加一個(gè)指針,,使其指向前一個(gè)數(shù)據(jù)結(jié)點(diǎn)的地址,這樣就構(gòu)成了雙向鏈表,,而將頭結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)指向尾結(jié)點(diǎn),,同時(shí)將尾結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)指向頭結(jié)點(diǎn)就構(gòu)成了雙向循環(huán)鏈表。

如果鏈表的尾結(jié)點(diǎn)的指針域指向了該鏈表之前的任意一個(gè)結(jié)點(diǎn),,我們稱該鏈表為有環(huán)鏈表。環(huán)形鏈表就是其中一個(gè)特例
常見(jiàn)操作:

插入(O(n)),、刪除(O(n)),、查找、排序,、分解,、合并、復(fù)制(O(n)),、逆轉(zhuǎn)

1.6 樹(shù)和二叉樹(shù)

  • 樹(shù)
    樹(shù)是一種簡(jiǎn)單的非線性結(jié)構(gòu),。在樹(shù)這種數(shù)據(jù)結(jié)構(gòu)中,所有數(shù)據(jù)元素之間的關(guān)系具有明顯的層次特性,。 在樹(shù)結(jié)構(gòu)中,,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),。沒(méi)有前件的結(jié)點(diǎn)只有一個(gè),,稱為樹(shù)的根結(jié)點(diǎn),簡(jiǎn)稱樹(shù)的根,。每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,,稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒(méi)有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn),。 在樹(shù)結(jié)構(gòu)中,,一個(gè)結(jié)點(diǎn)所擁有的后件的個(gè)數(shù)稱為該結(jié)點(diǎn)的,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。樹(shù)的最大層次稱為樹(shù)的深度,。

  • 二叉樹(shù)
    每一個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),,且分別稱為該結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)。
    二叉樹(shù)性質(zhì)

  1. ···
  2. ···
  3. 完全二叉樹(shù)和滿二叉樹(shù)
  • 二叉樹(shù)的儲(chǔ)存結(jié)構(gòu)
    與線性鏈表類似,,用于存儲(chǔ)二叉樹(shù)中各元素的存儲(chǔ)結(jié)點(diǎn)也由兩部分組成:數(shù)據(jù)域和指針域,。但在二叉樹(shù)中,由于每一個(gè)元素可以有兩個(gè)后件(即兩個(gè)子結(jié)點(diǎn)),,因此,,用于存儲(chǔ)二叉樹(shù)的存儲(chǔ)結(jié)點(diǎn)的指針域有兩個(gè):一個(gè)用于指向該結(jié)點(diǎn)的左子結(jié)點(diǎn)的存儲(chǔ)地址,稱為左指針域,;另一個(gè)用于指向該結(jié)點(diǎn)的右子結(jié)點(diǎn)的存儲(chǔ)地址,,稱為右指針域

  • 二叉樹(shù)的遍歷
    二叉樹(shù)的遍歷是指不重復(fù)地訪問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn),。二叉樹(shù)的遍歷可以分為以下三種:

  1. 前序遍歷(DLR):
    若二叉樹(shù)為空,,則結(jié)束返回。否則:首先訪問(wèn)根結(jié)點(diǎn),,然后遍歷左子樹(shù),,最后遍歷右子樹(shù);并且,,在遍歷左右子樹(shù)時(shí),,仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),,最后遍歷右子樹(shù),。
  2. 中序遍歷(LDR):
    若二叉樹(shù)為空,則結(jié)束返回,。否則:首先遍歷左子樹(shù),,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù),;并且,,在遍歷左、右子樹(shù)時(shí),,仍然先遍歷左子樹(shù),,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù),。
  3. 后序遍歷(LRD):
    若二叉樹(shù)為空,,則結(jié)束返回。否則:首先遍歷左子樹(shù),,然后遍歷右子樹(shù),,最后訪問(wèn)根結(jié)點(diǎn),,并且,在遍歷左,、右子樹(shù)時(shí),,仍然先遍歷左子樹(shù),然后遍歷右子樹(shù),,最后訪問(wèn)根結(jié)點(diǎn),。

1.7 查找

  1. 順序查找與二分查找
  • 順序查找
    從表中的第一個(gè)元素開(kāi)始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,,直到兩者相符,,查到所要找的元素為止。否則就是表中沒(méi)有要找的元素,,查找不成功,。
  • 二分查找
    先確定待查找記錄所在的范圍,然后逐步縮小范圍,,直到找到或確認(rèn)找不到該記錄為止,。注意二分法應(yīng)用的前提是有順序儲(chǔ)存結(jié)構(gòu)的有序表
  1. 基本排序算法
  • 交換類排序
  • 選擇類排序
  • 插入類排序

二 程序設(shè)計(jì)基礎(chǔ)

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

程序的設(shè)計(jì)風(fēng)格強(qiáng)調(diào)清晰第一,效率第二

w=input('please input your weight/Kg: ')#輸入用戶體重和身高
h=input('please input your height/m: ')
weight=float(w)#input函數(shù)默認(rèn)為輸入字符串,,因此需要轉(zhuǎn)化為浮點(diǎn)數(shù)
height=float(h)
bmi=round((weight/height**2),2)#計(jì)算公式,,同時(shí)用round函數(shù)控制小數(shù)位
#bmi_str=str(bmi)
#print('your BMI value is :'+bmi_str)#兩種不同的輸出字符串和數(shù)字組合的方法
print ("your BMI value is : ",bmi)
if bmi<18.5:#循環(huán)過(guò)程中依然強(qiáng)調(diào)冒號(hào)和縮進(jìn)
    print('you are too light!')#注意python語(yǔ)言不能層層縮進(jìn)
elif bmi<25:
    print ('you are very healthy!')
elif bmi<28:
    print('you are over weight.')
elif bmi<32:
    print('you are obesity.')
else :
    print('Severe obesity!!!')

需要考慮到的因素:

  1. 源程序的文檔化
  • 符號(hào)化的命名
  • 程序的注釋:包括序言性注釋和功能性注釋
  • 視覺(jué)組織:利用空格、空行,、縮進(jìn)使得代碼層次更為清晰
  1. 數(shù)據(jù)說(shuō)明
  • 數(shù)據(jù)說(shuō)明的次序規(guī)范化,;
  • 說(shuō)明語(yǔ)句中變量安排有序化;
  • 使用注釋來(lái)說(shuō)明復(fù)雜數(shù)據(jù)的結(jié)構(gòu),。
  1. 語(yǔ)句的結(jié)構(gòu)
  • 在一行內(nèi)只寫(xiě)一條語(yǔ)句,;
  • 程序編寫(xiě)應(yīng)優(yōu)先考慮清晰性
  • 避免過(guò)多的臨時(shí)變量,,提高可讀性,;
  • 盡量使用庫(kù)函數(shù);
  • 盡量實(shí)現(xiàn)模塊化,,且保持模塊功能單一,;
  1. 輸入和輸出

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

  1. 自頂向下:程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,,后考慮細(xì)節(jié),;先考慮全局目標(biāo),
    后考慮局部目標(biāo),。不要一開(kāi)始就過(guò)多追求眾多的細(xì)節(jié),,先從最上層總目標(biāo)開(kāi)始設(shè)
    計(jì),逐步使問(wèn)題具體化,。
  2. 逐步求精:對(duì)復(fù)雜問(wèn)題,,應(yīng)設(shè)計(jì)一些子目標(biāo)作過(guò)渡,,逐步細(xì)化。
  3. 模塊化:一個(gè)復(fù)雜問(wèn)題,,肯定是由若干稍簡(jiǎn)單的問(wèn)題構(gòu)成,。模塊化是把程
    序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),,把每個(gè)小目標(biāo)
    稱為一個(gè)模塊,。
  4. 限制使用 goto 語(yǔ)句:以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難

基本結(jié)構(gòu)

  • 順序結(jié)構(gòu):一種簡(jiǎn)單的程序設(shè)計(jì),,即按照程序語(yǔ)句行的自然順序,,一條語(yǔ)句
    一條語(yǔ)句地執(zhí)行程序,它是最基本,、最常用的結(jié)構(gòu),。
  • 選擇結(jié)構(gòu):又稱分支結(jié)構(gòu),包括簡(jiǎn)單選擇和多分支選擇結(jié)構(gòu),,可根據(jù)條件,,
    判斷應(yīng)該選擇哪一條分支來(lái)執(zhí)行相應(yīng)的語(yǔ)句序列。
  • 重復(fù)結(jié)構(gòu):又稱循環(huán)結(jié)構(gòu),,可根據(jù)給定的條件,,判斷是否需要重復(fù)執(zhí)行某一
    相同的或類似的程序段。

2.3 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)象,方法,屬性及繼承與多態(tài)性

客觀世界中任何一個(gè)事物都可以被看成是一個(gè)對(duì)象,,面向?qū)ο蠓椒ǖ谋举|(zhì)就是主
張從客觀世界固有的事物出發(fā)來(lái)構(gòu)造系統(tǒng),,提倡人們?cè)诂F(xiàn)實(shí)生活中常用的思維來(lái)
認(rèn)識(shí)、理解和描述客觀事物,,強(qiáng)調(diào)最終建立的系統(tǒng)能夠映射問(wèn)題域,。也就是說(shuō),
系統(tǒng)中的對(duì)象及對(duì)象之間的關(guān)系能夠如實(shí)地反映問(wèn)題域中固有的事物及其關(guān)系,。
面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn):

  • 與人類習(xí)慣的思維方法一致,;
  • 穩(wěn)定性好;
  • 可重用性好,;
  • 易于開(kāi)發(fā)大型軟件產(chǎn)品;
  • 可維護(hù)性好

面向?qū)ο蟮某绦蛟O(shè)計(jì)主要考慮的是提高軟件的可重用性,。

對(duì)象

一個(gè)對(duì)象由對(duì)象名、屬性和操作三部分組一個(gè)對(duì)象由對(duì)象名,、屬性和操作三部分組成
1) 對(duì)象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?,可以用?lái)表示客觀世界中的任何實(shí)體,對(duì)象是實(shí)體的抽象,。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中的對(duì)象是系統(tǒng)是構(gòu)成系統(tǒng)的一個(gè)基本單位,,由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。對(duì)象是屬性和方法的封裝體,。
2) 屬性即對(duì)象所包含的信息,,它在設(shè)計(jì)對(duì)象時(shí)確定,,一般只能通過(guò)執(zhí)行對(duì)象的操作來(lái)改變。
3) 操作描述了對(duì)象執(zhí)行的功能,,操作也稱為方法或服務(wù),。操作是對(duì)象的動(dòng)態(tài)屬性。

對(duì)象的特點(diǎn)

1)標(biāo)識(shí)惟一性,。指對(duì)象是可區(qū)分的,,并且由對(duì)象的內(nèi)在本質(zhì)來(lái)區(qū)分,而不是
通過(guò)描述來(lái)區(qū)分,;
2)分類性,。指可以將具有相同屬性的操作的對(duì)象抽象成類;
3)多態(tài)性,。指同一個(gè)操作可以是不同對(duì)象的行為,;
4)封裝性。從外面看只能看到對(duì)象的外部特性,,即只需知道數(shù)據(jù)的取值范圍
和可以對(duì)該數(shù)據(jù)施加的操作,,根本無(wú)需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算
法。對(duì)象的內(nèi)部,,即處理能力的實(shí)行和內(nèi)部狀態(tài),,對(duì)外是不可見(jiàn)的。從外面不能
直接使用對(duì)象的處理能力,,也不能直接修改其內(nèi)部狀態(tài),,對(duì)象的內(nèi)部狀態(tài)只能由
其自身改變。通過(guò)對(duì)象的封裝性可以實(shí)現(xiàn)信息隱蔽,。
5)模塊獨(dú)立性好,。對(duì)象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對(duì)
這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,,而且對(duì)象是以數(shù)據(jù)為中心的,,操作圍繞對(duì)
其數(shù)據(jù)所需做的處理來(lái)設(shè)置,沒(méi)有無(wú)關(guān)的操作,。從模塊的獨(dú)立性考慮,,對(duì)象內(nèi)部
各種元素彼此結(jié)合得很緊密,,內(nèi)聚性強(qiáng),。

其他

1)類是指具有共同屬性、共同方法的對(duì)象的集合,。所以類是對(duì)象的抽象,,對(duì)象是對(duì)應(yīng)類的一個(gè)實(shí)例。
2)消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,。消息的組成包括:
接收消息的對(duì)象的名稱,;
消息標(biāo)識(shí)符,,也稱消息名;
零個(gè)或多個(gè)參數(shù)
*
P.S. 在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過(guò)發(fā)送消息,。
3)繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義他們,。繼承分單繼承和多重繼承,。單繼承指一個(gè)類只允許有一個(gè)父類,多重繼承指一個(gè)類允許有多個(gè)父類,。

三 軟件工程基礎(chǔ)

3.1 軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開(kāi)發(fā)環(huán)境

軟件

計(jì)算機(jī)軟件是包括程序,、數(shù)據(jù)及相關(guān)文檔的完整集合
1)軟件是一種邏輯實(shí)體,而不是物理實(shí)體,,具有抽象性,;
2)軟件的生產(chǎn)與硬件不同,它沒(méi)有明顯的制作過(guò)程,;
3)軟件在運(yùn)行,、使用期間不存在磨損、老化問(wèn)題,;
4)軟件的開(kāi)發(fā),、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制,,這導(dǎo)致了軟件移植的問(wèn)題,;
5)軟件復(fù)雜性高,成本昂貴,;

軟件工程

軟件工程是應(yīng)用于計(jì)算機(jī)軟件的定義,、開(kāi)發(fā)和維護(hù)的一整套方法、工具,、文檔,、實(shí)踐標(biāo)準(zhǔn)和工序。
軟件工程的主要思想是將工程化原則運(yùn)用到軟件開(kāi)發(fā)過(guò)程,,它包括 3 個(gè)要素:方法,、工具和過(guò)程。方法是完成軟件工程 項(xiàng)目的技術(shù)手段,;工具是支持軟件的開(kāi)發(fā),、管理、文檔生成,;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制,、管理。

軟件生命周期

*軟件產(chǎn)品從提出,、實(shí)現(xiàn),、使用維護(hù)到停止使用退役的過(guò)程,。*軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段:
1)軟件定義階段:包括制定計(jì)劃和需求分析,。
制定計(jì)劃:確定總目標(biāo),;可行性研究;探討解決方案,;制定開(kāi)發(fā)計(jì)劃,。
需求分析:對(duì)待開(kāi)發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義。
2)軟開(kāi)發(fā)階段:
軟件設(shè)計(jì):分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)部分,。
軟件實(shí)現(xiàn):把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,。
軟件測(cè)試:在設(shè)計(jì)測(cè)試用例的基礎(chǔ)上檢驗(yàn)軟件的各個(gè)組成部分。
3)軟件運(yùn)行維護(hù)階段:軟件投入運(yùn)行,,并在使用中不斷地維護(hù),,進(jìn)行必要的擴(kuò)
充和刪改。

軟件開(kāi)發(fā)工具

軟件開(kāi)發(fā)工具的完善和發(fā)展將促使軟件開(kāi)發(fā)方法的進(jìn)步和完善,,促進(jìn)軟件開(kāi)發(fā)的高速度和高質(zhì)量,。軟件開(kāi)發(fā)工具的發(fā)展是從單項(xiàng)工具的開(kāi)發(fā)逐步向集成工具發(fā)展的,軟件開(kāi)發(fā)工具為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境,。同時(shí),,軟件開(kāi)發(fā)方法的有效應(yīng)用也必須得到相應(yīng)工具的支持,否則方法將難以有效的實(shí)施,。

軟件開(kāi)發(fā)環(huán)境

軟件開(kāi)發(fā)環(huán)境(或稱軟件工程環(huán)境)是全面支持軟件開(kāi)發(fā)全過(guò)程的軟件工具集合,。計(jì)算機(jī)輔助軟件工程(CASE,Computer Aided Software Engineering)將各種軟件工具,、開(kāi)發(fā)機(jī)器和一個(gè)存放開(kāi)發(fā)過(guò)程信息的中心數(shù)據(jù)庫(kù)組合起來(lái),,形成軟件工程環(huán)境它將極大降低軟件開(kāi)發(fā)的技術(shù)難度并保證軟件開(kāi)發(fā)的質(zhì)量。

3.2 結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)

結(jié)構(gòu)化方法的核心和基礎(chǔ)是結(jié)構(gòu)化程序設(shè)計(jì)理論包括1)結(jié)構(gòu)化需求分析方法,;2)面向?qū)ο蟮姆治龇椒ā?br> 結(jié)構(gòu)化分析方法的實(shí)質(zhì):著眼于數(shù)據(jù)流,,自頂向下,逐層分解,,建立系統(tǒng)的處理流程,,以數(shù)據(jù)流圖數(shù)據(jù)字典判定樹(shù)為主要工具,,建立系統(tǒng)的邏輯模型,。

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

以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過(guò)程,它反映了系統(tǒng)必須完成的邏輯功能,,是結(jié)構(gòu)化分析方法中用于表示系統(tǒng)邏輯模型的一種工具,。
數(shù)據(jù)流圖示例
加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出,。(圓形)
數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,,一般在旁邊標(biāo)注數(shù)據(jù)流名,。(箭頭)
存儲(chǔ)文件(數(shù)據(jù)源):表示處理過(guò)程中存放各種數(shù)據(jù)的文件。(雙下劃線)
源,,潭:表示系統(tǒng)和環(huán)境的接口,,屬系統(tǒng)之外的實(shí)體。(方框)

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

對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,,以及精確的,、嚴(yán)格的定義,使得用戶和系統(tǒng)分析員對(duì)于輸入,、輸出,、存儲(chǔ)成分和中間計(jì)算結(jié)果有共同的理解。

  • 數(shù)據(jù)字典的作用是對(duì)數(shù)據(jù)流圖中出現(xiàn)的被命名的圖形元素的確切解釋,。
  • 數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心,。

3.3 結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)

軟件設(shè)計(jì)基礎(chǔ)

結(jié)構(gòu)設(shè)計(jì):定義軟件系統(tǒng)各主要部件之間的關(guān)系。
數(shù)據(jù)設(shè)計(jì):將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義,。
接口設(shè)計(jì):描述軟件內(nèi)部,、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。
過(guò)程設(shè)計(jì):把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過(guò)程性描述,。從工程角度來(lái)看,,軟件設(shè)計(jì)分兩步完成,即概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),。
概要設(shè)計(jì):又稱結(jié)構(gòu)設(shè)計(jì),,將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級(jí)接口,、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫(kù)模式,。
詳細(xì)設(shè)計(jì):確定每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)

基本原理

軟件設(shè)計(jì)的基本原理包括:抽象,、模塊化,、信息隱蔽和模塊獨(dú)立性。
1)抽象:一種思維工具,,就是把事物本質(zhì)的共同特性提取出來(lái)而不考慮其他細(xì)節(jié),。
2)模塊化:解決一個(gè)復(fù)雜問(wèn)題時(shí)自頂向下逐步把軟件系統(tǒng)劃分成一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又不相互關(guān)聯(lián)的模塊的過(guò)程,。
3)信息隱蔽:每個(gè)模塊的實(shí)施細(xì)節(jié)對(duì)于其他模塊來(lái)說(shuō)是隱蔽的,。
4)模塊獨(dú)立性:軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡(jiǎn)單的,。
模塊的耦合性內(nèi)聚性是衡量軟件的模塊獨(dú)立性的兩個(gè)定性指標(biāo),。

總體設(shè)計(jì)

軟件概要設(shè)計(jì)的基本任務(wù)是:1)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu);2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì);
3)編寫(xiě)概要設(shè)計(jì)文檔,;4)概要設(shè)計(jì)文檔評(píng)審,。

詳細(xì)設(shè)計(jì)

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

3.4 軟件測(cè)試的方法,白盒測(cè)試與黑盒測(cè)試,測(cè)試用例設(shè)計(jì),軟件測(cè)試的實(shí)施,單元測(cè)試,、集成測(cè)試和系統(tǒng)測(cè)試

使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別,。

軟件測(cè)試方法

  • 靜態(tài)測(cè)試:包括代碼檢查,、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量,。不實(shí)際運(yùn)行軟件,,主要通過(guò)人工進(jìn)行。
  • 動(dòng)態(tài)測(cè)試:是基于計(jì)算機(jī)的測(cè)試,,主要包括白盒測(cè)試方法和黑盒測(cè)試方法,。

白盒測(cè)試

白盒測(cè)試方法也稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。它是根據(jù)軟件產(chǎn)品的內(nèi)部工作過(guò)程,,檢查內(nèi)部成分,,以確認(rèn)每種內(nèi)部操作符合設(shè)計(jì)規(guī)格要求。
白盒測(cè)試的基本原則:保證所測(cè)模塊中每一獨(dú)立路徑至少執(zhí)行一次,;保證所測(cè)模塊所有判斷的每一分支至少執(zhí)行一次,;保證所測(cè)模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,。

黑盒測(cè)試

黑盒測(cè)試方法也稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,。黑盒測(cè)試是對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測(cè)試和驗(yàn)證。黑盒測(cè)試主要診斷功能不對(duì)或遺漏,、接口錯(cuò)誤,、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤、性能錯(cuò)誤,、初始化和終止條件錯(cuò)誤,。黑盒測(cè)試不關(guān)心程序內(nèi)部的邏輯,只是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例,。

測(cè)試用例

測(cè)試用例是指對(duì)一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測(cè)試任務(wù)的描述,,體現(xiàn)測(cè)試方案、方法,、技術(shù)和策略,。一個(gè)好的測(cè)試用例能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤。

3.5 程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試

程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤,,主要在開(kāi)發(fā)階段進(jìn)行,,調(diào)試程序應(yīng)該由編制源程序的程序員來(lái)完成。程序調(diào)試的基本步驟:
(1)錯(cuò)誤定位;(2)糾正錯(cuò)誤,;(3)回歸測(cè)試(防止引入新的錯(cuò)誤)
靜態(tài)調(diào)試:程序在運(yùn)行到某一個(gè)狀態(tài)的時(shí)候,,讓它暫停,用工具查看程序此時(shí)的運(yùn)行信息,,比如某個(gè)變量的數(shù)值,;查看完成后,,讓程序繼續(xù)運(yùn)行,,恢復(fù)到正常的工作。
動(dòng)態(tài)調(diào)試:在程序中,,添加日志信息(log),,在程序運(yùn)行的時(shí)候,將log指定的信息輸出到調(diào)試的電腦上,。整個(gè)過(guò)程不會(huì)打斷程序的運(yùn)行,。

四、 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)

4.1 數(shù)據(jù)庫(kù)的基本概念:數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)

數(shù)據(jù)庫(kù)(database)

數(shù)據(jù)的集合,,具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),,是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享,。數(shù)據(jù)庫(kù)存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,,具有集成與共享的特點(diǎn),亦即是數(shù)據(jù)庫(kù)集中了各種應(yīng)用的數(shù)據(jù),,進(jìn)行統(tǒng)一的構(gòu)造和存儲(chǔ),,而使它們可被不同應(yīng)用程序所使用。

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

一種系統(tǒng)軟件,,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織,、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù),、控制及保護(hù)和數(shù)據(jù)服務(wù)等,,是數(shù)據(jù)庫(kù)的核心。

數(shù)據(jù)庫(kù)系統(tǒng)(DBS)

由數(shù)據(jù)庫(kù)(數(shù)據(jù)),、數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件),、數(shù)據(jù)庫(kù)管理員(人員)、硬件平臺(tái)(硬件),、軟件平臺(tái)(軟件)五個(gè)部分構(gòu)成的運(yùn)行實(shí)體,。

4.2 數(shù)據(jù)模型,實(shí)體聯(lián)系模型及 E-R 圖,從 E-R 圖導(dǎo)出關(guān)系數(shù)據(jù)模型

數(shù)據(jù)模型的概念:是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征,、動(dòng)態(tài)行為和約束條件,,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表示與操作提供一個(gè)抽象的框架。主要內(nèi)容包括:
1)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)是所研究的對(duì)象類型的集合,包括與數(shù)據(jù)類型,、內(nèi)容,、性質(zhì)有關(guān)的對(duì)象,以及與數(shù)據(jù)之間聯(lián)系有關(guān)的對(duì)象,。它用于描述系統(tǒng)的靜態(tài)特性,。
2)數(shù)據(jù)操作:數(shù)據(jù)操作是對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作的集合,包括操作的含義,、符號(hào),、操作規(guī)則及實(shí)現(xiàn)操作的語(yǔ)句等。它用于描述系統(tǒng)的動(dòng)態(tài)特性,。
3)數(shù)據(jù)的約束條件:數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合,。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符號(hào)數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)及狀態(tài)的變化,,以保證數(shù)據(jù)的正確,、有效和相容。

實(shí)體聯(lián)系模型及 E-R 圖

1)實(shí)體:現(xiàn)實(shí)世界中的事物,。(矩形)
2)屬性:事物的特性,。(橢圓形)
3)聯(lián)系:現(xiàn)實(shí)世界中事-間的關(guān)系。(菱形)
示例
數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型,、網(wǎng)狀模型和關(guān)系模型三種,。

4.3 關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影,、連接運(yùn)算,數(shù)據(jù)庫(kù)規(guī)范化理論

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

1,、關(guān)系的數(shù)據(jù)結(jié)構(gòu)
關(guān)系是由若干個(gè)不同的元組所組成,因此關(guān)系可視為元組的集合,。n 元關(guān)系是一個(gè) n 元有序組的集合,。
關(guān)系模型的基本運(yùn)算:1)插入;2)刪除,;3)修改,;4)查詢(包括投影、選擇,、笛卡爾積運(yùn)算),。
2、關(guān)系操縱
關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,,一般有查詢,、增加、刪除和
修改四種操作,。

集合運(yùn)算及選擇,、投影,、連接運(yùn)算

(1)并(∪):關(guān)系 R 和 S 具有相同的關(guān)系模式,R 和 S 的并是由屬于 R 或?qū)儆?S 的元組構(gòu)成的集合,。
(2)差(-):關(guān)系 R 和 S 具有相同的關(guān)系模式,,R 和 S 的差是由屬于 R 但不屬于 S 的元組構(gòu)成的集合。
(3)交(∩):關(guān)系 R 和 S 具有相同的關(guān)系模式,,R 和 S 的交是由屬于 R 且屬于 S 的元組構(gòu)成的集合,。
(4)廣義笛卡爾積(×):設(shè)關(guān)系 R 和 S 的屬性個(gè)數(shù)分別為 n、m,,則 R 和 S 的廣義笛卡爾積是一個(gè)有(n+m)列的元組的集合,。每個(gè)元組的前 n 列來(lái)自 R 的一個(gè)元組,后m 列來(lái)自 S的一個(gè)元組,,記為 R×S,。

4. 數(shù)據(jù)庫(kù)設(shè)計(jì)方法和步驟:需求分析,、概念設(shè)計(jì),、邏輯設(shè)計(jì)和物理設(shè)計(jì)的相關(guān)策略

數(shù)據(jù)庫(kù)設(shè)計(jì)階段包括:需求分析、概念分析,、邏輯設(shè)計(jì),、物理設(shè)計(jì)。
數(shù)據(jù)庫(kù)設(shè)計(jì)的每個(gè)階段都有各自的任務(wù):
1)需求分析階段:這是數(shù)據(jù)庫(kù)設(shè)計(jì)的第一個(gè)階段,,任務(wù)主要是收集和分析數(shù)據(jù),,這一階段收集到的基礎(chǔ)數(shù)據(jù)和數(shù)據(jù)流圖是下一步設(shè)計(jì)概念結(jié)構(gòu)的基礎(chǔ)。
2)概念設(shè)計(jì)階段:分析數(shù)據(jù)間內(nèi)在語(yǔ)義關(guān)聯(lián),,在此基礎(chǔ)上建立一個(gè)數(shù)據(jù)的抽象模型,,即形成 E-R 圖。(數(shù)據(jù)庫(kù)概念設(shè)計(jì)的過(guò)程包括選擇局部應(yīng)用,、視圖設(shè)計(jì)和視圖集成)
3)邏輯設(shè)計(jì)階段:將 E-R 圖轉(zhuǎn)換成指定 RDBMS 中的關(guān)系模式,。
4)物理設(shè)計(jì)階段:對(duì)數(shù)據(jù)庫(kù)內(nèi)部物理結(jié)構(gòu)作調(diào)整并選擇合理的存取路徑,以提高數(shù)據(jù)庫(kù)訪問(wèn)速度及有效利用存儲(chǔ)空間,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多