![數(shù)據(jù)庫技術(shù)及應(yīng)用課件第7章數(shù)據(jù)庫系統(tǒng)的設(shè)計方法.ppt_第1頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7484614c-f36e-49a8-8b5c-902597f17c55/7484614c-f36e-49a8-8b5c-902597f17c551.gif)
![數(shù)據(jù)庫技術(shù)及應(yīng)用課件第7章數(shù)據(jù)庫系統(tǒng)的設(shè)計方法.ppt_第2頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7484614c-f36e-49a8-8b5c-902597f17c55/7484614c-f36e-49a8-8b5c-902597f17c552.gif)
![數(shù)據(jù)庫技術(shù)及應(yīng)用課件第7章數(shù)據(jù)庫系統(tǒng)的設(shè)計方法.ppt_第3頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7484614c-f36e-49a8-8b5c-902597f17c55/7484614c-f36e-49a8-8b5c-902597f17c553.gif)
![數(shù)據(jù)庫技術(shù)及應(yīng)用課件第7章數(shù)據(jù)庫系統(tǒng)的設(shè)計方法.ppt_第4頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7484614c-f36e-49a8-8b5c-902597f17c55/7484614c-f36e-49a8-8b5c-902597f17c554.gif)
![數(shù)據(jù)庫技術(shù)及應(yīng)用課件第7章數(shù)據(jù)庫系統(tǒng)的設(shè)計方法.ppt_第5頁](http://file.renrendoc.com/FileRoot1/2019-2/1/7484614c-f36e-49a8-8b5c-902597f17c55/7484614c-f36e-49a8-8b5c-902597f17c555.gif)
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第7章 數(shù)據(jù)庫系統(tǒng)的設(shè)計方法,7.1 數(shù)據(jù)庫系統(tǒng)設(shè)計概述 7.2 系統(tǒng)需求分析 7.3 概念結(jié)構(gòu)的設(shè)計 7.4 數(shù)據(jù)庫邏輯結(jié)構(gòu)的設(shè)計 7.5 數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計 7.6 數(shù)據(jù)庫的實施和維護 7.7 數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計 習(xí)題7,7.1 數(shù)據(jù)庫系統(tǒng)設(shè)計概述,7.1.1 數(shù)據(jù)庫系統(tǒng)設(shè)計的內(nèi)容 數(shù)據(jù)庫系統(tǒng)設(shè)計的內(nèi)容主要包括數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計、數(shù)據(jù)庫的行為特性設(shè)計和數(shù)據(jù)庫的物理模式設(shè)計。,1. 數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計 數(shù)據(jù)庫的結(jié)構(gòu)特性是指數(shù)據(jù)庫的邏輯結(jié)構(gòu)特征。由于數(shù)據(jù)庫的結(jié)構(gòu)特性是靜態(tài)的,一般情況下不會輕易變動,因此數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計又稱為數(shù)據(jù)庫的靜態(tài)結(jié)構(gòu)設(shè)計。,數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計過程如下: 將現(xiàn)實世界中的事物、事物間的聯(lián)系用E-R圖表示。 將各個分E-R圖匯總,得出數(shù)據(jù)庫的概念結(jié)構(gòu)模型。 將概念結(jié)構(gòu)模型轉(zhuǎn)化為數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型。,2. 數(shù)據(jù)庫的行為特性設(shè)計 數(shù)據(jù)庫的行為特性設(shè)計是指確定數(shù)據(jù)庫用戶的行為和動作,并設(shè)計出數(shù)據(jù)庫應(yīng)用系統(tǒng)的系統(tǒng)層次結(jié)構(gòu)、功能結(jié)構(gòu)和系統(tǒng)數(shù)據(jù)流圖,確定數(shù)據(jù)庫的子模式。,數(shù)據(jù)庫行為特性的設(shè)計步驟為: 將現(xiàn)實世界中的數(shù)據(jù)及應(yīng)用情況用數(shù)據(jù)流程圖和數(shù)據(jù)字典表示,并詳細描述其中的數(shù)據(jù)操作要求(即操作對象、方法、頻度和實時性要求)。 確定系統(tǒng)層次結(jié)構(gòu)。 確定系統(tǒng)的功能模塊結(jié)構(gòu)。 確定數(shù)據(jù)庫的子模式。 確定系統(tǒng)數(shù)據(jù)流圖。,3. 數(shù)據(jù)庫的物理模式設(shè)計 數(shù)據(jù)庫的物理模式設(shè)計要求是:根據(jù)庫結(jié)構(gòu)的動態(tài)特性(即數(shù)據(jù)庫應(yīng)用處理要求),在選定的DBMS環(huán)境下,把數(shù)據(jù)庫的邏輯結(jié)構(gòu)模型加以物理實現(xiàn),從而得出數(shù)據(jù)庫的存儲模式和存取方法。,7.1.2 數(shù)據(jù)庫系統(tǒng)設(shè)計應(yīng)注意的問題 1. 應(yīng)考慮到計算機硬件、軟件和干件的實際情況 在進行數(shù)據(jù)庫設(shè)計時,應(yīng)當(dāng)考慮三方面的內(nèi)容: (1) 數(shù)據(jù)庫系統(tǒng)的硬件條件。 (2) 數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)軟件的特點。 (3) 數(shù)據(jù)庫用戶的技術(shù)水平和管理水平。,2. 應(yīng)使結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計緊密結(jié)合 數(shù)據(jù)庫的設(shè)計過程是一種自上而下的、逐步逼近設(shè)計目標(biāo)的過程。數(shù)據(jù)庫的設(shè)計過程是結(jié)構(gòu)設(shè)計和行為設(shè)計分離設(shè)計、相互參照、反復(fù)探尋的過程。 圖7-1所示為數(shù)據(jù)庫設(shè)計的過程圖。,圖7-1 數(shù)據(jù)庫設(shè)計過程,7.1.3 數(shù)據(jù)庫設(shè)計的基本方法 現(xiàn)實世界的信息結(jié)構(gòu)復(fù)雜且應(yīng)用環(huán)境多種多樣,在很長一段時間內(nèi),數(shù)據(jù)庫設(shè)計是采用手工試湊法進行的。手工試湊法設(shè)計數(shù)據(jù)庫與設(shè)計人員的經(jīng)驗和水平有直接關(guān)系,它更像是一種技藝而不是工程技術(shù)。,7.1.4 數(shù)據(jù)庫系統(tǒng)設(shè)計的基本步驟 圖7-2所示為數(shù)據(jù)庫設(shè)計的步驟和各個階段應(yīng)完成的基本任務(wù),下面就具體內(nèi)容進行介紹。,圖7-2 數(shù)據(jù)庫設(shè)計的步驟,1. 需求分析階段 需求分析是數(shù)據(jù)庫設(shè)計的第一步,也是最困難、最耗時間的一步。 2. 概念結(jié)構(gòu)設(shè)計階段 概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。在概念結(jié)構(gòu)的設(shè)計過程中,設(shè)計者要對用戶需求進行綜合、歸納和抽象,形成一個獨立于具體計算機和DBMS的概念模型。,3. 邏輯結(jié)構(gòu)設(shè)計階段 數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計的主要任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并將其性能進行優(yōu)化。 4. 數(shù)據(jù)庫物理設(shè)計階段 數(shù)據(jù)庫物理設(shè)計的主要任務(wù)是為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),包括數(shù)據(jù)存儲位置、數(shù)據(jù)存儲結(jié)構(gòu)和存取方法。,5. 數(shù)據(jù)庫實施階段 在數(shù)據(jù)庫實施階段中,系統(tǒng)設(shè)計人員要運用DBMS提供的數(shù)據(jù)操作語言和宿主語言,根據(jù)數(shù)據(jù)庫的邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫、編制與調(diào)試應(yīng)用程序、組織數(shù)據(jù)入庫并進行系統(tǒng)試運行。 6. 數(shù)據(jù)庫運行和維護階段 數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中,必須不斷地對其結(jié)構(gòu)性能進行評價、調(diào)整和修改。,表7-1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計過程的各個階段及描述,表7-1中有關(guān)處理特性的設(shè)計描述、設(shè)計原理、設(shè)計方法、工具等具體內(nèi)容,在軟件工程和信息系統(tǒng)設(shè)計等其他相關(guān)課程中有詳細介紹。這里主要討論有關(guān)數(shù)據(jù)特性的問題,包括數(shù)據(jù)特性的描述、如何參照處理特性、完善數(shù)據(jù)模型設(shè)計等問題。 在圖7-3中描述了數(shù)據(jù)庫結(jié)構(gòu)設(shè)計不同階段要完成的不同級別的數(shù)據(jù)模式。,圖7-3 數(shù)據(jù)庫的各級模式,7.2 系統(tǒng)需求分析,7.2.1 需求分析的任務(wù)和方法 1. 系統(tǒng)需求調(diào)查的內(nèi)容 調(diào)查是系統(tǒng)需求分析的重要手段,只有通過對用戶的調(diào)查研究,才能得出需要的信息。調(diào)查的目的是獲得數(shù)據(jù)庫所需數(shù)據(jù)情況和數(shù)據(jù)處理要求。,調(diào)查的具體內(nèi)容有以下三方面: (1) 數(shù)據(jù)庫中的信息內(nèi)容。 (2) 數(shù)據(jù)處理內(nèi)容。 (3) 數(shù)據(jù)安全性和完整性要求。,2. 系統(tǒng)需求的調(diào)查步驟 調(diào)查用戶需求的具體步驟是: 了解現(xiàn)實世界的組織機構(gòu)情況。 了解相關(guān)部門的業(yè)務(wù)活動情況。 (3) 確定新系統(tǒng)的邊界。,3. 系統(tǒng)需求調(diào)查的方法 計算機工作人員應(yīng)當(dāng)在熟悉了現(xiàn)實世界的業(yè)務(wù)后,協(xié)助用戶提出對新系統(tǒng)的各種要求。在系統(tǒng)需求調(diào)查過程中,可以根據(jù)不同的問題和條件,使用不同的調(diào)查方法。 4. 系統(tǒng)需求分析方法 調(diào)查了解了用戶的需求以后,需要進一步分析和表達用戶的需求。,SA方法從最上層的系統(tǒng)組織機構(gòu)入手,采用自頂向下、逐層分解的方式分析系統(tǒng)。SA方法把任何一個系統(tǒng)都抽象為圖7-4的形式。,圖7-4 系統(tǒng)高層抽象圖,7.2.2 數(shù)據(jù)字典及其表示 1. 數(shù)據(jù)項 數(shù)據(jù)項是不可再分的數(shù)據(jù)單位,它的描述為 數(shù)據(jù)項 = 數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名,類型,長度,取值范圍,與其他數(shù)據(jù)項的邏輯關(guān)系,2. 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)的描述為 數(shù)據(jù)結(jié)構(gòu) = 數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成,數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu) 3. 數(shù)據(jù)流 數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。?shù)據(jù)流的描述通常為 數(shù)據(jù)流 = 數(shù)據(jù)流名,說明,流出過程,流入過程,組成:數(shù)據(jù)結(jié)構(gòu),平均流量,高峰期流量,4. 數(shù)據(jù)存儲 數(shù)據(jù)存儲是數(shù)據(jù)及其結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。數(shù)據(jù)存儲可以是手工文檔、手工憑單或計算機文檔。數(shù)據(jù)存儲的描述通常為 數(shù)據(jù)存儲 = 數(shù)據(jù)存儲名,說明,編號,輸入的數(shù)據(jù)流,輸出的數(shù)據(jù)流,組成:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)量,存取頻度,存取方式,5. 處理過程 處理過程的具體處理邏輯一般用判定表或判定樹來描述。數(shù)據(jù)字典中只需要描述處理過程的說明性信息,通常包括以下內(nèi)容: 處理過程 = 處理過程名,說明,輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流,處理:簡要說明 圖7-5所示是一個數(shù)據(jù)流程圖的實例。圖中包括外部項、存儲框和處理框以及數(shù)據(jù)流,它們需要數(shù)據(jù)字典對其內(nèi)容進行詳細說明。,圖7-5 一個數(shù)據(jù)流程圖的實例,7.3 概念結(jié)構(gòu)的設(shè)計,7.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法 1. 概念結(jié)構(gòu)設(shè)計的方法 概念結(jié)構(gòu)設(shè)計的方法有四種: (1) 自頂向下:首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化為完整的全局概念結(jié)構(gòu)。 (2) 自底向上:首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)的設(shè)計方法。,(3) 逐步擴張:先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,生成其他概念結(jié)構(gòu),直至完成總體概念結(jié)構(gòu)。 (4) 混合策略:用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,然后以它為骨架,集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。,2. 概念結(jié)構(gòu)的設(shè)計步驟 按照圖7-6所示的自頂向下分析需求與自底向上設(shè)計概念結(jié)構(gòu)方法,概念結(jié)構(gòu)的設(shè)計可分為兩步:第一步是抽象數(shù)據(jù)并設(shè)計局部視圖;第二步是集成局部視圖,得到全局的概念結(jié)構(gòu)。其設(shè)計步驟如圖7-7所示。,圖7-6 自頂向下分析需求與自底向上概念結(jié)構(gòu)設(shè)計,圖7-7 概念結(jié)構(gòu)的設(shè)計步驟,7.3.2 數(shù)據(jù)抽象與局部視圖設(shè)計 1. 數(shù)據(jù)抽象的三種基本方法 數(shù)據(jù)抽象的三種基本方法是分類、聚集和概括。 (1) 分類。 (2) 聚集。 (3) 概括。,圖7-8 職工分類示意圖,圖7-9 職工屬性聚集實例,圖7-10 更復(fù)雜的聚集,圖7-11 概括表示示意圖,2. 設(shè)計分E-R圖 設(shè)計分E-R圖的具體做法是: (1) 選擇局部應(yīng)用。 (2) 設(shè)計分E-R圖。 圖7-12所示的是一個由屬性上升為用實體集表示的實例。,圖7-12 “職稱”由屬性上升為實體的示意圖,圖7-13 病房作為一個屬性或?qū)嶓w的例子,7.3.3 視圖的集成 視圖集成就是把設(shè)計好的各子系統(tǒng)的分E-R圖綜合成一個系統(tǒng)的總E-R圖。視圖的集成可以有兩種方法: (1) 一種方法是多個分E-R圖一次集成,如圖7-14(a)所示; (2) 另一種方法是逐步集成,用累加的方法一次集成兩個分E-R圖,如圖7-14(b)所示。 (1) 合并E-R圖。 (2) 修改和重構(gòu)初步E-R圖。,圖7-14 視圖集成的兩種方法,1. 合并分E-R圖,生成初步E-R圖 由于各個局部應(yīng)用所面向的問題是不同的,而且通常是由不同的設(shè)計人員進行不同局部的視圖設(shè)計,這樣就會導(dǎo)致各個分E-R圖之間必定會存在許多不一致的地方,即產(chǎn)生沖突問題。 分E-R圖之間的沖突主要有三類:屬性沖突、命名沖突和結(jié)構(gòu)沖突。 (1) 屬性沖突。它主要有以下兩種情況: 屬性域沖突,即屬性值的類型、取值范圍或取值集合不同。 屬性取值單位沖突。,(2) 命名沖突。它主要有以下兩種情況: 同名異義沖突,即不同意義的對象在不同的局部應(yīng)用中具有相同的名字。 異名同義沖突,即意義相同的對象在不同的局部應(yīng)用中有不同的名字。 (3) 結(jié)構(gòu)沖突。它有以下三種情況情況: 同一對象在不同的應(yīng)用中具有不同的抽象。 同一實體在不同分E-R圖中的屬性組成不一致。 實體之間的聯(lián)系在不同的分E-R圖中呈現(xiàn)不同的類型。,圖7-15 合并兩個分E-R圖時的綜合,2. 消除不必要的冗余,設(shè)計基本E-R圖 (1) 用分析方法消除冗余。 (2) 用規(guī)范化理論消除冗余。,圖7-16 消除冗余的實例,7.4 數(shù)據(jù)庫邏輯結(jié)構(gòu)的設(shè)計,E-R圖表示的概念模型是用戶數(shù)據(jù)要求的形式化。邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是把概念模型結(jié)構(gòu)轉(zhuǎn)換成某個具體的DBMS所支持的數(shù)據(jù)模型。 通常,把概念模型向邏輯模型的轉(zhuǎn)換過程分為三步進行:, 把概念模型轉(zhuǎn)換成一般的數(shù)據(jù)模型。 將一般的數(shù)據(jù)模型轉(zhuǎn)換成特定的DBMS所支持的數(shù)據(jù)模型。 通過優(yōu)化方法將特定的DBMS所支持的數(shù)據(jù)模型轉(zhuǎn)化為優(yōu)化的數(shù)據(jù)模型。 概念模型向邏輯模型的轉(zhuǎn)換步驟如圖7-17所示。,圖7-17 邏輯結(jié)構(gòu)設(shè)計的步驟,7.4.1 概念模型向網(wǎng)狀模型轉(zhuǎn)換 1. 不同型實體集及其聯(lián)系的轉(zhuǎn)換規(guī)則 概念模型中的實體集和不同型實體集間的聯(lián)系可按下列規(guī)則轉(zhuǎn)換為網(wǎng)狀模型中的記錄和系: (1) 每個實體集轉(zhuǎn)換成一個記錄。 (2) 每個1:n的二元聯(lián)系轉(zhuǎn)換成一個系,系的方向由1方實體記錄指向n方實體記錄。 (3) 每個m:n的二元聯(lián)系,在轉(zhuǎn)換時要引入一個連結(jié)記錄,并形成兩個系,系的方向由實體記錄方指向連結(jié)記錄方。,(4) K(3)個實體型之間的多元聯(lián)系,在轉(zhuǎn)換時也引入一個連結(jié)記錄,并將聯(lián)系轉(zhuǎn)換成K個實體記錄型和連結(jié)記錄型之間的K個系,系的方向均為實體型指向連結(jié)記錄,如圖7-19所示。,圖7-18 二元聯(lián)系的概念模型向網(wǎng)狀模型的轉(zhuǎn)換實例 (a) 1:n聯(lián)系的轉(zhuǎn)換實例;(b) m:n聯(lián)系的轉(zhuǎn)換實例,圖7-19 多元聯(lián)系的概念模型向網(wǎng)狀模型的轉(zhuǎn)換實例,2. 同型實體之間聯(lián)系的模型轉(zhuǎn)換規(guī)則 (1) 對于同一實體集的一對多聯(lián)系,在向網(wǎng)狀模型轉(zhuǎn)換時要引入一個連結(jié)記錄,并轉(zhuǎn)換為兩個系,系的方向不同。圖7-20(a)為職工中領(lǐng)導(dǎo)聯(lián)系的轉(zhuǎn)換實例。 (2) 對于同一實體集之間的m:n聯(lián)系,轉(zhuǎn)換時也要引入一個連結(jié)記錄,所轉(zhuǎn)換的兩個系均由實體記錄方指向連結(jié)記錄方。圖7-20(b)為部件中構(gòu)成聯(lián)系的轉(zhuǎn)換實例。,圖7-20 同一實體集間聯(lián)系的概念模型向網(wǎng)狀模型的轉(zhuǎn)換實例 (a) 1:n聯(lián)系的轉(zhuǎn)換實例;(b) m:n聯(lián)系的轉(zhuǎn)換實例,7.4.2 概念模型向關(guān)系模型的轉(zhuǎn)換 將E-R圖轉(zhuǎn)換成關(guān)系模型要解決兩個問題: (1) 如何將實體集和實體間的聯(lián)系轉(zhuǎn)換為關(guān)系模型。 (2) 如何確定這些關(guān)系模型的屬性和碼。,1. 實體集的轉(zhuǎn)換規(guī)則 概念模型中的一個實體集轉(zhuǎn)換為關(guān)系模型中的一個關(guān)系,實體的屬性就是關(guān)系的屬性,實體的碼就是關(guān)系的碼,關(guān)系的結(jié)構(gòu)是關(guān)系模式。 2. 實體集間聯(lián)系的轉(zhuǎn)換規(guī)則 在向關(guān)系模型的轉(zhuǎn)換時,實體集間的聯(lián)系可按以下規(guī)則轉(zhuǎn)換: (1) 1:1聯(lián)系的轉(zhuǎn)換方法。,【例7-1】將圖7-21中含有1:1聯(lián)系的E-R圖轉(zhuǎn)換為關(guān)系模型。 該例有三種方案可供選擇(注:關(guān)系模型中標(biāo)有下劃線的屬性為碼): 方案1:聯(lián)系形成的關(guān)系獨立存在,轉(zhuǎn)換后的關(guān)系模型為 職工(職工號,姓名,年齡) 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,價格) 負(fù)責(zé)(職工號,產(chǎn)品號),圖7-21 二元11聯(lián)系轉(zhuǎn)換為關(guān)系模型的實例,方案2:“負(fù)責(zé)”與“職工”兩關(guān)系合并,轉(zhuǎn)換后的關(guān)系模型為 職工(職工號,姓名,年齡,產(chǎn)品號) 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,價格) 方案3:“負(fù)責(zé)”與“產(chǎn)品”兩關(guān)系合并,轉(zhuǎn)換后的關(guān)系模型為 職工(職工號,姓名,年齡) 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,價格,職工號),(2) 1:n聯(lián)系的轉(zhuǎn)換方法。 在向關(guān)系模型轉(zhuǎn)換時,實體間的1:n聯(lián)系可以有兩種轉(zhuǎn)換方法:一種方法是將聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系,其關(guān)系的屬性由與該聯(lián)系相連的各實體集的碼以及聯(lián)系本身的屬性組成,而該關(guān)系的碼為n端實體集的碼;另一種方法是在n端實體集中增加新屬性,新屬性由聯(lián)系對應(yīng)的1端實體集的碼和聯(lián)系自身的屬性構(gòu)成,新增屬性后原關(guān)系的碼不變。,【例7-2】將圖7-22中含有1:n聯(lián)系的E-R圖轉(zhuǎn)換為關(guān)系模型。 該轉(zhuǎn)換有兩種轉(zhuǎn)換方案可供選擇: 方案1:1:n聯(lián)系形成的關(guān)系獨立存在。 倉庫(倉庫號,地點,面積) 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,價格) 倉儲(倉庫號,產(chǎn)品號,數(shù)量) 方案2:聯(lián)系形成的關(guān)系與n端對象合并。 倉庫(倉庫號,地點,面積) 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,價格,倉庫號,數(shù)量),圖7-22 二元1:n聯(lián)系轉(zhuǎn)換為關(guān)系模型的實例,【例7-3】圖7-23中含有同實體集的1:n聯(lián)系,將它轉(zhuǎn)換為關(guān)系模型。 該例題轉(zhuǎn)換的方案如下: 方案1:轉(zhuǎn)換為兩個關(guān)系模型。 職工(職工號,姓名,年齡) 領(lǐng)導(dǎo)(領(lǐng)導(dǎo)工號,職工號) 方案2:轉(zhuǎn)換為一個關(guān)系模型。 職工(職工號,姓名,年齡,領(lǐng)導(dǎo)工號),圖7-23 實體集內(nèi)部1:n聯(lián)系轉(zhuǎn)換為關(guān)系模型的實例,(3) m:n聯(lián)系的轉(zhuǎn)換方法。 在向關(guān)系模型轉(zhuǎn)換時,一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系。 【例7-4】將圖7-24中含有m:n二元聯(lián)系的E-R圖轉(zhuǎn)換為關(guān)系模型。 該例題轉(zhuǎn)換的關(guān)系模型如下(注:關(guān)系中標(biāo)有下劃線的屬性為碼): 學(xué)生(學(xué)號,姓名,年齡,性別) 課程(課程號,課程名,學(xué)時數(shù)) 選修(學(xué)號,課程號,成績),圖7-24 m:n二元聯(lián)系轉(zhuǎn)換為關(guān)系模型的實例,【例7-5】將圖7-25中含有同實體集間m:n聯(lián)系的E-R圖轉(zhuǎn)換為關(guān)系模型。 轉(zhuǎn)換的關(guān)系模型如下(注:關(guān)系中標(biāo)有下劃線的屬性為碼): 零件(零件號,名稱,價格) 組裝(組裝件號,零件號,數(shù)量),圖7-25 同一實體集內(nèi)m:n聯(lián)系轉(zhuǎn)換為關(guān)系模型的實例,(4) 三個或三個以上實體集間的多元聯(lián)系的轉(zhuǎn)換方法。 要將三個或三個以上實體集間的多元聯(lián)系轉(zhuǎn)換為關(guān)系模型,可根據(jù)以下兩種情況采用不同的方法處理: 對于一對多的多元聯(lián)系,轉(zhuǎn)換為關(guān)系模型的方法是修改n端實體集對應(yīng)的關(guān)系,即將與聯(lián)系相關(guān)的1端實體集的碼和聯(lián)系自身的屬性作為新屬性加入到n端實體集中。, 對于多對多的多元聯(lián)系,轉(zhuǎn)換為關(guān)系模型的方法是新建一個獨立的關(guān)系,該關(guān)系的屬性為多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性,碼為各實體碼的組合。,【例7-6】將圖7-26中含有多實體集間的多對多聯(lián)系的E-R圖轉(zhuǎn)換為關(guān)系模型。 轉(zhuǎn)換后的關(guān)系模型如下: 供應(yīng)商(供應(yīng)商號,供應(yīng)商名,地址) 零件(零件號,零件名,單價) 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,型號) 供應(yīng)(供應(yīng)商號,零件號,產(chǎn)品號,數(shù)量) 其中,關(guān)系中標(biāo)有下劃線的屬性為碼。,圖7-26 多實體集間聯(lián)系轉(zhuǎn)換為關(guān)系模型的實例,3. 關(guān)系合并規(guī)則 在關(guān)系模型中,具有相同碼的關(guān)系,可根據(jù)情況合并為一個關(guān)系。,7.4.3 用戶子模式的設(shè)計 1. 使用更符合用戶習(xí)慣的別名 前面提到,在合并各分E-R圖時應(yīng)消除命名的沖突,這在設(shè)計數(shù)據(jù)庫整體結(jié)構(gòu)時是非常必要的。 2. 對不同級別的用戶可以定義不同的子模式 由于視圖能夠?qū)Ρ碇械男泻土羞M行限制,所以它還具有保證系統(tǒng)安全性的作用。,3. 簡化用戶對系統(tǒng)的使用 利用子模式可以簡化使用,方便查詢。實際工作中經(jīng)常要使用某些很復(fù)雜的查詢,這些查詢包括多表連接、限制、分組、統(tǒng)計等。,7.4.4 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的實例 假如要為某基層單位建立一個“基層單位”數(shù)據(jù)庫。通過調(diào)查得出,用戶要求數(shù)據(jù)庫中存儲下列基本信息: 部門:部門號,名稱,領(lǐng)導(dǎo)人編號。 職工:職工號,姓名,性別,工資,職稱,照片,簡歷。 工程:工程號,工程名,參加人數(shù),預(yù)算,負(fù)責(zé)人。 辦公室:地點,編號,電話。,這些信息的關(guān)聯(lián)的語義為 每個部門有多個職工,每個職工只能在一個部門工作。 每個部門只有一個領(lǐng)導(dǎo)人,領(lǐng)導(dǎo)人不能兼職。 每個部門可以同時承擔(dān)若干工程項目,數(shù)據(jù)庫中應(yīng)記錄每個職工參加項目的日期。 一個部門可有多個辦公室。 每個辦公室只有一部電話。 數(shù)據(jù)庫中還應(yīng)存放每個職工在所參加的工程項目中承擔(dān)的具體職務(wù)。,1. 概念模型的設(shè)計 調(diào)查得到數(shù)據(jù)庫的信息要求和語義后,還要進行數(shù)據(jù)抽象,才能得到數(shù)據(jù)庫的概念模型。 設(shè)基層單位數(shù)據(jù)庫的概念模型如圖7-27所示。,圖7-27 基層單位數(shù)據(jù)庫的概念模型,2. 關(guān)系模型的設(shè)計 圖7-26的E-R圖可按規(guī)則轉(zhuǎn)換一組關(guān)系模型。表7-2中列出了這組關(guān)系模型及相關(guān)信息。表中的一行為一個關(guān)系模型,關(guān)系的屬性根據(jù)數(shù)據(jù)字典得出。,表7-2 基層單位數(shù)據(jù)庫的關(guān)系模型信息,7.5 數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計,數(shù)據(jù)庫的物理設(shè)計可以分為兩步進行: 確定數(shù)據(jù)的物理結(jié)構(gòu),即確定數(shù)據(jù)庫的存取方法和存儲結(jié)構(gòu)。 對物理結(jié)構(gòu)進行評價。,7.5.1 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計的內(nèi)容和方法 由于不同的數(shù)據(jù)庫產(chǎn)品所提供的物理環(huán)境、存取方法和存儲結(jié)構(gòu)各不相同,供設(shè)計人員使用的設(shè)計變量、參數(shù)范圍也各不相同,所以數(shù)據(jù)庫的物理設(shè)計沒有通用的設(shè)計方法可以遵循,僅有一般的設(shè)計內(nèi)容和設(shè)計原則供數(shù)據(jù)庫設(shè)計者參考。,數(shù)據(jù)庫設(shè)計者在確定數(shù)據(jù)存取方法時,必須清楚三種相關(guān)信息: (1) 數(shù)據(jù)庫查詢事務(wù)的信息,它包括查詢所需要的關(guān)系、查詢條件所涉及的屬性、連接條件所涉及的屬性、查詢的投影屬性等信息。 (2) 數(shù)據(jù)庫更新事務(wù)的信息,它包括更新操作所需要的關(guān)系、每個關(guān)系上的更新操作所涉及的屬性、修改操作要改變的屬性值等信息。 (3) 每個事務(wù)在各關(guān)系上運行的頻率和性能要求。,7.5.2 關(guān)系模式存取方法的選擇 1. 索引存取方法的選擇 選擇索引存取方法實際上就是根據(jù)應(yīng)用要求確定對關(guān)系的哪些屬性列建立索引,哪些屬性列建立組合索引,哪些索引建立惟一索引等。,選擇索引方法的基本原則是: (1) 如果一個屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個屬性上建立索引;如果一組屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這組屬性上建立組合索引。 (2) 如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引。,(3) 如果一個屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個屬性上建立索引;同理,如果一組屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這組屬性上建立索引。 (4) 關(guān)系上定義的索引數(shù)要適當(dāng),并不是越多越好,因為系統(tǒng)為維護索引要付出代價,查找索引也要付出代價。,2. 聚簇存取方法的選擇 為了提高某個屬性或?qū)傩越M的查詢速度,把這個屬性或?qū)傩越M上具有相同值的元組集中存放在連續(xù)的物理塊上的處理稱為聚簇,這個屬性或?qū)傩越M稱為聚簇碼。,聚簇設(shè)計時可分兩步進行:先根據(jù)規(guī)則確定候選聚簇,再從候選聚簇中去除不必要的關(guān)系。 設(shè)計候選聚簇的原則是: (1) 對經(jīng)常在一起進行連接操作的關(guān)系可以建立聚簇。 (2) 如果一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等、比較條件中,則該單個關(guān)系可建立聚簇。 (3) 如果一個關(guān)系的一個(或一組)屬性上的值重復(fù)率很高,則此單個關(guān)系可建立聚簇。 (4) 如果關(guān)系的主要應(yīng)用是通過聚簇碼進行訪問或連接,而其他屬性訪問關(guān)系的操作很少時,可以使用聚簇。,7.5.3 確定數(shù)據(jù)庫的存儲結(jié)構(gòu) 1. 確定數(shù)據(jù)的存放位置 為了提高系統(tǒng)性能,應(yīng)根據(jù)應(yīng)用情況將數(shù)據(jù)的易變部分與穩(wěn)定部分、經(jīng)常存取部分和存取頻率較低部分分開存放。有多個磁盤的計算機,可以采用下面幾種存取位置的分配方案:,(1) 將表和索引放在不同的磁盤上,這樣在查詢時由于兩個磁盤驅(qū)動器并行工作,可以提高物理I/O讀寫的效率。 (2) 將比較大的表分別放在兩個磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效。 (3) 將日志文件、備份文件與數(shù)據(jù)庫對象(表,索引等)放在不同的磁盤上,以改進系統(tǒng)的性能。,(4) 對于經(jīng)常存取或存取時間要求高的對象(如表、索引)應(yīng)放在高速存儲器(如硬盤)上,對于存取頻率小或存取時間要求低的對象(如數(shù)據(jù)庫的數(shù)據(jù)備份和日志文件備份等只在故障恢復(fù)時才使用)。,2. 確定系統(tǒng)配置 DBMS產(chǎn)品一般都提供了一些系統(tǒng)配置變量和存儲分配參數(shù)供設(shè)計人員和DBA對數(shù)據(jù)庫進行物理優(yōu)化。 3. 評價物理結(jié)構(gòu) 物理設(shè)計過程中需要對時間效率、空間效率、維護代價和各種用戶要求進行權(quán)衡,其結(jié)果可能會產(chǎn)生多種設(shè)計方案。,7.6 數(shù)據(jù)庫的實施和維護,7.6.1 數(shù)據(jù)的載入 組織數(shù)據(jù)入庫是數(shù)據(jù)庫實施階段最主要的工作。目前的DBMS產(chǎn)品沒有提供通用的轉(zhuǎn)換工具,其主要原因在于應(yīng)用環(huán)境千差萬別,源數(shù)據(jù)也各不相同,因而不存在通用的轉(zhuǎn)換規(guī)則。,7.6.2 數(shù)據(jù)庫的試運行 在部分?jǐn)?shù)據(jù)輸入到數(shù)據(jù)庫后,就可以開始對數(shù)據(jù)庫系統(tǒng)進行聯(lián)合調(diào)試的工作了,從而進入到數(shù)據(jù)庫的試運行階段。 數(shù)據(jù)庫試運行階段的主要工作包括以下兩個方面: (1) 實際運行數(shù)據(jù)庫應(yīng)用程序,執(zhí)行對數(shù)據(jù)庫的各種操作,測試應(yīng)用程序的功能是否滿足設(shè)計要求。 (2) 測試系統(tǒng)的性能指標(biāo),分析其是否符合設(shè)計目標(biāo)。,2. 數(shù)據(jù)庫的安全性、完整性控制 在數(shù)據(jù)庫運行過程中,由于應(yīng)用環(huán)境的變化,對安全性的要求也會發(fā)生變化。 3. 數(shù)據(jù)庫性能的監(jiān)督、分析和改造 在數(shù)據(jù)庫運行過程中,監(jiān)督系統(tǒng)運行、對監(jiān)測數(shù)據(jù)進行分析并找出改進系統(tǒng)性能的方法是數(shù)據(jù)庫管理員的又一重要任務(wù)。,4. 數(shù)據(jù)庫的重組織與重構(gòu)造 數(shù)據(jù)庫運行一段時間后,由于記錄不斷增、刪、改,會使數(shù)據(jù)庫的物理存儲情況變壞,降低了數(shù)據(jù)的存取效率,數(shù)據(jù)庫的性能下降。,7.7 數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計,7.7.1 數(shù)據(jù)庫系統(tǒng)的層次結(jié)構(gòu) 根據(jù)數(shù)據(jù)庫系統(tǒng)的構(gòu)造方式,可以把數(shù)據(jù)庫系統(tǒng)分為三類:桌面型數(shù)據(jù)庫系統(tǒng)、兩層結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)和多層結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)。,1. 桌面型數(shù)據(jù)庫系統(tǒng) 當(dāng)我們把DBMS、數(shù)據(jù)庫和數(shù)據(jù)庫應(yīng)用系統(tǒng)安排在同一臺計算機中時,數(shù)據(jù)庫中的數(shù)據(jù)只讓本機的應(yīng)用程序獨自使用,這種結(jié)構(gòu)為桌面型數(shù)據(jù)庫系統(tǒng)。,2. 兩層結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng) 兩層結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)有兩種構(gòu)造方式:客戶機/服務(wù)器(Client/Server,簡稱C/S)結(jié)構(gòu)和瀏覽器/服務(wù)器(Browser/Server,簡稱B/S)結(jié)構(gòu)。 兩層結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫與網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,其結(jié)構(gòu)如圖7-28所示。,圖7-28 兩層數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)示意圖,當(dāng)系統(tǒng)規(guī)模增大到一定程度時,兩層結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)就會暴露出以下缺陷: (1) 啟動的客戶機端程序或打開的瀏覽器越多,同數(shù)據(jù)庫服務(wù)器建立的連接就會越多,服務(wù)器端的負(fù)擔(dān)就會越重。,(2) 由于客戶機端在分發(fā)程序時不僅要分發(fā)EXE文件,還要分發(fā)與數(shù)據(jù)訪問及數(shù)據(jù)管理相關(guān)的動態(tài)鏈接庫,所以如果客戶機的地理位置比較分散,則客戶端程序就難以分發(fā)。 (3) 一旦數(shù)據(jù)庫服務(wù)器的軟、硬件出現(xiàn)問題,所有前端的應(yīng)用將都會終止。,3. 多層數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu) 為了解決兩層數(shù)據(jù)庫系統(tǒng)出現(xiàn)的問題,人們提出了多層數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)。多層數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)中最有代表性的是三層數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu),其結(jié)構(gòu)如圖7-29所示。,圖7-29 三層數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)示意圖,7.7.2 數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計方法及實例 1. 系統(tǒng)功能分析 系統(tǒng)功能分析的主要工作是:確定系統(tǒng)要完成的各種數(shù)據(jù)管理及其他功能,將確定的系統(tǒng)功能分類,并確定每類功能中所包括的細節(jié)功能。,經(jīng)過實際分析和考察,高校圖書管理系統(tǒng)應(yīng)具有如下功能: (1) 圖書征訂管理:包括圖書征訂數(shù)據(jù)的錄入、修改、刪除等功能。 (2) 圖書編目管理:包括圖書數(shù)目信息的錄入、修改等功能。 (3) 圖書典藏管理:包括新書分配、庫室調(diào)配等功能。,(4) 圖書流通管理:包括圖書借閱、續(xù)借、圖書返還、圖書查詢等功能。 (5) 系統(tǒng)用戶管理:包括系統(tǒng)用戶數(shù)據(jù)的錄入、修改與刪除等功能。 (6) 讀者數(shù)據(jù)管理:包括讀者類別管理,讀者個人數(shù)據(jù)的錄入、修改和刪除等功能。,2. 系統(tǒng)模塊設(shè)計 系統(tǒng)模塊設(shè)計的任務(wù)是:根據(jù)系統(tǒng)功能分析對系統(tǒng)功能進行模塊化處理,得出系統(tǒng)功能模塊及其結(jié)構(gòu)圖。 系統(tǒng)功能模塊結(jié)構(gòu)一般為樹形結(jié)構(gòu)。對于高校圖書管理系統(tǒng)來說,經(jīng)過模塊化分析得到的系統(tǒng)功能模塊結(jié)構(gòu)圖如圖7-30所示。,3. 開發(fā)與運行環(huán)境的選擇 數(shù)據(jù)庫系統(tǒng)的開發(fā)與運行環(huán)境包括系統(tǒng)運行所使用的操作系統(tǒng)、應(yīng)用系統(tǒng)開發(fā)工具及數(shù)據(jù)庫管理系統(tǒng)。,4. 系統(tǒng)實現(xiàn)過程分析 在實現(xiàn)過程中,首先需要根據(jù)系統(tǒng)功能分析設(shè)計出需要的數(shù)據(jù)庫,包括各個基本表和相互聯(lián)系的詳細結(jié)構(gòu)。 在實現(xiàn)各功能模塊時,也采用先模塊后集成的方式,即各個系統(tǒng)功能模塊分別進行獨立設(shè)計和調(diào)試,在設(shè)計系統(tǒng)主窗體時才將各個功能模塊通過主窗體的菜單系統(tǒng)集成到一起,最后進行設(shè)計和調(diào)試。,圖7-30 高校圖書管理系統(tǒng)功能模塊結(jié)構(gòu)圖,習(xí) 題 7,7.1 數(shù)據(jù)庫設(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美食廣場服務(wù)員工作總結(jié)
- 100萬噸綠色清潔能源頁巖氣液化項目可行性研究報告寫作模板-申批備案
- 2025-2030全球電池保護板行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國工業(yè)級4-苯氧基苯酚行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國桁架式門式起重機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國AI虛擬人交互一體機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球心理情感咨詢服務(wù)平臺行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國工業(yè)絕熱冷卻器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球重餾分輪胎熱解油行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球消費電子注塑機行業(yè)調(diào)研及趨勢分析報告
- 福建省泉州市晉江市2024-2025學(xué)年七年級上學(xué)期期末生物學(xué)試題(含答案)
- 2025年春新人教版物理八年級下冊課件 第十章 浮力 第4節(jié) 跨學(xué)科實踐:制作微型密度計
- 貨運車輛駕駛員服務(wù)標(biāo)準(zhǔn)化培訓(xùn)考核試卷
- 財務(wù)BP經(jīng)營分析報告
- 三年級上冊體育課教案
- 2024高考物理二輪復(fù)習(xí)電學(xué)實驗專項訓(xùn)練含解析
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 高中英語:倒裝句專項練習(xí)(附答案)
- 2025屆河北衡水?dāng)?shù)學(xué)高三第一學(xué)期期末統(tǒng)考試題含解析
- 2024信息技術(shù)數(shù)字孿生能力成熟度模型
- 交通銀行股份有限公司操作風(fēng)險管理政策
評論
0/150
提交評論