國二公共基礎知識_第1頁
國二公共基礎知識_第2頁
國二公共基礎知識_第3頁
國二公共基礎知識_第4頁
國二公共基礎知識_第5頁
已閱讀5頁,還剩88頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

公共基礎知識算法與數(shù)據(jù)結(jié)構(gòu)程序設計基礎軟件工程數(shù)據(jù)庫基礎1.算法的概念、算法時間復雜度及空間復雜度的概念2.數(shù)據(jù)結(jié)構(gòu)的定義、數(shù)據(jù)邏輯結(jié)構(gòu)及物理結(jié)構(gòu)的定義3.棧的定義及其運算、線性鏈表的存儲方式4.樹與二叉樹的概念、二叉樹的基本性質(zhì)、完全二叉樹的概念、二叉樹的遍歷5.查找6.排序第一章算法與數(shù)據(jù)結(jié)構(gòu)一、算法的基本概念

1、算法:解題方案的準確而完整的描述,包括解決問題的方法和步驟

算法≠程序≠計算方法

2、算法的基本特征:⑴可行性:算法中描述的操作都是可以通過已經(jīng)實現(xiàn)的基本運算的有限次數(shù)來實現(xiàn)

⑵確定性:算法的每個步驟必須明確定義,不允許有多義性。⑶有窮性:指算法必須能在有限的時間內(nèi)做完(即算法的運行時間有限)。⑷擁有足夠的情報:指運算對象的初始輸入要完備且正確1.1算法二、算法復雜度1、時間復雜度:執(zhí)行算法所需要的計算工作量2、空間復雜度:執(zhí)行算法所需要的內(nèi)存空間(存儲空間)。注意:1)時間復雜度通過算法所執(zhí)行的基本運算次數(shù)來度量

2)空間復雜度的內(nèi)存空間主要用于:內(nèi)存空間算法程序初始數(shù)據(jù)運行過程中所需的額外空間執(zhí)行過程的工作單元附加空間3)時間復雜度和空間復雜度不相關4)算法的效率與問題的規(guī)模和數(shù)據(jù)的存儲結(jié)構(gòu)都是息息相關的。算法習題(1)算法是指()A.查詢方法B.交工方法C.解題方案的準確而完整的描述D.排序方法(2)算法的有窮性是指:A.算法程序的運行時間是有限的B.算法程序所處理的數(shù)據(jù)量是有限的C.算法程序的長度是有限的D.算法程序只能被有限的用戶使用(3)算法的時間復雜度是指()A.算法的執(zhí)行時間

B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令數(shù)

D.算法在執(zhí)行過程中所需要的基本運算次數(shù)(4)下列敘述中正確的是()A.一個算法的空間復雜度大,則其時間復雜度也必定大B.一個算法的空間復雜度大,則其時間復雜度也必定小C.一個算法的時間復雜度大,則其空間復雜度也必定大D.上述三種說法都不對1.2數(shù)據(jù)結(jié)構(gòu)一、數(shù)據(jù)結(jié)構(gòu)的基本概念1、數(shù)據(jù)結(jié)構(gòu):是抽象地研究數(shù)據(jù)的組織形式及其相互關系的一門學科。

數(shù)據(jù)的結(jié)構(gòu)分為:

(1)物理結(jié)構(gòu):也被稱為“存儲結(jié)構(gòu)”,是指數(shù)據(jù)在計算機存儲介質(zhì)中真正存儲的結(jié)構(gòu)。

(2)邏輯結(jié)構(gòu):反映數(shù)據(jù)元素之間邏輯關系的數(shù)據(jù)結(jié)構(gòu)2、數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容:邏輯結(jié)構(gòu)、物理結(jié)構(gòu)(即存儲結(jié)構(gòu))和算法。注意:邏輯結(jié)構(gòu)和物理結(jié)構(gòu)沒有必然的聯(lián)系,也不一定是一一對應的。二、數(shù)據(jù)的邏輯結(jié)構(gòu):

反映數(shù)據(jù)元素之間邏輯關系的數(shù)據(jù)結(jié)構(gòu)。1、線性結(jié)構(gòu):⑴有且僅有一個根結(jié)點⑵每個結(jié)點最多只有一個前件,也最多只有一個后件。例如:主要有線性表、棧、隊列、串等。

前后件關系2、非線性結(jié)構(gòu):該結(jié)構(gòu)中一個結(jié)點可能有多個前件或后件。主要有樹和圖等。FCEGDABPH三、數(shù)據(jù)的存儲結(jié)構(gòu)指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式(邏輯結(jié)構(gòu)在計算機中的表示)1、順序存儲:邏輯上相鄰的數(shù)據(jù)元素,在物理存儲位置上也相鄰。2、鏈式存儲:邏輯上相鄰的元素其物理位置不一定相鄰,元素間的邏輯關系由附加的指針字段表示。注意:1)一種邏輯結(jié)構(gòu)可以表示成多種存儲結(jié)構(gòu)

2)存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率例題:下列敘述中正確的是:A、程序執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關B、程序執(zhí)行效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行效率只取決于所處理的數(shù)據(jù)量D、以上三種說法都不對1.3、線性表1、線性表的定義線性表是n(n≥0)個數(shù)據(jù)元素a1,a2,……,an

的有序集合。線性表是一種線性結(jié)構(gòu),每個元素在表中的位置僅取決于元素本身的序號。n為線性表的長度,n為0的表稱為空表。學號姓名語文數(shù)學計算機980001張三708069980002吳軍897698980003王平878776980004李帆768689無后件無前件a1a2a3…aiai+1…an…特點:⑴線性表中所有元素所占的存儲空間是連續(xù)的⑵線性表中各數(shù)據(jù)元素在存儲空間中是按照邏輯順序依次存放的⑶可以隨機訪問

缺點:插入和刪除運算不方便;由于要求占用連續(xù)的存儲空間,存儲分配只能預先進行2、線性表的存儲結(jié)構(gòu)(1)線性表的順序存儲結(jié)構(gòu):當線性表采用順序存儲結(jié)構(gòu)時,稱之為順序表。即用一組地址連續(xù)的存儲單元依次存放線性表的數(shù)據(jù)元素。在程序設計語言中,通常定義一個一維數(shù)組來表示線性表的順序存儲空間。⑴順序表的插入:要在第i(1≤i≤n)個元素之前插入一個新元素時,需要移動n-i+1個元素⑵順序表的刪除:要刪除第i(1≤i≤n)個元素時,需要移動n-i個元素真題:下列有關順序存儲結(jié)構(gòu)的敘述中,不正確的是:

A、存儲密度大

B、邏輯上相鄰的結(jié)點物理上不必鄰接

C、可以通過計算機直接確定第i個結(jié)點的存儲地址

D、插入、刪除操作不方便

用一組任意的存儲單元(可以是連續(xù)的,也可以不連續(xù))來存儲線性表的各個數(shù)據(jù)元素。數(shù)據(jù)元素(稱為結(jié)點)的存儲結(jié)構(gòu)由兩部分組成:一部分用于存儲數(shù)據(jù)元素本身的信息(稱為數(shù)據(jù)域),另一部分用于存儲直接后繼的存儲位置(稱為指針域),如下圖所示:3、線性表的鏈式存儲結(jié)構(gòu)特點:①元素的存儲空間可以連續(xù),也可以不連續(xù)②元素的邏輯關系通過鏈結(jié)點的指針反映。③順序訪問

ABC…

…NULLhead注:分單向、雙向和循環(huán)鏈表ABC…

…h(huán)eadABC…

…NULLhead循環(huán)鏈表:循環(huán)鏈表是另一種形式的鏈式存儲結(jié)構(gòu)。它的特點是表中最后一個結(jié)點的指針域指向頭結(jié)點。雙向鏈表特點:在雙向鏈表的結(jié)點中有兩個指針域,其一指向前件,另一指向后件。真題:1、下列敘述中正確的是:

A、線性表的鏈式存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)所需存儲空間相同

B、線性表的鏈式存儲結(jié)構(gòu)所需存儲空間一般多于順序存儲結(jié)構(gòu)

C、線性表的鏈式存儲結(jié)構(gòu)所需存儲空間一般少于順序存儲結(jié)構(gòu)

D、以上三種說法都不對2、下列敘述中正確的是:A、有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)3、在一個長度為n的順序表中,在第i個元素的位置插入一個新元素,需要向后移動

個元素。4、在長度為n的順序表中插入一個元素,最壞情況下要移動表中

個元素。5、下列敘述中正確的是A)結(jié)點中有多個指針域的所有鏈表一定是非線性結(jié)構(gòu)B)帶鏈的棧與隊列是線性結(jié)構(gòu)C)能順序存儲的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)D)存儲空間不連續(xù)的所有鏈表一定是非線性結(jié)構(gòu)1.4棧與隊列1、棧的定義棧是一種特殊的線性表,是限定在一端進行插入和刪除運算的線性表。允許插入與刪除的一端稱為棧頂(top),另一端稱為棧底(bottom)。

2、特點最先進入棧的元素一定在棧底,最后進入棧的元素一定在棧頂。所以堆棧又稱為“后進先出”表或“先進后出”表提示:程序設計語言中的遞歸調(diào)用采用的“?!边@種數(shù)據(jù)結(jié)構(gòu)同樣有順序和鏈式兩種。(1)、入棧PUSH(S,X)

棧頂指針TOP加1,插入新元素X;若堆棧已滿,再做入棧運算時會產(chǎn)生溢出(通常稱為上溢)。(2)、出棧POP(S)取出棧頂元素賦給變量、棧頂指針TOP減1;若堆棧為空,再做出棧運算時會產(chǎn)生溢出(通常稱為下溢)。

(3)、讀棧頂元素GETTOP(S)將棧頂元素賦給變量但不改變TOP指針。3、存儲結(jié)構(gòu)及運算真題:1、下列關于棧敘述正確的是A)棧頂元素最先能被刪除 B)棧頂元素最后才能被刪除C)棧底元素永遠不能被刪除 D)以上三種說法都不對2、下列敘述中正確的是A)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化B)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化C)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化D)上述三種說法都不對3、假設用一個長度為50的數(shù)組(數(shù)組元素的下標從0~49)作為棧的存儲空間,棧底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標),則棧中具有__

__個元素。4、若進棧序列為1,2,3,4,且進棧過程中可以出棧,則不可能的出棧序列是(A)1,4,3,2(B)2,3,4,1

(C)3,1,4,2(D)3,4,2,15、在程序設計語言中的遞歸調(diào)用的存儲分配通常用()A)棧B)堆C)數(shù)組D)鏈表隊列1、定義是一種只允許在表的一端進行插入操作而在另一端進行刪除操作的線性表。2、特點允許插入的一端稱為隊尾(rear),允許刪除的一端稱為隊頭(front)。新來的元素總是加入到隊尾,每次離隊的總是對頭的元素。因此,也將隊列稱為“先進先出”FIFO(FirstInFirstOut)3、存儲結(jié)構(gòu)同樣有順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。4、基本運算①入隊:插入運算稱為入隊,rear=rear+1,rear指示了實際的隊尾位置②出隊:刪除運算稱為出隊,front=front+1,front指示的是對頭的前一個位置假溢出(a)圖是空隊列,表示該隊列最大長度maxnum=6(d)圖中rear=maxnum,如果這時有J7要入隊,則會產(chǎn)生假溢出5、循環(huán)隊列(順序存儲)注意:rear=front則表示可能隊滿,也可能隊空循環(huán)隊列的基本運算①入隊:插入運算稱為,rear=rear+1;當rear=m+1時(m為隊列的總?cè)萘?,則重置rear=1。②出隊:刪除運算稱為出隊,front=front+1;當front=m+1時(m為隊列的總?cè)萘?,則重置front=1。1、一個隊列的入隊序列是1、2、3、4,則隊列的輸出序列是

A)4321B)1234

C)1432D)3

2

4

1

2、在一個容量為24的循環(huán)隊列中,若頭指針front=8,尾指針rear=3,則該循環(huán)隊列中共有__________個元素3、對于循環(huán)隊列,下列敘述中正確的是A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針4、在一個容量為24的循環(huán)隊列中,經(jīng)過一系列入隊和出隊運算,若頭指針front=8,尾指針rear=8,則該循環(huán)隊列中共有__________個元素重要考點:已知循環(huán)隊列容量m,隊頭指針front和隊尾指針rear,求隊列元素個數(shù)n①當front<rear時:n=rear-front②當front>rear時:n=m+(rear-front)1、樹的基本概念⑴定義

樹是n(n≥0)個結(jié)點(數(shù)據(jù)元素)的有窮集合,是一種非線性結(jié)構(gòu)。N=0時稱為空樹。⑵特點①有且僅有一個結(jié)點沒有前驅(qū)結(jié)點,即樹的根結(jié)點。②除根結(jié)點以外,其余所有結(jié)點有且僅有一個直接前驅(qū)。③包括根結(jié)點在內(nèi),每個結(jié)點可以有多個后繼結(jié)點⑶基本概念①結(jié)點的度:一個結(jié)點的子樹數(shù)目稱為該結(jié)點的度②樹的度:結(jié)點中最大的度即為樹的度。③樹的深度:樹的最大層次。④葉子結(jié)點:沒有子數(shù),該結(jié)點的度為0.FCEGDABPH1.5樹與二叉樹2、二叉樹⑴特點只有一個根結(jié)點,每個結(jié)點最多有左、右兩棵子樹組成。若集合為空,則為空二叉樹。二叉樹的結(jié)點有三種:度為0的葉子結(jié)點、度為1的結(jié)點和度為2的結(jié)點⑵基本性質(zhì)①二叉樹的第K層上最多有2k-1個結(jié)點。②深度為m的二叉樹最多有2m-1個結(jié)點。③任意二叉樹中,度為0的結(jié)點(葉子結(jié)點)總是比度為2的結(jié)點多1個?;蛘弑硎鰹椋憾鏄渲卸葹?的結(jié)點有n個,則該二叉樹中有n+1個葉子結(jié)點。④具有n個結(jié)點的二叉樹,深度至少為[log2n]+1ABCFEDJn0=n2+1二叉樹中結(jié)點總數(shù):n0+n1+n23、滿二叉樹與完全二叉樹⑴滿二叉樹:除最后一層外,每一層上的所有結(jié)點都有兩個子結(jié)點,即每一層上的結(jié)點數(shù)都達到最大值。⑵完全二叉樹:除最后一層外,每一層上的結(jié)點數(shù)都達到最大值;在最后一層上只缺少右邊的若干結(jié)點。

(a)深度為3的滿二叉樹(b)深度為3的完全二叉樹的幾種形態(tài)說明:滿二叉樹一定是完全二叉樹,完全二叉樹未必是滿二叉樹。前(根)序遍歷:訪問根結(jié)點——左子樹——右子樹

ABDEHJCFG中(根)序遍歷:左子樹——訪問根結(jié)點——右子樹

DBHEJAFCG后(根)序遍歷:左子樹——右子樹——訪問根結(jié)點

DHJEBFGCAABCFEGDHJ(3)二叉樹的存儲結(jié)構(gòu):鏈式存儲(4)二叉樹的操作:遍歷真題:1、一棵二叉樹的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF,則后序遍歷結(jié)果為

。2、

有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()

A)BDYEACFXZB)DYBEAFCZXC)ABCDEFXYZD)ABDYECFXZ

②某二叉樹共有60個葉子結(jié)點與50個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為()。

A)148B)169C)182D)198

③在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為

A)32B)31C)16D)15④某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有1個,則該二叉樹的深度為()(假設根結(jié)點在第1層)

A)3 B)4 C)6 D)7n0=60推出n2=n0-1=59共有:n0+n1+n2=60+50+59=16925-11.6查找1、順序查找(1)基本思想:從第一個數(shù)據(jù)元素開始,逐個把數(shù)據(jù)元素的關鍵字值和給定值比較,若某個元素的關鍵字值和給定值相等,則查找成功;否則,若全部比較完都不等,則查找失敗。(2)在下列兩種情況下只能采用順序查找:①如果線性表為無序表,則不管是順序存儲結(jié)構(gòu)還是鏈式存儲結(jié)構(gòu),只能用順序查找。②即使是有序線性表,如果采用鏈式存儲結(jié)構(gòu),也只能用順序查找。2、二分查找前提:順序存儲的有序表?;舅枷耄捍樵嘏c表的“中間位置”元素的關鍵值進行比較,若大于關鍵字,則在查找表的后半部分繼續(xù)二分查找,否則在前半部分進行二分查找。在最壞情況下,順序查找需要比較n次,二分查找需要比較log2n次。

排序冒泡排序快速排序簡單插入排序希爾排序簡單選擇排序堆排序最壞情況下比較次數(shù)O(nlog2n)次n(n-1)/2次O(n1.5)次1.7排序下列排序方法中,最壞情況下比較次數(shù)最少的是

A)

冒泡排序

B)

簡單選擇排序

C)

直接插入排序

D)

堆排序1、交換類排序①冒泡排序基本思想:⑴首先,從前往后掃描線性表,逐次比較相鄰兩個元素的大小,若前者大于后者,則兩兩交換位置,最后將最大的元素放到了表的末尾;⑵然后,從后往前掃描剩下的線性表,逐次比較相鄰兩個元素的大小,若后面的元素小于前面的元素,則將它們互換,最后將最小者放到表的最前面。⑶再對剩余元素進行第二趟比較…,直到n個元素按遞增順序排列好為止。其特點是:第一趟排序后,最小元素被交換到第一位,最大元素被交換到最后一位。②快速排序基本思想:從序列中選取一個元素,設為T,將序列中小于T的元素移到T前面,大于T的元素移到T后面,T插入到序列分界線的位置,這個過程叫分割。然后對分割的兩部分做再次分割,直至使序列變成有序的。2、插入類排序①簡單插入排序基本思想:把n個數(shù)據(jù)元素的序列分成兩部分,{R1,…,Ri-1}為已排好序的有序部分,{Ri,Ri+1,….,Rn}為未排序部分,這時,把未排序部分的元素逐個插入到有序部分的合適位置上。②希爾排序基本思想:把整個無序序列按某個增量H分割成若干小的子序列分別進行插入排序,在排序過程中逐次縮小這個增量,直至H為13、選擇類排序(1)簡單選擇排序基本思想:第一趟排序是在無序的{R1,…,Rn}中按排序碼選出最小的元素,將它與R1交換;第二趟排序是在無序的{R2,…,Rn}中按排序碼選出最小的元素,將它與R2交換,…,最終得到遞增有序的序列。89215648851619471621564885891947第1遍第2遍1619564885892147第3遍1619214885895647其特點是:第一趟排序后,最小元素被交換到第一位。(2)堆排序第二章程序設計基礎1.結(jié)構(gòu)化程序設計方法的四個原則2.對象、類、消息、繼承的概念、類與實例的區(qū)別程序設計的方法與風格

一、程序設計方法與風格1、符號名的命名應具有一定含義2、必要的程序注釋:分為序言性注釋和功能性注釋(可讀性)

3、程序編寫清晰第一、效率第二(易讀性)4、避免不必要的語句轉(zhuǎn)移5、程序設計要采用模塊化二、結(jié)構(gòu)化程序設計1、設計原則①自頂向下②逐步求精③模塊化④限制使用GOTO語句最關鍵的是“以提高程序清晰性為目標”

2、程序基本結(jié)構(gòu)①順序結(jié)構(gòu)②選擇結(jié)構(gòu)③循環(huán)結(jié)構(gòu)三、面向?qū)ο蟮某绦蛟O計1、對象⑴定義:對象是由數(shù)據(jù)和允許的操作組成的封裝體,可以用來表示客觀世界中的任何實體。⑵屬性:對象所包含的信息(靜態(tài))⑶方法:即對象的操作,描述了對象執(zhí)行的功能(動態(tài))⑷特征:⑴標識唯一性:對象是可以區(qū)分的。⑵分類性:可以將具有相同屬性和操作的對象抽象成類。⑶多態(tài)性:同一個操作可以是不同對象的行為。⑷封裝性:實現(xiàn)信息屏蔽。⑸模塊獨立性:內(nèi)聚性強、耦合度弱。2、類類是具有共同屬性、共同方法的對象的集合、對象是類的實例??梢杂苫悾ǜ割悾┊a(chǎn)生子類,子類可以繼承其父類的全部方法和屬性。3、消息對象間相互合作的機制稱為消息,對象間通過傳遞消息相互聯(lián)系4、繼承繼承是一種類之間共享屬性和操作的機制。子類可以繼承其父類的全部方法和屬性,繼承具有傳遞性5、多態(tài)性同樣的消息被不同的對象接受時可導致完全不同的行為真題:1、下列不屬于結(jié)構(gòu)化程序設計原則的是()A)可封裝B)自頂向下C)模塊化D)逐步求精2、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()A)順序結(jié)構(gòu)B)GOTO跳轉(zhuǎn)C)選擇結(jié)構(gòu)D)循環(huán)結(jié)構(gòu)3、面向?qū)ο蠓椒ㄖ?,繼承是指()A)一組對象所具有的相似性質(zhì)B)一個對象具有另一個對象的性質(zhì)C)各對象之間的共同性質(zhì)D)類之間共享屬性和操作的機制4、在面向?qū)ο蠓椒ㄖ校瑢崿F(xiàn)信息隱蔽是依靠()A)對象的繼承B)對象的多態(tài)C)對象的封裝D)對象的分類5、以下不屬于對象的基本特點的是()A)分類性B)多態(tài)性C)一致性D)封裝性6、對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對數(shù)據(jù)和數(shù)據(jù)的操作進行()A)結(jié)合B)隱藏C)封裝D)抽象7、在面向?qū)ο蠓椒ㄖ校粋€對象請求另一個對象為其服務的方式是通過發(fā)送()A)調(diào)用語句B)命令C)口令D)消息第三章軟件工程基礎一、軟件的定義1、軟件:包括程序、數(shù)據(jù)和相關文檔的完整集合。2、軟件按功能劃分:應用軟件、系統(tǒng)軟件與支撐軟件(或工具軟件)。應用軟件:QQ、Office(word、excel等)、Wps系統(tǒng)軟件:Windows、OS/2、Linux、Unix二、軟件危機與軟件工程1、軟件危機⑴概念:出現(xiàn)于20世紀60年代末,泛指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。⑵軟件危機的主要表現(xiàn):①用戶對交付使用的軟件系統(tǒng)不滿意。②軟件開發(fā)成本和進度無法控制。③軟件的質(zhì)量無法保證。④現(xiàn)有軟件維護困難。⑤軟件的成本不斷提高。⑥軟件開發(fā)的速度跟不上硬件的發(fā)展和應用需求的增長??偟膩碚f,歸結(jié)為成本、質(zhì)量、生產(chǎn)率等問題。下面描述中,不屬于軟件危機表現(xiàn)的是A)

軟件過程不規(guī)范B)

軟件開發(fā)生產(chǎn)率低C)

軟件質(zhì)量難以控制

D)

軟件成本不斷提高2、軟件工程為了擺脫軟件危機,提出了軟件工程的概念。所謂軟件工程,是指采用工程的概念、原理、技術(shù)和方法指導軟件的開發(fā)與維護。軟件工程學是研究軟件開發(fā)和維護的普遍原理與技術(shù)的一門工程學科。⑴軟件工程三要素①方法:是完成軟件工程項目的技術(shù)手段②工具:支持軟件的開發(fā)、管理、文檔生成③過程:支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理⑵軟件工程核心思想:把軟件產(chǎn)品看作是一個工程產(chǎn)品來處理。(3)、軟件工程研究的內(nèi)容與原則軟件工程研究的主要內(nèi)容:軟件開發(fā)技術(shù)和軟件工程管理軟件工程的原則:抽象、信息屏蔽、模塊化等(4)軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的軟件工具集合。三、軟件生命周期是指軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的全過程。劃分為如下三個階段:①軟件定義②軟件開發(fā)③軟件維護3、軟件生命周期各階段的主要任務是:階段任務描述軟件定義階段可行性研究與計劃制定確定開發(fā)目標,制定實施計劃。需求分析對待開發(fā)軟件提出需求進行分析,確定軟件系統(tǒng)的功能需求并給出詳細定義。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。需求分析的成果:需求規(guī)格說明書軟件開發(fā)階段軟件設計分為概要設計和詳細設計兩個階段,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。這階段提交評審的文檔有概要設計說明書、詳細設計說明書和測試計劃初稿。軟件實現(xiàn)在軟件設計的基礎上編寫程序。軟件測試在設計測試用例的基礎上,檢驗軟件的各個組成部分。編寫測試分析報告。軟件維護運行維護將已交付的軟件投入運行,同時不斷的維護,進行必要而且可行的擴充和刪改。結(jié)構(gòu)化分析方法(軟件定義階段)一、需求分析1、需求分析的成果:需求規(guī)格說明書2、需求分析方法⑴結(jié)構(gòu)化分析方法①面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法SA②面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)③面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法DSSD⑵面向?qū)ο蟮姆治龇椒ǎ篛OA二、結(jié)構(gòu)化分析方法

1、分析手段:分解和抽象2、分析工具⑴數(shù)據(jù)流圖DFD(注意主要圖形元素說明)

加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換輸出。數(shù)據(jù)流:沿箭頭放心傳送數(shù)據(jù)的通道。存儲文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。源,潭:表示系統(tǒng)和環(huán)境的接口。⑵數(shù)據(jù)字典DD:作用是對DFD中出現(xiàn)的被命名的圖形元素的確切解釋,(

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

所定義的對象都包含于數(shù)據(jù)流圖中)是結(jié)構(gòu)化分析的核心。⑶判定樹⑷判定表三、軟件需求規(guī)格說明書軟件需求規(guī)格說明書是需求分析階段的最后成果。軟件需求規(guī)格說明書的作用包括

:A)

軟件驗收的依據(jù)

B)

用戶與開發(fā)人員對軟件要做什么的共同理解C)

軟件設計的依據(jù)

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

(開發(fā)階段)一、軟件設計的基本概念1、軟件設計:把軟件需求轉(zhuǎn)換為軟件表示的過程,分概要設計和詳細設計兩步完成。2、設計原則⑴抽象:把事物本質(zhì)的共同特性提取出來而不考慮其他細節(jié)。⑵模塊化:模塊是指把一個待開發(fā)的軟件分解成若干小的簡單的部分。模塊化是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。⑶信息隱蔽:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。⑷模塊獨立性:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。劃分模塊的原則要盡量做到“高內(nèi)聚,低耦合”。二、總體設計(概要設計):1、基本任務⑴設計軟件系統(tǒng)結(jié)構(gòu)⑵數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設計⑶編寫概要設計文檔⑷概要設計文檔評審2、設計工具:結(jié)構(gòu)圖SC(StructureChart)3、面向數(shù)據(jù)流的設計方法典型的數(shù)據(jù)流類型:變換型和事務型扇入:是指直接調(diào)用該模塊的上級模塊的個數(shù)。扇入大表示模塊的復用程序高。扇出:是指該模塊直接調(diào)用的下級模塊的個數(shù)一個模塊的扇入是指有多少個上級模塊調(diào)用它。扇人越大,表示該模塊被更多的上級模塊共享。這當然是我們所希望的。但是不能為了獲得高扇人而不惜代價,例如把彼此無關的功能湊在一起構(gòu)成一個模塊,雖然扇人數(shù)高了,但這樣的模塊內(nèi)聚程度必然低。這是我們應避免的。設計得好的系統(tǒng),上層模塊有較高的扇出,下層模塊有較高的扇人。其結(jié)構(gòu)圖像清真寺的塔,上面尖,中間寬,下面小。例題:某系統(tǒng)結(jié)構(gòu)圖如下圖所示,該系統(tǒng)結(jié)構(gòu)圖的最大扇出數(shù)是()A)4B)1C)3D)n某系統(tǒng)結(jié)構(gòu)圖如下圖所示

,該系統(tǒng)結(jié)構(gòu)圖的最大扇入數(shù):A)n

B)

1

C)

2

D)3

某系統(tǒng)結(jié)構(gòu)圖如下圖所示,該系統(tǒng)結(jié)構(gòu)圖中最大扇入是

A)0

B)1

C)2

D)3

三、詳細設計:1、基本任務:為每個模塊確定算法和局部數(shù)據(jù)結(jié)構(gòu)2、設計工具⑴圖形工具:①程序流程圖:構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

②N-S圖:③PAD圖:④HIPO⑵表格工具:判定表⑶語言工具:PDL(偽碼),是一種混合語言,采用英語的詞匯和結(jié)構(gòu)化程序設計語言的語法,類似編程語言。軟件工程階段用到的方法用到的工具生成的文檔需求分析結(jié)構(gòu)化分析SA數(shù)據(jù)流圖DFD數(shù)據(jù)字典DD判定表判定樹軟件需求規(guī)格說明書概要設計結(jié)構(gòu)化設計SD軟件結(jié)構(gòu)圖SC概要設計說明書數(shù)據(jù)庫設計說明書集成測試計劃詳細設計結(jié)構(gòu)化編程SP程序流程圖N-S圖問題分析圖PAD偽碼PDL軟件測試一、定義:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試是保證軟件質(zhì)量的重要手段。

二、目標:測試是為了發(fā)現(xiàn)軟件中的錯誤而運行軟件的過程好的測試方案是盡可能地發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤的測試方案成功的測試則是發(fā)現(xiàn)出了至今尚未發(fā)現(xiàn)的錯誤的測試。軟件測試的目的是A)

評估軟件可靠性

B)

發(fā)現(xiàn)并改正程序中的錯誤C)

改正程序中的錯誤

D)

發(fā)現(xiàn)程序中的錯誤三、原則:不要抱有“軟件不會有錯或認為查不出錯的“幻想”設計測試用例時,應同時確定輸出結(jié)果設計測試用例時,應包括合理的數(shù)據(jù)和不合理的數(shù)據(jù)軟件設計者應當避免測試自己的程序嚴格全面地執(zhí)行測試計劃妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告四、軟件測試技術(shù)與方法按照是否需要執(zhí)行軟件劃分:靜態(tài)測試、動態(tài)測試。按照功能劃分:白盒測試、黑盒測試1、靜態(tài)測試與動態(tài)測試⑴靜態(tài)測試:由人工或借助工具對軟件進行閱讀和檢查。靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。⑵動態(tài)測試:是基于計算機的測試,是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。動態(tài)測試的關鍵是設計高效、合理的測試用例。2、白盒測試與黑盒測試⑴白盒測試:又稱為結(jié)構(gòu)測試或邏輯測試。利用程序內(nèi)部的邏輯結(jié)構(gòu)和特性來設計測試用例,檢查程序中的邏輯通路是否都按預定的要求正確地工作。測試的基本原則:保證每一條獨立路徑至少執(zhí)行一次。測試的主要方法包括邏輯覆蓋、基本路徑測試⑵黑盒測試:又稱功能測試或數(shù)據(jù)驅(qū)動測試,是對軟件的功能進行測試和驗證。黑盒測試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和特性,只根據(jù)程序的需求和功能設計測試用例。測試的常用方法有等價分類法、邊界值分析法、錯誤推測法和因果圖。使用白盒測試方法時,設計測試用例應根據(jù)

A)程序的內(nèi)部邏輯B)程序的復雜結(jié)構(gòu)C)程序的功能

D)使用說明書五、軟件測試的實施軟件測試過程一般按4個步驟進行,即單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試。1、單元測試:對模塊進行測試,目的是發(fā)現(xiàn)模塊內(nèi)部可能存在的錯誤。2、集成測試:測試和組裝軟件,目的是發(fā)現(xiàn)和接口有關的錯誤。3、確認測試:驗證軟件的功能和性能是否符合需求。4、系統(tǒng)測試:將通過測試的軟件與硬件、外設、支撐軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起進行測試。

下面不屬于軟件測試實施步驟的是

A)

集成測試

B)

回歸測試

C)

確認測試

D)

單元測試程序的調(diào)試在對程序進行了成功的測試之后將進入程序調(diào)試(通常稱Debug,即排錯)。注:軟件調(diào)試與軟件測試是不同的概念,軟件調(diào)試的目的是為了改正程序中的錯誤。一、基本概念1、程序調(diào)試的任務:診斷和改正程序中的錯誤。軟件測試貫穿整個軟件生命期,調(diào)試則主要在開發(fā)階段進行。2、程序調(diào)試的步驟⑴錯誤定位⑵修改設計和代碼,以排除錯誤;⑶進行回歸測試,防止引進新的錯誤。二、軟件調(diào)試的方法調(diào)試的關鍵在于推斷程序內(nèi)部的錯誤位置及原因。軟件調(diào)試可分為靜態(tài)調(diào)試和動態(tài)調(diào)試。主要的調(diào)試方法有:強行排錯法、回溯法、原因排除法1、程序測試的目的是()A)發(fā)現(xiàn)程序中的錯誤

B)發(fā)現(xiàn)并改正程序中的錯誤C)診斷并改正程序中的錯誤

D)執(zhí)行測試用例2、下面不屬于軟件開發(fā)階段任務的是()

A)測試

B)設計

C)可行性研究D)實現(xiàn)3、下面可以作為軟件設計工具的是

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

B)甘特圖C)數(shù)據(jù)流程圖(DED圖)D)系統(tǒng)結(jié)構(gòu)圖4、下面對軟件測試和軟件調(diào)試有關概念敘述錯誤的是A)程序調(diào)試通常也稱為Debug

B)設計正確的測試用例C)軟件測試的目的是發(fā)現(xiàn)錯誤和改正錯誤D)嚴格執(zhí)行測試計劃,排除測試的隨意性5、下面屬于白盒測試方法的是A)

等價類劃分法B)

邊界值分析法

C)

基本路徑測試D)

錯誤推測法6、軟件設計中模塊劃分應遵循的準則是

A)

低內(nèi)聚低耦合

B)

高耦合高內(nèi)聚C)

高內(nèi)聚低耦合7、軟件生命周期是指A)

軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程B)

軟件從需求分析、設計、實現(xiàn)到測試完成的過程C)

軟件的開發(fā)過程

D)

軟件的運行維護過程8、下面描述中錯誤的是A)

系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細設計B)

軟件設計是將軟件需求轉(zhuǎn)換為軟件表示的過程C)

數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設計是軟件設計的任務之一D)

PAD圖是軟件詳細設計的表示工具9、軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用

軟件的是A)

學生成績管理系統(tǒng)

B)

C語言編譯程序C)

UNIX

操作系統(tǒng)

D)

數(shù)據(jù)庫管理系統(tǒng)10、構(gòu)成計算機軟件的是A)

源代碼

B)

程序和數(shù)據(jù)C)

程序和文檔

D)

程序、數(shù)據(jù)及相關文檔11、數(shù)據(jù)流圖中帶有箭頭的線段表示的是

A)

控制流

B)

事件驅(qū)動

C)

模塊調(diào)用

D)

數(shù)據(jù)流12、在軟件開發(fā)中,需求分析階段可以使用的工具是A)

N-S圖

B)

DFD圖

C)

PAD圖

D)

程序流程圖第四章數(shù)據(jù)庫設計基礎一、數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)1、數(shù)據(jù)(Data):描述事物的符號記錄。2、數(shù)據(jù)庫(DB):數(shù)據(jù)的集合。3、數(shù)據(jù)庫管理系統(tǒng)(DBMS):是在操作系統(tǒng)支持下管理數(shù)據(jù)庫的系統(tǒng)軟件,是數(shù)據(jù)庫系統(tǒng)的核心。

⑴數(shù)據(jù)庫管理系統(tǒng)的功能:①數(shù)據(jù)模式定義②數(shù)據(jù)存取的物理構(gòu)建③數(shù)據(jù)操縱:數(shù)據(jù)查詢、數(shù)據(jù)的刪除、數(shù)據(jù)插入、數(shù)據(jù)修改④數(shù)據(jù)的完整性、安全性定義與檢查⑤數(shù)據(jù)庫的并發(fā)控制與故障恢復⑥數(shù)據(jù)的服務⑵數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言:①數(shù)據(jù)定義語言:負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。②數(shù)據(jù)操縱語言:負責數(shù)據(jù)的操縱,包括數(shù)據(jù)的增、刪、改和查詢。③數(shù)據(jù)控制語言:負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等。4、數(shù)據(jù)庫應用系統(tǒng)(DBAS):利用數(shù)據(jù)庫系統(tǒng)開發(fā)的應用軟件。5、數(shù)據(jù)庫管理員(DBA):負責定義書庫內(nèi)容、決定存儲結(jié)構(gòu)和存取策略及安全授權(quán)等工作。6、數(shù)據(jù)庫系統(tǒng)(DBS):包含硬件系統(tǒng)、軟件系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理員和用戶。二、數(shù)據(jù)庫系統(tǒng)的發(fā)展1、人工管理階段:數(shù)據(jù)無法共享,冗余度大,不獨立,完全依賴于程序。2、文件系統(tǒng)階段:數(shù)據(jù)共享性差,獨立性也較差。3、數(shù)據(jù)庫系統(tǒng)階段:數(shù)據(jù)獨立性最高。三、數(shù)據(jù)庫系統(tǒng)的特點1、數(shù)據(jù)的集成性2、數(shù)據(jù)的高共享性和低冗余性:數(shù)據(jù)共享可以減少數(shù)據(jù)集冗余,并且避免數(shù)據(jù)的不一致性。

數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同地方出現(xiàn)應保持相同的值。3、數(shù)據(jù)獨立性:數(shù)據(jù)與程序獨立存放⑴物理獨立性:當數(shù)據(jù)的物理結(jié)構(gòu)改變時,如存儲結(jié)構(gòu)改變、存儲設備的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),應用程序不用改變。⑵邏輯獨立性:當數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要改變應用程序。4、數(shù)據(jù)統(tǒng)一管理與控制四、數(shù)據(jù)庫系統(tǒng)的內(nèi)部結(jié)構(gòu)體系1、三級模式⑴概念模式:是對數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶(應用)公共數(shù)據(jù)視圖。一個數(shù)據(jù)庫只有一個概念模式。⑵外模式:是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,由概念模式推導而出。一個概念模式可以有若干個外模式。⑶內(nèi)模式:給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。內(nèi)模式處于最底層,它反映了數(shù)據(jù)在計算機物理結(jié)構(gòu)中的實際存儲形式,概念模式處于中間層,它反映了設計者的數(shù)據(jù)全局邏輯要求,而外模式處于最外層,它反映了用戶對數(shù)據(jù)的要求。2、兩級映射:概念模式到內(nèi)模式的映射、外模式到概念模式的映射。保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。1、數(shù)據(jù)庫管理系統(tǒng)是________。A)一種編譯系統(tǒng)B)一種操作系統(tǒng)C)操作系統(tǒng)的一部分D)在操作系統(tǒng)支持下的系統(tǒng)軟件2、數(shù)據(jù)庫系統(tǒng)的核心是

系統(tǒng)3、在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是________。A)數(shù)據(jù)庫系統(tǒng)階段B)三個階段相同C)人工管理階段D)文件系統(tǒng)階段4、在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,

語言負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。5、數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是________。A)DBS包含DB和DBMSB)沒有任何關系C)DB包含DBS和DBMSD)DBMS包含DB和DBS

6、數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義的語言是

。7、數(shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一。所謂數(shù)據(jù)獨立性是指________。A)不同的數(shù)據(jù)只能被對應的應用程序所使用B)三種說法都不對C)數(shù)據(jù)與程序獨立存放D)不同的數(shù)據(jù)被存放在不同的文件中

一、數(shù)據(jù)模型是對現(xiàn)實世界數(shù)據(jù)特征的抽象。是指反映客觀事物及客觀事物間聯(lián)系的數(shù)據(jù)組織的結(jié)構(gòu)和形式?,F(xiàn)實世界人的抽象認識信息世界:概念模型機器世界:具體的數(shù)據(jù)模型數(shù)據(jù)模型

1、概念數(shù)據(jù)模型:對客觀事物抽象化,實體-聯(lián)系數(shù)據(jù)模型即E-R模型2、邏輯數(shù)據(jù)模型:把概念數(shù)據(jù)邏輯化,依賴某種數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束三部分組成。層次模型、網(wǎng)狀模型和關系模型二、E-R模型1、實體:現(xiàn)實世界中客觀存在且可以相互區(qū)別的事物。2、屬性:描述實體的特征3、實體間聯(lián)系:一對一1∶1;一對多1∶m;多對多m∶n4、實體型:實體屬性的集合5、實體集:相同類型實體的集合實體集屬性聯(lián)系6、圖示法:矩形-實體集;橢圓-屬性;菱形-聯(lián)系學生1(學號、姓名、性別、出生日期、系別、籍貫)實體屬性實體集實體型學生2(學號、姓名、性別、出生日期、系別、籍貫)學生n(學號、姓名、性別、出生日期、系別、籍貫)三、數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型分為3種:層次模型、網(wǎng)狀模型和關系模型。層次模型:描述數(shù)據(jù)之間的從屬層次關系。網(wǎng)狀模型:描述數(shù)據(jù)之間的多種從屬的網(wǎng)狀關系。關系模型:主要描述那種具有相關性而非從屬性的平行的數(shù)據(jù)之間按照某種序列排列的集合關系。格式為:關系名(屬性名1,屬性名2,…

,屬性名n)1、元組——記錄——行;屬性——字段——列四、關系模型:二維表結(jié)構(gòu)2、域:屬性的取值范圍3、碼(鍵):二維表中唯一標識元組的最小屬性值。一個表可能有若干鍵,它們稱為該表的候選碼(或候選鍵),從候選鍵中選取一個作為用戶使用的鍵稱為主鍵(或主碼)。如表A中的某屬性是某表B的鍵,則稱該屬性為A的外鍵(或外碼)例:1、在關系A(S,SN,D)和關系B(D,CN,NM)中,A的主關鍵字是S,B的主關鍵字是D,則稱

是關系A的外碼。2、圖書館數(shù)據(jù)庫系統(tǒng)中有下列模式書(書號,類別,書名,出版社,年份,作者,價格,總藏書量,現(xiàn)有庫存)借書卡(卡號,姓名,單位,類別)

借書記錄(卡號,書號,借期,還期)其中關系書和關系借書卡的主鍵分別為書號和卡號,關系借書記錄的主鍵為A)卡號,書號B)書號,借期C)卡號,書號,借期D)卡號,借期

二維表的性質(zhì):⑴二維表中元組個數(shù)是有限的——元組個數(shù)有限性;⑵二維表中元組均不相同——元組的唯一性;⑶二維表中元組的次序可以任意交換——元組的次序無關性;⑷二維表中元組的分量是不可分割的基本數(shù)據(jù)項——元組分量的原子性;⑸二維表中屬性名各不相同——屬性名唯一性;⑹二維表中屬性與次序無關,可任意交換——屬性的次序無關性;⑺二維表屬性的分量具有與該屬性相同的值域——分量值域的統(tǒng)一性。4、關系操縱:數(shù)據(jù)查詢、數(shù)據(jù)的刪除、數(shù)據(jù)插入、數(shù)據(jù)修改。5、關系中的數(shù)據(jù)約束:實體完整性約束、參照完整性約束、用戶定義的完整性約束實體完整性約束:關系中每一個元組的主碼(主鍵)屬性不能重復,并且不能取空值,關系表中至少有一個字段滿足沒有重復值(即至少有一個候選索引)參照完整性:父表關鍵字更改,子表是否作相應的變化

例題:有三個關系表R、S和T如下,其中三個關系對應的關鍵字分別為A,B和符合關鍵字(A,B)。表T的記錄項(b,q,4)違反了用戶定義的完整性約束參照完整性約束實體完整性約束AA1a1bnBB1B2fghlxynpxABCaf3bq4RST一、專門的關系模型的基本運算1、選擇():從一個關系R中找出滿足給定條件F的元組(記錄)的操作成為選擇。記為:σF(R)關系運算2023/2/220:50選擇運算–例子關系RABCDA=B^D>5

(R)ABCD123710∧∨非與(and)或(or)有關系R如下:ABCDaa22be12cc114ee61則運算A<>B^D>=2R的結(jié)果為:空(a,a,2,2)

溫馨提示

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

評論

0/150

提交評論