數(shù)據(jù)庫(kù)系統(tǒng)第10講.ppt_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第10講.ppt_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第10講.ppt_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第10講.ppt_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)第10講.ppt_第5頁(yè)
已閱讀5頁(yè),還剩155頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論