




已閱讀5頁,還剩155頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1,數(shù)據(jù)庫系統(tǒng) 第10講,2,第七章 數(shù)據(jù)庫設計,7.1 數(shù)據(jù)庫設計概述 7.2 需求分析 7.3 概念結(jié)構設計 7.4 邏輯結(jié)構設計 7.5 數(shù)據(jù)庫的物理設計 7.6 數(shù)據(jù)庫實施與維護 7.7小結(jié),3,7.1 數(shù)據(jù)庫設計概述,7.1.1數(shù)據(jù)庫設計的特點 7.1.2數(shù)據(jù)庫設計方法 7.1.3數(shù)據(jù)庫設計的基本步驟 7.1.4數(shù)據(jù)庫設計過程中的各級模式,4,數(shù)據(jù)庫設計概述(續(xù)),什么是數(shù)據(jù)庫設計 數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應用需求(信息要求和處理要求) 在數(shù)據(jù)庫領域內(nèi),常常把使用數(shù)據(jù)庫的各類系統(tǒng)統(tǒng)稱為數(shù)據(jù)庫應用系統(tǒng)。,5,7.1.1數(shù)據(jù)庫設計的特點,數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎 把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來 提供存儲、維護、檢索數(shù)據(jù)的功能 使信息系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息 數(shù)據(jù)庫是信息系統(tǒng)的各個部分能否緊密地結(jié)合在一起以及如何結(jié)合的關鍵所在; 數(shù)據(jù)庫設計是信息系統(tǒng)開發(fā)和建設的重要組成部分.,6,數(shù)據(jù)庫設計人員應該具備的技術和知識,數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設計技術 計算機科學的基礎知識和程序設計的方法和技巧 軟件工程的原理和方法 應用領域的知識,7,7.1.1 數(shù)據(jù)庫設計的特點,三分技術,七分管理,十二分基礎數(shù)據(jù) 數(shù)據(jù)庫設計應該與應用系統(tǒng)設計相結(jié)合 結(jié)構(數(shù)據(jù))設計:設計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構 行為(處理)設計:設計應用程序、事務處理等,8,7.1.3 數(shù)據(jù)庫設計的基本步驟,一、數(shù)據(jù)庫設計的準備工作 首先選定參加設計的人員: 1. 數(shù)據(jù)庫分析設計人員 數(shù)據(jù)庫設計的核心人員 自始至終參與數(shù)據(jù)庫設計 其水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量,9,7.1.3 數(shù)據(jù)庫設計的基本步驟,2. 用戶 在數(shù)據(jù)庫設計中也是舉足輕重的 主要參加需求分析和數(shù)據(jù)庫的運行維護 用戶積極參與帶來的好處 加速數(shù)據(jù)庫設計 提高數(shù)據(jù)庫設計的質(zhì)量,10,數(shù)據(jù)庫設計的基本步驟(續(xù)),3. 程序員 在系統(tǒng)實施階段參與進來,負責編制程序 4. 操作員 在系統(tǒng)實施階段參與進來,準備軟硬件環(huán)境,11,數(shù)據(jù)庫設計的基本步驟(續(xù)),二、數(shù)據(jù)庫設計的過程(六個階段) 需求分析階段 需求分析是整個數(shù)據(jù)庫設計過程的基礎,要收集數(shù)據(jù)庫所有用戶的信息內(nèi)容和處理要求,并加以規(guī)格化和分析。這是最費時、最復雜的一步,但也是最重要的一步,相當于待構建的數(shù)據(jù)庫大廈的地基,它決定了以后各步設計的速度與質(zhì)量。需求分析做得不好,可能會導致整個數(shù)據(jù)庫設計返工重做。在分析用戶需求時,要確保用戶目標的一致性。,12,數(shù)據(jù)庫設計的基本步驟(續(xù)),概念結(jié)構設計階段 概念設計是把用戶的信息要求統(tǒng)一到一個整體邏輯結(jié)構中,此結(jié)構能夠表達用戶的要求,是一個獨立于任何DBMS軟件和硬件的概念模型。,13,數(shù)據(jù)庫設計的基本步驟(續(xù)),邏輯結(jié)構設計階段 邏輯設計是將上一步所得到的概念模型轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。,14,數(shù)據(jù)庫設計的基本步驟(續(xù)),數(shù)據(jù)庫物理設計階段 物理設計是為邏輯數(shù)據(jù)模型建立一個完整的能實現(xiàn)的數(shù)據(jù)庫結(jié)構,包括存儲結(jié)構和存取方法。,數(shù)據(jù)庫設計的基本步驟(續(xù)),數(shù)據(jù)庫實施階段 運用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設計和物理設計的結(jié)果 建立數(shù)據(jù)庫 編制與調(diào)試應用程序 組織數(shù)據(jù)入庫 并進行試運行,16,數(shù)據(jù)庫設計的基本步驟(續(xù)),數(shù)據(jù)庫運行和維護階段 這一階段主要是收集和記錄實際系統(tǒng)運行的數(shù)據(jù),數(shù)據(jù)庫運行的記錄用來提高用戶要求的有效信息,用來評價數(shù)據(jù)庫系統(tǒng)的性能,進一步調(diào)整和修改數(shù)據(jù)庫。在運行中,必須保持數(shù)據(jù)庫的完整性,并能有效地處理數(shù)據(jù)庫故障和進行數(shù)據(jù)庫恢復。在運行和維護階段,可能要對數(shù)據(jù)庫結(jié)構進行修改或擴充。,17,數(shù)據(jù)庫設計的基本步驟(續(xù)),以上六個階段是從數(shù)據(jù)庫應用系統(tǒng)設計和開發(fā)的全過程來考察數(shù)據(jù)庫設計的問題。因此,它既是數(shù)據(jù)庫也是應用系統(tǒng)的設計過程。在設計過程中,努力使數(shù)據(jù)庫設計和系統(tǒng)其他部分的設計緊密結(jié)合,把數(shù)據(jù)和處理的需求收集、分析、抽象、設計和實現(xiàn)在各個階段同時進行、相互參照、相互補充,以完善兩方面的設計。,18,數(shù)據(jù)庫各級模式的形成過程 需求分析階段 綜合各個用戶的應用需求 概念設計階段 形成獨立于機器特點,獨立于各個DBMS產(chǎn)品的概念模式(E-R圖),7.1.4 數(shù)據(jù)庫設計過程中的各級模式,19,邏輯設計階段 首先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關系模型,形成數(shù)據(jù)庫邏輯模式 然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎上再建立必要的視圖(View),形成數(shù)據(jù)的外模式,20,物理設計階段 根據(jù)DBMS特點和處理的需要,進行物理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式,21,7.2 需求分析,7.2.1 需求分析的任務 7.2.2 需求分析的方法 7.2.3 數(shù)據(jù)字典,22,需求分析(續(xù)),需求分析就是分析用戶的需要與要求 需求分析是設計數(shù)據(jù)庫的起點 需求分析的結(jié)果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結(jié)果是否合理和實用,23,7.2 需求分析,7.2.1 需求分析的任務 7.2.2 需求分析的方法 7.2.3 數(shù)據(jù)字典,24,7.2.1 需求分析的任務,一、需求分析的任務 二、需求分析的重點 三、需求分析的難點,25,一、需求分析的任務,通過詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求 在此基礎上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設計數(shù)據(jù)庫,26,二、需求分析的重點,需求分析的重點是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。 信息要求 用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì) 由用戶的信息要求可以導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù),27,需求分析的重點(續(xù)),處理要求 對處理功能的要求 對處理的響應時間的要求 對處理方式的要求(批處理 / 聯(lián)機處理) 新系統(tǒng)的功能必須能夠滿足用戶的信息要求、處理要求、安全性與完整性要求。,28,三、需求分析的難點,確定用戶最終需求的難點 用戶缺少計算機知識,開始時無法確定計算機究竟能為自己做什么,不能做什么,因此無法一下子準確地表達自己的需求,他們所提出的需求往往不斷地變化。 設計人員缺少用戶的專業(yè)知識,不易理解用戶的真正需求,甚至誤解用戶的需求。 新的硬件、軟件技術的出現(xiàn)也會使用戶需求發(fā)生變化。,29,需求分析的難點(續(xù)),解決方法 設計人員必須采用有效的方法,與用戶不斷深入地進行交流,才能逐步得以確定用戶的實際需求,30,7.2 需求分析,7.2.1 需求分析的任務 7.2.2 需求分析的方法 7.2.3 數(shù)據(jù)字典,31,7.2.2 需求分析的方法,調(diào)查清楚用戶的實際需求并進行初步分析 與用戶達成共識 進一步分析與表達這些需求,32,一、 調(diào)查與初步分析用戶需求, 調(diào)查組織機構情況 組織部門的組成情況 各部門的職責等,33,調(diào)查與初步分析用戶需求(續(xù)), 調(diào)查各部門的業(yè)務活動情況。調(diào)查重點之一。 各個部門輸入和使用什么數(shù)據(jù) 如何加工處理這些數(shù)據(jù) 輸出什么信息 輸出到什么部門 輸出結(jié)果的格式是什么,34,調(diào)查與初步分析用戶需求(續(xù)), 在熟悉業(yè)務活動的基礎上,協(xié)助用戶明確對新系統(tǒng)的各種要求。調(diào)查重點之二。 信息要求 處理要求 完全性與完整性要求,35,調(diào)查與初步分析用戶需求(續(xù)), 對前面調(diào)查的結(jié)果進行初步分析 確定新系統(tǒng)的邊界 確定哪些功能由計算機完成或?qū)頊蕚渥層嬎銠C完成 確定哪些活動由人工完成 由計算機完成的功能就是新系統(tǒng)應該實現(xiàn)的功能。,36,二、常用調(diào)查方法,做需求調(diào)查時,往往需要同時采用多種方法 無論使用何種調(diào)查方法,都必須有用戶的積極參與和配合 設計人員應該和用戶取得共同的語言,幫助不熟悉計算機的用戶建立數(shù)據(jù)庫環(huán)境下的共同概念,并對設計工作的最后結(jié)果共同承擔責任,37,常用調(diào)查方法(續(xù)),常用調(diào)查方法 跟班作業(yè) 通過親身參加業(yè)務工作了解業(yè)務活動的情況 能比較準確地理解用戶的需求,但比較耗時 開調(diào)查會 通過與用戶座談來了解業(yè)務活動情況及用戶需求 請專人介紹,38,常用調(diào)查方法(續(xù)),詢問 對某些調(diào)查中的問題,可以找專人詢問 設計調(diào)查表請用戶填寫 如果調(diào)查表設計合理,則很有效,且易于為用戶接受 查閱記錄 查閱與原系統(tǒng)有關的數(shù)據(jù)記錄,39,三、進一步分析和表達用戶需求,分析和表達用戶的需求的常用方法 自頂向下的結(jié)構化分析方法(Structured Analysis,簡稱SA方法) SA方法從最上層的系統(tǒng)組織機構入手,采用逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。,40,進一步分析和表達用戶需求(續(xù)),1首先把任何一個系統(tǒng)都抽象為:,41,進一步分析和表達用戶需求(續(xù)),2分解處理功能和數(shù)據(jù) (1)分解處理功能 將處理功能的具體內(nèi)容分解為若干子功能,再將每個子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達清楚為止。 (2)分解數(shù)據(jù) 在處理功能逐步分解的同時,其所用的數(shù)據(jù)也逐級分解,形成若干層次的數(shù)據(jù)流圖 數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關系,42,進一步分析和表達用戶需求(續(xù)),(3)表達方法 處理過程:用判定表或判定樹來描述 數(shù)據(jù):用數(shù)據(jù)字典來描述,43,進一步分析和表達用戶需求(續(xù)),3將分析結(jié)果再次提交給用戶,征得用戶的認可,44,四、需求分析小結(jié),45,需求分析小結(jié)(續(xù)),實例:假設我們要開發(fā)一個學校管理系統(tǒng)。 1經(jīng)過可行性分析和初步需求調(diào)查,抽象出該系統(tǒng)最高層數(shù)據(jù)流圖,該系統(tǒng)由教師管理子系統(tǒng)、學生管理子系統(tǒng)、后勤管理子系統(tǒng)組成,每個子系統(tǒng)分別配備一個開發(fā)小組。 2進一步細化各個子系統(tǒng)。 其中學生管理子系統(tǒng)開發(fā)小組通過進行進一步的需求調(diào)查,明確了該子系統(tǒng)的主要功能是進行學籍管理和課程管理,包括學生報到、入學、畢業(yè)的管理,學生上課情況的管理。通過詳細的信息流程分析和數(shù)據(jù)收集后,他們生成了該子系統(tǒng)的數(shù)據(jù)流圖。,46,47,48,49,50,51,52,7.2 需求分析,7.2.1 需求分析的任務 7.2.2 需求分析的方法 7.2.3 數(shù)據(jù)字典,53,7.2.3 數(shù)據(jù)字典,一、數(shù)據(jù)字典的用途 二、數(shù)據(jù)字典的內(nèi)容,54,一、數(shù)據(jù)字典的用途,數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合 數(shù)據(jù)字典是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果 數(shù)據(jù)字典在數(shù)據(jù)庫設計中占有很重要的地位,55,二、數(shù)據(jù)字典的內(nèi)容,數(shù)據(jù)字典的內(nèi)容 數(shù)據(jù)項 數(shù)據(jù)結(jié)構 數(shù)據(jù)流 數(shù)據(jù)存儲 處理過程 數(shù)據(jù)項是數(shù)據(jù)的最小組成單位 若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結(jié)構 數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。,56, 數(shù)據(jù)項,數(shù)據(jù)項是不可再分的數(shù)據(jù)單位 對數(shù)據(jù)項的描述 數(shù)據(jù)項描述數(shù)據(jù)項名,數(shù)據(jù)項含義說明, 別名,數(shù)據(jù)類型,長度,取值范圍, 取值含義,與其他數(shù)據(jù)項的邏輯關系 取值范圍、與其他數(shù)據(jù)項的邏輯關系定義了數(shù)據(jù)的完整性約束條件,57, 數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構反映了數(shù)據(jù)之間的組合關系。 一個數(shù)據(jù)結(jié)構可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構混合組成。 對數(shù)據(jù)結(jié)構的描述 數(shù)據(jù)結(jié)構描述數(shù)據(jù)結(jié)構名,含義說明, 組成:數(shù)據(jù)項或數(shù)據(jù)結(jié)構,58, 數(shù)據(jù)流,數(shù)據(jù)流是數(shù)據(jù)結(jié)構在系統(tǒng)內(nèi)傳輸?shù)穆窂健?對數(shù)據(jù)流的描述 數(shù)據(jù)流描述數(shù)據(jù)流名,說明,數(shù)據(jù)流來源, 數(shù)據(jù)流去向,組成:數(shù)據(jù)結(jié)構, 平均流量,高峰期流量 數(shù)據(jù)流來源是說明該數(shù)據(jù)流來自哪個過程 數(shù)據(jù)流去向是說明該數(shù)據(jù)流將到哪個過程去 平均流量是指在單位時間(每天、每周、每月等)里的傳輸次數(shù) 高峰期流量則是指在高峰時期的數(shù)據(jù)流量,59, 數(shù)據(jù)存儲,數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。 對數(shù)據(jù)存儲的描述 數(shù)據(jù)存儲描述數(shù)據(jù)存儲名,說明,編號, 流入的數(shù)據(jù)流 ,流出的數(shù)據(jù)流 , 組成:數(shù)據(jù)結(jié)構,數(shù)據(jù)量,存取方式 流入的數(shù)據(jù)流:指出數(shù)據(jù)來源 流出的數(shù)據(jù)流:指出數(shù)據(jù)去向 數(shù)據(jù)量:每次存取多少數(shù)據(jù),每天(或每小時、每周等)存取幾次等信息 存取方法:批處理 / 聯(lián)機處理;檢索 / 更新;順序檢索 / 隨機檢索,60, 處理過程,處理過程的具體處理邏輯一般用判定表或判定樹來描述。數(shù)據(jù)字典中只需要描述處理過程的說明性信息 處理過程說明性信息的描述 處理過程描述處理過程名,說明, 輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流, 處理:簡要說明,61,處理過程(續(xù)),簡要說明:主要說明該處理過程的功能及處理要求 功能:該處理過程用來做什么 處理要求:處理頻度要求(如單位時間里處理多少事務,多少數(shù)據(jù)量);響應時間要求等 處理要求是后面物理設計的輸入及性能評價的標準,62,處理過程(續(xù)),例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)項,以“學號”為例: 數(shù)據(jù)項: 學號 含義說明:唯一標識每個學生 別名: 學生編號 類型: 字符型 長度: 8 取值范圍:00000000至99999999 取值含義:前兩位標別該學生所在年級, 后六位按順序編號 與其他數(shù)據(jù)項的邏輯關系:,63,處理過程(續(xù)),數(shù)據(jù)結(jié)構 以“學生”為例 “學生”是該系統(tǒng)中的一個核心數(shù)據(jù)結(jié)構: 數(shù)據(jù)結(jié)構: 學生 含義說明: 是學籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié) 構,定義了一個學生的有關信息 組成: 學號,姓名,性別,年齡, 所在系,年級,64,處理過程(續(xù)),數(shù)據(jù)流“體檢結(jié)果”可如下描述: 數(shù)據(jù)流: 體檢結(jié)果 說明: 學生參加體格檢查的最終結(jié)果 數(shù)據(jù)流來源:體檢 數(shù)據(jù)流去向:批準 組成: 平均流量: 高峰期流量:,65,處理過程(續(xù)),數(shù)據(jù)存儲“學生登記表”可如下描述: 數(shù)據(jù)存儲: 學生登記表 說明: 記錄學生的基本情況 流入數(shù)據(jù)流: 流出數(shù)據(jù)流: 組成: 數(shù)據(jù)量: 每年3000張 存取方式: 隨機存取,66,處理過程(續(xù)),處理過程“分配宿舍”可如下描述: 處理過程:分配宿舍 說明: 為所有新生分配學生宿舍 輸入: 學生,宿舍, 輸出: 宿舍安排 處理: 在新生報到后,為所有新生分配學 生宿舍。要求同一間宿舍只能安排 同一性別的學生,同一個學生只能 安排在一個宿舍中。每個學生的居 住面積不小于3平方米。安排新生 宿舍其處理時間應不超過15分鐘。,67,7.3 概念結(jié)構設計,7.3.1 概念結(jié)構設計概述 7.3.2 概念結(jié)構設計的方法與步驟 7.3.3 數(shù)據(jù)抽象與局部視圖設計 7.3.4 視圖的集成,68,7.3.1 概念結(jié)構,什么是概念結(jié)構設計 需求分析階段描述的用戶應用需求是現(xiàn)實世界的具體需求。 將需求分析得到的用戶需求抽象為信息結(jié)構即概念模型的過程就是概念結(jié)構設計。 概念結(jié)構是各種數(shù)據(jù)模型的共同基礎,它比數(shù)據(jù)模型更獨立于機器、更抽象,從而更加穩(wěn)定。 概念結(jié)構設計是整個數(shù)據(jù)庫設計的關鍵。,69,概念結(jié)構(續(xù)),70,概念結(jié)構(續(xù)),概念結(jié)構設計的特點 (1)能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實世界的一個真實模型。 (2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設計成功的關鍵。,71,概念結(jié)構(續(xù)),概念結(jié)構設計的特點(續(xù)) (3)易于更改,當應用環(huán)境和應用要求改變時,容易對概念模型修改和擴充。 (4)易于向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。,72,概念結(jié)構(續(xù)),描述概念模型的工具 E-R模型 E-R圖基本成分包含實體型、屬性和聯(lián)系。 實體型:用矩形框表示,框內(nèi)標注實體名稱。 屬性:用橢圓形框表示,框內(nèi)標注屬性名稱。 聯(lián)系:指實體之間的聯(lián)系,有一對一(1:1),一對多(1:n)或多對多(m :n)三種聯(lián)系類型。,73,74,兩個實體型之間的聯(lián)系有如下三種類型: (1)一對一聯(lián)系(1:1) 實體集A中的一個實體至多與實體集B中的一個實體相對應,反之亦然,則稱實體集A與實體集B為一對一的聯(lián)系。記作1:1。 如:班級與班長,觀眾與座位,病人與床位。 (2)一對多聯(lián)系(1:n) 實體集A中的一個實體與實體集B中的多個實體相對應,反之,實體集B中的一個實體至多與實體集A中的一個實體相對應。記作1:n。 如:班級與學生、公司與職員、省與市。 (3)多對多(m:n) 實體集A中的一個實體與實體集B中的多個實體相對應,反之,實體集B中的一個實體與實體集A中的多個實體相對應。記作(m:n)。 如:教師與學生,學生與課程,工廠與產(chǎn)品。,75,76,E-R圖的基本思想就是分別用矩形框、橢圓形框和菱形框表示實體、屬性和聯(lián)系,使用無向邊將屬性與其相應的實體連接起來,并將聯(lián)系分別和有關實體相連接,注明聯(lián)系類型。,77,學生與課程聯(lián)系的完整的ER圖,78,(2) 數(shù)據(jù)抽象 在系統(tǒng)需求分析階段,最后得到了多層數(shù)據(jù)流圖、數(shù)據(jù)字典和系統(tǒng)分析報告。建立局部E-R模型,就是根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個適當層次的數(shù)據(jù)流圖,作為設計分E-R圖的出發(fā)點,讓這組圖中毎一部分對應一個局部應用。在前面選好的某一層次的數(shù)據(jù)流圖中,每個局部應用都對應了一組數(shù)據(jù)流圖,局部應用所涉及的數(shù)據(jù)存儲在數(shù)據(jù)字典中?,F(xiàn)在就是要將這些數(shù)據(jù)從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,確定每個局部應用包含哪些實體,這些實體又包含哪些屬性,以及實體之間的聯(lián)系及其類型。,79,設計局部E-R模型的關鍵就是正確劃分實體和屬性。實體和屬性之間在形式上并無可以明顯區(qū)分的界限,通常是按照現(xiàn)實世界中事物的自然劃分來定義實體和屬性,將現(xiàn)實世界中的事物進行數(shù)據(jù)抽象,得到實體和屬性。 一般有兩種數(shù)據(jù)抽象:分類和聚集。,80,分類(Classification) 分類定義某一類概念作為現(xiàn)實世界中一組對象的類型,將一組具有某些共同特性和行為的對象抽象為一個實體。對象和實體之間是“is member of”的關系。 例如,在教學管理中,“趙蘭”是一名學生,表示“趙蘭”是學生中的一員,她具有學生們共同的特性和行為。,81,聚集(Aggregation) 聚集定義某一類型的組成成份,將對象類型的組成成份抽象為實體的屬性。組成成份與對象類型之間是“is part of”的關系。 例如,學號、姓名、性別、年齡、系別等可以抽象為學生實體的屬性,其中學號是標識學生實體的主鍵。,82,(2) 局部E-R模型設計 數(shù)據(jù)抽象后得到了實體和屬性,實際上實體和屬性是相對而言的,往往要根據(jù)實際情況進行必要的調(diào)整。在調(diào)整中要遵循兩條原則: 實體具有描述信息,而屬性沒有。即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成。 屬性不能與其他實體具有聯(lián)系,聯(lián)系只能發(fā)生在實體之間。 例如:學生是一個實體,學號、姓名、性別、年齡、系別等是學生實體的屬性,系別只表示學生屬于哪個系,不涉及系的具體情況,換句話說,沒有需要進一步描述的特性,即是不可分的數(shù)據(jù)項,則根據(jù)原則可以作為學生實體的屬性。但如果考慮一個系的系主任、學生人數(shù)、教師人數(shù)、辦公地點等,則系別應看作一個實體。,83,系別作為一個屬性或?qū)嶓w,84,又如,“職稱”為教師實體的屬性,但在涉及住房分配時,由于分房與職稱有關,即職稱與住房實體之間有聯(lián)系,則根據(jù)原則,職稱應作為一個實體。,85,職稱作為一個屬性或?qū)嶓w,86,此外,可能會遇到這樣的情況,同一數(shù)據(jù)項,可能由于環(huán)境和要求的不同,有時作為屬性,有時則作為實體,此時必須根據(jù)實際情況而定。一般情況下,凡能作為屬性對待的,應盡量作為屬性,以簡化E-R圖的處理。 下面舉例說明局部E-R模型設計。 在簡單的教務管理系統(tǒng)中,有如下語義約束。 一個學生可選修多門課程,一門課程可為多個學生選修,因此學生和課程是多對多的聯(lián)系; 一個教師可講授多門課程,一門課程可為多個教師講授,因此教師和課程也是多對多的聯(lián)系; 一個系可有多個教師,一個教師只能屬于一個系,因此系和教師是一對多的聯(lián)系,同樣系和學生也是一對多的聯(lián)系。,87,根據(jù)上述約定,可以得到如圖所示的學生選課局部圖和如圖所示的教師任課局部圖。形成局部E-R模型后,應該返回去征求用戶意見,以求改進和完善,使之如實地反映現(xiàn)實世界。 E-R圖的優(yōu)點就是易于被用戶理解,便于交流。,88,學生選課局部圖,89,教師任課局部圖,90,4全局E-R模型設計 局部E-R模型設計完成之后,下一步就是集成各局部E-R模型,形成全局E-R模型,即視圖的集成。視圖集成的方法有兩種: 多元集成法,一次性將多個局部E-R圖合并為一個全局E-R圖。 二元集成法,首先集成兩個重要的局部視圖,以后用累加的方法逐步將一個新的視圖集成進來。在實際應用中,可以根據(jù)系統(tǒng)復雜性選擇這兩種方案。一般采用逐步集成的方法,如果局部視圖比較簡單,可以采用多元集成法。一般情況下,采用二元集成法,即每次只綜合兩個視圖,這樣可降低難度。無論使用哪一種方法,視圖集成均分成兩個步驟。,91,合并,消除各局部E-R圖之間的沖突,生成初步E-R圖。 優(yōu)化,消除不必要的冗余,生成基本E-R圖。,92,局部視圖合并成全局視圖,93,視圖集成,94,(1) 合并局部E-R圖,生成初步E-R圖 這個步驟將所有的局部E-R圖綜合成全局概念結(jié)構。 全局概念結(jié)構它不僅要支持所有的局部E-R模型,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結(jié)構。 由于各個局部應用不同,通常由不同的設計人員進行局部E-R圖設計,因此,各局部E-R圖不可避免地會有許多不一致的的地方,我們稱之為沖突。,95,合并局部E-R圖時并不能簡單地將各個E-R圖畫到一起,而必須消除各個局部E-R圖中的不一致,使合并后的全局概念結(jié)構不僅支持所有的局部E-R模型,而且必須是一個能為全系統(tǒng)中所有用戶共同理解和接受的完整的概念模型。 合并局部E-R圖的關鍵就是合理消除各局部E-R圖中的沖突。,96,E-R圖中的沖突有三種:屬性沖突、命名沖突和結(jié)構沖突。 屬性沖突 屬性沖突又分為屬性值域沖突和屬性的取值單位沖突。 a.屬性值域沖突,即屬性值的類型、取值范圍或取值集合不同。比如學號,有些部門將其定義為數(shù)值型,而有些部門將其定義為字符型。又如年齡,有的可能用出生年月表示,有的則用整數(shù)表示。 b.屬性的取值單位沖突。比如零件的重量,有的以公斤為單位,有的以斤為單位,有的則以克為單位。 屬性沖突屬于用戶業(yè)務上的約定,必須與用戶協(xié)商后解決。,97,命名沖突 命名不一致可能發(fā)生在實體名、屬性名或聯(lián)系名之間,其中屬性的命名沖突更為常見。 一般表現(xiàn)為同名異義或異名同義(實體、屬性、聯(lián)系名)。 a.同名異義,即同一名字的對象在不同的部門中具有不同的意義。 比如,“單位”在某些部門表示為人員所在的部門,而在某些部門可能表示物品的重量、長度等屬性。 b.異名同義,即同一意義的對象在不同的部門中具有不同的名稱。 比如,對于“房間”這個名稱,在教務管理部門中對應著為教室,而在后勤管理部門對應為學生宿舍。 命名沖突的解決方法同屬性沖突,需要與各部門協(xié)商、討論后加以解決。,98,結(jié)構沖突 a.同一對象在不同應用中有不同的抽象,可能為實體,也可能為屬性。例如,教師的職稱在某一局部應用中被當作實體,而在另一局部應用中被當作屬性。 這類沖突在解決時,就是使同一對象在不同應用中具有相同的抽象,或把實體轉(zhuǎn)換為屬性,或把屬性轉(zhuǎn)換為實體。 b.同一實體在不同應用中屬性組成不同,可能是屬性個數(shù)或?qū)傩源涡虿煌?解決辦法是,合并后實體的屬性組成為各局部E-R圖中的同名實體屬性的并集,然后再適當調(diào)整屬性的次序。 c.同一聯(lián)系在不同應用中呈現(xiàn)不同的類型。比如E1與E2在某一應用中可能是一對一聯(lián)系,而在另一應用中可能是一對多或多對多聯(lián)系,也可能是在E1、E2、E3三者之間有聯(lián)系。 這種情況應該根據(jù)應用的語義對實體聯(lián)系的類型進行綜合或調(diào)整。,99,下面以教務管理系統(tǒng)中的兩個局部E-R圖為例,來說明如何消除各局部E-R圖之間的沖突,進行局部E-R模型的合并,從而生成初步E-R圖。 首先,這兩個局部E-R圖中存在著命名沖突,學生選課局部圖中的實體“系”與教師任課局部圖中的實體“單位”,都是指“系”,即所謂的異名同義,合并后統(tǒng)一改為“系”,這樣屬性“名稱”和“單位名”即可統(tǒng)一為“系名”。 其次,還存在著結(jié)構沖突,實體“系”和實體“課程” 在兩個不同應用中的屬性組成不同,合并后這兩個實體的屬性組成為原來局部E-R圖中的同名實體屬性的并集。解決上述沖突后,合并兩個局部E-R圖,生成如圖所示的初步的全局E-R圖。,100,教務管理系統(tǒng)的初步ER圖,101,(2) 消除不必要的冗余,生成基本E-R圖 所謂冗余,在這里指冗余的數(shù)據(jù)和實體之間冗余的聯(lián)系。冗余的數(shù)據(jù)是指可由基本的數(shù)據(jù)導出的數(shù)據(jù),冗余的聯(lián)系是由其他的聯(lián)系導出的聯(lián)系。在上面消除沖突合并后得到的初步ER圖中,可能存在冗余的數(shù)據(jù)或冗余的聯(lián)系。冗余的存在容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫的維護增加困難,應該消除。我們把消除了冗余的初步E-R圖稱為基本E-R圖。 通常采用分析的方法消除冗余。數(shù)據(jù)字典是分析冗余數(shù)據(jù)的依據(jù),還可以通過數(shù)據(jù)流圖分析出冗余的聯(lián)系。,102,如在上圖所示的初步E-R圖中,“課程”實體中的屬性“教師號”可由“講授”這個教師與課程之間的聯(lián)系導出,而學生的平均成績可由“選修”聯(lián)系中的屬性“成績”中計算出來,所以“課程”實體中的 “教師號” 與“學生”實體中的“平均成績”均屬于冗余數(shù)據(jù)。,103,另外,“系”和“課程”之間的聯(lián)系“開課”,可以由“系”和“教師”之間的“屬于”聯(lián)系與“教師”和“課程”之間的“講授”聯(lián)系推導出來,所以“開課”屬于冗余聯(lián)系。 這樣,初步E-R圖在消除冗余數(shù)據(jù)和冗余聯(lián)系后,便可得到基本的E-R模型,如圖所示。 最終得到的基本E-R模型是企業(yè)的概念模型,它代表了用戶的數(shù)據(jù)要求,是溝通“要求”和“設計”的橋梁。它決定數(shù)據(jù)庫的總體邏輯結(jié)構,是成功建立數(shù)據(jù)庫的關鍵。如果設計不好,就不能充分發(fā)揮數(shù)據(jù)庫的功能,無法滿足用戶的處理要求。 因此,用戶和數(shù)據(jù)庫人員必須對這一模型反復討論,在用戶確認這一模型已正確無誤的反映了他們的要求后,才能進入下一階段的設計工作。,104,教務管理系統(tǒng)的基本ER圖,105,舉例,某醫(yī)院病房計算機管理中需要如下信息: 科室:科名,科地址,科電話,醫(yī)生姓名 病房:病房名,床位號,所屬科室名 醫(yī)生:姓名,職稱,所屬科室名,年齡,工作證號 病人:病歷號,姓名,性別,診斷,主管醫(yī)生,病歷號 其中:一個科室有多個病房、多個醫(yī)生,一個病房只能屬于一個科室,一個醫(yī)生只屬于一個科室,但可以負責多個病人,一個病人的主管醫(yī)生只有一個,106,107,邏輯結(jié)構設計的任務和步驟 概念結(jié)構設計階段得到的E-R模型是用戶的模型,它獨立于任何一種數(shù)據(jù)模型,獨立于任何一個具體的DBMS。為了建立用戶所要求的數(shù)據(jù)庫,需要把上述概念模型轉(zhuǎn)換為某個具體的DBMS所支持的數(shù)據(jù)模型。數(shù)據(jù)庫邏輯設計的任務是將概念結(jié)構轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型的過程。從此開始便進入了“實現(xiàn)設計”階段,需要考慮到具體的DBMS的性能、具體的數(shù)據(jù)模型特點。 從E-R圖所表示的概念模型可以轉(zhuǎn)換成任何一種具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀模型、層次模型和關系模型。這里只討論關系數(shù)據(jù)庫的邏輯設計問題,所以只介紹E-R圖如何向關系模型進行轉(zhuǎn)換。,7.4 邏輯結(jié)構設計,108,一般的邏輯設計分為以下三步: 將概念結(jié)構轉(zhuǎn)化為一般的關系、網(wǎng)狀、層次模型 將轉(zhuǎn)化來的關系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換 對數(shù)據(jù)模型進行優(yōu)化,109,E-R圖向關系模型的轉(zhuǎn)換 1轉(zhuǎn)換原則 概念設計中得到的E-R圖是由實體、屬性和聯(lián)系組成的,而關系數(shù)據(jù)庫邏輯設計的結(jié)果是一組關系模式的集合。所以將E-R圖轉(zhuǎn)換為關系模型實際上就是將實體、屬性和聯(lián)系轉(zhuǎn)換成關系模式。在轉(zhuǎn)換中要遵循以下原則: (1) 一個實體轉(zhuǎn)換為一個關系模式,實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。 (2) 一個聯(lián)系轉(zhuǎn)換為一個關系模式,與該聯(lián)系相連的各實體的鍵以及聯(lián)系的屬性均轉(zhuǎn)換為該關系的屬性。該關系的鍵有三種情況:,110,一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并; 1) 轉(zhuǎn)換為一個獨立的關系模式 關系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性 關系的候選碼:每個實體的碼均是該關系的候選碼,111,2) 與某一端對應的關系模式合并 合并后關系的屬性:加入對應關系的碼和聯(lián)系本身的屬性 合并后關系的碼:不變,112,如果聯(lián)系為1: n ,可以轉(zhuǎn)換為一個獨立的關系模式,也可以與n端對應的關系模式合并。 1) 轉(zhuǎn)換為一個獨立的關系模式 關系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性 關系的碼:n端實體的碼,113,2) 與n端對應的關系模式合并 合并后關系的屬性:在n端關系中加入1端關系的碼和聯(lián)系本身的屬性 合并后關系的碼:不變 可以減少系統(tǒng)中的關系個數(shù),一般情況下更傾向于采用這種方法,114,如果聯(lián)系為n : m,則各實體鍵的組合是關系的鍵。 關系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性 關系的碼:各實體碼的組合 例,“選修”聯(lián)系是一個m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關系模式,其中學號與課程號為關系的組合碼: 選修(學號,課程號,成績),115,2具體做法 (1) 把每一個實體轉(zhuǎn)換為一個關系 首先分析各實體的屬性,從中確定其主鍵,然后分別用關系模式表示。例如,以下圖的E-R模型為例,四個實體分別轉(zhuǎn)換成四個關系模式:,116,教務管理系統(tǒng)的基本ER圖,117,學生(學號,姓名,性別,年齡) 課程(課程號,課程名) 教師(教師號,姓名,性別,職稱) 系(系名,電話) 其中,有下劃線者表示是主鍵。,118,(2) 把每一個聯(lián)系轉(zhuǎn)換為關系模式 由聯(lián)系轉(zhuǎn)換得到的關系模式的屬性集中,包含兩個發(fā)生聯(lián)系的實體中的主鍵以及聯(lián)系本身的屬性,其關系鍵的確定與聯(lián)系的類型有關。 例如,還以教務管理系統(tǒng)的基本ER模型為例,四個聯(lián)系也分別轉(zhuǎn)換成四個關系模式: 屬于(教師號,系名) 講授(教師號,課程號) 選修(學號,課程號,成績) 擁有(系名,學號),119,(3) 特殊情況的處理 三個或三個以上實體間的一個多元聯(lián)系在轉(zhuǎn)換為一個關系模式時,與該多元聯(lián)系相連的各實體的主鍵及聯(lián)系本身的屬性均轉(zhuǎn)換成為關系的屬性,轉(zhuǎn)換后所得到的關系的主鍵為各實體鍵的組合。 例如,下圖表示供應商、項目和零件三個實體之間的多對多聯(lián)系,如果已知三個實體的主鍵分別為“供應商號”,“項目號”與“零件號”,則它們之間的聯(lián)系“供應”可轉(zhuǎn)換為關系模式,其中供應商號,項目號,零件號為此關系的組合關系鍵。 供應(供應商號,項目號,零件號,數(shù)量),120,圖 多個實體之間的聯(lián)系,121,練習:,某醫(yī)院病房計算機管理中需要如下信息: 科室:科名,科地址,科電話,醫(yī)生姓名 病房:病房名,床位號,所屬科室名 醫(yī)生:姓名,職稱,所屬科室名,年齡,工作證號 病人:病歷號,姓名,性別,診斷,主管醫(yī)生,病歷號 其中:一個科室有多個病房、多個醫(yī)生,一個病房只能屬于一個科室,一個醫(yī)生只屬于一個科室,但可以負責多個病人,一個病人的主管醫(yī)生只有一個,122,123,科室(科室名,科地址,科電話) 病房(病房號,床位號,科室名) 醫(yī)生(工作證號,姓名,職稱,科室名,年齡) 病人(病歷號,姓名,性別,診斷,醫(yī)生工作證號,病房號),124,例 :某單位有一資料室,它管理的數(shù)據(jù)有讀者信息、圖書信息、借閱信息。 讀者信息:書證編號,姓名,性別,所在部門,職稱,家庭住址,聯(lián)系電話,辦證日期,125,圖書信息:書籍編號,書名,分類編號,作者姓名,出版社名稱,出版日期,書籍頁數(shù),登記日期等; 借閱信息:書證編號,圖書編號,借出日期,還書日期等,L,126,讀者,圖書,借閱,書證編號,姓名,書籍編號,書名,借書日期,還書日期,127,關系模式規(guī)范化 應用規(guī)范化理論對上述產(chǎn)生的關系的邏輯模式進行初步優(yōu)化,以減少乃至消除關系模式中存在的各種異常,改善完整性、一致性和存儲效率。 規(guī)范化理論是數(shù)據(jù)庫邏輯設計的指南和工具,規(guī)范化過程可分為兩個步驟:確定規(guī)范式級別,實施規(guī)范化處理。 1確定范式級別 考查關系模式的函數(shù)依賴關系,確定范式等級,逐一分析各關系模式,考查是否存在部分函數(shù)依賴,傳遞函數(shù)依賴等,確定它們分別屬于第幾范式。 2實施規(guī)范化處理 確定范式級別后,利用規(guī)范化理論,逐一考察各個關系模式,根據(jù)應用要求,判斷它們是否滿足規(guī)范要求,可用已經(jīng)介紹過的規(guī)范化方法和理論將關系模式規(guī)范化。,128,綜合以上數(shù)據(jù)庫的設計過程,規(guī)范化理論在數(shù)據(jù)庫設計中有如下幾方面的應用: (1) 在需求分析階段,用數(shù)據(jù)依賴概念分析和表示各個數(shù)據(jù)項之間的聯(lián)系。 (2) 在概念結(jié)構設計階段,以規(guī)范化理論為指導,確定關系鍵,消除初步E-R圖中冗余的聯(lián)系。 (3) 在邏輯結(jié)構設計階段,從E-R圖向數(shù)據(jù)模型轉(zhuǎn)換過程中,用模式合并與分解方法達到規(guī)范化級別。,129,模式評價與改進 1模式評價 關系模式的規(guī)范化不是目的而是手段,數(shù)據(jù)庫設計的目的是最終滿足應用需求。因此,為了進一步提高數(shù)據(jù)庫應用系統(tǒng)的性能,還應該對規(guī)范化后產(chǎn)生的關系模式進行評價、改進,經(jīng)過反復多次的嘗試和比較,最后得到優(yōu)化的關系模式。 模式評價的目的是檢查所設計的數(shù)據(jù)庫模式是否滿足用戶的功能要求、效率,確定加以改進的部分。模式評價包括功能評價和性能評價。,130,(1) 功能評價 功能評價指對照需求分析的結(jié)果,檢查規(guī)范化后的關系模式集合是否支持用戶所有的應用要求。關系模式必須包括用戶可能訪問的所有屬性。在涉及多個關系模式的應用中,應確保聯(lián)接后不丟失信息。如果發(fā)現(xiàn)有的應用不被支持,或不完全被支持,則應該改進關系模式。發(fā)生這種問題的原因可能是在邏輯設計階段,也可能是在需求分析或概念設計階段。是哪個階段的問題就返回到哪個階段去,因此有可能對前兩個階段再進行評審,解決存在的問題。,131,(2) 性能評價 對于目前得到的數(shù)據(jù)庫模式,由于缺乏物理設計所提供的數(shù)量測量標準和相應的評價手段,所以性能評價是比較困難的,只能對實際性能進行估計,包括邏輯記錄的存取數(shù)、傳送量以及物理設計算法的模型等。,132,2模式改進 根據(jù)模式評價的結(jié)果,對已生成的模式進行改進。 如果因為需求分析、概念設計的疏漏導致某些應用不能得到支持,則應該增加新的關系模式或?qū)傩浴?如果因為性能考慮而要求改進,則可采用合并或分解的方法。 (1) 合并 如果有若干個關系模式具有相同的主鍵,并且對這些關系模式的處理主要是查詢操作,而且經(jīng)常是多關系的查詢,那么可對這些關系模式按照組合使用頻率進行合并。 這樣便可以減少聯(lián)接操作而提高查詢效率。,133,(2) 分解 為了提高數(shù)據(jù)操作的效率和存儲空間的利用率,最常用和最重要的模式優(yōu)化方法就是分解,根據(jù)應用的不同要求,可以對關系模式進行垂直分解和水平分解。 水平分解是把關系的元組分為若干子集合,定義每個子集合為一個子關系。 對于經(jīng)常進行大量數(shù)據(jù)的分類條件查詢的關系,可進行水平分解,這樣可以減少應用系統(tǒng)每次查詢需要訪問的記錄數(shù),從而提高了查詢性能。,134,例如,有學生關系(學號,姓名,類別),其中類別包括大專生、本科生和研究生。如果多數(shù)查詢一次只涉及其中的一類學生,就應該把整個學生關系水平分割為大專生、本科生和研究生三個關系。,135,垂直分解是把關系模式的屬性分解為若干子集合,形成若干子關系模式。垂直分解的原則是把經(jīng)常一起使用的屬性分解出來,形成一個子關系模式。 例如,有教師關系(教師號,姓名,性別,年齡,職稱,工資,崗位津貼,住址,電話),如果經(jīng)常查詢的僅是前六項,而后三項很少使用,則可以將教師關系進行垂直分割,得到兩個教師關系: 教師關系1(教師號,姓名,性別,年齡,職稱,工資) 教師關系2(教師號,崗位津貼,住址,電話) 這樣,便減少了查詢的數(shù)據(jù)傳遞量,提高了查詢速度。,136,垂直分解可以提高某些事務的效率,但也有可能使另一些事務不得不執(zhí)行連接操作,從而降低了效率。因此是否要進行垂直分解要看分解后的所有事務的總效率是否得到了提高。垂直分解要保證分解后的關系具有無損連接性和函數(shù)依賴保持性。 經(jīng)過多次的模式評價和模式改進之后,最終的數(shù)據(jù)庫模式得以確定。邏輯設計階段的結(jié)果是全局邏輯數(shù)據(jù)庫結(jié)構。對于關系數(shù)據(jù)庫系統(tǒng)來說,就是一組符合一定規(guī)范的關系模式組成的關系數(shù)據(jù)庫模型。 邏輯數(shù)據(jù)庫確定之后,就可以開始進行應用程序設計了。,137,數(shù)據(jù)庫最終要存儲在物理設備上。對于給定的邏輯數(shù)據(jù)模型,選取一個最適合應用環(huán)境的物理結(jié)構的過程,稱為數(shù)據(jù)庫物理設計。物理設計的任務是為了有效地實現(xiàn)邏輯模式,確定所采取的存儲策略。此階段是以邏輯設計的結(jié)果作為輸入,結(jié)合具體DBMS的特點與存儲設備特性進行設計,選定數(shù)據(jù)庫在物理設備上的存儲結(jié)構和存取方法。 數(shù)據(jù)庫的物理設計可分為兩步: (1) 確定物理結(jié)構,在關系數(shù)據(jù)庫中主要指存取方法和存儲結(jié)構; (2)評價物理結(jié)構,評價的重點是時間和空間效率。,7.5 數(shù)據(jù)庫物理設計,138,確定物理結(jié)構 設計人員必須深入了解給定的DBMS的功能,DBMS提供的環(huán)境和工具、硬件環(huán)境,特別是存儲設備的特征。另一方面也要了解應用環(huán)境的具體要求,如各種應用的數(shù)據(jù)量、處理頻率和響應時間等。只有“知己知彼”才能設計出較好的物理結(jié)構。 1存儲記錄結(jié)構的設計 在物理結(jié)構中,數(shù)據(jù)的基本存取單位是存儲記錄。有了邏輯記錄結(jié)構以后,就可以設計存儲記錄結(jié)構,一個存儲記錄可以和一個或多個邏輯記錄相對應。存儲記錄結(jié)構包括記錄的組成、數(shù)據(jù)項的類型和長度,以及邏輯記錄到存儲記錄的映射。某一類型的所有存儲記錄的集合稱為“文件”,文件的存儲記錄可以是定長的,也可以是變長的。 文件組織或文件結(jié)構是組成文件的存儲記錄的表示法。文件結(jié)構應該表示文件格式、邏輯次序、物理次序、訪問路徑、物理設備的分配。物理數(shù)據(jù)庫就是指數(shù)據(jù)庫中實際存儲記錄的格式、邏輯次序和物理次序、訪問路徑、物理設備的分配。 決定存儲結(jié)構的主要因素包括存取時間、存儲空間和維護代價三個方面。設計時應當根據(jù)實際情況對這三個方面進行綜合權衡。一般DBMS也提供一定的靈活性可供選擇,包括聚簇和索引。,139,(1) 聚簇(Cluster) 聚簇就是為了提高查詢速度,把在一個(或一組)屬性上具有相同值的元組集中地存放在一個物理塊中。如果存放不下,可以存放在相鄰的物理塊中。其中,這個(或這組)屬性稱為聚簇碼。 為什么要使用聚簇呢?聚簇有兩個作用: 使用聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇值不必在每個元組中重復存儲,只要在一組中存儲一次即可,因此可以節(jié)省存儲空間。 聚簇功能可以大大提高按聚簇碼進行查詢的效率。例如,假設要查詢學生關系中計算機系的學生名單,設計算機系有300名學生。在極端情況下,這些學生的記錄會分布在300個不同的物理塊中,這時如果要查詢計算機系的學生,就需要做300次的I/O操作,這將影響系統(tǒng)查詢的性能。如果按照系別建立聚簇,使同一個系的學生記錄集中存放,則每做一次I/O操作,就可以獲得多個滿足查詢條件和記錄,從而顯著地減少了訪問磁盤的次數(shù)。,140,(2) 索引 存儲記錄是屬性值的集合,主關系鍵可以惟一確定一個記錄,而其他屬性的一個具體值不能惟一確定是哪個記錄。在主關系鍵上應該建立惟一索引,這樣不但可以提高查詢速度,還能避免關系鍵重復值的錄入,確保了數(shù)據(jù)的完整性。 在數(shù)據(jù)庫中,用戶訪問的最小單位是屬性。如果對某些非主屬性的檢索很頻繁,可以考慮建立這些屬性的索引文件。索引文件對存儲記錄重新進行內(nèi)部鏈接,從邏輯上改變了記錄的存儲位置,從而改變了訪問數(shù)據(jù)的入口點。關系中數(shù)據(jù)越多索引的優(yōu)越性也就越明顯。 建立多個索引文件可以縮短存取時間,但是增加了索引文件所占用的存儲空間以及維護的開銷。因此,應該根據(jù)實際需要綜合考慮。,141,2訪問方法的設計 訪問方法是為存儲在物理設備(通常指輔存)上的數(shù)據(jù)提供存儲和檢索能力的方法。一個訪問方法包括存儲結(jié)構和檢索機構兩個部分。存儲結(jié)構限定了可能訪問的路徑和存儲記錄;檢索機構定義了每個應用的訪問路徑,但不涉及存儲結(jié)構的設計和設備分配。 存儲記錄是屬性的集合,屬性是數(shù)據(jù)項類型,可用作主鍵或輔助鍵。主鍵惟一地確定了一個記錄。輔助鍵是用作記錄索引的屬性,可能并不惟一確定某一個記錄。 訪問路徑的設計分成主訪問路徑與輔訪問路徑的設計。主訪問路徑與初始記錄的裝入有關,通常是用主鍵來檢索的。首先利用這種方法設計各個文件,使其能最有效地處理主要的應用。一個物理數(shù)據(jù)庫很可能有幾套主訪問路徑。輔訪問路徑是通過輔助鍵的索引對存儲記錄重新進行內(nèi)部鏈接,從而改變訪問數(shù)據(jù)的入口點。用輔助索引可以縮短訪問時間,但增加了輔存空間和索引維護的開銷。設計者應根據(jù)具體情況作出權衡。,142,3數(shù)據(jù)存放位置的設計 為了提高系統(tǒng)性能,應該根據(jù)應用情況將數(shù)據(jù)的易變部分、穩(wěn)定部分、經(jīng)常存取部分和存取頻率較低部分分開存放。 例如,目前許多計算機都有多個磁盤,因此可以將表和索引分別存放在不同的磁盤上,在查詢時,由于兩個磁盤驅(qū)動器并行工作,可以提高物理讀寫的速度。 在多用戶環(huán)境下,可能將日志文件和數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤上,以加快存取速度。另外,數(shù)據(jù)庫的數(shù)據(jù)備份、日志文件備份等,只在數(shù)據(jù)庫發(fā)生故障進行恢復時才使用,而且數(shù)據(jù)量很大,可以存放在磁帶上,以改進整個系統(tǒng)的性能。,143,4系統(tǒng)配置的設計 DBMS產(chǎn)品一般都提供了一些系統(tǒng)配置變量、存儲分配參數(shù),供設計人員和DBA對數(shù)據(jù)庫進行物理優(yōu)化。系統(tǒng)為這些變量設定了初始值,但是這些值不一定適合每一種應用環(huán)境,在物理設計階段,要根據(jù)實際情況重新對這些變量賦值,以滿足新的要求。 系統(tǒng)配置變量和參數(shù)很多,例如,同時使用數(shù)據(jù)庫的用戶數(shù)、同時打開的數(shù)據(jù)庫對象數(shù)、內(nèi)存分配參數(shù)、緩沖區(qū)分配參數(shù)(使用的緩沖區(qū)長度、個數(shù))、存儲分配參數(shù)、數(shù)據(jù)庫的大小、時間片的大小、鎖的數(shù)目等,這些參數(shù)值影響存取時間和存儲空間的分配,在物理設計時要根據(jù)應用環(huán)境確定這些參數(shù)值,以使系統(tǒng)的性能達到最優(yōu)。,144,2 評價物理結(jié)構 和前面幾個設計階段一樣,在確定了數(shù)據(jù)庫的物理結(jié)構之后,要進行評價,重點是時間和空間的效率。 如果評價結(jié)果滿足設計要求,則可進行數(shù)據(jù)庫實施。 實際上,往往需要經(jīng)過反復測試才能優(yōu)化物理設計。,145,數(shù)據(jù)庫實施是指根據(jù)邏輯設計和物理設計的結(jié)果,在計算機上建立起實際的數(shù)據(jù)庫結(jié)構、裝入數(shù)據(jù)、進行測試和試運行的過程。 數(shù)據(jù)庫實施主要包括以下工作: 建立實際數(shù)據(jù)庫結(jié)構; 裝入數(shù)據(jù); 應用程序編碼與調(diào)試; 數(shù)據(jù)庫試運行; 整理文檔。,7.6 數(shù)據(jù)庫實施,146,1 建立實際數(shù)據(jù)庫結(jié)構 DBMS提供的數(shù)據(jù)定義語言(DDL)可以定義數(shù)據(jù)庫結(jié)構??墒褂玫?章所講的SQL定義語句中的CREATE TABLE語句定義所需的基本表,使用CREATE VIEW語句定義視圖。 2 裝入數(shù)據(jù) 裝入數(shù)據(jù)又稱為數(shù)據(jù)庫加載(Loading),是數(shù)據(jù)庫實施階段的主要工作。在數(shù)據(jù)庫結(jié)構建立好之后,就可以向數(shù)據(jù)庫中加載數(shù)據(jù)了。 由于數(shù)據(jù)庫的數(shù)據(jù)量一般都很大,它們分散于一個企業(yè)(或組織)中各個部門的數(shù)據(jù)文件、報表或多種形式的單據(jù)中,它們存在著大量的重復,并且其格式和結(jié)構一般都不符合數(shù)據(jù)庫的要求,必須把這些數(shù)據(jù)收集起來加以整理,去掉冗余并轉(zhuǎn)換成數(shù)據(jù)庫所規(guī)定的格式,這樣處理之后才能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國男士全棉內(nèi)褲行業(yè)市場發(fā)展現(xiàn)狀及商業(yè)模式與投融資戰(zhàn)略報告
- 2025至2030中國電動控制元件行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國電冰箱行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 中醫(yī)教育資源國際共享與跨文化教學研究
- 非公企業(yè)黨建培訓課件
- 教育行業(yè)中的科技驅(qū)動力量-論區(qū)塊鏈在學術誠信建設中的重要性
- 智慧安防保護每一座學校-智能監(jiān)控系統(tǒng)的實踐
- 教育技術評估模型的構建及其在實踐中的應用研究
- 智慧城市公共服務中的教育系統(tǒng)優(yōu)化研究
- 商業(yè)環(huán)境中員工心理健康的支持體系
- 2025區(qū)域型變電站智能巡視系統(tǒng)技術規(guī)范
- 財務報表編制與審核合同模板
- 上海閔行區(qū)教育系統(tǒng)招聘實驗員考試真題2024
- 建設部建設工程重大質(zhì)量安全事故應急預案
- 2025年中航油招聘筆試參考題庫附帶答案詳解
- 2024年中國中高端電子鋁箔行業(yè)市場調(diào)查報告
- DB54∕T 0275-2023 民用建筑節(jié)能技術標準
- 2022版體育與健康課程標準
- 《陸上風電場工程概算定額》NBT 31010-2019
- 藥品不良反應報告事件表
- DB31T 405-2021 集中空調(diào)通風系統(tǒng)衛(wèi)生管理規(guī)范
評論
0/150
提交評論