版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)系統(tǒng)概論AnIntroductiontoDatabaseSystem第七章數(shù)據(jù)庫(kù)設(shè)計(jì)主講:莊鎖法[目的要求]
理解數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)、方法、步驟;掌握需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì);理解數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)。[基本內(nèi)容]
數(shù)據(jù)庫(kù)設(shè)計(jì)概述;需求分析;概念結(jié)構(gòu)設(shè)計(jì);邏輯結(jié)構(gòu)設(shè)計(jì);數(shù)據(jù)庫(kù)的物理設(shè)計(jì);數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)。[重點(diǎn)難點(diǎn)]重點(diǎn):概念結(jié)構(gòu)設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì)。難點(diǎn):系統(tǒng)需求分析。第七章數(shù)據(jù)庫(kù)設(shè)計(jì)7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2需求分析7.3概念結(jié)構(gòu)設(shè)計(jì)7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6數(shù)據(jù)庫(kù)實(shí)施和維護(hù)7.7小結(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造(設(shè)計(jì))優(yōu)化的數(shù)據(jù)庫(kù)邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求,包括信息管理要求和數(shù)據(jù)操作要求。目標(biāo):為用戶和各種應(yīng)用系統(tǒng)提供一個(gè)信息基礎(chǔ)設(shè)施和高效率的運(yùn)行環(huán)境7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)7.1.2
數(shù)據(jù)庫(kù)設(shè)計(jì)方法7.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟7.1.4數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中的各級(jí)模式7.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)數(shù)據(jù)庫(kù)建設(shè)的基本規(guī)律三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)管理數(shù)據(jù)庫(kù)建設(shè)項(xiàng)目管理企業(yè)(即應(yīng)用部門)的業(yè)務(wù)管理基礎(chǔ)數(shù)據(jù)收集、入庫(kù)更新新的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù))設(shè)計(jì)和行為(處理)設(shè)計(jì)相結(jié)合將數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)處理設(shè)計(jì)密切結(jié)合數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)(續(xù))現(xiàn)實(shí)世界概念模型設(shè)計(jì)子模式設(shè)計(jì)物理數(shù)據(jù)庫(kù)設(shè)計(jì)邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)建立數(shù)據(jù)庫(kù)數(shù)據(jù)分析功能分析功能模型功能說(shuō)明事務(wù)設(shè)計(jì)程序說(shuō)明應(yīng)用程序設(shè)計(jì)程序編碼調(diào)試結(jié)構(gòu)和行為分離的設(shè)計(jì)
7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)7.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法7.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟7.1.4數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中的各級(jí)模式7.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法手工與經(jīng)驗(yàn)相結(jié)合方法設(shè)計(jì)質(zhì)量與設(shè)計(jì)人員的經(jīng)驗(yàn)和水平有直接關(guān)系數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間后常常不同程度地發(fā)現(xiàn)各種問(wèn)題,增加了維護(hù)代價(jià)規(guī)范設(shè)計(jì)法基本思想:過(guò)程迭代和逐步求精數(shù)據(jù)庫(kù)設(shè)計(jì)方法(續(xù))新奧爾良(NewOrleans)方法將數(shù)據(jù)庫(kù)設(shè)計(jì)分為若干階段和步驟
基于E-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)方法概念設(shè)計(jì)階段廣泛采用3NF(第三范式)的設(shè)計(jì)方法邏輯階段可采用的有效方法ODL(ObjectDefinitionLanguage)方法面向?qū)ο蟮臄?shù)據(jù)庫(kù)設(shè)計(jì)方法數(shù)據(jù)庫(kù)設(shè)計(jì)方法(續(xù))計(jì)算機(jī)輔助設(shè)計(jì)ORACLEDesigner2000SYBASEPowerDesigner7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)7.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法7.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟7.1.4數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中的各級(jí)模式7.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟數(shù)據(jù)庫(kù)設(shè)計(jì)分6個(gè)階段需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)
需求分析和概念設(shè)計(jì)獨(dú)立于任何數(shù)據(jù)庫(kù)管理系統(tǒng)邏輯設(shè)計(jì)和物理設(shè)計(jì)與選用的DBMS密切相關(guān)數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù))一、數(shù)據(jù)庫(kù)設(shè)計(jì)的準(zhǔn)備工作:選定參加設(shè)計(jì)的人1.系統(tǒng)分析人員、數(shù)據(jù)庫(kù)設(shè)計(jì)人員
自始至終參與數(shù)據(jù)庫(kù)設(shè)計(jì)2.用戶和數(shù)據(jù)庫(kù)管理員主要參加需求分析和數(shù)據(jù)庫(kù)的運(yùn)行維護(hù)3.應(yīng)用開(kāi)發(fā)人員(程序員和操作員)在系統(tǒng)實(shí)施階段參與進(jìn)來(lái),負(fù)責(zé)編制程序和準(zhǔn)備軟硬件環(huán)境
數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù))二、數(shù)據(jù)庫(kù)設(shè)計(jì)的過(guò)程(六個(gè)階段)
⒈需求分析階段準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)最困難、最耗費(fèi)時(shí)間的一步
數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù))
⒉概念結(jié)構(gòu)設(shè)計(jì)階段整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù)) ⒊邏輯結(jié)構(gòu)設(shè)計(jì)階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型對(duì)其進(jìn)行優(yōu)化數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù))
⒋數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù))
⒌數(shù)據(jù)庫(kù)實(shí)施階段運(yùn)用DBMS提供的數(shù)據(jù)庫(kù)語(yǔ)言(如SQL)及宿主語(yǔ)言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫(kù)編制與調(diào)試應(yīng)用程序組織數(shù)據(jù)入庫(kù)進(jìn)行試運(yùn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù))
⒍數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)經(jīng)過(guò)試運(yùn)行后即可投入正式運(yùn)行在數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行過(guò)程中必須不斷地對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟(續(xù))設(shè)計(jì)一個(gè)完善的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)往往是上述六個(gè)階段的不斷反復(fù)(P202圖7.2)把數(shù)據(jù)庫(kù)設(shè)計(jì)和對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)處理的設(shè)計(jì)緊密結(jié)合起來(lái)將這兩個(gè)方面的需求分析、抽象、設(shè)計(jì)、實(shí)現(xiàn)在各個(gè)階段同時(shí)進(jìn)行,相互參照,相互補(bǔ)充,以完善兩方面的設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)各個(gè)階段的設(shè)計(jì)描述7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.1.1數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)7.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)方法7.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟7.1.4數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中的各級(jí)模式7.1.4數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中的各級(jí)模式數(shù)據(jù)庫(kù)設(shè)計(jì)不同階段形成的數(shù)據(jù)庫(kù)各級(jí)模式數(shù)據(jù)庫(kù)的各級(jí)模式
第七章數(shù)據(jù)庫(kù)設(shè)計(jì)7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2需求分析7.3概念結(jié)構(gòu)設(shè)計(jì)7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6數(shù)據(jù)庫(kù)實(shí)施和維護(hù)7.7小結(jié)7.2需求分析7.2.1需求分析的任務(wù)7.2.2需求分析的方法7.2.3數(shù)據(jù)字典需求分析的任務(wù)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門、企業(yè)等)充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))明確用戶的各種需求確定新系統(tǒng)的功能充分考慮今后可能的擴(kuò)充和改變需求分析的重點(diǎn)調(diào)查的重點(diǎn)是“數(shù)據(jù)”和“處理”,獲得用戶對(duì)數(shù)據(jù)庫(kù)要求
信息要求(信息的內(nèi)容與性質(zhì))處理要求(什么處理,響應(yīng)時(shí)間,處理方式等)安全性與完整性要求企業(yè)的環(huán)境特征(企業(yè)的規(guī)模與結(jié)構(gòu),規(guī)定與要求,對(duì)系統(tǒng)費(fèi)用、利益的限制)需求分析的難點(diǎn)確定用戶最終需求用戶缺少計(jì)算機(jī)知識(shí)設(shè)計(jì)人員缺少用戶的專業(yè)知識(shí)解決方法設(shè)計(jì)人員必須不斷深入地與用戶進(jìn)行交流7.2需求分析7.2.1需求分析的任務(wù)7.2.2需求分析的方法7.2.3數(shù)據(jù)字典7.2.2需求分析的方法調(diào)查需求達(dá)成共識(shí)分析表達(dá)需求調(diào)查用戶需求的具體步驟⑴調(diào)查組織機(jī)構(gòu)情況⑵調(diào)查各部門的業(yè)務(wù)活動(dòng)情況。⑶在熟悉業(yè)務(wù)活動(dòng)的基礎(chǔ)上,協(xié)助用戶明確對(duì)新系統(tǒng)的各種要求。⑷確定新系統(tǒng)的邊界常用調(diào)查方法(1)跟班作業(yè)(2)開(kāi)調(diào)查會(huì)(3)請(qǐng)專人介紹(4)詢問(wèn)(5)設(shè)計(jì)調(diào)查表請(qǐng)用戶填寫(6)查閱記錄進(jìn)一步分析和表達(dá)用戶需求結(jié)構(gòu)化分析方法(StructuredAnalysis,簡(jiǎn)稱SA方法)
從最上層的系統(tǒng)組織機(jī)構(gòu)入手自頂向下、逐層分解分析系統(tǒng)進(jìn)一步分析和表達(dá)用戶需求(續(xù))1.首先把任何一個(gè)系統(tǒng)都抽象為:數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)信息要求數(shù)據(jù)來(lái)源處理數(shù)據(jù)輸出處理要求進(jìn)一步分析和表達(dá)用戶需求(續(xù))2.分解處理功能和數(shù)據(jù)
(1)分解處理功能將處理功能的具體內(nèi)容分解為若干子功能
(2)分解數(shù)據(jù)處理功能逐步分解同時(shí),逐級(jí)分解所用數(shù)據(jù),形成若干層次的數(shù)據(jù)流圖
(3)表達(dá)方法處理邏輯:用判定表或判定樹(shù)來(lái)描述數(shù)據(jù):用數(shù)據(jù)字典來(lái)描述3.將分析結(jié)果再次提交給用戶,征得用戶的認(rèn)可需求分析過(guò)程需求分析過(guò)程7.2需求分析7.2.1需求分析的任務(wù)7.2.2需求分析的方法7.2.3數(shù)據(jù)字典7.2.3數(shù)據(jù)字典數(shù)據(jù)字典的用途進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)處理過(guò)程⒈數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位對(duì)數(shù)據(jù)項(xiàng)的描述
數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說(shuō)明,別名, 數(shù)據(jù)類型,長(zhǎng)度,取值范圍,取值含義, 與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系,數(shù)據(jù)項(xiàng)之間的 聯(lián)系}數(shù)據(jù)字典舉例例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)據(jù)項(xiàng),以“學(xué)號(hào)”為例:數(shù)據(jù)項(xiàng):學(xué)號(hào)含義說(shuō)明:唯一標(biāo)識(shí)每個(gè)學(xué)生別名:學(xué)生編號(hào)類型:字符型長(zhǎng)度:8
取值范圍:00000000至99999999取值含義:前兩位標(biāo)別該學(xué)生所在年級(jí),后六位按順序編號(hào)與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系:⒉數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。一個(gè)數(shù)據(jù)結(jié)構(gòu)可以由若干個(gè)數(shù)據(jù)項(xiàng)組成,也可以由若干個(gè)數(shù)據(jù)結(jié)構(gòu)組成,或由若干個(gè)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)混合組成。對(duì)數(shù)據(jù)結(jié)構(gòu)的描述
數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說(shuō)明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}} 數(shù)據(jù)結(jié)構(gòu),以“學(xué)生”為例 “學(xué)生”是該系統(tǒng)中的一個(gè)核心數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu):學(xué)生含義說(shuō)明:是學(xué)籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個(gè)學(xué)生的有關(guān)信息組成:學(xué)號(hào),姓名,性別,年齡,所在系,年級(jí)
數(shù)據(jù)字典舉例⒊數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。?duì)數(shù)據(jù)流的描述
數(shù)據(jù)流描述={數(shù)據(jù)流名,說(shuō)明,數(shù)據(jù)流來(lái)源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}數(shù)據(jù)流,“體檢結(jié)果”可如下描述:數(shù)據(jù)流:體檢結(jié)果說(shuō)明:學(xué)生參加體格檢查的最終結(jié)果數(shù)據(jù)流來(lái)源:體檢數(shù)據(jù)流去向:批準(zhǔn)組成:……平均流量:……高峰期流量:……數(shù)據(jù)字典舉例⒋數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來(lái)源和去向之一。對(duì)數(shù)據(jù)存儲(chǔ)的描述
數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說(shuō)明,編號(hào), 輸入的數(shù)據(jù)流,輸出的數(shù)據(jù)流, 組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取頻度, 存取方式}數(shù)據(jù)存儲(chǔ),“學(xué)生登記表”可如下描述:數(shù)據(jù)存儲(chǔ):學(xué)生登記表說(shuō)明:記錄學(xué)生的基本情況流入數(shù)據(jù)流:……
流出數(shù)據(jù)流:……
組成:……
數(shù)據(jù)量:每年3000張存取方式:隨機(jī)存取
數(shù)據(jù)字典舉例⒌處理過(guò)程具體處理邏輯一般用判定表或判定樹(shù)來(lái)描述處理過(guò)程說(shuō)明性信息的描述
處理過(guò)程描述={處理過(guò)程名,說(shuō)明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡(jiǎn)要說(shuō)明}}處理過(guò)程“分配宿舍”可如下描述:處理過(guò)程:分配宿舍說(shuō)明:為所有新生分配學(xué)生宿舍輸入:學(xué)生,宿舍輸出:宿舍安排處理:在新生報(bào)到后,為所有新生分配學(xué)生宿舍。要求同一間宿舍只能安排同一性別的學(xué)生,同一個(gè)學(xué)生只能安排在一個(gè)宿舍中。每個(gè)學(xué)生的居住面積不小于3平方米。安排新生宿舍其處理時(shí)間應(yīng)不超過(guò)15分鐘。數(shù)據(jù)字典舉例數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫(kù)中數(shù)據(jù)的描述,是元數(shù)據(jù),而不是數(shù)據(jù)本身數(shù)據(jù)字典在需求分析階段建立,在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中不斷修改、充實(shí)、完善
需求分析小結(jié)設(shè)計(jì)人員應(yīng)充分考慮到可能的擴(kuò)充和改變,使設(shè)計(jì)易于更改,系統(tǒng)易于擴(kuò)充必須強(qiáng)調(diào)用戶的參與補(bǔ)充:數(shù)據(jù)流圖數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)與處理的關(guān)系的圖。
一、數(shù)據(jù)流圖的基本元素?cái)?shù)據(jù)流圖中只能有四種基本元素,如下:描述一個(gè)處理。輸入數(shù)據(jù)在此進(jìn)行變換產(chǎn)生輸出數(shù)據(jù)。其中注明處理的名稱。描述一個(gè)輸入源點(diǎn)或輸出匯點(diǎn)。其中注明源點(diǎn)或匯點(diǎn)的名稱。描述一個(gè)數(shù)據(jù)流。被加工的數(shù)據(jù)及其流向。流線上注明數(shù)據(jù)名稱,箭頭代表數(shù)據(jù)流動(dòng)方向。描述一個(gè)數(shù)據(jù)存儲(chǔ)。通常用于代表一個(gè)數(shù)據(jù)表,其中注明數(shù)據(jù)表的名稱。數(shù)據(jù)流圖舉例學(xué)生選課的數(shù)據(jù)流圖二、分層數(shù)據(jù)流圖為了表達(dá)數(shù)據(jù)處理過(guò)程的數(shù)據(jù)加工情況,用一個(gè)數(shù)據(jù)流圖往往是不夠的。稍為復(fù)雜的實(shí)際問(wèn)題,在數(shù)據(jù)流圖上常常出現(xiàn)十幾個(gè)甚至幾十個(gè)加工。這樣的數(shù)據(jù)流圖看起來(lái)很不清楚。層次結(jié)構(gòu)的數(shù)據(jù)流圖能很好地解決這一問(wèn)題。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個(gè)系統(tǒng)。下圖給出分層數(shù)據(jù)流圖的示例。數(shù)據(jù)處理S包括三個(gè)子系統(tǒng)1、2、3。頂層下面的第一層數(shù)據(jù)流圖為DFD/L1。第二層數(shù)據(jù)流圖DFD/L2.1、DFD/L2.2及DFD/L2.3分別是子系統(tǒng)1、2和3的細(xì)化。對(duì)任何一層數(shù)據(jù)流圖來(lái)說(shuō),我們稱它的上層圖為父圖,在它下一層的圖則稱為子圖。三、畫數(shù)據(jù)流圖的步驟和原則基本步驟:自外向內(nèi),自頂向下,逐層細(xì)化,完善求精。基本原則:①數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種基本元素。②頂層數(shù)據(jù)流圖必須包括前述四種基本元素,缺一不可。③頂層數(shù)據(jù)流圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間。④每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流。⑤在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工處在哪一層,以及上下層的父圖與子圖的對(duì)應(yīng)關(guān)系。⑥規(guī)定任何一個(gè)數(shù)據(jù)流子圖必須與它上一層的一個(gè)加工對(duì)應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡。⑦可以在數(shù)據(jù)流圖中加入物質(zhì)流,幫助用戶理解數(shù)據(jù)流圖。⑧圖上每個(gè)元素都必須有名字。數(shù)據(jù)流和數(shù)據(jù)文件的名字應(yīng)當(dāng)是“名詞”或“名詞性短語(yǔ)”,表明流動(dòng)的數(shù)據(jù)是什么。加工的名字應(yīng)當(dāng)是“名詞+賓語(yǔ)”,表明做什么事情。⑨數(shù)據(jù)流圖中不可夾帶控制流。⑩初畫時(shí)可以忽略瑣碎的細(xì)節(jié),以集中精力于主要數(shù)據(jù)流。數(shù)據(jù)字典應(yīng)用舉例以學(xué)生選課數(shù)據(jù)字典為例簡(jiǎn)要說(shuō)明如何定義數(shù)據(jù)字典。學(xué)生選課的數(shù)據(jù)流圖如下:①數(shù)據(jù)項(xiàng):以“學(xué)號(hào)”為例數(shù)據(jù)項(xiàng)名:學(xué)號(hào)數(shù)據(jù)項(xiàng)含義:唯一標(biāo)識(shí)每一個(gè)學(xué)生別名:學(xué)生編號(hào)數(shù)據(jù)類型:字符型長(zhǎng)度:8取值范圍:00000~99999取值含義:前2位為入學(xué)年號(hào),后3位為順序編號(hào)與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系:(無(wú))②數(shù)據(jù)結(jié)構(gòu):以“學(xué)生”為例數(shù)據(jù)結(jié)構(gòu)名:學(xué)生含義說(shuō)明:是學(xué)籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個(gè)學(xué)生的有關(guān)信息組成:學(xué)號(hào),姓名,性別,年齡,所在系③數(shù)據(jù)流:以“選課信息”為例數(shù)據(jù)流名:選課信息說(shuō)明:學(xué)生所選課程信息數(shù)據(jù)流來(lái)源:“學(xué)生選課”處理數(shù)據(jù)流去向:“學(xué)生選課”存儲(chǔ)組成:學(xué)號(hào),課程號(hào)平均流量:每天10個(gè)高峰期流量:每天100個(gè)④數(shù)據(jù)存儲(chǔ):以“學(xué)生選課”為例數(shù)據(jù)存儲(chǔ)名:學(xué)生選課說(shuō)明:記錄學(xué)生所選課程的成績(jī)編號(hào):(無(wú))流入的數(shù)據(jù)流:選課信息,成績(jī)信息流出的數(shù)據(jù)流:選課信息,成績(jī)信息組成:學(xué)號(hào),課程號(hào),成績(jī)數(shù)據(jù)量:50000個(gè)記錄存取方式:隨機(jī)存?、萏幚磉^(guò)程:以“學(xué)生選課”為例處理過(guò)程名:學(xué)生選課說(shuō)明:學(xué)生從可選修的課程中選出課程輸入數(shù)據(jù)流:學(xué)生,課程輸出數(shù)據(jù)流:學(xué)生選課處理:每學(xué)期學(xué)生都可以從公布的選修課程中選修自己愿意選修的課程,選課時(shí)有些選修課有先修課程的要求,還要保證選修課的上課時(shí)間不能與該生必修課時(shí)間相沖突,每個(gè)學(xué)生四年內(nèi)的選修課門數(shù)不能超過(guò)8門。第七章數(shù)據(jù)庫(kù)設(shè)計(jì)7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2需求分析7.3概念結(jié)構(gòu)設(shè)計(jì)7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6數(shù)據(jù)庫(kù)實(shí)施和維護(hù)7.7小結(jié)7.3概念結(jié)構(gòu)設(shè)計(jì)7.3.1概念結(jié)構(gòu)7.3.2概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟7.3.3數(shù)據(jù)抽象與局部視圖設(shè)計(jì)7.3.4視圖的集成7.3.1概念結(jié)構(gòu)什么是概念結(jié)構(gòu)設(shè)計(jì)將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過(guò)程就是概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨(dú)立于機(jī)器、更抽象概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵概念結(jié)構(gòu)是對(duì)現(xiàn)實(shí)世界的一種抽象,即對(duì)實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取人們關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述。概念結(jié)構(gòu)(續(xù))現(xiàn)實(shí)世界機(jī)器世界信息世界需求分析(認(rèn)知)概念結(jié)構(gòu)設(shè)計(jì)(描述)概念結(jié)構(gòu)(續(xù))概念結(jié)構(gòu)設(shè)計(jì)的特點(diǎn)①能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對(duì)數(shù)據(jù)的處理要求。是對(duì)現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。②易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見(jiàn)。③易于改進(jìn),當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對(duì)概念模型修改和擴(kuò)充。④易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)(續(xù))描述概念模型的工具E-R模型7.3概念結(jié)構(gòu)設(shè)計(jì)7.3.1概念結(jié)構(gòu)7.3.2概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟7.3.3數(shù)據(jù)抽象與局部視圖設(shè)計(jì)7.3.4視圖的集成7.3.2概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟設(shè)計(jì)概念結(jié)構(gòu)的四類方法自頂向下
首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化自頂向下策略自底向上
首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來(lái),得到全局概念結(jié)構(gòu)自底向上策略逐步擴(kuò)張
首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)逐步擴(kuò)張策略混合策略將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。經(jīng)常采用的概念結(jié)構(gòu)設(shè)計(jì)方法自頂向下地進(jìn)行需求分析自底向上地設(shè)計(jì)概念結(jié)構(gòu)自底向上概念結(jié)構(gòu)設(shè)計(jì)的方法,通常分為兩步:①抽象數(shù)據(jù)并設(shè)計(jì)局部視圖;②集成局部視圖,得到全局的概念結(jié)構(gòu)。但無(wú)論采用哪種設(shè)計(jì)方法,一般都以E-R模型為工具來(lái)描述概念結(jié)構(gòu)。如下圖。7.3概念結(jié)構(gòu)設(shè)計(jì)7.3.1概念結(jié)構(gòu)7.3.2概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟7.3.3數(shù)據(jù)抽象與局部視圖設(shè)計(jì)7.3.4視圖的集成數(shù)據(jù)抽象抽象是對(duì)實(shí)際的人、物、事和概念中抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述。概念結(jié)構(gòu)是對(duì)現(xiàn)實(shí)世界的一種抽象7.3.3數(shù)據(jù)抽象與局部視圖設(shè)計(jì)三種常用抽象1.分類(Classification)定義某一類概念作為現(xiàn)實(shí)世界中一組對(duì)象的類型。這些對(duì)象具有某些共同的特性和行為。數(shù)據(jù)抽象(續(xù))抽象了對(duì)象值和型之間的“ismemberof”的語(yǔ)義數(shù)據(jù)抽象(續(xù))2.聚集(Aggregation)定義某一類型的組成成分實(shí)體型屬性集合數(shù)據(jù)抽象(續(xù))聚集抽象
抽象了對(duì)象內(nèi)部類型和成分之間“ispartof”的語(yǔ)義數(shù)據(jù)抽象(續(xù))復(fù)雜的聚集,某一類型的成分仍是一個(gè)聚集
更復(fù)雜的聚集
數(shù)據(jù)抽象(續(xù))3.概括(Generalization)定義類型之間的一種子集聯(lián)系抽象了類型之間的“issubsetof”的語(yǔ)義繼承性(子集合具有父集合的共性和特征)
數(shù)據(jù)抽象(續(xù))概括抽象
局部視圖設(shè)計(jì)設(shè)計(jì)分E-R圖的步驟:⒈選擇局部應(yīng)用⒉逐一設(shè)計(jì)分E-R圖概念結(jié)構(gòu)設(shè)計(jì)第一步就是根據(jù)需求分析的結(jié)果(數(shù)據(jù)流圖、數(shù)據(jù)字典等),利用上述抽象機(jī)制對(duì)現(xiàn)實(shí)世界的數(shù)據(jù)進(jìn)行抽象,對(duì)數(shù)據(jù)進(jìn)行分類,聚集和概況,確定現(xiàn)實(shí)世界中的實(shí)體,實(shí)體間聯(lián)系,設(shè)計(jì)各個(gè)局部視圖,即:分E-R圖.⒈選擇局部應(yīng)用在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖,作為設(shè)計(jì)分E-R圖的出發(fā)點(diǎn)
通常以中層數(shù)據(jù)流圖作為設(shè)計(jì)分E-R圖的依據(jù)選擇局部應(yīng)用(續(xù))設(shè)計(jì)分E-R圖的出發(fā)點(diǎn)
⒉逐一設(shè)計(jì)分E-R圖任務(wù)將各局部應(yīng)用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來(lái)參照數(shù)據(jù)流圖,標(biāo)定各局部應(yīng)用中的實(shí)體、實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼確定實(shí)體之間的聯(lián)系及其類型(1:1,1:n,m:n)設(shè)計(jì)分E-R圖的原則兩條準(zhǔn)則:(1)屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項(xiàng),不能再由另一些屬性組成(2)屬性不能與其他實(shí)體具有聯(lián)系。聯(lián)系只發(fā)生在實(shí)體之間實(shí)體和屬性沒(méi)有嚴(yán)格的劃分,但是為了簡(jiǎn)化E-R圖的處理,現(xiàn)實(shí)世界的事物能作為屬性對(duì)待的,盡量作為屬性對(duì)待.逐一設(shè)計(jì)分E-R圖(續(xù))職稱作為一個(gè)實(shí)體逐一設(shè)計(jì)分E-R圖(續(xù))病房作為一個(gè)實(shí)體逐一設(shè)計(jì)分E-R圖(續(xù))倉(cāng)庫(kù)作為一個(gè)實(shí)體[實(shí)例]銷售管理子系統(tǒng)分E-R圖的設(shè)計(jì)逐一設(shè)計(jì)分E-R圖(續(xù))某工廠開(kāi)發(fā)管理信息系統(tǒng),經(jīng)過(guò)可行性分析和詳細(xì)調(diào)查,確定了該系統(tǒng)由物資管理、銷售管理、勞動(dòng)人事管理等子系統(tǒng)組成。銷售管理子系統(tǒng)的主要功能:處理顧客和銷售員送來(lái)的訂單工廠是根據(jù)訂貨安排生產(chǎn)的交出貨物同時(shí)開(kāi)出發(fā)票收到顧客付款后,根據(jù)發(fā)票存根和信貸情況進(jìn)行應(yīng)收款處理下圖是第一層數(shù)據(jù)流圖,虛線部分劃出了系統(tǒng)邊界
圖7.18銷售管理子系統(tǒng)第一層數(shù)據(jù)流圖
上圖中把系統(tǒng)功能又分為幾個(gè)子系統(tǒng),下面四個(gè)圖是第二層數(shù)據(jù)流圖
圖7.19接收訂單圖7.20處理訂單圖7.21開(kāi)發(fā)票
圖7.22支付過(guò)賬逐一設(shè)計(jì)分E-R圖(續(xù))分E-R圖的框架
逐一設(shè)計(jì)分E-R圖(續(xù))參照第二層數(shù)據(jù)流圖和數(shù)據(jù)字典,遵循兩個(gè)準(zhǔn)則,進(jìn)行如下調(diào)整:(1)訂單與訂單細(xì)節(jié)是1∶n的聯(lián)系(2)原訂單和產(chǎn)品的聯(lián)系實(shí)際上是訂單細(xì)節(jié)和產(chǎn)品的聯(lián)系。(3)圖7.21中“發(fā)票主清單”是一個(gè)數(shù)據(jù)存儲(chǔ),不必作為實(shí)體加入分E-R圖(4)工廠對(duì)大宗訂貨給予優(yōu)惠逐一設(shè)計(jì)分E-R圖(續(xù))得到分E-R圖如下圖所示
銷售管理子系統(tǒng)的分E-R圖逐一設(shè)計(jì)分E-R圖(續(xù))對(duì)每個(gè)實(shí)體定義的屬性如下:顧客:{顧客號(hào),顧客名,地址,電話,信貸狀況,賬目余額}訂單:{訂單號(hào),顧客號(hào),訂貨項(xiàng)數(shù),訂貨日期,交貨日期,工種號(hào),生產(chǎn)地點(diǎn)}訂單細(xì)則:{訂單號(hào),細(xì)則號(hào),零件號(hào),訂貨數(shù),金額}應(yīng)收賬款:{顧客號(hào),訂單號(hào),發(fā)票號(hào),應(yīng)收金額,支付日期,支付金額,當(dāng)前余額,貨款限額}產(chǎn)品描述:{產(chǎn)品號(hào),產(chǎn)品名,單價(jià),重量}折扣規(guī)則:{產(chǎn)品號(hào),訂貨量,折扣}7.3概念結(jié)構(gòu)設(shè)計(jì)7.3.1概念結(jié)構(gòu)7.3.2概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟7.3.3數(shù)據(jù)抽象與局部視圖設(shè)計(jì)7.3.4視圖的集成7.3.4視圖的集成各個(gè)局部視圖即分E-R圖建立好后,還需要對(duì)它們進(jìn)行合并,集成為一個(gè)整體的數(shù)據(jù)概念結(jié)構(gòu)即總E-R圖。視圖集成的兩種方式多個(gè)分E-R圖一次集成一次集成多個(gè)分E-R圖通常用于局部視圖比較簡(jiǎn)單時(shí)視圖的集成(續(xù))逐步集成用累加的方式一次集成兩個(gè)分E-R圖視圖的集成(續(xù))集成局部E-R圖的步驟1.合并去沖突(分E-R合并為初步E-R圖)2.修改與重構(gòu)去冗余(初步E-R→基本E-R圖)視圖的集成(續(xù))視圖集成第一步:合并分E-R圖,生成初步E-R圖各分E-R圖存在沖突各個(gè)分E-R圖之間必定會(huì)存在許多不一致的地方合并分E-R圖的主要工作與關(guān)鍵合理消除各分E-R圖的沖突合并分E-R圖,生成初步E-R圖(續(xù))沖突的種類屬性沖突命名沖突結(jié)構(gòu)沖突⒈屬性沖突兩類屬性沖突屬性域沖突屬性值的類型取值范圍取值集合不同屬性取值單位沖突⒉命名沖突兩類命名沖突同名異義:不同意義的對(duì)象在不同的局部應(yīng)用中具有相同的名字異名同義(一義多名):同一意義的對(duì)象在不同的局部應(yīng)用中具有不同的名字⒊結(jié)構(gòu)沖突三類結(jié)構(gòu)沖突同一對(duì)象在不同應(yīng)用中具有不同的抽象(例如“課程”在某一局部應(yīng)用中被當(dāng)作實(shí)體,而在另一局部應(yīng)用中則被當(dāng)作屬性。
)同一實(shí)體在不同分E-R圖中所包含的屬性個(gè)數(shù)和屬性排列次序不完全相同實(shí)體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型(多多聯(lián)系,一多聯(lián)系,兩個(gè)實(shí)體間聯(lián)系,多個(gè)實(shí)體間聯(lián)系)第二步:消除不必要的冗余,設(shè)計(jì)基本E-R圖分E-R圖中可能存在冗余的數(shù)據(jù)和實(shí)體間冗余的聯(lián)系。冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)庫(kù)維護(hù)增加困難,因此得到初步E-R圖后,應(yīng)該通過(guò)修改與重構(gòu),消除不必要的冗余。冗余的數(shù)據(jù)——指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù)。冗余的聯(lián)系——指可由其他聯(lián)系導(dǎo)出的聯(lián)系。消除冗余的方法分析方法以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù)根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項(xiàng)之間的邏輯關(guān)系規(guī)范化理論函數(shù)依賴的概念消除冗余聯(lián)系注意:并不是所有的冗余數(shù)據(jù)與冗余聯(lián)系都必須加以清除;并不是范式越高就越好,需要根據(jù)用戶的整體需求來(lái)確定。效率VS冗余信息分析方法舉例:冗余數(shù)據(jù):Q3=Q1XQ2Q4=∑Q5冗余聯(lián)系:
使用←構(gòu)成+消耗若人為地保留了一些冗余數(shù)據(jù),則應(yīng)把數(shù)據(jù)字典中數(shù)據(jù)關(guān)聯(lián)的說(shuō)明作為完整性約束條件Q4=∑Q5一旦Q5修改后就應(yīng)當(dāng)觸發(fā)完整性檢查,對(duì)Q4進(jìn)行修改如果需要經(jīng)常性查詢材料的庫(kù)存量Q4,若每次查詢每個(gè)倉(cāng)庫(kù)的庫(kù)存量Q5,再求和則效率較低。所以這種情況下可以考慮保留冗余數(shù)據(jù)Q4規(guī)范化理論方法舉例:方法1.確定分E-R圖實(shí)體之間的數(shù)據(jù)依賴
,并用實(shí)體碼之間的函數(shù)依賴表示。勞動(dòng)人事管理的分E-R圖
部門和職工之間一對(duì)多的屬于聯(lián)系可表示為:職工號(hào)→部門號(hào)職工和項(xiàng)目之間多對(duì)多的生產(chǎn)聯(lián)系可表示為:(職工號(hào),項(xiàng)目號(hào))→工作天數(shù)
職工和項(xiàng)目產(chǎn)品之間一對(duì)一的負(fù)責(zé)聯(lián)系可表示為:職工號(hào)←→項(xiàng)目號(hào)函數(shù)依賴集FLFL={職工號(hào)→部門號(hào),(職工號(hào),項(xiàng)目號(hào))→工作天數(shù),職工號(hào)←→項(xiàng)目號(hào)}消除冗余的方法(續(xù))2.求FL的最小覆蓋GL
,差集為D=FL-GL。逐一考察D中的函數(shù)依賴,確定是否是冗余的聯(lián)系,若是,就把它去掉。(1)冗余的聯(lián)系一定在D中,而D中的聯(lián)系不一定是冗余的;(2)當(dāng)實(shí)體之間存在多種聯(lián)系時(shí)要將實(shí)體之間的聯(lián)系在形式上加以區(qū)分。消除冗余,設(shè)計(jì)生成基本E-R圖實(shí)例[實(shí)例]某工廠管理信息系統(tǒng)的視圖集成。工廠管理信息系統(tǒng)由物資管理、銷售管理和勞動(dòng)人事管理組成,各部分的分E-R圖如下:該廠物資管理分E-R圖該廠銷售管理分E-R圖勞動(dòng)人事管理分E-R圖集成過(guò)程,解決了以下問(wèn)題:異名同義,項(xiàng)目和產(chǎn)品含義相同,統(tǒng)一使用產(chǎn)品物資管理中職工與倉(cāng)庫(kù)的工作關(guān)系已包含在勞動(dòng)人事管理的部門與職工之間的聯(lián)系之中,所以可以取消職工之間領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)關(guān)系可由部門與職工(經(jīng)理)之間的領(lǐng)導(dǎo)關(guān)系、部門與職工之間的從屬關(guān)系兩者導(dǎo)出,所以也可以取消系統(tǒng)的基本E-R勞動(dòng)人事管理分E-R銷售管理分E-R物資管理分E-R驗(yàn)證整體概念結(jié)構(gòu)視圖集成后形成一個(gè)整體的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),對(duì)該整體概念結(jié)構(gòu)還必須進(jìn)行進(jìn)一步驗(yàn)證,確保它能夠滿足下列條件:整體概念結(jié)構(gòu)內(nèi)部必須具有一致性,不存在互相矛盾的表達(dá)整體概念結(jié)構(gòu)能準(zhǔn)確地反映原來(lái)的每個(gè)視圖結(jié)構(gòu),包括屬性、實(shí)體及實(shí)體間的聯(lián)系整體概念結(jié)構(gòu)能滿足需要分析階段所確定的所有要求驗(yàn)證整體概念結(jié)構(gòu)(續(xù))整體概念結(jié)構(gòu)最終還應(yīng)該提交給用戶,征求用戶和有關(guān)人員的意見(jiàn),進(jìn)行評(píng)審、修改和優(yōu)化,然后把它確定下來(lái),作為數(shù)據(jù)庫(kù)的概念結(jié)構(gòu),作為進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫(kù)的依據(jù)。概念結(jié)構(gòu)設(shè)計(jì)小結(jié)概念結(jié)構(gòu)設(shè)計(jì)的步驟抽象數(shù)據(jù)并設(shè)計(jì)局部視圖集成局部視圖,得到全局概念結(jié)構(gòu)驗(yàn)證整體概念結(jié)構(gòu)概念結(jié)構(gòu)設(shè)計(jì)小結(jié)數(shù)據(jù)抽象分類聚集概括概念結(jié)構(gòu)設(shè)計(jì)小結(jié)設(shè)計(jì)局部視圖⒈選擇局部應(yīng)用
2.逐一設(shè)計(jì)分E-R圖標(biāo)定局部應(yīng)用中的實(shí)體、屬性、碼,實(shí)體間的聯(lián)系用E-R圖描述出來(lái)概念結(jié)構(gòu)設(shè)計(jì)小結(jié)集成局部視圖1.合并分E-R圖,生成初步E-R圖消除沖突屬性沖突命名沖突結(jié)構(gòu)沖突2.修改與重構(gòu)消除不必要的冗余,設(shè)計(jì)生成基本E-R圖分析方法規(guī)范化理論第七章數(shù)據(jù)庫(kù)設(shè)計(jì)7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2需求分析7.3概念結(jié)構(gòu)設(shè)計(jì)7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)7.7小結(jié)7.4邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)的步驟將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型將轉(zhuǎn)換來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.4.1E-R圖向關(guān)系模型的轉(zhuǎn)換7.4.2數(shù)據(jù)模型的優(yōu)化7.4.3設(shè)計(jì)用戶子模式7.4.1E-R圖向關(guān)系模型的轉(zhuǎn)換E-R圖向關(guān)系模型的轉(zhuǎn)換要解決的問(wèn)題
如何將實(shí)體型和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式如何確定這些關(guān)系模式的屬性和碼E-R圖向關(guān)系模型轉(zhuǎn)換的內(nèi)容將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。E-R圖向關(guān)系模型的轉(zhuǎn)換原則:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性為該關(guān)系的屬性,實(shí)體的碼為關(guān)系的碼。<一>實(shí)體型的轉(zhuǎn)換舉例:學(xué)生實(shí)體可以轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)為學(xué)生關(guān)系的碼。學(xué)生(學(xué)號(hào),姓名,年齡,所在系)。<二>實(shí)體型間聯(lián)系的轉(zhuǎn)換具體情況具體對(duì)待:
方式:1:11:nn:m
主體:兩個(gè)實(shí)體型,多個(gè)實(shí)體型實(shí)體型間的聯(lián)系有以下不同情況:(1)1:1聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并如果與某一端對(duì)應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。舉例:假如有一個(gè)學(xué)生“管理”的聯(lián)系,即一個(gè)職工管理一個(gè)班級(jí),一個(gè)班級(jí)只能由一個(gè)職工管理,該聯(lián)系為1:1聯(lián)系,將其轉(zhuǎn)換為關(guān)系模式有兩種方法:A.轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式班級(jí)(班級(jí)號(hào),人數(shù),…)職工(職工號(hào),姓名,性別,職稱)管理(職工號(hào),班級(jí)號(hào))或管理(職工號(hào),班級(jí)號(hào))B.將其與“班級(jí)”關(guān)系模式合并,增加“職工號(hào)”屬性,即:職工(職工號(hào),姓名,性別,職稱)班級(jí)(班級(jí)號(hào),人數(shù),,…,職工號(hào))
C.將其與“職工”關(guān)系模式合并,增加加“班級(jí)號(hào)”屬性,即:班級(jí)(班級(jí)號(hào),人數(shù),…)職工(職工號(hào),姓名,性別,職稱,班級(jí)號(hào))推薦使用合并的方法。(2)1:n聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式與n端對(duì)應(yīng)的關(guān)系模式合并如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。如果與n端關(guān)系模式合并,則需要n端關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。A.轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式班級(jí)(班級(jí)號(hào),專業(yè))學(xué)生(學(xué)生號(hào),姓名,性別,年齡)組成(學(xué)號(hào),班級(jí)號(hào))B.將其與“學(xué)生”關(guān)系模式合并,增加“班級(jí)號(hào)”屬性,即:班級(jí)(班級(jí)號(hào),專業(yè))學(xué)生(學(xué)號(hào),姓名,年齡,性別,班級(jí)號(hào))舉例:假如有一個(gè)學(xué)生“組成”的聯(lián)系,即一個(gè)學(xué)生只能屬于一個(gè)班級(jí),一個(gè)班級(jí)可能有多個(gè)學(xué)生,該聯(lián)系為1:n聯(lián)系,將其轉(zhuǎn)換為關(guān)系模式有兩種方法:推薦使用合并的方法。(3)m:n聯(lián)系與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系的碼為各實(shí)體碼的組合。例,“選修”聯(lián)系是一個(gè)m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)與課程號(hào)為關(guān)系的組合碼:選修(學(xué)號(hào),課程號(hào),成績(jī))(4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系的碼為各實(shí)體碼的組合。例,“講授”聯(lián)系是一個(gè)三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號(hào)、職工號(hào)和書號(hào)為關(guān)系的組合碼:課程(課程號(hào),學(xué)分,…)教師(職工號(hào),姓名,…)教材(書號(hào),書名,出版社,作者,…)講授(課程號(hào),職工號(hào),書號(hào))課程教材教師講授(5)具有相同碼的關(guān)系模式可合并合并方法:將其中一個(gè)關(guān)系模式的全部屬性加入到另一個(gè)關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當(dāng)調(diào)整屬性的次序假如有一個(gè)職務(wù)的關(guān)系模式,即:職務(wù)(學(xué)號(hào),姓名,性別,職務(wù));同時(shí)有一個(gè)學(xué)生關(guān)系模式,即:學(xué)生(學(xué)號(hào),姓名,出生日期,所在系)。這兩個(gè)關(guān)系模式都以學(xué)號(hào)為碼,我們可以將它們合并為一個(gè)關(guān)系模式,假設(shè)合并后的關(guān)系模式仍叫學(xué)生,即:學(xué)生(學(xué)號(hào),姓名,性別,出生日期,所在系,職務(wù))。E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))注意:從理論上講,1:1聯(lián)系可以與任意一端對(duì)應(yīng)的關(guān)系模式合并但在一些情況下,與不同的關(guān)系模式合并效率會(huì)大不一樣。因此究竟應(yīng)該與哪端的關(guān)系模式合并需要依應(yīng)用的具體情況而定。由于連接操作是最費(fèi)時(shí)的操作,所以一般應(yīng)以盡量減少連接操作為目標(biāo)。例如,如果經(jīng)常要查詢某個(gè)班級(jí)的班主任姓名,則將管理聯(lián)系與教師關(guān)系合并更好些。[例]把圖7.30中虛線上部的E-R圖轉(zhuǎn)換為關(guān)系模型部門實(shí)體對(duì)應(yīng)的關(guān)系模式部門(部門號(hào),部門名,經(jīng)理的職工號(hào),…)此關(guān)系模式已包含了聯(lián)系“領(lǐng)導(dǎo)”所對(duì)應(yīng)的關(guān)系模式經(jīng)理的職工號(hào)是關(guān)系的候選碼職工實(shí)體對(duì)應(yīng)的關(guān)系模式職工(職工號(hào)、部門號(hào),職工名,職務(wù),…)該關(guān)系模式已包含了聯(lián)系“屬于”所對(duì)應(yīng)的關(guān)系模式產(chǎn)品實(shí)體對(duì)應(yīng)的關(guān)系模式
產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,產(chǎn)品組長(zhǎng)的職工號(hào),…)聯(lián)系“參加”所對(duì)應(yīng)的關(guān)系模式職工工作(職工號(hào),產(chǎn)品號(hào),工作天數(shù),…)供應(yīng)商實(shí)體對(duì)應(yīng)的關(guān)系模式
供應(yīng)商(供應(yīng)商號(hào),姓名,…)零件實(shí)體對(duì)應(yīng)的關(guān)系模式
零件(零件號(hào),零件名,…)
聯(lián)系“供應(yīng)”所對(duì)應(yīng)的關(guān)系模式供應(yīng)(產(chǎn)品號(hào),供應(yīng)商號(hào),零件號(hào),供應(yīng)量)
7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.4.1E-R圖向關(guān)系模型的轉(zhuǎn)換7.4.2數(shù)據(jù)模型的優(yōu)化7.4.3設(shè)計(jì)用戶子模式7.4.2數(shù)據(jù)模型的優(yōu)化得到初步數(shù)據(jù)模型后,還應(yīng)該適當(dāng)?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)優(yōu)化數(shù)據(jù)模型的方法2.消除冗余的聯(lián)系對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。 1.確定數(shù)據(jù)依賴按需求分析階段所得到的語(yǔ)義,分別寫出每個(gè)關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴3.確定所屬范式按照數(shù)據(jù)依賴的理論對(duì)關(guān)系模式逐一進(jìn)行分析考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等確定各關(guān)系模式分別屬于第幾范式4.按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。5.對(duì)關(guān)系模式進(jìn)行必要的分解,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率。水平分解垂直分解常用分解方法水平分解什么是水平分解把(基本)關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率舉例:
記錄日志的表可以按月份分解學(xué)生表可以按學(xué)院分解水平分解的適用范圍
a.滿足“80/20原則”的應(yīng)用
b.并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù)垂直分解什么是垂直分解把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式垂直分解的適用范圍取決于分解后R上的所有事務(wù)的總效率是否得到了提高原則:一般將經(jīng)常在一起使用的屬性組分解出來(lái)形成一個(gè)子關(guān)系模式,這樣可以提高某些事務(wù)的執(zhí)行效率,但同時(shí)對(duì)另外一些事務(wù)則可能產(chǎn)生連接操作,從而降低執(zhí)行效率.一般說(shuō)來(lái),第三范式就足夠了注1:規(guī)范化理論為數(shù)據(jù)庫(kù)設(shè)計(jì)人員判斷關(guān)系模式優(yōu)劣提供了理論標(biāo)準(zhǔn),可用來(lái)預(yù)測(cè)模式可能出現(xiàn)的問(wèn)題,使數(shù)據(jù)庫(kù)設(shè)計(jì)工作有了嚴(yán)格的理論基礎(chǔ)。優(yōu)化的注意事項(xiàng):注2:并不是規(guī)范化程序越高的關(guān)系就越優(yōu),對(duì)于一個(gè)具體應(yīng)用,需要權(quán)衡時(shí)間、空間、完整性等各方面的利弊。數(shù)據(jù)模型的優(yōu)化(續(xù))例:在關(guān)系模式學(xué)生成績(jī)單(學(xué)號(hào),英語(yǔ),數(shù)學(xué),語(yǔ)文,平均成績(jī))
中存在下列函數(shù)依賴:學(xué)號(hào)→英語(yǔ)學(xué)號(hào)→數(shù)學(xué)學(xué)號(hào)→語(yǔ)文學(xué)號(hào)→平均成績(jī)
(英語(yǔ),數(shù)學(xué),語(yǔ)文)→平均成績(jī)數(shù)據(jù)模型的優(yōu)化(續(xù))顯然有:學(xué)號(hào)→(英語(yǔ),數(shù)學(xué),語(yǔ)文)→平均成績(jī)
因此該關(guān)系模式中存在傳遞函數(shù)信賴,是2NF關(guān)系
雖然平均成績(jī)可以由其他屬性推算出來(lái),但如果應(yīng)用中需要經(jīng)常查詢學(xué)生的平均成績(jī),為提高效率,仍然可保留該冗余數(shù)據(jù),對(duì)關(guān)系模式不再做進(jìn)一步分解7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.4.1E-R圖向關(guān)系模型的轉(zhuǎn)換7.4.2數(shù)據(jù)模型的優(yōu)化7.4.3設(shè)計(jì)用戶子模式7.4.3設(shè)計(jì)用戶子模式定義用戶外模式時(shí)應(yīng)該注重的問(wèn)題包括三個(gè)方面:
(1)使用更符合用戶習(xí)慣的別名
(2)針對(duì)不同級(jí)別的用戶定義不同的View,以滿足系統(tǒng)對(duì)安全性的要求。
(3)簡(jiǎn)化用戶對(duì)系統(tǒng)的使用將概念模型轉(zhuǎn)換為邏輯模型后,即生成了整個(gè)應(yīng)用系統(tǒng)的模式后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體DBMS的特點(diǎn),設(shè)計(jì)更符合局部用戶需要的用戶外模式。[例]
關(guān)系模式產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,規(guī)格,單價(jià),生產(chǎn)車間,生產(chǎn)負(fù)責(zé)人,產(chǎn)品成本,產(chǎn)品合格率,質(zhì)量等級(jí)),可以在產(chǎn)品關(guān)系上建立兩個(gè)視圖:為一般顧客建立視圖:產(chǎn)品1(產(chǎn)品號(hào),產(chǎn)品名,規(guī)格,單價(jià))為產(chǎn)品銷售部門建立視圖:產(chǎn)品2(產(chǎn)品號(hào),產(chǎn)品名,規(guī)格,單價(jià),車間,生產(chǎn)負(fù)責(zé)人)顧客視圖中只包含允許顧客查詢的屬性銷售部門視圖中只包含允許銷售部門查詢的屬性生產(chǎn)領(lǐng)導(dǎo)部門則可以查詢?nèi)慨a(chǎn)品數(shù)據(jù)可以防止用戶非法訪問(wèn)不允許他們查詢的數(shù)據(jù),保證系統(tǒng)的安全性邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)任務(wù)將概念結(jié)構(gòu)轉(zhuǎn)化為具體的數(shù)據(jù)模型邏輯結(jié)構(gòu)設(shè)計(jì)的步驟將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型將轉(zhuǎn)化來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化設(shè)計(jì)用戶子模式邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)E-R圖向關(guān)系模型的轉(zhuǎn)換內(nèi)容E-R圖向關(guān)系模型的轉(zhuǎn)換原則邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)優(yōu)化數(shù)據(jù)模型的方法
1.確定數(shù)據(jù)依賴
2.對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。
3.確定各關(guān)系模式分別屬于第幾范式。
4.分析對(duì)于應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。
5.對(duì)關(guān)系模式進(jìn)行必要的分解或合并(水平/垂直)邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)設(shè)計(jì)用戶子模式
1.使用更符合用戶習(xí)慣的別名
2.針對(duì)不同級(jí)別的用戶定義不同的外模式,以滿足系統(tǒng)對(duì)安全性的要求。
3.簡(jiǎn)化用戶對(duì)系統(tǒng)的使用第七章數(shù)據(jù)庫(kù)設(shè)計(jì)7.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述7.2需求分析7.3概念結(jié)構(gòu)設(shè)計(jì)7.4邏輯結(jié)構(gòu)設(shè)計(jì)7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.6數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)7.7小結(jié)7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法)的過(guò)程,就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)概念模式內(nèi)模式利用DBMS1.滿足數(shù)據(jù)庫(kù)的性能2.節(jié)省存儲(chǔ)空間數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(續(xù))數(shù)據(jù)庫(kù)物理設(shè)計(jì)的步驟確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存儲(chǔ)結(jié)構(gòu)對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率如果評(píng)價(jià)結(jié)果滿足原設(shè)計(jì)要求,則可進(jìn)入到物理實(shí)施階段,否則,就需要重新設(shè)計(jì)或修改物理結(jié)構(gòu),有時(shí)甚至要返回邏輯設(shè)計(jì)階段修改數(shù)據(jù)模型數(shù)據(jù)庫(kù)的物理設(shè)計(jì)(續(xù))數(shù)據(jù)庫(kù)物理設(shè)計(jì)確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)評(píng)價(jià)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施物理模型邏輯模型7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.5.1數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法7.5.2關(guān)系模式存取方法選擇7.5.3確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)7.5.4評(píng)價(jià)物理結(jié)構(gòu)數(shù)據(jù)庫(kù)物理設(shè)計(jì)的主要影響因素:DBMS應(yīng)用環(huán)境數(shù)據(jù)本身的特性支持環(huán)境7.5.1數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法設(shè)計(jì)物理數(shù)據(jù)庫(kù)結(jié)構(gòu)的準(zhǔn)備工作對(duì)要運(yùn)行的事務(wù)進(jìn)行詳細(xì)分析,獲得選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)(查詢和更新事務(wù))充分了解所用RDBMS的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)的內(nèi)容和方法(續(xù))選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)數(shù)據(jù)庫(kù)查詢事務(wù)查詢的關(guān)系查詢條件所涉及的屬性連接條件所涉及的屬性查詢的投影屬性選擇物理數(shù)據(jù)庫(kù)設(shè)計(jì)所需參數(shù)(續(xù))數(shù)據(jù)更新事務(wù)被更新的關(guān)系每個(gè)關(guān)系上的更新操作條件所涉及的屬性修改操作要改變的屬性值
每個(gè)事務(wù)在各關(guān)系上運(yùn)行的頻率和性能要求關(guān)系數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容為關(guān)系模式選擇存取方法(建立存取路徑)
設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫(kù)文件的物理存儲(chǔ)結(jié)構(gòu)7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.5.1數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法7.5.2關(guān)系模式存取方法選擇7.5.3確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)7.5.4評(píng)價(jià)物理結(jié)構(gòu)7.5.2關(guān)系模式存取方法選擇數(shù)據(jù)庫(kù)系統(tǒng)是多用戶共享的系統(tǒng),對(duì)同一個(gè)關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求物理設(shè)計(jì)的任務(wù)之一就是要確定選擇哪些存取方法,即建立哪些存取路徑關(guān)系模式存取方法選擇(續(xù))DBMS常用存取方法索引方法目前主要是B+樹(shù)索引方法經(jīng)典存取方法,使用最普遍
聚簇(Cluster)方法HASH方法一、索引存取方法的選擇根據(jù)應(yīng)用要求確定對(duì)哪些屬性列建立索引對(duì)哪些屬性列建立組合索引對(duì)哪些索引要設(shè)計(jì)為唯一索引索引存取方法的選擇(續(xù))選擇索引存取方法的一般規(guī)則如果一個(gè)(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引(或組合索引)如果一個(gè)屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個(gè)屬性上建立索引如果一個(gè)(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個(gè)(或這組)屬性上建立索引關(guān)系上定義的索引數(shù)過(guò)多會(huì)帶來(lái)較多的額外開(kāi)銷維護(hù)索引的開(kāi)銷查找索引的開(kāi)銷二、聚簇存取方法的選擇聚簇為了提高某個(gè)屬性(或?qū)傩越M)的查詢速度,把這個(gè)或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續(xù)的物理塊稱為聚簇頭塊鏈塊1鏈塊n前向指針后向指針聚簇的用途1.大大提高按聚簇碼進(jìn)行查詢的效率例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查詢信息系的所有學(xué)生名單。信息系的500名學(xué)生分布在500個(gè)不同的物理塊上時(shí),至少要執(zhí)行500次I/O操作如果將同一系的學(xué)生元組集中存放,則每讀一個(gè)物理塊可得到多個(gè)滿足查詢條件的元組,從而顯著地減少了訪問(wèn)磁盤的次數(shù)2.節(jié)省存儲(chǔ)空間聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個(gè)元組中重復(fù)存儲(chǔ),只要在一組中存一次就行了聚簇的局限性1.聚簇只能提高某些特定應(yīng)用的性能2.建立與維護(hù)聚簇的開(kāi)銷相當(dāng)大對(duì)已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動(dòng)其物理存儲(chǔ)位置,并使此關(guān)系上原有的索引無(wú)效,必須重建當(dāng)一個(gè)元組的聚簇碼改變時(shí),該元組的存儲(chǔ)位置也要做相應(yīng)移動(dòng)一般情況下,只有滿足下列情況才考慮建立聚集.1.當(dāng)通過(guò)聚簇碼進(jìn)行訪問(wèn)或連接是該關(guān)系的主要應(yīng)用,與聚簇碼無(wú)關(guān)的其他訪問(wèn)很少或者是次要的時(shí),可以使用聚簇。尤其當(dāng)SQL語(yǔ)句中包含有與聚簇碼有關(guān)的ORDERBY,GROUPBY,UNION,DISTINCT等子句或短語(yǔ)時(shí),使用聚簇特別有利,可以省去對(duì)結(jié)果集的排序操作 例:假設(shè)用戶經(jīng)常要按系別查詢學(xué)生成績(jī)單,這一查詢涉及學(xué)生關(guān)系和選修關(guān)系的連接操作,即需要按學(xué)號(hào)連接這兩個(gè)關(guān)系,為提高連接操作的效率,可以把具有相同學(xué)號(hào)值的學(xué)生元組和選修元組在物理上聚簇在一起。這就相當(dāng)于把多個(gè)關(guān)系按“預(yù)連接”的形式存放,從而大大提高連接操作的效率。2.對(duì)應(yīng)每個(gè)聚集碼值的個(gè)數(shù)應(yīng)該適中太少,效果不明顯而且浪費(fèi)空間太多,所占的物理塊較多,同樣不利于效率的提高.3.聚集碼值應(yīng)該相對(duì)穩(wěn)定,以減少修改聚集碼所帶來(lái)的管理維護(hù)開(kāi)銷.優(yōu)化聚簇設(shè)計(jì)從聚簇中刪除經(jīng)常進(jìn)行全表掃描的關(guān)系;從聚簇中刪除更新操作遠(yuǎn)多于連接操作的關(guān)系;不同的聚簇中可能包含相同的關(guān)系,一個(gè)關(guān)系可以在某一個(gè)聚簇中,但不能同時(shí)加入多個(gè)聚簇
從這多個(gè)聚簇方案(包括不建立聚簇)中選擇一個(gè)較優(yōu)的,即在這個(gè)聚簇上運(yùn)行各種事務(wù)的總代價(jià)最小三、HASH存取方法的選擇選擇HASH存取方法的規(guī)則當(dāng)一個(gè)關(guān)系滿足下列兩個(gè)條件時(shí),可以選擇HASH存取方法該關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等比較選擇條件中該關(guān)系的大小可預(yù)知,而且不變;或該關(guān)系的大小動(dòng)態(tài)改變,但所選用的DBMS提供了動(dòng)態(tài)HASH存取方法7.5數(shù)據(jù)庫(kù)的物理設(shè)計(jì)7.5.1數(shù)據(jù)庫(kù)物理設(shè)計(jì)的內(nèi)容和方法7.5.2關(guān)系模式存取方法選擇7.5.3確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)7.5.4評(píng)價(jià)物理結(jié)構(gòu)7.5.3確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)確定數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的內(nèi)容1.確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu)關(guān)系索引聚簇日志備份2.確定系統(tǒng)配置1.確定數(shù)據(jù)的存放位置確定數(shù)據(jù)存放位置和存儲(chǔ)結(jié)構(gòu)的因素存取時(shí)間存儲(chǔ)空間利用率維護(hù)代價(jià)這三個(gè)方面常常是相互矛盾的例:消除一切冗余數(shù)據(jù)雖能夠節(jié)約存儲(chǔ)空間和減少維護(hù)代價(jià),但往往會(huì)導(dǎo)致檢索代價(jià)的增加必須進(jìn)行權(quán)衡,選擇一個(gè)折中方案確定數(shù)據(jù)的存放位置的基本原則根據(jù)應(yīng)用情況將易變部分與穩(wěn)定部分分開(kāi)存放存取頻率較高部分與存取頻率較低部分,分開(kāi)存放將存取頻率較高且數(shù)據(jù)量較大的熱點(diǎn)數(shù)據(jù),分開(kāi)存放在磁盤組上,以均衡磁盤組的負(fù)荷,提高并行I/O訪問(wèn)速度.例:數(shù)據(jù)庫(kù)數(shù)據(jù)備份、日志文件備份等由于只在故障恢復(fù)時(shí)才使用,而且數(shù)據(jù)量很大,可以考慮將其與數(shù)據(jù)庫(kù)對(duì)象(表、索引等)放在不同的磁盤以改進(jìn)系統(tǒng)的性能如果計(jì)算機(jī)有多個(gè)磁盤或磁盤陣列,可以考慮將表和索引分別放在不同的磁盤上,在查詢時(shí),由于磁盤驅(qū)動(dòng)器并行工作,可以提高物理I/O讀寫的效率例(續(xù)):可以將比較大的表分別放在兩個(gè)磁盤上,以加快存取速度,這
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度數(shù)碼產(chǎn)品銷售承包經(jīng)營(yíng)合同樣本3篇
- 二零二五年度房地產(chǎn)項(xiàng)目融資合同還款期付款臺(tái)賬3篇
- 二零二五年度光纜鋪設(shè)及維護(hù)合同2篇
- 2025年度汽車銷售代理固定總價(jià)合同3篇
- 二零二五年度房產(chǎn)贈(zèng)與離婚協(xié)議雙項(xiàng)保障合同3篇
- 二零二五年度建議書審核、采納與實(shí)施效果評(píng)估服務(wù)協(xié)議3篇
- 美國(guó)課程設(shè)計(jì)先驅(qū)是
- 海南衛(wèi)生健康職業(yè)學(xué)院《醫(yī)用檢驗(yàn)儀器與體外診斷試劑》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版頂名支付方式下的商業(yè)房產(chǎn)買賣合同3篇
- 二零二五年度城市綠化與生態(tài)保護(hù)合作協(xié)議2篇
- 血細(xì)胞分析報(bào)告規(guī)范化指南2020
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之7:“5領(lǐng)導(dǎo)作用-5.1領(lǐng)導(dǎo)作用和承諾”(雷澤佳編制-2025B0)
- 2024年快速消費(fèi)品物流配送合同6篇
- 廣東省茂名市2024屆高三上學(xué)期第一次綜合測(cè)試(一模)歷史 含解析
- 神經(jīng)重癥氣管切開(kāi)患者氣道功能康復(fù)與管理學(xué)習(xí)與臨床應(yīng)用
- 第5章 一元一次方程大單元整體設(shè)計(jì) 北師大版(2024)數(shù)學(xué)七年級(jí)上冊(cè)教學(xué)課件
- 人教版高一地理必修一期末試卷
- 遼寧省錦州市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)部編版期末考試(上學(xué)期)試卷及答案
- GB/T 29498-2024木門窗通用技術(shù)要求
- 《職業(yè)院校與本科高校對(duì)口貫通分段培養(yǎng)協(xié)議書》
- 機(jī)電傳動(dòng)單向數(shù)控平臺(tái)-礦大-機(jī)械電子-有圖
評(píng)論
0/150
提交評(píng)論