版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第七章 數(shù)據(jù)庫設(shè)計,7.1 數(shù)據(jù)庫設(shè)計概述7.2 需求分析7.3 概念結(jié)構(gòu)設(shè)計7.4 邏輯結(jié)構(gòu)設(shè)計7.5 數(shù)據(jù)庫的物理設(shè)計7.6 數(shù)據(jù)庫實施和維護7.7 小結(jié),什么是數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是指對于一個給定的應用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫邏輯模式和物理結(jié)構(gòu),并根據(jù)此建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應用需求(信息管理要求和數(shù)據(jù)操作要求)在數(shù)據(jù)庫領(lǐng)域內(nèi),常常把使用數(shù)據(jù)庫的各類系統(tǒng)統(tǒng)
2、稱為數(shù)據(jù)庫應用系統(tǒng)。,7.1 數(shù)據(jù)庫設(shè)計概述,7.1.1 數(shù)據(jù)庫設(shè)計的特點,一、數(shù)據(jù)庫建設(shè)的基本規(guī)律三分技術(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù);二、結(jié)構(gòu)(數(shù)據(jù))設(shè)計和行為(處理)設(shè)計相結(jié)合結(jié)構(gòu)(數(shù)據(jù))設(shè)計:設(shè)計數(shù)據(jù)庫框架或數(shù)據(jù)庫結(jié)構(gòu);行為(處理)設(shè)計:設(shè)計應用程序、事務處理等。三、結(jié)構(gòu)和行為分離的設(shè)計傳統(tǒng)的軟件工程忽視對應用中數(shù)據(jù)語義的分析和抽象,只要有可能就盡量推遲數(shù)據(jù)結(jié)構(gòu)設(shè)計的決策早期的數(shù)據(jù)庫設(shè)計致力于數(shù)據(jù)模型和建模方法研
3、究,忽視了對行為的設(shè)計,結(jié)構(gòu)特性和行為特性結(jié)合起來,7.1.2 數(shù)據(jù)庫設(shè)計方法,一、要求數(shù)據(jù)庫設(shè)計人員應該具備的技術(shù)和知識數(shù)據(jù)庫的基本知識;軟件工程的原理和方法;程序設(shè)計的方法和技巧;數(shù)據(jù)庫的基本知識和設(shè)計技術(shù);應用領(lǐng)域的知識。,二、規(guī)范設(shè)計法(本質(zhì)上看:手工設(shè)計方法)新奧爾良(New Orleans)方法 將數(shù)據(jù)庫設(shè)計分為四個階段(需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計)基于E-R模型的數(shù)據(jù)庫設(shè)計方法3NF的設(shè)計方
4、法ODL方法:面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計方法計算機輔助設(shè)計ORACLE Designer 2000SYBASE PowerDesigner,7.1.3 數(shù)據(jù)庫設(shè)計的基本步驟,一、數(shù)據(jù)庫設(shè)計的準備工作(選定參加設(shè)計的人員)1. 數(shù)據(jù)庫分析設(shè)計人員數(shù)據(jù)庫設(shè)計的核心人員自始至終參與數(shù)據(jù)庫設(shè)計其水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量2. 用戶在數(shù)據(jù)庫設(shè)計中也是舉足輕重的主要參加需求分析和數(shù)據(jù)庫的運行維護用戶積極參與帶來的好處加速數(shù)
5、據(jù)庫設(shè)計提高數(shù)據(jù)庫設(shè)計的質(zhì)量3. 程序員(在系統(tǒng)實施階段參與進來,負責編制程序)4. 操作員(在系統(tǒng)實施階段參與進來,準備軟硬件環(huán)境),⒈需求分析階段⒉概念結(jié)構(gòu)設(shè)計階段⒊邏輯結(jié)構(gòu)設(shè)計階段⒋數(shù)據(jù)庫物理設(shè)計階段⒌數(shù)據(jù)庫實施階段⒍數(shù)據(jù)庫運行和維護階段,準確了解與分析用戶需求(包括數(shù)據(jù)與處理);是整個設(shè)計過程的基礎(chǔ),是最困難、最耗費時間的一步。需求分析是設(shè)計數(shù)據(jù)庫的起點需求分析的結(jié)果是否準確地反映了用戶的實際要求,將直接影
6、響到后面各個階段的設(shè)計,并影響到設(shè)計結(jié)果是否合理和實用,是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵;通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型(E-R圖)。,將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型(關(guān)系數(shù)據(jù)模型);對其進行優(yōu)化。然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖(View),形成數(shù)據(jù)的外模式,為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)根據(jù)DBMS特
7、點和處理的需要,進行物理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式,運用DBMS提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫編制與調(diào)試應用程序組織數(shù)據(jù)入庫并進行試運行,數(shù)據(jù)庫應用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。,設(shè)計一個完善的數(shù)據(jù)庫應用系統(tǒng)往往是上述六個階段的不斷反復。 (如:P202圖7.2),二、數(shù)據(jù)庫設(shè)計的過程(六個階段),設(shè)計特點,在設(shè)計
8、過程中把數(shù)據(jù)庫的設(shè)計和對數(shù)據(jù)庫中數(shù)據(jù)處理的設(shè)計緊密結(jié)合起來將這兩個方面的需求分析、抽象、設(shè)計、實現(xiàn)在各個階段同時進行,相互參照,相互補充,以完善兩方面的設(shè)計設(shè)計過程各個階段的設(shè)計描述:P204圖7.3,7.1.4 數(shù)據(jù)庫設(shè)計過程中的各級模式,7.2 需求分析,7.2.1 需求分析的任務,一、需求分析的任務二、需求分析的重點三、需求分析的難點,一、需求分析的任務,通過詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解
9、原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求。 在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設(shè)計數(shù)據(jù)庫,二、需求分析的重點,需求分析的重點是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。 信息要求用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)由用戶的信息要求可以導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)處理要求對處理功能的要求對處理的響應時間
10、的要求對處理方式的要求(批處理 / 聯(lián)機處理)安全性與完整性要求。,三、需求分析的難點,確定用戶最終需求的難點用戶缺少計算機知識,開始時無法確定計算機究竟能為自己做什么,不能做什么,因此無法一下子準確地表達自己的需求,他們所提出的需求往往不斷地變化。設(shè)計人員缺少用戶的專業(yè)知識,不易理解用戶的真正需求,甚至誤解用戶的需求。新的硬件、軟件技術(shù)的出現(xiàn)也會使用戶需求發(fā)生變化。解決方法設(shè)計人員必須采用有效的方法,與用戶不斷深入地進行
11、交流,才能逐步得以確定用戶的實際需求,7.2.2 需求分析的方法,調(diào)查清楚用戶的實際需求并進行初步分析,與用戶達成共識,然后 進一步分析與表達這些需求。,一、 調(diào)查用戶需求的具體步驟,⑴ 調(diào)查組織機構(gòu)情況(為分析信息流程做準備) 組織部門的組成情況 各部門的職責等⑵ 調(diào)查各部門的業(yè)務活動情況。調(diào)查重點之一。 各個部門輸入和使用什么數(shù)據(jù) 如何加工處理這些數(shù)據(jù) 輸出什么信息 輸出到什么部門 輸出結(jié)果的格式是什么,⑶ 在熟悉
12、業(yè)務活動的基礎(chǔ)上,協(xié)助用戶明確對新系統(tǒng)的各種要求(信息要求、處理要求、完全性與完整性要求)。調(diào)查重點之二。 ⑷ 確定新系統(tǒng)的邊界對前面調(diào)查的結(jié)果進行初步分析,確定哪些功能由計算機完成或?qū)頊蕚渥層嬎銠C完成;確定哪些活動由人工完成。由計算機完成的功能就是新系統(tǒng)應該實現(xiàn)的功能。,常用調(diào)查方法⑴跟班作業(yè)⑵開調(diào)查會⑶請專人介紹⑷詢問⑸設(shè)計調(diào)查表請用戶填寫⑹查閱記錄,二、常用調(diào)查方法,做需求調(diào)查時,往往需要同時采用多種方法,無論
13、使用何種調(diào)查方法,都必須有用戶的積極參與和配合。設(shè)計人員應該和用戶取得共同的語言,幫助不熟悉計算機的用戶建立數(shù)據(jù)庫環(huán)境下的共同概念,并對設(shè)計工作的最后結(jié)果共同承擔責任。,通過親身參加業(yè)務工作了解業(yè)務活動的情況。能比較準確地理解用戶的需求,但比較耗時。,通過與用戶座談來了解業(yè)務活動情況及用戶需求。,對某些調(diào)查中的問題,可以找專人詢問,如果調(diào)查表設(shè)計合理,則很有效,且易于為用戶接受,查閱與原系統(tǒng)有關(guān)的數(shù)據(jù)記錄,三、進一步分析和表達用戶需求
14、,分析和表達用戶的需求的常用方法自頂向下的結(jié)構(gòu)化分析方法(Structured Analysis,簡稱SA方法)SA方法從最上層的系統(tǒng)組織機構(gòu)入手,采用逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng)。,1.首先把任何一個系統(tǒng)都抽象為:,2.分解處理功能和數(shù)據(jù)(1)分解處理功能將處理功能的具體內(nèi)容分解為若干子功能,再將每個子功能繼續(xù)分解,直到把系統(tǒng)的工作過程表達清楚為止。(2)分解數(shù)據(jù)在處理功能逐步分解的同時,其所用的
15、數(shù)據(jù)也逐級分解,形成若干層次的數(shù)據(jù)流圖。 數(shù)據(jù)流圖表達了數(shù)據(jù)和處理過程的關(guān)系。(3)表達方法處理過程:用判定表或判定樹來描述數(shù)據(jù):用數(shù)據(jù)字典來描述3.將分析結(jié)果再次提交給用戶,征得用戶的認可,四、需求分析過程,圖7.6 需求分析過程,7.2.3 數(shù)據(jù)字典和數(shù)據(jù)流圖,一、數(shù)據(jù)字典的用途,數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合數(shù)據(jù)字典是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果數(shù)據(jù)字典在數(shù)據(jù)庫設(shè)計中占有很重要的地位,二、數(shù)據(jù)字典的
16、內(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)系}
17、取值范圍、與其他數(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ù)流來源,
18、 數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)}, 平均流量,高峰期流量}數(shù)據(jù)流來源是說明該數(shù)據(jù)流來自哪個過程數(shù)據(jù)流去向是說明該數(shù)據(jù)流將到哪個過程去平均流量是指在單位時間(每天、每周、每月等)里的傳輸次數(shù)高峰期流量則是指在高峰時期的數(shù)據(jù)流量,⒋ 數(shù)據(jù)存儲,數(shù)據(jù)存儲是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。對數(shù)據(jù)存儲的描述 數(shù)據(jù)存儲描述={數(shù)據(jù)存儲
19、名,說明,編號, 流入的數(shù)據(jù)流 ,流出的數(shù)據(jù)流 , 組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取方式}流入的數(shù)據(jù)流:指出數(shù)據(jù)來源流出的數(shù)據(jù)流:指出數(shù)據(jù)去向數(shù)據(jù)量:每次存取多少數(shù)據(jù),每天(或每小時、每周等)存取幾次等信息存取方法:批處理 / 聯(lián)機處理;檢索 / 更新;順序檢索 / 隨機檢索,⒌ 處理過程,處理過程的具體處理邏輯一般用
20、判定表或判定樹來描述。數(shù)據(jù)字典中只需要描述處理過程的說明性信息處理過程說明性信息的描述 處理過程描述={處理過程名,說明, 輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流}, 處理:{簡要說明}}簡要說明:主要說明該處理過程的功能及處理要求功能:該處理過程用來做什么處理要求:處理頻度要求(如單位時間里處理多少事務,多少數(shù)據(jù)量);響應時間要求等處理要求是
21、后面物理設(shè)計的輸入及性能評價的標準,數(shù)據(jù)字典舉例,例:學生學籍管理子系統(tǒng)的數(shù)據(jù)字典。數(shù)據(jù)項,以“學號”為例: 數(shù)據(jù)項: 學號 含義說明:唯一標識每個學生 別名: 學生編號 類型: 字符型 長度: 8 取值范圍:00000000至99999999 取值含義:前兩位標別該學生所在年級, 后六位按順序編號 與其他數(shù)據(jù)項的邏輯關(guān)系:,數(shù)據(jù)結(jié)構(gòu)
22、 以“學生”為例 “學生”是該系統(tǒng)中的一個核心數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)結(jié)構(gòu):學生 含義說明:是學籍管理子系統(tǒng)的主體數(shù)據(jù)結(jié)構(gòu),定義了一個學生 的有關(guān)信息 組成: 學號,姓名,性別,年齡,所在系,年級,數(shù)據(jù)流“體檢結(jié)果”可如下描述: 數(shù)據(jù)流: 體檢結(jié)果 說明: 學生參加體格檢查的最終結(jié)果 數(shù)據(jù)流來源:體檢 數(shù)據(jù)流去向:批準 組
23、成: …… 平均流量: …… 高峰期流量:……,數(shù)據(jù)存儲“學生登記表”可如下描述: 數(shù)據(jù)存儲: 學生登記表 說明: 記錄學生的基本情況 流入數(shù)據(jù)流:…… 流出數(shù)據(jù)流:…… 組成: …… 數(shù)據(jù)量: 每年3000張 存取方式: 隨機存取,處理過程“分配宿舍”可如下描述: 處理過程:分配宿舍 說明: 為所有新生分配學生宿舍 輸入: 學生,宿舍, 輸出: 宿舍安排
24、 處理: 在新生報到后,為所有新生分配學 生宿舍。要求同一間宿舍只能安排 同一性別的學生,同一個學生只能 安排在一個宿舍中。每個學生的居 住面積不小于3平方米。安排新生 宿舍其處理時間應不超過1
25、5分鐘。,三、數(shù)據(jù)流圖(Data Flow Diagram,簡稱DFD),數(shù)據(jù)流圖是描繪系統(tǒng)邏輯模型的一種網(wǎng)絡(luò)表示(這里的系統(tǒng)可以是自動化系統(tǒng)、手工系統(tǒng)或是兩者混合而成的系統(tǒng))。數(shù)據(jù)流圖通過它的成分及所標明各個成分之間的接口來描述系統(tǒng),數(shù)據(jù)流圖的基本成分是:1.數(shù)據(jù)流;2.文件(數(shù)據(jù)存儲);3.加工(亦稱處理、過程或變換);4.數(shù)據(jù)源點或終點。,是某種已知構(gòu)成的信息所流過的通道,是數(shù)據(jù)的暫存區(qū),是系統(tǒng)之外的人或組織;這些人或組織
26、是單純數(shù)據(jù)的產(chǎn)生源或接收者,是一種將進入數(shù)據(jù)流轉(zhuǎn)化為流出數(shù)據(jù)流的變換,命名原則:要具體,便于區(qū)分,名副其實,反映功用,數(shù)據(jù)流圖常用的符號,1.數(shù)據(jù)流—用箭頭線表示;,2.文件(數(shù)據(jù)存儲)—用開口矩形或兩條平行橫線表示;,3.加工(亦稱處理、過程或變換)—用圓角矩形或圓形表示;,4.數(shù)據(jù)源點或終點—用正方形或立方體表示。,7.3.1 概念結(jié)構(gòu),什么是概念結(jié)構(gòu)設(shè)計需求分析階段描述的用戶應用需求是現(xiàn)實世界的具體需求將需求分析得到
27、的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨立于機器、更抽象,從而更加穩(wěn)定。概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,概念結(jié)構(gòu)設(shè)計的特點(1)能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。是對現(xiàn)實世界的一個真實模型。(2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫的設(shè)計成功的關(guān)鍵。(3)易于更改,當應用環(huán)
28、境和應用要求改變時,容易對概念模型修改和擴充。(4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換描述概念模型的工具E-R模型,自底向上首先定義各局部應用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu),7.3.2 概念結(jié)構(gòu)設(shè)計的方法與步驟,設(shè)計概念結(jié)構(gòu)的四類方法自頂向下 首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化,,,,,逐步擴張 首先定義最重要的核心概念結(jié)構(gòu),然后向外擴充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)
29、,混合策略 將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計一個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。,,,,概念結(jié)構(gòu)設(shè)計的方法與步驟(續(xù)),,,常用策略(P211圖7.8)自頂向下進行需求分析自底向上設(shè)計概念結(jié)構(gòu),,自底向上設(shè)計概念結(jié)構(gòu)的步驟 (P211圖7.9)第1步:抽象數(shù)據(jù)并設(shè)計局部視圖第2步:集成局部視圖,得到全局概念結(jié)構(gòu),圖7.9 自底向上方法的設(shè)計步驟,需求分析,數(shù)據(jù)抽象、局部視
30、圖設(shè)計,視圖集成,,,,,,,,,征求用戶意見,,,,DFD、DD,局部E-R圖,全局E-R圖,邏輯結(jié)構(gòu)設(shè)計,概念結(jié)構(gòu)是對現(xiàn)實世界的一種抽象從實際的人、物、事和概念中抽取所關(guān)心的共同特性,忽略非本質(zhì)的細節(jié)把這些特性用各種概念精確地加以描述這些概念組成了某種模型三種常用抽象 1. 分類(Classification)定義某一類概念作為現(xiàn)實世界中一組對象的類型這些對象具有某些共同的特性和行為它抽象了對象值和型之間的“is
31、member of”的語義在E-R模型中,實體型就是這種抽象例:P212圖7.10,一、數(shù)據(jù)抽象,7.3.3 數(shù)據(jù)抽象與局部視圖設(shè)計,2. 聚集(Aggregation)定義某一類型的組成成分它抽象了對象內(nèi)部類型和成分之間“is part of”的語義在E-R模型中若干屬性的聚集組成了實體型,就是這種抽象例:P212圖7.11,圖7.12,3. 概括(Generalization)定義類型之間的一種子集聯(lián)系它抽象了類型
32、之間的“is subset of”的語義概括有一個很重要的性質(zhì):繼承性。子類繼承超類上定義的所有抽象。 例:P213圖7.13,注:原E-R模型不具有概括,本書對E-R模型作了擴充,允許定義超類實體型和子類實體型。 用雙豎邊的矩形框表示子類, 用直線加小圓圈表示超類-子類的聯(lián)系,數(shù)據(jù)抽象的用途對需求分析階段收集到的數(shù)據(jù)進行分類、組織(聚集),形成實體實體的屬性,標識實體的碼確定實體之間的聯(lián)系類型(1:1,1:n,m
33、:n),二、局部視圖設(shè)計,設(shè)計分E-R圖的步驟:選擇局部應用逐一設(shè)計分E-R圖,⒈ 選擇局部應用,需求分析階段,已用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個系統(tǒng)。設(shè)計分E-R圖首先需要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個適當層次的數(shù)據(jù)流圖,讓這組圖中每一部分對應一個局部應用,然后以這一層次的數(shù)據(jù)流圖為出發(fā)點,設(shè)計分E-R圖。通常以中層數(shù)據(jù)流圖作為設(shè)計分E-R圖的依據(jù)。原因:高層數(shù)據(jù)流圖只能反映系統(tǒng)的概貌中層數(shù)據(jù)流圖能較好地
34、反映系統(tǒng)中各局部應用的子系統(tǒng)組成低層數(shù)據(jù)流圖過細,實例:某工廠的信息管理系統(tǒng),圖7.14 設(shè)計分E-R圖的出發(fā)點,⒉ 逐一設(shè)計分E-R圖,任務——標定局部應用中的實體、屬性、碼,實體間的聯(lián)系將各局部應用涉及的數(shù)據(jù)分別從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標定各局部應用中的實體、實體的屬性、標識實體的碼,確定實體之間的聯(lián)系及其類型(1:1,1:n,m:n)如何抽象實體和屬性實體:現(xiàn)實世界中一組具有某些共同特性和行為的對象就可以抽象
35、為一個實體。對象和實體之間是“is member of"的關(guān)系。例:在學校環(huán)境中,可把張三、李四等對象抽象為學生實體。屬性:對象類型的組成成分可以抽象為實體的屬性。組成成分與對象類型之間是“is part of"的關(guān)系。例:學號、姓名、專業(yè)、年級等可以抽象為學生實體的屬性。其中學號為標識學生實體的碼,如何區(qū)分實體和屬性實體與屬性是相對而言的。同一事物,在一種應用環(huán)境中作為“屬性”,在另一種應用環(huán)境中就必須作為
36、“實體”。例:學校中的系,在某種應用環(huán)境中,它只是作為“學生”實體的一個屬性,表明一個學生屬于哪個系;而在另一種環(huán)境中,由于需要考慮一個系的系主任、教師人數(shù)、學生人數(shù)、辦公地點等,這時它就需要作為實體了。一般原則屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項,不能再由另一些屬性組成。屬性不能與其他實體具有聯(lián)系。聯(lián)系只發(fā)生在實體之間。符合上述兩條特性的事物一般作為屬性對待。為了簡化E-R圖的處置,現(xiàn)實世界中的事物凡
37、能夠作為屬性對待的,應盡量作為屬性。,舉例例1:“學生”由學號、姓名等屬性進一步描述,根據(jù)準則1,“學生”只能作為實體,不能作為屬性。例2:職稱通常作為教師實體的屬性,但在涉及住房分配時,由于分房與職稱有關(guān),也就是說職稱與住房實體之間有聯(lián)系,根據(jù)準則2,這時把職稱作為實體來處理會更合適些。,設(shè)計分E-R圖的步驟(1)以數(shù)據(jù)字典為出發(fā)點定義E-R圖。 數(shù)據(jù)字典中的“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)流”和“數(shù)據(jù)存儲”等已是若干屬性的
38、有意義的聚合(2)按上面給出的準則進行必要的調(diào)整。,例:銷售子系統(tǒng)分E-R圖的設(shè)計第一層數(shù)據(jù)流圖(P216 圖7.18)第二層數(shù)據(jù)流圖(P216 圖7.19~圖7.22),,,分析數(shù)據(jù)字典整個系統(tǒng)功能圍繞“訂單”和“應收帳款的處理,數(shù)據(jù)結(jié)構(gòu)中訂單、顧客、顧客應付帳目用的最多,是許多子功能共享的數(shù)據(jù),因此先設(shè)計分E-R的草圖(P218 圖7.32),逐一設(shè)計分E-R圖(例),,逐一設(shè)計分E-R圖(例),,,1.1,核對價格,,,產(chǎn)品
39、描述,,主管,部門,,,顧客,,,訂單數(shù)據(jù),,已核對價,格的訂單,,1.,2,核對賬,目狀況,,圖7.19 接收訂單,,逐一設(shè)計分E-R圖(例),圖7.20 處理訂單,,圖7.21 開發(fā)票,,圖中在訂單實體與產(chǎn)品實體之間的問號“?”表示還不能確定這兩個實體之間的聯(lián)系類型。然后參照第二層數(shù)據(jù)流圖和數(shù)據(jù)字典中的詳盡描述,遵循前面給出的兩個準則,進行如下調(diào)整:,每張訂單由訂單號、若干頭信息和訂單細節(jié)組成。訂單細節(jié)又有訂貨的零件號、數(shù)量等
40、來描述。按照準則(2),訂單細節(jié)就不能作訂單的屬性處理而應該上升為實體。一張訂單可以訂若干產(chǎn)品,所以訂單與訂單細節(jié)兩個實體之間是1∶n的聯(lián)系。,原訂單和產(chǎn)品的聯(lián)系實際上是訂單細節(jié)和產(chǎn)品的聯(lián)系發(fā)票清單是否作為實體? 否,因為該信息在應收帳款中體現(xiàn)了折扣規(guī)則實體——體現(xiàn)各種商品不同數(shù)量的折扣。,通過調(diào)整得到分E-R圖如下:,圖7.24 銷售子系統(tǒng)的分E-R圖,每個實體定義的屬性如下;,顧客:{顧客號,顧客名,地址,電話,信貸狀況,帳目
41、余額}訂單:{訂單號,顧客號,訂貨項數(shù),訂貨日期,交貨日期,工種號,生產(chǎn)地點}訂單細則:{訂單號,細則號,零件號,訂貨數(shù),金額}應收帳款:{顧客號,訂單號,發(fā)票號,應收金額,支付日期,支付金額,當前余額,貨款限額折扣規(guī)則:{產(chǎn)品號,訂貨量,折扣},7.3.4 視圖的集成,各個局部視圖即分E-R圖建立好后,還需要對它們進行合并,集成為一個整體的數(shù)據(jù)概念結(jié)構(gòu)即總E-R圖。視圖集成的兩種方式一次集成(P219圖7.25(a))
42、一次集成多個分E-R圖,通常用于局部視圖比較簡單時。逐步集成(P220圖7.25(b)) 首先集成兩個局部視圖(通常是比較關(guān)鍵的兩個局部視圖)以后每次將一個新的局部視圖集成進來,第1種方法比較復雜,做起來難度較大。第2種方法每次只集成兩個分E-R圖,可以降低復雜度。,集成局部E-R圖的步驟1. 合并2. 修改與重構(gòu),一、合并分E-R圖,生成初步E-R圖,各分E-R圖存在沖突各個局部應用所面向的問題不同,并且通常由不
43、同的設(shè)計人員進行設(shè)計,所以各個分E-R圖之間必定會存在許多不一致的地方,稱之為沖突。合并分E-R圖的主要工作與關(guān)鍵所在:合理消除各分E-R圖的沖突。沖突的種類屬性沖突命名沖突結(jié)構(gòu)沖突,⒈ 屬性沖突,兩類屬性沖突屬性域沖突:屬性值的類型、取值范圍或取值集合不同。例如:零件號(C/N)年齡(D/N)屬性取值單位沖突:例如:零件的重量(公斤/克)屬性沖突的解決方法通常用討論、協(xié)商等行政手段加以解決。,⒉ 命名沖突,兩類命名沖
44、突同名異義:不同意義的對象在不同的局部應用中具有相同的名字。 異名同義(一義多名):同一意義的對象在不同的局部應用中具有不同的名字 例如:有的部門把科研項目稱項目 有的部門則把科研項目稱課題命名沖突可能發(fā)生在屬性級、實體級、聯(lián)系級上。其中屬性的命名沖突更為常見。命名沖突的解決方法通過討論、協(xié)商等行政手段加以解決,⒊ 結(jié)構(gòu)沖突,三類結(jié)構(gòu)沖突同一對象在不同應用中具有不同的抽象 例,“課
45、程”在某一局部應用中被當作實體在另一局部應用中則被當作屬性解決方法:通常是把屬性變換為實體或把實體變換為屬性,使同一對象具有相同的抽象。變換時要遵循兩個準則。同一實體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同。產(chǎn)生原因:不同的局部應用關(guān)心的是該實體的不同側(cè)面。解決方法:使該實體的屬性取各分E-R圖中屬性的并集,再適當設(shè)計屬性的次序。實體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類型解決方法:根據(jù)應用語義對
46、實體聯(lián)系的類型進行綜合或調(diào)整。(P221圖7.27),例如:,圖7.27 合并兩個分E-R圖的綜合,二、消除不必要的冗余,設(shè)計基本E-R圖,1 .冗余所謂冗余的數(shù)據(jù)是指可由基本數(shù)據(jù)導出的數(shù)據(jù),冗余的聯(lián)系是指可由其他聯(lián)系導出的聯(lián)系。,,合并解決沖突,初步E-R圖,分E-R圖,可能存在冗余的數(shù)據(jù)和冗余的實體間聯(lián)系,基本E-R圖,,消除不必要的冗余,冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫的完整性,給數(shù)據(jù)庫維護增加困難并不是所有的冗余數(shù)據(jù)與冗
47、余聯(lián)系都必須加以消除,有時為了提高某些應用的效率,不得不以冗余信息作為代價。設(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)系的說明來消除冗余。如果是為了提高效率,人為地保留了一些冗余數(shù)據(jù),則應把數(shù)據(jù)字典中數(shù)據(jù)關(guān)聯(lián)的說明作為完整性
48、約束條件。一種更好的方法是把冗余數(shù)據(jù)定義在視圖中。,,消除不必要的冗余,冗余 Q3=Q1 × Q2 Q4=∑Q5 允許冗余 提高某些應用響應時間Q4保留,Q4=∑Q5是完整性約束條件。并且由于Q3消去,產(chǎn)品與材料間m∶n的冗余聯(lián)系也應消去。,2) 規(guī)范化理論函數(shù)依賴的概念提供了消除冗余聯(lián)系的形式化工具。方法(1) 確定分
49、E-R圖實體之間的數(shù)據(jù)依賴FL 。實體之間一對一、一對多、多對多的聯(lián)系可以用實體碼之間的函數(shù)依賴來表示。(2) 求FL的最小覆蓋GL ,差集為: D = FL-GL。 逐一考察D中的函數(shù)依賴,確定是否是冗余的聯(lián)系,若是,就把它去掉。由于規(guī)范化理論受到泛關(guān)系假設(shè)的限制,應注意下面兩個問題:(1) 冗余的聯(lián)系一定在D中,而D中的聯(lián)系不一定是冗余的;(2) 當實體之間存在多種聯(lián)系時要將實體之間的聯(lián)系在形式上
50、加以區(qū)分。,實例:某工廠信息管理系統(tǒng)的視圖集成。,圖1.14 工廠物資管理系統(tǒng),圖1.14 工廠物資管理系統(tǒng),圖1.14 工廠物資管理系統(tǒng)E-R圖,實例:某工廠信息管理系統(tǒng)的視圖集成。,圖1.14(c)、圖7.24、圖7.29分別為該廠物資、勞動人事和銷售管理的分E-R圖。把這3個分E-R圖進行集成過程中解決了以下問題:(1)異名同義,“項目”和“產(chǎn)品”含義相同。某個“項目”實質(zhì)上是指某個“產(chǎn)品”的生產(chǎn)。統(tǒng)一用“產(chǎn)品”作實體
51、名。(2)庫存管理中職工與倉庫的工作關(guān)系已包含在勞動人事管理部門與職工之間的聯(lián)系之中,所以可以取消。職工之間領(lǐng)導與被領(lǐng)導關(guān)系可由部門與職工(經(jīng)理)之間的領(lǐng)導關(guān)系、部門與職工之間的從屬關(guān)系兩者導出,所以也可以取消。圖7.30為該系統(tǒng)的基本E-R圖?;綞-R圖中各實體的屬性因篇幅有限這里從略。,三、驗證整體概念結(jié)構(gòu),視圖集成后形成一個整體的數(shù)據(jù)庫概念結(jié)構(gòu),對該整體概念結(jié)構(gòu)還必須進行進一步驗證,確保它能夠滿足下列條件:整體概念結(jié)構(gòu)內(nèi)部
52、必須具有一致性,不存在互相矛盾的表達。整體概念結(jié)構(gòu)能準確地反映原來的每個視圖結(jié)構(gòu),包括屬性、實體及實體間的聯(lián)系。整體概念結(jié)構(gòu)能滿足需要分析階段所確定的所有要求。整體概念結(jié)構(gòu)最終還應該提交給用戶,征求用戶和有關(guān)人員的意見,進行評審、修改和優(yōu)化,然后把它確定下來,作為數(shù)據(jù)庫的概念結(jié)構(gòu),作為進一步設(shè)計數(shù)據(jù)庫的依據(jù),概念結(jié)構(gòu)設(shè)計小結(jié),概念結(jié)構(gòu)設(shè)計的步驟抽象數(shù)據(jù)并設(shè)計局部視圖集成局部視圖,得到全局概念結(jié)構(gòu)驗證整體概念結(jié)構(gòu)數(shù)據(jù)抽象(分
53、類、聚集、概括)設(shè)計局部視圖⒈ 選擇局部應用⒉ 逐一設(shè)計分E-R圖標定局部應用中的實體、屬性、碼,實體間的聯(lián)系用E-R圖描述出來集成局部視圖1.合并分E-R圖,生成初步E-R圖消除沖突(屬性沖突、命名沖突、結(jié)構(gòu)沖突)2. 修改與重構(gòu)消除不必要的冗余,設(shè)計生成基本E-R圖分析方法規(guī)范化理論,7.4 邏輯結(jié)構(gòu)設(shè)計,邏輯結(jié)構(gòu)設(shè)計的任務概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ)為了能夠用某一DBMS實現(xiàn)用戶需求,還必須將
54、概念結(jié)構(gòu)進一步轉(zhuǎn)化為相應的數(shù)據(jù)模型,這正是數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計所要完成的任務。邏輯結(jié)構(gòu)設(shè)計的步驟將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型將轉(zhuǎn)化來的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換對數(shù)據(jù)模型進行優(yōu)化,,,,7.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換,轉(zhuǎn)換內(nèi)容E-R圖由實體、實體的屬性和實體之間的聯(lián)系三個要素組成;關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合;將E-R圖轉(zhuǎn)換為關(guān)系模型:將實體、實體的屬性和實體之間的
55、聯(lián)系轉(zhuǎn)化為關(guān)系模式。,轉(zhuǎn)換原則,⒈ 一個實體型轉(zhuǎn)換為一個關(guān)系模式。關(guān)系的屬性:實體型的屬性關(guān)系的碼:實體型的碼例,職工實體可以轉(zhuǎn)換為如下關(guān)系模式: 職工(職工號,部門號,姓名,職務,性別,出生日期),⒉ 一個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)系模式,其中學號與課程號為關(guān)系的組合碼: 選
56、修(學號,課程號,成績),⒊ 一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應的關(guān)系模式合并。1) 轉(zhuǎn)換為一個獨立的關(guān)系模式關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的碼:n端實體的碼2) 與n端對應的關(guān)系模式合并合并后關(guān)系的屬性:在n端關(guān)系中加入1端關(guān)系的碼和聯(lián)系本身的屬性合并后關(guān)系的碼:不變 可以減少系統(tǒng)中的關(guān)系個數(shù),一般情況下更傾向于采用這種方法。,⒋ 一個1:1聯(lián)系可
57、以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端對應的關(guān)系模式合并。1) 轉(zhuǎn)換為一個獨立的關(guān)系模式關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的候選碼:每個實體的碼均是該關(guān)系的候選碼2) 與某一端對應的關(guān)系模式合并合并后關(guān)系的屬性:加入對應關(guān)系的碼和聯(lián)系本身的屬性合并后關(guān)系的碼:不變,⒌ 三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。關(guān)系的屬性:與該多元聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的碼:各
58、實體碼的組合例,“供應”聯(lián)系是一個三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中產(chǎn)品號、供應商號和零件號為關(guān)系的組合碼: 供應(產(chǎn)品號,供應商號,零件號,供應量),⒍ 同一實體集的實體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。[例] 如果職工實體集內(nèi)部存在領(lǐng)導與被領(lǐng)導的1:n自聯(lián)系,我們可以將該聯(lián)系與職工實體合并,這時主碼職工號將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分:職工:{職工號,部門號
59、,姓名,性別,職稱,出生日期,部門領(lǐng)導},⒎ 具有相同碼的關(guān)系模式可合并。目的:減少系統(tǒng)中的關(guān)系個數(shù)。合并方法:將其中一個關(guān)系模式的全部屬性加入到另一個關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當調(diào)整屬性的次序。,下面把圖7.30中虛線上部的E-R圖轉(zhuǎn)換為一組關(guān)系模式。關(guān)系模式的碼用下橫線標出。,部門(部門號,部門名,經(jīng)理的職工號,……)此為部門實體對應的關(guān)系模式。該關(guān)系模式已包含了聯(lián)系“領(lǐng)導”所對應的關(guān)系模
60、式。經(jīng)理的職工號是關(guān)系的候選碼。職工(職工號,部門號,職工名,職務,……)此為職工實體對應的關(guān)系模式。該關(guān)系模式已包含了聯(lián)系“屬于”所對應的關(guān)系模式。 產(chǎn)品(產(chǎn)品號,產(chǎn)品名,產(chǎn)品組長的職工,……)此為產(chǎn)品實體對應的關(guān)系模式。供應商(供應商號,姓名,……)------此為供應商實體對應的關(guān)系模式。零件(零件號,零件名,……)-----此為零件實體對應的關(guān)系模式。職工工作(職工號,產(chǎn)品號,工作天數(shù),……)此為聯(lián)系“參加”所對
61、應的關(guān)系模式。供應(產(chǎn)品號,供應商號,零件號,供應量)此為聯(lián)系“供應”所對應的關(guān)系模式。,向特定DBMS規(guī)定的模型進行轉(zhuǎn)換,一般的數(shù)據(jù)模型還需要向特定DBMS規(guī)定的模型進行轉(zhuǎn)換。轉(zhuǎn)換的主要依據(jù)是所選用的DBMS的功能及限制。沒有通用規(guī)則。對于關(guān)系模型來說,這種轉(zhuǎn)換通常都比較簡單。,7.4.2 數(shù)據(jù)模型的優(yōu)化,數(shù)據(jù)庫邏輯設(shè)計的結(jié)果不是唯一的。得到初步數(shù)據(jù)模型后,還應該適當?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進一步提高數(shù)據(jù)庫應用系統(tǒng)的
62、性能,這就是數(shù)據(jù)模型的優(yōu)化。關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導。,數(shù)據(jù)模型的優(yōu)化(方法),⒈ 確定數(shù)據(jù)依賴按需求分析階段所得到的語義,分別寫出每個關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴。⒉ 對于各個關(guān)系模式之間的數(shù)據(jù)依賴進行極小化處理,消除冗余的聯(lián)系。⒊ 按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。,⒋ 按照需求
63、分析階段得到的各種應用對數(shù)據(jù)處理的要求,分析對于這樣的應用環(huán)境這些模式是否合適,確定是否要對它們進行合并或分解。 并不是規(guī)范化程度越高的關(guān)系就越優(yōu)。當一個應用的查詢中經(jīng)常涉及到兩個或多個關(guān)系模式的屬性時,系統(tǒng)必須經(jīng)常地進行聯(lián)接運算,而聯(lián)系運算的代價是相當高的,可以說關(guān)系模型低效的主要原因就是做聯(lián)接運算引起的,因此在這種情況下,第二范式甚至第一范式也許是最好的。非BCNF的關(guān)系模式雖然從理論上分析會存在不同程度的更新異常,但如果在
64、實際應用中對此關(guān)系模式只是查詢,并不執(zhí)行更新操作,則就不會產(chǎn)生實際影響。對于一個具體應用來說,到底規(guī)范化進行到什么程度,需要權(quán)衡響應時間和潛在問題兩者的利弊才能決定。一般說來,第三范式就足夠了。,⒌ 按照需求分析階段得到的各種應用對數(shù)據(jù)處理的要求,對關(guān)系模式進行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲空間的利用率。常用分解方法水平分解垂直分解,水平分解,什么是水平分解把(基本)關(guān)系的元組分為若干子集合,定義每個子集合為一
65、個子關(guān)系,以提高系統(tǒng)的效率。水平分解的適用范圍1. 滿足“80/20原則”的應用80/20原則:一個大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20%,把經(jīng)常使用的數(shù)據(jù)分解出來,形成一個子關(guān)系,可以減少查詢的數(shù)據(jù)量。2.并發(fā)事務經(jīng)常存取不相交的數(shù)據(jù)如果關(guān)系R上具有n個事務,而且多數(shù)事務存取的數(shù)據(jù)不相交,則R可分解為少于或等于n個子關(guān)系,使每個事務存取的數(shù)據(jù)對應一個關(guān)系。,垂直分解,什么是垂直分解把關(guān)系模式R的屬性分解為若
66、干子集合,形成若干子關(guān)系模式。垂直分解的原則經(jīng)常在一起使用的屬性從R中分解出來形成一個子關(guān)系模式。垂直分解的優(yōu)點可以提高某些事務的效率垂直分解的缺點可能使另一些事務不得不執(zhí)行連接操作,從而降低了效率。垂直分解的適用范圍取決于分解后R上的所有事務的總效率是否得到了提高。進行垂直分解的方法簡單情況:直觀分解復雜情況:用第五章中的模式分解算法垂直分解必須不損失關(guān)系模式的語義(保持無損連接性和保持函數(shù)依賴)。,7.4.3
67、 設(shè)計用戶子模式,將概念模型轉(zhuǎn)換為全局邏輯模型后,還應該根據(jù)局部應用需求,結(jié)合具體RDBMS的特點,設(shè)計用戶的外模式。目前關(guān)系數(shù)據(jù)庫管理系統(tǒng)一般都提供了視圖(View)概念,可以利用這一功能設(shè)計更符合局部用戶需要的用戶外模式。定義數(shù)據(jù)庫模式主要是從系統(tǒng)的時間效率、空間效率、易維護等角度出發(fā)。由于用戶外模式與模式是相對獨立的,因此在定義用戶外模式時可以考慮用戶的習慣與方便。包括三個方面:,7.4.3 設(shè)計用戶子模式,(1) 使用
68、更符合用戶習慣的別名合并各分E-R圖曾做了消除命名沖突的工作,以使數(shù)據(jù)庫系統(tǒng)中同一關(guān)系和屬性具有唯一的名字。這在設(shè)計數(shù)據(jù)庫整體結(jié)構(gòu)時是非常必要的。但對于某些局部應用,由于改用了不符合用戶習慣的屬性名,可能會使他們感到不方便,因此在設(shè)計用戶的子模式時可以重新定義某些屬性名,使其與用戶習慣一致。當然,為了應用的規(guī)范化,我們也不應該一味地遷就用戶。,(2) 針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性的要求。例如,有關(guān)系模式:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論