數(shù)據(jù)庫系統(tǒng)原理(12)新_第1頁
數(shù)據(jù)庫系統(tǒng)原理(12)新_第2頁
數(shù)據(jù)庫系統(tǒng)原理(12)新_第3頁
數(shù)據(jù)庫系統(tǒng)原理(12)新_第4頁
數(shù)據(jù)庫系統(tǒng)原理(12)新_第5頁
已閱讀5頁,還剩189頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第十二章數(shù)據(jù)庫設(shè)計步驟數(shù)據(jù)庫設(shè)計不同階段不同人員的角色數(shù)據(jù)庫設(shè)計階段系統(tǒng)分析員數(shù)據(jù)庫設(shè)計人員應(yīng)用開發(fā)人員部分用戶代表需求分析階段負(fù)責(zé)核心人員參與概念結(jié)構(gòu)設(shè)計階段核心人員負(fù)責(zé)參與邏輯結(jié)構(gòu)設(shè)計階段核心人員負(fù)責(zé)物理結(jié)構(gòu)設(shè)計階段核心人員負(fù)責(zé)數(shù)據(jù)庫實施階段核心人員負(fù)責(zé)參與數(shù)據(jù)庫運行和維護階段核心人員負(fù)責(zé)參與參與第十二章數(shù)據(jù)庫設(shè)計步驟12.1需求分析12.2概念結(jié)構(gòu)設(shè)計12.3邏輯結(jié)構(gòu)設(shè)計12.4數(shù)據(jù)庫的物理設(shè)計12.5數(shù)據(jù)庫實施12.6數(shù)據(jù)庫運行與維護12.7小結(jié)12.1需求分析12.1.1需求分析的任務(wù)和過程12.1.2數(shù)據(jù)流圖12.1.3數(shù)據(jù)字典12.1.4需求分析的注意點12.1需求分析(續(xù))需求分析就是分析用戶的需要與要求需求分析是設(shè)計數(shù)據(jù)庫的起點。需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實際要求,將直接影響到后面各個階段的設(shè),并影響到設(shè)計結(jié)果是否合理和實用。12.1.1需求分析的任務(wù)和過程一、需求分析的任務(wù)二、需求分析的重點三、需求分析的難點四、需求分析的工作過程一、需求分析的任務(wù)調(diào)查應(yīng)用領(lǐng)域,對各種應(yīng)用的信息要求和操作要求進行詳細分析,形成需求說明書。詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求。確定新系統(tǒng)的功能。新系統(tǒng)必須考慮可能的擴充和改變,不能按當(dāng)前需求來設(shè)計數(shù)據(jù)庫。二、需求分析的重點調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。

信息要求用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。數(shù)據(jù)庫中存儲哪些數(shù)據(jù)。處理要求對處理功能的要求、響應(yīng)時間的要求、處理方式的要求(批處理/聯(lián)機處理)。對數(shù)據(jù)安全性與完整性的要求。三、需求分析的難點確定用戶最終需求的難點用戶缺少計算機知識,無法確定計算機能為做什么,不能做什么,無法一次準(zhǔn)確地表達需求,因此需求往往不斷變化。設(shè)計人員缺少用戶的專業(yè)知識,不易理解用戶的真正需求,甚至誤解用戶的需求。新的硬件、軟件技術(shù)的出現(xiàn)也會使用戶需求發(fā)生變化。解決方法與用戶不斷交流,確定用戶的實際需求。四、需求分析的工作過程四、需求分析過程(續(xù))1.調(diào)查組織機構(gòu)情況目的:宏觀地了解給定應(yīng)用領(lǐng)域的組織機構(gòu)。結(jié)果:組織機構(gòu)圖。方法:與該組織的有關(guān)領(lǐng)導(dǎo)座談,由這些領(lǐng)導(dǎo)提供組織機構(gòu)組成情況?;蛘咛峁┙M織機構(gòu)圖和部門職責(zé)的文檔。四、需求分析過程(續(xù))2.熟悉各部門的業(yè)務(wù)活動情況目的:

調(diào)查各部門的業(yè)務(wù)活動情況,對現(xiàn)行系統(tǒng)的功能和所需信息有明確的認(rèn)識。內(nèi)容:包括了解各個部門輸入和使用什么數(shù)據(jù);如何加工處理這些數(shù)據(jù);輸出什么信息,輸出到什么部門;輸出結(jié)果的格式是什么,這是調(diào)查的重點。常用的調(diào)查方法跟班作業(yè):親身參加業(yè)務(wù)工作了解業(yè)務(wù)活動的情況,此方法較準(zhǔn)確了解用戶需求,但耗費時間。開調(diào)查會:與用戶座談了解業(yè)務(wù)活動情況及用戶需求。可以相互啟發(fā)。詢問:對某些調(diào)查中的問題,找專人詢問。設(shè)計調(diào)查表請用戶填寫:如果調(diào)查表設(shè)計合理,此方法很有效,易于為用戶接受。查閱記錄:查閱與原系統(tǒng)有關(guān)的數(shù)據(jù)記錄。四、需求分析過程(續(xù))四、需求分析過程(續(xù))3.分析用戶需求信息要求處理要求安全性與完整性要求結(jié)構(gòu)化系統(tǒng)分析和設(shè)計方法(StructuredAnalysisandDesignTechnique,簡稱SADT方法)SADT采用自頂向下、最上層的系統(tǒng)組織機構(gòu)入手,逐層分解的方式分析系統(tǒng)。數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。四、需求分析過程(續(xù))4.確定新系統(tǒng)的邊界對前面調(diào)查的結(jié)果進行初步分析;確定哪些功能由計算機或準(zhǔn)備讓計算機完成;哪些活動由人工完成;由計算機完成的功能就是新系統(tǒng)實現(xiàn)的功能。5.形成需求說明書作為以后各個階段設(shè)計的依據(jù)。12.1需求分析12.1.1需求分析的任務(wù)和過程12.1.2數(shù)據(jù)流圖12.1.3數(shù)據(jù)字典12.1.4需求分析的注意點12.1.2數(shù)據(jù)流圖一、功能分解二、數(shù)據(jù)流圖三、處理過程定義四、數(shù)據(jù)存儲定義五、數(shù)據(jù)處理定義六、數(shù)據(jù)庫操作的定義一、功能分解SADT(結(jié)構(gòu)化系統(tǒng)分析與設(shè)計技術(shù))中心問題是把功能逐層分解成多個子功能,同時進行相應(yīng)數(shù)據(jù)分析與分解。P4第二層分解頂層P1P0第一層分解P41P42P3P2二、數(shù)據(jù)流圖數(shù)據(jù)流圖用來表示現(xiàn)行系統(tǒng)的信息流動和加工處理的詳細情況,是現(xiàn)行系統(tǒng)的一種邏輯抽象,獨立于系統(tǒng)的實現(xiàn)。數(shù)據(jù)流圖的繪制建立在SADT的基礎(chǔ)上,采取自上而下的的方法。數(shù)據(jù)流圖使用符號數(shù)據(jù)處理數(shù)據(jù)存儲數(shù)據(jù)流數(shù)據(jù)源點或終點二、數(shù)據(jù)流圖(續(xù))1.首先把任何一個系統(tǒng)都抽象為:數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)存儲信息要求數(shù)據(jù)來源處理數(shù)據(jù)輸出處理要求二、數(shù)據(jù)流圖(續(xù))2.分解處理功能和數(shù)據(jù)(1)分解處理功能:

將處理功能的具體內(nèi)容分解為若干子功能,將子功能繼續(xù)分解,直到把工作過程表達清楚為止。(2)分解數(shù)據(jù):在處理功能的同時,其所用的數(shù)據(jù)也逐級分解,形成數(shù)據(jù)流圖,數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關(guān)系。(3)表達方法:處理過程:用判定表或判定樹來描述。數(shù)據(jù):用數(shù)據(jù)字典來描述。三、處理過程定義(1)考察數(shù)據(jù)流圖中的每個數(shù)據(jù)處理:確定設(shè)計的數(shù)據(jù)庫系統(tǒng)是否應(yīng)該而且可能支持這個處理過程。如果支持,列入支持應(yīng)用的范圍。(2)對每個處理過程進行嚴(yán)格定義:包括處理過程名、處理功能描述、處理要求、輸人數(shù)據(jù)、輸出數(shù)據(jù)等。三、處理過程(續(xù))處理功能描述簡要說明該處理過程用來做什么(而不是怎么做)。處理要求的描述包括處理頻度要求,如單位時間里處理多少事務(wù)、處理數(shù)據(jù)量、響應(yīng)時間等。這些處理要求是后面物理設(shè)計的輸入及性能評價的標(biāo)準(zhǔn)。編號處理過程名處理功能描述處理要求輸人數(shù)據(jù)輸出數(shù)據(jù)處理過程定義表四、數(shù)據(jù)存儲目的:確定最終數(shù)據(jù)庫需要存儲哪些信息。數(shù)據(jù)存儲定義以數(shù)據(jù)流圖為基礎(chǔ)。(1)考察數(shù)據(jù)流圖中每個數(shù)據(jù)存儲信息,確定其是否應(yīng)該而且可能由數(shù)據(jù)庫存儲(2)定義每個數(shù)據(jù)存儲。編號數(shù)據(jù)存儲名數(shù)據(jù)項說明建立該數(shù)據(jù)存儲的處理過程存取該數(shù)據(jù)存儲的處理過程數(shù)據(jù)量…數(shù)據(jù)存儲定義表五、數(shù)據(jù)處理/數(shù)據(jù)存儲矩陣定義用來定義處理過程與數(shù)據(jù)存儲之間的關(guān)系。創(chuàng)建、插入、更新、刪除、查詢和無關(guān)系。這些關(guān)系可以用圖或矩陣表示。橫欄:數(shù)據(jù)處理過程名,豎欄:數(shù)據(jù)存儲名字。處理過程1處理過程2處理過程3處理過程4…數(shù)據(jù)存儲1CIURU數(shù)據(jù)存儲2CUD數(shù)據(jù)存儲3RCIUD………………CRUD表六、數(shù)據(jù)庫操作的定義一個處理過程中通常包括一個或多個數(shù)據(jù)庫操作。在一個數(shù)據(jù)處理中每一個操作的輸入數(shù)據(jù)項和輸出數(shù)據(jù)項、操作的數(shù)據(jù)對象、類型、操作的功能、數(shù)據(jù)操作的選擇條件、連接條件、操作的數(shù)據(jù)量、使用頻率、要求的響應(yīng)時間等。可用圖表的形式表示數(shù)據(jù)庫操作的定義。DBIPO圖任務(wù)名:編號:所屬應(yīng)用號:輸入數(shù)據(jù)項:輸出數(shù)據(jù)項:功能:數(shù)據(jù)庫操作定義注釋:響應(yīng)時間:使用頻率;操作記錄數(shù):需求分析例子實例一:假設(shè)我們要開發(fā)一個學(xué)校管理系統(tǒng)。1.經(jīng)過可行性分析和初步需求調(diào)查,抽象出該系統(tǒng)最高層數(shù)據(jù)流圖,該系統(tǒng)由教師管理子系統(tǒng)、學(xué)生管理子系統(tǒng)、后勤管理子系統(tǒng)組成,每個子系統(tǒng)分別配備一個開發(fā)小組。2.進一步細化各個子系統(tǒng):學(xué)生管理子系統(tǒng)開發(fā)小組通過進行需求調(diào)查,明確該子系統(tǒng)的主要功能是學(xué)籍管理和課程管理,包括學(xué)生報到、入學(xué)、畢業(yè)的管理,學(xué)生上課情況的管理。通過信息流程分析和數(shù)據(jù)收集后,他們生成了該子系統(tǒng)的數(shù)據(jù)流圖。學(xué)校管理系統(tǒng)最高層數(shù)據(jù)流圖…某學(xué)校管理信息系統(tǒng)教師管理子系統(tǒng)學(xué)生管理子系統(tǒng)后勤管理子系統(tǒng)學(xué)籍管理課程管理…….學(xué)籍管理系統(tǒng)(a)第一層數(shù)據(jù)流圖學(xué)生招生辦公室1.0報到2.0入學(xué)3.0畢業(yè)體檢表新生名單教師檔案班主任宿舍描述學(xué)生檔案離校手續(xù)畢業(yè)生名單分配工作學(xué)生檔案核對通知書檢查體檢結(jié)果工作安排學(xué)生名單宿舍分配清單同意/不同意接收報到證體檢結(jié)果名單錄取通知書新生登記表宿舍地址、班級、班主任畢業(yè)證書、派遣證記錄已畢業(yè)畢業(yè)生名單工作分配清單離校手續(xù)清單畢業(yè)生登記表學(xué)生基本情況宿舍分配宿舍描述教師描述同意/不同意入學(xué)報到證學(xué)籍管理系統(tǒng)數(shù)據(jù)流圖(b)報到學(xué)生1.1核對錄取通知書1.2核對體檢結(jié)果1.3同意入學(xué)招生辦公室體檢表新生名單審核同意或不同意同意/不同意已核對的錄取通知書已核對的體檢結(jié)果體檢結(jié)果名單錄取通知書學(xué)籍管理系統(tǒng)數(shù)據(jù)流圖(c)入學(xué)學(xué)生2.1填登記表2.2分配班級2.3分配宿舍班主任教師檔案學(xué)生檔案宿舍分配清單已登好的登記表報到證、班級號教師描述學(xué)生情況報到證學(xué)生基本情況宿舍描述宿舍分配學(xué)生名單宿舍描述學(xué)籍管理系統(tǒng)數(shù)據(jù)流圖(d)畢業(yè)學(xué)生3.1發(fā)畢業(yè)證書3.2退宿舍3.3辦理離校手續(xù)3.4領(lǐng)派遣證畢業(yè)生名單成績冊辦公室宿舍描述學(xué)生檔案離校手續(xù)分配工作畢業(yè)證書畢業(yè)證畢業(yè)證退宿舍證明離校手續(xù)單準(zhǔn)備工作分配細節(jié)工作分配情況離校手續(xù)清單記錄已畢業(yè)宿舍安排清單能否獲得學(xué)位畢業(yè)生名單課程管理的數(shù)據(jù)流圖學(xué)生教師1.0選課2.0上課3.0考試教師檔案課程介紹學(xué)生描述修課名單課堂要求教科書教室安排考場安排試卷成績冊平時成績填選課單同意/不同意選修課程介紹選課單考場安排試卷課單成績課單成績課單考場安排出試卷,評定考試成績選擇教科書,評定平時成績教室安排核對選課單同意/不同意接收學(xué)生名單學(xué)生已修課任課教師介紹教室安排,教科書考場安排,通知考試成績允許參加考試課堂守則考試教科書名課堂安排考試工廠管理信息系統(tǒng)例子實例二:假設(shè)我們要開發(fā)一個工廠管理信息系統(tǒng)。1.經(jīng)過可行性分析和初步需求調(diào)查,抽象出該系統(tǒng)最高層數(shù)據(jù)流圖,該系統(tǒng)由物質(zhì)管理、銷售管理、勞動人事管理等子系統(tǒng)組成,每個子系統(tǒng)分別配備一個開發(fā)小組。2.進一步細化各個子系統(tǒng)。 其中銷售子系統(tǒng)的主要功能是:處理顧客和銷售員送來的訂單;工廠是根據(jù)訂貨安排生產(chǎn)的;交出貨物同時開出發(fā)票;收到顧客付款后,根據(jù)發(fā)票存根和信貸情況進行應(yīng)收款處理。通過詳細的信息流程分析和數(shù)據(jù)收集后,生成了該子系統(tǒng)的數(shù)據(jù)流圖。12.1需求分析12.1.1需求分析的任務(wù)和過程12.1.2數(shù)據(jù)流圖12.1.3數(shù)據(jù)字典12.1.4需求分析的注意點12.1.3數(shù)據(jù)字典一、數(shù)據(jù)字典的用途二、數(shù)據(jù)字典的內(nèi)容一、數(shù)據(jù)字典的用途數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合數(shù)據(jù)字典是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果數(shù)據(jù)字典在數(shù)據(jù)庫設(shè)計中占有很重要的地位二、數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)項數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)流數(shù)據(jù)存儲處理過程數(shù)據(jù)項是數(shù)據(jù)的最小組成單位若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。⒈數(shù)據(jù)項數(shù)據(jù)項是不可再分的數(shù)據(jù)單位對數(shù)據(jù)項的描述

數(shù)據(jù)項描述={數(shù)據(jù)項名,數(shù)據(jù)項含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項的邏輯關(guān)系}取值范圍、與其他數(shù)據(jù)項的邏輯關(guān)系定義了數(shù)據(jù)的完整性約束條件。⒉數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。一個數(shù)據(jù)結(jié)構(gòu)可以由若干個數(shù)據(jù)項組成,也可以由若干個數(shù)據(jù)結(jié)構(gòu)組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)混合組成。對數(shù)據(jù)結(jié)構(gòu)的描述

數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:{數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)}}⒊數(shù)據(jù)流

數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂健?shù)據(jù)流的描述

數(shù)據(jù)流描述={數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}數(shù)據(jù)流來源:來自哪個過程。數(shù)據(jù)流去向:將到哪個過程去。平均流量:單位時間里的傳輸次數(shù)。高峰期流量則:高峰時期的數(shù)據(jù)流量。數(shù)據(jù)項例子例:學(xué)生學(xué)籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)據(jù)項,以“學(xué)號”為例:

數(shù)據(jù)項:學(xué)號

含義說明:唯一標(biāo)識每個學(xué)生

別名:學(xué)生編號

類型:字符型

長度:

8

取值范圍:00000000至99999999

取值含義:前兩位標(biāo)別該學(xué)生所在年級,后六位按順序編號

與其他數(shù)據(jù)項的邏輯關(guān)系:數(shù)據(jù)結(jié)構(gòu)例子數(shù)據(jù)結(jié)構(gòu)

以“學(xué)生”為例 “學(xué)生”是該系統(tǒng)中的一個核心數(shù)據(jù)結(jié)構(gòu):

數(shù)據(jù)結(jié)構(gòu):學(xué)生

含義說明:是學(xué)籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個學(xué)生的有關(guān)信息組成:學(xué)號,姓名,性別,年齡,所在系,年級數(shù)據(jù)流例子數(shù)據(jù)流“體檢結(jié)果”可如下描述:

數(shù)據(jù)流:體檢結(jié)果

說明:學(xué)生參加體格檢查的最終結(jié)果

數(shù)據(jù)流來源:體檢

數(shù)據(jù)流去向:批準(zhǔn)

組成:

……

平均流量:

……

高峰期流量:……12.1需求分析12.1.1需求分析的任務(wù)和過程12.1.2數(shù)據(jù)流圖12.1.3數(shù)據(jù)字典12.1.4需求分析的注意點12.1.4需求分析的注意點用戶參與的重要性用原型法來幫助用戶確定他們的需求預(yù)測系統(tǒng)的未來改變12.2概念結(jié)構(gòu)設(shè)計將用戶在第一步形成的信息需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計(是關(guān)鍵)。12.2.1概念結(jié)構(gòu)設(shè)計的方法與步驟12.2.2局部視圖設(shè)計12.2.3視圖的集成12.2.1概念結(jié)構(gòu)設(shè)計的方法與步驟設(shè)計概念結(jié)構(gòu)的四類方法自頂向下首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化。自底向上首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。12.2.1概念結(jié)構(gòu)設(shè)計的方法與步驟(續(xù))逐步擴張首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)混合策略將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。設(shè)計概念結(jié)構(gòu)的策略1自頂向下策略需求全局概念模式概念模式概念模式…概念模式概念模式概念模式概念模式……………自底向上策略

設(shè)計概念結(jié)構(gòu)的策略2需求全局概念模式概念模式概念模式概念模式概念模式概念模式概念模式…………需求需求需求逐步擴張策略

設(shè)計概念結(jié)構(gòu)的策略3核心概念結(jié)構(gòu)全局概念結(jié)構(gòu)……核心需求核心需求12.2概念結(jié)構(gòu)設(shè)計(續(xù))概念結(jié)構(gòu)設(shè)計步驟:抽象數(shù)據(jù)并設(shè)計局部視圖。集成局部視圖,得到全局的概念結(jié)構(gòu)。需求分析DFDDD分E-R圖總E-R圖數(shù)據(jù)抽象、局部視圖的設(shè)計視圖集成返回用戶征求意見直到滿意為止12.2概念結(jié)構(gòu)設(shè)計12.2.1概念結(jié)構(gòu)設(shè)計的方法與步驟12.2.2局部視圖設(shè)計12.2.3視圖的集成12.2.2局部視圖設(shè)計首先對需求分析階段收集到的數(shù)據(jù)按照E-R模型的要求進行分類、組織,形成實體、實體的屬性,碼、實體之間的聯(lián)系類型,設(shè)計分E-R圖。步驟:選擇局部應(yīng)用逐一設(shè)計分E-R圖⒈選擇局部應(yīng)用需求分析階段,已用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個系統(tǒng)。設(shè)計分E-R圖需要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個適當(dāng)層次的數(shù)據(jù)流圖,讓這組圖中每一部分對應(yīng)一個局部應(yīng)用,然后以這一層次的數(shù)據(jù)流圖為出發(fā)點,設(shè)計分E-R圖。1.選擇局部應(yīng)用(續(xù))通常以中層數(shù)據(jù)流圖作為設(shè)計分E-R圖的依據(jù)。原因:高層數(shù)據(jù)流圖只能反映系統(tǒng)的概貌。中層數(shù)據(jù)流圖能較好地反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成。低層數(shù)據(jù)流圖過細。⒉逐一設(shè)計分E-R圖任務(wù)標(biāo)定局部應(yīng)用中的實體、屬性、碼,實體間的聯(lián)系。將各局部應(yīng)用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標(biāo)定各局部應(yīng)用中的實體、實體的屬性、標(biāo)識實體的碼,確定實體之間的聯(lián)系及其類型(1:1,1:n,m:n)2.逐一設(shè)計分E-R圖(續(xù))設(shè)計分E-R圖的步驟以數(shù)據(jù)字典為出發(fā)點定義E-R圖。數(shù)據(jù)字典中的“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)流”和“數(shù)據(jù)存儲”等已是若干屬性的有意義的聚合。按實體和屬性的準(zhǔn)則進行必要的調(diào)整。現(xiàn)實世界的事物能作為屬性對待的,盡量作為屬性對待。2.逐一設(shè)計分E-R圖(續(xù))例:學(xué)籍管理局部應(yīng)用中主要涉及的實體包括學(xué)生、宿舍、檔案材料、班級、班主任。實體之間的聯(lián)系:由于一個宿舍可以住多個學(xué)生,而一個學(xué)生只能住在某一個宿舍中,因此宿舍與學(xué)生之間是1:n的聯(lián)系。由于一個班級往往有若干名學(xué)生,而一個學(xué)生只能屬于一個班級,因此班級與學(xué)生之間也是1:n的聯(lián)系。2.逐一設(shè)計分E-R圖(續(xù))由于班主任同時還要教課,因此班主任與學(xué)生之間存在指導(dǎo)聯(lián)系,一個班主任要教多名學(xué)生,而一個學(xué)生只對應(yīng)一個班主任,因此班主任與學(xué)生之間也是1:n的聯(lián)系。而學(xué)生和他自己的檔案材料之間,班級與班主任之間都是1:1的聯(lián)系。學(xué)籍管理局部應(yīng)用的分E-R圖草圖:

學(xué)籍管理局部應(yīng)用的E-R草圖班主任班級教室管理上課指導(dǎo)組成宿舍學(xué)生檔案材料住宿歸檔11mn11nn1n112.逐一設(shè)計分E-R圖(續(xù))接下來需要進一步斟酌該E-R圖,做適當(dāng)調(diào)整。在一般情況下,性別通常作為學(xué)生實體的屬性,但在本局部應(yīng)用中,由于宿舍分配與學(xué)生性別有關(guān),應(yīng)該把性別作為實體對待。數(shù)據(jù)存儲“學(xué)生登記表”,由于是手工填寫,供存檔使用,其中有用的部分已轉(zhuǎn)入學(xué)生檔案材料中,因此這里就不必作為實體了。最后得到學(xué)籍管理局部應(yīng)用的分E-R圖:學(xué)籍管理局部應(yīng)用的分E-R圖指導(dǎo)11班主任班級教室管理上課組成性別學(xué)生檔案材料擁有歸檔11mn11nn1n11宿舍住宿為節(jié)省篇幅,該E-R圖省略了各個實體的屬性描述。學(xué)籍管理系統(tǒng)分E-R圖屬性各個實體的屬性描述為:

學(xué)生:{學(xué)號,姓名,出生日期}

性別:{性別}

檔案材料:{檔案號,……}

班級:{班級號,學(xué)生人數(shù)}

班主任:{職工號,姓名,性別,是否為優(yōu)秀班主任}宿舍:{宿舍編號,地址,人數(shù)}

其中有下劃線的屬性為實體的碼。課程管理局部應(yīng)用的分E-R圖同樣方法可以得到課程管理局部應(yīng)用的分E-R圖各實體的屬性分別為:

學(xué)生:{姓名,學(xué)號,性別,年齡,所在系,年級,平均成績}

課程:{課程號,課程名,學(xué)分}

教師:{職工號,姓名,性別,職稱}

教科書:{書號,書名,價錢}

教室:{教室編號,地址,容量}課程管理部分的分E-R圖教室開設(shè)課程選修學(xué)生成績講授教學(xué)教科書教師11mn111nmn12.2概念結(jié)構(gòu)設(shè)計12.2.1概念結(jié)構(gòu)設(shè)計的方法與步驟12.2.2局部視圖設(shè)計12.2.3視圖的集成12.2.3視圖的集成各個局部視圖即分E-R圖建立好后,還需要對它們進行合并,集成為一個整體的數(shù)據(jù)概念結(jié)構(gòu)即總E-R圖。12.2.3視圖的集成(續(xù))視圖集成的兩種方式:一次集成一次集成多個分E-R圖通常用于局部視圖比較簡單時逐步累積式首先集成兩個局部視圖(通常是比較關(guān)鍵的兩個局部視圖)以后每次將一個新的局部視圖集成進來12.2.3視圖的集成(續(xù))集成局部E-R圖的步驟1.合并2.修改與重構(gòu)12.2.3視圖的集成(續(xù))一、合并分E-R圖,生成初步E-R圖各分E-R圖存在沖突各個局部應(yīng)用所面向的問題不同 由不同的設(shè)計人員進行設(shè)計

各個分E-R圖之間必定會存在許多不一致的地方合并分E-R圖的主要工作與關(guān)鍵所在:合理消除各分E-R圖的沖突一、合并分E-R圖,生成初步E-R圖(續(xù))沖突的種類屬性沖突命名沖突結(jié)構(gòu)沖突⒈屬性沖突兩類屬性沖突屬性域沖突:屬性值的類型、取值范圍或取值集合不同。

屬性取值單位沖突。

例1:某些部門以出生日期表示學(xué)生的年齡,而另一些部門用整數(shù)形式表示學(xué)生的年齡。例1:學(xué)生的身高,有的以米為單位,有的以厘米為單位,有的以尺為單位。屬性沖突的解決方法:通常用討論、協(xié)商等行政手段加以解決。例:A將教室稱為房間;B將學(xué)生宿舍稱為房間⒉命名沖突兩類命名沖突同名異義:不同意義的對象在不同的局部應(yīng)用中具有相同的名字

異名同義(一義多名):同一意義的對象在不同的局部應(yīng)用中具有不同的名字命名沖突可能發(fā)生在屬性級、實體級、聯(lián)系級上。其中屬性的命名沖突更為常見。例:A把教科書稱為課本;B把教科書稱為教材命名沖突的解決方法:

通過討論、協(xié)商等行政手段加以解決。⒊結(jié)構(gòu)沖突三類結(jié)構(gòu)沖突同一對象在不同應(yīng)用中具有不同的抽象。例1:“課程”在某一局部應(yīng)用中被當(dāng)作實體,在另一局部應(yīng)用中則被當(dāng)作屬性。解決方法:通常是把屬性變換為實體或把實體變換為屬性,使同一對象具有相同的抽象。變換時要遵循兩個準(zhǔn)則。3.結(jié)構(gòu)沖突(續(xù))同一實體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同。產(chǎn)生原因:不同的局部應(yīng)用關(guān)心的是該實體的不同側(cè)面。解決方法:

使該實體的屬性取各分E-R圖中屬性的并集,再適當(dāng)設(shè)計屬性的次序。3.結(jié)構(gòu)沖突(續(xù))學(xué)生學(xué)號姓名性別平均成績(a)在局部應(yīng)用A中3.結(jié)構(gòu)沖突(續(xù))學(xué)生學(xué)號姓名出生日期年級(b)在局部應(yīng)用B中所在系3.結(jié)構(gòu)沖突(續(xù))學(xué)生學(xué)號姓名政治面貌(c)在局部應(yīng)用C中3.結(jié)構(gòu)沖突(續(xù))學(xué)生政治面貌學(xué)號出生日期年級(d)合并后所在系平均成績姓名性別3.結(jié)構(gòu)沖突(續(xù))實體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型例1:實體E1與E2在局部應(yīng)用A中是多對多聯(lián)系,而在局部應(yīng)用B中是一對多的。例2:在局部應(yīng)用X中E1與E2發(fā)生聯(lián)系,而在局部應(yīng)用Y中E1、E2、E3三者之間有聯(lián)系。解決方法:

根據(jù)應(yīng)用語義對實體聯(lián)系的類型進行綜合或調(diào)整。合并分E-R圖,生成初步E-R圖實例例:生成學(xué)校管理系統(tǒng)的初步E-R圖以合并學(xué)籍管理局部視圖,課程管理局部視圖為例這兩個分E-R圖存在著多方面的沖突:學(xué)籍管理局部視圖課程管理局部視圖部視圖合并分E-R圖,生成初步E-R圖實例(1)班主任實際上也屬于教師,也就是說學(xué)籍管理中的班主任實體與課程管理中的教師實體在一定程度上屬于異名同義,可以應(yīng)將學(xué)籍管理中的班主任實體與課程管理中的教師實體統(tǒng)一稱為教師,統(tǒng)一后教師實體的屬性構(gòu)成為:

教師:{職工號,姓名,性別,職稱,是否為優(yōu)秀班主任}合并分E-R圖,生成初步E-R圖實例(續(xù))(2)將班主任改為教師后,教師與學(xué)生之間的聯(lián)系在兩個局部視圖中呈現(xiàn)兩種不同的類型:一種是學(xué)籍管理中教師與學(xué)生之間的指導(dǎo)聯(lián)系一種是課程管理中教師與學(xué)生之間的教學(xué)聯(lián)系由于指導(dǎo)聯(lián)系實際上可以包含在教學(xué)聯(lián)系之中,因此可以將這兩種聯(lián)系綜合為教學(xué)聯(lián)系。合并分E-R圖,生成初步E-R圖實例(續(xù))(3)性別在兩個局部應(yīng)用中具有不同的抽象,它在學(xué)籍管理中為實體,在課程管理中為屬性,按照前面提到的兩個原則,在合并后的E-R圖中性別只能作為實體,否則它無法與宿舍實體發(fā)生聯(lián)系。合并分E-R圖,生成初步E-R圖實例(續(xù))(4)在兩個局部E-R圖中,學(xué)生實體屬性組成及次序都存在差異,應(yīng)將所有屬性綜合,并重新調(diào)整次序。假設(shè)調(diào)整結(jié)果為:

學(xué)生:{學(xué)號,姓名,出生日期,年齡,所在系,年級,平均成績}解決上述沖突后,學(xué)籍管理分E-R圖與課程管理分E-R圖合并為:1n教師班級上課組成性別學(xué)生檔案材料擁有歸檔mnnm111n1n11宿舍住宿教室開設(shè)課程選修成績講授教學(xué)教科書11nm11mn管理學(xué)生管理子系統(tǒng)的初步E-R圖二、修改與重構(gòu)1.冗余2.消除冗余的方法二、修改與重構(gòu)(續(xù))基本任務(wù)消除不必要的冗余,設(shè)計生成基本E-R圖合并初步E-R圖分E-R圖可能存在冗余的數(shù)據(jù)和冗余的實體間聯(lián)系基本E-R圖消除不必要的冗余1.冗余冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù), 冗余的聯(lián)系是指可由其他聯(lián)系導(dǎo)出的聯(lián)系。

冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫維護增加困難并不是所有的冗余數(shù)據(jù)與冗余聯(lián)系都必須加以消除,有時為了提高某些應(yīng)用的效率,不得不以冗余信息作為代價。1.冗余(續(xù))設(shè)計數(shù)據(jù)庫概念結(jié)構(gòu)時,哪些冗余信息必須消除,哪些冗余信息允許存在,需要根據(jù)用戶的整體需求來確定。消除不必要的冗余后的初步E-R圖稱為基本E-R圖。2.消除冗余的方法1.分析方法以數(shù)據(jù)字典和數(shù)據(jù)流圖為依據(jù),根據(jù)數(shù)據(jù)字典中關(guān)于數(shù)據(jù)項之間邏輯關(guān)系的說明來消除冗余。

例,教師工資單中包括該教師的基本工資、各種補貼、應(yīng)扣除的房租水電費以及實發(fā)工資。由于實發(fā)工資可以由前面各項推算出來,因此可以去掉,在需要查詢實發(fā)工資時根據(jù)基本工資、各種補貼、應(yīng)扣除的房租水電費數(shù)據(jù)臨時生成。2.消除冗余的方法(續(xù))如果是為了提高效率,人為地保留了一些冗余數(shù)據(jù),則應(yīng)把數(shù)據(jù)字典中數(shù)據(jù)關(guān)聯(lián)的說明作為完整性約束條件。一種更好的方法是把冗余數(shù)據(jù)定義在視圖中。2.消除冗余的方法(續(xù))2.規(guī)范化理論函數(shù)依賴的概念提供了消除冗余聯(lián)系的形式化工具。學(xué)生管理子系統(tǒng)初步E-R圖中的

冗余數(shù)據(jù)和冗余聯(lián)系冗余數(shù)據(jù)和冗余聯(lián)系:(1)學(xué)生實體中的年齡屬性可以由出生日期推算出來,屬于冗余數(shù)據(jù),應(yīng)該去掉。減少了產(chǎn)生數(shù)據(jù)不一致的機會。

學(xué)生:

{學(xué)號,姓名,出生日期,所在系,年級,平均成績}冗余數(shù)據(jù)和冗余聯(lián)系(續(xù))(2)教室實體與班級實體的上課聯(lián)系可以由教室與課程之間的開設(shè)聯(lián)系、課程與學(xué)生之間的選修聯(lián)系、學(xué)生與班級之間的組成聯(lián)系三者推導(dǎo)出來,因此屬于冗余聯(lián)系,可以消去。冗余數(shù)據(jù)和冗余聯(lián)系(續(xù))(3)學(xué)生實體中的平均成績可以從選修聯(lián)系中的成績屬性中推算出來由于應(yīng)用中需要經(jīng)常查詢某個學(xué)生的平均成績,每次都進行這種計算效率就會太低,因此為提高效率,保留該冗余數(shù)據(jù)??啥x一個觸發(fā)器來保證學(xué)生的平均成績等于該學(xué)生各科成績的平均值。任何一科成績修改后,或該學(xué)生學(xué)了新的科目并有成績后,就觸發(fā)該觸發(fā)器去修改該學(xué)生的平均成績屬性值。修改和重構(gòu)后的學(xué)生管理子系統(tǒng)基本E-R圖1n教師班級組成性別學(xué)生檔案材料擁有歸檔mn111n1n11宿舍住宿教室開設(shè)課程選修成績講授教學(xué)教科書11nm11mn管理第十二章數(shù)據(jù)庫設(shè)計步驟12.1需求分析12.2概念結(jié)構(gòu)設(shè)計12.3邏輯結(jié)構(gòu)設(shè)計12.4數(shù)據(jù)庫的物理設(shè)計12.5數(shù)據(jù)庫實施12.6數(shù)據(jù)庫運行與維護12.7小結(jié)12.3邏輯結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)是獨立于任何DBMS數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)設(shè)計是把概念結(jié)構(gòu)設(shè)計階段設(shè)計完成的基本E-R圖轉(zhuǎn)化為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。12.3邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計的任務(wù)概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ)。將概念結(jié)構(gòu)進一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,以能夠用某一DBMS實現(xiàn)用戶需求。主要工作E-R圖向關(guān)系模型的轉(zhuǎn)換數(shù)據(jù)模型的優(yōu)化12.3邏輯結(jié)構(gòu)設(shè)計(續(xù))邏輯結(jié)構(gòu)設(shè)計轉(zhuǎn)化為一般數(shù)據(jù)模型轉(zhuǎn)化為特定DBMS支持下數(shù)據(jù)模型優(yōu)化模型概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫物理設(shè)計基本E-R圖轉(zhuǎn)換規(guī)則特定DBMS的特點與限制優(yōu)化方法如規(guī)范化理論邏輯模型12.3邏輯結(jié)構(gòu)設(shè)計(續(xù))概念結(jié)構(gòu)基本E-R圖關(guān)系數(shù)據(jù)模型優(yōu)化的數(shù)據(jù)模型轉(zhuǎn)換規(guī)則優(yōu)化方法邏輯結(jié)構(gòu)設(shè)計步驟12.3.1E-R模型向關(guān)系模型轉(zhuǎn)換解決的問題:將E-R圖轉(zhuǎn)換為關(guān)系模型;將實體、實體的屬性和實體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式;并確定這些關(guān)系模式的屬性和碼。12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))轉(zhuǎn)換原則⒈一個實體型轉(zhuǎn)換為一個關(guān)系模式。關(guān)系的屬性:實體型的屬性關(guān)系的碼:實體型的碼學(xué)生學(xué)號出生日期年級所在系平均成績姓名例:學(xué)生實體可以轉(zhuǎn)換為如下關(guān)系模式:學(xué)生(學(xué)號,姓名,出生日期,所在系,年級,平均成績)12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))⒉實體間的聯(lián)系一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。1)轉(zhuǎn)換為一個獨立的關(guān)系模式關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的候選碼:每個實體的碼均是該關(guān)系的候選碼2)與某一端對應(yīng)的關(guān)系模式合并合并后關(guān)系的屬性:加入對應(yīng)關(guān)系的碼和聯(lián)系本身的屬性合并后關(guān)系的碼:不變12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))注意:從理論上講,1:1聯(lián)系可以與任意一端對應(yīng)的關(guān)系模式合并。但有時,與不同的關(guān)系模式合并效率會大不一樣。因此究竟應(yīng)該與哪端的關(guān)系模式合并需要依應(yīng)用的具體情況而定。由于連接操作是最費時的操作,所以一般應(yīng)以盡量減少連接操作為目標(biāo)。12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應(yīng)當(dāng)關(guān)系模式合并。1)轉(zhuǎn)換為一個獨立的關(guān)系模式關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性。關(guān)系的碼:n端實體的碼。2)與n端對應(yīng)的關(guān)系模式合并合并后關(guān)系的屬性:在n端關(guān)系中加入1端關(guān)系的碼和聯(lián)系本身的屬性合并后關(guān)系的碼:不變可以減少系統(tǒng)中的關(guān)系個數(shù),一般情況下更傾向于采用這種方法。12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“組成”聯(lián)系為1:n聯(lián)系。 將其轉(zhuǎn)換為關(guān)系模式的兩種方法:

1)使其成為一個獨立的關(guān)系模式:

2)將其學(xué)生關(guān)系模式合并:

組成(學(xué)號,班級號)學(xué)生(學(xué)號,姓名,出生日期,所在系,年級,班級號,平均成績)12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性。關(guān)系的碼:各實體碼的組合。例,“選修”聯(lián)系是一個m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號與課程號為關(guān)系的組合碼:選修(學(xué)號,課程號,成績)12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))關(guān)系的屬性:與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的碼:各實體碼的組合例,“講授”聯(lián)系是一個三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號、職工號和書號為關(guān)系的組合碼:

講授(課程號,職工號,書號)三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))具有相同碼的關(guān)系模式可合并。

目的:減少系統(tǒng)中的關(guān)系個數(shù)。

合并方法:將其中一個關(guān)系模式的全部屬性加入到另一個關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當(dāng)調(diào)整屬性的次序。12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“擁有”關(guān)系模式:擁有(學(xué)號,性別)學(xué)生關(guān)系模式:學(xué)生(學(xué)號,姓名,出生日期,所在系,年級,班級號,平均成績)都以學(xué)號為碼,可以將它們合并為一個關(guān)系模式:學(xué)生(學(xué)號,姓名,性別,出生日期,所在系,年級,班級號,平均成績)12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))按照上述原則,學(xué)生管理子系統(tǒng)中的18個實體和聯(lián)系可以轉(zhuǎn)換為下列關(guān)系模型:

學(xué)生(學(xué)號,姓名,性別,出生日期,所在系,年級,班級號,平均成績,檔案號) 性別(性別,宿舍編號)

宿舍(宿舍編號,地址,人數(shù))

班級(班級號,學(xué)生人數(shù))

教師(職工號,姓名,性別,職稱,班級號,是否為優(yōu)秀班主任)

12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))

教學(xué)(職工號,學(xué)號)

課程(課程號,課程名,學(xué)分,教室號)

選修(學(xué)號,課程號,成績)

教科書(書號,書名,價錢)

教室(教室編號,地址,容量)

講授(課程號,教師號,書號)

檔案材料(檔案號,……)12.3.1E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))該關(guān)系模型由12個關(guān)系模式組成。其中:學(xué)生關(guān)系模式包含了“擁有”、“組成”和“歸檔”三個聯(lián)系所對應(yīng)的關(guān)系模式教師關(guān)系模式包含了“管理”聯(lián)系所對應(yīng)的關(guān)系模式;宿舍關(guān)系模式包含了“住宿”聯(lián)系所對應(yīng)的關(guān)系模式;課程關(guān)系模式包含了“開設(shè)”聯(lián)系所對應(yīng)的關(guān)系模式。12.3.2數(shù)據(jù)模型的優(yōu)化數(shù)據(jù)庫邏輯設(shè)計的結(jié)果不是唯一的。初步數(shù)據(jù)模型設(shè)計出來后,還要做適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))優(yōu)化數(shù)據(jù)模型的方法⒈確定數(shù)據(jù)依賴按需求分析階段所得到的語義,分別寫出每個關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴。

12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))例,課程關(guān)系模式內(nèi)部存在下列數(shù)據(jù)依賴:課程號→課程名課程號→學(xué)分課程號→教室號選修關(guān)系模式中存在下列數(shù)據(jù)依賴:(學(xué)號,課程號)→成績

12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))學(xué)生關(guān)系模式中存在下列數(shù)據(jù)依賴:學(xué)號→姓名學(xué)號→性別學(xué)號→出生日期學(xué)號→所在系 學(xué)號→年級學(xué)號→班級號學(xué)號→平均成績學(xué)號→檔案號12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))⒉對于各個關(guān)系模式之間的數(shù)據(jù)依賴進行極小化處理,消除冗余的聯(lián)系。⒊按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。

例如經(jīng)過分析可知,課程關(guān)系模式屬于BC范式。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))⒋按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,分析對于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對它們進行合并或分解。并不是規(guī)范化程度越高的關(guān)系就越優(yōu)。當(dāng)一個查詢中經(jīng)常涉及到兩個或多個關(guān)系模式的屬性時,需進行聯(lián)接運算,而聯(lián)系運算的代價是高的,關(guān)系模型低效的主要因為做聯(lián)接運算引起的,因此,第二范式甚至第一范式也許是最好的。非BCNF的關(guān)系模式雖然從理論上分析會存在不同程度的更新異常,但如果在實際應(yīng)用中對此關(guān)系模式只是查詢,并不執(zhí)行更新操作,則就不會產(chǎn)生實際影響。對于一個具體應(yīng)用來說,到底規(guī)范化進行到什么程度,需要權(quán)衡響應(yīng)時間和潛在問題兩者的利弊才能決定。一般說來,第三范式就足夠了。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))例:在關(guān)系模式學(xué)生成績單(學(xué)號,英語,數(shù)學(xué),語文,平均成績)

中存在下列函數(shù)依賴:學(xué)號→英語學(xué)號→數(shù)學(xué)學(xué)號→語文學(xué)號→平均成績

(英語,數(shù)學(xué),語文)→平均成績12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))顯然有:學(xué)號→(英語,數(shù)學(xué),語文)

因此該關(guān)系模式中存在傳遞函數(shù)依賴,是2NF關(guān)系。雖然平均成績可以由其他屬性推算出來,但如果應(yīng)用中需要經(jīng)常查詢學(xué)生的平均成績,為提高效率,仍可保留該冗余數(shù)據(jù),對關(guān)系模式不再做進一步分解。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))⒌

按照需求分析階段得到的各種應(yīng)用對數(shù)據(jù)處理的要求,對關(guān)系模式進行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲空間的利用率。常用分解方法水平分解垂直分解12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))水平分解什么是水平分解把(基本)關(guān)系的元組分為若干子集合,定義每個子集合為一個子關(guān)系,以提高系統(tǒng)的效率。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))水平分解的適用范圍1.滿足“80/20原則”的應(yīng)用80/20原則:一個大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20%把經(jīng)常使用的數(shù)據(jù)分解出來,形成一個子關(guān)系,可以減少查詢的數(shù)據(jù)量。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))水平分解的適用范圍2.并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù)如果關(guān)系R上具有n個事務(wù),而且多數(shù)事務(wù)存取的數(shù)據(jù)不相交,則R可分解為少于或等于n個子關(guān)系,使每個事務(wù)存取的數(shù)據(jù)對應(yīng)一個關(guān)系。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))垂直分解什么是垂直分解把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式。垂直分解的原則經(jīng)常在一起使用的屬性從R中分解出來形成一個子關(guān)系模式。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))垂直分解的優(yōu)點可以提高某些事務(wù)的效率垂直分解的缺點可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。12.3.2數(shù)據(jù)模型的優(yōu)化(續(xù))垂直分解的適用范圍取決于分解后R上的所有事務(wù)的總效率是否得到了提高。進行垂直分解的方法簡單情況:直觀分解復(fù)雜情況:用模式分解算法垂直分解必須不損失關(guān)系模式的語義(保持無損連接性和保持函數(shù)依賴)。12.3.3設(shè)計用戶子模式定義數(shù)據(jù)庫模式主要是從系統(tǒng)的時間效率、空間效率、易維護等角度出發(fā)。定義用戶外模式時應(yīng)該更注重考慮用戶的習(xí)慣與方便。包括三個方面:

12.3.3設(shè)計用戶子模式(續(xù))(1)使用更符合用戶習(xí)慣的別名合并各分E-R圖曾做了消除命名沖突的工作,以使數(shù)據(jù)庫系統(tǒng)中同一關(guān)系和屬性具有唯一的名字。這在設(shè)計數(shù)據(jù)庫整體結(jié)構(gòu)時是非常必要的。但對于某些局部應(yīng)用,由于改用了不符合用戶習(xí)慣的屬性名,可能會使他們感到不方便,12.3.3設(shè)計用戶子模式(續(xù))因此在設(shè)計用戶的子模式時可以重新定義某些屬性名,使其與用戶習(xí)慣一致。當(dāng)然,為了應(yīng)用的規(guī)范化,我們也不應(yīng)該一味地遷就用戶。例:負(fù)責(zé)學(xué)籍管理的用戶習(xí)慣于稱教師模式的職工號為教師編號。因此可以定義視圖,在視圖中職工號重定義為教師編號12.3.3設(shè)計用戶子模式(續(xù))

(2)針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性的要求。例:教師關(guān)系模式中包括職工號、姓名、性別、出生日期、婚姻狀況、學(xué)歷、學(xué)位、政治面貌、職稱、職務(wù)、工資、工齡、教學(xué)效果等屬性。

學(xué)籍管理應(yīng)用只能查詢教師的職工號、姓名、性別、職稱數(shù)據(jù);

課程管理應(yīng)用只能查詢教師的職工號、姓名、性別、學(xué)歷、學(xué)位、職稱、教學(xué)效果數(shù)據(jù);教師管理應(yīng)用則可以查詢教師的全部數(shù)據(jù)。12.3.3設(shè)計用戶子模式(續(xù))定義兩個外模式:教師_學(xué)籍管理(職工號,姓名,性別,職稱)教師_課程管理(工號,姓名,性別,學(xué)歷,學(xué)位,職稱,教學(xué)效果)授權(quán)學(xué)籍管理應(yīng)用只能訪問教師_學(xué)籍管理視圖授權(quán)課程管理應(yīng)用只能訪問教師_課程管理視圖授權(quán)教師管理應(yīng)用能訪問教師這樣就可以防止用戶非法訪問本來不允許他們查詢的數(shù)據(jù),保證了系統(tǒng)的安全性。12.3.3設(shè)計用戶子模式(續(xù))(3)簡化用戶對系統(tǒng)的使用如果某些局部應(yīng)用中經(jīng)常要使用某些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖。第十二章數(shù)據(jù)庫設(shè)計步驟12.1需求分析12.2概念結(jié)構(gòu)設(shè)計12.3邏輯結(jié)構(gòu)設(shè)計12.4數(shù)據(jù)庫的物理設(shè)計12.5數(shù)據(jù)庫實施12.6數(shù)據(jù)庫運行與維護12.7小結(jié)12.4數(shù)據(jù)庫的物理設(shè)計數(shù)據(jù)庫的物理設(shè)計概念數(shù)據(jù)庫的物理結(jié)構(gòu):數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法。數(shù)據(jù)庫的物理設(shè)計:為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程。數(shù)據(jù)庫物理設(shè)計的步驟步驟1:確定數(shù)據(jù)庫的物理結(jié)構(gòu)步驟2:對物理結(jié)構(gòu)進行評價,評價的重點是時間和空間效率如果評價結(jié)果滿足原設(shè)計要求則可進入到物理實施階段,否則,就需要重新設(shè)計或修改物理結(jié)構(gòu),有時甚至要返回邏輯設(shè)計階段修改數(shù)據(jù)模型。

數(shù)據(jù)庫物理設(shè)計確定數(shù)據(jù)庫的物理結(jié)構(gòu)評價數(shù)據(jù)庫的物理結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)庫實施物理模型邏輯模型12.4.1數(shù)據(jù)庫物理設(shè)計的內(nèi)容為關(guān)系模式選擇存取方法,建立存取路徑。確定物理存儲結(jié)構(gòu),即設(shè)計關(guān)系、索引、聚簇、日志、備份等數(shù)據(jù)的存儲安排和存儲結(jié)構(gòu)。確定系統(tǒng)配置。12.4.2關(guān)系模式存取方法選擇DBMS常用存取方法索引方法,目前主要是B+樹索引方法聚簇(Cluster)方法HASH方法一、存取方法概述DBMS常用存取方法1.索引方法:目前主要是B+樹索引方法、基于函數(shù)的索引、反向索引、位映射索引。2.Hash方法:是用Hash函數(shù)來存儲和存取關(guān)系記錄的方法。即:指定某關(guān)系上一組屬性A作為Hash碼,然后對該Hash碼定義一個函數(shù),關(guān)系記錄的存儲地址由Hash(a)來決定,a是記錄在屬性A上的值。一、存取方法概述(續(xù))3.聚簇(Cluster)方法:為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性(稱為聚簇碼)具有相同值的元組集中存放在連續(xù)的物理塊中稱為聚簇。聚簇既適用于單個關(guān)系獨立聚簇,也適用于經(jīng)常進行連接操作的多個關(guān)系。一個數(shù)據(jù)庫可以建立多個聚簇,一個關(guān)系只能加入一個聚簇一、存取方法概述(續(xù))聚簇的局限性1.聚簇只能提高某些特定應(yīng)用的性能2.建立與維護聚簇的開銷相當(dāng)大對已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動其物理存儲位置,并使此關(guān)系上原有的索引無效,必須重建。當(dāng)一個元組的聚簇碼改變時,該元組的存儲位置也要做相應(yīng)移動。二、存取方法選擇1.索引存取方法的選擇選擇索引存取方法的主要內(nèi)容 根據(jù)應(yīng)用要求確定對哪些屬性列建立索引對哪些屬性列建立組合索引對哪些索引要設(shè)計為唯一索引二、存取方法選擇(續(xù))選擇索引存取方法的一般規(guī)則(建立索引的屬性選擇)若一個(或一組)屬性經(jīng)常在查詢條件中出現(xiàn);若一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù);若一個(或一組)屬性經(jīng)常在連接操作的連接條件中出現(xiàn);二、存取方法選擇(續(xù))索引并不是越多越好,若關(guān)系上更新操作頻繁,則索引不能太多。關(guān)系上定義的索引數(shù)過多會帶來較多額外開銷。維護索引的開銷查找索引的開銷二、存取方法選擇(續(xù))2.HASH存取方法的選擇選擇HASH存取方法的規(guī)則當(dāng)一個關(guān)系滿足下列兩個條件時,可以選擇HASH存取方法該關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等比較選擇條件中。該關(guān)系的大小可預(yù)知,而且變化不大;二、存取方法選擇(續(xù))3.聚簇存取方法的選擇內(nèi)容:確定需要建立多少個聚簇,每個聚簇包含哪些關(guān)系。建立聚簇的基本原則:經(jīng)常一起進行連接操作的關(guān)系若一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中若一個關(guān)系的一組屬性上的值重復(fù)率很高。二、存取方法選擇(續(xù))當(dāng)通過聚簇碼進行訪問或連接是該關(guān)系的主要應(yīng)用,與聚簇碼無關(guān)的其他訪問很少或者是次要的時,可以使用聚簇。尤其當(dāng)SQL語句中包含有與聚簇碼有關(guān)的ORDERBY,GROUPBY,UNION,DISTINCT等子句或短語時,使用聚簇特別有利,可以省去對結(jié)果集的排序操作。12.4.3確定數(shù)據(jù)庫的存儲結(jié)構(gòu)確定數(shù)據(jù)庫物理結(jié)構(gòu)的內(nèi)容1.確定數(shù)據(jù)的存放位置和存儲結(jié)構(gòu)關(guān)系索引聚簇日志備份2.確定系統(tǒng)配置1.確定數(shù)據(jù)的存放位置影響數(shù)據(jù)存放位置和存儲結(jié)構(gòu)的因素硬件環(huán)境應(yīng)用需求存取時間存儲空間利用率維護代價這三個方面常常是相互矛盾的例:消除一切冗余數(shù)據(jù)雖能夠節(jié)約存儲空間和減少維護代價,但往往會導(dǎo)致檢索代價的增加必須進行權(quán)衡,選擇一個折中方案。1.確定數(shù)據(jù)的存放位置(續(xù))基本原則根據(jù)應(yīng)用情況將易變部分與穩(wěn)定部分存取頻率較高部分與存取頻率較低部分分開存放,以提高系統(tǒng)性能1.確定數(shù)據(jù)的存放位置(續(xù))例:數(shù)據(jù)庫數(shù)據(jù)備份、日志文件備份等只在故障恢復(fù)時才使用,數(shù)據(jù)量很大,可考慮存放在磁帶上。如果計算機有多個磁盤,可以將表和索引分別放在不同的磁盤上,在查詢時,由于兩個磁盤驅(qū)動器分別在工作,可以保證物理讀寫速度比較快??梢詫⒈容^大的表分別放在兩個磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效。可以將日志文件與數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤以改進系統(tǒng)的性能。2.確定系統(tǒng)配置DBMS產(chǎn)品一般都提供了一些存儲分配參數(shù)

同時使用數(shù)據(jù)庫的用戶數(shù)同時打開的數(shù)據(jù)庫對象數(shù)使用的緩沖區(qū)長度、個數(shù)時間片大小數(shù)據(jù)庫的大小裝填因子鎖的數(shù)目2.確定系統(tǒng)配置(續(xù))系統(tǒng)都為這些變量賦予了合理的缺省值。但是這些值不一定適合每一種應(yīng)用環(huán)境,在進行物理設(shè)計時,需要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)性能最優(yōu)。

在物理設(shè)計時對系統(tǒng)配置變量的調(diào)整只是初步的,在系統(tǒng)運行時還要根據(jù)系統(tǒng)實際運行情況做進一步的調(diào)整,以期切實改進系統(tǒng)性能。12.4.4評價物理結(jié)構(gòu)評價內(nèi)容:空間效率時間效率維護代價各種用戶要求對數(shù)據(jù)庫物理設(shè)計過程中產(chǎn)生的多種方案進行細致的評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)。評價物理結(jié)構(gòu)(續(xù))評價方法定量估算各種方案存儲空間存取時間維護代價對估算結(jié)果進行權(quán)衡、比較,選擇出一個較優(yōu)的合理的物理結(jié)構(gòu)如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計第十二章數(shù)據(jù)庫設(shè)計步驟12.1需求分析12.2概念結(jié)構(gòu)設(shè)計12.3邏輯結(jié)構(gòu)設(shè)計12.4數(shù)據(jù)庫的物理設(shè)計12.5數(shù)據(jù)庫實施12.6數(shù)據(jù)庫運行與維護12.7小結(jié)12.5數(shù)據(jù)庫的實施數(shù)據(jù)庫實施的工作內(nèi)容用DDL定義數(shù)據(jù)庫結(jié)構(gòu)組織數(shù)據(jù)入庫編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫試運行數(shù)據(jù)庫實施定義數(shù)據(jù)庫結(jié)構(gòu)數(shù)據(jù)裝載數(shù)據(jù)庫試運行數(shù)據(jù)庫物理設(shè)計數(shù)據(jù)庫運行和維護物理模型編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫系統(tǒng)一、定義數(shù)據(jù)庫結(jié)構(gòu)確定了數(shù)據(jù)庫的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)后,就可以用所選用的DBMS提供的數(shù)據(jù)定義語言(DDL)來嚴(yán)格描述數(shù)據(jù)庫結(jié)構(gòu)。

一、定義數(shù)據(jù)庫結(jié)構(gòu)(續(xù))例,對于前面的例子,可以用SQL語句如下定義表結(jié)構(gòu):CREATETABLE學(xué)生

(學(xué)號CHAR(8),

……………);CREATETABLE課程

(

……………);……………一、定義數(shù)據(jù)庫結(jié)構(gòu)(續(xù))接下來是在這些基本表上定義視圖:

CREATEVIEW.... (

…………… ); ……………

如果需要使用聚簇,在建基本表之前,應(yīng)先用CREATECLUSTER語句定義聚族。二、數(shù)據(jù)裝載數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以向數(shù)據(jù)庫中裝載數(shù)據(jù)了。組織數(shù)據(jù)入庫是數(shù)據(jù)庫實施階段最主要的工作。數(shù)據(jù)裝載方法人工方法計算機輔助數(shù)據(jù)入庫二、數(shù)據(jù)裝載(續(xù))人工方法:適用于小型系統(tǒng)步驟1)篩選數(shù)據(jù)。需要裝入數(shù)據(jù)庫中的數(shù)據(jù)通常都分散在各個部門的數(shù)據(jù)文件或原始憑證中,所以首先必須把需要入庫的數(shù)據(jù)篩選出來。2)轉(zhuǎn)換數(shù)據(jù)格式。篩選出來的需要入庫的數(shù)據(jù),其格式往往不符合數(shù)據(jù)庫要求,需要進行轉(zhuǎn)換。

3)輸入數(shù)據(jù)。將轉(zhuǎn)換好的數(shù)據(jù)輸入計算機中。

4)校驗數(shù)據(jù)。檢查輸入的數(shù)據(jù)是否有誤。二、數(shù)據(jù)裝載(續(xù))計算機輔助數(shù)據(jù)入庫:適用于中大型系統(tǒng)步驟1)篩選數(shù)據(jù)2)輸入數(shù)據(jù)。由錄入員將原始數(shù)據(jù)直接輸入計算機中。數(shù)據(jù)輸入子系統(tǒng)應(yīng)提供輸入界面。3)校驗數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)采用多種檢驗技術(shù)檢查輸入數(shù)據(jù)的正確性。二、數(shù)據(jù)裝載(續(xù))4)

轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)根據(jù)數(shù)據(jù)庫系統(tǒng)的要求,從錄入的數(shù)據(jù)中抽取有用成分,對其進行分類,然后轉(zhuǎn)換數(shù)據(jù)格式。抽取、分類和轉(zhuǎn)換數(shù)據(jù)是數(shù)據(jù)輸入子系統(tǒng)的主要工作,也是數(shù)據(jù)輸入子系統(tǒng)的復(fù)雜性所在。5)綜合數(shù)據(jù)。數(shù)據(jù)輸入子系統(tǒng)對轉(zhuǎn)換好的數(shù)據(jù)根據(jù)系統(tǒng)的要求進一步綜合成最終數(shù)據(jù)。三、編制與調(diào)試應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序的設(shè)計應(yīng)該與數(shù)據(jù)設(shè)計并行進行。在數(shù)據(jù)庫實施階段,當(dāng)數(shù)據(jù)庫結(jié)構(gòu)建立好后,就可以開始編制與調(diào)試數(shù)據(jù)庫的應(yīng)用程序。調(diào)試應(yīng)用程序時由于數(shù)據(jù)入庫尚

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論