1 文章結(jié)構(gòu)腦圖
2 基本概念
2.1 數(shù)據(jù)建模和數(shù)據(jù)模型
數(shù)據(jù)建模最常用在系統(tǒng)開發(fā)與系統(tǒng)維護(hù)的工作環(huán)境中窟赏,也稱為系統(tǒng)開發(fā)生命周期(SDLC)稿黍。直接結(jié)果在于<font color="red">對(duì)組織數(shù)據(jù)的理解。</font><font color="green">P92</font>
<font color="red">模型是現(xiàn)實(shí)中事物的一種表征或者想要?jiǎng)?chuàng)造事物的一種模式。 一個(gè)模型可以包含一個(gè)或多個(gè)圖表</font>漓滔。模型圖可以使人們通過標(biāo)準(zhǔn)化的符號(hào)快速領(lǐng)會(huì)其內(nèi)容。地圖乖篷、組織架構(gòu)圖和建筑藍(lán)圖都是日常模型的例子响驴。<font color="green">P92</font>
<font color="red">數(shù)據(jù)模型描述了組織已經(jīng)理解或者未來需要的數(shù)據(jù)。數(shù)據(jù)模型包含一組帶有文本標(biāo)簽的符號(hào)</font>撕蔼,這些符號(hào)試圖以可視化方式展現(xiàn)數(shù)據(jù)需求并將其傳遞給數(shù)據(jù)建模人員豁鲤,以獲得一組特別的數(shù)據(jù)。<font color="green">P92</font>
數(shù)據(jù)模型是用來將數(shù)據(jù)需求從業(yè)務(wù)傳遞到IT,以及在IT內(nèi)部從分析師鲸沮、建模師和架構(gòu)師到數(shù)據(jù)庫設(shè)計(jì)人員和開發(fā)人員的<font color="red">主要媒介</font>琳骡。<font color="green">P92</font>
2.2 建模的數(shù)據(jù)類型
建模的數(shù)據(jù)類型: 1 類別信息,對(duì)事物分類或分配事物類型的數(shù)據(jù)讼溺,如顏色楣号、型號(hào)。2 資源信息, 實(shí)施操作流程所需的基本數(shù)據(jù)竖席,如產(chǎn)品耘纱、客戶敬肚。資源實(shí)體有時(shí)被稱為參考數(shù)據(jù)毕荐。3 業(yè)務(wù)事件信息, 在操作過程中創(chuàng)建的數(shù)據(jù)艳馒,如客戶訂單憎亚。事件實(shí)體有時(shí)被稱為交易性業(yè)務(wù)數(shù)據(jù)。4 詳細(xì)交易信息弄慰,通過銷售系統(tǒng)第美、傳感器生成,用于分析趨勢陆爽。大數(shù)據(jù)什往。<font color ="red">此 4 類為靜態(tài)數(shù)據(jù),部分動(dòng)態(tài)數(shù)據(jù)也可建模慌闭,如系統(tǒng)的方案,包括用于消息傳遞和基于事件的系統(tǒng)的協(xié)議和方案等别威。 </font>
2.3 數(shù)據(jù)模型組件
數(shù)據(jù)模型組件: 實(shí)體、關(guān)系驴剔、屬性省古、域。大多數(shù)數(shù)據(jù)模型都包含基本相同的組件丧失。
實(shí)體 Entity: 在數(shù)據(jù)建模之外豺妓,有別于其他事物的一個(gè)事物。在數(shù)據(jù)建模里布讹,實(shí)體是一個(gè)組織收集信息的載體琳拭。一個(gè)實(shí)體被認(rèn)為一些基本問題的答案:誰、什 么描验、何時(shí)白嘁、何地地、為什么挠乳、怎么辦权薯、度量。
一般用矩形代表睡扬,矩形中間是實(shí)體名稱盟蚣。
實(shí)體實(shí)例: <font color ="red">實(shí)體實(shí)例是特定實(shí)體的具體化或取值</font>。實(shí)體別名因模型類型不同而不同卖怜。關(guān)系模型用“實(shí)體”屎开,維度模型用“維度”和“事實(shí)表”,面向?qū)ο箢愋褪褂谩?strong>類”或“對(duì)象”;基本時(shí)間模型 用“中心”马靠、“衛(wèi)星”奄抽、“鏈接”蔼两,關(guān)系型使用“文件”、“節(jié)點(diǎn)”逞度。實(shí)體別名在概念模型中稱 “概念”额划、“術(shù)語”。邏輯模型中稱為“實(shí)體”档泽。物理模型中稱為“表”俊戳。
實(shí)體的定義屬于核心元數(shù)據(jù)。高質(zhì)量的數(shù)據(jù)定義具有清晰馆匿、準(zhǔn)確抑胎、完整三個(gè)特征。<font color="green">P93-95</font>
關(guān)系(Relationship): 是<font color="red">實(shí)體之間的關(guān)聯(lián)</font>渐北。關(guān)系捕獲概念實(shí)體之間的<font color="red">高級(jí)別交互</font>阿逃、邏輯實(shí)體之間的<font color="red">詳細(xì)交互</font>、物理實(shí)體之間的<font color="red">約束</font>赃蛛。<font color="green">P95</font>
關(guān)系別名:關(guān)系在維度模型中使用“<font color="red">導(dǎo)航路徑</font>”恃锉,在 NoSQL 中使用“<font color="red">邊界</font>”、“<font color="red">鏈接</font>”焊虏。在概念和邏輯級(jí)別上用“<font color="red">關(guān)系</font>”淡喜,在物理上使用“<font color="red">約束</font>“、”<font color="red">引用</font>“诵闭。<font color="green">P95</font>
關(guān)系在數(shù)據(jù)建模圖上表現(xiàn)為<font color="red">線條</font>炼团。<font color="green">P95</font>
關(guān)系的基數(shù): 表明一個(gè)實(shí)體與其他實(shí)體參與建立關(guān)系的數(shù)量。有“0疏尿、1瘟芝、多”。
關(guān)系的元數(shù): 關(guān)系中涉及實(shí)體的數(shù)目褥琐。有一元關(guān)系锌俱、二元關(guān)系、三元關(guān)系敌呈。一元關(guān)系:遞歸關(guān)系贸宏、 自我引用關(guān)系。一對(duì)多:層級(jí)關(guān)系磕洪。多對(duì)多: 網(wǎng)絡(luò)關(guān)系或圖表吭练。二元關(guān)系: 涉及兩個(gè)實(shí) 體的關(guān)系。三元關(guān)系: 涉及三個(gè)實(shí)體的關(guān)系析显。<font color="green">P96</font> 見下圖5-3
外鍵 Foreign Key: 在物理模型建模中表示關(guān)系鲫咽。<font color="green">P96-97</font>
屬性 Attribute: 定義、描述或度量實(shí)體某個(gè)方面的性質(zhì)。屬性可能包含域分尸。<font color="red">實(shí)體中屬性的物理展現(xiàn)為表锦聊、視圖、文檔箩绍、圖形或文件中的列孔庭、字段、標(biāo) 記或節(jié)點(diǎn)等</font> 伶选。
屬性在圖中是在實(shí)體矩形內(nèi)用列表描述史飞。<font color="green">P97</font>
標(biāo)識(shí)符 Identifiers:尖昏,也稱為鍵仰税,是唯一標(biāo)識(shí)實(shí)體實(shí)例的一個(gè)或多個(gè)屬性的集合。<font color="red">可按鍵結(jié)構(gòu)分為單一鍵抽诉、 組合鍵陨簇、復(fù)合鍵、代理鍵迹淌,按功能分為候選鍵河绽、主鍵、備用鍵</font>唉窃。<font color="green">P97</font>
鍵的結(jié)構(gòu)類型: <font color="red">單一鍵:</font>唯一標(biāo)識(shí)實(shí)體實(shí)例的一個(gè)屬性耙饰,例如,通用產(chǎn)品代碼(UPC)和車輛識(shí)別號(hào)(VINS)纹份。<font color="red">代理鍵:</font>也是單一鍵苟跪,表的唯一標(biāo)識(shí)符, 通常是一個(gè)計(jì)數(shù)符蔓涧,由系統(tǒng)自動(dòng)生成件已,一個(gè)整數(shù),含義與數(shù)值無關(guān)元暴,技術(shù)性篷扩,不應(yīng)對(duì)用戶可見。 <font color="red">組合鍵:</font>一組由兩個(gè)或多個(gè)屬性組成的集合茉盏,一起達(dá)到唯一標(biāo)識(shí)一個(gè)實(shí)體實(shí)例鉴未,例如,美國電話號(hào)碼(區(qū)號(hào)+交換機(jī)+本地號(hào)碼)和信用卡號(hào)碼(申請(qǐng)者ID +賬戶號(hào)+校驗(yàn)數(shù))鸠姨。 <font color="red">復(fù)合鍵:</font> 包含一 個(gè)組織鍵和至少一個(gè)其他單一鍵铜秆、組合鍵或非鍵屬性。例如享怀,多維事實(shí)表上的鍵,它可能包含幾個(gè)復(fù)合鍵羽峰、單一鍵和可選的加載時(shí)間戳 <font color="green">P97</font>
鍵的功能類型: <font color="red">超鍵:</font>唯一標(biāo)識(shí)實(shí)體實(shí)例的任何屬性集。<font color="red">候選鍵:</font>標(biāo)識(shí)實(shí)體實(shí)例的最小屬性集合, 可能包含一個(gè)或多個(gè)屬性梅屉。最小意味著候選鍵的任意子集都無法唯一標(biāo)識(shí)實(shí)體實(shí)例值纱。一個(gè)實(shí)體可以有多個(gè)候選鍵。候選鍵可以是業(yè)務(wù)鍵(自然鍵)坯汤。<font color="red">業(yè)務(wù)鍵:</font>業(yè)務(wù)專業(yè)人員用于檢索 單個(gè)實(shí)體實(shí)例的一個(gè)或多個(gè)屬性虐唠。業(yè)務(wù)鍵和代理鍵是互斥關(guān)系。<font color="red">主鍵:</font>被選擇為實(shí)體唯一標(biāo)識(shí)符的候選鍵惰聂。 <font color="red">備用鍵:</font>是一個(gè)候選鍵疆偿,雖唯一,但沒有被選為主鍵搓幌,可用于查找特定實(shí)體實(shí)例杆故。<font color="green">P97-98</font>
獨(dú)立實(shí)體: 其主鍵僅包含只屬于該實(shí)體的屬性,用矩形符號(hào)表示溉愁。非獨(dú)立實(shí)體: 指其主鍵于少包 含一個(gè)其它實(shí)體的屬性处铛,至少含有一個(gè)標(biāo)識(shí)關(guān)系用圓角矩形表示。<font color="green">P98</font>
標(biāo)識(shí)關(guān)系是指父實(shí)體(關(guān)系圖中一端實(shí)體)的主鍵作為外鍵被繼承到子實(shí)體主鍵的一部分拐揭。在非標(biāo)識(shí)關(guān)系中,父實(shí)體的主鍵僅被繼承為子實(shí)體的非主外鍵屬性撤蟆。<font color="green">P98</font>
域 Domain: 某一屬性可被賦予的全部可能取值。提供一種將屬性特征標(biāo)準(zhǔn)化的方法堂污。
<font color="red">域中所有的值都為有效的值家肯。不在域中的值被稱為無效的值。屬性中不應(yīng)當(dāng)含有其指定的域以外的值盟猖。</font>
可以附加的規(guī)則對(duì)域進(jìn)行限制讨衣,限制規(guī)則稱為約束。域可以使用多種不同的方式定義扒披,如** 1.數(shù)據(jù)類型(Data Type) 2.數(shù)據(jù)格式(Data Format) 3.列表(List) 4.范圍(Range) 5.基于規(guī)則(Rule-Based)**值依。 <font color="green">P98-99</font>
2.4 數(shù)據(jù)建模的方法
常見的 6 種數(shù)據(jù)建模方法是關(guān)系建模、維度建模碟案、面向?qū)ο蠼T赶铡⒒谑聦?shí)建模、基于時(shí)間建模 和非關(guān)系型建模价说。每種建模方法都采用一些特定的表示法進(jìn)行表達(dá)辆亏。
<font color="red">在關(guān)系建模方法中,三層模型僅適用于關(guān)系型數(shù)據(jù)庫鳖目,而概念模型和邏輯型模型可適用于其他數(shù)據(jù)庫</font>扮叨。基于事實(shí)的建模方法與此類似领迈。對(duì)于維度建模方法彻磁,三層模型僅適用于關(guān)系型數(shù)據(jù)庫和多維數(shù)據(jù)庫碍沐。面向?qū)ο蟮慕7椒▋H適用于關(guān)系型數(shù)據(jù)庫和對(duì)象數(shù)據(jù)庫≈则眩基于時(shí)間的建模方法屬于物理數(shù)據(jù)建模技術(shù)累提,<font color="red">主要用于關(guān)系型數(shù)據(jù)庫環(huán)境中的數(shù)據(jù)倉庫</font>。NoSQL 方法嚴(yán)重依賴于底層數(shù)據(jù)庫結(jié)構(gòu)(文檔磁浇、列斋陪、圖或 鍵值),因此也屬于物理數(shù)據(jù)建模技術(shù)置吓。<font color="green">P99-100</font> 見下表5-6
關(guān)系模型設(shè)計(jì)的目的: 是<font color="red">精確的表達(dá)業(yè)務(wù)數(shù)據(jù)无虚,消除冗余</font>。關(guān)系模型特別適合設(shè)計(jì)操作型的系統(tǒng)衍锚。在關(guān)系建模中有幾類不同的表示法可以 用來表達(dá)實(shí)體間的關(guān)系友题,包括<font color="red">信息工程法 IE、信息建模的集成定義 IDEF1X构拳、巴克表示法(Barker) 和陳氏表示法(Chen)</font>咆爽。常見是信息工程法,采用三叉線(鴨掌模型)來表示基數(shù)置森。<font color="green">P101</font>
維度建模 為了<font color="red">優(yōu)化海量數(shù)據(jù)的查詢和分析</font>。維度數(shù)據(jù)模型專注于特定業(yè)務(wù)流程的業(yè)務(wù)問題符糊。使用軸表示法( Axis Notation) 來建模凫海。此模型中實(shí)體之間的連線表示用于說明業(yè)務(wù)問題的導(dǎo)航路徑。<font color="green">P101</font>
事實(shí)表: 事實(shí)表中的行對(duì)應(yīng)于特定的數(shù)值型度量值男娄,如金額行贪。事實(shí)表占據(jù)了數(shù)據(jù)中大部分空間, 且有大量的行模闲。<font color="green">P101</font>
維度表: 表示業(yè)務(wù)的重要對(duì)象建瘫,主要留住文字描述。<font color="red">維度是事實(shí)表的入口點(diǎn)或鏈接</font>尸折。充當(dāng)查詢或 報(bào)表約束的主要來源啰脚。高度反范式的,占總數(shù)的 10%左右实夹。<font color="red">各個(gè)維度在每一行都有一個(gè)唯一的標(biāo)識(shí)符橄浓,主要是代理鍵和自然鍵</font>。維度也有些屬性亮航。漸變類的維度根據(jù)變化的速率和類型來管理變化荸实,主要變化有<font color="red">覆蓋、新行缴淋、新列</font>准给。<font color="green">P101-102</font>
雪花模型 Snowflaking: 將星型模型中的平面泄朴、單表、維度結(jié)構(gòu)規(guī)范為相應(yīng)的組件層次結(jié)構(gòu)或網(wǎng) 絡(luò)結(jié)構(gòu)露氮。<font color="green">P102</font>
粒度: 事實(shí)表中單行數(shù)據(jù)的含義或描述叼旋,是每行都有的最詳細(xì)信息。關(guān)鍵步驟之一沦辙。<font color="green">P102</font>
一致性維度: 基于整個(gè)組織夫植。一致性事實(shí):使用跨多個(gè)數(shù)據(jù)集市的標(biāo)準(zhǔn)化術(shù)語。<font color="green">P102</font>
UML: 統(tǒng)一建模語言油讯。<font color="green">P103</font>
基于事實(shí)的建模: 基于事實(shí)的模型不使用屬性,通過表示對(duì)象(實(shí)體和值) 之間的精確關(guān)系來減少直觀或?qū)<遗袛嗟男枨笙昝瘛?duì)象角色建模ORM 、ORM2陌兑。完全面向通信的建模FCO-IM沈跨。<font color="green">P104</font>
對(duì)象角色建模: 它以典型的需求信息或查詢的實(shí)例開始,這些實(shí)例在用戶熟悉的外部環(huán)境中呈現(xiàn),然后在概念層次上用受控自然語言所表達(dá)的簡單事實(shí)來描述這些實(shí)例。見下圖5-8
基于時(shí)間的數(shù)據(jù)模型: 當(dāng)數(shù)據(jù)值必須按照時(shí)間順序與特定時(shí)間值相關(guān)聯(lián)時(shí),需要用到基于時(shí)間的建模兔综。
數(shù)據(jù)拱頂: 是一組支持一個(gè)或多個(gè)業(yè)務(wù)功能領(lǐng)域饿凛,面向細(xì)節(jié)、基于時(shí)間且唯一鏈接的規(guī)范化表软驰。 數(shù)據(jù)拱頂模型是一種混合方式涧窒,<font color="red">綜合了第三范式(3NF)和星型模式的優(yōu)點(diǎn)</font>。數(shù)據(jù)拱頂模型專門 為滿足企業(yè)數(shù)據(jù)倉庫的需求而設(shè)計(jì)的锭亏。<font color="red">有 3 種類型的實(shí)體:中心表纠吴、鏈接表、衛(wèi)星表慧瘤。設(shè)計(jì)的重點(diǎn)是業(yè)務(wù)的功能領(lǐng)域戴已,中心表代表業(yè)務(wù)主鍵,鏈接表定義了中心表之間的事務(wù)集成锅减,衛(wèi)星表定義了中心表主鍵的語境信息</font>糖儡。<font color="green">P104-105</font> 見下圖5-9
錨建模: 適合信息結(jié)構(gòu)和內(nèi)容隨時(shí)間發(fā)生變化的情況。提供用于概念建模的圖形語言怔匣,能擴(kuò)展處 理臨時(shí)數(shù)據(jù)握联。它有錨、屬性劫狠、連接拴疤、節(jié)點(diǎn)四個(gè)基本建模概念。錨模擬的是實(shí)體和事件独泞。屬性模擬 了錨的特征呐矾。連接表示了錨之間的關(guān)系。節(jié)點(diǎn)模擬共享的屬性懦砂。<font color="green">P105</font>
非關(guān)系型數(shù)據(jù)庫 NoSQL: 1)文檔數(shù)據(jù)庫蜒犯。2)鍵值數(shù)據(jù)庫组橄。只有兩列中存儲(chǔ)。3)列數(shù)據(jù)庫罚随。最接近關(guān)系型數(shù)據(jù)庫玉工。可使用更復(fù)雜的數(shù)據(jù)類型淘菩,如未格式化的文本和圖像遵班。它將列存儲(chǔ)在自己的結(jié)構(gòu) 中。4)圖數(shù)據(jù)庫潮改。<font color="green">P105-106</font>
2.5 數(shù)據(jù)模型級(jí)別
數(shù)據(jù)模型級(jí)別: <font color="red">1 概念模型</font>狭郑。企業(yè)的“真實(shí)世界”視圖,代表企業(yè)當(dāng)前的最佳模式或經(jīng)營方式汇在。 <font color="red">2 外模式翰萨。3 內(nèi)模式</font>。數(shù)據(jù)的機(jī)器視圖糕殉。<font color="green">P106</font>
概念數(shù)據(jù)模型 CDM: 用一系列相關(guān)主題域的集合來描述概要數(shù)據(jù)需求亩鬼。概念數(shù)據(jù)模型僅包括給定的領(lǐng)域和職能中基礎(chǔ)和關(guān)鍵的業(yè)務(wù)實(shí)體,同時(shí)也給出實(shí)體和實(shí)體之間關(guān)系的描述阿蝶。<font color="green">P106-107</font> 見下圖5-11
邏輯數(shù)據(jù)模型 LDM: 對(duì)數(shù)據(jù)需求的詳細(xì)描述雳锋,通常用于支持特定用法的語境中(如應(yīng)用需求)。 不受任何技術(shù)或特定實(shí)施條件的給赡磅。在<font color="red">關(guān)系邏輯數(shù)據(jù)模型</font>中魄缚,通過<font color="red">添加屬性來擴(kuò)展</font>。屬性通過規(guī)范化技術(shù)被分配給實(shí)體焚廊。每個(gè)屬性和它所在實(shí)體的主鍵之間都有非常強(qiáng)的關(guān)系。在很多情況下习劫, <font color="red">維度型邏輯數(shù)據(jù)模型</font>是維度型概念數(shù)據(jù)模型的<font color="red">完全屬性透視圖</font>咆瘟。關(guān)系型邏輯數(shù)據(jù)模型捕獲業(yè)務(wù)流程的規(guī)則,而維度型邏輯數(shù)據(jù)模型捕獲業(yè)務(wù)問題以確定業(yè)務(wù)流程的運(yùn)行狀況和性能诽里。<font color="green">P107</font> 見下圖5-12 圖5-13
物理數(shù)據(jù)模型 PDM: 描述一種詳細(xì)的技術(shù)解決方案袒餐,通常以邏輯模型為基礎(chǔ),與某一類硬件谤狡、 軟件和網(wǎng)絡(luò)工具相匹配灸眼,與特定的技術(shù)有關(guān)。1)規(guī)范模型墓懂。物理模型的一個(gè)變種焰宣,用于描述系統(tǒng) 之間的數(shù)據(jù)移動(dòng)。該模型描述了在系統(tǒng)之間作為數(shù)據(jù)報(bào)或消息傳遞的數(shù)據(jù)結(jié)構(gòu)捕仔。通用以實(shí)現(xiàn)重用 和簡化接口需求匕积。2)視圖盈罐。虛擬表,提供了一種從多張包含或引用實(shí)際屬性的表中查看數(shù)據(jù)的 方法闪唆。3)分區(qū)盅粪。拆分表的過程。執(zhí)行分區(qū)是為了方便存檔和提高檢索 性能悄蕾。分區(qū)可以是垂直(按 列分組)或水平(按行分組)4)逆規(guī)范化票顾。<font color="green">P109-110</font> 見下圖5-14
逆規(guī)范化: 將符合范式規(guī)則的邏輯數(shù)據(jù)模型經(jīng)過慎重考慮后,轉(zhuǎn)換成一些帶冗余數(shù)據(jù)的物理表帆调。 逆規(guī)范化處理由于存在數(shù)據(jù)冗余而引入了產(chǎn)生數(shù)據(jù)錯(cuò)誤的風(fēng)險(xiǎn)奠骄。一般逆規(guī)范化只會(huì)提高數(shù)據(jù)庫 查詢性能或提升用戶安全操作。原因: 1提前組合來自多個(gè)其他表的數(shù)據(jù)贷帮,以避免代價(jià)高昂的運(yùn) 行時(shí)連接戚揭。2創(chuàng)建更小的、預(yù)先過濾的數(shù)據(jù)副本撵枢,以減少昂貴的運(yùn)行時(shí)計(jì)算和/或大型表的掃描民晒。 3預(yù)先計(jì)算和存儲(chǔ)昂貴的數(shù)據(jù)計(jì)算結(jié)果,以避免運(yùn)行時(shí)系統(tǒng)資源競爭锄禽。<font color="green">P110</font>
在維度建模中潜必,常稱為折疊、合并沃但。如果每個(gè)維度都被折疊為一個(gè)結(jié)構(gòu)磁滚,生成的數(shù)據(jù)模型稱為星型模型,如果維度沒有被折疊宵晚,則生成的模型為雪花模型垂攘。<font color="green">P110</font>
2.6 規(guī)范化
規(guī)范化(Normalization): 是運(yùn)用規(guī)則將復(fù)雜的業(yè)務(wù)轉(zhuǎn)化為規(guī)范的數(shù)據(jù)結(jié)構(gòu)的過程。目標(biāo)是保證 每個(gè)屬性只在一個(gè)位置出現(xiàn)淤刃,以消除冗余或冗余導(dǎo)致的不一致性晒他。規(guī)范化規(guī)則根據(jù)主鍵和外鍵整 理屬性。規(guī)范化規(guī)則可歸類到不同規(guī)范層次陨仅,對(duì)每一個(gè)層次可應(yīng)用更細(xì)的方式和規(guī)范性來搜索正 確的主鍵和外鍵猾警。每個(gè)級(jí)別由一個(gè)獨(dú)立的范式組成惶室,并且每個(gè)相繼級(jí)別不需要包含以前的級(jí)別隘世。 通常要求達(dá)到第三范式即可。平時(shí) BCNF世分、4NF畅蹂、5NF 少見健无。<font color="green">P110-111</font>
第一范式 1NF: 每個(gè)實(shí)體<font color="red">都有一個(gè)有效的主鍵</font>,每個(gè)屬性都依賴于主鍵液斜。
第二范式 2NF: 每個(gè)實(shí)體<font color="red">都有最小的主鍵</font>累贤,每個(gè)屬性都依賴于完整的主鍵叠穆。
第三范式 3NF: 每一實(shí)體<font color="red">都沒有隱藏的主鍵</font>,屬性都不依賴于鍵值外的任何屬性(僅依賴于 完整的主鍵)臼膏。<font color="red">模型的規(guī)范化通常要求達(dá)到第三范式</font>硼被。
Boyce/Codd 范式(BCNF): 解決交叉的復(fù)合候選鍵問題。候選鍵是主鍵或備用鍵渗磅。
第四范式 4NF: 將所有三元關(guān)系分解為二元關(guān)系嚷硫,直到這些關(guān)系不可再分。
第五范式 5NF: 將實(shí)體內(nèi)部的依賴關(guān)系分解為二元關(guān)系始鱼,所有聯(lián)結(jié)依賴部分主鍵仔掸。
2.7 抽象化
抽象化: 將細(xì)節(jié)移除,在更大情況下擴(kuò)展適用性医清,同時(shí)保留概念或主題的本質(zhì)屬性起暮。<font color="red">1 泛化(Generalization)</font>:將實(shí)體公共屬性和關(guān)系分組為超類實(shí)體。<font color="red">2 特化(Specialization)</font>:將實(shí)體中的分區(qū)屬性分類為子類實(shí)體会烙,通掣号常基于 實(shí)體實(shí)例中的屬性值。超類也可以使用角色或分類創(chuàng)建子類持搜,將實(shí)體的實(shí)例按功能分離到組中密似。 子類關(guān)系意味著超類的所有屬性都被子類繼承,可以減少冗余葫盼。<font color="green">P111</font>
3 語境關(guān)系圖
3.1 定義
數(shù)據(jù)建模的定義: 發(fā)現(xiàn)残腌、分析和確定數(shù)據(jù)需求的過程,用一種稱為數(shù)據(jù)模型的精確形式表示和傳 遞這些數(shù)據(jù)需求贫导。過程是循環(huán)迭代的抛猫,可能包括概念、邏輯和物理模型孩灯。<font color="green">P90</font>
常見 6 種數(shù)據(jù)模型: <font color="red">關(guān)系模式闺金。多維模式。面向?qū)ο竽J椒宓怠J聦?shí)模式败匹。時(shí)間序列模式。NoSQL 模式讥巡。</font>
根據(jù)描述詳細(xì)程度不同掀亩,可分為: <font color="red">概念模型。邏輯模型欢顷。物理模型槽棍。</font><font color="green">P90</font>
3.2 目標(biāo)
數(shù)據(jù)建模和設(shè)計(jì)的目標(biāo): 確認(rèn)并記錄對(duì)數(shù)據(jù)需求的理解,確保應(yīng)用程序更符合當(dāng)前和未 來的業(yè)務(wù)需求,為更多數(shù)據(jù)應(yīng)用或數(shù)據(jù)管理 炼七,例如主數(shù)據(jù)管理和數(shù)據(jù)治理項(xiàng)目缆巧。<font color="green">P91</font>
<font color="red">數(shù)據(jù)模型是元數(shù)據(jù)的一種重要形式。</font><font color="green">P91</font>
不同視角理解數(shù)據(jù)有助于: <font color="red">1 格式化</font>豌拙。簡潔定義陕悬,規(guī)范結(jié)構(gòu),防止異常姆蘸。<font color="red">2 范圍定義</font>诊胞。幫助解釋數(shù)據(jù)上下文的邊界炼蛤。<font color="red">3 知識(shí)保留記錄</font>。為未來提供原始記錄,助于更好的理解組織等抬闯,助于理解變更帶來的影響后频≌铀海可被重復(fù)利用遭顶,幫助了解環(huán)境中的數(shù)據(jù)結(jié)構(gòu)。建模師幫助他人理解信息藍(lán)圖牛柒。<font color="green">P91-92</font>
3.3 業(yè)務(wù)驅(qū)動(dòng)因素
業(yè)務(wù)驅(qū)動(dòng)因素: 1)提供有關(guān)數(shù)據(jù)的<font color="red">通用詞匯表</font>堪簿。2)獲取、記錄組織內(nèi)<font color="red">數(shù)據(jù)和系統(tǒng)的詳細(xì)信息</font>皮壁。 3)在項(xiàng)目中作為主要的<font color="red">交流溝通工具</font>椭更。4)提供了應(yīng)用定制、整合蛾魄,甚至替換的<font color="red">起點(diǎn)</font>虑瀑。<font color="green">P90</font>
3.4 輸入
輸入: 現(xiàn)有的數(shù)據(jù)模型和數(shù)據(jù)庫。數(shù)據(jù)標(biāo)準(zhǔn)滴须。數(shù)據(jù)集舌狗。初始數(shù)據(jù)需求。原始數(shù)據(jù)需求扔水。數(shù)據(jù)架構(gòu)痛侍。 企業(yè)分類法。交付成果:概念魔市、邏輯主届、物理數(shù)據(jù)模型。<font color="green">P91</font>
3.5 活動(dòng)
數(shù)據(jù)建模和設(shè)計(jì)活動(dòng): 1 規(guī)劃數(shù)據(jù)建模待德。2 建立數(shù)據(jù)模型(創(chuàng)建概念岂膳、邏輯、物理模型)磅网。3 審核數(shù)據(jù)模型。4 維護(hù)數(shù)據(jù)模型筷屡。<font color="green">P91</font>
3.5.1 規(guī)劃數(shù)據(jù)模型
規(guī)劃數(shù)據(jù)建模涧偷。應(yīng)先有合理計(jì)劃簸喂,包括評(píng)估組織需求、確定建模標(biāo)準(zhǔn)燎潮、明確數(shù)據(jù)模型存儲(chǔ)管理等任務(wù)喻鳄。
交付物 <font color="red">1.圖表</font>。一個(gè)數(shù)據(jù)模型包含若干個(gè)圖表确封。<font color="red">2.定義</font>除呵。實(shí)體、屬性和關(guān)系 的定義對(duì)于維護(hù)數(shù)據(jù)模型的精度至關(guān)重要爪喘。<font color="red">3.爭議和懸而未決的問題颜曾。4.血緣關(guān)系:</font>對(duì)于物理模 型來說,了解數(shù)據(jù)血緣關(guān)系是非常重要的秉剑。通常以來源泛豪、目標(biāo)映射形式呈現(xiàn)。
血緣關(guān)系重要的原因: <font color="red">一是有助于建模人員深入理解數(shù)據(jù)需求侦鹏,準(zhǔn)確定位屬性來源;二是確定屬性在源系統(tǒng)中的情況诡曙, 這是驗(yàn)證模型和映射關(guān)系準(zhǔn)確性的有效工具。</font><font color="green">P112</font>
3.5.2 建立數(shù)據(jù)模型
建立數(shù)據(jù)模型: 正向工程略水。逆向工程价卤。數(shù)據(jù)建模是一個(gè)不斷迭代的過程。<font color="green">P113</font>
正向工程: 從需求開始構(gòu)建新應(yīng)用程序的過程渊涝。概念——邏輯——物理慎璧。首先需要通過建立概 念模型來理解需求的范圍和核心的術(shù)語;然后建立邏輯模型來詳細(xì)描述業(yè)務(wù)過程;最后是通過具 體的建表語句來實(shí)現(xiàn)物理模型。<font color="green">P113</font>
概念數(shù)據(jù)模型建模: <font color="red">1 選擇模型類型驶赏。2 選擇表示方法</font>炸卑。如信息工程 法(IE)或?qū)ο蠼巧?ORM)。<font color="red">3 完成初始概念模型</font>煤傍。主要目的是獲取用戶的觀點(diǎn)盖文。<font color="red">4 收集 組織中最高級(jí)的概念(名稱)。5 收集與這些概念有關(guān)的活動(dòng)(動(dòng)詞)</font>蚯姆。關(guān)系可以是雙向五续,也可 以涉及多個(gè)概念。<font color="red">6 合并企業(yè)術(shù)語龄恋。7 獲取簽署</font>疙驾。確保對(duì)模型進(jìn)行最佳實(shí)踐及需求滿足度的評(píng)審。<font color="green">P113</font>
邏輯數(shù)據(jù)模型建模: <font color="red">1 分析信息需求</font>郭毕。需求分析包括業(yè)務(wù)需求的引 導(dǎo)/組織/記錄/評(píng)審/完善/批準(zhǔn)和變更控制它碎。邏輯數(shù)據(jù)建模是表達(dá)業(yè)務(wù)數(shù)據(jù)需求的重要手段。 <font color="red">2 分析現(xiàn)有文檔</font>。即使文檔過時(shí)也有幫助扳肛。應(yīng)考慮已有的數(shù)據(jù)模型傻挂。 <font color="red">3 添加關(guān)聯(lián)實(shí)體</font>。用于描述多對(duì) 多的關(guān)系挖息。關(guān)聯(lián)實(shí)體可以有 2 個(gè)以上的父實(shí)體金拒。在維度建模中,關(guān)聯(lián)實(shí)體通常稱為事實(shí)表套腹。 <font color="red">4 添加屬性</font>绪抛。邏輯模型中屬性有原子性,它應(yīng)有一個(gè)且只有一個(gè)數(shù)據(jù)(事實(shí))电禀,不能再拆分幢码。 <font color="red">5 指定域</font>。作用是保證模型屬性中格式和數(shù)值集的一致性鞭呕。 <font color="red">6 指定鍵</font>蛤育。分配給實(shí)體的屬性可以是鍵屬性, 也可以是非鍵屬性葫松。還需要識(shí)別主鍵和備用鍵瓦糕。<font color="green">P114-115</font>
物理數(shù)據(jù)模型建模: <font color="red">1.解決邏輯抽象</font>【子類型吸收:子類型實(shí)體屬性 作為可空列,包含在表示超類型實(shí)體的表中腋么。超類型分區(qū):超類型實(shí)體屬性包含在為每個(gè)子類型 創(chuàng)建的單獨(dú)表中咕娄。】<font color="red">2.添加屬性細(xì)節(jié)</font>珊擂。向物理模型添加詳細(xì)信息圣勒,如表和列/文檔和字段等的技術(shù) 名稱。定義每個(gè)列或字段 的物理域摧扇、物理數(shù)據(jù)類型和長度圣贸。添加約束。<font color="red">3.添加參考數(shù)據(jù)對(duì)象</font>扛稽。A. 創(chuàng)建匹配的單獨(dú)代碼表吁峻。B.創(chuàng)建主共享代碼表。C.將規(guī)則或有效代碼嵌入到相應(yīng)對(duì)象的定義中在张。 <font color="red">4.指定代理鍵</font>用含。給業(yè)務(wù)分配不可見的唯一鍵值,與它們匹配的數(shù)據(jù)沒有任意意義或關(guān)系帮匾∽暮В可選。 如果將代理鍵指定為表的主鍵瘟斜,要確保原始主鍵上有備用鍵缸夹。<font color="red">5.逆規(guī)范化</font>痪寻。有時(shí)逆規(guī)范化或添加冗余可以極大地提高性能,遠(yuǎn)超過了重復(fù)存儲(chǔ)和復(fù)制處理的成本明未。維度模型主要采用逆規(guī)范化的 手段槽华。<font color="red">6.建立索引</font>。提高查詢性能趟妥。使用最頻繁引用的列來實(shí)現(xiàn)。<font color="red">7.分區(qū)</font>佣蓉。理想情況下披摄,建議在 日期鍵上分區(qū),如不行則需要根據(jù)分析結(jié)果 和工作負(fù)載來提出改進(jìn)勇凭。<font color="red">8.創(chuàng)建視圖</font>疚膊。可用于控制 對(duì)某些數(shù)據(jù)元素的訪問虾标,也可用于嵌入公共連接條件或過濾器寓盗,實(shí)現(xiàn)覺對(duì)象或查詢的標(biāo)準(zhǔn)化。視 圖本身應(yīng)是需求驅(qū)動(dòng)璧函。<font color="green">P115-116</font>
逆向工程: 記錄現(xiàn)有數(shù)據(jù)庫的過程傀蚌。物理數(shù)據(jù)建模通常是第一步,以了解現(xiàn)有系統(tǒng)的技術(shù)設(shè)計(jì); 邏輯數(shù)據(jù)建模是第二步蘸吓,以記錄現(xiàn)有系統(tǒng)滿足業(yè)務(wù)的解決方案;概念數(shù)據(jù)建模是第三步善炫,用于記 錄現(xiàn)有系統(tǒng)中的范圍和關(guān)鍵術(shù)語。大多數(shù)數(shù)據(jù)建模工具支持各種數(shù)據(jù)庫的逆向工程库继。<font color="green">P116</font>
審核數(shù)據(jù)模型: 用價(jià)值實(shí)現(xiàn)時(shí)間箩艺。支持成本。數(shù)據(jù)模型質(zhì)量驗(yàn)證器(數(shù)據(jù)模型記分卡) 等技術(shù)用于評(píng)估模型的正確性宪萄、完整性艺谆、一致性。<font color="green">P117</font>
維護(hù)數(shù)據(jù)模型: 需要保持最新狀態(tài)拜英。一個(gè)好的習(xí)慣是對(duì)最新的物理數(shù)據(jù)模型進(jìn)行逆向 工程静汤,并確保它與邏輯模型一致。<font color="green">P117</font>
3.6 交付成果
3.7 技術(shù)驅(qū)動(dòng)因素
3.8 方法
<font color="red">命令約定的最佳實(shí)踐: </font>對(duì)每種類型建模對(duì)象和數(shù)據(jù)庫對(duì)象發(fā)布數(shù)據(jù)模型和數(shù)據(jù)庫命名 標(biāo)準(zhǔn)聊记。命名標(biāo)準(zhǔn)對(duì)于實(shí)體撒妈、表、屬性排监、鍵狰右、視圖和索引尤為重要。名稱應(yīng)該是<font color="red">唯一的并且盡可能具有描述性</font>舆床。邏輯名稱對(duì)業(yè)務(wù)用戶應(yīng)具有意義棋蚌,應(yīng)盡可能使用<font color="red">完整的單詞</font>嫁佳,避免使用不熟悉的縮寫。物理名稱符合 DBMS <font color="red">允許的長度谷暮,必要時(shí)使用縮寫</font>蒿往。邏輯名稱通常不允許使用<font color="red">任何的分隔符。物理名稱可使用下劃線作為單詞分隔符</font>湿弦。命名標(biāo)準(zhǔn)應(yīng)該盡量<font color="red">減少跨環(huán)境的名稱變化</font>瓤漏。名稱不 應(yīng)受其特定環(huán)境影響,如測試颊埃、QA 或生產(chǎn)環(huán)境蔬充。分類詞(Class Word),即數(shù)量班利、名稱和代碼 等屬性名稱中的最后一個(gè)術(shù)語饥漫,可用于從表名中區(qū)分實(shí)體和列名的屬性。<font color="green">P119</font>
<font color="red">數(shù)據(jù)庫設(shè)計(jì)中的最佳實(shí)踐-PRISM 設(shè)計(jì)原則: </font> 1 性能和易用性罗标。2 可重用性庸队。多應(yīng)用重復(fù)使用,并可用于多目的闯割。3 完整性彻消。數(shù)據(jù)應(yīng)始終具有有效的業(yè)務(wù)含義和價(jià)值,始終反映業(yè)務(wù)的有效狀態(tài)纽谒。4 安全性证膨。始終向授予用戶提供真實(shí)準(zhǔn)確的數(shù)據(jù),且僅限授權(quán)用戶使用鼓黔。5 可維護(hù)性央勒。維護(hù)成本不超過其對(duì)組織的價(jià)值;盡可能快速響應(yīng)業(yè)務(wù)流程和新業(yè)務(wù)需要變化。<font color="green">P119-120</font>
3.9 工具
數(shù)據(jù)建模工具: 自動(dòng)實(shí)現(xiàn)數(shù)據(jù)建模功能的軟件澳化。<font color="green">P117</font>
數(shù)據(jù)血緣工具: <font color="red">是允許捕獲和維護(hù)數(shù)據(jù)模型上每個(gè)屬性的源結(jié)構(gòu)變化的工具崔步。可以實(shí)現(xiàn)變更影響分析缎谷。<font color="green">P117</font>
數(shù)據(jù)分析工具: 可以幫助探索數(shù)據(jù)內(nèi)容井濒,根據(jù)當(dāng)前的元數(shù)據(jù)進(jìn)行驗(yàn)證、識(shí)別數(shù)據(jù)質(zhì)量和現(xiàn)有數(shù)據(jù)工件(如邏輯和物理模型列林、DDL 和模型描述)的缺陷瑞你。<font color="green">P118</font>
元數(shù)據(jù)資料庫: 軟件工具。用于存儲(chǔ)有關(guān)數(shù)據(jù)模型的描述性信息希痴,包括圖表和附帶的 文本(如定義)以及通過其他工具和流程(軟件開發(fā)工具者甲、BPM 工具、系統(tǒng)目錄等)導(dǎo)入的元數(shù) 據(jù)砌创。元數(shù)據(jù)資料庫本身應(yīng)該啟用元數(shù)據(jù)集成和交換虏缸。共享元數(shù)據(jù)比存儲(chǔ)元數(shù)據(jù)更為重要鲫懒。<font color="green">P118</font>
數(shù)據(jù)模型模式: 數(shù)據(jù)模型模式是可重復(fù)使用的模型結(jié)構(gòu),有組件刽辙、套件和整合數(shù)據(jù)模 型模式窥岩。基本模式(Elementary Pattern) 是數(shù)據(jù)建模的“螺母和螺栓”,包括解決多對(duì)多關(guān)系和 構(gòu)建自引用層次結(jié)構(gòu)的方法宰缤。套件模式(Assembly Pattern) 是指跨越業(yè)務(wù)人員和數(shù)據(jù)建模人員 范疇的一套構(gòu)建塊颂翼。業(yè)務(wù)人員可以理解它們——資產(chǎn)、文檔慨灭、人員和組織等疚鲤。已公布主題模型套 件,可為建模設(shè)計(jì)人員提供可靠的缘挑、強(qiáng)健的、可擴(kuò)展的和可實(shí)現(xiàn)的模型設(shè)計(jì)桶略。整合模式 (Integration Pattern) 提供了以常見方式整合套件模式的框架语淘。<font color="green">P118</font>
行業(yè)數(shù)據(jù)模型: 為整個(gè)行業(yè)預(yù)建的數(shù)據(jù)模型。<font color="green">P118-119</font>
3.10 度量指標(biāo)
度量指標(biāo): 數(shù)據(jù)模型校驗(yàn)指標(biāo)际歼。<font color="green">P91</font>
度量指標(biāo): 使用數(shù)據(jù)模型計(jì)分卡惶翻,提供了對(duì)模型質(zhì)量的總體評(píng)估方法,并明確指出了針對(duì)模型的改進(jìn)方案鹅心。 見下圖5-15 <font color="green">P112-113</font>
各種類別的描述如下:1.模型多大程度上反映了業(yè)務(wù)需求?2.模型的完整性如何?(需求完整性吕粗。 元數(shù)據(jù)完整性)3.模型與模式的匹配度是多少?4.模型的結(jié)構(gòu)如何?5.模型的通用性如何?6.模 型遵循命名標(biāo)準(zhǔn)的情況如何?7.模型的可讀性如何?8.模型的定義如何?(清晰/完整/準(zhǔn)確)9.模 型與企業(yè)數(shù)據(jù)架構(gòu)的一致性如何?10.與元數(shù)據(jù)的匹配程度如何? <font color="green">P112-113</font>
4 實(shí)施指南
數(shù)據(jù)建模和設(shè)計(jì)質(zhì)量管理: 數(shù)據(jù)模型和數(shù)據(jù)庫設(shè)計(jì)應(yīng)是組織短期需求和長期需求之間的合理平 衡。主要有:1 開發(fā)數(shù)據(jù)建模和設(shè)計(jì)標(biāo)準(zhǔn)旭愧。2 評(píng)審數(shù)據(jù)模型及數(shù)據(jù)庫設(shè)計(jì)質(zhì)量颅筋。3 管理數(shù)據(jù)模 型版本與集成。<font color="green">P120</font>
開發(fā)數(shù)據(jù)建模和設(shè)計(jì)標(biāo)準(zhǔn) <font color="green">P120</font>
1)標(biāo)準(zhǔn)數(shù)據(jù)建模和數(shù)據(jù)庫設(shè)計(jì)可交付成果的列表和描述输枯。
2)適用于所有數(shù)據(jù)模型對(duì)象的標(biāo)準(zhǔn)名稱议泵、可接受的縮寫和非常用單詞的縮寫規(guī)則列表。
3)所有數(shù)據(jù)模型對(duì)象的標(biāo)準(zhǔn)命名格式列表,包括屬性和分類詞桃熄。
4)用于創(chuàng)建和維護(hù)這些可交付成果的標(biāo)準(zhǔn)方法的列表和說明先口。
5)數(shù)據(jù)建模和數(shù)據(jù)庫設(shè)計(jì)角色和職責(zé)的列表和描述。
6)數(shù)據(jù)建模和數(shù)據(jù)庫設(shè)計(jì)中捕獲的所有元數(shù)據(jù)屬性的列表和描述,包括業(yè)務(wù)元數(shù)據(jù)和技術(shù)元數(shù)據(jù)瞳收。例如,指導(dǎo)原則中可以設(shè)置數(shù)據(jù)模型為每個(gè)屬性捕獲數(shù)據(jù)血緣的期望碉京。
7)元數(shù)據(jù)質(zhì)量期望和要求。
8)如何使用數(shù)據(jù)建模工具的指南螟深。
9)準(zhǔn)備和領(lǐng)導(dǎo)設(shè)計(jì)評(píng)審的指南谐宙。
10)數(shù)據(jù)模型版本控制指南。
11)禁止或需要避免的事項(xiàng)列表血崭。
管理數(shù)據(jù)模型版本與集成: 需要以時(shí)間線記錄變更內(nèi)容卧惜,每個(gè)變更都應(yīng)記錄厘灼,包括:Why。What咽瓷。How设凹。When。Who茅姜。Where闪朱。<font color="green">P121</font>
5 關(guān)鍵架構(gòu)圖
-
圖5-1語境關(guān)系圖
-
表5-2 常用的實(shí)體類別
-
圖5-3 一元關(guān)系
-
圖5-4 二元關(guān)系
-
圖5-5 三元關(guān)系
-
表5-6 建模方法和表示法
-
表5-7 數(shù)據(jù)庫交叉應(yīng)用模式(Scheme to Database Cross Reference)
-
圖5-8 基于事實(shí)的建模
-
圖5-9 數(shù)據(jù)拱頂模型
-
圖5-10 錨建模
-
圖5-11 概念數(shù)據(jù)模型
-
圖5-12 關(guān)系型邏輯數(shù)據(jù)模型
-
圖5-13 維度型邏輯數(shù)據(jù)模型
-
圖5-14 關(guān)系型物理數(shù)據(jù)模型
-
表5-15 數(shù)據(jù)模型計(jì)分卡