溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

3NF淺談BI領(lǐng)域的數(shù)據(jù)模型設(shè)計

發(fā)布時間:2020-08-08 11:03:17 來源:ITPUB博客 閱讀:247 作者:pentium 欄目:關(guān)系型數(shù)據(jù)庫

/**********************************/

目錄:

第一部分:基礎(chǔ)概念

第二部分:設(shè)計方式

第三部分:銀行業(yè)數(shù)據(jù)模型基本概念介紹

第四部分:銀行業(yè)數(shù)據(jù)模型分主題介紹

第五部分:ODS和EDW

/**********************************/

第一部分:基礎(chǔ)概念

1.什么是LDM(Logic Data Module)

LDM是一個業(yè)務(wù)組織的信息表示方式

不是Database

平臺獨立

是對業(yè)務(wù)數(shù)據(jù)的邏輯表示

定義存在的數(shù)據(jù)實體和它們之間的關(guān)系

業(yè)務(wù)人員通過LDM就可以知道其業(yè)務(wù)問題能否被解決

2.LDM的特點

穩(wěn)定性:

可以長期滿足業(yè)務(wù)需求

正確性:

對真實世界的業(yè)務(wù)one-to-one 的數(shù)據(jù)映射

共享性:

不是為特定部門或特定應(yīng)用需求而設(shè)計

靈活性:

當(dāng)業(yè)務(wù)環(huán)境變化后,只要進行最小的改動

3.LDM的行業(yè)特性

不同行業(yè)有不同的LDM參考模型

通信(Communication) cLDM

金融(Financial) FISLDM

醫(yī)療(HealthCare)

零售(Retail)

交通(Transportation)

旅游(Travel)

制造(Manufacture)

4.為什么要使用LDM(實施端)

減少成本(cost savings)

降低風(fēng)險(Reduce Risk)

1:1 Mapping(LDM->PDM)

低維護量(Low Maintenance)

溝通(Communication)

全企業(yè)級(Cross Functional)

客戶中心(Customer Centric)

5.為什么要用LDM(客戶端)

生成一個精確(accurate)和一致(consistent)的業(yè)務(wù)數(shù)據(jù)視圖

對業(yè)務(wù)規(guī)則的清晰表達

可以超越當(dāng)前數(shù)據(jù)的局限,提供數(shù)據(jù)集成的路線圖

對各個層級的參與者提供溝通的手段

6.建??蚣? Data Modeling Frame Work)

7.LDM(Logic Data Module)和PDM(Physical Data Module)

8.LDM和ERD

ERD (Entity Relationship Diagram)

ERD 是一個標(biāo)準(zhǔn)建模技術(shù),對LDM進行圖形化的表達

ERD技術(shù)可以通過不同的產(chǎn)品進行體現(xiàn):

Erwin

Power Designer

Visio

ERD 需要表達:

實體(Entity)。所有事物

關(guān)系(Relationship)。不同業(yè)務(wù)實體之間的關(guān)聯(lián)關(guān)系

屬性(Attribute)。實體或者關(guān)系的數(shù)據(jù)事實(data fact),是最低層級的信息,且業(yè)務(wù)含義不可拆分

主鍵(Primary Key)

關(guān)系描述符(Relationship Descriptor)

外鍵(Foreign Key)

9.LDM和Table Layout (表樣式)

Table Layout 通過在LDM中加入樣例數(shù)據(jù)(sampling data),使得業(yè)務(wù)人員可以更直觀的理解數(shù)據(jù)。

鍵屬性用藍色表示,非鍵屬性用紅色表示

第二部分:設(shè)計方式

建模方式:

第一步:定義業(yè)務(wù)需求與范圍(Requirement)

第二步:定義實體(Entity)

第三步:定義關(guān)系(Relationship/PK/FK)

第四步:定義屬性(No-key Attribute)

第五步:驗證模型(Verify)

第六步:正則化(Normalization)

第七步:歷史數(shù)據(jù)建模(History Modeling)

第一步:定義業(yè)務(wù)需求和范圍

LDM的構(gòu)建是一個漸進的過程,也是隨著企業(yè)業(yè)務(wù)和管理模型不斷擴展而演進的。

LDM是對信息的表示方式,信息的分類就是主題,通過主題定義信息的范圍

同一主題的內(nèi)容也可能隨著業(yè)務(wù)進行擴充

第二步:定義實體

什么是實體:

需要表達和維護的信息就是實體,可以包括人、地點、產(chǎn)品等任何概念。實體是邏輯模型的概念,對應(yīng)物理模型就是表。

實體的名稱:

在整個模型中是唯一的

一般是一個名詞(如客戶),可以加上修飾詞(如VIP客戶)

實體定義時會發(fā)生的錯誤:

同義不同名(如員工worker和雇員employee)

同名不同義(如產(chǎn)品和促銷都定義為product)

實體中的主鍵(Primary Key):

主鍵是實體中的每個實例(instance) 區(qū)別于其他實例的標(biāo)志。在物理模型中,主鍵是不同行(row)的區(qū)分標(biāo)志。

在定義實體時,一般要最先定義主鍵。在圖形表示的時候,一般放在最前面。

定義主鍵的一些原則:

每個實體(表)必須要有主鍵。即使表是multiset(可能出現(xiàn)重復(fù)記錄)也必須要有主鍵。

每個表只能有一個主鍵。

主鍵值必須唯一(ANSI標(biāo)準(zhǔn)允許不唯一,為了保證數(shù)據(jù)加載性能,可能主鍵值不唯一)

主鍵值不能為空

主鍵值不能被修改

主鍵值可以由多個值構(gòu)成。

第三步:定義關(guān)系(Relationship)

什么是關(guān)系(Relationship):

關(guān)系是兩個不同實體交互方式的表達(如客戶購買產(chǎn)品,員工在那個部門)

直接關(guān)系與間接關(guān)系如下圖所示,在模型中,只要定義直接關(guān)系,而不用定義間接關(guān)系。

定義關(guān)系的原則:

關(guān)系是唯一的(由涉及的表唯一標(biāo)示)

關(guān)系對與實體內(nèi)的所有實例都是適用的(物理模型中對表中的所有row都是適用的)

需要定義關(guān)系的集合表達方式(cardinality)。如1:1、1:M、M:M

定義關(guān)系的步驟:

Step1: 識別實體之間是否有關(guān)系

是否存在關(guān)系

是直接還是間接關(guān)系

定義關(guān)系的名稱

Step2: 識別實體之間的集合表達方式

1:1

1:M

M:M

Step3:用外鍵(Foreign Key)將關(guān)系表達出來

外鍵是表示兩個實體中的實例的互相的數(shù)量關(guān)系

外鍵定義的原則:

一個實體可以有0/1/M個外鍵

外鍵的值可以不唯一(1:M/M:M)

外鍵的值可以為空(客戶可以沒有賬戶)

外鍵的值可以被更改(客戶的賬戶號可以被修改)

外鍵可以由多個屬性構(gòu)成

A表的外鍵的屬性和值必須在B表中的PK中存在

定義M:M關(guān)系需要新建一個關(guān)系實體(Associative Entities):

客戶與產(chǎn)品的關(guān)系是M:M關(guān)系,所以需要定義一個關(guān)系實體(訂購 subscription)

將A實體與B實體的主鍵放在一起,就構(gòu)成了關(guān)系實體。

關(guān)系實體的主鍵是A實體主鍵+B實體主鍵

遞歸關(guān)系:

在實體內(nèi)部存在的關(guān)系,實體的外鍵是本實體的主鍵

如下圖所示

管理者本身也是一個員工

MgrEmp# 是Empolyee外鍵,對應(yīng)的主鍵是Empolyee的Emp#

第四步: 定義屬性( Attribute Modeling)

屬性是描述實體(entity)的相關(guān)的、細節(jié)的數(shù)據(jù)項

定義屬性的原則:

名稱在本實體內(nèi)唯一

與本實體相關(guān)

不能夠被別的屬性所描述

有單一的值域空間

屬性應(yīng)該是對實體內(nèi)的所有實例都是有效的

屬性的類型:

鍵屬性(主鍵、外鍵)

非鍵屬性

派生屬性,能夠從別的屬性中計算而得的屬性

第五步:驗證模型(Verify)

通過模型驗證發(fā)現(xiàn)上述4步的問題,不斷修正,多次循環(huán)。

與客戶討論,確認客戶的業(yè)務(wù)需求、業(yè)務(wù)問題和業(yè)務(wù)約束條件能否通過模型進行體現(xiàn)。

不要考慮任何有關(guān)物理模型的問題。

但客戶的業(yè)務(wù)需求能夠通過模型進行表達,就結(jié)束模型的優(yōu)化。

第六步:正則化(Normalization)

正則化是設(shè)計實體的屬性的規(guī)則,使得實體-屬性能夠更加精確的反應(yīng)客觀事實

正則化的作用:

減少數(shù)據(jù)冗余(避免數(shù)據(jù)多處存儲)

減少由于數(shù)據(jù)修改導(dǎo)致的數(shù)據(jù)不一致(只修改了一處數(shù)據(jù),而另一處忘了修改)

正則化的原則“一個事實,一處存放”(one fact ,one place)

1NF,2NF,3NF 解決非鍵屬性對主鍵的依賴性

4NF, 5NF 解決是鍵屬性互相之間的依賴關(guān)系。

一般LDM建模只要求到3NF

什么是3NF:

1NF: The Key(有主鍵,且沒有重復(fù)的屬性)

2NF: The Whole Key (非鍵屬性對主鍵的依賴關(guān)系)

3NF: And Nothing But Key(屬性對主鍵依賴關(guān)系是直接的,而非間接的)

第七步:歷史數(shù)據(jù)建模(History Modeling)

業(yè)務(wù)人員不僅要對當(dāng)前(current)的數(shù)據(jù)進行分析,而且要對數(shù)據(jù)的變化進行追蹤(track),而且需要對歷史數(shù)據(jù)進行分析。

這就要求對數(shù)據(jù)的變化歷史進行建模,這就是歷史數(shù)據(jù)建模(History Modeling)

History Modeling的原則:

Current和History:

如果在模型中既存在當(dāng)前實體(current entity)也存在歷史實體(history entity),那么當(dāng)前實體的信息必然是冗余的。

在設(shè)計LDM中,只需保留歷史實體,在進行物理模型設(shè)計時,可以加上一個當(dāng)前標(biāo)志(current flag),表明哪些記錄是對應(yīng)當(dāng)前實體的信息。

歷史數(shù)據(jù)建模:

將需要保存歷史信息的屬性放入到歷史實體(History Entity)中。

時間屬性作為主鍵的一部分。

歷史實體(History entity)的主鍵必然是一個符合主鍵(包括多個屬性)

First Normal Form (1NF)

First normal form (1NF) sets the very basic rules for an organized database:

· Eliminate duplicative columns from the same table.

· Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).

Second Normal Form (2NF)

Second normal form (2NF) further addresses the concept of removing duplicative data:

· Meet all the requirements of the first normal form.

· Remove subsets of data that apply to multiple rows of a table and place them in separate tables.

· Create relationships between these new tables and their predecessors through the use of foreign keys.

Third Normal Form (3NF)

Third normal form (3NF) goes one large step further:

· Meet all the requirements of the second normal form.

· Remove columns that are not dependent upon the primary key.

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI