2015-第9章數(shù)據庫設計_第1頁
2015-第9章數(shù)據庫設計_第2頁
2015-第9章數(shù)據庫設計_第3頁
2015-第9章數(shù)據庫設計_第4頁
2015-第9章數(shù)據庫設計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本章主要內容邏輯模型與物理模型關系數(shù)據庫模型將E-R圖轉換為關系字段設計代碼設計12邏輯模型和物理模型數(shù)據建模和系統(tǒng)開發(fā)生命周期系統(tǒng)規(guī)劃階段企業(yè)范圍的數(shù)據模型(主要實體)概念數(shù)據模型(E-R及具體項目的實體)系統(tǒng)設計階段邏輯數(shù)據模型(關系)和物理文件與數(shù)據庫設計(文件組織)系統(tǒng)實施階段Implemenion: 實施數(shù)據庫和文件定義(DBMS具體代碼)系統(tǒng)分析階段概念數(shù)據模型( E-R 及屬性)階段Maenance:( 數(shù)據模型評估)3邏輯模型和物理模型數(shù)據庫的設計主要包含兩個步驟:首先是開發(fā)邏輯數(shù)據庫模型,最常見的類型是關系數(shù)據庫模型。在邏輯數(shù)據庫設計中,使用規(guī)范化方法建立數(shù)據模型,使得模型具

2、有簡單、無冗余性和最小成本等特性。然后通過數(shù)據庫物理設計定義用于數(shù)據的計算機文檔和數(shù)據庫的技術規(guī)范。通常,邏輯與物理數(shù)據庫設計可以和其他系統(tǒng)設計同步進行,如輸入輸出設計等。4E-R圖轉化為關系模型:(1)表示實體。E-R圖中的每一個實體類型都轉變成為一個關系。實體類型的標識符成為關系的主碼,而實體類型的其他屬性成為關系中的非主碼屬性。(2)表示關系。在設計關系數(shù)據庫時必須體現(xiàn)出E-R圖中的每一種關系。要表達一種關系取決于它的內在性質。例 時候通過將一個屬性在一個關系中設為主碼而在另一個關系中設為外碼來表達關系;而在另一些時候,用新建一個單獨的關系來表示出這種聯(lián)系。(3)規(guī)范化關系。面兩個步驟中

3、建立的關系可能存在不必要的冗余,所以需要進行規(guī)范化使其結構完善。(4)合并關系。到此為止,在數(shù)據庫設計中已經建立了各種關系,既有從用戶角度自下而上建立的關系,也有從一個或多個E-R圖中轉化而來的關系。在這些關系中可能存在冗余關系(多個關系描述同一個實體類型),它們必須被合并、重范化并消除冗余。5實體轉換規(guī)則每個基本實體、關聯(lián)實體和弱實體都被實現(xiàn)成一個獨立表,表名可能按照DBMS名規(guī)則和大小限制進行格式化。例如,命名為MEMBER ORDERED PRODUCT的邏輯實體可能被變換為名為tblMemberOrdProd的物理表。標識主碼,并且實現(xiàn)為表中的一個索引。每個副碼實現(xiàn)為表中的索引。對于任

4、何被確定為子集準則的非主屬性,應該建立索引。標識外鍵,這些外鍵實現(xiàn)了數(shù)據模型的關系,并使得表可以在 和應用程序中被連接。屬性轉換規(guī)則屬性采用字段實現(xiàn),這些字段對應表中的列。字段名稱需要按照DBMS的約束和規(guī)則被縮短或者重新格式化。數(shù)據類型:每個DBMS支持不同的數(shù)據類型和術語,例如在Acs中,固定長度字符數(shù)據用TEXT表示,而在MS SQL Server和Oracle中,采用CHAR(size)表示。選擇一個數(shù)據類型需要在以下四個目標之間進行權衡,這些目標對于不同的應用有不同的重要程度:最小化空間。能夠表示一個字段所有可能的值。改進字段的數(shù)據完整性。支持字段的所有數(shù)據操作。空或非空。不同DBM

5、S可能使用不同的預留字顯示該特性。按照定義,主碼值不能為空。域:許多DBMS可以自動編輯數(shù)據,以確保字段包含合法數(shù)據,這對于應用程序確保數(shù)據完整性是一個很大的優(yōu)點。默認值。但用戶或者程序員創(chuàng)建一個包含空值字段的時,許多DBMS使用默認值自動設置值。有些情況下,空值可以作為默認值。關系轉換規(guī)則關系的表示方法既依賴于關系層次(一元、二元、三元的),也依賴于關系數(shù)量。在E-R圖中實現(xiàn)二元一對多(1:N)關系的方法如下:通過將1:N關系中1這邊的實體的主碼屬性作為外碼添加到關系中N這邊的關系中。注意,上述方法中存在一個特例。如果關系中N這邊的實體需要關系中1這邊的屬性作為它的部分主碼(稱為弱實體),則

6、被選擇的屬性不再作為非主碼,而是作為主碼的一部分加入到關系N這邊。對于兩個實體A和B之間二元、一元的1:1關系(對于一元關系,A和B將是相同實體類),則可以用如下三種選擇之一表示該關系:(1)將A中的主碼作為外碼加到B中。(2)將B中的主碼作為外碼加到A中。(3)兼有上述二者。以客戶配置訂單的關系為例,配置關系連接了客戶和訂單兩個實體,客戶和訂單分別是兩個獨立的實體類轉化而來的關系(見圖9.3)。關系CUSTOMER中的主碼客戶號(關系中1的這邊)作為外碼加到了關系ORDER中(關系中N的這邊)。客戶訂單客戶號訂單號配置訂購日期地址到貨日期城市折扣對于二元和 元的M:N關系,即假設在兩個實體類

7、A和B之間有一個二元的多對多(M:N)關系(或聯(lián)合實體)。對于這樣一種關系,新建一個獨立關系C,其主碼是由該關系中兩個實體的主碼組成,而M:N關系中的所有非主碼屬性都要包含在關系C中。如圖9.4所示,該請求關系(M:N)連接客戶和訂單兩個實體。在轉化時,可將該E-R圖轉換為三個關系(訂單,訂單線和產品)。其中訂單明細關系是由請求關系生成的,它的主碼由訂單和產品的主碼組成(訂單號,產品號)。非主碼屬性訂購數(shù)量也出現(xiàn)在訂單項中。訂購數(shù)量產品訂單產品號描述 城市(其他屬性)訂單號 訂購日期到貨日期請求訂單關系訂單號訂購日期到貨日期訂單明細訂單號產品號訂購數(shù)量產品產品號描述城市其他屬性10有些時候,根

8、據M:N關系新建關系的主碼可能不只包括現(xiàn)有兩個相關關系的所有主碼,如圖9.5所示。在這種情況下,日期必須是運送關系的一部分主鍵,以區(qū)分運送表的每一行。如下:客戶關系客戶號供應商供應商號 地址運送客戶號供應商號日期 數(shù)量11運送供應商供應商號地址客戶客戶號日期數(shù)量E-R到關系的轉化原則E-R結構關系描述常規(guī)實體創(chuàng)建一個帶有主碼和非主碼屬性的關系。弱實體創(chuàng)建帶有組合主碼(包括該弱實體所依賴實體的主碼)和非主碼屬性的關系。二元或一元1:1關系在任意一個實體對應的關系中放置另一個實體的主碼?;蛘邔蓚€實體都做同樣的操作。二元1:N關系將1這邊的實體的主碼作為N這邊實體對應關系的一個外碼。二元或一元M:

9、N關系或關聯(lián)實體使用相關實體的主碼以及聯(lián)系或聯(lián)合實體的非碼屬性來創(chuàng)建帶有組合主碼的關系。二元或一元M:N關系或帶有附加碼的關聯(lián)實體使用相關實體的主碼和與聯(lián)系或聯(lián)合實體關聯(lián)的附加非碼屬性,及關系或聯(lián)合實體的非碼屬性來創(chuàng)建帶有組合主碼的關系。二元或一元M:N關系或自己有碼的關聯(lián)實體創(chuàng)建帶有主碼的關系,該主碼與關系或聯(lián)合實體相關,外加關系或聯(lián)合實體的非主碼和相關實體的主碼(作為外碼屬性)。父類/子類關系為父類創(chuàng)建關系,該關系包含主碼和與子類共同的所有非碼屬性,此外為每個子類創(chuàng)建只包括相同主碼(用相同的或局部名字)和只在各子類中出現(xiàn)的非碼屬性的獨立關系。關系合并同義屬性有些情況下,多個名稱不同的屬性描

10、述了一個實體的同一個特征。這種屬性稱為同義屬性(synonyms)。例如,員工號和員工_Number可能就是同義屬性。當合并那些存在同義屬性的關系時,應該盡可能地征詢用戶的同意,為該屬性選擇一個規(guī)范化的名稱,消去其他名稱。另一個代替方案是為那些同義屬性重新命名。2.異義屬性還有一種情況存在,即一個屬性名稱可能有多個含義或者描述了多個特征,稱之為異義屬性(homonym)。例如,賬戶這個詞可以指支票帳戶、儲蓄賬戶、 賬戶等。因此,它的含義取決于它的使用情形。當合并關系時要留意發(fā)現(xiàn)是否有異義屬性。關系合并3. 非主碼間的依賴當兩個3NF關系合并成一個時可能產生非主碼間的依賴。舉例如下:學生1(學號

11、,專業(yè))學生2(學號,輔導員)由于STUDENT1和STUDENT2主碼相同,所以兩個關系合并后的關系為:學生(學號,專業(yè),輔導員)但是,假如每一個專業(yè)只有一個輔導員,則輔導員就是函數(shù)依賴于專業(yè),即:專業(yè)輔導員如果這種依賴存在,因為包含非主碼間的函數(shù)依賴,學生就滿足2NF而不是3NF。分析員可以通過生成兩個關系,并將專業(yè)作為學生中的一個外碼來實現(xiàn)3NF。具體如下:學生(學號,專業(yè))專業(yè)輔導員(專業(yè),輔導員)關系合并4.類/子類在用戶的視圖或者關系中可能隱含存在著類/子類關系。假設有下面兩個醫(yī)院關系:1(,地址,治療日期)2(,號)表面上這兩個關系可以合并成一個關系。但是,如果有兩種不同的:住院

12、和出院。1實際上包含的屬性是對所有,而2中卻包含了一個針對住院的屬房號)。此時,需要為這些實體新建一個類/子類關系:(,地址)住院(,號)出院(,治療日期)轉換為DBMS規(guī)定的模型一般的數(shù)據模型還需要向特定DBMS規(guī)定的模型進行轉換。轉換的主要依據是所選用的DBMS的功能及限制,沒有通用規(guī)則。數(shù)據類型:每個DBMS支持不同的數(shù)據類型和術語,例如在Acs中,固定長度字符數(shù)據用TEXT表示,而在MS SQL Server和Oracle中,采用 CHAR(size)表示。字段大?。翰煌珼BMS表達實數(shù)的精度不同。空或非空。不同DBMS可能使用不同的預留字顯示該特性。按照定義,主碼值不能為空。域:許多

13、DBMS可以自動編輯數(shù)據,以確保字段包含合法數(shù)據,這對于應用程序確保數(shù)據完整性是一個很大的優(yōu)點。默認值。但用戶或者程序員創(chuàng)建一個包含空值字段的時,許多DBMS使用默認值自動設置值。有些情況下,空值可以作為默認值??刂茢?shù)據完整性數(shù)據完整性是有關信任,為數(shù)據庫提供了所需的控制。任何數(shù)據庫必須至少設計三類數(shù)據完整性:主鍵完整性每張表都應該有一個主鍵,不允許主鍵為空。域完整性必須設計合適的控制確保每個字段具有合法值。完整性(參照完整性)確保一張表的外鍵值匹配相關表中的主鍵值。完整性(參照完整性)規(guī)則刪除:瀑布式刪除表中的一個必須自動地緊跟著刪除相關表中的匹配。刪除:限制式不允許刪除表中,除非與之匹配的

14、已經從相關表中刪除。許多關系型DBMS可以自動強行執(zhí)行該規(guī)則。刪除:置空表中一個的刪除必須自動緊跟著將相關表中任何相匹配的鍵值設置為NULL。只有當希望刪除主表而又不想刪除對應的事務表(為了保存歷史數(shù)據)時,這條規(guī)則才有用。通過設置外鍵為NULL,可以告知該沒有對應的主,但不會把它指向不存在的主。規(guī)劃數(shù)據庫容量數(shù)據庫容量規(guī)劃可以采用簡單的算法進行計算。對于每個表,求和字段大小,得到的是表的大小。對于每個表,大小乘以表中可能包含的實例數(shù)量,得到表的大小。估算時,需要考慮合理時間段(例如3年)的增長。求和表大小,得到數(shù)據庫大小。在該大小基礎上加上一個空間余量緩沖(例如10%),以考慮未預期的。代碼

15、設計代碼作用1、唯一化現(xiàn)實世界中的事物必須轉換為機器可以識別和區(qū)分的符號語言,因此,現(xiàn)實事物必須采用唯一標識,這是編制代碼的首要任務。以人事 管理中的職工 為例,由于 經常有重名現(xiàn)象,因此難以作為唯一標識,所以需要編制職工代碼來對每位員工進行標識。2、規(guī)范化盡管已確保代碼具有唯一性,但如果代碼是雜亂無章的,使用起來也不方便。所以,除了保證標識唯一性之外,還需要使編制出的代碼易于辨認,也就是按照一定的規(guī)范編制代碼。例如,財政部關于會計科目編碼的規(guī)定,以 “1”開頭的表示資產類科 目;以“2”表示負債類科目;“3”表示權益類科目;“4”表示成本類科目等。3、系統(tǒng)化系統(tǒng)所用代碼應盡量標準化。在實際工

16、作中,一般企業(yè)所用大部分碼都有國家或行業(yè)標準。例如,會計領域中,一級會計科目由國家財政部進行標準分類,二級科目由各部委或者行業(yè) 進行標準分類,企業(yè)則只能對會計業(yè)務中的明細帳幕,即三、四科目進行分類,而且這個分類必須參照一、二級科目的規(guī)律進行。代碼設計的原則代碼設計1、必須保證有足夠的容量要足以包括規(guī)定范圍內的所有對象。如果容量不夠,不便于今后變化和擴充,隨著環(huán)境的變化這種分類很快就失去了生命力。2、按屬性系統(tǒng)化類不能是無原則的,必須遵循一定的規(guī)律。根據實際情況并結合具體管理的要求來劃分是 分類的基本方法。分類應按照處理對象的各種具體屬性系統(tǒng)地進行。如 分類方法中,哪一層次是按照什么屬性來分類,

17、哪一層次是標識一個什么類型的對象集合等都必須系統(tǒng)地進行, 的分類才比較容易建立,比較容易為別人所接受。3、分類要有一定的柔性不至于在出現(xiàn)變更時破壞分類的結構。所謂柔性是指在一定情況下分類結構對于增設或變更處理對象的可容納程度。柔性好的系統(tǒng)在一般的情況下增加分類不會破壞其結構。但是柔性往往還會帶來別的一些問 題,如冗余度大等,這都是設計分類時必須考慮。4、注意本分類系統(tǒng)與外系統(tǒng)、已有系統(tǒng)的協(xié)調。任何一項工作都是從原有的基礎上發(fā)展起來的,故分類時一定要注意新老分類的協(xié)調性,以便于系統(tǒng)的聯(lián)系、移植、協(xié)作以及新老系統(tǒng)的 平穩(wěn)過渡。代碼設計目前常用的代碼種類:順序碼 :以某種順序形式編碼。如各種票據的,

18、都是順序碼。這種編碼的優(yōu)點是簡單,易于追加,缺點是可識別性差。數(shù)字碼:數(shù)字碼是以純數(shù)字形式編碼,數(shù)字碼是在各類管理中最常用的一類編碼形式。區(qū)間碼:將順序碼分成若干區(qū)段,每一區(qū)段代表部分編碼對象。層次碼:在代碼結構中,為實體的每個屬性確定一位或幾位編碼,并排成一定的層次關系。舉例我國目前使用的居民 就是采用一個15位的數(shù)字碼,前 6位表示地區(qū)編碼,中間6位表示出生年月日,最后3位表示順序號和其它狀態(tài)( 等)。這種數(shù)字碼屬層次碼。這種編碼優(yōu)點是易于校對,易于處理,缺點是不便 。代碼設計目前常用的代碼種類:字符碼以純字符形式編碼(英文、漢語拼音等)。這類編碼常見的有 在程序設計中的字段名、變量名編碼

19、。例如:在開發(fā)一個成本管理信息系統(tǒng)時,在數(shù)據庫設計時,所有表名均以C-開始,視圖名用C-V-開始。例如產生各種材料匯總的視圖:材料成本表C-CLCB,C-V-CLHZ。這就是一個典型的純字符碼。這種編碼優(yōu)點是可輔助 ,缺點是校對不易,不易反映分類的結構?;旌洗a即以數(shù)字和字符混合形式編碼?;旌洗a是在各類管理中最常用的另一類編碼形式。這種編碼的優(yōu)點是易于識別,易于表現(xiàn)對象的系列性,缺點是不易校對。例如:GB x表示國際標準的某類編碼,IEEE802.X表示某類網絡協(xié)議標準名稱的編碼。所有的汽車牌照 ,都是混合碼。線分類方法線分類方法是目前用得最多的 法,尤其是在手工處理的情況下它幾乎成了唯一的方法

20、。線分類方法的主要方式首先給定母項, 母項下分若干子項,由對象的母項分大集合,由大集合確定小集合,最后到具體對象。線分類方法線分類劃分原則:唯一性和不交叉性。否則分類后如果出現(xiàn)有二義性,將會給后繼工作帶來諸多不便線分類法的特點:結構清晰,容易識別和,容易進行有規(guī)律的查找。與傳統(tǒng)方法相似,對手工系統(tǒng)有較好的適應性。缺點:結構不靈活,柔性較差。面分類法主要從面角度來考慮分類。面分類方法的特點:柔性好,面的增加、刪除、修改都很容易可實現(xiàn)按任意組配面的信息檢索,對機器處理有良好的適應性缺點不易直觀識別,不便于。例如:代碼3212表示材料為鋼的 1.0mm圓頭的鍍鉻螺釘。代碼的校驗錄入代碼時的可能錯誤:識別錯誤:1/7,0/O,Z/2,D/O,S/5,易位錯誤:12345/13245,雙易位錯誤:12345/13254,隨機錯誤:上述兩種或兩種以上的錯

溫馨提示

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

評論

0/150

提交評論