PowerBI之DAX神功:第1卷第1回 數(shù)據(jù)模型(表關系)
研究數(shù)據(jù)模型(表關系)之前先要搞清楚社會關系:
法律面前,人人平等!公司制度,只在公司內(nèi)部有效!

每個公司制度都要遵守法律,員工除了要遵守法律以外,還要遵守公司制度。
如果公司A要求上班時間是早8點,公司C要求上班時間是早9點,那么張三要求孫興華也要8點上班,沒有道理。
李四的公司B要求寫程序必需使用英文變量,但是公司A和C沒有相關規(guī)定,李四不能要求其它公司員工與他一致。
在周星馳電影《九品芝麻官》中,包龍星拿著明朝的上方寶劍斬清朝的官,尷尬至極,無奈表演吞劍。
從圖1-1我們可以看到,法律是一張表,每部法律名稱都是唯一的,例如《刑法》、《治安處罰法》....提到這些法律時,我們會說,根據(jù)某某法律第幾章第幾條規(guī)定....?
但是,不同法律的可以約束不同的公司和不同的人,并不一定每條法律都適用于每個公司和每個人。例如,我們公司是賣服裝的,我銷售的服裝質量不合格,你不能使用《食品安全法》處罰我。假設一個男性因懷孕被公司解聘,這時是不能使用《婦女權益保障法》進行維權。
所以,法律是一端,法律連接的多家公司(同時也可以是所有個人)他們屬于多端,法律篩選公司(個人)誰適用哪條法,而當公司(個人)需要幫助時,可以從法律中獲取信息。
法律------>公司(個人)
這是典型的一對多關系,表關系就是社會關系的映射:
一對多關系的由來,一端特點:不為空不重復
法律為何不能給每個人寫一本?
公司制度為何不能給每個員工寫一本?
大家都知道,數(shù)據(jù)庫建立最初的想法,就是為了容量精簡。

圖1-2,如果我們將每個學生的姓名,性別,身高,體重等信息都放在【成績表】中,這樣成績表就會無限增加容量。但是如果將學生信息放到【學生表】中,而【成績表】中只放必要內(nèi)容,這樣可以精簡容量。我們需要學生信息時,再到【學生表】中獲取數(shù)據(jù)。
1對多關系:
a. 通過1端主鍵連接多端外鍵
b. 1端主鍵不為空不重復
c. 多端外鍵要包含在主鍵元素之內(nèi)【官方語言:實時參照完整性】

我們介紹完一對多的關系,再來聊一聊一對一的關系:
一對一的關系有兩種情況:


接下來,我們再談一談多對多關系

如圖1-3,遇到多對多關系時,我們通常不會讓他們直接建立關系,在數(shù)據(jù)分析中表與表之間的關系應永遠保持一對多。(及個別情況會有例外)
有人說這是一對一關系的表格,他的理由是兩張表的學號一一對應,那你還沒有搞懂社會關系那張表,你回答我:什么是一端?
一端,是主鍵那一端,主鍵要求不為空,不重復。兩張表中的學號和課程編號都是重復的,他們是一對一嗎?
處理方法:

如圖1-4所示,我們根據(jù)業(yè)務需求,將其中一個多端表,拆分成兩個一端表,最終實現(xiàn)一對多關系
有人會說,自己的表它們之間關系復雜,無法拆分,那是你對自己企業(yè)內(nèi)的業(yè)務不熟悉。
電視劇《無證之罪》很多人都看過,如果同樣的案件交給你破,你肯定破不了,因為你不是偵探也不是警察。破案不是你的專業(yè),也不屬于你的業(yè)務。
回到案例上:拆表的工具是計算機知識,我們可以用SQL也可以用DAX,后面的課程會一一講解。
你要知道你的表怎么拆,我告訴你拆的方法
因為表怎么拆這件事,是你的業(yè)務邏輯,與之后的分析相關
你自己的表,你自己搞不清關系,這就是業(yè)務問題。你看別人的案例沒有用,那是人家的業(yè)務模型。
例如《孫興華答網(wǎng)友問》,關于回答PowerQuery M函數(shù)問題時,我要求網(wǎng)友告訴我原表什么樣,想變成什么樣。至于為什么變成這個樣,那是你自己的事情。【有太多人說不清楚自己想做什么,他用語言文字給我形容他的目的,這就是典型的業(yè)務不熟練】
例如:
一道數(shù)學題:原來有一筐籃球,小明借走5個,小華借走6個,這筐籃球少了多少個?
我家大兄弟第一次做這道題時跟我急了,他說,這題沒說這筐籃球一共有多少個,我怎么知道少了多少個?后來我拿了一打百元鈔票放在他面前,我說這錢我沒數(shù)過,現(xiàn)在我從里面拿走500元,你說少了多少錢?他懂了。
這筐籃球沒告訴你一共有多少個,但是告訴你小明+小華一共借走5+6個,這5+6就是你的業(yè)務和邏輯。計算機只負責計算。DAX的作用也是計算。
你不知道表怎么拆,那你問誰?你拿著企業(yè)的工資,你不懂業(yè)務?為什么當一個地區(qū)發(fā)生了重大安全事故時,有些官員會被罷免,很多百姓會有疑惑,但這就是責任,如果每個人都可以不負責任,你的企業(yè)和身處的社會將會變成什么樣子?
這就回到了最初的問題,也是很多商人固執(zhí)的問題,我并不反對大家學習英語,但是,在數(shù)據(jù)分析上面,業(yè)務和邏輯最重要,我努力的去引導大家,但是總有商家穿上馬甲跑到我的視頻里面喊英語重要,都學好是你的本事,但是吃哪碗飯,你就要重點的學習吃這碗的技能。