商業(yè)分析模型四——商業(yè)數(shù)據(jù)圖(BDD)與實體關系圖(ERD)
在讀書的時候,每個學期我們都會收到一份當期的課程表术吝。同學們收到課表之后计济,會根據(jù)需要和要求選修一些課程。當課程結(jié)束后排苍,每個課程都會設置一次該課程的考試沦寂。學期結(jié)束的時候,每位同學都會收到屬于自己的一份成績單淘衙。
在這里面有些“數(shù)據(jù)關系”需要在概念的層級上梳理下:
1. 一個【課程目錄】里面會包含“零或多個”【科目課程表】传藏,這多個科目課程表會僅屬于一個課程目錄。那么【課程目錄】:【科目課程表】就在對應關系上形成了“1...n”的關系彤守;如下圖(也可結(jié)合上圖)理解:
2. 一個【科目課程表】有可能這學期有多個課程毯侦,也有可能只有一個;但是每個【課程】都只屬于一個【科目課程表】(對應上圖理解下)具垫。那么侈离,【科目課程表】:【課程】的對應關系也是“1...n”。
3. 每個【課程】有可能因為熱門做修、老師教得好霍狰、時髦等原因會被多個學生選修抡草,也有可能過于文藝、或是太反人類了蔗坯,結(jié)果沒有一個學員選擇學習它康震;如果從概念上理解的話,【課程】:【學生】就對應成了“0...n”的關系宾濒。
4. 那么每個學生對應科目課程表的關系腿短,要么有可能學霸選修多門課程,要么學弱僅選修一門绘梦,要么學渣啥也不學橘忱,直接奔著拯救地球去。那么綜合一下卸奉,【學生】:【科目課程表】在數(shù)據(jù)上也形成了“0...n”的關系钝诚。
5. 一個學習結(jié)束了,丑媳婦總得見公婆的榄棵。每個人都收到一份當期的學習成績單凝颇。一個學員有且僅有一份屬于自己的成績單,所以【學員】:【成績單】的對應關系是“1...1”的關系疹鳄。
6. 在記錄和標記的時候拧略,數(shù)據(jù)對象的對應關系的對比位置需要注意。如上例瘪弓,如果【課程目錄】:【科目課程表】就記錄為“1...n”(一個里面有多個)垫蛆;但如果【科目課程表】:【課程目錄】就要記錄為“n...1”(多個都屬于一個)。
各位細細品一下腺怯!
那么袱饭,如上的這些關系在建模語言里面有個統(tǒng)一的叫法,被稱之為“基數(shù)關系”瓢喉∧啵基數(shù):是指一個商業(yè)數(shù)據(jù)對象和其他商業(yè)數(shù)據(jù)對象發(fā)生關系的次數(shù),以及這種關系是否必需或可選栓票。
那么商業(yè)數(shù)據(jù)對象是指業(yè)務或者商業(yè)思考和關注的,從商業(yè)角度得到解決方案中數(shù)據(jù)的概念視圖愕够;而不是數(shù)據(jù)庫中確切的數(shù)據(jù)對象走贪。
基數(shù)是影響軟件架構(gòu)的最大因素之一。比如說惑芭,我們?nèi)粘5木W(wǎng)絡購物坠狡。對于用戶賬號有一個送貨地址與多個送貨地址,軟件賬號處理能力似乎是一件小事遂跟,但是對應用程序和業(yè)務流程有巨大的影響逃沿。
我們現(xiàn)在把上面的示例變成標準的商業(yè)數(shù)據(jù)圖(BDD)婴渡,如下圖:
那么標準的商業(yè)數(shù)據(jù)圖(BDD)的樣子,各位看看下面:
商業(yè)數(shù)據(jù)圖的基數(shù)關系理解起來有點繞凯亮,建議各位直接到課堂上學習边臼!
商業(yè)數(shù)據(jù)圖(BDD)和實體關系圖(ERD)有些相近。下圖就是一個ERD的圖例假消。
相較于BDD柠并,ERD多出了兩個內(nèi)容,一是“屬性”富拗,另一個是“聯(lián)系”臼予。“屬性”就是把每個“商業(yè)數(shù)據(jù)對象”進行進一步的信息完善啃沪;“聯(lián)系”就是進一步表明兩個商業(yè)數(shù)據(jù)對象之間的關聯(lián)關系粘拾。相較于理解“基數(shù)關系”,這兩個概念并不難理解创千。
BDD是概念性的數(shù)據(jù)模型缰雇,它是從干系人的角度顯示業(yè)務數(shù)據(jù)對象的概念關系。而ERD顯示對象在數(shù)據(jù)庫架構(gòu)中是要實際實現(xiàn)的签餐。
在任何有數(shù)據(jù)庫的項目中都將可能用到BDD寓涨,這意味著大多數(shù)項目都需要他們。你可能沒有必要為解決方案中的每一個對象創(chuàng)建一個BDD氯檐,只需要針對商業(yè)客戶干系人關注的主要業(yè)務數(shù)據(jù)對象創(chuàng)建戒良。
如果項目沒有數(shù)據(jù)庫,你很可能不需要使用BDD冠摄。
BDD顯示關系糯崎,但不顯示對關系有更多限制的所有業(yè)務規(guī)則。比如:BDD可以表明一個用戶與層面相關河泳,一個課程與層面相關沃呢。這里沒有顯示一個業(yè)務規(guī)則,客戶可以選擇他們層面上的課程拆挥。
我們可以利用“生態(tài)系統(tǒng)圖”來確認系統(tǒng)間傳輸?shù)纳虡I(yè)數(shù)據(jù)對象薄霜。可以用“顯示-操作-響應模型”(DAR)來確定需要加到BDD的附加商業(yè)數(shù)據(jù)對象纸兔。