版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫系統(tǒng)概論an introduction to database system第七章 數(shù)據(jù)庫設(shè)計2021年11月9日星期二第七章 數(shù)據(jù)庫設(shè)計7.1 數(shù)據(jù)庫設(shè)計概述7.2 需求分析7.3 概念結(jié)構(gòu)設(shè)計7.4 邏輯結(jié)構(gòu)設(shè)計7.5 數(shù)據(jù)庫的物理設(shè)計7.6 數(shù)據(jù)庫實施7.7 數(shù)據(jù)庫運行與維護7.8 小結(jié)2021年11月9日星期二7.1 數(shù)據(jù)庫設(shè)計概述7.1.1 數(shù)據(jù)庫和信息系統(tǒng)7.1.2 數(shù)據(jù)庫設(shè)計的特點7.1.3 數(shù)據(jù)庫設(shè)計方法簡述7.1.4 數(shù)據(jù)庫設(shè)計的基本步驟2021年11月9日星期二數(shù)據(jù)庫設(shè)計概述n什么是數(shù)據(jù)庫設(shè)計n數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其
2、應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息需求和處理需求)n在數(shù)據(jù)庫領(lǐng)域內(nèi),常常把使用數(shù)據(jù)庫的各類系統(tǒng)統(tǒng)稱為數(shù)據(jù)庫應(yīng)用系統(tǒng)。2021年11月9日星期二7.1.1 數(shù)據(jù)庫和信息系統(tǒng)n數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ)n把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來n提供存儲、維護、檢索數(shù)據(jù)的功能n使信息系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息n數(shù)據(jù)庫是信息系統(tǒng)的各個部分能否緊密地結(jié)合在一起、以及如何結(jié)合的關(guān)鍵所在n數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分2021年11月9日星期二數(shù)據(jù)庫設(shè)計人員應(yīng)該具備的技術(shù)和知識n數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設(shè)計技術(shù)n計算機科學(xué)的基礎(chǔ)知識和程
3、序設(shè)計的方法和技巧n軟件工程的原理和方法n具體應(yīng)用領(lǐng)域的知識2021年11月9日星期二7.1.2 數(shù)據(jù)庫設(shè)計的特點n數(shù)據(jù)庫建設(shè)是硬件、軟件和干件的結(jié)合n三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)n技術(shù)與管理的界面稱之為“干件”n 數(shù)據(jù)庫設(shè)計應(yīng)該與應(yīng)用系統(tǒng)設(shè)計相結(jié)合n結(jié)構(gòu)(數(shù)據(jù))設(shè)計:設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu)n行為(處理)設(shè)計:設(shè)計應(yīng)用程序、事務(wù)處理等2021年11月9日星期二數(shù)據(jù)庫設(shè)計的特點(續(xù))現(xiàn)實世界現(xiàn)實世界概念模型設(shè)計概念模型設(shè)計子模式設(shè)計子模式設(shè)計物理數(shù)據(jù)庫設(shè)計物理數(shù)據(jù)庫設(shè)計邏輯數(shù)據(jù)庫設(shè)計邏輯數(shù)據(jù)庫設(shè)計建立數(shù)據(jù)庫建立數(shù)據(jù)庫數(shù)據(jù)分析數(shù)據(jù)分析功能分析功能分析功能模型功能模型功能說明功能說明事務(wù)設(shè)
4、計事務(wù)設(shè)計程序說明程序說明應(yīng)用程序設(shè)計應(yīng)用程序設(shè)計程序編碼調(diào)試程序編碼調(diào)試結(jié)構(gòu)和行為分離的設(shè)計結(jié)構(gòu)和行為分離的設(shè)計2021年11月9日星期二7.1.3 數(shù)據(jù)庫設(shè)計方法簡述n手工試湊法n設(shè)計質(zhì)量與設(shè)計人員的經(jīng)驗和水平有直接關(guān)系n缺乏科學(xué)理論和工程方法的支持,工程的質(zhì)量難以保證n數(shù)據(jù)庫運行一段時間后常常又不同程度地發(fā)現(xiàn)各種問題,增加了維護代價n規(guī)范設(shè)計法(用軟件工程的思想方法):本質(zhì)上是手工設(shè)計方法,基本思想是過程迭代和逐步求精ne-r圖、3nf、odl(面向?qū)ο髷?shù)據(jù)庫設(shè)計)n計算機輔助設(shè)計noracle designer 2000nsybase powerdesigner2021年11月9日星期
5、二數(shù)據(jù)庫設(shè)計方法簡述(續(xù))n按照規(guī)范設(shè)計方法:六個階段1、需求分析階段2、概念結(jié)構(gòu)設(shè)計階段定義概念模式3、邏輯結(jié)構(gòu)設(shè)計階段定義模式和外模式4、數(shù)據(jù)庫物理設(shè)計階段定義內(nèi)模式5、數(shù)據(jù)庫實施階段6、數(shù)據(jù)庫運行和維護階段2021年11月9日星期二7.1.4 數(shù)據(jù)庫設(shè)計的基本步驟一、數(shù)據(jù)庫設(shè)計的準備工作選定參加設(shè)計的人員1. 系統(tǒng)分析和數(shù)據(jù)庫設(shè)計人員n數(shù)據(jù)庫設(shè)計的核心人員n自始至終參與數(shù)據(jù)庫設(shè)計n其水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量2021年11月9日星期二7.1.4 數(shù)據(jù)庫設(shè)計的基本步驟2. 用戶n在數(shù)據(jù)庫設(shè)計中也是舉足輕重的n主要參加需求分析和數(shù)據(jù)庫的運行維護n用戶積極參與帶來的好處n加速數(shù)據(jù)庫設(shè)計n提高數(shù)
6、據(jù)庫設(shè)計的質(zhì)量3. 程序員n在系統(tǒng)實施階段參與進來,負責(zé)編制程序4. 數(shù)據(jù)庫管理員n數(shù)據(jù)庫運行管理和維護2021年11月9日星期二數(shù)據(jù)庫設(shè)計的基本步驟(續(xù))二、數(shù)據(jù)庫設(shè)計的過程(六個階段) 1、需求分析階段準確了解與分析用戶需求(包括數(shù)據(jù)與處理),是整個設(shè)計過程的基礎(chǔ),是最困難、最耗費時間的一步2、概念結(jié)構(gòu)設(shè)計階段定義概念模式是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體dbms的概念模型3、邏輯結(jié)構(gòu)設(shè)計階段定義模式和外模式將概念結(jié)構(gòu)轉(zhuǎn)換為某個dbms所支持的數(shù)據(jù)模型,并對其進行優(yōu)化2021年11月9日星期二數(shù)據(jù)庫設(shè)計的基本步驟(續(xù))4、數(shù)據(jù)庫物理設(shè)計階段定義內(nèi)
7、模式為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)5、數(shù)據(jù)庫實施階段運用dbms提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果n建立數(shù)據(jù)庫n編制與調(diào)試應(yīng)用程序n組織數(shù)據(jù)入庫n并進行試運行2021年11月9日星期二數(shù)據(jù)庫設(shè)計的基本步驟(續(xù))6、數(shù)據(jù)庫運行和維護階段n數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。n在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。n設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述六個階段的不斷反復(fù)。2021年11月9日星期二p202圖7.2n設(shè)計特點n在設(shè)計過程中把對數(shù)據(jù)庫的設(shè)計和對數(shù)據(jù)處理的設(shè)計緊密結(jié)合起來n將這兩個方面的需求
8、分析、抽象、設(shè)計、實現(xiàn)在各個階段同時進行,相互參照,相互補充,以完善兩方面的設(shè)計2021年11月9日星期二7.2 需求分析n需求分析就是分析用戶的需要與要求n需求分析是設(shè)計數(shù)據(jù)庫的起點n需求分析的結(jié)果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設(shè)計,并影響到設(shè)計結(jié)果是否合理和實用7.2.1 需求分析的任務(wù)7.2.2 需求分析的方法7.2.3 數(shù)據(jù)字典2021年11月9日星期二7.2.1 需求分析的任務(wù)一、需求分析的任務(wù)二、需求分析的重點三、需求分析的難點2021年11月9日星期二一、需求分析的任務(wù)n 通過詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)
9、或計算機系統(tǒng))工作概況,明確用戶的各種需求n 在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴充和改變,不能僅僅按當(dāng)前應(yīng)用需求來設(shè)計數(shù)據(jù)庫2021年11月9日星期二二、需求分析的重點n需求分析的重點是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。n信息要求n用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)n由用戶的信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)n處理要求n對處理功能的要求n對處理的響應(yīng)時間的要求n對處理方式的要求(批處理 / 聯(lián)機處理)n新系統(tǒng)的功能必須能夠滿足用戶的信息要求、處理要求、安全性與完整性要求。2021年11月9日星期二三、需求分
10、析的難點n確定用戶最終需求的難點n用戶缺少計算機知識,開始時無法確定計算機究竟能為自己做什么,不能做什么,因此無法一下子準確地表達自己的需求,他們所提出的需求往往不斷地變化。n設(shè)計人員缺少用戶的專業(yè)知識,不易理解用戶的真正需求,甚至誤解用戶的需求。n新的硬件、軟件技術(shù)的出現(xiàn)也會使用戶需求發(fā)生變化。n解決方法n設(shè)計人員必須采用有效的方法,與用戶不斷深入地進行交流,才能逐步得以確定用戶的實際需求。2021年11月9日星期二7.2.2 需求分析的方法n調(diào)查清楚用戶的實際需求并進行初步分析n常用調(diào)查方法n 進一步分析與表達這些需求,與用戶達成共識2021年11月9日星期二一、 調(diào)查與初步分析用戶需求
11、調(diào)查組織機構(gòu)情況n 組織部門的組成情況n 各部門的職責(zé)等 調(diào)查各部門的業(yè)務(wù)活動情況(調(diào)查重點之一)n 各個部門輸入和使用什么數(shù)據(jù)n 如何加工處理這些數(shù)據(jù)n 輸出什么信息n 輸出到什么部門n 輸出結(jié)果的格式是什么2021年11月9日星期二調(diào)查與初步分析用戶需求(續(xù)) 在熟悉業(yè)務(wù)活動的基礎(chǔ)上,協(xié)助用戶明確對新系統(tǒng)的各種要求(調(diào)查重點之二)n 信息要求n 處理要求n 完全性與完整性要求 對前面調(diào)查的結(jié)果進行初步分析n確定新系統(tǒng)的邊界n確定哪些功能由計算機完成或?qū)頊蕚渥層嬎銠C完成n確定哪些活動由人工完成n由計算機完成的功能就是新系統(tǒng)應(yīng)該實現(xiàn)的功能。2021年11月9日星期二二、常用調(diào)查方法 跟班作業(yè)
12、:通過親身參加業(yè)務(wù)工作了解業(yè)務(wù)活動的情況,能比較準確地理解用戶的需求,但比較耗時 開調(diào)查會:通過與用戶座談來了解業(yè)務(wù)活動情況及用戶需求 請專人介紹 詢問:對某些調(diào)查中的問題,可以找專人詢問 設(shè)計調(diào)查表請用戶填寫 查閱記錄:查閱與原系統(tǒng)有關(guān)的數(shù)據(jù)記錄。做需求調(diào)查時,往往需要同時采用多種方法n無論使用何種調(diào)查方法,都必須有用戶的積極參與和配合n設(shè)計人員應(yīng)該和用戶取得共同的語言,幫助不熟悉計算機的用戶建立數(shù)據(jù)庫環(huán)境下的共同概念,并對設(shè)計工作的最后結(jié)果共同承擔(dān)責(zé)任2021年11月9日星期二三、進一步分析和表達用戶需求n分析和表達用戶需求的常用方法n自頂向下的結(jié)構(gòu)化分析方法(structured ana
13、lysis,簡稱sa方法)nsa方法從最上層的系統(tǒng)組織機構(gòu)入手,采用逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。2021年11月9日星期二進一步分析和表達用戶需(續(xù))1首先把任何一個系統(tǒng)都抽象為:數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)數(shù)據(jù)存儲存儲信息要求信息要求數(shù)據(jù)數(shù)據(jù)來源來源處理處理數(shù)據(jù)數(shù)據(jù)輸出輸出處理要求處理要求2021年11月9日星期二2分解處理功能和數(shù)據(jù)(1) 分解處理功能n將處理功能的具體內(nèi)容分解為若干子功能,再將每個子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達清楚為止。(2) 分解數(shù)據(jù)n在處理功能逐步分解的同時,其所用的數(shù)據(jù)也逐級分解,(3) 表達方法n形成若干層次的數(shù)據(jù)流圖,數(shù)據(jù)流
14、圖表達了數(shù)據(jù)和處理過程的關(guān)系n處理過程:用判定表或判定樹來描述n數(shù)據(jù):用數(shù)據(jù)字典來描述3將分析結(jié)果再次提交給用戶,征得用戶的認可2021年11月9日星期二7.2.3 數(shù)據(jù)字典一、數(shù)據(jù)字典的用途n數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合n數(shù)據(jù)字典是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果n數(shù)據(jù)字典在數(shù)據(jù)庫設(shè)計中占有很重要的地位2021年11月9日星期二二、數(shù)據(jù)字典的內(nèi)容n數(shù)據(jù)字典的內(nèi)容n數(shù)據(jù)項n數(shù)據(jù)結(jié)構(gòu)n數(shù)據(jù)流n數(shù)據(jù)存儲n處理過程n 數(shù)據(jù)項是數(shù)據(jù)的最小組成單位n 若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結(jié)構(gòu)n 數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。2021年11月9日星期二 數(shù)
15、據(jù)項n數(shù)據(jù)項是不可再分的數(shù)據(jù)單位n 對數(shù)據(jù)項的描述數(shù)據(jù)項描述數(shù)據(jù)項名,數(shù)據(jù)項含義說明, 別名,數(shù)據(jù)類型,長度,取值范圍, 取值含義,與其他數(shù)據(jù)項的邏輯關(guān)系n取值范圍、與其他數(shù)據(jù)項的邏輯關(guān)系定義了數(shù)據(jù)的完整性約束條件2021年11月9日星期二 數(shù)據(jù)結(jié)構(gòu)n數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。n 一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)混合組成。n 對數(shù)據(jù)結(jié)構(gòu)的描述數(shù)據(jù)結(jié)構(gòu)描述數(shù)據(jù)結(jié)構(gòu)名,含義說明, 組成: 數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)2021年11月9日星期二 數(shù)據(jù)流n 數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂健 對數(shù)據(jù)流的描述數(shù)據(jù)流描述數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,
16、 數(shù)據(jù)流去向,組成: 數(shù)據(jù)結(jié)構(gòu), 平均流量,高峰期流量n數(shù)據(jù)流來源是說明該數(shù)據(jù)流來自哪個過程n數(shù)據(jù)流去向是說明該數(shù)據(jù)流將到哪個過程去n平均流量是指在單位時間(每天、每周、每月等)里的傳輸次數(shù)n高峰期流量則是指在高峰時期的數(shù)據(jù)流量2021年11月9日星期二 數(shù)據(jù)存儲n數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。n對數(shù)據(jù)存儲的描述 數(shù)據(jù)存儲描述數(shù)據(jù)存儲名,說明,編號,流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成: 數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)量,存取頻度,存取方式n流入的數(shù)據(jù)流:指出數(shù)據(jù)來源n流出的數(shù)據(jù)流:指出數(shù)據(jù)去向n存取頻度:每次存取多少數(shù)據(jù),每天(或每小時、每周等)存取幾次等信息n存取方法:批處理
17、/聯(lián)機處理;檢索/更新;順序檢索/隨機檢索2021年11月9日星期二 處理過程n處理過程的具體處理邏輯一般用判定表或判定樹來描述。數(shù)據(jù)字典中只需要描述處理過程的說明性信息n處理過程說明性信息的描述處理過程描述處理過程名,說明,輸入: 數(shù)據(jù)流,輸出: 數(shù)據(jù)流,處理: 簡要說明n簡要說明:主要說明該處理過程的功能及處理要求n功能:該處理過程用來做什么n處理要求:處理頻度要求(如單位時間里處理多少事務(wù),多少數(shù)據(jù)量);響應(yīng)時間要求等n處理要求是后面物理設(shè)計的輸入及性能評價的標準2021年11月9日星期二處理過程(續(xù))例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。n數(shù)據(jù)項,以“學(xué)號”為例: 數(shù)據(jù)項:學(xué)號 含義說明:
18、唯一標識每個學(xué)生 別名:學(xué)生編號 類型:字符型 長度: 8 取值范圍:00000000至99999999 取值含義:前兩位標別該學(xué)生所在年級,后六位按順序編號2021年11月9日星期二處理過程(續(xù))n數(shù)據(jù)結(jié)構(gòu) 以“學(xué)生”為例 “學(xué)生”是該系統(tǒng)中的一個核心數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)結(jié)構(gòu):學(xué)生 含義說明:是學(xué)籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu), 定義了一個學(xué)生的有關(guān)信息 組成:學(xué)號,姓名,性別,年齡,所在系, 年級2021年11月9日星期二處理過程(續(xù))n數(shù)據(jù)流 “體檢結(jié)果”可如下描述: 數(shù)據(jù)流: 體檢結(jié)果 說明: 學(xué)生參加體格檢查的最終結(jié)果 數(shù)據(jù)流來源: 體檢 數(shù)據(jù)流去向: 批準 組成: 平均流量: 高峰期流量:
19、 2021年11月9日星期二處理過程(續(xù))n數(shù)據(jù)存儲 “學(xué)生登記表”可如下描述: 數(shù)據(jù)存儲:學(xué)生登記表 說明:記錄學(xué)生的基本情況 流入數(shù)據(jù)流: 流出數(shù)據(jù)流: 組成: 數(shù)據(jù)量:每年3000張 存取方式:隨機存取 2021年11月9日星期二處理過程(續(xù))n處理過程 “分配宿舍”可如下描述:處理過程:分配宿舍說明:為所有新生分配學(xué)生宿舍輸入:學(xué)生,宿舍,輸出:宿舍安排處理: 在新生報到后,為所有新生分配學(xué)生宿舍。 要求同一間宿舍只能安排同一性別的學(xué)生, 同一個學(xué)生只能安排在一個宿舍中。每個 學(xué)生的居住面積不小于3平方米。安排新生宿舍, 其處理時間應(yīng)不超過15分鐘。 2021年11月9日星期二7.3
20、概念結(jié)構(gòu)設(shè)計7.3.1 概念結(jié)構(gòu)設(shè)計概述7.3.2 概念結(jié)構(gòu)設(shè)計的方法與步驟7.3.3 數(shù)據(jù)抽象與局部視圖設(shè)計7.3.4 視圖的集成2021年11月9日星期二7.3.1 概念結(jié)構(gòu)n什么是概念結(jié)構(gòu)設(shè)計n需求分析階段描述的用戶應(yīng)用需求是現(xiàn)實世界的具體需求n將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計n概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨立于機器、更抽象,從而更加穩(wěn)定。n概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵2021年11月9日星期二概念結(jié)構(gòu)設(shè)計的特點1. 能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實世界的一個真實模型
21、。2. 易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設(shè)計成功的關(guān)鍵。3. 易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時,容易對概念模型修改和擴充。4. 易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。n描述概念模型的工具:e-r模型2021年11月9日星期二7.3.2 概念結(jié)構(gòu)設(shè)計的方法與步驟n設(shè)計概念結(jié)構(gòu)的四類方法n自頂向下n首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化n自底向上n首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)n逐步擴張n首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)n混合策略n將自頂向下和自
22、底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。2021年11月9日星期二概念結(jié)構(gòu)設(shè)計的方法與步驟(續(xù)) 自頂向下策略2021年11月9日星期二概念結(jié)構(gòu)設(shè)計的方法與步驟(續(xù))自底向上策略 2021年11月9日星期二概念結(jié)構(gòu)設(shè)計的方法與步驟(續(xù)) 逐步擴逐步擴張張2021年11月9日星期二概念結(jié)構(gòu)設(shè)計的方法與步驟(續(xù))n常用策略(p211 圖7.8)n自頂向下地進行需求分析n自底向上地設(shè)計概念結(jié)構(gòu)n自底向上設(shè)計概念結(jié)構(gòu)的步驟(p211 圖7.9)n第1步:抽象數(shù)據(jù)并設(shè)計局部視圖n第2步:集成局部視圖,得到全局概念結(jié)構(gòu)2021年11月9日
23、星期二圖7.82021年11月9日星期二圖7.92021年11月9日星期二7.3.3 數(shù)據(jù)抽象與局部視圖設(shè)計一、數(shù)據(jù)抽象n概念結(jié)構(gòu)是對現(xiàn)實世界的一種抽象n從實際的人、物、事和概念中抽取所關(guān)心的共同特性,忽略非本質(zhì)的細節(jié)n把這些特性用各種概念精確地加以描述n這些概念組成了某種模型2021年11月9日星期二三種常用抽象1. 分類(classification)n定義某一類概念作為現(xiàn)實世界中一組對象的類型n這些對象具有某些共同的特性和行為n它抽象了對象值和型之間的“is member of ”的語義n在e-r模型中,實體型就是這種抽象例:p212圖7.102. 聚集(aggregation)n定義某
24、一類型的組成成分n它抽象了對象內(nèi)部類型和成分之間“is part of ”的語義n在e-r模型中若干屬性的聚集組成了實體型,就是這種抽象例:p212圖7.11,圖7.122021年11月9日星期二三種常用抽象(續(xù))3. 概括(generalization)n定義類型之間的一種子集聯(lián)系n它抽象了類型之間的“is subset of ”的語義n概括有一個很重要的性質(zhì):繼承性。子類繼承超類上定義的所有抽象。并且字類可以增加自己的某些特殊屬性。2021年11月9日星期二數(shù)據(jù)抽象的用途n對需求分析階段收集到的數(shù)據(jù)進行分類、組織(聚集),從而形成:n實體n實體的屬性,標識實體的碼n確定實體之間的聯(lián)系類型(
25、1:1,1:n,m:n)2021年11月9日星期二二、局部視圖設(shè)計設(shè)計分e-r圖的步驟:1、選擇局部應(yīng)用2、逐一設(shè)計分e-r圖2021年11月9日星期二 選擇局部應(yīng)用n需求分析階段,已用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個系統(tǒng)。n設(shè)計分e-r圖首先需要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個適當(dāng)層次的數(shù)據(jù)流圖,讓這組圖中每一部分對應(yīng)一個局部應(yīng)用,然后以這一層次的數(shù)據(jù)流圖為出發(fā)點,設(shè)計分e-r圖。 例:由于學(xué)籍管理、課程管理等都不太復(fù)雜,因此可以從它們?nèi)胧衷O(shè)計學(xué)生管理子系統(tǒng)的分e-r圖。如果局部應(yīng)用比較復(fù)雜,則可以從更下層的數(shù)據(jù)流圖入手。2021年11月9日星期二 逐一設(shè)計分e-r圖n任務(wù):標
26、定局部應(yīng)用中的實體、屬性、碼,實體間的聯(lián)系n將各局部應(yīng)用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標定各局部應(yīng)用中的實體、實體的屬性、標識實體的碼,確定實體之間的聯(lián)系及其類型(1:1,1:n,m:n)n如何抽象實體和屬性n實體:現(xiàn)實世界中一組具有某些共同特性和行為的對象就可以抽象為一個實體。對象和實體之間是“ is member of ”的關(guān)系。 例:學(xué)校環(huán)境中,可把張三、李四等對象抽象為學(xué)生實體。2021年11月9日星期二逐一設(shè)計分e-r圖(續(xù))n屬性:對象類型的組成成分可以抽象為實體的屬性。組成成分與對象類型之間是“is part of ”的關(guān)系。例:學(xué)號、姓名、專業(yè)、年級等可以抽
27、象為學(xué)生實體的屬性。其中學(xué)號為標識學(xué)生實體的碼。n如何區(qū)分實體和屬性n實體與屬性是相對而言的。同一事物,在一種應(yīng)用環(huán)境中作為“屬性”,在另一種應(yīng)用環(huán)境中可能作為“實體”。例:學(xué)校中的系,在某種應(yīng)用環(huán)境中,它只是作為“學(xué)生”實體的一個屬性,表明一個學(xué)生屬于哪個系;而在另一種環(huán)境中,由于需要考慮一個系的系主任、教師人數(shù)、學(xué)生人數(shù)、辦公地點等,這時它就需要作為實體了。2021年11月9日星期二逐一設(shè)計分e-r圖(續(xù))n一般原則n屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成。n屬性不能與其他實體具有聯(lián)系。聯(lián)系只發(fā)生在實體之間。n符合上述兩條特性的事物一般作為屬性對待
28、。n為了簡化e-r圖的處置,現(xiàn)實世界中的事物凡能夠作為屬性對待的,應(yīng)盡量作為屬性。n舉例:教程214圖7-15例2:職稱通常作為教職工實體的屬性,但不同的職稱有不同的工資、福利和住房補貼標準,則把職稱作為實體來處理會更合適些。2021年11月9日星期二逐一設(shè)計分e-r圖(續(xù))n舉例例1:“學(xué)生”由學(xué)號、姓名等屬性進一步描述,根據(jù)準則,“學(xué)生”只能作為實體,不能作為屬性。例2:職稱通常作為教師實體的屬性,但在涉及住房分配時,由于分房與職稱有關(guān),也就是說職稱與住房實體之間有聯(lián)系,根據(jù)準則,這時把職稱作為實體來處理會更合適(教程214圖7-15)2021年11月9日星期二7.3.4 視圖的集成n各個
29、局部視圖即分e-r圖建立好后,還需要對它們進行合并,集成為一個整體的數(shù)據(jù)概念結(jié)構(gòu),即總e-r圖n集成局部e-r圖的步驟:1. 合并2. 修改與重構(gòu)2021年11月9日星期二視圖的集成(續(xù))2021年11月9日星期二一、合并分e-r圖,生成初步e-r圖n各分-圖存在沖突n各個局部應(yīng)用所面向的問題不同n由不同的設(shè)計人員進行設(shè)計各個分e-r圖之間必定會存在許多不一致的地方n合并分e-r圖的主要工作與關(guān)鍵所在:合理消除各分e-r圖的沖突n沖突的種類n屬性沖突n命名沖突n結(jié)構(gòu)沖突2021年11月9日星期二 屬性沖突(兩類)n屬性域沖突:屬性值的類型、取值范圍或取值集合不同。例1、由于學(xué)號是由數(shù)字串組成,
30、因此某些部門(即局部應(yīng)用)將學(xué)號定義為整數(shù)形式,而由于學(xué)號不用參與運算,因此另一些部門(即局部應(yīng)用)將學(xué)號定義為字符型形式。例2、某些部門(即局部應(yīng)用)以出生日期形式表示學(xué)生的年齡,而另一些部門(即局部應(yīng)用)用整數(shù)形式表示學(xué)生的年齡。n屬性取值單位沖突例:學(xué)生的身高,有的以米為單位,有的以厘米為單位。n屬性沖突的解決方法n通常用討論、協(xié)商等行政手段加以解決2021年11月9日星期二 命名沖突(兩類)n同名異義:不同意義的對象在不同的局部應(yīng)用中具有相同的名字。 例:局部應(yīng)用a中將教室稱為房間 局部應(yīng)用b中將學(xué)生宿舍稱為房間n異名同義(一義多名):同一意義的對象在不同的局部應(yīng)用中具有不同的名字 例
31、:有的部門把教科書稱為課本 有的部門則把教科書稱為教材n命名沖突可能發(fā)生在屬性級、實體級、聯(lián)系級上。其中屬性的命名沖突更為常見。n命名沖突的解決方法:通過討論、協(xié)商等行政手段加以解決2021年11月9日星期二 結(jié)構(gòu)沖突(三類)n同一對象在不同應(yīng)用中具有不同的抽象 例,“課程”在某一局部應(yīng)用中被當(dāng)作實體,在另一局部應(yīng)用中被當(dāng)作屬性n解決方法:通常是把屬性變換為實體或把實體變換為屬性,使同一對象具有相同的抽象。變換時要遵循兩個準則。n同一實體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同。n產(chǎn)生原因:不同的局部應(yīng)用關(guān)心的是該實體的不同側(cè)面。n解決方法:使該實體的屬性取各分e-
32、r圖中屬性的并集并集,再適當(dāng)設(shè)計屬性的次序。2021年11月9日星期二 結(jié)構(gòu)沖突(三類)n實體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型例1,實體e1與e2在局部應(yīng)用a中是m:n聯(lián)系,而在局部應(yīng)用b中是1:n 聯(lián)系例2,在局部應(yīng)用x中e1與e2發(fā)生聯(lián)系,而在局部應(yīng)用y中e1、e2、e3三者之間有聯(lián)系。n解決方法:根據(jù)應(yīng)用語義對實體聯(lián)系的類型進行綜合或調(diào)整2021年11月9日星期二結(jié)構(gòu)沖突(例)學(xué)生學(xué)生學(xué)號學(xué)號 姓名姓名性別性別平均成績平均成績(a)在局部應(yīng)用在局部應(yīng)用a中中學(xué)生學(xué)生學(xué)號學(xué)號 姓名姓名出生日期出生日期年級年級(b)在局部應(yīng)用在局部應(yīng)用b中中所在系所在系 學(xué)生學(xué)生學(xué)號學(xué)號 姓名姓名
33、政治面貌政治面貌 (c)在局部應(yīng)用在局部應(yīng)用c中中2021年11月9日星期二結(jié)構(gòu)沖突(例) 學(xué)號學(xué)號學(xué)生學(xué)生 政治政治面貌面貌 出生出生日期日期年級年級(d)合并后合并后所在系所在系 平均平均成績成績姓名姓名性別性別2021年11月9日星期二二、修改與重構(gòu)n基本任務(wù)n消除不必要的冗余,設(shè)計生成基本e-r圖合并合并初步初步e-r圖圖分分e-r圖圖可能存在冗余的數(shù)據(jù)可能存在冗余的數(shù)據(jù)和冗余的實體間聯(lián)系和冗余的實體間聯(lián)系基本基本e-r圖圖消除不必要的冗余消除不必要的冗余2021年11月9日星期二1冗余n冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系 n冗余數(shù)據(jù)和冗余聯(lián)系容
34、易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫維護增加困難n并不是所有的冗余數(shù)據(jù)與冗余聯(lián)系都必須加以消除,有時為了提高某些應(yīng)用的效率,不得不以冗余信息作為代價。 n設(shè)計數(shù)據(jù)庫概念結(jié)構(gòu)時,哪些冗余信息必須消除,哪些冗余信息允許存在,需要根據(jù)用戶的整體需求來確定n消除不必要的冗余后的初步e-r圖稱為基本e-r圖2021年11月9日星期二2消除冗余的方法n分析方法n以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項之間邏輯關(guān)系的說明來消除冗余。例,教師工資單中包括該教師的基本工資、各種補貼、應(yīng)扣除的房租水電費以及實發(fā)工資。由于實發(fā)工資可以由前面各項推算出來,因此可以去掉,在需要查詢實發(fā)工資時根據(jù)基本工資、各種補貼
35、、應(yīng)扣除的房租水電費數(shù)據(jù)臨時生成。n如果是為了提高效率,人為地保留了一些冗余數(shù)據(jù),則應(yīng)把數(shù)據(jù)字典中數(shù)據(jù)關(guān)聯(lián)的說明作為完整性約束條件。n一種更好的方法是把冗余數(shù)據(jù)定義在視圖中n規(guī)范化理論n函數(shù)依賴的概念提供了消除冗余聯(lián)系的形式化工具。2021年11月9日星期二7.4 邏輯結(jié)構(gòu)設(shè)計n邏輯結(jié)構(gòu)設(shè)計的任務(wù)n概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ)n為了能夠用某一dbms實現(xiàn)用戶需求,必須將概念結(jié)構(gòu)轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計所要完成的任務(wù)。n邏輯結(jié)構(gòu)設(shè)計的步驟n將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型n將轉(zhuǎn)化來的關(guān)系、網(wǎng)狀、層次模型向特定dbms支持下的數(shù)據(jù)模型轉(zhuǎn)換n對數(shù)據(jù)模型進行優(yōu)化20
36、21年11月9日星期二 邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計轉(zhuǎn)化為一轉(zhuǎn)化為一般數(shù)據(jù)模般數(shù)據(jù)模型型轉(zhuǎn)化為特轉(zhuǎn)化為特定定dbms支持下的支持下的據(jù)模型據(jù)模型 優(yōu)化模型優(yōu)化模型概念結(jié)概念結(jié)構(gòu)設(shè)計構(gòu)設(shè)計數(shù)據(jù)庫數(shù)據(jù)庫物理設(shè)計物理設(shè)計基本基本e-r圖圖轉(zhuǎn)換規(guī)則轉(zhuǎn)換規(guī)則特定特定dbms的特點與的特點與限制限制優(yōu)化方法優(yōu)化方法如規(guī)范化如規(guī)范化理論理論邏輯邏輯模型模型2021年11月9日星期二7.4 邏輯結(jié)構(gòu)設(shè)計7.4.1 e-r圖向關(guān)系模型的轉(zhuǎn)換7.4.2 向特定dbms規(guī)定的模型進行轉(zhuǎn)換7.4.3 數(shù)據(jù)模型的優(yōu)化7.4.4 設(shè)計用戶子模式2021年11月9日星期二7.4.1 e-r圖向關(guān)系模型的轉(zhuǎn)換n轉(zhuǎn)換內(nèi)容ne-r圖
37、由實體、實體的屬性和實體之間的聯(lián)系三個要素組成n關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合n將e-r圖轉(zhuǎn)換為關(guān)系模型:將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。n轉(zhuǎn)換原則 一個實體型轉(zhuǎn)換為一個關(guān)系模式n關(guān)系的屬性:實體型的屬性n關(guān)系的碼:實體型的碼2021年11月9日星期二 學(xué)生學(xué)生 學(xué)號學(xué)號出生出生日期日期年級年級所在系所在系 平均平均成績成績姓名姓名例:學(xué)生實體轉(zhuǎn)換為如下關(guān)系模式:例:學(xué)生實體轉(zhuǎn)換為如下關(guān)系模式:學(xué)生學(xué)生(學(xué)號學(xué)號,姓名,出生日期,所在系,年級,平均成績,姓名,出生日期,所在系,年級,平均成績)2021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個m:n聯(lián)系轉(zhuǎn)換
38、為一個關(guān)系模式n關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性n關(guān)系的碼:各實體碼的組合例,“選修”聯(lián)系是一個m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號與課程號為關(guān)系的組合碼:選修(學(xué)號,課程號,成績)學(xué)生課程選修nm2021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并1) 轉(zhuǎn)換為一個獨立的關(guān)系模式n關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性n關(guān)系的碼:n端實體的碼2021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù))2) 與n端對應(yīng)的關(guān)系模式合并n合并后關(guān)系的屬性:在n端關(guān)系中加入1端
39、關(guān)系的碼和聯(lián)系本身的屬性n合并后關(guān)系的碼:不變n可以減少系統(tǒng)中的關(guān)系個數(shù),一般情況下更傾向于采用這種方法2021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,班級和學(xué)生的關(guān)系:“組成”聯(lián)系為1:n聯(lián)系。將其轉(zhuǎn)換為關(guān)系模式的兩種方法: 1)使其成為一個獨立的關(guān)系模式:組成(學(xué)號,班級號) 2)將其學(xué)生關(guān)系模式合并: 學(xué)生(學(xué)號,姓名,出生日期,所在系, 年級,班級號,平均成績)學(xué)生班級組成n12021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并1) 轉(zhuǎn)換為一個獨立的關(guān)系模式n關(guān)系的屬性:與該聯(lián)系相連的各實體
40、的碼以及聯(lián)系本身的屬性n關(guān)系的候選碼:每個實體的碼均是該關(guān)系的候選碼2) 與某一端對應(yīng)的關(guān)系模式合并n合并后關(guān)系的屬性:加入對應(yīng)關(guān)系的碼和聯(lián)系本身的屬性n合并后關(guān)系的碼:不變n可以減少系統(tǒng)中的關(guān)系個數(shù),一般情況下更傾向于采用這種方法2021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“管理”聯(lián)系可有三種轉(zhuǎn)換方法:(1)轉(zhuǎn)換為一個獨立的關(guān)系模式: 管理(職工號,班級號) 或管理(職工號,班級號)(2)“管理”聯(lián)系與班級關(guān)系模式合并,則只需在班級關(guān)系中加入教師關(guān)系的碼,即職工號: 班級(班級號,學(xué)生人數(shù),職工號)(3)“管理”聯(lián)系與教師關(guān)系模式合并,則只需在教師關(guān)系中加入班級關(guān)系的碼,即班
41、級號:教師(職工號,姓名,性別,職稱,班級號)教師班級管理112021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。n關(guān)系的屬性:與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性n關(guān)系的碼:各實體碼的組合例,例,“講授講授”聯(lián)系是一個三元聯(lián)系,可聯(lián)系是一個三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號、職工號和書號為關(guān)系的組合碼:號、職工號和書號為關(guān)系的組合碼:講授(講授(課程號,職工號,書號課程號,職工號,書號)教師課程講授nm教科書p2021年11月9日星期二e-r圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 同一實體
42、集的實體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。例,教師實體集內(nèi)部存在領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的1:n自聯(lián)系,我們可以將該聯(lián)系與教師實體合并,這時主碼職工號將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分:教師(職工號,姓名,性別,職稱,系主任工號)2021年11月9日星期二7.4.2 向特定dbms規(guī)定的模型進行轉(zhuǎn)換n一般的數(shù)據(jù)模型還需要向特定dbms規(guī)定的模型進行轉(zhuǎn)換。n轉(zhuǎn)換的主要依據(jù)是所選用的dbms的功能及限制。沒有通用規(guī)則。n對于關(guān)系模型來說,這種轉(zhuǎn)換通常都比較簡單。2021年11月9日星期二7.4.3 數(shù)據(jù)模型的優(yōu)化n數(shù)據(jù)庫邏輯設(shè)計的結(jié)果不是唯一的。n得到初步數(shù)據(jù)
43、模型后,還應(yīng)該適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化。n關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。n優(yōu)化數(shù)據(jù)模型的方法 確定數(shù)據(jù)依賴n按需求分析階段所得到的語義,分別寫出每個關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴。2021年11月9日星期二數(shù)據(jù)模型的優(yōu)化(續(xù))n例,課程關(guān)系模式內(nèi)部存在下列數(shù)據(jù)依賴: 課程號課程名 課程號學(xué)分 課程號教室號n選修關(guān)系模式中存在下列數(shù)據(jù)依賴: (學(xué)號,課程號)成績n學(xué)生關(guān)系模式的學(xué)號與選修關(guān)系模式的學(xué)號之間存在數(shù)據(jù)依賴: 學(xué)生.學(xué)號選修.學(xué)號2021年11月9日星期二數(shù)據(jù)模型的優(yōu)化(續(xù)) 對
44、于各個關(guān)系模式之間的數(shù)據(jù)依賴進行極小化處理,消除冗余的聯(lián)系。 按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。 例如經(jīng)過分析可知,課程關(guān)系模式屬于bcnf。 按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,分析對于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對它們進行合并或分解(是否分解成高一級范式) 。2021年11月9日星期二數(shù)據(jù)模型的優(yōu)化(續(xù)) 按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,對關(guān)系模式進行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲空間的利用率n常用的分解方法n水平分解:把(基本)關(guān)系的元組分為
45、若干子集合,定義每個子集合為一個子關(guān)系,以提高系統(tǒng)的效率n垂直分解:把關(guān)系模式r的屬性分解為若干子集合,形成若干子關(guān)系模式2021年11月9日星期二數(shù)據(jù)模型的優(yōu)化(續(xù))n水平分解的適用范圍1. 滿足“80/20原則”的應(yīng)用n80/20原則:一個大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20%n把經(jīng)常使用的數(shù)據(jù)分解出來,形成一個子關(guān)系,可以減少查詢的數(shù)據(jù)量。2. 并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù)n如果關(guān)系r上具有n個事務(wù),而且多數(shù)事務(wù)存取的數(shù)據(jù)不相交,則r可分解為少于或等于n個子關(guān)系,使每個事務(wù)存取的數(shù)據(jù)對應(yīng)一個關(guān)系。2021年11月9日星期二數(shù)據(jù)模型的優(yōu)化(續(xù))n垂直分解的原則:經(jīng)常在一起使用
46、的屬性從r中分解出來形成一個子關(guān)系模式。n垂直分解的優(yōu)點:可以提高某些事務(wù)的效率n垂直分解的缺點:可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。2021年11月9日星期二7.4.4 設(shè)計用戶子模式n定義數(shù)據(jù)庫模式主要是從系統(tǒng)的時間效率、空間效率、易維護等角度出發(fā)。n定義用戶子模式時應(yīng)該更注重考慮用戶的習(xí)慣與方便。包括三個方面:(1) 使用更符合用戶習(xí)慣的別名n合并各分e-r圖曾做了消除命名沖突的工作,以使數(shù)據(jù)庫系統(tǒng)中同一關(guān)系和屬性具有唯一的名字。這在設(shè)計數(shù)據(jù)庫整體結(jié)構(gòu)時是非常必要的。2021年11月9日星期二7.4.4 設(shè)計用戶子模式n但對于某些局部應(yīng)用,由于改用了不符合用戶習(xí)慣的屬性名
47、,會使他們感到不方便,因此在設(shè)計用戶子模式時可重新定義某些屬性名,使其與用戶習(xí)慣一致。當(dāng)然,為了應(yīng)用的規(guī)范化,我們也不應(yīng)該一味地遷就用戶。例:負責(zé)學(xué)籍管理的用戶習(xí)慣于稱教師模式的職工號為教師編號。因此可以定義視圖,在視圖中職工號重定義為教師編號。2021年11月9日星期二設(shè)計用戶子模式(續(xù)) (2) 針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性的要求。例:教師關(guān)系模式中包括職工號、姓名、性別、出生日期、婚姻狀況、學(xué)歷、學(xué)位、政治面貌、職稱、職務(wù)、工資、工齡、教學(xué)效果等屬性。n學(xué)籍管理應(yīng)用只能查詢教師的職工號、姓名、性別、職稱數(shù)據(jù);n課程管理應(yīng)用只能查詢教師的職工號、姓名、性別、學(xué)歷、
48、學(xué)位、職稱、教學(xué)效果數(shù)據(jù);n教師管理應(yīng)用則可以查詢教師的全部數(shù)據(jù)。2021年11月9日星期二設(shè)計用戶子模式(續(xù))n定義兩個外模式:教師_學(xué)籍管理(職工號,姓名,性別,職稱)教師_課程管理(工號,姓名,性別,學(xué)歷, 學(xué)位,職稱,教學(xué)效果)n授權(quán)學(xué)籍管理應(yīng)用只能訪問教師_學(xué)籍管理視圖n授權(quán)課程管理應(yīng)用只能訪問教師_課程管理視圖n授權(quán)教師管理應(yīng)用能訪問教師表 這樣就可以防止用戶非法訪問本來不允許他們查詢的數(shù)據(jù),保證了系統(tǒng)的安全性。2021年11月9日星期二設(shè)計用戶子模式(續(xù))(3) 簡化用戶對系統(tǒng)的使用n如果某些局部應(yīng)用中經(jīng)常要使用某些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖。n思考
49、題1、如何將e-r圖轉(zhuǎn)化成關(guān)系模型?2、將教材p19的圖1-14(工廠物資管理e-r圖)轉(zhuǎn)化為關(guān)系模型。2021年11月9日星期二 數(shù)據(jù)庫物理設(shè)計數(shù)據(jù)庫物理設(shè)計確定數(shù)確定數(shù)據(jù)庫的據(jù)庫的物理結(jié)物理結(jié)構(gòu)構(gòu)評價數(shù)據(jù)評價數(shù)據(jù)庫的物理庫的物理結(jié)構(gòu)結(jié)構(gòu)邏輯結(jié)邏輯結(jié)構(gòu)設(shè)計構(gòu)設(shè)計數(shù)據(jù)庫數(shù)據(jù)庫實施實施物理物理模型模型邏輯邏輯模型模型7.5 數(shù)據(jù)庫的物理設(shè)計2021年11月9日星期二n物理設(shè)計的主要內(nèi)容包含:n為關(guān)系模式選擇存取方法(建立存取路徑)n設(shè)計關(guān)系、索引等數(shù)據(jù)文件的物理存儲結(jié)構(gòu)n確定數(shù)據(jù)的存放位置和存貯結(jié)構(gòu)n根據(jù)不同dbms確定系統(tǒng)的配置,對物理結(jié)構(gòu)進行評價7.5 數(shù)據(jù)庫的物理設(shè)計(續(xù))2021年11月
50、9日星期二7.5.1 存取方法ndbms常用存取方法:n索引方法:決定那些屬性要建立索引(目前主要是b+樹索引方法)n聚簇方法:存放在連續(xù)的物理塊nhash方法:通過計算找到實際的存放位置2021年11月9日星期二一、索引存取方法的選擇n選擇索引存取方法的一般規(guī)則n如果一個(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(或這組)屬性上建立索引(或組合索引)n如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引n如果一個(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(或這組)屬性上建立索引n關(guān)系上定義的索引數(shù)過多會帶來較多的額外開銷n 維護索引的開銷n 查
51、找索引的開銷2021年11月9日星期二二、聚簇存取方法的選擇n什么是聚簇n為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇。n聚簇存放與聚簇索引的區(qū)別n建立聚簇索引后,基表中數(shù)據(jù)也需要按指定的聚簇屬性值的升序或降序存放。也即聚簇索引的索引項順序與表中元組的物理順序一致。2021年11月9日星期二建立聚簇索引 (復(fù)習(xí))例:create cluster index stusname on student(sname);在student表的sname(姓名)列上建立一個聚簇索引,而且student表中的記錄將按照sname值的升序
52、存放 n在一個基本表上最多只能建立一個聚簇索引n聚簇索引的適用范圍n很少對基表進行增刪操作n很少對其中的變長列進行修改操作2021年11月9日星期二聚簇的用途1. 大大提高按聚簇屬性進行查詢的效率例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查詢信息系的所有學(xué)生名單。n信息系的500名學(xué)生分布在500個不同的物理塊上時,至少要執(zhí)行500次i/o操作。n如果將同一系的學(xué)生元組集中存放,則每讀一個物理塊可得到多個滿足查詢條件的元組,從而顯著地減少了訪問磁盤的次數(shù)。2. 節(jié)省存儲空間n聚簇以后,聚簇碼相同的元組集中在一起,因而聚簇碼值不必在每個元組中重復(fù)存儲,只要在一組中存一次就行了2021年11月9日星
53、期二選擇聚簇存取方法n設(shè)計聚簇碼的一般規(guī)則n對經(jīng)常在一起進行連接操作的關(guān)系可以建立組合聚簇碼;n如果一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中,則該單個關(guān)系可建立聚簇碼;n如果一個關(guān)系的一個(或一組)屬性上的值重復(fù)率很高,則此單個關(guān)系可建立聚簇碼。2021年11月9日星期二三、hash存取方法的選擇n選擇hash存取方法的規(guī)則 關(guān)系的屬性主要出現(xiàn)在等值連接條件中,或主要出現(xiàn)在相等比較選擇條件中,而且滿足下列兩個條件之一時,可以選擇hash存取方法:n該關(guān)系的大小可預(yù)知,而且不變;n該關(guān)系的大小動態(tài)改變,但所選用的dbms提供了動態(tài)hash存取方法。2021年11月9日星期二7.5.2 確定數(shù)據(jù)
54、庫的存儲結(jié)構(gòu)n確定數(shù)據(jù)庫物理結(jié)構(gòu)的內(nèi)容n1. 確定數(shù)據(jù)的存放位置和存儲結(jié)構(gòu)n 關(guān)系n 索引n 聚簇n 日志n 備份n2. 確定系統(tǒng)配置2021年11月9日星期二1. 確定數(shù)據(jù)的存放位置n影響數(shù)據(jù)存放位置和存儲結(jié)構(gòu)的因素n硬件環(huán)境n應(yīng)用需求n存取時間n存儲空間利用率n維護代價 這三個方面常常是相互矛盾的必須進行權(quán)衡,選擇一個折中方案。2021年11月9日星期二確定數(shù)據(jù)的存放位置(續(xù))n基本原則n根據(jù)應(yīng)用情況將n易變部分與穩(wěn)定部分n存取頻率較高部分與存取頻率較低部分 分開存放,以提高系統(tǒng)性能2021年11月9日星期二確定數(shù)據(jù)的存放位置(續(xù))例:n數(shù)據(jù)庫數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時才使
55、用,而且數(shù)據(jù)量很大,可以考慮存放在磁帶上。n如果計算機有多個磁盤,可以考慮將表和索引分別放在不同的磁盤上,在查詢時,由于兩個磁盤驅(qū)動器分別在工作,因而可以保證物理讀寫速度比較快。2021年11月9日星期二確定數(shù)據(jù)的存放位置(續(xù))例(續(xù)):n可以將比較大的表分別放在兩個磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效。n可以將日志文件與數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤以改進系統(tǒng)的性能。2021年11月9日星期二2. 確定系統(tǒng)配置ndbms產(chǎn)品一般都提供了一些存儲分配參數(shù)n 同時使用數(shù)據(jù)庫的用戶數(shù)n 同時打開的數(shù)據(jù)庫對象數(shù)n 使用的緩沖區(qū)長度、個數(shù)n 時間片大小n 數(shù)據(jù)庫的大小n 裝填因子n
56、 鎖的數(shù)目n 等等2021年11月9日星期二確定系統(tǒng)配置(續(xù))n系統(tǒng)都為這些變量賦予了合理的缺省值。但是這些值不一定適合每一種應(yīng)用環(huán)境,在進行物理設(shè)計時,需要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)性能最優(yōu)。 n在物理設(shè)計時對系統(tǒng)配置變量的調(diào)整只是初步的,在系統(tǒng)運行時還要根據(jù)系統(tǒng)實際運行情況做進一步的調(diào)整,以期切實改進系統(tǒng)性能。2021年11月9日星期二7.5.3 評價物理結(jié)構(gòu)n評價內(nèi)容:對數(shù)據(jù)庫物理設(shè)計過程中產(chǎn)生的多種方案進行細致的評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)。n評價方法n定量估算各種方案n 存儲空間n 存取時間n 維護代價n對估算結(jié)果進行權(quán)衡、比較,選擇出一個較優(yōu)的合理的物理結(jié)構(gòu)2021年11月9日星期二7.6 數(shù)據(jù)庫的實施n數(shù)據(jù)庫實施的工作內(nèi)容n用ddl定義數(shù)據(jù)庫結(jié)構(gòu)n組織數(shù)據(jù)入庫n編制與調(diào)試應(yīng)用程序n數(shù)據(jù)庫試運行2021年11月9日星期二數(shù)據(jù)庫實施數(shù)據(jù)庫實施定義數(shù)定義數(shù)據(jù)庫結(jié)據(jù)庫結(jié)構(gòu)構(gòu)數(shù)據(jù)數(shù)據(jù)裝載裝載 數(shù)據(jù)庫數(shù)據(jù)庫試運行試運行數(shù)據(jù)庫物數(shù)據(jù)庫物理設(shè)計理設(shè)計數(shù)據(jù)庫運數(shù)據(jù)庫運行和維護行和維護物理物理模型模型編制與編制與調(diào)試應(yīng)調(diào)試應(yīng)用程序用程序數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)系統(tǒng)2021年11月9日星期二一、定義數(shù)據(jù)庫結(jié)構(gòu)n確定了數(shù)據(jù)庫的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,就可以用所選用的dbms提供的數(shù)據(jù)定義語言(ddl)來嚴格描述數(shù)據(jù)
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理人員勞動合同示例
- 房屋建筑白蟻預(yù)防施工協(xié)議
- 鐵礦石海運合同模板
- 店面轉(zhuǎn)讓協(xié)議樣本-合同范本
- 家政服務(wù)用工合同樣本
- 資產(chǎn)委托管理合同
- 商標許可使用合同范例
- 工業(yè)用途土地買賣合同參考
- 漁業(yè)養(yǎng)殖承包協(xié)議書-合同范本
- 股權(quán)投資協(xié)議范本匯編
- 三類人員安全安全生產(chǎn)考核合格證書單位調(diào)動申請表
- 五年級上冊數(shù)學(xué)教案-平行四邊形的認識- 滬教版
- 某市康復(fù)醫(yī)院建立的可行性報告
- 電大中級財務(wù)會計二形成性考核冊
- 宮之奇諫假道(課堂PPT)
- 公司員工晉升管理辦法(草案)
- 英語介紹微信PPT課件
- 關(guān)于銀行信息科技工作的幾點思考
- 單腳起跳、雙腳落地
- 毛竹腳手架施工方案
- 中南大學(xué)學(xué)位證書樣本掃描件WORD
評論
0/150
提交評論