第七章數(shù)據(jù)庫設計_第1頁
第七章數(shù)據(jù)庫設計_第2頁
第七章數(shù)據(jù)庫設計_第3頁
第七章數(shù)據(jù)庫設計_第4頁
第七章數(shù)據(jù)庫設計_第5頁
已閱讀5頁,還剩224頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論An Introduction to Database System第七章第七章 數(shù)據(jù)庫設計數(shù)據(jù)庫設計主講: 莊鎖法目的要求目的要求 理解數(shù)據(jù)庫設計的特點、方法、步驟; 掌握需求分析、概念結構設計、邏輯結構設計; 理解數(shù)據(jù)庫的實施和維護?;緝?nèi)容基本內(nèi)容 數(shù)據(jù)庫設計概述; 需求分析; 概念結構設計; 邏輯結構設計; 數(shù)據(jù)庫的物理設計; 數(shù)據(jù)庫的實施和維護。重點難點重點難點重點: 概念結構設計和邏輯結構設計。難點: 系統(tǒng)需求分析。第七章 數(shù)據(jù)庫設計7.1 數(shù)據(jù)庫設計概述數(shù)據(jù)庫設計概述7.2 需求分析需求分析7.3 概念結構設計概念結構設計7.4 邏輯結構設計邏輯結構設

2、計7.5 數(shù)據(jù)庫的物理設計數(shù)據(jù)庫的物理設計7.6 數(shù)據(jù)庫實施和維護數(shù)據(jù)庫實施和維護7.7 小結小結數(shù)據(jù)庫設計概述n 數(shù)據(jù)庫設計數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構造(設計)優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結構邏輯模式和物理結構,并據(jù)此建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲存儲和管理管理數(shù)據(jù),滿足各種用戶的應用需求,包括信息管理要求和數(shù)據(jù)操作要求。目標:為用戶和各種應用系統(tǒng)提供一個信息基礎設施和高效率的運行環(huán)境7.1 數(shù)據(jù)庫設計概述7.1.1 數(shù)據(jù)庫設計的特點數(shù)據(jù)庫設計的特點7.1.2 數(shù)據(jù)庫設計方法數(shù)據(jù)庫設計方法7.1.3 數(shù)據(jù)庫設計的基本步驟數(shù)據(jù)庫設計的基本步驟7.1.4 數(shù)據(jù)庫設計過程中

3、的各級模式數(shù)據(jù)庫設計過程中的各級模式7.1.1 數(shù)據(jù)庫設計的特點數(shù)據(jù)庫建設的基本規(guī)律n三分技術,七分管理,十二分基礎數(shù)據(jù) 管理 數(shù)據(jù)庫建設項目管理 企業(yè)(即應用部門)的業(yè)務管理 基礎數(shù)據(jù) 收集、入庫 更新新的數(shù)據(jù)n結構(數(shù)據(jù))設計和行為(處理)設計相結合 將數(shù)據(jù)庫結構設計和數(shù)據(jù)處理設計密切結合數(shù)據(jù)庫設計的特點(續(xù))現(xiàn)實世界現(xiàn)實世界概念模型設計概念模型設計子模式設計子模式設計物理數(shù)據(jù)庫設計物理數(shù)據(jù)庫設計邏輯數(shù)據(jù)庫設計邏輯數(shù)據(jù)庫設計建立數(shù)據(jù)庫建立數(shù)據(jù)庫數(shù)據(jù)分析數(shù)據(jù)分析功能分析功能分析功能模型功能模型功能說明功能說明事務設計事務設計程序說明程序說明應用程序設計應用程序設計程序編碼調試程序編碼調試結構

4、和行為分離的設計 7.1 數(shù)據(jù)庫設計概述7.1.1 數(shù)據(jù)庫設計的特點數(shù)據(jù)庫設計的特點7.1.2 數(shù)據(jù)庫設計方法數(shù)據(jù)庫設計方法7.1.3 數(shù)據(jù)庫設計的基本步驟數(shù)據(jù)庫設計的基本步驟7.1.4 數(shù)據(jù)庫設計過程中的各級模式數(shù)據(jù)庫設計過程中的各級模式7.1.2 數(shù)據(jù)庫設計方法n 手工與經(jīng)驗相結合方法 設計質量與設計人員的經(jīng)驗和水平有直接關系數(shù)據(jù)庫運行一段時間后常常不同程度地發(fā)現(xiàn)各種問題,增加了維護代價n規(guī)范設計法基本思想:過程迭代和逐步求精數(shù)據(jù)庫設計方法(續(xù))n新奧爾良(New Orleans)方法將數(shù)據(jù)庫設計分為若干階段和步驟 n基于E-R模型的數(shù)據(jù)庫設計方法概念設計階段廣泛采用n3NF(第三范式)的

5、設計方法邏輯階段可采用的有效方法 nODL(Object Definition Language)方法面向對象的數(shù)據(jù)庫設計方法數(shù)據(jù)庫設計方法(續(xù))n計算機輔助設計ORACLE Designer 2000SYBASE PowerDesigner7.1 數(shù)據(jù)庫設計概述7.1.1 數(shù)據(jù)庫設計的特點數(shù)據(jù)庫設計的特點7.1.2 數(shù)據(jù)庫設計方法數(shù)據(jù)庫設計方法7.1.3 數(shù)據(jù)庫設計的基本步驟數(shù)據(jù)庫設計的基本步驟7.1.4 數(shù)據(jù)庫設計過程中的各級模式數(shù)據(jù)庫設計過程中的各級模式7.1.3 數(shù)據(jù)庫設計的基本步驟n數(shù)據(jù)庫設計分6個階段需求分析概念結構設計邏輯結構設計物理結構設計數(shù)據(jù)庫實施數(shù)據(jù)庫運行和維護 n需求分析

6、和概念設計獨立于任何數(shù)據(jù)庫管理系統(tǒng) n邏輯設計和物理設計與選用的DBMS密切相關數(shù)據(jù)庫設計的基本步驟(續(xù))一、數(shù)據(jù)庫設計的準備工作:選定參加設計的人1.系統(tǒng)分析人員、數(shù)據(jù)庫設計人員 自始至終參與數(shù)據(jù)庫設計2. 用戶和數(shù)據(jù)庫管理員 主要參加需求分析和數(shù)據(jù)庫的運行維護3.應用開發(fā)人員(程序員和操作員) 在系統(tǒng)實施階段參與進來,負責編制程序和準備軟硬件環(huán)境 數(shù)據(jù)庫設計的基本步驟(續(xù))二、數(shù)據(jù)庫設計的過程(六個階段) 需求分析階段準確了解與分析用戶需求(包括數(shù)據(jù)與處理)最困難、最耗費時間的一步數(shù)據(jù)庫設計的基本步驟(續(xù))概念結構設計階段整個數(shù)據(jù)庫設計的關鍵通過對用戶需求進行綜合、歸納與抽象,形成一個獨立

7、于具體DBMS的概念模型數(shù)據(jù)庫設計的基本步驟(續(xù))邏輯結構設計階段將概念結構轉換為某個DBMS所支持的數(shù)據(jù)模型對其進行優(yōu)化數(shù)據(jù)庫設計的基本步驟(續(xù))數(shù)據(jù)庫物理設計階段為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結構(包括存儲結構和存取方法)數(shù)據(jù)庫設計的基本步驟(續(xù))數(shù)據(jù)庫實施階段運用DBMS提供的數(shù)據(jù)庫語言(如SQL)及宿主語言,根據(jù)邏輯設計和物理設計的結果建立數(shù)據(jù)庫編制與調試應用程序組織數(shù)據(jù)入庫進行試運行數(shù)據(jù)庫設計的基本步驟(續(xù))數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫應用系統(tǒng)經(jīng)過試運行后即可投入正式運行在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調整與修改數(shù)據(jù)庫設計的基本步驟(續(xù)) 設計一個完善的數(shù)據(jù)庫

8、應用系統(tǒng)往往是上述六個階段的不斷反復(P202圖7.2)n把數(shù)據(jù)庫設計和對數(shù)據(jù)庫中數(shù)據(jù)處理的設計緊密結合起來n將這兩個方面的需求分析、抽象、設計、實現(xiàn)在各個階段同時進行,相互參照,相互補充,以完善兩方面的設計數(shù)據(jù)庫設計各個階段的設計描述7.1 數(shù)據(jù)庫設計概述7.1.1 數(shù)據(jù)庫設計的特點數(shù)據(jù)庫設計的特點7.1.2 數(shù)據(jù)庫設計方法數(shù)據(jù)庫設計方法7.1.3 數(shù)據(jù)庫設計的基本步驟數(shù)據(jù)庫設計的基本步驟7.1.4 數(shù)據(jù)庫設計過程中的各級模式數(shù)據(jù)庫設計過程中的各級模式7.1.4數(shù)據(jù)庫設計過程中的各級模式數(shù)據(jù)庫設計不同階段形成的數(shù)據(jù)庫各級模式數(shù)據(jù)庫的各級模式 第七章 數(shù)據(jù)庫設計7.1 數(shù)據(jù)庫設計概述數(shù)據(jù)庫設計

9、概述7.2 需求分析需求分析7.3 概念結構設計概念結構設計7.4 邏輯結構設計邏輯結構設計7.5 數(shù)據(jù)庫的物理設計數(shù)據(jù)庫的物理設計7.6 數(shù)據(jù)庫實施和維護數(shù)據(jù)庫實施和維護7.7 小結小結7.2 需求分析7.2.1 需求分析的任務需求分析的任務7.2.2 需求分析的方法需求分析的方法7.2.3 數(shù)據(jù)字典數(shù)據(jù)字典需求分析的任務n詳細調查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等)n充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))n明確用戶的各種需求n確定新系統(tǒng)的功能n充分考慮今后可能的擴充和改變需求分析的重點n調查的重點是“數(shù)據(jù)”和“處理”,獲得用戶對數(shù)據(jù)庫要求 信息要求(信息的內(nèi)容與性質 )處理要求(什么

10、處理 ,響應時間 ,處理方式等)安全性與完整性要求企業(yè)的環(huán)境特征(企業(yè)的規(guī)模與結構 ,規(guī)定與要求,對系統(tǒng)費用、利益的限制 ) 需求分析的難點n確定用戶最終需求用戶缺少計算機知識設計人員缺少用戶的專業(yè)知識n解決方法設計人員必須不斷深入地與用戶進行交流7.2 需求分析7.2.1 需求分析的任務需求分析的任務7.2.2 需求分析的方法需求分析的方法7.2.3 數(shù)據(jù)字典數(shù)據(jù)字典7.2.2 需求分析的方法n調查需求n達成共識n分析表達需求調查用戶需求的具體步驟 調查組織機構情況 調查各部門的業(yè)務活動情況。 在熟悉業(yè)務活動的基礎上,協(xié)助用戶明確對新系統(tǒng)的各種要求。 確定新系統(tǒng)的邊界常用調查方法(1)跟班作

11、業(yè)(2)開調查會(3)請專人介紹(4)詢問(5)設計調查表請用戶填寫(6)查閱記錄進一步分析和表達用戶需求n結構化分析方法(Structured Analysis,簡稱SA方法)從最上層的系統(tǒng)組織機構入手 自頂向下、逐層分解分析系統(tǒng)進一步分析和表達用戶需求(續(xù))1首先把任何一個系統(tǒng)都抽象為:數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)數(shù)據(jù)存儲存儲信息要求信息要求數(shù)據(jù)數(shù)據(jù)來源來源處理處理數(shù)據(jù)數(shù)據(jù)輸出輸出處理要求處理要求進一步分析和表達用戶需求(續(xù))2分解處理功能和數(shù)據(jù) (1)分解處理功能將處理功能的具體內(nèi)容分解為若干子功能 (2)分解數(shù)據(jù)處理功能逐步分解同時,逐級分解所用數(shù)據(jù),形成若干層次的數(shù)據(jù)流圖 (3)表達

12、方法 處理邏輯:用判定表或判定樹來描述 數(shù)據(jù):用數(shù)據(jù)字典來描述3將分析結果再次提交給用戶,征得用戶的認可需求分析過程需求分析過程 7.2 需求分析7.2.1 需求分析的任務需求分析的任務7.2.2 需求分析的方法需求分析的方法7.2.3 數(shù)據(jù)字典數(shù)據(jù)字典7.2.3 數(shù)據(jù)字典n 數(shù)據(jù)字典的用途進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結果n 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)項數(shù)據(jù)結構數(shù)據(jù)流數(shù)據(jù)存儲處理過程 數(shù)據(jù)項n 數(shù)據(jù)項是不可再分的數(shù)據(jù)單位n 對數(shù)據(jù)項的描述 數(shù)據(jù)項描述數(shù)據(jù)項描述 數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名,數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名, 數(shù)據(jù)類型,長度,取值范圍,取值含義,數(shù)據(jù)類型,長度,取值范圍,取

13、值含義,與其他數(shù)據(jù)項的邏輯關系,數(shù)據(jù)項之間的與其他數(shù)據(jù)項的邏輯關系,數(shù)據(jù)項之間的聯(lián)系聯(lián)系 數(shù)據(jù)字典舉例例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。 數(shù)據(jù)項,以“學號”為例: 數(shù)據(jù)項:學號 含義說明:唯一標識每個學生別名:學生編號 類型:字符型 長度:8 取值范圍:00000000至99999999取值含義:前兩位標別該學生所在年級, 后六位按順序編號與其他數(shù)據(jù)項的邏輯關系: 數(shù)據(jù)結構n數(shù)據(jù)結構反映了數(shù)據(jù)之間的組合關系。n 一個數(shù)據(jù)結構可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結構組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結構混合組成。n 對數(shù)據(jù)結構的描述 數(shù)據(jù)結構描述數(shù)據(jù)結構名,含義說明,數(shù)據(jù)結構描述數(shù)據(jù)結構名,含義

14、說明, 組成組成:數(shù)據(jù)項或數(shù)據(jù)結構數(shù)據(jù)項或數(shù)據(jù)結構數(shù)據(jù)結構,以“學生”為例“學生”是該系統(tǒng)中的一個核心數(shù)據(jù)結構: 數(shù)據(jù)結構:學生 含義說明:是學籍管理子系統(tǒng)的主體數(shù)據(jù)結構, 定義了一個學生的有關信息 組成:學號,姓名,性別,年齡,所在系,年級數(shù)據(jù)字典舉例 數(shù)據(jù)流n 數(shù)據(jù)流是數(shù)據(jù)結構在系統(tǒng)內(nèi)傳輸?shù)穆窂健 對數(shù)據(jù)流的描述 數(shù)據(jù)流描述數(shù)據(jù)流描述 數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流名,說明,數(shù)據(jù)流來源, 數(shù)據(jù)流去向,組成數(shù)據(jù)流去向,組成:數(shù)據(jù)結構,數(shù)據(jù)結構, 平均流量,高峰期流量平均流量,高峰期流量數(shù)據(jù)流,“體檢結果”可如下描述: 數(shù)據(jù)流:體檢結果 說明:學生參加體格檢查的最終結果 數(shù)據(jù)流來源:體檢

15、 數(shù)據(jù)流去向:批準 組成:平均流量:高峰期流量:數(shù)據(jù)字典舉例 數(shù)據(jù)存儲n數(shù)據(jù)存儲是數(shù)據(jù)結構停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。n對數(shù)據(jù)存儲的描述 數(shù)據(jù)存儲描述數(shù)據(jù)存儲名,說明,編號,數(shù)據(jù)存儲描述數(shù)據(jù)存儲名,說明,編號,輸入的數(shù)據(jù)流輸入的數(shù)據(jù)流 ,輸出的數(shù)據(jù)流,輸出的數(shù)據(jù)流 ,組成組成:數(shù)據(jù)結構,數(shù)據(jù)量,存取頻度,數(shù)據(jù)結構,數(shù)據(jù)量,存取頻度,存取方式存取方式數(shù)據(jù)存儲,“學生登記表”可如下描述: 數(shù)據(jù)存儲:學生登記表 說明:記錄學生的基本情況流入數(shù)據(jù)流: 流出數(shù)據(jù)流: 組成: 數(shù)據(jù)量:每年3000張 存取方式:隨機存取 數(shù)據(jù)字典舉例 處理過程n具體處理邏輯一般用判定表或判定樹來描述n處理

16、過程說明性信息的描述處理過程描述處理過程名,說明,輸入處理過程描述處理過程名,說明,輸入:數(shù)據(jù)流,數(shù)據(jù)流, 輸出輸出:數(shù)據(jù)流,處理數(shù)據(jù)流,處理:簡要說明簡要說明處理過程“分配宿舍”可如下描述:處理過程:分配宿舍說明:為所有新生分配學生宿舍輸入:學生,宿舍輸出:宿舍安排處理:在新生報到后,為所有新生分配學生宿舍。 要求同一間宿舍只能安排同一性別的學生, 同一個學生只能安排在一個宿舍中。 每個學生的居住面積不小于3平方米。 安排新生宿舍其處理時間應不超過15分鐘。 數(shù)據(jù)字典舉例數(shù)據(jù)字典n數(shù)據(jù)字典是關于數(shù)據(jù)庫中數(shù)據(jù)的描述,是元數(shù)據(jù),而不是數(shù)據(jù)本身n數(shù)據(jù)字典在需求分析階段建立,在數(shù)據(jù)庫設計過程中不斷修

17、改、充實、完善 需求分析小結n設計人員應充分考慮到可能的擴充和改變,使設計易于更改,系統(tǒng)易于擴充 n必須強調用戶的參與數(shù)據(jù)流圖表達了數(shù)據(jù)與處理的關系的圖。 學生選課一、數(shù)據(jù)流圖的基本元素一、數(shù)據(jù)流圖的基本元素數(shù)據(jù)流圖中只能有四種基本元素,如下:描述一個處理。輸入數(shù)據(jù)在此進行變換產(chǎn)生輸出數(shù)據(jù)。其中注明處理的名稱。學生描述一個輸入源點或輸出匯點。其中注明源點或匯點的名稱。 描述一個數(shù)據(jù)流。被加工的數(shù)據(jù)及其流向。流線上注明數(shù)據(jù)名稱,箭頭代表數(shù)據(jù)流動方向。 描述一個數(shù)據(jù)存儲。通常用于代表一個數(shù)據(jù)表,其中注明數(shù)據(jù)表的名稱。學生(Student)數(shù)據(jù)流圖舉例 學生選課的數(shù)據(jù)流圖二、分層數(shù)據(jù)流圖二、分層數(shù)據(jù)

18、流圖為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,用一個數(shù)據(jù)流圖往往是不夠的。稍為復雜的實際問題,在數(shù)據(jù)流圖上常常出現(xiàn)十幾個甚至幾十個加工。這樣的數(shù)據(jù)流圖看起來很不清楚。 層次結構的數(shù)據(jù)流圖能很好地解決這一問題。按照系統(tǒng)的層次結構進行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結構關系,能清楚地表達和容易理解整個系統(tǒng)。下圖給出分層數(shù)據(jù)流圖的示例。數(shù)據(jù)處理S包括三個子系統(tǒng)1、2、3。頂層下面的第一層數(shù)據(jù)流圖為DFDL1。第二層數(shù)據(jù)流圖DFDL2.1、DFDL2.2及DFDL2.3分別是子系統(tǒng)1、2和3的細化。對任何一層數(shù)據(jù)流圖來說,我們稱它的上層圖為父圖,在它下一層的圖則稱為子圖。三、畫數(shù)據(jù)流圖的步驟和原則三、畫

19、數(shù)據(jù)流圖的步驟和原則基本步驟基本步驟:自外向內(nèi),自頂向下,逐層細化,完善求精。 基本原則基本原則: 數(shù)據(jù)流圖上所有圖形符號只限于前述四種基本元素。 頂層數(shù)據(jù)流圖必須包括前述四種基本元素,缺一不可。 頂層數(shù)據(jù)流圖上的數(shù)據(jù)流必須封閉在外部實體之間。 每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流。 在數(shù)據(jù)流圖中,需按層給加工框編號。編號表明該加工處在哪一層,以及上下層的父圖與子圖的對應關系。 規(guī)定任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應,兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡。 可以在數(shù)據(jù)流圖中加入物質流,幫助用戶理解數(shù)據(jù)流圖。 圖上每個元素都必須有名字。數(shù)據(jù)流和數(shù)據(jù)文件的

20、名字應當是“名詞”或“名詞性短語”,表明流動的數(shù)據(jù)是什么。加工的名字應當是“名詞賓語”,表明做什么事情。 數(shù)據(jù)流圖中不可夾帶控制流。 初畫時可以忽略瑣碎的細節(jié),以集中精力于主要數(shù)據(jù)流。 數(shù)據(jù)字典應用舉例數(shù)據(jù)字典應用舉例以學生選課數(shù)據(jù)字典為例簡要說明如何定義數(shù)據(jù)字典。學生選課的數(shù)據(jù)流圖如下: 數(shù)據(jù)項數(shù)據(jù)項:以“學號”為例數(shù)據(jù)項名:學號數(shù)據(jù)項含義:唯一標識每一個學生別名:學生編號數(shù)據(jù)類型:字符型長度:8取值范圍:0000099999取值含義:前2位為入學年號,后3位為順序編號與其他數(shù)據(jù)項的邏輯關系:(無) 數(shù)據(jù)結構數(shù)據(jù)結構:以“學生”為例數(shù)據(jù)結構名:學生含義說明:是學籍管理子系統(tǒng)的主體數(shù)據(jù)結構,定

21、義了一個學生的有關信息組成:學號,姓名,性別,年齡,所在系 數(shù)據(jù)流數(shù)據(jù)流:以“選課信息”為例數(shù)據(jù)流名:選課信息說明:學生所選課程信息數(shù)據(jù)流來源:“學生選課”處理數(shù)據(jù)流去向:“學生選課”存儲組成:學號,課程號平均流量:每天10個高峰期流量:每天100個 數(shù)據(jù)存儲數(shù)據(jù)存儲:以“學生選課”為例數(shù)據(jù)存儲名:學生選課說明:記錄學生所選課程的成績編號:(無)流入的數(shù)據(jù)流:選課信息,成績信息流出的數(shù)據(jù)流:選課信息,成績信息組成:學號,課程號,成績數(shù)據(jù)量:50000個記錄存取方式:隨機存取 處理過程處理過程:以“學生選課”為例處理過程名:學生選課說明:學生從可選修的課程中選出課程輸入數(shù)據(jù)流:學生,課程輸出數(shù)據(jù)

22、流:學生選課處理:每學期學生都可以從公布的選修課程中選修自己愿意選修的課程,選課時有些選修課有先修課程的要求,還要保證選修課的上課時間不能與該生必修課時間相沖突,每個學生四年內(nèi)的選修課門數(shù)不能超過8門。第七章 數(shù)據(jù)庫設計7.1 數(shù)據(jù)庫設計概述數(shù)據(jù)庫設計概述7.2 需求分析需求分析7.3 概念結構設計概念結構設計7.4 邏輯結構設計邏輯結構設計7.5 數(shù)據(jù)庫的物理設計數(shù)據(jù)庫的物理設計7.6 數(shù)據(jù)庫實施和維護數(shù)據(jù)庫實施和維護7.7 小結小結7.3 概念結構設計7.3.1 概念結構概念結構7.3.2 概念結構設計的方法與步驟概念結構設計的方法與步驟7.3.3 數(shù)據(jù)抽象與局部視圖設計數(shù)據(jù)抽象與局部視圖

23、設計7.3.4 視圖的集成視圖的集成7.3.1 概念結構n什么是概念結構設計將需求分析得到的用戶需求抽象為信息結構信息結構(概念模型概念模型) 的過程就是概念結構設計概念結構是各種數(shù)據(jù)模型的共同基礎,它比數(shù)據(jù)模型更獨立于機器、更抽象概念結構設計是整個數(shù)據(jù)庫設計的關鍵概念結構概念結構是對現(xiàn)實世界的一種抽象,即對實際的人、物、事和概念進行人為處理,抽取人們關心的共同特性,忽略非本質的細節(jié),并把這些特性用各種概念精確地加以描述。 概念結構(續(xù))現(xiàn)實世界現(xiàn)實世界機器世界機器世界信息世界信息世界需求分析需求分析(認知認知)概念結構設計概念結構設計(描述描述)概念結構(續(xù))n概念結構設計的特點n 能真實、

24、充分地反映現(xiàn)實世界反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實世界的一個真實模型。n 易于理解易于理解,從而可以用它和不熟悉計算機的用戶交換意見。n 易于改進易于改進,當應用環(huán)境和應用要求改變時,容易對概念模型修改和擴充。n 易于易于向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉換轉換。 概念結構(續(xù))n描述概念模型的工具E-R模型7.3 概念結構設計7.3.1 概念結構概念結構7.3.2 概念結構設計的方法與步驟概念結構設計的方法與步驟7.3.3 數(shù)據(jù)抽象與局部視圖設計數(shù)據(jù)抽象與局部視圖設計7.3.4 視圖的集成視圖的集成7.3.2 概念結構設計的方法與步驟n設計概念結構

25、的四類方法自頂向下自頂向下 首先定義全局概念結構的框架,然后逐步細化自頂向下策略自底向上自底向上 首先定義各局部應用的概念結構,然后將它們集成起來,得到全局概念結構自底向上策略逐步擴張逐步擴張 首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構逐步擴張策略混合策略混合策略 將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的框架,以它為骨架集成由自底向上策略中設計的各局部概念結構。n經(jīng)常采用的概念結構設計方法p自頂向下地進行需求分析p自底向上地設計概念結構自底向上概念結構設計的方法,通常分為兩步:抽象數(shù)據(jù)并設計局部視圖;集成局部視圖,得

26、到全局的概念結構。但無論采用哪種設計方法,一般都以E-R模型為工具來描述概念結構。如下圖。 7.3 概念結構設計7.3.1 概念結構概念結構7.3.2 概念結構設計的方法與步驟概念結構設計的方法與步驟7.3.3 數(shù)據(jù)抽象與局部視圖設計數(shù)據(jù)抽象與局部視圖設計7.3.4 視圖的集成視圖的集成數(shù)據(jù)抽象n抽象是對實際的人、物、事和概念中抽取所關心的共同特性共同特性,忽略非本質的細節(jié),并把這些特性用各種概念精確地加以描述。概念結構是對現(xiàn)實世界的一種抽象7.3.3 數(shù)據(jù)抽象與局部視圖設計n三種常用抽象1. 分類(Classification)定義某一類概念作為現(xiàn)實世界中一組對象的類型。這些對象具有某些共同

27、共同的特性和行為的特性和行為。 數(shù)據(jù)抽象(續(xù))抽象了對象值和型值和型之間的“is member of”的語義數(shù)據(jù)抽象(續(xù))2. 聚集(Aggregation)定義某一類型的組成成分實體型屬性集合數(shù)據(jù)抽象(續(xù)) 聚集抽象 抽象了對象內(nèi)部類型和成分之間“is part of”的語義數(shù)據(jù)抽象(續(xù)) 復雜的聚集,某一類型的成分仍是一個聚集 更復雜的聚集 數(shù)據(jù)抽象(續(xù))3. 概括(Generalization)定義類型之間的一種子集聯(lián)系抽象了類型之間的“is subset of”的語義繼承性(子集合具有父集合的共性和特征) 數(shù)據(jù)抽象(續(xù))概括抽象 局部視圖設計設計分E-R圖的步驟:選擇局部應用逐一設計分

28、E-R圖概念結構設計第一步就是根據(jù)需求分析的結果(數(shù)據(jù)流圖、數(shù)據(jù)字典等),利用上述抽象機制對現(xiàn)實世界的數(shù)據(jù)進行抽象,對數(shù)據(jù)進行分類,聚集和概況,確定現(xiàn)實世界中的實體,實體間聯(lián)系, 設計各個局部視圖,即:分E-R圖. 選擇局部應用n在多層的數(shù)據(jù)流圖中選擇一個適當層次的數(shù)據(jù)流圖,作為設計分E-R圖的出發(fā)點 n通常以中層數(shù)據(jù)流圖中層數(shù)據(jù)流圖作為設計分E-R圖的依據(jù)選擇局部應用(續(xù))設計分E-R圖的出發(fā)點 逐一設計分E-R圖n任務將各局部應用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來參照數(shù)據(jù)流圖,標定各局部應用中的實體、實體的屬性、標識實體的碼確定實體之間的聯(lián)系及其類型(1:1,1:n,m:n)設計分E-R圖

29、的原則n兩條準則:(1)屬性不能再具有需要描述的性質。即屬性必須是不可分的數(shù)據(jù)項不可分的數(shù)據(jù)項,不能再由另一些屬性組成(2)屬性不能與其他實體具有聯(lián)系。聯(lián)系只聯(lián)系只發(fā)生在實體之間發(fā)生在實體之間實體和屬性沒有嚴格的劃分,但是為了簡化E-R圖的處理,現(xiàn)實世界的事物能作為屬性對待的,盡量作為屬性對待.逐一設計分E-R圖(續(xù))職稱作為一個實體逐一設計分E-R圖(續(xù))病房作為一個實體逐一設計分E-R圖(續(xù))倉庫作為一個實體實例銷售管理子系統(tǒng)分實例銷售管理子系統(tǒng)分E-R圖的設計圖的設計逐一設計分E-R圖(續(xù))某工廠開發(fā)管理信息系統(tǒng),經(jīng)過可行性分析和詳細調查,確定了該系統(tǒng)由物資管理、銷售管理、勞動人事管理等

30、子系統(tǒng)組成。 銷售管理子系統(tǒng)的主要功能:n處理顧客和銷售員送來的訂單n工廠是根據(jù)訂貨安排生產(chǎn)的n交出貨物同時開出發(fā)票n收到顧客付款后,根據(jù)發(fā)票存根和信貸情況進行應收款處理n下圖是第一層數(shù)據(jù)流圖,虛線部分劃出了系統(tǒng)邊界 圖7.18 銷售管理子系統(tǒng)第一層數(shù)據(jù)流圖 n上圖中把系統(tǒng)功能又分為幾個子系統(tǒng),下面四個圖是第二層數(shù)據(jù)流圖 圖7.19 接收訂單 圖7.20 處理訂單 圖7.21 開發(fā)票 圖7.22 支付過賬 逐一設計分E-R圖(續(xù))分E-R圖的框架 逐一設計分E-R圖(續(xù))n參照第二層數(shù)據(jù)流圖和數(shù)據(jù)字典,遵循兩個準則,進行如下調整:(1) 訂單與訂單細節(jié)是1 n的聯(lián)系(2) 原訂單和產(chǎn)品的聯(lián)系實

31、際上是訂單細節(jié)和產(chǎn)品的聯(lián)系。(3) 圖7.21中“發(fā)票主清單”是一個數(shù)據(jù)存儲,不必作為實體加入分E-R圖(4) 工廠對大宗訂貨給予優(yōu)惠逐一設計分E-R圖(續(xù))n得到分E-R圖如下圖所示 銷售管理子系統(tǒng)的分E-R圖 逐一設計分E-R圖(續(xù))對每個實體定義的屬性如下:顧客:顧客號,顧客名,地址,電話,信貸狀況,賬目余額訂單:訂單號,顧客號,訂貨項數(shù),訂貨日期,交貨日期,工種號,生產(chǎn)地點訂單細則:訂單號,細則號,零件號,訂貨數(shù),金額應收賬款:顧客號,訂單號,發(fā)票號,應收金額,支付日期,支付金額,當前余額,貨款限額產(chǎn)品描述:產(chǎn)品號,產(chǎn)品名,單價,重量折扣規(guī)則:產(chǎn)品號,訂貨量,折扣7.3 概念結構設計7

32、.3.1 概念結構概念結構7.3.2 概念結構設計的方法與步驟概念結構設計的方法與步驟7.3.3 數(shù)據(jù)抽象與局部視圖設計數(shù)據(jù)抽象與局部視圖設計7.3.4 視圖的集成視圖的集成7.3.4 視圖的集成n各個局部視圖即分E-R圖建立好后,還需要對它們進行合并,集成為一個整體的數(shù)據(jù)概念結構即總E-R圖。視圖集成的兩種方式n多個分E-R圖一次集成 一次集成多個分E-R圖通常用于局部視圖比較簡單時視圖的集成(續(xù))n逐步集成用累加的方式一次集成兩個分E-R圖 視圖的集成(續(xù))n集成局部E-R圖的步驟1. 合并去沖突合并去沖突(分分E-R合并為初步合并為初步E-R圖圖)2. 修改與重構去冗余修改與重構去冗余(

33、初步初步E-R基本基本E-R圖圖)視圖的集成(續(xù))視圖集成 第一步:合并分E-R圖,生成初步E-R圖n 各分E-R圖存在沖突各個分E-R圖之間必定會存在許多不一致的地方n合并分E-R圖的主要工作與關鍵合理消除各分E-R圖的沖突合并分E-R圖,生成初步E-R圖(續(xù))n 沖突的種類屬性沖突命名沖突結構沖突 屬性沖突n兩類屬性沖突屬性域沖突屬性域沖突屬性值的類型取值范圍 取值集合不同屬性取值單位沖突屬性取值單位沖突 命名沖突n兩類命名沖突同名異義同名異義:不同意義的對象在不同的局部應用中具有相同的名字異名同義(一義多名)異名同義(一義多名):同一意義的對象在不同的局部應用中具有不同的名字 結構沖突n

34、三類結構沖突同一對象在不同應用中具有同一對象在不同應用中具有不同的抽象不同的抽象(例如例如“課程課程”在某一局部應用中被當作實體,而在另一局部應用中則被在某一局部應用中被當作實體,而在另一局部應用中則被當作屬性。當作屬性。 )同一實體在不同分同一實體在不同分E-R圖中所包含的圖中所包含的屬性個數(shù)和屬屬性個數(shù)和屬性排列次序性排列次序不完全相同不完全相同實體之間的實體之間的聯(lián)系聯(lián)系在不同局部視圖中呈現(xiàn)不同的類在不同局部視圖中呈現(xiàn)不同的類型型(多多聯(lián)系多多聯(lián)系,一多聯(lián)系一多聯(lián)系,兩個實體間聯(lián)系兩個實體間聯(lián)系,多個實體間聯(lián)系多個實體間聯(lián)系)第二步第二步:消除不必要的冗余,設計基本消除不必要的冗余,設計

35、基本E-R圖圖分E-R圖中可能存在冗余的數(shù)據(jù)和實體間冗余的聯(lián)系。冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫維護增加困難,因此得到初步E-R圖后,應該通過修改與重構,消除不必要的冗余。冗余的數(shù)據(jù)指可由基本數(shù)據(jù)導出的數(shù)據(jù)。冗余的聯(lián)系指可由其他聯(lián)系導出的聯(lián)系。消除冗余的方法n分析方法以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù)根據(jù)數(shù)據(jù)字典中關于數(shù)據(jù)項之間的邏輯關系n規(guī)范化理論函數(shù)依賴的概念消除冗余聯(lián)系注意:并不是所有的冗余數(shù)據(jù)與冗余聯(lián)系都必須加以清除;并不是范式越高就越好,需要根據(jù)用戶需要根據(jù)用戶的整體需求來確定。的整體需求來確定。效率效率VS冗余信息冗余信息分析方法舉例:冗余數(shù)據(jù): Q3=Q1XQ2 Q4=

36、Q5冗余聯(lián)系: 使用構成消耗 若人為地保留了一些冗余數(shù)據(jù),則應把數(shù)據(jù)字典中數(shù)據(jù)關聯(lián)的說明作為完整性約束條件nQ4=Q5n一旦Q5修改后就應當觸發(fā)完整性檢查,對Q4進行修改 如果需要經(jīng)常性查詢材料的庫存量Q4,若每次查詢每個倉庫的庫存量Q5,再求和則效率較低。所以這種情況下可以考慮保留冗余數(shù)據(jù)Q4規(guī)范化理論方法舉例:方法1. 確定分E-R圖實體之間的數(shù)據(jù)依賴 ,并用實體碼之間的函數(shù)依賴表示。勞動人事管理的分E-R圖 部門和職工之間一對多的屬于聯(lián)系可表示為: 職工號部門號職工和項目之間多對多的生產(chǎn)聯(lián)系可表示為: (職工號,項目號)工作天數(shù) p職工和項目產(chǎn)品之間一對一的負責聯(lián)系可表示為:職工號項目號

37、函數(shù)依賴集函數(shù)依賴集FLFL=職工號部門號, (職工號,項目號)工作天數(shù) ,職工號項目號消除冗余的方法(續(xù))2. 求FL的最小覆蓋GL ,差集為D = FL-GL。 逐一考察D中的函數(shù)依賴,確定是否是冗余的聯(lián)系,若是,就把它去掉。(1) 冗余的聯(lián)系一定在D中,而D中的聯(lián)系不一定是冗余的;(2) 當實體之間存在多種聯(lián)系時要將實體之間的聯(lián)系在形式上加以區(qū)分。消除冗余,設計生成基本E-R圖實例 實例 某工廠管理信息系統(tǒng)的視圖集成。 工廠管理信息系統(tǒng)由物資管理、銷售管理和勞動人事管理組成,各部分的分E-R圖如下:該廠物資管理分E-R圖該廠銷售管理分E-R圖勞動人事管理分E-R圖集成過程,解決了以下問題

38、:n 異名同義,項目和產(chǎn)品含義相同,統(tǒng)一使用產(chǎn)品n物資管理中職工與倉庫的工作關系已包含在勞動人事管理的部門與職工之間的聯(lián)系之中,所以可以取消n職工之間領導與被領導關系可由部門與職工(經(jīng)理)之間的領導關系、部門與職工之間的從屬關系兩者導出,所以也可以取消系統(tǒng)的基本E-R勞動人事管理分E-R銷售管理分E-R物資管理分E-R驗證整體概念結構n視圖集成后形成一個整體的數(shù)據(jù)庫概念結構,對該整體概念結構還必須進行進一步驗證,確保它能夠滿足下列條件:整體概念結構內(nèi)部必須具有一致性,不存在互相矛盾的表達整體概念結構能準確地反映原來的每個視圖結構,包括屬性、實體及實體間的聯(lián)系整體概念結構能滿足需要分析階段所確定

39、的所有要求驗證整體概念結構(續(xù))n整體概念結構最終還應該提交給用戶,征求用戶和有關人員的意見,進行評審、修改和優(yōu)化,然后把它確定下來,作為數(shù)據(jù)庫的概念結構,作為進一步設計數(shù)據(jù)庫的依據(jù)。概念結構設計小結n概念結構設計的步驟抽象數(shù)據(jù)并設計局部視圖集成局部視圖,得到全局概念結構驗證整體概念結構概念結構設計小結n數(shù)據(jù)抽象分類聚集概括概念結構設計小結n設計局部視圖 選擇局部應用 2. 逐一設計分E-R圖n標定局部應用中的實體、屬性、碼,實體間的聯(lián)系n用E-R圖描述出來概念結構設計小結n集成局部視圖1.合并分E-R圖,生成初步E-R圖消除沖突屬性沖突命名沖突結構沖突2. 修改與重構消除不必要的冗余,設計生

40、成基本E-R圖分析方法規(guī)范化理論第七章 數(shù)據(jù)庫設計7.1 數(shù)據(jù)庫設計概述數(shù)據(jù)庫設計概述7.2 需求分析需求分析7.3 概念結構設計概念結構設計7.4 邏輯結構設計邏輯結構設計7.5 數(shù)據(jù)庫的物理設計數(shù)據(jù)庫的物理設計7.6 數(shù)據(jù)庫的實施和維護數(shù)據(jù)庫的實施和維護7.7 小結小結7.4 邏輯結構設計n邏輯結構設計的任務把概念結構設計階段設計好的基本E-R圖轉換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結構邏輯結構設計的步驟p將概念結構轉化為一般的關系、網(wǎng)狀、層次模型p將轉換來的關系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉換p對數(shù)據(jù)模型進行優(yōu)化7.4 邏輯結構設計7.4.1 E-R圖向關

41、系模型的轉換圖向關系模型的轉換7.4.2 數(shù)據(jù)模型的優(yōu)化數(shù)據(jù)模型的優(yōu)化7.4.3 設計用戶子模式設計用戶子模式7.4.1 E-R圖向關系模型的轉換E-R圖向關系模型的轉換要解決的問題 如何將實體型和實體間的聯(lián)系轉換為關系模式如何確定這些關系模式的屬性和碼 E-R圖向關系模型轉換的內(nèi)容將E-R圖轉換為關系模型: 將實體、實體的屬性和實體之間的聯(lián)系轉換為關系模式。E-R圖向關系模型的轉換原則:一個實體型轉換為一個關系模式,實體的屬性為該關系的屬性,實體的碼為關系的碼。實體型的轉換舉例:學生實體可以轉換為如下關系模式,其中學號為學生關系的碼。學生(學生(學號學號,姓名,年齡,姓名,年齡,所在系)。所

42、在系)。實體型間聯(lián)系的轉換實體型間聯(lián)系的轉換具體情況具體對待: 方式: 1:1 1:n n:m 主體: 兩個實體型,多個實體型實體型間的聯(lián)系有以下不同情況 :(1)1:1聯(lián)系p轉換為一個獨立的關系模式與該聯(lián)系相連的各實體的碼以及聯(lián)系本身與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性,每個實體的的屬性均轉換為關系的屬性,每個實體的碼均是該關系的候選碼。碼均是該關系的候選碼。p與某一端實體對應的關系模式合并如果與某一端對應的關系模式合并,則需要在該關系模式的屬性中加入另一個關系模式的碼和聯(lián)系本身的屬性。舉例:假如有一個學生“管理”的聯(lián)系,即一個職工管理一個班級,一個班級只能由一個職工

43、管理,該聯(lián)系為1:1聯(lián)系,將其轉換為關系模式有兩種方法: A轉換成一個獨立的關系模式班級班級(班級號,人數(shù),)職工職工(職工號,姓名,性別,職稱)管理(管理(職工號職工號,班級號),班級號)或 管理管理(職工號,班級號)B將其與“班級”關系模式合并,增加“職工號”屬性,即:職工職工(職工號,姓名,性別,職稱)班級(班級(班級號班級號,人數(shù),人數(shù),,職工號)職工號) C將其與“職工”關系模式合并,增加加“班級號”屬性,即:班級班級(班級號,人數(shù),)職工(職工(職工號職工號,姓名,性別,姓名,性別,職稱,班級號)職稱,班級號)推薦使用合并的方法。(2) 1:n聯(lián)系 轉換為一個獨立的關系模式與n端對

44、應的關系模式合并如果轉換為一個獨立的關系模式,則與該聯(lián)系相如果轉換為一個獨立的關系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性,而關系的碼為系的屬性,而關系的碼為n端實體的碼。端實體的碼。如果與如果與n端關系模式合并,則需要端關系模式合并,則需要n端關系模式端關系模式的屬性中加入另一個關系模式的碼和聯(lián)系本身的的屬性中加入另一個關系模式的碼和聯(lián)系本身的屬性。屬性。A轉換成一個獨立的關系模式班級(班級號,專業(yè))學生(學生號,姓名,性別,年齡)組成(組成(學號學號,班級號,班級號)B將其與“學生”關系模式合并,增加“班級號”屬性,即:

45、班級(班級號,專業(yè))學生(學生(學號學號,姓名,年齡,姓名,年齡,性別,班級號性別,班級號) 舉例:假如有一個學生“組成”的聯(lián)系,即一個學生只能屬于一個班級,一個班級可能有多個學生,該聯(lián)系為1:n聯(lián)系,將其轉換為關系模式有兩種方法:推薦使用合并的方法。(3) m:n聯(lián)系與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性。而關系的碼為各實體碼的組合。轉換為關系的屬性。而關系的碼為各實體碼的組合。 例,“選修”聯(lián)系是一個m:n聯(lián)系,可以將它轉換為如下關系模式,其中學號與課程號為關系的組合碼:選修(選修(學號學號,課程號課程號,成績),成績)(4

46、)三個或三個以上實體間的一個多元聯(lián)系轉換為一個關系模式。與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性。而關系的碼為各實體屬性均轉換為關系的屬性。而關系的碼為各實體碼的組合。碼的組合。例,“講授”聯(lián)系是一個三元聯(lián)系,可以將它轉換為如下關系模式,其中課程號、職工號和書號為關系的組合碼:課程(課程號,學分,)教師(職工號,姓名,)教材(書號,書名,出版社,作者,)講授(講授(課程號,職工號,書課程號,職工號,書號號)課程教材教師講授(5)具有相同碼的關系模式可合并合并方法:將其中一個關系模式的全部屬合并方法:將其中一個關系模式的全部屬性加

47、入到另一個關系模式中,然后去掉其性加入到另一個關系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),中的同義屬性(可能同名也可能不同名),并適當調整屬性的次序并適當調整屬性的次序假如有一個職務的關系模式,即:職務(職務(學號學號,姓名,姓名,性性別別,職務)職務);同時有一個學生關系模式,即:學生(學生(學號學號,姓名,出生日期,所在系)姓名,出生日期,所在系)。這兩個關系模式都以學號為碼,我們可以將它們合并為一個關系模式,假設合并后的關系模式仍叫學生,即:學生(學生(學號學號,姓名,姓名,性別性別,出生日期,所在系出生日期,所在系,職務職務)。E-R圖向關系模型的轉換(續(xù))注意:n從理

48、論上講,1:1聯(lián)系可以與任意一端對應的關系模式合并n但在一些情況下,與不同的關系模式合并效率會大不一樣。因此究竟應該與哪端的關系模式合并需要依應用的具體情況而定。n由于連接操作是最費時的操作,所以一般應以盡量減少連接操作為目標。 例如,如果經(jīng)常要查詢某個班級的班主任姓名,則將管理聯(lián)系與教師關系合并更好些。例 把圖7.30中虛線上部的E-R圖轉換為關系模型 部門實體對應的關系模式 部門(部門號,部門名,經(jīng)理的職工號,經(jīng)理的職工號,) 此關系模式已包含了聯(lián)系“領導”所對應的關系模式 經(jīng)理的職工號是關系的候選碼 p職工實體對應的關系模式 職工(職工號、部門號,職工名,職務,) 該關系模式已包含了聯(lián)系

49、“屬于”所對應的關系模式 產(chǎn)品實體對應的關系模式 產(chǎn)品(產(chǎn)品(產(chǎn)品號產(chǎn)品號,產(chǎn)品名,產(chǎn)品組長的職工號,產(chǎn)品名,產(chǎn)品組長的職工號,)p聯(lián)系“參加”所對應的關系模式 p職工工作(職工工作(職工號,產(chǎn)品號職工號,產(chǎn)品號,工作天數(shù),工作天數(shù),)供應商實體對應的關系模式 供應商(供應商(供應商號供應商號,姓名,姓名,) 零件實體對應的關系模式 零件(零件(零件號零件號,零件名,零件名,) p聯(lián)系“供應”所對應的關系模式 p供應(供應(產(chǎn)品號,供應商號,零件號產(chǎn)品號,供應商號,零件號,供應量),供應量) 7.4 邏輯結構設計7.4.1 E-R圖向關系模型的轉換圖向關系模型的轉換7.4.2 數(shù)據(jù)模型的優(yōu)化數(shù)

50、據(jù)模型的優(yōu)化7.4.3 設計用戶子模式設計用戶子模式7.4.2 數(shù)據(jù)模型的優(yōu)化n得到初步數(shù)據(jù)模型后,還應該適當?shù)匦薷摹⒄{整數(shù)據(jù)模型的結構,以進一步提高數(shù)據(jù)庫應用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化數(shù)據(jù)模型的優(yōu)化n關系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論規(guī)范化理論為指導n優(yōu)化數(shù)據(jù)模型的方法優(yōu)化數(shù)據(jù)模型的方法2.消除冗余的聯(lián)系 對于各個關系模式之間的數(shù)據(jù)依賴進行極小化處理,消除 冗余的聯(lián)系。1.確定數(shù)據(jù)依賴 按需求分析階段所得到的語義,分別寫出每個關系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關系模式屬性之間數(shù)據(jù)依賴3. 確定所屬范式p 按照數(shù)據(jù)依賴的理論對關系模式逐一進行分析p 考查是否存在部分函數(shù)依賴、傳遞函

51、數(shù)依賴、多值依賴等p 確定各關系模式分別屬于第幾范式4.按照需求分析階段得到的各種應用對數(shù)據(jù)處理的要求,分析對于這樣的應用環(huán)境這些模式是否合適,確定是否要對它們進行合并或分解。5.對關系模式進行必要的分解,以提高數(shù)據(jù)操作的效率和存儲空間的利用率。水平分解垂直分解常用分解方法水平分解水平分解什么是水平分解把(基本)關系的元組分為若干子集合,定義每個子集合為一個子關系,以提高系統(tǒng)的效率舉例: 記錄日志的表可以按月份分解 學生表可以按學院分解水平分解的適用范圍 a.滿足“80/20原則”的應用 b.并發(fā)事務經(jīng)常存取不相交的數(shù)據(jù)垂直分解什么是垂直分解把關系模式R的屬性分解為若干子集合,形成若干子關系模

52、式垂直分解的適用范圍取決于分解后R上的所有事務的總效率是否得到了提高原則:一般將經(jīng)常在一起使用的屬性組分解出來形成一個子關系模式,這樣可以提高某些事務的執(zhí)行效率,但同時對另外一些事務則可能產(chǎn)生連接操作,從而降低執(zhí)行效率.一般說來,第三范式就足夠了注1:規(guī)范化理論為數(shù)據(jù)庫設計人員判斷關系模式優(yōu)劣提供了理論標準,可用來預測模式可能出現(xiàn)的問題,使數(shù)據(jù)庫設計工作有了嚴格的理論基礎。優(yōu)化的注意事項:注2:并不是規(guī)范化程序越高的關系就越優(yōu),對于一個具體應用,需要權衡時間、空間、完整性等各方面的利弊。數(shù)據(jù)模型的優(yōu)化(續(xù))例:在關系模式 學生成績單(學號,英語,數(shù)學,語文,平均成績) 中存在下列函數(shù)依賴: 學

53、號英語 學號數(shù)學 學號語文 學號平均成績 (英語, 數(shù)學, 語文)平均成績數(shù)據(jù)模型的優(yōu)化(續(xù)) 顯然有: 學號(英語,數(shù)學,語文) 平均成績因此該關系模式中存在傳遞函數(shù)信賴,是2NF關系 雖然平均成績可以由其他屬性推算出來,但如果應用中需要經(jīng)常查詢學生的平均成績,為提高效率,仍然可保留該冗余數(shù)據(jù),對關系模式不再做進一步分解7.4 邏輯結構設計7.4.1 E-R圖向關系模型的轉換圖向關系模型的轉換7.4.2 數(shù)據(jù)模型的優(yōu)化數(shù)據(jù)模型的優(yōu)化7.4.3 設計用戶子模式設計用戶子模式7.4.3 設計用戶子模式n定義用戶外模式時應該注重的問題 包括三個方面: (1) 使用更符合用戶習慣的別名 (2) 針對

54、不同級別的用戶定義不同的View ,以滿足系統(tǒng)對安全性的要求。 (3) 簡化用戶對系統(tǒng)的使用將概念模型轉換為邏輯模型后,即生成了整個應用系統(tǒng)的模式后,還應該根據(jù)局部應用需求,結合具體DBMS的特點,設計更符合局部用戶需要的用戶外模式 。例例 關系模式產(chǎn)品(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價,生產(chǎn)車間,生產(chǎn)負責人,產(chǎn)品成本,產(chǎn)品合格率,質量等級),可以在產(chǎn)品關系上建立兩個視圖: 為一般顧客建立視圖: 產(chǎn)品1(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價) 為產(chǎn)品銷售部門建立視圖: 產(chǎn)品2(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價,車間,生產(chǎn)負責人)顧客視圖中只包含允許顧客查詢的屬性銷售部門視圖中只包含允許銷售部門查詢的屬性生產(chǎn)領導部門

55、則可以查詢?nèi)慨a(chǎn)品數(shù)據(jù)可以防止用戶非法訪問不允許他們查詢的數(shù)據(jù),保證系統(tǒng)的安全性邏輯結構設計小結n任務將概念結構轉化為具體的數(shù)據(jù)模型n邏輯結構設計的步驟將概念結構轉化為一般的關系、網(wǎng)狀、層次模型將轉化來的關系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉換對數(shù)據(jù)模型進行優(yōu)化設計用戶子模式邏輯結構設計小結nE-R圖向關系模型的轉換內(nèi)容nE-R圖向關系模型的轉換原則邏輯結構設計小結n優(yōu)化數(shù)據(jù)模型的方法 1. 確定數(shù)據(jù)依賴 2. 對于各個關系模式之間的數(shù)據(jù)依賴進行極小化處理,消除冗余的聯(lián)系。 3. 確定各關系模式分別屬于第幾范式。 4. 分析對于應用環(huán)境這些模式是否合適,確定是否要對它們進行合并或

56、分解。 5. 對關系模式進行必要的分解或合并(水平/垂直)邏輯結構設計小結n設計用戶子模式 1. 使用更符合用戶習慣的別名 2. 針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性的要求。 3. 簡化用戶對系統(tǒng)的使用第七章 數(shù)據(jù)庫設計7.1 數(shù)據(jù)庫設計概述數(shù)據(jù)庫設計概述7.2 需求分析需求分析7.3 概念結構設計概念結構設計7.4 邏輯結構設計邏輯結構設計7.5 數(shù)據(jù)庫的物理設計數(shù)據(jù)庫的物理設計7.6 數(shù)據(jù)庫的實施和維護數(shù)據(jù)庫的實施和維護7.7 小結小結7.5 數(shù)據(jù)庫的物理設計n數(shù)據(jù)庫的物理設計為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結構(數(shù)據(jù)庫在物理設備上的存儲結構與存取方存

57、儲結構與存取方法法)的過程,就是數(shù)據(jù)庫的物理設計概念模式內(nèi)模式利用DBMS1.滿足數(shù)據(jù)庫的性能2.節(jié)省存儲空間數(shù)據(jù)庫的物理設計(續(xù))n數(shù)據(jù)庫物理設計的步驟確定數(shù)據(jù)庫的物理結構,在關系數(shù)據(jù)庫中主要指存取存取方法和存儲結構方法和存儲結構 對物理結構進行評價,評價的重點是時間和空間效率時間和空間效率 如果評價結果滿足原設計要求,則可進入到物理實施階段,否則,就需要重新設計或修改物理結構,有時甚至要返回邏輯設計階段修改數(shù)據(jù)模型數(shù)據(jù)庫的物理設計(續(xù))數(shù)據(jù)庫物理設計數(shù)據(jù)庫物理設計確定數(shù)確定數(shù)據(jù)庫的據(jù)庫的物理結物理結構構評價數(shù)據(jù)評價數(shù)據(jù)庫的物理庫的物理結構結構邏輯結邏輯結構設計構設計數(shù)據(jù)庫數(shù)據(jù)庫實施實施物理

58、物理模型模型邏輯邏輯模型模型7.5 數(shù)據(jù)庫的物理設計7.5.1 數(shù)據(jù)庫物理設計的內(nèi)容和方法數(shù)據(jù)庫物理設計的內(nèi)容和方法7.5.2 關系模式存取方法選擇關系模式存取方法選擇7.5.3 確定數(shù)據(jù)庫的存儲結構確定數(shù)據(jù)庫的存儲結構7.5.4 評價物理結構評價物理結構數(shù)據(jù)庫物理設計的主要影響因素:lDBMSl應用環(huán)境l數(shù)據(jù)本身的特性l支持環(huán)境7.5.1 數(shù)據(jù)庫物理設計的內(nèi)容和方法n設計物理數(shù)據(jù)庫結構的準備工作對要運行的事務進行詳細分析,獲得選擇物理數(shù)據(jù)庫設計所需參數(shù)(查詢和更新事務查詢和更新事務)充分了解所用RDBMS的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲結構數(shù)據(jù)庫的物理設計的內(nèi)容和方法(續(xù))n選擇物

59、理數(shù)據(jù)庫設計所需參數(shù)所需參數(shù) 數(shù)據(jù)庫查詢事務查詢的關系 查詢條件所涉及的屬性 連接條件所涉及的屬性 查詢的投影屬性n選擇物理數(shù)據(jù)庫設計所需參數(shù)(續(xù))數(shù)據(jù)更新事務被更新的關系每個關系上的更新操作條件所涉及的屬性 修改操作要改變的屬性值 每個事務在各關系上運行的頻率和性能要求n關系數(shù)據(jù)庫物理設計的內(nèi)容為關系模式選擇存取方法存取方法(建立存取路徑) 設計關系、索引等數(shù)據(jù)庫文件的物理存儲結構物理存儲結構7.5 數(shù)據(jù)庫的物理設計7.5.1 數(shù)據(jù)庫物理設計的內(nèi)容和方法數(shù)據(jù)庫物理設計的內(nèi)容和方法7.5.2 關系模式存取方法選擇關系模式存取方法選擇7.5.3 確定數(shù)據(jù)庫的存儲結構確定數(shù)據(jù)庫的存儲結構7.5.4

60、 評價物理結構評價物理結構7.5.2 關系模式存取方法選擇n數(shù)據(jù)庫系統(tǒng)是多用戶共享的系統(tǒng),對同一個關系要建立多條存取路徑多條存取路徑才能滿足多用戶的多種應用要求n物理設計的任務之一就是要確定選擇哪些存取方法,即建立哪些存取路徑建立哪些存取路徑關系模式存取方法選擇(續(xù))nDBMS常用存取方法索引方法目前主要是B+樹索引方法經(jīng)典存取方法,使用最普遍 聚簇(Cluster)方法HASH方法一、索引存取方法的選擇n根據(jù)應用要求確定 對哪些屬性列建立索引 對哪些屬性列建立組合索引 對哪些索引要設計為唯一索引索引存取方法的選擇(續(xù))n選擇索引存取方法的一般規(guī)則如果一個(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論