




已閱讀5頁,還剩157頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1,第六章 數(shù)據(jù)庫系統(tǒng)設(shè)計,2,第6章 數(shù)據(jù)庫系統(tǒng)設(shè)計,6.1 數(shù)據(jù)庫設(shè)計概述 6.2 需求分析 6.3 概念結(jié)構(gòu)設(shè)計 6.4 邏輯結(jié)構(gòu)設(shè)計 6.5 物理結(jié)構(gòu)設(shè)計 6.6 數(shù)據(jù)庫的實施和維護(hù),3,6.1 數(shù)據(jù)庫設(shè)計概述,什么是數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模型,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求) 在數(shù)據(jù)庫領(lǐng)域內(nèi),常常把使用數(shù)據(jù)庫的各類系統(tǒng)統(tǒng)稱為數(shù)據(jù)庫應(yīng)用系統(tǒng)。,4,數(shù)據(jù)庫設(shè)計人員應(yīng)該具備的技術(shù)和知識,數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設(shè)計技術(shù) 計算機(jī)科學(xué)的基礎(chǔ)知識和程序設(shè)計的方法和技巧 軟件工程的原理和方法 應(yīng)用領(lǐng)域的知識,5,6.1.1 數(shù)據(jù)庫設(shè)計的基本任務(wù),數(shù)據(jù)庫設(shè)計的任務(wù): 根據(jù)應(yīng)用領(lǐng)域的信息需求、處理需求和數(shù)據(jù)庫的支持環(huán)境,設(shè)計出數(shù)據(jù)模式(包括外模式、邏輯模式和內(nèi)模式)以及相應(yīng)的應(yīng)用程序。其中: 信息需求表示應(yīng)用領(lǐng)域所需要的數(shù)據(jù)及其結(jié)構(gòu) 表達(dá)了對數(shù)據(jù)庫的內(nèi)容及結(jié)構(gòu)的要求,也就是靜態(tài)要求; 處理需求表示應(yīng)用領(lǐng)域需要進(jìn)行的數(shù)據(jù)處理 表達(dá)了基于數(shù)據(jù)庫的數(shù)據(jù)處理要求,也就是動態(tài)要求;,6,6.1.1 數(shù)據(jù)庫設(shè)計的基本任務(wù)(續(xù)),數(shù)據(jù)庫設(shè)計的兩個目標(biāo) 滿足應(yīng)用功能需求 是指把用戶當(dāng)前應(yīng)用以及可預(yù)知的將來應(yīng)用所需要的數(shù)據(jù)及其聯(lián)系能全部準(zhǔn)確地存放于數(shù)據(jù)庫之中,并能根據(jù)用戶的需要對數(shù)據(jù)進(jìn)行合理的增、刪、改、查詢等操作。 良好的數(shù)據(jù)庫性能 是指數(shù)據(jù)庫應(yīng)具有良好的存儲結(jié)構(gòu)、良好的數(shù)據(jù)共享性、良好的數(shù)據(jù)完整性、良好的數(shù)據(jù)一致性及良好的安全保密性能等。,7,6.1.1 數(shù)據(jù)庫設(shè)計的基本任務(wù)(續(xù)),數(shù)據(jù)庫設(shè)計的結(jié)果不是唯一的,針對同一應(yīng)用環(huán)境,不同的設(shè)計者可能得出不同的數(shù)據(jù)庫模式。 一個好的數(shù)據(jù)庫設(shè)計方法應(yīng)該能在合理的期限內(nèi),以合理的工作量建立一個有合理利用價值的數(shù)據(jù)庫系統(tǒng)。,8,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟,一、數(shù)據(jù)庫設(shè)計的準(zhǔn)備工作 選定參加設(shè)計的人員 1. 數(shù)據(jù)庫分析設(shè)計人員 數(shù)據(jù)庫設(shè)計的核心人員 自始至終參與數(shù)據(jù)庫設(shè)計 其水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量,9,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)),2. 用戶 在數(shù)據(jù)庫設(shè)計中也是舉足輕重的 主要參加需求分析和數(shù)據(jù)庫的運(yùn)行維護(hù) 用戶積極參與帶來的好處 加速數(shù)據(jù)庫設(shè)計 提高數(shù)據(jù)庫設(shè)計的質(zhì)量 3. 程序員 在系統(tǒng)實施階段參與進(jìn)來,負(fù)責(zé)編制程序 4. 操作員 在系統(tǒng)實施階段參與進(jìn)來,準(zhǔn)備軟硬件環(huán)境,10,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)),二、數(shù)據(jù)庫設(shè)計的過程 數(shù)據(jù)庫設(shè)計包含: 結(jié)構(gòu)設(shè)計 是指系統(tǒng)整體邏輯模式與子模式的設(shè)計,是對數(shù)據(jù)的分析設(shè)計 行為設(shè)計 是指施加在數(shù)據(jù)庫上的動態(tài)操作(應(yīng)用程序集)的設(shè)計,是對應(yīng)用系統(tǒng)功能的設(shè)計,11,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)),二、數(shù)據(jù)庫設(shè)計的過程 按照規(guī)范化設(shè)計的方法和軟件工程生命周期的思想,考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的開發(fā)全過程,將數(shù)據(jù)庫設(shè)計分為以下6個階段,如圖P127:6.1所示。,12,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)),13,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)),二、數(shù)據(jù)庫設(shè)計的過程(六個階段) 需求分析階段 準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理) 是整個設(shè)計過程的基礎(chǔ),是最困難、最耗費(fèi)時間的一步 設(shè)計的內(nèi)容形成文檔資料(數(shù)據(jù)流圖、數(shù)據(jù)字典),14,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)), 概念結(jié)構(gòu)設(shè)計階段 是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵 通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型ER圖 邏輯結(jié)構(gòu)設(shè)計階段 將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型 對其進(jìn)行優(yōu)化,15,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)), 物理結(jié)構(gòu)設(shè)計階段 為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法) 數(shù)據(jù)庫實施階段 運(yùn)用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果 建立數(shù)據(jù)庫 編制與調(diào)試應(yīng)用程序 組織數(shù)據(jù)入庫 試運(yùn)行,16,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)),數(shù)據(jù)庫運(yùn)行和維護(hù)階段 數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。 在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中必須不斷地對其進(jìn)行評價、調(diào)整與修改。 設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述六個階段的不斷反復(fù)。 設(shè)計過程各個階段的設(shè)計描述:P128表6.1,17,Creat Load,Main( ) if then end,概念結(jié)構(gòu)設(shè)計,邏輯結(jié)構(gòu)設(shè)計,物理設(shè)計,18,6.1.2 數(shù)據(jù)庫設(shè)計的基本步驟(續(xù)),數(shù)據(jù)庫各級模式的形成過程總結(jié) 需求分析階段 綜合各個用戶的應(yīng)用需求 概念結(jié)構(gòu)設(shè)計階段 形成獨立于DBMS產(chǎn)品的概念模式(E-R圖) 邏輯結(jié)構(gòu)設(shè)計階段 首先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式 然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖,形成數(shù)據(jù)的外模式 物理結(jié)構(gòu)設(shè)計階段 根據(jù)DBMS特點和處理的需要,進(jìn)行物理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式,19,6.1.3 數(shù)據(jù)庫設(shè)計的特點,三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù) 數(shù)據(jù)庫設(shè)計應(yīng)該與應(yīng)用系統(tǒng)設(shè)計相結(jié)合 結(jié)構(gòu)(數(shù)據(jù))設(shè)計:設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu) 行為(處理)設(shè)計:設(shè)計應(yīng)用程序、事務(wù)處理等 數(shù)據(jù)庫設(shè)計方法 新奧爾良方法 基于E-R模型的數(shù)據(jù)庫設(shè)計方法 基于3NF(第三范式)的設(shè)計方法 等,20,6.1.3 數(shù)據(jù)庫設(shè)計的特點(續(xù)),21,6.1.3 數(shù)據(jù)庫設(shè)計的特點(續(xù)),數(shù)據(jù)庫設(shè)計往往具有以下特征: 反復(fù)性 試探性 分步進(jìn)行,22,6.2 需求分析,需求分析就是分析用戶的要求 需求分析是設(shè)計數(shù)據(jù)庫的起點 需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實際要求,將直接影響到后面各個階段的設(shè)計,并影響到設(shè)計結(jié)果是否合理和實用性。,23,6.2.1 需求分析的任務(wù)和方法,需求分析的任務(wù): 通過詳實調(diào)查應(yīng)用領(lǐng)域中各應(yīng)用的信息要求和操作要求,進(jìn)行詳細(xì)分析,明確用戶的各種需求。 需求分析的目標(biāo) 給出應(yīng)用領(lǐng)域中數(shù)據(jù)項、數(shù)據(jù)項之間的關(guān)系和數(shù)據(jù)操作任務(wù)的詳細(xì)定義,24,6.2.1 需求分析的任務(wù)和方法(續(xù)),1獲得用戶對數(shù)據(jù)庫的要求 (1)信息要求。指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。 (2)處理要求。用戶要完成什么處理,檢索方式有什么要求,被存取的數(shù)據(jù)量與運(yùn)行限制等。 (3)系統(tǒng)要求。系統(tǒng)要求包括安全性要求、使用方式要求和可擴(kuò)充性要求3部分內(nèi)容。,25,6.2.1 需求分析的任務(wù)和方法(續(xù)),2調(diào)查用戶需求的步驟 (1) 調(diào)查組織機(jī)構(gòu)情況,分析用戶活動,產(chǎn)生業(yè)務(wù)流程圖。 組織機(jī)構(gòu)的組成情況 各部門的職責(zé) 各個部門輸入和使用什么數(shù)據(jù) 如何加工處理這些數(shù)據(jù) 輸出什么信息 輸出到什么部門 輸出結(jié)果的格式是什么,26,6.2.1 需求分析的任務(wù)和方法(續(xù)),2調(diào)查用戶需求的步驟(續(xù)) (2)確定新系統(tǒng)范圍 即確定哪些工作準(zhǔn)備由計算機(jī)完成,哪些工作由人工完成,計算機(jī)完成的功能就是新系統(tǒng)應(yīng)該實現(xiàn)的功能。 協(xié)助用戶明確對新系統(tǒng)的各種要求:信息要求、 處理要求、完全性與完整性要求 對前面調(diào)查的結(jié)果進(jìn)行初步分析,確定新系統(tǒng)的邊界,27,6.2.1 需求分析的任務(wù)和方法(續(xù)),3系統(tǒng)需求調(diào)查方法 (1)查閱原系統(tǒng)有關(guān)的數(shù)據(jù)記錄 (2)開調(diào)查會 (3)設(shè)計調(diào)查表請用戶填寫 (4)請專人介紹 (5)跟班作業(yè),28,6.2.1 需求分析的任務(wù)和方法(續(xù)),調(diào)查之后,還需進(jìn)一步分析和表達(dá)用戶需求 分析和表達(dá)用戶的需求的常用方法 自頂向下的結(jié)構(gòu)化分析方法 (Structured Analysis,簡稱SA方法) SA方法從最上層的系統(tǒng)組織機(jī)構(gòu)入手,采用自頂向下、逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。,29,需求分析過程,30,6.2.2 數(shù)據(jù)流圖,數(shù)據(jù)流圖(Data Flow Diagram, DFD): 是一種全面描述系統(tǒng)邏輯模型的主要工具,它是從“數(shù)據(jù)” 和 “對數(shù)據(jù)的加工”兩方面表達(dá)數(shù)據(jù)處理系統(tǒng)的一種圖形表示法。 可以用少數(shù)幾種符號綜合地反映出數(shù)據(jù)在系統(tǒng)中的流動、存儲和處理情況 把系統(tǒng)中的不同業(yè)務(wù)處理過程聯(lián)系起來,形成一個整體,31,6.2.2 數(shù)據(jù)流圖(續(xù)),DFD由4種基本符號組成:,32,6.2.2 數(shù)據(jù)流圖(續(xù)),1數(shù)據(jù)流 數(shù)據(jù)流由一組確定的數(shù)據(jù)組成 數(shù)據(jù)流用帶有名字的具有箭頭的線段表示 名字?jǐn)?shù)據(jù)流名,表示流經(jīng)的數(shù)據(jù) 箭頭流向 數(shù)據(jù)流可以從加工流向加工,也可以從加工流進(jìn)、流出文件,還可以從源點流向加工或從加工流向終點。,33,6.2.2 數(shù)據(jù)流圖(續(xù)),2加工(處理) 加工(處理)是對數(shù)據(jù)進(jìn)行的操作 把流入的數(shù)據(jù)流轉(zhuǎn)換為流出的數(shù)據(jù)流 每個加工都應(yīng)取一個名字表示它的含義,并規(guī)定一個編號用來標(biāo)識該加工在層次分解中的位置 名字中必須包含一個動詞,如“計算”、“打印”等,34,6.2.2 數(shù)據(jù)流圖(續(xù)),3文件(數(shù)據(jù)存儲) 文件是存儲數(shù)據(jù)的工具 文件名應(yīng)與它的內(nèi)容一致,寫在開口長條內(nèi) 數(shù)據(jù)流方向表示從文件流入或流出數(shù)據(jù)流 如果是讀文件,則數(shù)據(jù)流的方向應(yīng)從文件流出 寫文件時則相反 如果是又讀又寫,則數(shù)據(jù)流是雙向的,35,6.2.2 數(shù)據(jù)流圖(續(xù)),4數(shù)據(jù)源或終點 數(shù)據(jù)源或終點是指獨立于系統(tǒng)而存在的,但是又和系統(tǒng)有聯(lián)系的實體 表示數(shù)據(jù)的外部來源和去處,通常是系統(tǒng)之外的人員或組織。,36,6.2.2 數(shù)據(jù)流圖(續(xù)),一個簡單的數(shù)據(jù)流圖 :,37,6.2.2 數(shù)據(jù)流圖(續(xù)),SA方法設(shè)計各層的數(shù)據(jù)流圖: 1首先把任何一個系統(tǒng)都抽象為:,38,6.2.2 數(shù)據(jù)流圖(續(xù)),2分解處理功能和數(shù)據(jù) (1)分解處理功能 將處理功能的具體內(nèi)容分解為若干子功能,再將每個子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達(dá)清楚為止。 (2)分解數(shù)據(jù) 在處理功能逐步分解的同時,其所用的數(shù)據(jù)也逐級分解,形成若干層次的數(shù)據(jù)流圖 數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過程的關(guān)系 (3)表達(dá)方法 處理過程:用判定表或判定樹來描述 數(shù)據(jù):用數(shù)據(jù)字典來描述,39,6.2.2 數(shù)據(jù)流圖(續(xù)),實例:某醫(yī)院門診準(zhǔn)備采用病人持IC卡就醫(yī),對應(yīng)的數(shù)據(jù)流圖如P132圖6.4-6.7所示。,40,6.2.2 數(shù)據(jù)流圖(續(xù)),實例:病人持IC卡就醫(yī)-“發(fā)卡”模塊細(xì)化,41,6.2.2 數(shù)據(jù)流圖(續(xù)),實例:病人持IC卡就醫(yī)-“就診”模塊細(xì)化,42,6.2.3 數(shù)據(jù)字典,一、數(shù)據(jù)字典的用途 二、數(shù)據(jù)字典的內(nèi)容,43,一、數(shù)據(jù)字典的用途,數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合 數(shù)據(jù)庫中數(shù)據(jù)的描述,即“元數(shù)據(jù)”,而不是數(shù)據(jù)本身 數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果 數(shù)據(jù)字典在數(shù)據(jù)庫設(shè)計中占有很重要的地位 數(shù)據(jù)字典和數(shù)據(jù)流圖共同構(gòu)成需求說明書(Specification Documents),是需求分析的階段成果,是對需求分析結(jié)果的最終描述。,44,二、數(shù)據(jù)字典的內(nèi)容,對數(shù)據(jù)流圖(DFD)中涉及的各類元素進(jìn)行規(guī)范的描述,就構(gòu)成了數(shù)據(jù)字典的基本內(nèi)容。 數(shù)據(jù)字典所描述的數(shù)據(jù)內(nèi)容 數(shù)據(jù)項 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)流 數(shù)據(jù)存儲 處理過程 數(shù)據(jù)項是數(shù)據(jù)的最小組成單位 若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。 在數(shù)據(jù)庫設(shè)計過程中,數(shù)據(jù)字典中的內(nèi)容是不斷充實和完善的。,45, 數(shù)據(jù)項,數(shù)據(jù)項是不可再分的數(shù)據(jù)單位 對數(shù)據(jù)項的描述 數(shù)據(jù)項描述數(shù)據(jù)項名,數(shù)據(jù)項含義說明, 別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項的邏輯關(guān)系 取值范圍、與其他數(shù)據(jù)項的邏輯關(guān)系定義了數(shù)據(jù)的完整性約束條件,46, 數(shù)據(jù)項(續(xù)),例6.2 對“IC卡卡號”的數(shù)據(jù)項說明。 數(shù)據(jù)項:IC卡卡號 含義說明:唯一標(biāo)識每張卡 別名:醫(yī)療卡卡號 類型:字符型 長度:10 取值范圍:0 000 000 0009 999 999 999 取值含義:前4位標(biāo)識該患者所在地區(qū)編號 與其他數(shù)據(jù)項的邏輯關(guān)系:N/A,47, 數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。 一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成,或由若干個數(shù)據(jù)項和數(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),48, 數(shù)據(jù)結(jié)構(gòu)(續(xù)),例6.3 對“病人”數(shù)據(jù)結(jié)構(gòu)說明。 數(shù)據(jù)結(jié)構(gòu):病人 含義說明:是就診系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個病人的有關(guān)信息 組成:病人編號,姓名,性別,出生日期,籍貫,住址,電話,備注,49, 數(shù)據(jù)流,數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂健?對數(shù)據(jù)流的描述 數(shù)據(jù)流描述數(shù)據(jù)流名,說明,數(shù)據(jù)流來源, 數(shù)據(jù)流去向,組成:數(shù)據(jù)結(jié)構(gòu), 平均流量,高峰期流量 數(shù)據(jù)流來源是說明該數(shù)據(jù)流來自哪個過程 數(shù)據(jù)流去向是說明該數(shù)據(jù)流將到哪個過程去 平均流量是指在單位時間(每天、每周、每月等)里的傳輸次數(shù) 高峰期流量則是指在高峰時期的數(shù)據(jù)流量,50, 數(shù)據(jù)流(續(xù)),例6.4 對“掛號票”數(shù)據(jù)流說明。 數(shù)據(jù)流:掛號票 說明:病人掛號后得到的票據(jù) 數(shù)據(jù)流來源:掛號 數(shù)據(jù)流去向:就診 組成: 平均流量: 高峰期流量:,51, 數(shù)據(jù)存儲,數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。 對數(shù)據(jù)存儲的描述 數(shù)據(jù)存儲描述數(shù)據(jù)存儲名,說明,編號, 流入的數(shù)據(jù)流 ,流出的數(shù)據(jù)流, 組成:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)量,存取方式 流入的數(shù)據(jù)流:指出數(shù)據(jù)來源 流出的數(shù)據(jù)流:指出數(shù)據(jù)去向 數(shù)據(jù)量:每次存取多少數(shù)據(jù),每天(或每小時、每周等)存取幾次等信息 存取方法:批處理 / 聯(lián)機(jī)處理;檢索 / 更新;順序檢索 / 隨機(jī)檢索,52, 數(shù)據(jù)存儲(續(xù)),例6.5 對“病史數(shù)據(jù)”的數(shù)據(jù)存儲說明。 數(shù)據(jù)存儲:病史數(shù)據(jù) 說明:記錄病人所有病史資料 流入數(shù)據(jù)流:填寫 流出數(shù)據(jù)流:查閱 數(shù)據(jù)量:由病人就診次數(shù)決定 存取方式:隨機(jī)存取,53, 處理過程,處理過程的具體處理邏輯一般用判定表或判定樹來描述。數(shù)據(jù)字典中只需要描述處理過程的說明性信息 處理過程說明性信息的描述 處理過程描述處理過程名,說明, 輸入:數(shù)據(jù)流,輸出:數(shù)據(jù)流, 處理:簡要說明,54,5. 處理過程(續(xù)),簡要說明:主要說明該處理過程的功能及處理要求 功能:該處理過程用來做什么 處理要求:處理頻度要求(如單位時間里處理多少事務(wù),多少數(shù)據(jù)量);響應(yīng)時間要求等 處理要求是后面物理設(shè)計的輸入及性能評價的標(biāo)準(zhǔn),55, 處理過程(續(xù)),例6.6 對“診斷”的處理過程說明。 處理過程:診斷 說明:病人在醫(yī)生處獲得診斷結(jié)果 輸入:掛號票 輸出:處方或化驗單 處理:病人掛號后,獲取掛號單到某科室醫(yī)生處就醫(yī),醫(yī)生經(jīng)過檢查和查看病人過往病史,得出診斷結(jié)果;將病人就醫(yī)情況等信息記入病人的病史數(shù)據(jù)庫中;并開出處方或者化驗單,讓病人取藥或者化驗。,56,6.3 概念結(jié)構(gòu)設(shè)計,什么是概念結(jié)構(gòu)設(shè)計 需求分析階段描述的用戶應(yīng)用需求,是現(xiàn)實世界的具體需求 將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計 概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨立于機(jī)器、更抽象,從而更加穩(wěn)定。 概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,57,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法,58,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),概念結(jié)構(gòu)設(shè)計的特點 (1)語義表達(dá)能力強(qiáng)。能真實、充分地反映現(xiàn)實世界,包括實體和實體之間的聯(lián)系,概念模型是現(xiàn)實世界的一個真實模型。 (2)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。 (3)易于理解??梢杂盟筒皇煜び嬎銠C(jī)的用戶交換意見,使用戶易于參與。 (4)易于更改。當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時,容易對概念模型修改和擴(kuò)充。,59,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),描述概念模型的工具: E-R模型,60,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),概念結(jié)構(gòu)的設(shè)計 集中式模式設(shè)計法 首先將需求說明綜合成一個統(tǒng)一的需求說明,然后,在此基礎(chǔ)上設(shè)計全局?jǐn)?shù)據(jù)模式,再根據(jù)全局?jǐn)?shù)據(jù)模式為各個用戶組或應(yīng)用定義數(shù)據(jù)庫邏輯設(shè)計模式。 一般用于小型的、不太復(fù)雜的系統(tǒng)。 視圖集成法 分別以各局部應(yīng)用的需求說明設(shè)計各自的模式(局部視圖),然后以這些視圖為基礎(chǔ),集成為一個全局模式。 常用的方法,61,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),視圖集成法設(shè)計概念結(jié)構(gòu)的四類方法: 自頂向下 首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化 自底向上 首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu),62,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),逐步擴(kuò)張 首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu) 混合策略 將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。,63,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),自頂向下策略,64,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),自底向上策略,65,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),逐步擴(kuò)張,66,6.3.1 概念結(jié)構(gòu)的特點及設(shè)計方法(續(xù)),常用策略 自頂向下地進(jìn)行需求分析 自底向上地設(shè)計概念結(jié)構(gòu) 自底向上設(shè)計概念結(jié)構(gòu)的步驟 第1步:抽象數(shù)據(jù)并設(shè)計局部視圖 第2步:集成局部視圖,得到全局概念結(jié)構(gòu),67,6.3.2 概念結(jié)構(gòu)設(shè)計的步驟,1、數(shù)據(jù)抽象 概念結(jié)構(gòu)是對現(xiàn)實世界的一種抽象 從實際的人、事、物和概念中抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié) 把這些特性用各種概念精確地加以描述 這些概念組成了某種模型,68,6.3.2 概念結(jié)構(gòu)設(shè)計的步驟(續(xù)),1、三種常用抽象 (1)分類(Classification) 定義某一類概念作為現(xiàn)實世界中一組對象的類型 這些對象具有某些共同的特性和行為 它抽象了對象值和型之間的“is member of”的語義 在E-R模型中,實體型就是這種抽象 例:P136圖6.8,69,6.3.2 概念結(jié)構(gòu)設(shè)計的步驟(續(xù)),1、三種常用抽象(續(xù)) (2)聚集(Aggregation) 定義某一類型的組成成分 它抽象了對象內(nèi)部類型和成分之間“is part of”的語義 在E-R模型中若干屬性的聚集組成了實體型,就是這種抽象 例:P136圖6.9,70,6.3.2 概念結(jié)構(gòu)設(shè)計的步驟(續(xù)),1、三種常用抽象(續(xù)) (3)概括(Generalization) 定義類型之間的一種子集聯(lián)系 它抽象了類型之間的“is subset of”的語義 概括有一個很重要的性質(zhì):繼承性。子類繼承超類上定義的所有抽象。 例:P136圖6.10,71,6.3.2 概念結(jié)構(gòu)設(shè)計的步驟(續(xù)),數(shù)據(jù)抽象的用途 對需求分析階段收集到的數(shù)據(jù)進(jìn)行分類、組織(聚集),形成 實體 實體的屬性,標(biāo)識實體的碼 確定實體之間的聯(lián)系類型(1:1,1:n,m:n),72,6.3.2 概念結(jié)構(gòu)設(shè)計的步驟(續(xù)),2、抽象數(shù)據(jù)并設(shè)計局部視圖(E-R圖) 設(shè)計分E-R圖的步驟: (1)選擇局部應(yīng)用 (2)逐一設(shè)計分E-R圖,73,(1) 選擇局部應(yīng)用,需求分析階段,已用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個系統(tǒng)。 設(shè)計分E-R圖首先需要根據(jù)系統(tǒng)的具體情況,確定局部結(jié)構(gòu)的范圍劃分,然后設(shè)計每個局部結(jié)構(gòu)的分E-R圖。 依據(jù)系統(tǒng)的當(dāng)前用戶進(jìn)行自然劃分 按照用戶要求數(shù)據(jù)庫提供的服務(wù)歸納成幾類,使每一類應(yīng)用訪問的數(shù)據(jù)顯著的不同于其他類,然后為每類應(yīng)用設(shè)計一個局部E-R圖。,74,(1)選擇局部應(yīng)用(續(xù)),例如,醫(yī)院的門診數(shù)據(jù)庫可以按提供的服務(wù)大致分成以下幾類: (1)醫(yī)務(wù)人員檔案信息(如姓名、年齡、性別和職務(wù)等)的維護(hù)。 (2)患者檔案信息(如姓名、年齡、性別和地址等)的維護(hù)。 (3)藥品檔案信息(如藥名、療效、價格和供應(yīng)商)的維護(hù)。 (4)醫(yī)療器材檔案信息(如器材名、適用范圍、價格和供應(yīng)商)的維護(hù)。 (5)門診情況檔案信息(如患者名、醫(yī)生名稱、時間和患病情況)的維護(hù)等。,75,(2)逐一設(shè)計分E-R圖,任務(wù) 標(biāo)定局部應(yīng)用中的實體、屬性、碼,實體間的聯(lián)系 將各局部應(yīng)用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標(biāo)定各局部應(yīng)用中的實體、實體的屬性、標(biāo)識實體的鍵 ,確定實體之間的聯(lián)系及其類型(1:1,1:n,m:n) 務(wù)必要使局部實體集間的聯(lián)系準(zhǔn)確地描述應(yīng)用領(lǐng)域中各事物之間的聯(lián)系。,76,(2)逐一設(shè)計分E-R圖(續(xù)),例6.7 對醫(yī)院的門診數(shù)據(jù)庫 “就診”模塊: 分析知道有實體“IC卡”、“病人”、以及這兩個實體之間存在1 : 1的關(guān)系,77,(2)逐一設(shè)計分E-R圖(續(xù)),例6.7 對醫(yī)院的門診數(shù)據(jù)庫 “就診”模塊: 分析知道有實體“醫(yī)務(wù)人員”、“處方單” 、以及這兩個實體之間存在1 : n的關(guān)系,78,6.3.2 概念結(jié)構(gòu)設(shè)計的步驟(續(xù)),3、集成局部視圖,得到全局概念結(jié)構(gòu) 各個局部視圖即分E-R圖建立好后,還需要對它們進(jìn)行合并,集成為一個整體的概念結(jié)構(gòu)即總E-R圖。,79,3、視圖的集成(續(xù)),視圖集成的兩種方式 一次集成(P138圖6.15) 一次集成多個分E-R圖 通常用于局部視圖比較簡單時 逐步集成(P138圖6.16) 首先集成兩個局部視圖(通常是比較關(guān)鍵的兩個局部視圖) 以后每次將一個新的局部視圖集成進(jìn)來,80,3、視圖的集成(續(xù)),集成局部E-R圖的步驟 (1)合并局部E-R圖,生成初步E-R圖 (2)修改與重構(gòu):消除不必要的冗余,生成基本E-R圖。,81,3、視圖的集成(續(xù)),82,(1)合并分E-R圖,生成初步E-R圖,各分圖存在沖突 各個局部應(yīng)用所面向的問題不同 由不同的設(shè)計人員進(jìn)行設(shè)計 各個分E-R圖之間必定會存在許多不一致的地方 合并分E-R圖的主要工作與關(guān)鍵所在:合理消除各分E-R圖的沖突 沖突的種類 屬性沖突 命名沖突 結(jié)構(gòu)沖突,83,1) 屬性沖突,兩類屬性沖突 屬性域沖突:屬性值的類型、取值范圍或取值集合不同。 例:IC卡卡號是數(shù)字,因此某些部門將卡號定義為整數(shù)形式,有的部門將卡號定義為字符型形式。 屬性取值單位沖突。 例:藥品有的以克為單位,有的以個數(shù)為單位,有的以毫升為單位等。 屬性沖突的解決方法 通常用討論、協(xié)商等行政手段加以解決,84,2) 命名沖突,兩類命名沖突 同名異義 不同意義的對象在不同的局部應(yīng)用中具有相同的名字 例,局部應(yīng)用A中將教室稱為房間 局部應(yīng)用B中將學(xué)生宿舍稱為房間 異名同義(一義多名) 同一意義的對象在不同的局部應(yīng)用中具有不同的名字 例,有些患者將醫(yī)生稱為醫(yī)生,有些患者將醫(yī)生稱為大夫。,85,2) 命名沖突(續(xù)),命名沖突可能發(fā)生在屬性級、實體級、聯(lián)系級上。其中屬性的命名沖突更為常見。 命名沖突的解決方法 通過討論、協(xié)商等行政手段加以解決,86,3) 結(jié)構(gòu)沖突,三類結(jié)構(gòu)沖突 同一對象在不同應(yīng)用中具有不同的抽象 例,“藥品”在某一局部應(yīng)用中被當(dāng)作實體,在另一局部應(yīng)用中則被當(dāng)作屬性。 解決方法:通常是把屬性變換為實體或把實體變換為屬性,使同一對象具有相同的抽象。,87,3) 結(jié)構(gòu)沖突(續(xù)),同一實體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同。 產(chǎn)生原因:不同的局部應(yīng)用關(guān)心的是該實體的不同側(cè)面。 解決方法:使該實體的屬性取各分E-R圖中屬性的并集,再適當(dāng)設(shè)計屬性的次序。,88,3) 結(jié)構(gòu)沖突(續(xù)),實體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型 例6.15 在局部應(yīng)用中醫(yī)療設(shè)備和零件之間是m : n聯(lián)系,而在另一局部應(yīng)用中醫(yī)療設(shè)備、零件和設(shè)備商3者之間是m : n : p的聯(lián)系,分別如P140圖6.19(a)和6.19(b)所示,合并后如圖6.19(c)所示。,89,3) 結(jié)構(gòu)沖突(續(xù)),90,(2)修改與重構(gòu),基本任務(wù) 消除不必要的冗余,設(shè)計生成基本E-R圖,91,(2) 修改與重構(gòu)(續(xù)),1)冗余 冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù), 冗余的聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系。 冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫維護(hù)增加困難 并不是所有的冗余數(shù)據(jù)與冗余聯(lián)系都必須加以消除,有時為了提高某些應(yīng)用的效率,不得不以冗余信息作為代價。 設(shè)計數(shù)據(jù)庫概念結(jié)構(gòu)時,哪些冗余信息必須消除,哪些冗余信息允許存在,需要根據(jù)用戶的整體需求來確定。 消除不必要的冗余后的初步E-R圖稱為基本E-R圖。,92,(2) 修改與重構(gòu)(續(xù)),2)消除冗余的方法 分析方法 以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項之間邏輯關(guān)系的說明來消除冗余。 如果是為了提高效率,人為地保留了一些冗余數(shù)據(jù),則應(yīng)把數(shù)據(jù)字典中數(shù)據(jù)關(guān)聯(lián)的說明作為完整性約束條件。 一種更好的方法是把冗余數(shù)據(jù)定義在視圖中 規(guī)范化理論 函數(shù)依賴的概念提供了消除冗余聯(lián)系的形式化工具,93,4、驗證整體概念結(jié)構(gòu),概念集成后形成一個整體的數(shù)據(jù)庫概念結(jié)構(gòu),對該整體概念結(jié)構(gòu)還必須進(jìn)行進(jìn)一步驗證,確保它能夠滿足下列條件: 整體概念結(jié)構(gòu)內(nèi)部必須具有一致性,不存在互相矛盾的表達(dá)。 整體概念結(jié)構(gòu)能準(zhǔn)確地反映原來的每個視圖結(jié)構(gòu),包括屬性、實體及實體間的聯(lián)系。 整體概念結(jié)構(gòu)能滿足需求分析階段所確定的所有要求。,94,4、驗證整體概念結(jié)構(gòu)(續(xù)),整體概念結(jié)構(gòu)最終還應(yīng)該提交給用戶,征求用戶和有關(guān)人員的意見,進(jìn)行評審、修改和優(yōu)化,然后把它確定下來,作為數(shù)據(jù)庫的概念結(jié)構(gòu),并作為進(jìn)一步設(shè)計數(shù)據(jù)庫的依據(jù)。,95,概念結(jié)構(gòu)設(shè)計小結(jié),概念結(jié)構(gòu)設(shè)計的步驟 抽象數(shù)據(jù)并設(shè)計局部視圖 集成局部視圖,得到全局概念結(jié)構(gòu) 驗證整體概念結(jié)構(gòu),96,概念結(jié)構(gòu)設(shè)計小結(jié),設(shè)計局部視圖 選擇局部應(yīng)用 逐一設(shè)計分E-R圖 標(biāo)定局部應(yīng)用中的實體、屬性、碼,實體間的聯(lián)系 用E-R圖描述出來,97,概念結(jié)構(gòu)設(shè)計小結(jié),集成局部視圖 1.合并分E-R圖,生成初步E-R圖 消除沖突 屬性沖突 命名沖突 結(jié)構(gòu)沖突 2. 修改與重構(gòu) 消除不必要的冗余,設(shè)計生成基本E-R圖 分析方法 規(guī)范化理論,98,6.4 邏輯結(jié)構(gòu)設(shè)計,邏輯結(jié)構(gòu)設(shè)計的任務(wù) 概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ) 為了能夠用某一DBMS實現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這就是數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計所要完成的任務(wù)。,99,6.4 邏輯結(jié)構(gòu)設(shè)計(續(xù)),邏輯結(jié)構(gòu)設(shè)計的步驟 將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型 將轉(zhuǎn)化來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換 對數(shù)據(jù)模型進(jìn)行優(yōu)化,100,邏輯結(jié)構(gòu)設(shè)計,轉(zhuǎn)化為一般數(shù)據(jù)模型,轉(zhuǎn)化為特定DBMS支持下的據(jù)模型,優(yōu)化模型,概念結(jié) 構(gòu)設(shè)計,數(shù)據(jù)庫 物理設(shè)計,基本E-R圖,轉(zhuǎn)換規(guī)則,特定DBMS的特點與限制,優(yōu)化方法如規(guī)范化理論,邏輯 模型,101,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換,轉(zhuǎn)換內(nèi)容 E-R圖由實體、實體的屬性和實體之間的聯(lián)系三個要素組成 關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合 將E-R圖轉(zhuǎn)換為關(guān)系模型:將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。 轉(zhuǎn)換原則,102,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),轉(zhuǎn)換原則 1、實體集的轉(zhuǎn)換 一個實體集轉(zhuǎn)換為一個關(guān)系模式。 關(guān)系的屬性:實體的屬性 關(guān)系的鍵:實體的鍵 例6.17 將“就診”模塊中“醫(yī)院職工”和“處方單”兩個實體集轉(zhuǎn)換成兩個關(guān)系模式醫(yī)院職工和處方單。轉(zhuǎn)化后的關(guān)系模式如下 醫(yī)院職工(職工編號,姓名,出生日期,性別,職務(wù),科室) 處方單(處方單編號,日期,處方,備注),103,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),2、兩個實體間的1 : 1聯(lián)系 一般不單獨轉(zhuǎn)換為關(guān)系模式,而是與所聯(lián)系的兩個實體中任一實體對應(yīng)的關(guān)系模式合并,即在這一關(guān)系模式中加入另一個實體對應(yīng)的關(guān)系模式的鍵和聯(lián)系本身的屬性。 與某一端實體對應(yīng)的關(guān)系模式合并 合并后關(guān)系的屬性:加入對應(yīng)關(guān)系的鍵(成為該關(guān)系模式的外鍵 )和聯(lián)系本身的屬性 合并后關(guān)系的鍵 :不變,104,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),例如:“IC卡”和“病人”這兩個實體之間存在1 : 1聯(lián)系,可以在“IC卡”關(guān)系中增加一個“用戶編號”屬性,如下所示 病人(用戶編號,姓名,性別,出生日期,地址,電話) IC卡(卡號,用戶編號,余額,發(fā)行日期),105,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),3、兩個實體間的1:n聯(lián)系 一般也不單獨轉(zhuǎn)換為關(guān)系模式,而是與n端對應(yīng)的關(guān)系模式合并。 與n端對應(yīng)的關(guān)系模式合并 合并后關(guān)系的屬性:在n端關(guān)系中加入1端關(guān)系的鍵和聯(lián)系本身的屬性 合并后關(guān)系的鍵 :不變,106,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),例6.18 病人、醫(yī)院職工、處方單之間存在兩個1 : n聯(lián)系,如圖6.22所示,將其轉(zhuǎn)換為關(guān)系模式。 將病人、醫(yī)院職工、處方單3個實體以及聯(lián)系轉(zhuǎn)換成關(guān)系模式為 病人(用戶編號,姓名,出生日期,性別,地址,電話) 醫(yī)院職工(職工編號,姓名,出生日期,性別,職務(wù),科室) 處方單(處方單編號,日期,處方,備注,用戶編號,職工編號),107,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),4、兩個實體間的m :n聯(lián)系 m :n聯(lián)系單獨轉(zhuǎn)換為一個關(guān)系模式。 關(guān)系的屬性:與該聯(lián)系相連的各實體的鍵以及聯(lián)系本身的屬性 關(guān)系的鍵 :各實體鍵的組合 例6.19 處方單和藥品之間存在m : n聯(lián)系,如圖6.23所示,轉(zhuǎn)換為關(guān)系模式。 處方單關(guān)系模式上例已完成,其余兩個關(guān)系模式如下 藥品(藥品編號,名稱,單價,廠商,藥效) 處方藥品(處方單編號,藥品編號 ,數(shù)量),108,6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)),5、三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。 關(guān)系的屬性:與該多元聯(lián)系相連的各實體的鍵以及聯(lián)系本身的屬性 關(guān)系的鍵 :實體鍵的組合 6、同一實體集的實體間的聯(lián)系,即自聯(lián)系,也可按上述兩個實體間的 1:1、1:n和m:n三種情況分別處理。 7、具有相同鍵的關(guān)系模式可以合并。 目的:減少系統(tǒng)中的關(guān)系個數(shù)。,109,向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換,一般的數(shù)據(jù)模型還需要向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換。 轉(zhuǎn)換的主要依據(jù)是所選用的DBMS的功能及限制。沒有通用規(guī)則。 對于關(guān)系模型來說,這種轉(zhuǎn)換通常都比較簡單。,110,6.4.2 數(shù)據(jù)模型的優(yōu)化,數(shù)據(jù)庫邏輯設(shè)計的結(jié)果不是唯一的。 得到初步數(shù)據(jù)模型后,還應(yīng)該適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進(jìn)一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化。 關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。,111,6.4.2 數(shù)據(jù)模型的優(yōu)化(續(xù)),優(yōu)化數(shù)據(jù)模型的方法 確定數(shù)據(jù)依賴 按需求分析階段所得到的語義,分別寫出每個關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴。 消除冗余 對于各個關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。,112,6.4.2 數(shù)據(jù)模型的優(yōu)化(續(xù)),3. 確定關(guān)系模式范式 按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進(jìn)行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。 4確定關(guān)系模式是否合并或分解 按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,分析對于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對它們進(jìn)行合并或分解。,113,6.4.2 數(shù)據(jù)模型的優(yōu)化(續(xù)),并不是規(guī)范化程度越高的關(guān)系就越優(yōu)。 當(dāng)一個應(yīng)用的查詢中經(jīng)常涉及到兩個或多個關(guān)系模式的屬性時,系統(tǒng)必須經(jīng)常地進(jìn)行連接運(yùn)算,而連接運(yùn)算的代價是相當(dāng)高的。 非BCNF的關(guān)系模式雖然從理論上分析會存在不同程度的更新異常,但如果在實際應(yīng)用中對此關(guān)系模式只是查詢,并不執(zhí)行更新操作,則就不會產(chǎn)生實際影響。 對于一個具體應(yīng)用來說,到底規(guī)范化進(jìn)行到什么程度,需要權(quán)衡響應(yīng)時間和潛在問題兩者的利弊才能決定。一般說來,第三范式就足夠了。例:6.20,114,6.4.2 數(shù)據(jù)模型的優(yōu)化(續(xù)),5、關(guān)系模式的分解 按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,對關(guān)系模式進(jìn)行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲空間的利用率 常用分解方法 水平分解 垂直分解,115,6.4.2 數(shù)據(jù)模型的優(yōu)化(續(xù)),水平分解 什么是水平分解 把(基本)關(guān)系的元組分為若干子集合,定義每個子集合為一個子關(guān)系,以提高系統(tǒng)的效率。 水平分解的適用范圍 1. 滿足“80/20原則”的應(yīng)用 80/20原則:一個大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20% 把經(jīng)常使用的數(shù)據(jù)分解出來,形成一個子關(guān)系,可以減少查詢的數(shù)據(jù)量。 2. 并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù) 如果關(guān)系R上具有n個事務(wù),而且多數(shù)事務(wù)存取的數(shù)據(jù)不相交,則R可分解為少于或等于n個子關(guān)系,使每個事務(wù)存取的數(shù)據(jù)對應(yīng)一個關(guān)系。,116,6.4.2 數(shù)據(jù)模型的優(yōu)化(續(xù)),垂直分解 什么是垂直分解 把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式。 垂直分解的原則 經(jīng)常在一起使用的屬性從R中分解出來形成一個子關(guān)系模式。 垂直分解的優(yōu)點 可以提高某些事務(wù)的效率 垂直分解的缺點 可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。,117,6.4.2 數(shù)據(jù)模型的優(yōu)化(續(xù)),垂直分解的適用范圍 取決于分解后R上的所有事務(wù)的總效率是否得到了提高。 進(jìn)行垂直分解的方法 簡單情況:直觀分解 復(fù)雜情況:用第五章中的模式分解算法 垂直分解必須不損失關(guān)系模式的語義(保持無損連接性和保持函數(shù)依賴)。,例:圖6.21所對應(yīng)的所有關(guān)系模式?,118,6.4.3 外模式設(shè)計,定義數(shù)據(jù)庫模式主要是從系統(tǒng)的時間效率、空間效率、易維護(hù)等角度出發(fā)。 定義用戶外模式時應(yīng)該更注重考慮用戶的習(xí)慣與方便。包括三個方面: (1) 使用更符合用戶習(xí)慣的別名 (2) 針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性的要求。 (3) 簡化用戶對系統(tǒng)的使用 如果某些局部應(yīng)用中經(jīng)常要使用某些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖。,例6.21,119,6.5 物理結(jié)構(gòu)設(shè)計,什么是數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計 數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于給定的計算機(jī)系統(tǒng)。 為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計。,120,6.5 物理結(jié)構(gòu)設(shè)計(續(xù)),數(shù)據(jù)庫物理設(shè)計,也就是設(shè)計數(shù)據(jù)庫的內(nèi)模式。 內(nèi)模式不直接面向用戶,因此,內(nèi)模式的設(shè)計不需要考慮用戶理解的需要 主要設(shè)計目標(biāo): 一是提高數(shù)據(jù)庫的性能,特別是滿足主要應(yīng)用的性能要求 二是有效地利用存儲空間。,121,6.5 物理結(jié)構(gòu)設(shè)計(續(xù)),數(shù)據(jù)庫物理設(shè)計的步驟 確定數(shù)據(jù)庫的物理結(jié)構(gòu) 對物理結(jié)構(gòu)進(jìn)行評價,評價的重點是時間和空間效率,122,6.5.1 物理結(jié)構(gòu)設(shè)計的內(nèi)容和方法,不同的數(shù)據(jù)庫產(chǎn)品所提供的物理環(huán)境、存取方法和存儲結(jié)構(gòu)有很大差別 供設(shè)計人員使用的設(shè)計變量、參數(shù)范圍也很不相同 沒有通用的物理設(shè)計方法可以遵循,只能給出一般的設(shè)計內(nèi)容和原則,希望能夠合理的優(yōu)化數(shù)據(jù)庫物理結(jié)構(gòu),使得各種事務(wù)的響應(yīng)時間最小,事務(wù)吞吐率最高。,123,6.5.1 物理結(jié)構(gòu)設(shè)計的內(nèi)容和方法(續(xù)),設(shè)計數(shù)據(jù)庫物理結(jié)構(gòu)的準(zhǔn)備工作 1. 充分了解應(yīng)用環(huán)境,詳細(xì)分析要運(yùn)行的事務(wù),以獲得選擇數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計所需參數(shù) 2. 充分了解所用RDBMS的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲結(jié)構(gòu),124,6.5.1 物理結(jié)構(gòu)設(shè)計的內(nèi)容和方法(續(xù)),選擇數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計所需參數(shù) 數(shù)據(jù)庫查詢事務(wù) 查詢的關(guān)系 查詢條件所涉及的屬性 連接條件所涉及的屬性 查詢的投影屬性 數(shù)據(jù)更新事務(wù) 被更新的關(guān)系 每個關(guān)系上的更新操作條件所涉及的屬性 修改操作要改變的屬性值 每個事務(wù)在各關(guān)系上運(yùn)行的頻率和性能要求,125,6.5.1 物理結(jié)構(gòu)設(shè)計的內(nèi)容和方法(續(xù)),數(shù)據(jù)庫系統(tǒng)是多用戶共享的系統(tǒng),對同一個關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求。 物理設(shè)計的第一個任務(wù)就是要確定選擇哪些存取方法,即建立哪些存取路徑。,126,6.5.1 物理結(jié)構(gòu)設(shè)計的內(nèi)容和方法(續(xù)),DBMS常用存取方法 索引方法,目前主要是B+樹索引方法 聚簇(Cluster)方法 HASH方法,127,1、索引方法,選擇索引存取方法的主要內(nèi)容 根據(jù)應(yīng)用要求確定 在哪些表上建立索引 在表的哪些列上建立索引,建立什么樣的索引 對哪個屬性列建立索引 對哪些屬性列建立組合索引 對哪些索引要設(shè)計為唯一索引,128,1、索引方法(續(xù)),選擇索引存取方法的一般規(guī)則: (1)主鍵和外鍵上一般都建有索引。 (2)如果一個(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(或這組)屬性上建立索引。 (3)對于以讀為主或只讀的表,只要需要且存儲空間又允許,可以多建索引。,129,1、索引方法(續(xù)),選擇索引存取方法的一般規(guī)則(續(xù)): (4)對于等值查詢,如果滿足條件的元組是少量的,如小于5%,且存儲空間允許,可以考慮在有關(guān)屬性上建立索引。 (5)對于范圍查詢(即查詢條件以、等為比較符),可以在有關(guān)屬性上建立索引。 (6)如果一個(或一組)屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個(或這組)屬性上建立索引。,130,1、索引方法(續(xù)),選擇索引存取方法的一般規(guī)則(續(xù)):滿足下列條件之一,則不宜建立索引。 (1)很少出現(xiàn)在查詢條件中的屬性。 (2)屬性取值很少的屬性。 (3)屬性值分布嚴(yán)重不均的屬性。 (4)經(jīng)常更新的屬性或表,因為更新時有關(guān)的索引需要做相應(yīng)的修改。 (5)過長的屬性。 (6)太小的表。,131,2、聚簇方法,什么是聚簇 為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇 許多關(guān)系型DBMS都提供了聚簇功能,132,2、聚簇方法(續(xù)),在一個基本表上最多只能建立一個聚簇 聚簇的適用范圍: (1)通過聚簇鍵進(jìn)行訪問或連接是該表的主要應(yīng)用,與聚簇鍵無關(guān)的其他訪問很少,或是次要的 (2)對應(yīng)每個聚簇鍵的平均元組數(shù)既不太少,也不太多 (3)聚簇鍵的值應(yīng)相對穩(wěn)定,以減少修改聚簇鍵所引起的維護(hù)開銷,133,2、聚簇方法(續(xù)),聚簇的用途 1. 大大提高按聚簇屬性進(jìn)行查詢的效率 例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查詢信息系的所有學(xué)生名單。 信息系的500名學(xué)生分布在500個不同的物理塊上時,至少要執(zhí)行500次I/O操作。 如果將同一系的學(xué)生元組聚簇存放,則每讀一個物理塊可得到多個滿足查詢條件的元組,從而顯著地減少了訪問磁盤的次數(shù)。,134,2、聚簇方法(續(xù)),2. 節(jié)省存儲空間 聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個元組中重復(fù)存儲,只要在一組中存一次就行了,見圖6.24,135,2、聚簇方法(續(xù)),聚簇的局限性 1. 聚簇只能提高某些特定應(yīng)用的性能 2. 建立與維護(hù)聚簇的開銷相當(dāng)大 對已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動其物理存儲位置,并使此關(guān)系上原有的索引無效,必須重建。 當(dāng)一個元組的聚簇碼改變時,該元組的存儲位置也要做相應(yīng)移動。,136,6.5.2 確定物理結(jié)構(gòu),確定數(shù)據(jù)庫物理結(jié)構(gòu)的內(nèi)容 1. 確定數(shù)據(jù)的存放位置 關(guān)系 索引 聚簇 日志 備份 2. 確定系統(tǒng)配置,137,1. 確定數(shù)據(jù)的存放位置,影響數(shù)據(jù)存放位置和存儲結(jié)構(gòu)的因素 硬件環(huán)境 應(yīng)用需求 存取時間 存儲空間利用率 維護(hù)代價,138,1. 確定數(shù)據(jù)的存放位置(續(xù)),基本原則 根據(jù)應(yīng)用情況將 易變部分與穩(wěn)定部分 存取頻率較高部分與存取頻率較低部分 分開存放,以提高系統(tǒng)性能,139,1. 確定數(shù)據(jù)的存放位置(續(xù)),例: 數(shù)據(jù)庫數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時才使用,而且數(shù)據(jù)量很大,可以考慮存放在磁帶上。 如果計算機(jī)有多個磁盤,可以考慮將表和索引分別放在不同的磁盤上,在查詢時,由于兩個磁盤驅(qū)動器分別在工作,因而可以保證物理讀寫速度比較快。 可以將日志文件與數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤以改進(jìn)系統(tǒng)的性能。,140,2. 確定系統(tǒng)配置,DBMS產(chǎn)品一般都提供了一些存儲分配參數(shù) 同時使用數(shù)據(jù)庫的用戶數(shù) 同時打開的數(shù)據(jù)庫對象數(shù) 使用的緩沖區(qū)長度、個數(shù) 時間片大小 數(shù)據(jù)庫的大小 裝填因子 鎖的數(shù)目 等等,141,2. 確定系統(tǒng)配置(續(xù)),系統(tǒng)都為這些變量賦予了合理的缺省值。但是這些值不一定適合每一種應(yīng)用環(huán)境,在進(jìn)行物理設(shè)計時,需要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)性能最優(yōu)。 在物理設(shè)計時對系統(tǒng)配置變量的調(diào)整只是初步的,在系統(tǒng)運(yùn)行時還要根據(jù)系統(tǒng)實際運(yùn)行情況做進(jìn)一步的調(diào)整,以期切實改進(jìn)系統(tǒng)性能。,142,6.5.3 評價物理結(jié)構(gòu),評價內(nèi)容 對數(shù)據(jù)庫物理設(shè)計過程中產(chǎn)生的多種方案進(jìn)行細(xì)致的評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu),143,6.5.3 評價物理結(jié)構(gòu)(續(xù)),評價方法 定量估算各種方案 存儲空間 存取時間 維護(hù)代價 對估算結(jié)果進(jìn)行權(quán)衡、比較,選擇出一個較優(yōu)的合理的物理結(jié)構(gòu) 如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計,144,6.6 數(shù)據(jù)庫的實施和維護(hù),數(shù)據(jù)庫實施的工作內(nèi)容: 用DDL定義數(shù)據(jù)庫結(jié)構(gòu) 組織數(shù)據(jù)入庫 編制與調(diào)試應(yīng)用程序 數(shù)據(jù)庫試運(yùn)行,145,6.6.1數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試,1、確定了數(shù)據(jù)庫的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,就可以用所選用的DBMS提供的DDL來嚴(yán)格描述數(shù)據(jù)庫結(jié)構(gòu)。 2、數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以向數(shù)據(jù)庫中裝載數(shù)據(jù)了。組織數(shù)據(jù)入庫是數(shù)據(jù)庫實施階段最主要的工作。 數(shù)據(jù)裝載方法 人工方法 計算機(jī)輔助數(shù)據(jù)入庫,146,6.6.1數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試(續(xù)),現(xiàn)代DBMS一般都提供專門的實用程序或工具,幫助實現(xiàn)數(shù)據(jù)載入 。 OracleSQL*Load實用程序 SQL ServerDTS(Data Transformation Service) 如果原始數(shù)據(jù)并未“數(shù)字化”,則需將它們通過人工批量錄入到數(shù)據(jù)庫中。,147,6.6.1數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試(續(xù)),3、編制與調(diào)試應(yīng)用程序 數(shù)據(jù)庫應(yīng)用程序的設(shè)計應(yīng)該與數(shù)據(jù)設(shè)計并行進(jìn)行。 在數(shù)據(jù)庫實施階段,當(dāng)數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以開始編制與調(diào)試數(shù)據(jù)庫的應(yīng)用程序。調(diào)試應(yīng)用程序時由于數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地產(chǎn)派對活動方案
- 大班野餐燒烤活動方案
- 多維度文旅活動方案
- 大頭寶寶活動方案
- 大班畫畫活動方案
- 2025-2030數(shù)字孿生技術(shù)分析及工業(yè)仿真與城市管理研究報告
- 2025-2030免稅店牌照稀缺性價值與境外消費(fèi)回流效應(yīng)及上市公司估值重構(gòu)研究
- 大豐紋眉活動方案
- 夏季超市燒烤活動方案
- 大學(xué)愛牙日活動方案
- 橡膠和基材的粘接
- GB/T 10610-2009產(chǎn)品幾何技術(shù)規(guī)范(GPS)表面結(jié)構(gòu)輪廓法評定表面結(jié)構(gòu)的規(guī)則和方法
- 畢業(yè)離校學(xué)生證遺失證明
- 工傷責(zé)任保險單
- 智慧停車技術(shù)方案
- 土地整理質(zhì)量評定表
- 【告知牌】某公司全套重大危險源告知牌(7頁)
- 中考數(shù)學(xué)復(fù)習(xí)專題二方程與不等式
- 牛津深圳版七年級下冊英語作文匯總
- 供應(yīng)商管理庫存VMI的實施
- 公司“師帶徒”實施方案
評論
0/150
提交評論