數(shù)據(jù)模型設(shè)計要點.doc
《數(shù)據(jù)模型設(shè)計要點.doc》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)模型設(shè)計要點.doc(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
數(shù)據(jù)模型設(shè)計要點 目錄 1. 數(shù)據(jù)模型設(shè)計的輸入 4 2. 數(shù)據(jù)模型設(shè)計必須的幾個階段 4 2.1. 概念數(shù)據(jù)模型設(shè)計(Conceptual Data Model) 5 2.2. 邏輯數(shù)據(jù)模型設(shè)計(Logical Data Model) 6 2.2.1. 設(shè)計范式要求 7 2.2.1.1. 第一范式 7 2.2.1.2. 第二范式 7 2.2.1.3. 第三范式 8 2.2.1.4. 逆第三范式 9 2.2.2. 其他要求 10 2.2.2.1. 數(shù)據(jù)類型定義 10 2.2.2.2. 實體名稱定義 10 2.2.2.3. 主鍵定義 10 2.2.2.4. 實體關(guān)系定義 10 2.2.2.5. 數(shù)據(jù)量估算 11 2.2.2.6. 索引定義 11 2.3. 物理數(shù)據(jù)模型(Physical Data Model) 11 2.3.1. 物理庫設(shè)計 12 2.3.1.1. 數(shù)據(jù)庫Server設(shè)計 12 2.3.1.2. 表空間設(shè)計 12 2.3.1.3. 用戶及權(quán)限設(shè)計 12 2.3.2. 物理表設(shè)計 13 2.3.2.1. 數(shù)據(jù)類型設(shè)計 13 2.3.2.2. 存儲設(shè)計 13 2.3.2.3. 主外鍵設(shè)計 13 2.3.2.4. 索引設(shè)計 13 2.3.2.5. 生成建表語句 14 3. 數(shù)據(jù)模型設(shè)計相關(guān)工具軟件 14 4. 數(shù)據(jù)模型設(shè)計的產(chǎn)出及規(guī)格要求 14 4.1. 概念數(shù)據(jù)模型設(shè)計階段 14 4.2. 邏輯數(shù)據(jù)模型設(shè)計階段 14 4.3. 物理數(shù)據(jù)模型設(shè)計階段 15 1. 數(shù)據(jù)模型設(shè)計的輸入 傳統(tǒng)的瀑布型的開發(fā)模型下,其特點是需求驅(qū)動。相應(yīng)的,數(shù)據(jù)模型設(shè)計的必要輸入為需求分析階段的產(chǎn)出,包括需求規(guī)格說明書(需求分析說明書)、數(shù)據(jù)字典。 分析型應(yīng)用由于其需求不易迅速全面予以明確,所以適合用螺旋式開發(fā)模型,逐步迭代。但由于分析型應(yīng)用是數(shù)據(jù)驅(qū)動,所以數(shù)據(jù)模型的設(shè)計要求更高,需要根據(jù)業(yè)務(wù)和數(shù)據(jù)的實際情況,進(jìn)行快速全面分析,并有充分的管理思維,才能設(shè)計出比較理想的數(shù)據(jù)模型。其輸入就不僅限于傳統(tǒng)的瀑布開發(fā)模型下的需求規(guī)格說明書和數(shù)據(jù)字典,而是要從業(yè)務(wù)層面分析各個現(xiàn)有業(yè)務(wù)實體,以管理思維的角度,進(jìn)行必要的抽象、歸納和挖掘,結(jié)合未來管理需要,明確潛在業(yè)務(wù)實體,以及各業(yè)務(wù)實體之間的關(guān)系,最終予以設(shè)計實現(xiàn)。 2. 數(shù)據(jù)模型設(shè)計必須的幾個階段 無論是瀑布模型還是螺旋模型,數(shù)據(jù)模型的設(shè)計都必須經(jīng)歷概念數(shù)據(jù)模型設(shè)計、邏輯數(shù)據(jù)模型設(shè)計和物理數(shù)據(jù)模型設(shè)計三個階段。 其中,概念數(shù)據(jù)模型設(shè)計的主要工作是提取概念實體并分析其關(guān)系,這是最關(guān)鍵的工作,直接影響后續(xù)工作的質(zhì)量;邏輯數(shù)據(jù)模型設(shè)計的主要工作是設(shè)計各邏輯實體的屬性、主鍵、索引以及各實體之間的關(guān)系,此部分與物理數(shù)據(jù)庫無關(guān);物理數(shù)據(jù)模型設(shè)計的主要工作是結(jié)合具體的物理數(shù)據(jù)庫平臺進(jìn)行存儲設(shè)計。 這三個階段并不是完全單向的,而是可以反向調(diào)整。假設(shè)后面的階段發(fā)現(xiàn)有問題,可以轉(zhuǎn)到上一階段進(jìn)行必要的修改后繼續(xù)進(jìn)行。但一定不能不管前一階段的結(jié)果,放任自流地進(jìn)行后面階段的工作。 2.1. 概念數(shù)據(jù)模型設(shè)計(Conceptual Data Model) 本階段的任務(wù)是對業(yè)務(wù)領(lǐng)域的各概念實體進(jìn)行歸納和總結(jié)的過程。該過程以分析概念實體以及它們之間的關(guān)系為目標(biāo),而不是以細(xì)化概念實體的各項屬性為目標(biāo)。 該階段工作非常重要,是進(jìn)行其他階段工作的基礎(chǔ)。 各概念實體的提取一般以業(yè)務(wù)領(lǐng)域或者需求中提到的“業(yè)務(wù)名詞”為線索,但不應(yīng)該需求中提到什么名詞就在模型中設(shè)計什么實體,更不應(yīng)該需求中沒有提到某些名詞之間的關(guān)系,模型中就根本不考慮對應(yīng)實體之間的關(guān)系。概念模型設(shè)計過程,實際上是以概念實體為線索,對需求分析結(jié)果進(jìn)行測試的過程。需求分析工作的質(zhì)量好不好,在此工作中基本能得到初步驗證。 概念模型設(shè)計過程中提取的概念實體,可能比業(yè)務(wù)領(lǐng)域中的多,也可能比業(yè)務(wù)領(lǐng)域中的少,關(guān)鍵看歸納和抽象的粒度。并且,這些概念實體最終不一定都需要以物理表的方式體現(xiàn)在數(shù)據(jù)庫設(shè)計中。完全是為了能夠從“概念”層面把實體以及其關(guān)系看清楚為目的。 比如一個OCRM系統(tǒng)中提到“營銷方案”、“營銷團(tuán)隊”、“營銷任務(wù)”、“年度營銷任務(wù)”、“日常營銷任務(wù)”等名詞,據(jù)此可以提取出以下業(yè)務(wù)實體和實體間的關(guān)系: 雖然用戶可能沒有提出日常營銷任務(wù)是否需要營銷方案,但通過分析,這種情況是有可能的,所以可以在設(shè)計概念模型時,可以將日常營銷任務(wù)與營銷方案的關(guān)系設(shè)置為1-0,1。這樣,即便是未來發(fā)生需求的變化,數(shù)據(jù)模型也可以迅速提供支持。 2.2. 邏輯數(shù)據(jù)模型設(shè)計(Logical Data Model) 此階段開始關(guān)注概念實體的各項屬性。 該階段還不必更多考慮實現(xiàn)時的物理數(shù)據(jù)庫方面的要求。 設(shè)計邏輯數(shù)據(jù)模型時,需注意參考必要的設(shè)計范式要求。常用的設(shè)計范式簡單列舉其要點并舉例如下(以學(xué)生選課為例): 2.2.1. 設(shè)計范式要求 2.2.1.1. 第一范式 目的:實現(xiàn)屬性的原子性——屬性不可再分,屬性不能重復(fù); 不符合第一范式的設(shè)計: SNO 學(xué)號 SNAME 姓名 CNO 課程號 CNAME 課程名 CADDR 上課地址 TNO 教室號 TNAME 教師名 TTile 職稱 Score 成績 Level 等級 SCONCAT 學(xué)生聯(lián)系方式 S01 張三 C01 語文 201教室 T01 老師1 高級 95 優(yōu) TEL:12345;Email:abc@3.com S02 李四 C02 語文 202教室 T02 老師2 中級 98 優(yōu) TEL:12346;Email:abc@4.com S03 王五 C03 數(shù)學(xué) 203教室 T03 老師3 初級 70 良 TEL:12347;Email:abc@5.com 符合第一范式的設(shè)計: SNO SNAME CNO CNAME CADDR TNO TNAME TTile Score Level STEL SEMAIL S01 張三 C01 語文 201教室 T01 老師1 高級 95 優(yōu) 12345 abc@123.com S02 李四 C02 語文 202教室 T02 老師2 中級 98 優(yōu) 12346 abc@124.com S03 王五 C03 數(shù)學(xué) 203教室 T03 老師3 初級 70 良 12347 abc@125.com 2.2.1.2. 第二范式 目的:實現(xiàn)屬性的完全依賴——屬性唯一依賴于主鍵,不能依賴于主鍵的一部分。 基于第一范式結(jié)果進(jìn)行修改,使其符合第二范式:1)定義SNO+CNO為主鍵;2) 將不完全依賴這個主鍵的屬性剝離到獨立的表中; SNO(PK-1) CNO(PK-2) Score Level S01 C01 95 優(yōu) S02 C02 98 優(yōu) S03 C03 70 良 新創(chuàng)建學(xué)生表: SNO SNAME STEL SEMAIL S01 張三 12345 abc@123.com S02 李四 12346 abc@124.com S03 王五 12347 abc@125.com 新創(chuàng)建教師表: TNO TNAME TTile T01 老師1 高級 T02 老師2 中級 T03 老師3 初級 新創(chuàng)建課程表: CNO CNAME CADDR TNO C01 語文 201教室 T01 C02 語文 202教室 T02 C03 數(shù)學(xué) 203教室 T03 2.2.1.3. 第三范式 目的:消除傳遞依賴。屬性不依賴于其他非主屬性。 基于第二范式結(jié)果進(jìn)行修改,將涉及傳遞依賴的屬性也剝離出去,使其符合第三范式: SNO(PK-1) CNO(PK-1) ScoreNO S01 C01 Score1 S02 C01 Score2 S03 C02 Score3 學(xué)生表: SNO SNAME STEL SEMAIL S01 張三 12345 abc@123.com S02 李四 12346 abc@124.com S03 王五 12347 abc@125.com 教師表: TNO TNAME TTile T01 老師1 高級 T02 老師2 中級 T03 老師3 初級 課程表: CNO CNAME CADDR TNO C01 語文 201教室 T01 C02 語文 202教室 T02 C03 數(shù)學(xué) 203教室 T03 新創(chuàng)建成績表: ScoreNO Score Level Score1 95 優(yōu) Score2 98 優(yōu) Score3 70 良 由上例子可以看出,為使設(shè)計成本和收益達(dá)到平衡,具體使用時不可能全部符合第三范式,一般大部分表能夠符合第二范式就可以。 2.2.1.4. 逆第三范式 特別在統(tǒng)計分析系統(tǒng)的數(shù)據(jù)模型設(shè)計過程中,還會有針對性的特別進(jìn)行大量的“逆第三范式”的處理。 在傳統(tǒng)的OLTP系統(tǒng)中,同樣也也會存在逆第三范式的處理。 典型的例子是核心業(yè)務(wù)系統(tǒng)中的交易流水表。之前該表一般設(shè)計為只記錄經(jīng)辦柜員的柜員號,但后來隨著交易量大幅增加,為提高查詢效率,后來在新的核心業(yè)務(wù)系統(tǒng)設(shè)計中,一般把柜員名稱冗余在此表中。 在數(shù)據(jù)分析應(yīng)用中,這種情況就更多了,只要設(shè)計比較清晰,并購清楚知道哪些字段是冗余過來的,并且與來源表的數(shù)據(jù)類型嚴(yán)格保持一致即可。 2.2.2. 其他要求 2.2.2.1. 數(shù)據(jù)類型定義 邏輯數(shù)據(jù)模型中需明確數(shù)據(jù)類型和精度,對使用較多的數(shù)據(jù)類型,必要時可定義Domain來進(jìn)行元數(shù)據(jù)的統(tǒng)一。 2.2.2.2. 實體名稱定義 需明確邏輯實體的中文名稱和英文名稱,需建立必要的命名規(guī)范。 2.2.2.3. 主鍵定義 需明確定義各邏輯實體的主鍵和唯一索引。 從之前各范式的目的和使用描述來看,定義主鍵和唯一索引是必須的過程,否則談不上進(jìn)行第二、第三范式處理。 盡量采用屬性或?qū)傩缘慕M合做為主鍵,至少為其指定唯一索引。 物理設(shè)計時,根據(jù)效率等各方面要求進(jìn)行取舍,決定到底是用有業(yè)務(wù)含義的屬性做為主鍵還是用無業(yè)務(wù)含義的序列號字段做主鍵。 2.2.2.4. 實體關(guān)系定義 邏輯數(shù)據(jù)模型中需明確各邏輯實體之間的關(guān)系。該工作是概念數(shù)據(jù)模型設(shè)計工作的延續(xù),還是以業(yè)務(wù)領(lǐng)域的業(yè)務(wù)實體間的關(guān)系為線索對關(guān)聯(lián)關(guān)系進(jìn)行細(xì)化定義,而不是無原則地亂去分析,或者從程序查詢角度分析,甚至僅從數(shù)據(jù)加工處理角度分析。 該工作包括兩層含義: 1) 定義邏輯實體之間的關(guān)聯(lián)類型 明確定義各表之間的關(guān)聯(lián)關(guān)系:1-1、1-多,多-1,多-多。 假設(shè)存在孤立,毫無關(guān)聯(lián)的表,則需仔細(xì)分析其存在的必要性。 2) 定義邏輯實體之間的主外鍵對照關(guān)系 具體進(jìn)行物理設(shè)計時可斟酌是否真正以外鍵的范式實現(xiàn),但此階段必須先定義,否則極易出現(xiàn)該關(guān)聯(lián)的字段數(shù)據(jù)類型不一致,至少會造成關(guān)聯(lián)查詢的問題。 2.2.2.5. 數(shù)據(jù)量估算 分析各邏輯實體的存儲量和每日記錄增長量。 2.2.2.6. 索引定義 設(shè)計邏輯實體的目的就是為了查詢,所以為提高查詢效率,為邏輯實體指定索引是必須的設(shè)計步驟。 在此階段,可基于各表的使用特點為其指定索引,指定的索引如果是組合索引,需明確其字段順序。 由于索引的設(shè)置方法與最終物理數(shù)據(jù)庫的設(shè)計方法有關(guān),所以也可將索引定義的工作移到物理設(shè)計時再進(jìn)行。 2.3. 物理數(shù)據(jù)模型(Physical Data Model) 物理數(shù)據(jù)模型設(shè)計是在邏輯數(shù)據(jù)模型設(shè)計的基礎(chǔ)上,結(jié)合具體使用的物理數(shù)據(jù)庫平臺,對物理實體的存儲特性進(jìn)行特別設(shè)計,同時包括對索引的優(yōu)化工作。 物理數(shù)據(jù)模型設(shè)計需進(jìn)行的工作分別描述如下。 2.3.1. 物理庫設(shè)計 2.3.1.1. 數(shù)據(jù)庫Server設(shè)計 數(shù)據(jù)庫server的標(biāo)識。 是獨立server還是共用server,是獨立instance還是共用instance。 數(shù)據(jù)庫必須進(jìn)行哪些特殊設(shè)置:需修改哪些數(shù)據(jù)庫級參數(shù),哪些instance級參數(shù),哪些session級參數(shù)。可能的參數(shù)包括:查詢堆參數(shù)、共享內(nèi)存參數(shù)、優(yōu)化級別、鎖個數(shù)、buffer size、buffer number,等等。 如果手工修改,需給出操作手冊;如果程序修改,需提供程序。 2.3.1.2. 表空間設(shè)計 數(shù)據(jù)庫涉及哪些表空間(tablespace/dbs),其用途如何? 每個表空間由哪些物理文件(Datafile/Chunk)組成?其大小,所屬用戶/用戶組,權(quán)限,操作系統(tǒng)絕對路徑如何? 系統(tǒng)默認(rèn)臨時表空間為哪個? 索引表空間應(yīng)該與數(shù)據(jù)表空間分別使用不同的硬盤。 如何創(chuàng)建表空間,手工方式下需提供操作手冊;程序方式下需提供程序。 2.3.1.3. 用戶及權(quán)限設(shè)計 數(shù)據(jù)庫中設(shè)計哪些用戶?其權(quán)限如何,密碼如何,密碼是否存在定期修改的要求? 如何創(chuàng)建用戶,手工方式下需提供操作手冊;程序方式下需提供程序。 2.3.2. 物理表設(shè)計 2.3.2.1. 數(shù)據(jù)類型設(shè)計 明確定義各物理實體屬性字段的數(shù)據(jù)類型,同類的數(shù)據(jù)類型可考慮在數(shù)據(jù)庫平臺中建立必要的Domain或別名,以進(jìn)行統(tǒng)一。 將數(shù)據(jù)類型固定在幾個有限的取值范圍內(nèi),避免隨便定義新的類型或新的精度。 2.3.2.2. 存儲設(shè)計 設(shè)計物理表存儲在哪個表空間內(nèi)。 設(shè)計物理表的初始化塊和后續(xù)塊大小。 根據(jù)需要,對物理表進(jìn)行分區(qū)設(shè)計。 根據(jù)修改動作的多少,為物理表設(shè)計適合的水位線(WaterMark),以減少存儲碎片的產(chǎn)生。 2.3.2.3. 主外鍵設(shè)計 定義物理表的主鍵,若是組合主鍵,定義字段的先后順序。 定義表的外鍵。 2.3.2.4. 索引設(shè)計 設(shè)計需要的索引,若是組合索引,定義字段的先后順序。 若設(shè)計了索引數(shù)據(jù)表空間,將索引定義到該空間內(nèi)。 為提高查詢效率,可為單個表設(shè)計多個索引。 2.3.2.5. 生成建表語句 物理設(shè)計完成,需生成建表語句。 3. 數(shù)據(jù)模型設(shè)計相關(guān)工具軟件 數(shù)據(jù)模型設(shè)計相關(guān)的工具軟件很多,選擇余地很大,但工具再強(qiáng)大,也需要人去用,工具本身并不能幫助進(jìn)行數(shù)據(jù)模型設(shè)計,甚至在方法不當(dāng)?shù)那闆r下還會起反作用。 需明確工具的使用規(guī)范,以最終統(tǒng)一和提高產(chǎn)出工件的標(biāo)準(zhǔn)化和質(zhì)量。 工具需要與文檔描述相結(jié)合。可充分使用工具軟件的文檔生成功能以生成必要的文檔,并在此基礎(chǔ)上進(jìn)行必要的修訂,以集中對設(shè)計進(jìn)行說明。 4. 數(shù)據(jù)模型設(shè)計的產(chǎn)出及規(guī)格要求 4.1. 概念數(shù)據(jù)模型設(shè)計階段 《概念數(shù)據(jù)模型設(shè)計說明書》:說明提取出的實體,并解釋其含義。 《概念數(shù)據(jù)模型設(shè)計文件》:著重說明實體間關(guān)系。 建議以文字為主描述實體,以圖為主描述實體關(guān)系。 4.2. 邏輯數(shù)據(jù)模型設(shè)計階段 《邏輯數(shù)據(jù)模型設(shè)計說明書》:說明提取出的實體,并解釋其含義;描述屬性含義及取值范圍、約束等信息,并描述主鍵和唯一索引。 《邏輯數(shù)據(jù)模型設(shè)計文件》:著重說明實體間關(guān)系。 建議以文字為主描述實體,以圖為主描述實體關(guān)系。 4.3. 物理數(shù)據(jù)模型設(shè)計階段 《數(shù)據(jù)庫設(shè)計說明書及程序》:說明數(shù)據(jù)庫層面的設(shè)計結(jié)果,包括server、參數(shù)、用戶及權(quán)限。包括必要的程序或者操作手冊。 《表空間設(shè)計說明書及程序》:說明表空間層面的設(shè)計結(jié)果。包括必要的程序或者操作手冊。 《數(shù)據(jù)庫表設(shè)計說明書及程序》:說明數(shù)據(jù)庫表的設(shè)計結(jié)果。包括必要的程序或者操作手冊。- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)模型 設(shè)計 要點
鏈接地址:http://m.italysoccerbets.com/p-6702470.html