第5章 數(shù)據(jù)庫設(shè)計(jì)與實(shí)施_第1頁
第5章 數(shù)據(jù)庫設(shè)計(jì)與實(shí)施_第2頁
第5章 數(shù)據(jù)庫設(shè)計(jì)與實(shí)施_第3頁
第5章 數(shù)據(jù)庫設(shè)計(jì)與實(shí)施_第4頁
第5章 數(shù)據(jù)庫設(shè)計(jì)與實(shí)施_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章數(shù)據(jù)庫設(shè)計(jì)與實(shí)施

劉先鋒第一講:數(shù)據(jù)庫設(shè)計(jì)概述、

規(guī)劃、需求分析5.1數(shù)據(jù)庫設(shè)計(jì)概述數(shù)據(jù)庫設(shè)計(jì)是指:在給定的應(yīng)用環(huán)境下,創(chuàng)建一個(gè)性能良好的能滿足不同用戶使用要求的,又能被選定的DBMS所接受的數(shù)據(jù)格式。數(shù)據(jù)庫設(shè)計(jì)是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)中的核心技術(shù)。5.1.1數(shù)據(jù)庫設(shè)計(jì)的內(nèi)容與特點(diǎn)數(shù)據(jù)庫設(shè)計(jì)兩個(gè)方面:結(jié)構(gòu)特性設(shè)計(jì)——數(shù)據(jù)庫框架和數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)行為特性設(shè)計(jì)——應(yīng)用程序設(shè)計(jì),如查詢、報(bào)表處理,一般由面向?qū)ο蟮某绦蚪o出用戶操作界面。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)與行為設(shè)計(jì)要相互參照,它們組成統(tǒng)一的數(shù)據(jù)庫工程。5.1.2數(shù)據(jù)庫設(shè)計(jì)方法新奧爾良方法分為四個(gè)階段:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)。具體的實(shí)現(xiàn)技術(shù)與實(shí)現(xiàn)方法:如基于E—R模型的數(shù)據(jù)庫設(shè)計(jì)方法(針對(duì)概念結(jié)構(gòu)設(shè)計(jì)階段),基于3NF的設(shè)計(jì)方法,基于抽象語法規(guī)范的設(shè)計(jì)方法。規(guī)范設(shè)計(jì)法分為兩種:手工設(shè)計(jì)和計(jì)算機(jī)輔助設(shè)計(jì)(如OracleDesigner2000、RationalRose,它們可以幫助或者輔助設(shè)計(jì)人員完成數(shù)據(jù)庫設(shè)計(jì)中的很多任務(wù))。圖5-1數(shù)據(jù)庫設(shè)計(jì)過程企業(yè)物理設(shè)計(jì)數(shù)據(jù)分析程序設(shè)計(jì)說明事務(wù)設(shè)計(jì)應(yīng)用程序設(shè)計(jì)子模式設(shè)計(jì)邏輯模型設(shè)計(jì)加載測(cè)試數(shù)據(jù)程序調(diào)試考核性能功能分析能型功模能明功說投入運(yùn)行維護(hù)概念模型設(shè)計(jì)滿意YN5.1.3數(shù)據(jù)庫設(shè)計(jì)的步驟三個(gè)階段:總體規(guī)劃,系統(tǒng)開發(fā)設(shè)計(jì),系統(tǒng)運(yùn)行和維護(hù)。需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫實(shí)施與維護(hù)數(shù)據(jù)庫規(guī)劃數(shù)據(jù)庫規(guī)劃階段(總體目標(biāo)和技術(shù)路線,得出數(shù)據(jù)庫設(shè)計(jì)項(xiàng)目的可行性分析報(bào)告;對(duì)數(shù)據(jù)庫設(shè)計(jì)的進(jìn)度和人員分工做出安排)需求分析階段(弄清用戶要求,是基礎(chǔ)。影響到數(shù)據(jù)庫設(shè)計(jì)的結(jié)果是否合理與實(shí)用)概念結(jié)構(gòu)設(shè)計(jì)階段(獨(dú)立于計(jì)算機(jī)的數(shù)據(jù)模型,獨(dú)立于特定的DBMS。它通過對(duì)用戶需求綜合、歸納抽象、形成獨(dú)立于具體DBMS的概念模型。是各用戶關(guān)心的系統(tǒng)信息結(jié)構(gòu),方便與用戶交流,是對(duì)現(xiàn)實(shí)世界的第一層抽象)。現(xiàn)實(shí)世界(事物及其聯(lián)系)概念模型(實(shí)體及其聯(lián)系)數(shù)據(jù)模型(數(shù)據(jù)及其聯(lián)系)現(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界圖5-3信息的三個(gè)世界5.1.3數(shù)據(jù)庫設(shè)計(jì)的步驟(續(xù)1)4.邏輯結(jié)構(gòu)設(shè)計(jì)階段(轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并進(jìn)行優(yōu)化)5.物理結(jié)構(gòu)設(shè)計(jì)階段(設(shè)計(jì)一個(gè)在限定的軟、硬件條件和應(yīng)用環(huán)境下可實(shí)現(xiàn)的,運(yùn)行效率高的物理數(shù)據(jù)庫結(jié)構(gòu))6.?dāng)?shù)據(jù)庫實(shí)施與維護(hù)階段(根據(jù)邏輯結(jié)構(gòu)設(shè)計(jì)及物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行)5.1.3數(shù)據(jù)庫設(shè)計(jì)的步驟(續(xù)2)5.2數(shù)據(jù)庫規(guī)劃規(guī)劃過程:1.系統(tǒng)調(diào)查:調(diào)查,就是要搞清楚企業(yè)的組織層次,得到企業(yè)的組織結(jié)構(gòu)圖。2.可行性分析:從經(jīng)濟(jì)、法律、技術(shù)等多方面進(jìn)行可行性論證分析,在此基礎(chǔ)上得到可行性報(bào)告。3.?dāng)?shù)據(jù)庫建設(shè)的總體目標(biāo)和數(shù)據(jù)庫建設(shè)的實(shí)施總安排5.3需求分析5.3.1需求分析的任務(wù)需求分析的任務(wù)是通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(部門、企業(yè))充分了解原系統(tǒng)(手工系統(tǒng)或老計(jì)算機(jī)系統(tǒng))工作概況,明確各用戶的各種需求,在此基礎(chǔ)上確定新的功能。新系統(tǒng)的設(shè)計(jì)不僅要考慮現(xiàn)時(shí)的需求還要為今后的擴(kuò)充和改變留有余地,要有一定的前瞻性。5.3.2需求分析的方法四步:1.調(diào)查組織機(jī)構(gòu)情況。2.調(diào)查各部門的業(yè)務(wù)活動(dòng)情況。3.協(xié)助用戶明確對(duì)新系統(tǒng)的各種要求。4.對(duì)前面調(diào)查結(jié)果進(jìn)行初步分析,確定系統(tǒng)的邊界。調(diào)查方法:(1)跟班作業(yè)。(2)開調(diào)查會(huì)。(3)查閱檔案資料。(4)詢問。(5)設(shè)計(jì)調(diào)查用表請(qǐng)用戶填寫。5.3.3需求分析的步驟分析四步:分析用戶的活動(dòng)、確定新系統(tǒng)功能包括的范圍、分析用戶活動(dòng)所涉及的數(shù)據(jù)、分析系統(tǒng)數(shù)據(jù)。1.分析用戶的活動(dòng)圖5-4圖書發(fā)行企業(yè)部分業(yè)務(wù)用戶活動(dòng)圖接受申請(qǐng)查圖書信息接受申請(qǐng)打印圖書目錄查詢圖書公布接受處理查書店信息請(qǐng)查圖書信息生成訂單計(jì)算賠款書店訂書交有關(guān)部門打印訂單2.確定系統(tǒng)的邊界在上述用戶活動(dòng)圖中確定計(jì)算機(jī)與人工分工的界線3.分析用戶活動(dòng)所涉及的數(shù)據(jù)在處理功能逐步分解的同時(shí),他們所用的數(shù)據(jù)也逐級(jí)分解形成若干層次的數(shù)據(jù)流圖。數(shù)據(jù)流圖(DFD,DataFlowDiagram):從數(shù)據(jù)流的角度描述一個(gè)組織業(yè)務(wù)活動(dòng)的圖,從數(shù)據(jù)和數(shù)據(jù)加工兩方面來表達(dá)數(shù)據(jù)處理系統(tǒng)工作過程,是用戶和設(shè)計(jì)人員都能容易理解的一種表達(dá)系統(tǒng)功能的描述方式。用上面帶有名字的箭頭表示數(shù)據(jù)流,用標(biāo)有名字的圓圈表示數(shù)據(jù)的加工處理,用直線表示文件(離開文件的箭頭表示文件讀、指向文件的箭頭表示文件寫),用方框表示數(shù)據(jù)的源頭和終點(diǎn)。S1P1P2XYXZXF1圖5-5一個(gè)簡(jiǎn)單的數(shù)據(jù)流圖5.3.3需求分析的步驟(續(xù)1)查詢處理圖書查詢請(qǐng)求打印圖書數(shù)據(jù)圖書數(shù)據(jù)圖書查詢:(A)查詢圖書數(shù)據(jù)流圖圖書作者出版社(B)書店訂購(gòu)圖書處理數(shù)據(jù)流圖訂購(gòu)請(qǐng)求書店訂購(gòu)圖書:生成訂單書店訂單圖5-6圖書管理系統(tǒng)內(nèi)部用戶活動(dòng)圖對(duì)應(yīng)的各數(shù)據(jù)流圖圖書作者出版社5.3.3需求分析的步驟(續(xù)2)4.分析系統(tǒng)數(shù)據(jù)數(shù)據(jù)字典(DD,DataDictionary)是進(jìn)行詳細(xì)的數(shù)據(jù)收集與分析所得到的主要成果,是對(duì)數(shù)據(jù)流圖中出現(xiàn)的所有數(shù)據(jù)元素給出邏輯定義和描述,也是數(shù)據(jù)庫設(shè)計(jì)者與用戶交流的又一個(gè)有力工具,可以供系統(tǒng)設(shè)計(jì)者,軟件開發(fā)者、系統(tǒng)維護(hù)者和用戶參照使用。四個(gè)部分:⑴數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,別名,數(shù)據(jù)項(xiàng)含義,數(shù)據(jù)類型,字節(jié)長(zhǎng)度,取值范圍,取值含義,與其它數(shù)據(jù)項(xiàng)的邏輯關(guān)系}數(shù)據(jù)項(xiàng)名數(shù)據(jù)類型字節(jié)長(zhǎng)度圖書編號(hào)字符6書名字符80評(píng)論字符200出版社標(biāo)識(shí)字符4價(jià)格數(shù)字8出版日期日期8圖書類別字符125.3.3需求分析的步驟(續(xù)3)⑵數(shù)據(jù)文件數(shù)據(jù)文件描述={數(shù)據(jù)文件名,組成數(shù)據(jù)文件的所有數(shù)據(jù)項(xiàng)名,數(shù)據(jù)存取頻度,存取方式}如:圖書={組成:圖書編號(hào)、書名、評(píng)論、出版社標(biāo)識(shí)、價(jià)格、出版日期、圖書類別,存取頻度:M次/每天,存取方式:隨機(jī)存取}⑶數(shù)據(jù)流數(shù)據(jù)流描述={數(shù)據(jù)流的名稱,組成數(shù)據(jù)流的所有數(shù)據(jù)項(xiàng)名,數(shù)據(jù)流的來源,數(shù)據(jù)流的去向,平均流量,峰值流量}⑷數(shù)據(jù)加工處理數(shù)據(jù)加工處理描述={加工處理名,說明,輸入的數(shù)據(jù)流名,輸出的數(shù)據(jù)流名,處理要求}數(shù)據(jù)字典四部分(續(xù))思考題:簡(jiǎn)述數(shù)據(jù)庫設(shè)計(jì)的基本步驟。簡(jiǎn)述需求分析的基本步驟。什么是數(shù)據(jù)字典?它由哪幾部分組成?它在數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)中的作用是什么?什么是數(shù)據(jù)流圖?它由哪幾部分組成?它在數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)中的作用是什么?第二講:概念結(jié)構(gòu)設(shè)計(jì)

與邏輯結(jié)構(gòu)設(shè)計(jì)回顧:數(shù)據(jù)庫設(shè)計(jì)的步驟三個(gè)階段:總體規(guī)劃,系統(tǒng)開發(fā)設(shè)計(jì),系統(tǒng)運(yùn)行和維護(hù)。需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫實(shí)施與維護(hù)數(shù)據(jù)庫規(guī)劃5.4概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)階段就是將用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程。實(shí)體-聯(lián)系模型(E-R模型,EntityRelationshipModel)為該階段的設(shè)計(jì)提供了強(qiáng)有力的工具。首先得到各局部應(yīng)用的局部E-R圖,然后將各局部E-R圖集成形成全局的E-R圖。5.4.1設(shè)計(jì)各局部應(yīng)用的E-R模型1.分解:分解成若干個(gè)子系統(tǒng),一個(gè)局部應(yīng)用中的實(shí)體數(shù)不能超過9個(gè)。2.制圖:通過各局部應(yīng)用所涉及到的收集在數(shù)據(jù)字典中的數(shù)據(jù),并參照數(shù)據(jù)流圖來標(biāo)定局部應(yīng)用中的實(shí)體、實(shí)體的屬性、實(shí)體的碼、實(shí)體間的聯(lián)系以及它們聯(lián)系的類型來完成局部E-R模型的設(shè)計(jì)。(B)書店訂購(gòu)圖書處理數(shù)據(jù)流圖訂購(gòu)請(qǐng)求書店訂購(gòu)圖書:生成訂單書店訂單圖5-6圖書管理系統(tǒng)內(nèi)部用戶活動(dòng)圖對(duì)應(yīng)的各數(shù)據(jù)流圖圖書

作者出版社5.4.1設(shè)計(jì)各局部應(yīng)用的E-R模型(續(xù)1)3.調(diào)整:總體原則是現(xiàn)實(shí)中的事物能做“屬性”處理的就不要做“實(shí)體”對(duì)待。決定事物作為屬性來對(duì)待的準(zhǔn)則:此事物不能再包含別的屬性此事物不能與其它實(shí)體發(fā)生聯(lián)系(聯(lián)系只能發(fā)生在實(shí)體之間)5.4.1設(shè)計(jì)各局部應(yīng)用的E-R模型(續(xù)1)圖5-7圖書書名出版日期標(biāo)識(shí)評(píng)論出版社標(biāo)識(shí)圖書類別價(jià)格作者標(biāo)識(shí)作者姓名作者簡(jiǎn)歷聯(lián)系電話通訊地址出版出版社出版社標(biāo)識(shí)賬號(hào)聯(lián)系人姓名出版社名稱作者編著作者序號(hào)mmn15.4.1設(shè)計(jì)各局部應(yīng)用的E-R模型(續(xù)2)n圖書書店訂購(gòu)訂購(gòu)數(shù)量訂購(gòu)日期訂單號(hào)m圖5-8書店標(biāo)識(shí)書店名稱所在城市地址5.4.2全局E-R模型的設(shè)計(jì)要求:①完整性和正確性:即整體E-R圖應(yīng)包含局部E-R圖所表達(dá)的所有語義,完整地表達(dá)與所有局部E-R圖中應(yīng)用相關(guān)的數(shù)據(jù)。②最小化:系統(tǒng)中的對(duì)象原則上只出現(xiàn)一次。③易理解性:設(shè)計(jì)人員與用戶能夠容易理解集成后的全局E-R圖?;炯煞椒ǎ?.依次取出局部的E-R圖進(jìn)行集成通常是兩個(gè)關(guān)鍵的局部視圖先集成,當(dāng)然也可以一次集成多個(gè)局部E-R圖。消除各E-R圖中的沖突和不一致是工作的重點(diǎn)和關(guān)鍵所在。

沖突主要有三類:⑴屬性沖突:包括屬性域沖突和屬性取值單位沖突。⑵命名沖突:語義相同,命名不同;命名相同語義不同。⑶模型沖突:同一對(duì)象在不同的局部E-R模型中具有不同的抽象同一實(shí)體在不同的局部E-R模型中所包含的屬性個(gè)數(shù)和屬性排列順序不完全相同。實(shí)體之間的聯(lián)系在不同的局部E-R模型中具有不同的聯(lián)系類型。2.檢查集成后的E-R模型圖,消除模型中的冗余數(shù)據(jù)和冗余聯(lián)系

在初步集成的E-R圖中,可能存在可由其它別的所謂基本數(shù)據(jù)和基本聯(lián)系導(dǎo)出的數(shù)據(jù)和聯(lián)系。冗余數(shù)據(jù)和冗余聯(lián)系:能夠被導(dǎo)出的數(shù)據(jù)和聯(lián)系。危害:容易破壞數(shù)據(jù)的完整性,給數(shù)據(jù)的操作帶來困難和異常。有意冗余:適當(dāng)?shù)娜哂嗄芷鸬娇臻g換時(shí)間的效果(如:在工資管理中)集成后的全局E-R模型,如圖5-9所示(省略了部分實(shí)體的屬性)m圖書書店訂購(gòu)數(shù)量訂購(gòu)日期訂單號(hào)圖5-9出版社作者出版編著n1nnm5.5邏輯結(jié)構(gòu)設(shè)計(jì)目標(biāo):全局E-R圖轉(zhuǎn)換成DBMS支持的數(shù)據(jù)模型(層次、網(wǎng)狀、關(guān)系)。選DBMS方法:先選數(shù)據(jù)模型,再選支持該數(shù)據(jù)模型的DBMS。選DBMS因素:技術(shù)、經(jīng)濟(jì)、組織邏輯結(jié)構(gòu)設(shè)計(jì)三步:①將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀或?qū)哟文P汀"趯⑥D(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換,變成合適的數(shù)據(jù)庫模式。③對(duì)模式進(jìn)行調(diào)整和優(yōu)化。5.5.1E-R圖向關(guān)系模型的轉(zhuǎn)換原則:⑴一個(gè)實(shí)體型就轉(zhuǎn)換成一個(gè)關(guān)系模式,實(shí)體名成為關(guān)系名,實(shí)體的屬性成為關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。如圖9-9中:圖書(圖書標(biāo)識(shí),出版社標(biāo)識(shí),評(píng)論,價(jià)格,出版日期,圖書類別,書名)⑵對(duì)于一對(duì)一的聯(lián)系,可以將聯(lián)系轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,也可以與聯(lián)系的任意一端對(duì)應(yīng)的關(guān)系模式合并。⑶對(duì)于一對(duì)多的聯(lián)系,可以將聯(lián)系轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,也可以與“多”端對(duì)應(yīng)的關(guān)系模式合并。⑷對(duì)于多對(duì)多的聯(lián)系,必須將其轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式。新關(guān)系模式的鍵為各實(shí)體的鍵的組合。如:編著關(guān)系(圖書標(biāo)識(shí),作者標(biāo)識(shí),作者序號(hào))訂購(gòu)關(guān)系(圖書標(biāo)識(shí),書店標(biāo)識(shí),訂購(gòu)日期,數(shù)量,訂單號(hào))⑸對(duì)于三個(gè)或三個(gè)以上實(shí)體的多元聯(lián)系可以轉(zhuǎn)換成一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的鍵及聯(lián)系本身的屬性均轉(zhuǎn)換成新關(guān)系的屬性,新關(guān)系模式的鍵為各個(gè)實(shí)體的鍵的組合。⑹自聯(lián)系:可按上述的一對(duì)一、一對(duì)多、多對(duì)多的情況分別加以處理(如職工中的領(lǐng)導(dǎo)和被領(lǐng)導(dǎo)關(guān)系)⑺具有相同鍵的關(guān)系可以合并。5.5.2關(guān)系模型向特定的RDBMS的轉(zhuǎn)換依賴于機(jī)器,沒有一個(gè)通用的規(guī)則,轉(zhuǎn)換的主要依據(jù)是所選定的DBMS的功能及限制。5.5.3邏輯模式的優(yōu)化優(yōu)化是在性能預(yù)測(cè)的基礎(chǔ)上進(jìn)行的。性能一般用三個(gè)(定性)指標(biāo)來衡量:?jiǎn)挝粫r(shí)間里所訪問的邏輯記錄個(gè)數(shù)的多少;單位時(shí)間里數(shù)據(jù)傳送量的多少;系統(tǒng)占用的存儲(chǔ)空間的多少。采用關(guān)系規(guī)范化理論和關(guān)系分解方法作為優(yōu)化設(shè)計(jì)的理論指導(dǎo)方法:⑴確定數(shù)據(jù)依賴。⑵對(duì)各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。⑶對(duì)各關(guān)系模式進(jìn)行分析,考察是否存在部分依賴、傳遞依賴、多值依賴,確定范式。在工程中3NF、BCNF應(yīng)用得最廣泛。⑷模式對(duì)于這樣的應(yīng)用環(huán)境是否合適,確定是否要對(duì)某些模式進(jìn)行合并和分解。現(xiàn)狀:現(xiàn)實(shí)世界并不總是依從于某一完美的數(shù)學(xué)化的關(guān)系模式缺點(diǎn):系統(tǒng)進(jìn)行連接運(yùn)算,大量的I/O操作使得連接的代價(jià)相當(dāng)高,造成低效率,但非BCNF模式存在更新異常和冗余。原則:需要權(quán)衡響應(yīng)時(shí)間和潛在的問題的利弊⑸必要的分解,提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率(水平分解、垂直分解)水平分解:把關(guān)系的元組分成若干個(gè)子集,定義每個(gè)集合為一個(gè)子關(guān)系。垂直分解:把關(guān)系模式的屬性分解成若干個(gè)子集,形成若干個(gè)子關(guān)系模式。⑹有時(shí)為了減少重復(fù)數(shù)據(jù)所占的存儲(chǔ)空間,可以采用假屬性的辦法(如代碼化)。5.5.4外模式的設(shè)計(jì)外模式是用戶看到的數(shù)據(jù)模式,各類用戶有各自的外模式。可以利用一部分基表再加上按需為用戶定制的視圖就構(gòu)成了用戶的外模式。外模式給我們帶來了以下便利:⑴提供一定的邏輯數(shù)據(jù)獨(dú)立性⑵更好地適應(yīng)不同用戶對(duì)數(shù)據(jù)的需求⑶有利于數(shù)據(jù)的保密在設(shè)計(jì)用戶外模式時(shí),我們更注重用戶的個(gè)別差異,如注重考慮用戶的習(xí)慣和方便,包括:⑴使用符合用戶習(xí)慣的別名。⑵針對(duì)不同級(jí)別的用戶定義不同的外模式,以保證系統(tǒng)的安全性要求。⑶簡(jiǎn)化用戶對(duì)系統(tǒng)的使用思考題什么是“物理結(jié)構(gòu)設(shè)計(jì)”,“邏輯結(jié)構(gòu)設(shè)計(jì)”?怎樣決定一個(gè)事物是作為“屬性”還是作為“實(shí)體”對(duì)待?并舉例說明。如果無太大的差別時(shí),應(yīng)按什么原則?在將局部E-R圖合并成全局E-R圖時(shí),應(yīng)消除哪些沖突?試述E-R圖轉(zhuǎn)換為關(guān)系模型的一般規(guī)則。衡量數(shù)據(jù)庫性能常用哪些指標(biāo)?試述關(guān)系模式的優(yōu)化的理論基礎(chǔ)及具體作法。各種常用范式:設(shè)R是一個(gè)關(guān)系模式,如果R的每個(gè)屬性的值域都是不可分割的簡(jiǎn)單數(shù)據(jù)項(xiàng)的集合,則稱這個(gè)模式為第一范式關(guān)系模式,記為1NF。若關(guān)系模式R是第一范式,而且每一個(gè)非主屬性都完全函數(shù)依賴于R的鍵,則稱R為第二范式的關(guān)系模式,記為2NF。設(shè)關(guān)系模式R是2NF,而且它的任何一個(gè)非鍵屬性都不傳遞依賴于任何候選鍵,則R稱為第三范式的關(guān)系模式,記為3NF。增強(qiáng)型第三范式的定義設(shè)關(guān)系模式R是1NF,如果對(duì)于R的每個(gè)函數(shù)依賴X→Y且YX時(shí),X必為候選鍵,則R是BCNF。第三講:物理結(jié)構(gòu)設(shè)計(jì)

與數(shù)據(jù)庫維護(hù)5.6物理結(jié)構(gòu)設(shè)計(jì)首先是確定數(shù)據(jù)庫的物理結(jié)構(gòu),然后是對(duì)所設(shè)計(jì)的物理結(jié)構(gòu)設(shè)計(jì)進(jìn)行評(píng)價(jià)。5.6.1數(shù)據(jù)庫物理設(shè)計(jì)的內(nèi)容與方法關(guān)系數(shù)據(jù)庫的物理模型的設(shè)計(jì)相對(duì)于其它模型是較為簡(jiǎn)單的。為確定數(shù)據(jù)庫的物理結(jié)構(gòu),必須了解下面的幾個(gè)問題:⑴了解給定的DBMS的功能和特點(diǎn),特別是系統(tǒng)提供的存取方法和存儲(chǔ)結(jié)構(gòu)。⑵熟悉系統(tǒng)的應(yīng)用環(huán)境,了解所設(shè)計(jì)的應(yīng)用系統(tǒng)中各部分的重要程度、處理頻率及對(duì)響應(yīng)時(shí)間的要求。設(shè)計(jì)目標(biāo):滿足主要應(yīng)用的性能要求。對(duì)于數(shù)據(jù)庫的查詢事務(wù),需要得到如下信息:①查詢的關(guān)系②查詢條件所涉及的屬性③連接條件所涉及的屬性④查詢的投影屬性對(duì)于事務(wù)更新需要得到如下信息:①被更新的關(guān)系②每個(gè)關(guān)系上的更新操作條件所涉及的屬性③修改操作要改變的屬性值5.6.1數(shù)據(jù)庫物理設(shè)計(jì)的內(nèi)容與方法(續(xù)1)⑶

了解外存設(shè)備的特性。如分塊原則、分塊的大小、設(shè)備的I/O特性等,因?yàn)槲锢斫Y(jié)構(gòu)的設(shè)計(jì)要通過外存設(shè)備來實(shí)現(xiàn)。通常對(duì)于關(guān)系數(shù)據(jù)庫物理設(shè)計(jì)而言,物理設(shè)計(jì)的主要內(nèi)容包括:①為關(guān)系模式選取存取方法②設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲(chǔ)結(jié)構(gòu)5.6.2關(guān)系模式存取方法選擇在關(guān)系數(shù)據(jù)庫中,選取存取路徑主要是確定如何建立索引。1.索引存取方法的選擇面臨的困難——確定對(duì)關(guān)系的哪些屬性列建立索引,哪些建立組合索引,哪些建立唯一索引等。索引選擇是數(shù)據(jù)庫物理設(shè)計(jì)的基本問題之一,也是較為困難的:⑴數(shù)據(jù)庫中的各個(gè)關(guān)系表不是相互孤立的,要考慮相互之間的影響。⑵在數(shù)據(jù)庫中有多個(gè)關(guān)系表存在,在設(shè)計(jì)索引時(shí)不僅要考慮關(guān)系在單獨(dú)參與操作時(shí)的代價(jià),還要考慮它在參與連接操作時(shí)的代價(jià)。⑶索引的解空間太大,即可能的索引組合情況太大。⑷訪問路徑與DBMS的優(yōu)化策略有關(guān)。⑸設(shè)計(jì)目標(biāo)復(fù)雜:目標(biāo)是要減少CPU的代價(jià)、I/O代價(jià)、存儲(chǔ)代價(jià)⑹代價(jià)的估算比較困難在手工設(shè)計(jì)時(shí),一般根據(jù)原則和需求說明來選擇方案,在計(jì)算機(jī)輔助設(shè)計(jì)工具中,也是先根據(jù)一般的原則和需求確定索引選擇范圍,再用簡(jiǎn)化的代價(jià)比較法來選擇所謂的最優(yōu)方案。2.普通索引的選取原則:凡是滿足下列條件之一,可以考慮建立在有關(guān)屬性上索引:⑴主鍵和外鍵上一般建立索引。這樣做的好處有:①有利于主鍵唯一性的檢查。②有助于引用完整性約束檢查。③可以加快以主鍵和外鍵作為連接條件屬性的連接操作。⑵如果一個(gè)(或一組)屬性經(jīng)常在查詢條件中出現(xiàn)。⑶如果一個(gè)屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù)⑷如果一個(gè)(或一組)屬性常在連接操作的連接條件中出現(xiàn)⑸對(duì)于以讀為主或只讀的關(guān)系表,只要需要且存儲(chǔ)空間允許,可以多建索引。凡是滿足下列條件之一的屬性或表,不宜建立索引⑴不出現(xiàn)或很少出現(xiàn)在查詢條件中的屬性⑵屬性值可能取值的個(gè)數(shù)很少的屬性。⑶屬性值分布嚴(yán)重不均的屬性。⑷經(jīng)常更新的屬性和表。⑸屬性的值過長(zhǎng)。⑹太小的表。注:非聚簇索引需要大量的硬盤空間和內(nèi)存,另外在提高查詢速度的同時(shí)會(huì)降低向表中插入數(shù)據(jù)和更新數(shù)據(jù)的速度。3.聚簇索引的選取聚簇——把某個(gè)屬性或?qū)傩越M(稱為聚簇碼)上具有相同值的元組集中在一個(gè)物理塊內(nèi)或物理上相鄰的區(qū)域內(nèi),以提高某些數(shù)據(jù)的訪問速度。聚簇索引可以大大提高按聚簇碼進(jìn)行查詢的效率。聚簇功能不但適用于單個(gè)關(guān)系,也適用于經(jīng)常進(jìn)行連接操作的多個(gè)關(guān)系,大大提高連接操作的效率。一個(gè)關(guān)系中只能加入一個(gè)聚簇建立聚簇索引原則:⑴對(duì)經(jīng)常在一起進(jìn)行連接操作的關(guān)系可以建立聚簇。⑵一個(gè)關(guān)系的一個(gè)(或一組)屬性上的值重復(fù)率很高,則此關(guān)系可建立聚簇索引。⑶一個(gè)關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中,則該單個(gè)關(guān)系可建立聚簇索引。在建立聚簇后,應(yīng)檢查候選聚簇中的關(guān)系,取消其中不必要的關(guān)系①?gòu)木鄞刂袆h除經(jīng)常進(jìn)行全表掃描的關(guān)系。②從聚簇中刪除更新操作遠(yuǎn)多于連接操作的關(guān)系。③不同的聚簇中可能包含相同的關(guān)系,一個(gè)關(guān)系可以在某一個(gè)聚簇中,但不能同時(shí)在多個(gè)聚簇中。注意:聚簇只能提高某些應(yīng)用的性能,而建立與維護(hù)聚簇的開銷也是相當(dāng)大的。5.6.3確定系統(tǒng)的存儲(chǔ)結(jié)構(gòu)確定數(shù)據(jù)的存放位置和存儲(chǔ)結(jié)構(gòu)要綜合考慮存?。簳r(shí)間、存儲(chǔ)空間利用率和維護(hù)代價(jià)三個(gè)方面。1.確定數(shù)據(jù)的存放位置將數(shù)據(jù)的易變部分和穩(wěn)定部分、經(jīng)常存取部分和不經(jīng)常存取的部分分開存放,可以放在不同的關(guān)系表中或放在不同的外存空間等。應(yīng)遵守以下原則:⑴減少訪問磁盤時(shí)的沖突,提高I/O的并行性⑵分散熱點(diǎn)數(shù)據(jù),均衡I/O負(fù)載⑶保證關(guān)鍵數(shù)據(jù)的快速訪問,緩解系統(tǒng)的瓶頸2.確定系統(tǒng)的配置參數(shù)參數(shù)包括:同時(shí)使用數(shù)據(jù)庫用戶的個(gè)數(shù),同時(shí)打開數(shù)據(jù)庫對(duì)象數(shù),緩沖區(qū)大小和個(gè)數(shù),物理塊的大小,數(shù)據(jù)庫的大小,數(shù)據(jù)增長(zhǎng)率的設(shè)置等。在系統(tǒng)運(yùn)行時(shí)還要根據(jù)系統(tǒng)實(shí)際運(yùn)行情況做進(jìn)一步的調(diào)整,以期達(dá)到較佳的系統(tǒng)性能。5.6.4評(píng)價(jià)物理結(jié)構(gòu)在物理設(shè)計(jì)中設(shè)計(jì)人員要考慮的因素很多,如時(shí)間和空間的效率、維護(hù)代價(jià)和各種用戶的要求,在綜合考慮的基礎(chǔ)上會(huì)產(chǎn)生多種方案,在對(duì)這些方案進(jìn)行認(rèn)真細(xì)致評(píng)價(jià)的基礎(chǔ)上,從中選取一個(gè)較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)。評(píng)價(jià)物理數(shù)據(jù)庫的方法完全依賴于所選定的DBMS,主要是從定量估算各種方案的存取時(shí)間、存儲(chǔ)空間和維護(hù)代價(jià)著手,對(duì)估算的結(jié)果進(jìn)行權(quán)衡和比較,從中選取一個(gè)較優(yōu)的合理物理結(jié)構(gòu)。如果該系統(tǒng)不符合用戶的需求,則需要修改設(shè)計(jì)。5.7數(shù)據(jù)庫的實(shí)施和維護(hù)5.7.1數(shù)據(jù)庫的實(shí)施步驟:1.定義數(shù)據(jù)庫結(jié)構(gòu)2.?dāng)?shù)據(jù)的載入數(shù)據(jù)入庫操作步驟:⑴篩選數(shù)據(jù)⑵輸入數(shù)據(jù)⑶檢驗(yàn)數(shù)據(jù)3.應(yīng)用程序的編碼與調(diào)試5.7.2數(shù)據(jù)庫試運(yùn)行包括下列內(nèi)容:⑴功能測(cè)試⑵性能測(cè)試組織數(shù)據(jù)入庫策略:⑴要采取分批輸入數(shù)據(jù)的方法⑵首先調(diào)試好系統(tǒng)的轉(zhuǎn)儲(chǔ)和恢復(fù)功能并對(duì)數(shù)據(jù)庫中的數(shù)據(jù)做好備份工作5.7.3數(shù)據(jù)庫的運(yùn)行和維護(hù)維護(hù)工作主要由DBA完成,具體內(nèi)容:1.日常維護(hù)2.定期維護(hù)3.故障維護(hù)具體的作法是:⑴建立日志文件,每當(dāng)發(fā)生增、刪、改時(shí)就自動(dòng)將要處理的原始記錄加載到日志文件中。⑵建立復(fù)制副本用以恢復(fù)。思考題物理結(jié)構(gòu)設(shè)計(jì)的內(nèi)容及其一般原則。試述普通索引選擇的一般原則。哪些情況不宜建立索引?試述聚簇索引選擇的一般原則。數(shù)據(jù)庫維護(hù)工作主要包括哪些?什么是數(shù)據(jù)庫的再組織和重構(gòu)造?第四講:數(shù)據(jù)庫應(yīng)用的結(jié)構(gòu)

和開發(fā)環(huán)境ODBC5.8.1數(shù)據(jù)庫應(yīng)用模型數(shù)據(jù)庫應(yīng)用程序按功能分成三個(gè)部分:用戶界面、事務(wù)邏輯、數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)庫應(yīng)用模型——數(shù)據(jù)庫應(yīng)用系統(tǒng)中的界面表示層、數(shù)據(jù)存儲(chǔ)層、業(yè)務(wù)處理層和網(wǎng)絡(luò)通信之間的布局與分布關(guān)系。1.單層應(yīng)用模型應(yīng)用程序沒有將用戶界面、事務(wù)邏輯和數(shù)據(jù)存取分開。2.兩層應(yīng)用模型好處:通過允許多用戶同時(shí)存取相同的數(shù)據(jù),來自一個(gè)用戶的數(shù)據(jù)更新可立即被連接到服務(wù)器上的所有用戶訪問。缺點(diǎn):當(dāng)客戶端的數(shù)目增加時(shí),服務(wù)器端的負(fù)載會(huì)逐漸加大,直到系統(tǒng)承受不了眾多的客戶請(qǐng)求而崩潰;任何改動(dòng)都將是費(fèi)錢、費(fèi)時(shí)、費(fèi)力的。客戶/服務(wù)器Client/Server模型,幾種形式:用戶界面用戶界面業(yè)務(wù)邏輯業(yè)務(wù)邏輯2數(shù)據(jù)存取用戶界面業(yè)務(wù)邏輯1業(yè)務(wù)邏輯數(shù)據(jù)存取數(shù)據(jù)存取客戶端服務(wù)器端多層應(yīng)用模型優(yōu)點(diǎn):客戶端程序不能直接直接存取數(shù)據(jù),從而為數(shù)據(jù)的安全性和完整性帶來保障。應(yīng)用系統(tǒng)的每一個(gè)部分都可以被單獨(dú)修改而不會(huì)影響到另外兩個(gè)部分各應(yīng)用層并不一定要分布在網(wǎng)絡(luò)上不同機(jī)器的物理位置上。為應(yīng)用程序的生命周期帶來諸多好處:可復(fù)用性、適應(yīng)性、易管理性、可維護(hù)性、可伸縮性。客戶端應(yīng)用程序更為小巧,一般管理費(fèi)用降低,但通信量會(huì)大大增加。數(shù)據(jù)商業(yè)規(guī)則客戶1數(shù)據(jù)庫服務(wù)器應(yīng)用服務(wù)器客戶2客戶3B/S結(jié)構(gòu)的三個(gè)部分⑴客戶機(jī)⑵服務(wù)器⑶連接件,如:開放的數(shù)據(jù)庫連接ODBC、JDBC等客戶/服務(wù)器結(jié)構(gòu)模型技術(shù)特征:①功能分離。服務(wù)器是服務(wù)提供者,客戶機(jī)是服務(wù)消費(fèi)者。②資源共享。一個(gè)服務(wù)器可以同時(shí)為多個(gè)客戶機(jī)提供服務(wù)。③定位透明。服務(wù)器可以駐留在與客戶機(jī)相同或不同的處理器上,需要時(shí),C/S平臺(tái)可通過重新定向服務(wù)來掩蓋服務(wù)器位置。④服務(wù)封裝??蛻魴C(jī)只需知道服務(wù)器接口,不必了解邏輯。⑤可擴(kuò)展性。支持水平和垂直擴(kuò)展。5.8.2數(shù)據(jù)庫應(yīng)用開發(fā)環(huán)境ODBC1.ODBC編程接口概述四個(gè)部分:⑴應(yīng)用程序(Application)應(yīng)用程序負(fù)責(zé)處理和調(diào)用ODBC函數(shù)。其主要任務(wù)如下:①連接數(shù)據(jù)庫②提交SQL語句給數(shù)據(jù)庫③檢索結(jié)果并處理錯(cuò)誤④提交或回滾SQL語句的事務(wù)⑤斷開與數(shù)據(jù)庫的連接⑵驅(qū)動(dòng)程序管理器(DriverManager)⑶驅(qū)動(dòng)程序⑷數(shù)據(jù)源(DataSource)程序開發(fā)者只要調(diào)用ODBCAPI和SQL語句,至于數(shù)據(jù)的底層操作則由不同類型的數(shù)據(jù)庫的驅(qū)動(dòng)程序來完成。ODBC體系結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用程序驅(qū)動(dòng)程序管理器ODBC驅(qū)動(dòng)程序1ODBC驅(qū)動(dòng)程序2ODBC驅(qū)動(dòng)程序3數(shù)據(jù)源1數(shù)據(jù)源2數(shù)據(jù)源3數(shù)據(jù)源NODBC驅(qū)動(dòng)程序N客戶端服務(wù)器端2.ODBC數(shù)據(jù)源的配置⑴在控制面板中,“管理工具”“數(shù)據(jù)源(ODBC)”打開“ODBC數(shù)據(jù)源管理器”各選項(xiàng)卡的功能介紹如下:①用戶DSN顯示當(dāng)前登陸用戶使用的數(shù)據(jù)源清單②系統(tǒng)DSN顯示可以由系統(tǒng)中全部用戶使用的數(shù)據(jù)源清單③文件DSN顯示了允許連接到一個(gè)文件提供程序的數(shù)據(jù)源清單。它們可以在所有安裝了相同驅(qū)動(dòng)程序的用戶中被共享。④驅(qū)動(dòng)程序顯示所有已經(jīng)安裝了的驅(qū)動(dòng)程序。⑤跟蹤允許跟蹤某個(gè)給定的ODBC驅(qū)動(dòng)程序的所有活動(dòng),并記錄到日志文件。⑥連接池用來設(shè)置連接ODBC驅(qū)動(dòng)程序的等待時(shí)間⑦關(guān)于顯示有關(guān)ODBC核心組件的信息。⑵“系統(tǒng)DSN”“添加”“創(chuàng)建數(shù)據(jù)源”在“名稱”列表框中選驅(qū)動(dòng)程序,如SQLServer(這時(shí)創(chuàng)建SQLServer數(shù)據(jù)源)。2.ODBC數(shù)據(jù)源的配置(續(xù)1)⑶單擊“完成”按鈕,打開“建立新的數(shù)據(jù)源到SQLServer”對(duì)話框,。在名稱文本框中填寫數(shù)據(jù)源的名稱如test,在“服務(wù)器”下拉列表中選要連接到的服務(wù)器。⑷單擊“下一步”按鈕,選擇驗(yàn)證模式。⑸單擊“下一步”按鈕,選擇連接的默認(rèn)數(shù)據(jù)庫。⑹單擊“下一步”按鈕,系統(tǒng)提示用戶設(shè)置驅(qū)動(dòng)程序使用的語言、字符集區(qū)域和日志文件等。⑺單擊“完成”,出現(xiàn)“ODBCMicrosoftSQLServer安裝”,單擊“測(cè)試數(shù)據(jù)源”按鈕,測(cè)試數(shù)據(jù)源是否正確。若顯示測(cè)試成功的消息,單擊確定按鈕回到“ODBCMicrosoftSQLServer安裝”對(duì)話框。⑻單擊“確定”按鈕,即創(chuàng)建了一個(gè)系統(tǒng)數(shù)據(jù)源test。3.ODBC接口函數(shù)ODBC接口函數(shù)按照它們的作用可以分成如下七組:·分配和釋放環(huán)境句柄、連接句柄、語句句柄·連接·執(zhí)行SQL語句·接收結(jié)果·事務(wù)控制·錯(cuò)誤處理和其他雜項(xiàng)ODBC接口函數(shù)分組⑴分配和釋放這一組函數(shù)用于分配必要的句柄:連接句柄、環(huán)境句柄和語句句柄。環(huán)境句柄定義一個(gè)數(shù)據(jù)庫環(huán)境,連接句柄定義一個(gè)數(shù)據(jù)庫連接,語句句柄定義一條SQL語句。ODBC環(huán)境句柄是其它所有ODBC資源句柄的父句柄。釋放函數(shù)用于釋放各種句柄以及與每個(gè)句柄相關(guān)聯(lián)的內(nèi)存。如SQLAllocEnv函數(shù)用于獲取ODBC環(huán)境句柄。⑵連接利用這些函數(shù),用戶能夠與服務(wù)器建立連接,如SQLConnect。⑶執(zhí)行SQL語句用戶對(duì)ODBC數(shù)據(jù)源的存取操作,都是通過SQL語句來實(shí)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論