2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩74頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第六章數據庫設計,,數據庫設計概述,數據庫設計是指對于一個給定的應用領域,構造最優的數據庫模式,建立數據庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求(信息要求和處理要求)數據操作需求,有效地支持各種應用系統的開發和運行。,數據庫設計概述,數據庫設計的關鍵是構造合理的數據模型。這個數據模型要較好地反映現實世界信息、信息之間的聯系,能反映出使用者對數據的需求和操作特點,能方便地在某個選定的DBMS支持下實現。,數

2、據庫設計的特點,數據庫設計與硬件、軟件和干件緊密相關。數據庫設計要把結構(數據)設計和行為(處理)設計密切結合起來。,數據庫設計的方法,手工試湊方法規范化設計方法自動數據庫設計工具,數據庫設計的方法,手工試湊方法,數據庫設計的方法,手工試湊方法的缺點現在數據庫的數據量大,數據間關系復雜,用戶眾多,使用要求各式各樣,很難僅憑經驗進行設計。直接設計把數據的邏輯結構,物理結構、處理要求等一起考慮,很難對模式進行評價和優化。用戶需求一

3、旦發生變化,數據結構很難隨之發生變化。數據庫設計與具體的DBMS緊密結合,移植困難。缺乏文檔資料,難于與用戶交流,對設計難于評審,往往到運行中才能發現問題。難以由多個人合作進行設計。,數據庫設計的方法,規范化設計方法規范化設計方法認為數據庫設計涉及了很多問題,每類問題有其不同的自然論域。規范化設計方法依據軟件工程的思想,把整個設計過程劃分為若干階段,把數據庫設計這一復雜的大問題分為若干相對簡單的小問題,每個階段只解決整個設計中的

4、部分問題。整個設計方法是迭代過程,每一過程完成時要進行設計分析,產生各種設計文檔,并組織評審和用戶交流,如不滿足要求則進行修改。,數據庫的生命周期,需求分析概念結構設計邏輯結構設計物理結構設計數據庫的實施數據庫運行與維護,規范化設計的特點,反復性數據庫設計不可能“一氣呵成”,需要反復推敲和修改才能完成。前階段的設計是后階段設計的基礎和起點,但后階段也可向前階段反饋其要求,如此反復修改,以臻完善。試探性數據庫設計結果一般不

5、是唯一的。設計的過程是個試探的過程。在設計過程中,有各式各樣的要求和制約因素,它們之間往往是矛盾的。數據庫的設計很難說是最佳的,常常得之于東,而失之于西,何去何從取決于數據庫設計者的權衡和單位的決策。,規范化設計的特點,分步進行數據庫設計常常由不同的人員分階段進行。這樣做,一是由于技術上分工的需要,二是為了分段把關,逐級審查,保證設計的質量和進度。,需求分析,需求分析的任務是通過詳細調查現實世界要處理的對象(組織、部門、企業等),充分

6、了解原系統(手工系統或計算機系統)的工作情況,明確用戶的各種需求,并預測系統今后可能的擴充和改變,然后在此基礎上確定新系統的功能。,需求分析,調查的重點是“數據”和“處理”,包括:信息要求,指用戶需要從數據庫中獲得的信息的內容與性質。從中可以導出數據要求。處理要求,指用戶要完成什么處理功能,對處理的響應時間和處理方式的要求。安全性與完整性的要求,需求分析的具體步驟,調查組織機構情況調查各部門的業務活動情況在熟悉了業務活動的基礎

7、上,協助用戶明確對新系統的各種要求,包括信息要求、處理要求、完整性與安全性要求。確定新系統的邊界預測系統的未來改變強調用戶參與,數據字典,數據字典是系統中各類數據描述的集合,是進行詳細的數據收集和數據分析所獲得的主要成果。數據字典包括:數據項數據結構數據流數據存儲處理過程,數據字典,數據項描述{數據項名,數據項含義說明,別名,數據類型,長度,取值范圍,取值含義,與其它數據項的邏輯關系,數據項之間的聯系}數據結構描述

8、{數據結構名,含義說明,組成:{數據項或數據結構}}數據流描述{數據流名,說明,數據流來源,數據流去向,組成:{數據結構},平均流量,高峰期流量},數據字典,數據存儲描述{數據存儲名,說明,編號,輸入的數據流,輸出的數據流,組成{數據結構},數據量,存取頻度,存取方式}處理過程描述{處理過程名,說明,輸入:{數據流},輸出:{數據流},處理:{簡要說明}},預測現行系統的未來改變,現行系統的未來改變信息是其他數據庫設計階段的

9、參考信息。通過這些信息,我們可以考慮使最終數據庫盡量適應未來改變,減少將來為適應改變而引起的數據庫修改或重新設計,使數據庫具有較好的適用性。應用領域中已有的,但目前尚未被數據庫系統支持的應用。應用領域中各種應用功能可能的擴充、減少和改變。應用領域的上述改變對數據庫支持的信息和應用范圍、數據項定義、數據項之間的關系和數據庫操作任務的影響。,強調用戶的參與,設計人員應當與用戶對于需求形成共同的理解,并共同確保數據庫的設計正確表達和解決

10、了用戶的需求,對設計工作的結果承擔共同的責任。,概念結構設計,將需求分析得到的用戶需求抽象成為信息結構即概念模型的過程就是概念結構設計。,概念結構的特點,能真實、充分地反映現實世界,包括事物和事物之間地聯系,能滿足用戶對數據處理地要求。易于理解,從而可以用它和不熟悉計算機的用戶交換意見。易于更改,當應用環境和應用要求發生改變時,容易對其進行修改和擴充。易于向關系、網狀、層次等各種數據模型轉換,分析用戶需求,根據需求分析的結果,對應

11、用領域進行分析,抽象出下列信息:應用領域的流動信息的定義。應用領域的存儲信息的定義。應用領域中各種流動信息的起點和源點。應用領域的各種應用的定義,包括輸入信息,輸出信息和應用功能的定義。上述四者之間的聯系的定義。,定義數據庫系統支持的信息與應用,應用定義的目的是確定最終數據庫支持哪些應用系統。應用領域的邏輯模型是應用定義的基礎考察數據流圖中每個數據處理應用,確定我們正在設計的數據庫是否應該而且可能支持這個應用。對于步驟一確

12、定的每個數據庫系統應該支持的應用進行嚴格定義,內容包括:應用名,處理功能,輸入信息和輸出信息。,定義數據庫系統支持的信息與應用,信息定義的目的是確定最終數據庫需要存儲哪些信息。信息的定義也以應用領域的邏輯模型為基礎??疾鞌祿鲌D中每個存儲信息,確定其是否應該而且可能由數據庫存儲。對于步驟一確定的每個需要數據庫存儲的信息進行嚴格定義,內容包括:信息名、內容定義、產生該信息的應用和引用該信息的應用。,概念結構設計的策略,自頂向下首先定

13、義全局概念結構的框架,然后逐步細化。,概念設計的策略,自底向上首先定義各局部應用的概念結構,然后將它們集成起來,得到全局概念結構。,概念設計的策略,逐步擴張首先定義最重要的核心概念結構,然后向外擴充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構。,核心需求,需求,核心概念結構,,…,全局概念結構,概念設計的策略,混合策略即將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的框架,以它為骨架集成用自底向上策略

14、設計的各局部概念結構。,概念設計的策略,,需求,需求,需求,需求,需求,需求,需求,概念模式1.1,概念模式1.2,概念模式n.1,概念模式n.2,概念模式1,概念模式n,全局概念模式,……,……,視圖綜合設計方法,視圖綜合設計方法分為兩步:設計局部概念結構把局部概念結構合并為一個全局概念結構。,局部視圖設計,選擇局部應用根據某個系統的具體情況,在多層的數據流圖中選擇一個適當層次的數據流圖,作為設計分ER圖的出發點。逐一設計分E

15、R圖選擇好局部應用之后,就要對每個局部應用逐一設計分ER圖。,局部視圖設計,確定局部實體。確定局部實體之間的聯系(包括超類/子類聯系)。構造局部ER圖。,局部視圖設計,局部視圖設計的關鍵在于實體和屬性的正確劃分。其主要手段為:分類定義某一概念作為現實世界中一組對象的類型。這些對象具有某些共同的特性和行為。它抽象了對象值和型之間的“is member of”的語義。聚集定義某一類型的組成成分,它抽象了對象內部類型和成分之間“

16、is part of”的語義。概括定義類型之間的一種子集聯系,它抽象了類型之間的“is subset of”的語義。,實體與屬性,實體與屬性劃分的兩條準則:作為屬性,不能再具有需要描述的性質。屬性必須是不可分的數據項,不能包含其他屬性。屬性不能與其他實體具有聯系,即ER圖中所表示的聯系是實體之間的聯系。,實體與屬性,,n,1,實體與屬性,,局部ER圖設計,,生產部門的局部ER圖,視圖的集成,視圖的集成可以有兩種方法:多個局部E

17、R圖一次集成逐步集成,用累加的方式一次集成兩個分ER圖。,一次集成,,逐步集成,,集成局部ER圖的步驟,合并解決各局部ER圖之間的沖突,將各局部ER圖合并起來生成初步ER圖。修改和重構消除不必要的冗余,生成基本ER圖。,全局概念模式合成,識別局部ER圖間的沖突修改局部ER圖局部ER圖合并,識別局部概念模式間的沖突,各個局部應用所面向的問題不同,通常是由不同的設計人員進行局部ER圖設計,所以各個局部ER圖中必定存在許多不一致的

18、地方,稱之為沖突。合理消除各局部ER圖的沖突時合并局部ER圖的關鍵。各局部模式之間的沖突主要有:命名沖突結構沖突值域沖突約束沖突,命名沖突,同名異義即同一名字在不同的局部ER圖中表示不同的概念。如“編號”這一名字在學生實體中表示學號,而在課程實體中表示課程號。異名同義即同一個概念在不同的局部ER圖中使用了不同的名字。如在一個局部ER圖中學生實體有“何時入學”這一個屬性,在另一個局部ER圖中學生實體有“入學時間”這一屬性,兩

19、者是同名異義。,結構沖突,結構沖突是模式結構的沖突。它指相同的概念在不同的局部ER圖中使用不同的概念結構來表示。同一對象在不同的局部ER圖中具有不同的抽象。如“系”在一個局部ER圖中被表示為一個實體,而在另一個局部ER中則被表示為一個屬性或聯系。同一實體在不同的局部ER圖中所包含的屬性個數和屬性的排列次序不完全相同。,值域沖突,指同一個屬性在不同的局部ER圖中具有不同的值域定義。屬性域沖突,即屬性的類型、取值范圍或取值集合不同。如

20、屬性“編號”在一個局部模式中定義為整數型,而在另一個局部模式中定義為字符型。屬性取值單位沖突,如數型“身高”在一個局部模式以“厘米”為單位,在另一個局部模式中以“米”為單位。,約束沖突,這種沖突指兩個局部模式在同一個概念上定義了不同的約束。如在兩個模式中,同一個實體的鍵不同;又如對于選課這個聯系,大學生和研究生對選課的最少門數和最多門數可能不一樣。,總體ER圖設計,,修改和重構,在初步ER圖中,可能存在一些冗余的數據和實體間冗余的聯系

21、。所謂冗余的數據是指可由基本數據導出的數據,冗余的聯系是指可由其他聯系導出的聯系。冗余數據和冗余的聯系容易破壞數據庫的完整性,應當予以消除。消除了冗余后的初步ER圖稱為基本ER圖。消除冗余主要采用分析方法,即以數據字典和數據流圖為依據,根據數據字典中關于數據項之間的邏輯關系的說明來消除冗余。,基本ER圖,,材料,價格,材料號,價格,材料名,庫存量,,,,,,,,m,倉庫,,產品,組裝,零件,產品號,性能,產品名,零件數,耗用量,,,,,

22、,,,m,n,零件號,零件名,消耗,n,1,事務設計,數據庫設計的目的是支持各種事務的運行。在數據庫的設計中,需要考慮所有事務的特點和要求,這樣才能保證所設計的數據庫包含的各種事務所需要的信息。在概念數據庫設計階段,事務設計的任務是定義事務的功能,其方法是說明事務的輸入、輸出信息和功能。事務可以分為三類:數據查詢型事務,數據更新型事務,混合型事務。,邏輯結構設計,邏輯結構設計的任務是把概念結構設計階段設計好的基本ER圖轉換為與選用的DB

23、MS所支持的數據模型相符合的邏輯結構。邏輯結構設計的目標包括:滿足用戶的完整性和安全性要求。動態關系至少滿足第三范式,靜態關系至少滿足第一范式。能夠在邏輯級上高效率地支持各種數據庫事務的運行。存儲空間利用率高。,邏輯結構設計的步驟,形成初始關系數據庫模式關系模式規范化關系模式優化定義關系上的完整性和安全性約束子模式定義性能估計,形成初始關系數據庫模式,初始關系數據庫模式是指直接由概念結構設計的結果生成的關系數據庫模式。

24、初始數據庫模式生成的目的是把ER圖中的實體、實體間的聯系等變換為關系模式。,實體型的轉換,直接將一個實體型轉化為一個關系模式,實體的屬性就是關系的屬性,實體的碼就是關系的碼。,實體間聯系的轉換,1:1聯系可以直接轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,每個實體的碼均是該關系的候選碼。如果與某一端的實體所對應的關系模式合并,

25、則需要在該關系模式的屬性中加入另一個關系模式的碼和聯系本身的屬性。,實體間聯系的變換,可轉換為以下關系模式E1(A,B,C)E2(D,E,F,G)R(A,D,H) 或者R(A,D,H) 或:E1 (A,B,C,D,H)E2(D,E,F,G),實體間聯系的變換,或:E1(A,B,C)E2(D,E,F,G,A,H),實體間聯系的轉換,1:N聯系可以直接轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。如果轉換為一個獨

26、立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為n端實體的碼。,實體間聯系的變換,可轉換為以下關系模式E1(A,B,C)E2(D,E,F,G)R(A,D,H)或:E1(A,B,C)E2(D,E,F,G,A,H),實體間聯系的轉換,M:N聯系轉換為一個獨立的關系模式,與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合。三個或三個以上實體間的一個多

27、元聯系可以轉換為一個關系模式。與該多元聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合。,實體間聯系的變換,只能轉換為以下關系模式R(A,D,H),實體間聯系的轉換,可將三元聯系供應轉化為以下關系模式:供應(項目編號,供應商號,零件號,供應量),供應商,項目,零件,供應,供應量,關系模式的規范化,確定函數依賴對于各個關系模式之間的數據依賴進行極小化處理,消除冗余聯系。按照數據依賴的理論對關系模

28、式逐一進行分析,對其進行規范化處理。按照需求分析階段得到的處理要求,分析這些關系模式對于這樣的應用環境是否合適,是否要對某些模式進行合并或分解。,關系模式的優化,在數據庫設計中,并非關系的規范化程度越高越好,因為在數據庫的設計中不僅應當考慮數據本身的特點,還需要考慮應用的要求。規范化的主要方法是通過模式分解進行的,規范化程度越高通常也意味著分解產生的關系越多,當查詢這些關系時需要進行的連接操作也就越多,從而會影響到系統的效率。因此,必

29、須根據應用的特點對數據庫設計進行優化,對關系模式進行必要的分解,提高數據操作的效率和存儲空間的利用率。常用的兩種分解方法是水平分解和垂直分解。,關系模式的優化,優化關系模式的兩種方法:水平分解 是把關系的元組分為若干子集合,定義每個子集合為一個子關系,以提高系統效率。根據80/20原則, 在一個大關系中,經常被使用的數據只是關系的一個部分,則可以把經常使用的那一部分數據分解出來作為一個關系,其他數據作為另一個關系。如果關系R上具

30、有n個事務,而且多數事務存取的數據不相交,則R可以分解為少于或等于n個子關系。,關系模式的優化,垂直分解是把關系模式R的屬性分解為若干子集合,形成若干子關系模式。垂直分解的原則是,經常在一起使用的屬性從R中分解出來形成一個子關系模式。垂直分解必須確保無損連接性和保持函數依賴。,逆規范化,連接操作代價很高,是造成關系數據庫低效的主要原因之一。如果經常需要對多個關系進行連接操作,且大多數操作為查詢操作,更新很少,則可以考慮將這些關系合并為

31、一個關系,從而提高查詢效率。,設計子模式,將概念模型轉換為全局模型后,還應根據局部應用的需求,結合具體DBMS的特點,設計用戶外模式。由于用戶外模式與全局模式是相對獨立的,因此定義用戶外模式時可以注重考慮用戶的習慣和方便。包括:使用更符合用戶習慣的別名可以對不同級別的用戶定義不同的View,以保證系統的安全性。簡化用戶對系統的使用。,數據庫物理設計,數據庫在物理設備上的存儲結構和存取方法稱為數據庫的物理結構。為一個給定的邏輯模型選

32、取一個最合適應用要求的物理結構的過程,就是數據庫物理設計。,數據庫物理設計的內容和方法,了解應用的類型和特點了解所用的RDBMS提供了哪些存取方法和存儲結構,關系存取方法的選擇,索引存取方法經常在查詢條件中出現的屬性,應為其建立索引。經常作為最大值和最小值等聚集函數參數的屬性,應為其建立索引。經常在連接條件中出現的屬性,應為其建立索引。,關系存取方法的選擇,聚簇存取方法聚簇存取方法將相關的數據存放在連續的物理塊中,從而提供查詢

33、的效率。設計聚簇的原則對經常在一起進行連接操作的關系可以建立聚簇。如果一個關系的一個(或一組)屬性經常出現在相等比較條件中,則該單個關系可建立聚簇。如果一個關系的一個(或一組)屬性上的值重復率很高,則此單個關系可以建立聚簇。,關系存取方法的選擇,HASH存取方法如果一個關系的屬性主要出現在相等比較條件中,且滿足以下兩個條件之一,則可以使用HASH存取方法:一個關系的大小可以預知,而且不變。關系的大小動態改變,但數據庫管理系

溫馨提示

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

評論

0/150

提交評論