版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)等級考試公共基礎(chǔ)知識,考試說明 考試大綱,數(shù)據(jù)結(jié)構(gòu)與算法 數(shù)據(jù)庫設(shè)計基礎(chǔ) 程序設(shè)計基礎(chǔ) 軟件工程基礎(chǔ),公共基礎(chǔ)知識,第一章 數(shù)據(jù)結(jié)構(gòu)與算法,1.1 算法 算法:是指解題方案的準(zhǔn)確而完整的描述。 算法不等于程序,也不等計算機(jī)方法,程序的編制不可能優(yōu)于算法的設(shè)計。 算法的基本特征:是一組嚴(yán)謹(jǐn)?shù)囟x運算順序的規(guī)則,每一個規(guī)則都是有效的,是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。特征包括: (1)可行性; (2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋,不允許有多義性; (3)有窮性,算法必須能在有限的時間內(nèi)做完,即能在執(zhí)行有限個步驟后終止,包括合理的執(zhí)行時間的含義; (4)輸
2、入:一個算法有0個或多個輸入 ,以刻畫運算對象的初始情況 ; (5)輸出:一個算法有一個或多個輸出,以反映對輸入數(shù)據(jù)加工后的結(jié)果。,1.1 算法,算法的基本要素:一是對數(shù)據(jù)對象的運算和操作;二是算法的控制結(jié)構(gòu)。 指令系統(tǒng):一個計算機(jī)系統(tǒng)能執(zhí)行的所有指令的集合。 基本運算和操作包括:算術(shù)運算、邏輯運算、關(guān)系運算、數(shù)據(jù)傳輸。 算法的控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。 算法基本設(shè)計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法。 算法復(fù)雜度:算法時間復(fù)雜度和算法空間復(fù)雜度。 算法時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量。 算法空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。,1.2 數(shù)據(jù)結(jié)
3、構(gòu)的基本基本概念,數(shù)據(jù)結(jié)構(gòu)研究的三個方面: (1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu); (2)在對數(shù)據(jù)進(jìn)行處理時,各數(shù)據(jù)元素在計算機(jī)中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu); (3)對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運算。 數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。,1.2 數(shù)據(jù)結(jié)構(gòu)的基本基本概念,數(shù)據(jù)的邏輯結(jié)構(gòu)包含: (1)表示數(shù)據(jù)元素的信息; (2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。 數(shù)據(jù)的存儲結(jié)構(gòu)有順序、鏈接、索引等。 線性結(jié)構(gòu)條件: (1)有且只有一個根結(jié)點; (2)每一個結(jié)點最多有一個前件,也最多有一個后件。 非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)。,兩種最基本的存儲結(jié)構(gòu),順序存儲(數(shù)
4、組),兩種最基本的存儲結(jié)構(gòu),鏈表 不是順序存儲,用指針聯(lián)系 單向鏈表,雙向鏈表 效率高 單向鏈表 雙向鏈表,棧與隊列,棧與隊列 相同點:都是線性結(jié)構(gòu) 不同點:先進(jìn)先出,后進(jìn)先出 棧 隊列,循環(huán)隊列,為什么需要循環(huán)隊列? 計算循環(huán)隊列長度 用一個固定大小為m的數(shù)組來實現(xiàn), 那么隊列中元素個數(shù)=(rear-front + m)%m,棧,典型應(yīng)用 逆序輸出 10進(jìn)制轉(zhuǎn)換2進(jìn)制,34/ 用戶名:jsj 密碼:無,非線性結(jié)構(gòu),根結(jié)點,葉子結(jié)點 度、深度、結(jié)點數(shù) 滿二叉樹,完全二叉樹,樹,在樹結(jié)構(gòu)中,一個結(jié)點所擁有的后件的個數(shù)稱為該結(jié)點的度 所有結(jié)點中最大的度稱為樹的度。
5、樹的最大層次稱為樹的深度。,非線性結(jié)構(gòu),樹二叉樹,二叉樹,定義:二叉樹是另一種樹形結(jié)構(gòu)。它與樹形結(jié)構(gòu)的區(qū)別是: (1)每個結(jié)點最多有兩棵子樹; (2)子樹有左右之分。,二叉樹的5種形態(tài):,圖 5-7,(a),(b),(c),(d),(e),完全二叉樹與滿二叉樹,完全二叉樹是指除最后一層外,每一層上的結(jié)點數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干結(jié)點。 在最后一層上與滿二叉樹相應(yīng)層次編號為一一對應(yīng),則稱這棵二叉樹為完全二叉樹。,樹的形態(tài),(a),(g),(h),(f),(e),(d),(c),(b),A,A,B,A,B,A,B,B,A,C,B,E,D,A,B,C,A,B,C,Figure 7-
6、6 A collection of binary trees,二叉樹的基本性質(zhì):,(1)在二叉樹的第k層上,最多有2k-1(k1)個結(jié)點; (2)深度為m的二叉樹最多有2m-1個結(jié)點; (3)度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個; (4)具有n個結(jié)點的二叉樹,其深度至少為log2n+1,其中l(wèi)og2n表示取log2n的整數(shù)部分; (5)具有n個結(jié)點的完全二叉樹的深度為log2n+1;,二叉樹的基本性質(zhì):,(6)設(shè)完全二叉樹共有n個結(jié)點。如果從根結(jié)點開始,按層序(每一層從左到右)用自然數(shù)1,2,.n給結(jié)點進(jìn)行編號(k=1,2.n),有以下結(jié)論: 若k=1,則該結(jié)點為根結(jié)點,它沒有父
7、結(jié)點;若k1,則該結(jié)點的父結(jié)點編號為INT(k/2); 若2kn,則編號為k的結(jié)點的左子結(jié)點編號為2k;否則該結(jié)點無左子結(jié)點(也無右子結(jié)點); 若2k+1n,則編號為k的結(jié)點的右子結(jié)點編號為2k+1;否則該結(jié)點無右子結(jié)點。 滿二叉樹是指除最后一層外,每一層上的所有結(jié)點有兩個子結(jié)點,則k層上有2k-1個結(jié)點深度為m的滿二叉樹有2m-1個結(jié)點。,樹的遍歷,Left subtree,Right subtree,(a)先序遍歷,(b)中序遍歷,(c)后序遍歷,二叉樹的遍歷:,(1)前序遍歷(DLR),首先訪問根結(jié)點,然后前序遍歷左子樹,最后前序遍歷右子樹; (2)中序遍歷(LDR),首先中序遍歷左子樹
8、,然后訪問根結(jié)點,最后中序遍歷右子樹; (3)后序遍歷(LRD)首先后序遍歷左子樹,然后后序遍歷右子樹,最后訪問根結(jié)點。,G H,D E F,B C,A,先序序列:ABDGCEFH 中序序列:DGBAECHF 后序序列:GDBEHFCA,17 查找技術(shù),順序查找的使用情況: (1)線性表為無序表; (2)表采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。 二分法查找只適用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。,18 排序技術(shù),排序是指將一個無序序列整理成按值非遞減順序排列的有序序列。 交換類排序法:(1)冒泡排序法,需要比較的次數(shù)為n(n-1)/2;(2)快速排序法需要比較的次數(shù)為n(
9、n-1)/2 。 插入類排序法:(1)簡單插入排序法,最壞情況需要n(n-1)/2次比較;(2)希爾排序法,最壞情況需要O(n1.5)次比較。 選擇類排序法: (1)簡單選擇排序法,最壞情況需要n(n-1)/2次比較;(2)堆排序法,最壞情況需要O(nlog2n)次比較。,排序,平均情況下,快速排序速度是最快的 最壞情況下 堆排序法,需要O(nlog2n)次比較 幾種簡單排序法,最壞情況需要n(n-1)/2次比較;如簡單選擇,冒泡,簡單插入,第二章程序設(shè)計基礎(chǔ),21 程序設(shè)計設(shè)計方法和風(fēng)格 如何形成良好的程序設(shè)計風(fēng)格 1、源程序文檔化; 2、數(shù)據(jù)說明的方法; 3、語句的結(jié)構(gòu); 4、輸入和輸出。
10、 注釋分序言性注釋和功能性注釋,語句結(jié)構(gòu)清晰第一、效率第二。,22 結(jié)構(gòu)化程序設(shè)計,結(jié)構(gòu)化程序設(shè)計方法的四條原則是: 1. 自頂向下; 2. 逐步求精; 3.模塊化; 4.限制使用goto語句。 結(jié)構(gòu)化程序的基本結(jié)構(gòu)和特點: (1)順序結(jié)構(gòu):一種簡單的程序設(shè)計,最基本、最常用的結(jié)構(gòu); (2)選擇結(jié)構(gòu):又稱分支結(jié)構(gòu),包括簡單選擇和多分支選擇結(jié)構(gòu),可根據(jù)條件,判斷應(yīng)該選擇哪一條分支來執(zhí)行相應(yīng)的語句序列; (3)重復(fù)結(jié)構(gòu):又稱循環(huán)結(jié)構(gòu),可根據(jù)給定條件,判斷是否需要重復(fù)執(zhí)行某一相同程序段。,23 面向?qū)ο蟮某绦蛟O(shè)計,面向?qū)ο蟮某绦蛟O(shè)計:以60年代末挪威奧斯陸大學(xué)和挪威計算機(jī)中心研制的SIMULA語言為
11、標(biāo)志。 面向?qū)ο蠓椒ǖ膬?yōu)點: (1)與人類習(xí)慣的思維方法一致; (2)穩(wěn)定性好; (3)可重用性好; (4)易于開發(fā)大型軟件產(chǎn)品; (5)可維護(hù)性好。,對象,對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍睿梢杂脕肀硎究陀^世界中的任何實體,對象是實體的抽象。 面向?qū)ο蟮某绦蛟O(shè)計方法中的對象是系統(tǒng)中用來描述客觀事物的一個實體,是構(gòu)成系統(tǒng)的一個基本單位,由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。 屬性即對象所包含的信息,操作描述了對象執(zhí)行的功能,操作也稱為方法或服務(wù)。,對象的基本特點:,(1)標(biāo)識惟一性; (2)分類性; (3)多態(tài)性; (4)封裝性; (5)模塊獨立性好,對象的基本概念,類是指具有共
12、同屬性、共同方法的對象的集合。所以類是對象的抽象,對象是對應(yīng)類的一個實例。 消息是一個實例與另一個實例之間傳遞的信息。 消息的組成包括(1)接收消息的對象的名稱;(2)消息標(biāo)識符,也稱消息名;(3)零個或多個參數(shù)。 繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義他們。 繼承分單繼承和多重繼承。單繼承指一個類只允許有一個父類,多重繼承指一個類允許有多個父類。 多態(tài)性是指同樣的消息被不同的對象接受時可導(dǎo)致完全不同的行動的現(xiàn)象。,第三章軟件工程基礎(chǔ),31 軟件工程基本概念 計算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。 軟件的特點包括: (1)軟件是一種邏輯實體; (2)軟件的生產(chǎn)與硬件不同
13、,它沒有明顯的制作過程; (3)軟件在運行、使用期間不存在磨損、老化問題; (4)軟件的開發(fā)、運行對計算機(jī)系統(tǒng)具有依賴性,受計算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移植的問題; (5)軟件復(fù)雜性高,成本昂貴; (6)軟件開發(fā)涉及諸多的社會因素。,軟件工程,軟件按功能分為應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。 軟件危機(jī)主要表現(xiàn)在成本、質(zhì)量、生產(chǎn)率等問題。 軟件工程是應(yīng)用于計算機(jī)軟件的定義、開發(fā)和維護(hù)的一整套方法、工具、文檔、實踐標(biāo)準(zhǔn)和工序。 軟件工程包括3個要素:方法、工具和過程。,軟件工程過程,軟件工程過程是把軟件轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動,包含4種基本活動: (1)P-軟件規(guī)格說明;
14、(2)D-軟件開發(fā); (3)C-軟件確認(rèn); (4)A-軟件演進(jìn)。,軟件周期,軟件周期:軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程。 軟件生命周期三個階段:軟件定義、軟件開發(fā)、運行維護(hù),主要活動階段是: (1)可行性研究與計劃制定; (2)需求分析; (3)軟件設(shè)計; (4)軟件實現(xiàn); (5)軟件測試; (6)運行和維護(hù)。,軟件工程相關(guān)概念,軟件工程的目標(biāo)和與原則: 目標(biāo):在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。 基本目標(biāo):付出較低的開發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開
15、發(fā)軟件易于移植;需要較低的費用;能按時完成開發(fā),及時交付使用。 基本原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性,軟件工程相關(guān)概念,軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。 軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境。 軟件工程管理包括:軟件管理學(xué)、軟件工程經(jīng)濟(jì)學(xué)、軟件心理學(xué)等內(nèi)容。 軟件管理學(xué)包括人員組織、進(jìn)度安排、質(zhì)量保證、配置管理、項目計劃等。 軟件工程原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。,3.2 結(jié)構(gòu)化分析方法,結(jié)構(gòu)化方法的核心和基礎(chǔ)是結(jié)構(gòu)化程序設(shè)計理論。 需求分析方法
16、有(1)結(jié)構(gòu)化需求分析方法;(2)面向?qū)ο蟮姆治龅姆椒ā?從需求分析建立的模型的特性來分:靜態(tài)分析和動態(tài)分析。 結(jié)構(gòu)化分析方法的實質(zhì):著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。 結(jié)構(gòu)化分析的常用工具(1)數(shù)據(jù)流圖; (2)數(shù)據(jù)字典; (3)判定樹; (4)判定表。,結(jié)構(gòu)化相關(guān)概念,數(shù)據(jù)流圖:描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)功能建模。 數(shù)據(jù)字典:對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表,以及精確的、嚴(yán)格的定義,使得用戶和系統(tǒng)分析員對于輸入、輸出、存儲成分和中間計算結(jié)果有共同的理解。 判定樹:
17、從問題定義的文字描述中分清哪些是判定的條件,哪些是判定的結(jié)論,根據(jù)描述材料中的連接詞找出判定條件之間的從屬關(guān)系、并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹。 判定表:與判定樹相似,當(dāng)數(shù)據(jù)流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合而引發(fā)的,使用判定表描述比較適宜。 數(shù)據(jù)字典是結(jié)構(gòu)化分析的核心。,軟件需求規(guī)格說明書的特點:,(1)正確性; (2)無岐義性; (3)完整性; (4)可驗證性; (5)一致性; (6)可理解性; (7)可追蹤性。,3.3 結(jié)構(gòu)化設(shè)計方法,軟件設(shè)計的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件設(shè)計是確定系統(tǒng)的
18、物理模型。 軟件設(shè)計是開發(fā)階段最重要的步驟,是將需求準(zhǔn)確地轉(zhuǎn)化為完整的軟件產(chǎn)品或系統(tǒng)的唯一途徑。 從技術(shù)觀點來看,軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計。 結(jié)構(gòu)設(shè)計:定義軟件系統(tǒng)各主要部件之間的關(guān)系。 數(shù)據(jù)設(shè)計:將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。 接口設(shè)計:描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信。 過程設(shè)計:把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。,結(jié)構(gòu)化設(shè)計,從工程管理角度來看:概要設(shè)計和詳細(xì)設(shè)計。 軟件設(shè)計的一般過程:軟件設(shè)計是一個迭代的過程;先進(jìn)行高層次的結(jié)構(gòu)設(shè)計;后進(jìn)行低層次的過程設(shè)計;穿插進(jìn)行數(shù)據(jù)設(shè)計和接口設(shè)計。 衡量軟件模塊獨立性使用耦合性和內(nèi)聚
19、性兩個定性的度量標(biāo)準(zhǔn)。 在程序結(jié)構(gòu)中各模塊的內(nèi)聚性越強,則耦合性越弱。優(yōu)秀軟件應(yīng)高內(nèi)聚,低耦合。,軟件概要設(shè)計的基本任務(wù)是:,(1)設(shè)計軟件系統(tǒng)結(jié)構(gòu); (2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計; (3)編寫概要設(shè)計文檔; (4)概要設(shè)計文檔評審。,數(shù)據(jù)流圖,模塊用一個矩形表示,箭頭表示模塊間的調(diào)用關(guān)系。 在結(jié)構(gòu)圖中還可以用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。還可用帶實心圓的箭頭表示傳遞的是控制信息,空心圓箭心表示傳遞的是數(shù)據(jù)。 結(jié)構(gòu)圖的基本形式:基本形式、順序形式、重復(fù)形式、選擇形式。 結(jié)構(gòu)圖有四種模塊類型:傳入模塊、傳出模塊、變換模塊和協(xié)調(diào)模塊。 典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。 變換型
20、系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分組成。,詳細(xì)設(shè)計,事務(wù)型數(shù)據(jù)流的特點是:接受一項事務(wù),根據(jù)事務(wù)處理的特點和性質(zhì),選擇分派一個適當(dāng)?shù)奶幚韱卧缓蠼o出結(jié)果。 詳細(xì)設(shè)計:是為軟件結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。 常見的過程設(shè)計工具有:圖形工具(程序流程圖)、表格工具(判定表)、語言工具(PDL)。,3.4 軟件測試,軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。 軟件測試的目的:發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。 軟件測試方法:靜態(tài)測試和動態(tài)測試。,3.
21、4 軟件測試,靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實際運行軟件,主要通過人工進(jìn)行。 動態(tài)測試:是基本計算機(jī)的測試,主要包括白盒測試方法和黑盒測試方法。 白盒測試:在程序內(nèi)部進(jìn)行,主要用于完成軟件內(nèi)部操作的驗證。主要方法有邏輯覆蓋、基本基路徑測試。 黑盒測試:主要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯,用于軟件確認(rèn)。主要方法有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。 軟件測試過程一般按4個步驟進(jìn)行:單元測試、集成測試、驗收測試(確認(rèn)測試)和系統(tǒng)測試。,35 程序的調(diào)試,程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤,主要在開發(fā)階
22、段進(jìn)行。 程序調(diào)試的基本步驟: (1)錯誤定位; (2)修改設(shè)計和代碼,以排除錯誤; (3)進(jìn)行回歸測試,防止引進(jìn)新的錯誤。 軟件調(diào)試可分表靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試主要是指通過人的思維來分析源程序代碼和排錯,是主要的設(shè)計手段,而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試。主要調(diào)試方法有: (1)強行排錯法; (2)回溯法; (3)原因排除法。,第四章 數(shù)據(jù)庫設(shè)計基礎(chǔ),41 數(shù)據(jù)庫系統(tǒng)的基本概念 數(shù)據(jù):實際上就是描述事物的符號記錄。 數(shù)據(jù)庫:是數(shù)據(jù)的集合,具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序共享。 數(shù)據(jù)庫管理系統(tǒng):一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)
23、據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,是數(shù)據(jù)庫的核心。 數(shù)據(jù)庫系統(tǒng),信息與數(shù)據(jù)解釋,數(shù)據(jù)是信息的符號表示或載體,信息則是數(shù)據(jù)的內(nèi)涵 數(shù)據(jù)有其特定的含義,稱為語義 信息 數(shù)據(jù) 數(shù)據(jù) 信息 數(shù)據(jù)和關(guān)于數(shù)據(jù)的解釋是不可分的,數(shù)據(jù)解釋是指對數(shù)據(jù)含義的說明,特征抽取,語義解釋,數(shù)據(jù)庫(DataBase),存放數(shù)據(jù)的倉庫 數(shù)據(jù)庫的標(biāo)準(zhǔn)定義 所謂數(shù)據(jù)庫是長期存儲在計算機(jī)內(nèi)的、有組織、可共享的數(shù)據(jù)集合。 數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴(kuò)展性,并可以為各種用戶共享,可共享,冗余度,獨立性,易擴(kuò)展性,數(shù)據(jù)庫特點,數(shù)據(jù)的共享性:數(shù)據(jù)庫中的數(shù)據(jù)能為多個用戶服務(wù)。 數(shù)據(jù)
24、的獨立性:用戶的應(yīng)用程序與數(shù)據(jù)的邏輯組織和物理存儲方式均無關(guān)。 數(shù)據(jù)的完整性:數(shù)據(jù)庫中的數(shù)據(jù)在操作和維護(hù)過程中可以保持正確無誤。 數(shù)據(jù)庫中的數(shù)據(jù)冗余(重復(fù))少。,數(shù)據(jù)庫管理系統(tǒng)DBMS的主要功能,數(shù)據(jù)定義功能:提供數(shù)據(jù)定義語言(DDL) 定義數(shù)據(jù)庫中的數(shù)據(jù)對象 數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言(DML) 操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫的基本操作 (查詢、插入、刪除和修改),DBMS的主要功能,數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言(DML) 數(shù)據(jù)庫的運行管理 保證數(shù)據(jù)的安全性、完整性、 多用戶對數(shù)據(jù)的并發(fā)使用 發(fā)生故障后的系統(tǒng)恢復(fù) 數(shù)據(jù)庫的建立和維護(hù)功能(實用程序) 數(shù)據(jù)庫數(shù)據(jù)批量裝載 數(shù)據(jù)庫轉(zhuǎn)儲 介質(zhì)故障恢復(fù)
25、數(shù)據(jù)庫的重組織 性能監(jiān)視等,數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu),DBMS產(chǎn)品種類很多,它們支持不同的數(shù)據(jù)模型,使用不同的數(shù)據(jù)庫語言,建立在不同的操作系統(tǒng)之上,數(shù)據(jù)的存儲結(jié)構(gòu)也各不相同,但它們的體系結(jié)構(gòu)上通常具有共同的特征: 采用三級模式結(jié)構(gòu):外模式(用戶模式)、模式(全局邏輯結(jié)構(gòu))和內(nèi)模式(存儲模式),數(shù)據(jù)庫的二級映象功能,數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它使用戶能邏輯地抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機(jī)內(nèi)部的存儲方式,把數(shù)據(jù)的具體組織交給 DBMS 管理。 為了能夠在內(nèi)部實現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換,DBMS 在三級模式之間提供了二級映象功能。,數(shù)據(jù)庫模式映象,外模式/模式映象 定義
26、某一個外模式和模式之間的對應(yīng)關(guān)系,映象定義通常包含在各外模式中 當(dāng)模式改變時,修改外模式/模式映象,使外模式保持不變,從而應(yīng)用程序可以保持不變,稱為數(shù)據(jù)的邏輯獨立性 模式/內(nèi)模式映象 定義數(shù)據(jù)邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系 存儲結(jié)構(gòu)改變時,修改模式/內(nèi)模式映象,使模式保持不變,從而應(yīng)用程序可以保持不變,稱為數(shù)據(jù)的物理獨立性,數(shù)據(jù)庫系統(tǒng)構(gòu)成,數(shù)據(jù)管理的發(fā)展階段,隨著計算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)管理經(jīng)歷了三個發(fā)展階段。 人工管理 文件系統(tǒng) 數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)模型的分類,概念模型,按用戶的觀點來對數(shù)據(jù)和信息建模 現(xiàn)實世界到機(jī)器世界的一個中間層次 是數(shù)據(jù)庫設(shè)計人員和用戶直接進(jìn)行交流的語言 概念模型特點
27、 具有較強的語義表達(dá)能力 能夠方便、直接地表達(dá)應(yīng)用中的各種語義知識 簡單、清晰、易于用戶理解,E-R圖中的基本概念,實體(Entity) 屬性(Attribute) 碼(Key) 域(Domain) 實體型(Entity Type) 實體集(Entity Set),基本概念實體(Entity),客觀存在并且可以相互區(qū)別的“事物”稱為實體。 實體可以是可觸及的對象,如一個學(xué)生,一本書,一輛汽車;也可以是抽象的事件,如學(xué)生的一次選課、老師與系的工作關(guān)系等。,基本概念屬性(Attribute),實體的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。 如學(xué)生實體有學(xué)號、姓名、年齡、性別、系等方面的屬
28、性。 屬性有“型”和“值”之分,“型”即為屬性名,如姓名、年齡、性別是屬性的型;“值”即為屬性的具體內(nèi)容,如(990001,張三,20,男,信息系)這些屬性值的集合表示了一個學(xué)生實體。,聯(lián)系的分類,實體型之間的聯(lián)系 一對一聯(lián)系(1:1) 一對多聯(lián)系(1:n) 多對多(m:n),一對一聯(lián)系(1:1),實體集A中的一個實體至多與實體集B中的一個實體相對應(yīng),反之亦然,則稱實體集A與實體集B為一對一的聯(lián)系。記作1:1。 如:班級與班長,觀眾與座位,病人與床位。,一對多聯(lián)系(1:n),實體集A中的一個實體與實體集B中的多個實體相對應(yīng),反之,實體集B中的一個實體至多與實體集A中的一個實體相對應(yīng)。記作1:n
29、。 如:班級與學(xué)生、公司與職員、省與市。,多對多(m:n),實體集A中的一個實體與實體集B中的多個實體相對應(yīng),反之,實體集B中的一個實體與實體集A中的多個實體相對應(yīng)。記作(m:n)。 如:教師與學(xué)生,學(xué)生與課程,工廠與產(chǎn)品。,學(xué)生選修課程,學(xué)生,課程,選修,姓名,學(xué)號,系別,課程名,先修課,學(xué)分,成績,用矩形表示實體集,在框內(nèi)寫上實體名,用橢圓表示實體的屬性,用無向邊把實體與其屬性連接起來,用菱形表示實體間的聯(lián)系,將參與聯(lián)系的實體用線段連接,m,n,聯(lián)系的 數(shù)量,數(shù)據(jù)模型,數(shù)據(jù)模型的好壞,直接影響數(shù)據(jù)庫的性能。數(shù)據(jù)模型的選擇,是設(shè)計數(shù)據(jù)庫的一項首要任務(wù)。 目前最常用的數(shù)據(jù)模型有 層次模型(Hi
30、erarchical Model) 網(wǎng)狀模型(Network Model) 關(guān)系模型(Relational Model)。,關(guān)系數(shù)據(jù)模型,用二維表格數(shù)據(jù)(即集合論中的關(guān)系)來表示實體和實體間聯(lián)系的模型叫關(guān)系數(shù)據(jù)模型。 一般在二維表中存放兩類數(shù)據(jù):實體本身的數(shù)據(jù)和實體間的聯(lián)系。,學(xué)生基本信息,關(guān)系數(shù)據(jù)模型的基本概念,關(guān)系(Relation):一個關(guān)系對應(yīng)通常說的一張表。 元組(Tuple):表中的一行即為一個元組。 屬性(Attribute):表中的一列即為一個屬性,每個屬性都有一個屬性名。 主碼(Key):表中的某個最小屬性組,它可以唯一確定一個元組。 外鍵(Foreign Key):如果關(guān)系
31、中某個屬性或?qū)傩越M合并非關(guān)鍵字,但卻是另一個關(guān)系的主關(guān)鍵字,則稱此屬性或?qū)傩越M合為本關(guān)系的外部關(guān)鍵字。 域(Domain):屬性的取值范圍。 分量:元組中的一個屬性值。,員工情況表,屬性名,元組,關(guān)鍵字,外關(guān)鍵字,部門設(shè)置情況表,元組,關(guān)鍵字,關(guān)系代數(shù)運算符,集合運算符:、 專門關(guān)系運算符:(選擇)、(投影)、 (連接) 、(除法) 比較運算符:、=、 邏輯運算符:,,關(guān)系代數(shù)運算分類,傳統(tǒng)的集合運算:把關(guān)系看成元組的集合,以元組作為集合中元素來進(jìn)行運算,其運算是從關(guān)系的“水平”方向即行的角度進(jìn)行的。包括并、差、交和笛卡爾積等運算。 專門的關(guān)系運算:不僅涉及行運算,也涉及列運算,這種運算是為數(shù)
32、據(jù)庫的應(yīng)用而引進(jìn)的特殊運算。包括選擇、投影、連接和除法等運算。,1并 設(shè)A、B同為n元關(guān)系,則A、B的并也是一個n元關(guān)系,記作AB。 2交 設(shè)A、B同為n元關(guān)系,則A、B的交也是一個n元關(guān)系,記作AB。AB包含了所有同屬于A、B的元組。 3差 設(shè)A、B同為n元關(guān)系,則A、B的差也是一個n元關(guān)系,記作A-B。A-B包含了所有屬于A但不屬于B的元組。,傳統(tǒng)的集合運算,4集合的笛卡爾乘積 設(shè)A1、A2、An為任意集合,A1、A2、An的笛卡爾乘積記做:A1A2An,并且定義D= A1A2An =(a1,a2,an)|aiAi,i=1,2,n,其中(a1,a2,an)是一個元組,它的每個元素ai取自對
33、應(yīng)的集合Ai。 例如,設(shè)A=1,2,B=a,b,則AB=(1,a),(1,b),(2,a),(2,b)。 關(guān)系是一個集合,其組成元素是元組而不是組成元組的元素。,交運算,定義 所有同時出現(xiàn)在兩個關(guān)系中的元組集合 RS = r | rR rS 交運算可以通過差運算來重寫 RS = R (R S),交運算,R,S,RS,并運算,定義 所有至少出現(xiàn)在兩個關(guān)系中之一的元組集合 RS = r | rR rS ,兩個關(guān)系R和S若進(jìn)行并運算,則它們必須是相容的: 關(guān)系R和S必須是同元的,即它們的屬性數(shù)目必須相同 對i,R的第i個屬性的域必須和S的第i個屬性的域相同,并運算,R,S,RS,差運算,定義 所有出
34、現(xiàn)在一個關(guān)系而不在另一關(guān)系中的元組集合 RS = r | rR rS R和S必須是相容的,差運算,R,S,RS,SR,廣義笛卡爾積運算,定義 兩個關(guān)系R,S,其度分別為n,m,則它們的笛卡爾積是所有這樣的元組集合:元組的前n個分量是R中的一個元組,后m個分量是S中的一個元組 RS的度為R與S的度之和, RS的元組個數(shù)為R和S的元組個數(shù)的乘積,廣義笛卡爾積運算,專門的關(guān)系運算:,連接 投影 選擇 除,示例數(shù)據(jù)庫,stdent,示例數(shù)據(jù)庫,Course (課程),示例數(shù)據(jù)庫,SC,選擇運算,在關(guān)系R中選擇滿足給定條件的元組 F(R)=t | t R F(t) = 真 F是選擇的條件,t R, F(
35、t)要么為真,要么為假 關(guān)系簡單說就是根據(jù)條件選擇內(nèi)容 F的形式:由邏輯運算符( ,)連接關(guān)系表達(dá)式而成 關(guān)系表達(dá)式:X Y X,Y是屬性名、常量、或簡單函數(shù) 是比較算符, , , , , , ,選擇運算(列數(shù)目不變),R,A5(R),A5 C=7(R),選擇運算示例,找年齡不小于20的男學(xué)生,查找結(jié)果,AGE20 SEX=男 (Student),選擇運算示例,查找信息系(IS系)的全體學(xué)生 SdeptIS(Student),查找結(jié)果,投影,從關(guān)系R中取若干列組成新的關(guān)系(從列的角度) A(R) = tA | tR , AR 其中A為R的屬性列 從關(guān)系R中選出若干屬性列組成新的關(guān)系 投影的結(jié)果
36、中要去掉相同的行,R,B , C(R),投影示例,給出所有學(xué)生的姓名和年齡 SN, AGE(S),投影示例,找95001號學(xué)生所選修的課程號 C#( S#=001 (SC),連接,連接操作是從兩個關(guān)系的廣義笛卡爾積中選擇屬性間滿足一定條件的元組。通常寫為: A,B為R和S上度數(shù)相等且可比的屬性列,為關(guān)系運算符,A B,R S = R.A S.B (RS),連接(笛卡爾積的部分),R S,B D,R,S,等值連接(條件相等),R S,C D,R,S,自然連接,若R和S具有相同的屬性組(來自相同的域,表示相同的含義),且連接的運算符為“=”,并且在連接的結(jié)果中去掉重復(fù)的屬性組,這種連接稱為自然連接
37、。 記為: 當(dāng)R與S無相同屬性時,R S RS,自然連接,r,B,b1 b2 b3 b3 b5,E,3 7 10 2 2,s,等值連接 當(dāng)為“”的連接運算為等值連接 自然連接 要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。 當(dāng)兩個關(guān)系中沒有相同的屬性組時等同于笛卡爾積,關(guān)系范式,所謂范式(Normal Form,NF)是指規(guī)范化的關(guān)系模式。由規(guī)范化程度不同,就產(chǎn)生了不同的范式。根據(jù)滿足條件的不同,經(jīng)常稱某一關(guān)系模式為“第幾范式”。 從1971年起,EFodd相繼提出了第一范式、第二范式、第三范式,Codd與Boyce合作提出了Boyce-Codd范式。在197
38、6-1978年間,F(xiàn)agin、Delobe以及Zaniolo又定義了第四范式。到目前為止,已經(jīng)提出了第五范式。每種范式都規(guī)定了一些限制約束條件。,在任何一個關(guān)系數(shù)據(jù)庫中,第一范式(1NF)是對關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫,定義:在關(guān)系模型中的每一個具體關(guān)系R中,如果每個屬性 都是不可再分的,則稱R屬于第一范式(1NF),記作R1NF。,第一范式(1NF):數(shù)據(jù)庫表中的字段都是單一屬性的,不可再分。,第一范式(1NF),第一范式(1NF),例如,如下的數(shù)據(jù)庫表是符合第一范式的:,第一范式(1NF),而這樣的數(shù)據(jù)庫表是不符合第一范式的:,第一范式(1NF),例:如職工號,姓名,電話號碼組成一個表(一個人可能有一個辦公室電話 和一個家里電話號碼) 規(guī)范成為1NF 總結(jié):不能有重復(fù)的列,列不可再分. 不滿足第一范式條件的關(guān)系為非范式關(guān)系,在關(guān)系數(shù)據(jù)庫中,凡非范式關(guān)系必須要化成范式關(guān)系.,第二范式(2NF),第二范式(2NF)是在第一范式(1
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣東江門中醫(yī)藥職業(yè)學(xué)院單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年九江職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年鄭州工商學(xué)院單招綜合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年江西婺源茶業(yè)職業(yè)學(xué)院單招綜合素質(zhì)筆試備考題庫含詳細(xì)答案解析
- 2026年宜賓職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試備考題庫含詳細(xì)答案解析
- 2026年仰恩大學(xué)單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年遼源職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試備考題庫含詳細(xì)答案解析
- 2026年阜陽職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試模擬試題及答案詳細(xì)解析
- 2026年江西醫(yī)學(xué)高等專科學(xué)校單招綜合素質(zhì)考試備考題庫含詳細(xì)答案解析
- 2026年鄭州城建職業(yè)學(xué)院單招綜合素質(zhì)筆試備考題庫含詳細(xì)答案解析
- 2026湖南衡陽耒陽市公安局招聘75名警務(wù)輔助人員考試參考題庫及答案解析
- 電力工程施工方案及規(guī)范
- 2026年1月浙江省高考(首考)英語試題(含答案詳解)+聽力音頻+聽力材料
- 2026年時事政治測試題庫附完整答案(網(wǎng)校專用)
- 智慧物流背景下多式聯(lián)運的協(xié)同發(fā)展與運輸效能提升研究畢業(yè)論文答辯匯報
- 替人背債合同范本
- 山西省運城市小學(xué)一年級上學(xué)期數(shù)學(xué)期末考試試題
- 藥師處方審核管理制度
- T-HHPA 001-2025 老年人跌倒風(fēng)險評估及干預(yù)措施
- 2025年廣西高考地理真題(解析版)
- 文學(xué)批評:科幻小說《弗蘭肯斯坦》的生態(tài)倫理研究
評論
0/150
提交評論