數據建模是業務和IT的共同責任。一個常見的誤解是,它主要是開發應用程序的必要技術步驟,是IT專業人員的任務。事實是,只有與業務部門的各自專家緊密合作才能產生支持業務目標的數據驅動應用程序。數據模型是實現該目標的溝通工具。
領域驅動數據建模是一種現代方法,包含企業概念數據模型和數據模型治理等主要元素。該方法結構化且實用,以業務價值最高的領域為指導。
一、數據建模的作用
數據模型是人們之間的溝通工具,尤其是業務部門和IT部門之間的溝通工具,也是構建以數據為中心的應用程序的藍圖。人們對數據模型的廣泛期望表明,數據建模是一項基本活動。然而,實際上,它往往被低估和忽視。在項目中,人們往往更關注數據建模的語法和技術方面,而不是受其業務價值的驅動。從業務目標中獲得的數據開發會帶來市場競爭優勢。
數據建模的好處多種多樣,總結如:
1.數據建模支持戰略。良好的數據建模實踐可使數據結構更具適應性,并在實施戰略變革時提高效率。數據透明度有助于制定并購戰略。
2.了解和改進業務流程。數據建模迫使公司闡明其業務和流程。如果不知道業務如何運作,就不可能定義數據的結構和動態。
3.不同功能和部門之間的協作,尤其是業務和IT之間的協作,通過技術中立的通信數據模型來促進,但仍然具有足夠的細節以創建物理數據結構。
4.縮短價值實現時間并提高效率。通過數據建模,業務用戶可以直接定義核心業務規則,這意味著實施時需要的修訂更少。這提高了效率并降低了成本。
5.提高性能并降低成本。在現代數據存儲解決方案中,最昂貴的組件不是存儲而是計算。一般來說,良好的數據模型將降低查詢成本,并減少代碼的復雜性,從而提高應用程序速度并減少實施和維護工作。
6.提高數據質量。數據建模有助于識別數據中的錯誤和不一致性,從而提高數據的整體質量。
近年來,數據建模變得越來越復雜。數據架構格局的復雜性和動態性不斷增加、數據量呈指數級增長,以及AI/ML領域的新技術趨勢和進步是最突出的因素。結合不斷變化的業務需求,數據建模必須以結構化的方式執行才能有效。
好消息是,根據用例構建數據模型的想法變得容易得多。關于數據建模模式和行業特定標準的資源有很多。此外,還有一些工具可以根據提供的數據建議物理數據模型結構,而GenAI能夠根據提供的需求生成數據模型的各個部分。然而,所有這些都不能取代對數據建模者的需求。數據建模作為一種活動的需求仍然存在。創建數據模型不僅具有純粹的需求和技術視角,而且是業務和IT相關利益相關者之間達成協議和共同理解的產物。
二、如何以整體方式實施和管理數據模型
企業數據分布在各種數據存儲中,由集中或單獨的分散單位管理。企業范圍的分析要求能夠以所需的方式集成和組合來自不同來源的基礎數據。為了實現這一點,需要一個通用的數據模型,代表對業務實體、關系和規則的整體理解,從而實現整體接受。
企業數據模型(EDM)
就是這樣一種總體通用數據模型,它是企業不同層級和單位共同努力的結果。它是一個整體的基于層的模型,其層代表企業、主題領域和應用程序層,此外還對應于概念、邏輯或物理數據模型類型。EDM提供通用詞匯表,并通過提供相應的映射來協調對同一業務實體的不同理解之間的差異。例如,中央部門中的實體客戶可能是某個分散單位中的客戶。
頂部的企業概念數據模型是唯一集中管理的組件。主題領域概念數據模型(CDM)以及下方相應的邏輯(LDM)和物理數據模型(PDM)由組織的各個職能領域(例如財務或營銷)管理。
主題領域模型使相應業務領域能夠自主處理其數據,同時遵守更廣泛的組織標準。它們不是獨立的構件,而是相互關聯的,從而實現企業范圍的集成。
這種領域驅動設計也融入了數據網格方法,這是一種分散的社會技術數據架構,強化了數據作為各個領域產物的概念。
數據模型治理負責管理確保組織內有效和高效使用數據建模的政策、程序、標準和指標。它側重于對數據建模工作的監督和監管,是整體數據治理功能的一部分。數據模型治理的領域之一是內部數據建模指南的設置,涵蓋數據建模符號、命名約定、設計標準和文檔要求等方面。定期質量控制是另一個關鍵方面,在審查數據模型時會應用數據模型記分卡等指標。
三、 數據建模的指導原則
從總體來看,建議在數據建模方法中遵循以下指導原則:
1.確保企業中的相關主題專家(SME)以及IT專家共同協作創建或調整概念和邏輯數據模型。
2.使用行業中的通用數據建模模板或使用AI創建的模板作為靈感和清單,而不是作為數據模型的初稿。
3.EDM本身并不包含公司中存在的所有可能的數據模型,而是側重于企業核心數據。
4.每次敏捷迭代之后保持企業數據模型各組件彼此一致。
5.創建企業數據模型不是學術活動,而是一項常識性和實踐性的工作。務實并保持收益和努力的平衡。首先從快速見效的領域開始——具有最高商業價值的領域。
組織的數據建模能力是一個旅程,通常以相應能力成熟度模型中的級別為特征。成熟度評估可以評估當前狀態并顯示前進的路線圖。從最初的臨時努力開始,組織通常通過建立標準和隨后的治理政策、引入更先進的工具和持續改進實踐來發展。
四、 數據建模的好處
俗話說“數據是新石油”,世界各地的公司收集大量數據的主要目的是利用這些數據獲取更多利潤。然而,收集的數據往往是非結構化的和骯臟的。這些原始數據對收集它的公司沒有多大幫助,除非對其進行清理和分析,以獲得可操作的見解來推動基于數據的決策。
數據建模提供了一個機會來定義如何組織、存儲、檢索和呈現數據。它基本上允許利益相關者了解他們的數據,反過來,利益相關者從一開始就對數據管理做出正確的選擇。
數據建模有幾個好處,包括:
改進數據理解:數據建模有助于理解數據集內的結構、關系和依賴關系。它提供了數據實體、屬性及其關聯的可視化表示,使人們更容易理解復雜數據。
增強數據質量:通過定義數據實體、屬性和關系,數據建模有助于識別和糾正數據質量問題。它支持數據驗證、標準化和一致性,從而提高數據的準確性和可靠性。
高效的數據庫設計,顯著減少錯誤:數據建模有助于設計和開發高效的數據庫。它有助于將數據組織到表中,定義主鍵和外鍵關系,并優化數據存儲和檢索,從而提高數據庫性能。
整個組織的一致溝通:數據模型是業務利益相關者、數據分析師和開發人員之間的通用語言。它們提供數據需求的可視化表示,使參與數據相關項目的不同團隊之間能夠進行有效的溝通和協作。
可擴展性和靈活性:數據建模允許設計可擴展并適應不斷變化的業務需求的數據庫。它允許添加或修改數據實體和屬性,而不會破壞現有數據結構,從而確保靈活性和面向未來性。
決策支持:數據模型可用于分析和模擬不同的場景,從而實現更好的決策。通過表示數據元素之間的關系和依賴關系,模型有助于識別支持明智業務決策的模式、趨勢和見解。
數據治理與合規性:數據建模通過提供數據分類、數據沿襲和數據安全的框架來支持數據治理計劃。它有助于確保遵守監管要求和數據隱私標準。
五 、三種類型的數據模型。
在數據設計階段,分析師和利益相關者通常會創建多種類型的數據模型,以概念上和在他們選擇的技術背景下表示數據。
以下是三種主要類型的數據模型:
概念模型
概念數據模型是數據庫主要概念及其相互聯系的直觀表示。它側重于諸如數據庫不同部分的名稱、它們可以做什么以及它們如何相互關聯等內容。它不會涉及所有技術細節,而是清晰地概述數據的重要方面。
邏輯模型
邏輯數據模型通過定義數據實體之間的關系和約束,進一步定義了數據實體的結構以及它們之間的關系。它通常用于特定項目,因為其目的是創建規則和數據結構的技術藍圖。
物理數據模型
物理模型主要設計數據庫內部的外觀和工作方式。其主要目標是根據計劃和規范實際創建和組織數據庫。它提供構建數據庫并使其正常運行所需的具體細節。
六 、數據建模技術
數據建模技術是一種以清晰、有條理的方式組織和表示數據的方法。它通過使用圖表和符號幫助人們理解和設計數據庫或數據結構。
這些技術使得傳達和記錄數據要求變得更加容易,其中包括:
實體關系 (ER) 建模:此技術專注于識別不同的事物(實體)以及它們之間的關系。它幫助我們了解實體之間的結構和聯系,一個很好的例子是在有客戶、產品和訂單的電子商務環境中。
UML(統一建模語言):UML 提供了一種繪制表示系統中的數據結構、關系和行為的圖表的標準化方法。它廣泛用于軟件開發中,以對復雜系統進行建模。
層次化建模:該技術以層次化結構組織數據,類似于家譜,存在父子關系,每個父級可以有多個子級,但每個子級只有一個父級。層次化建模通常用于文件系統和 XML 結構。
維度建模:該技術通常用于數據倉庫。它將數據組織成維度(描述性屬性)和事實(可測量數據)。這簡化了報告和分析數據,使趨勢和模式更容易理解。
面向對象建模:該技術將數據視為具有自身屬性和行為的對象。它強調封裝、繼承和多態等面向對象概念。面向對象建模通常用于支持面向對象編程的 Java 和 C++ 等編程語言。
數據流圖 (DFD):通過顯示輸入、輸出和數據轉換來說明系統內數據從一個過程到另一個過程的流動。
網絡建模:網絡建模使用類似網絡的結構來表示數據,其中數據實體通過關系連接。它允許多對多關系,并可以靈活地表示復雜的數據關系。
數據倉庫建模:該技術用于在數據工程中構建可擴展且靈活的數據倉庫,主要重點是捕獲歷史數據并通過使用集線器、鏈接和衛星來保持可追溯性。
七 、數據建模的步驟
數據建模的步驟通常包括以下步驟:
需求收集:了解數據建模項目的業務需求和目標。確定主要利益相關者并收集他們的意見,以確保模型符合他們的需求。
概念數據建模:創建一個高級概念模型,表示數據中的主要實體、屬性和關系。該模型側重于整體結構,并提供數據的全景視圖。
邏輯數據建模:將概念模型細化為更詳細的邏輯模型。使用適當的符號或圖表定義實體、屬性、關系和約束。該模型將作為設計數據庫的藍圖。
物理數據建模:將邏輯模型轉換為物理模型,表示數據將如何存儲在特定的數據庫系統中。指定數據類型、索引、鍵和其他實現細節。該模型指導數據庫的實際實現。
驗證和迭代:與利益相關者一起審查和驗證數據模型,以確保它準確地代表初始要求,然后根據業務需求中可能出現的反饋和變化不斷迭代和完善模型。
文檔:記錄數據模型,包括其目的、假設和所做的任何設計決策。此文檔將作為未來開發、維護和進一步了解數據模型的參考。
實施:使用數據模型創建數據庫結構、表和關系。使用實際數據填充數據庫,確保其與定義模型中的規范相符。
維護和發展:隨著業務需求的發展或新數據需求的出現,持續監控和更新數據模型。根據性能和可擴展性的考慮,定期審查和優化數據庫結構。
八 、數據建模工具
有多種可用于數據建模的工具可以幫助創建、可視化和管理數據模型。一些流行的數據建模工具包括:
Lucidchart:Lucidchart 是一款基于云的圖表工具,包含數據建模功能。它提供了一個拖放界面,用于創建實體關系圖、UML 圖和其他類型的數據模型。它還支持與其他工具的協作和集成。
Draw.io:Draw.io是一款用于創建流程圖、UML 圖等圖表的 Web 工具。它易于使用,具有拖放功能和大量形狀可供選擇。您可以實時與他人協作并在線或離線保存您的圖表。它是免費的,不需要任何安裝或注冊。
ER/Studio:ER/Studio 是一款全面的數據建模工具,支持概念和物理數據建模。它提供創建實體關系圖、生成 SQL 腳本以及與團隊成員協作的功能。
PowerDesigner:PowerDesigner 是一款功能強大的數據建模和元數據管理工具。它支持各種建模技術,包括實體關系、維度和面向對象建模。它還提供影響分析、數據沿襲和數據治理功能。
ERwin Data Modeler:ERwin Data Modeler 是一種廣泛使用的數據建模工具,支持邏輯和物理數據建模。它提供了一個用戶友好的界面,用于創建和管理數據模型、生成 DDL 腳本以及與其他數據管理工具集成。
Oracle SQL Developer Data Modeler:Oracle SQL Developer Data Modeler 是 Oracle 提供的免費數據建模工具。它允許用戶使用圖形界面創建、修改和記錄數據模型。它還支持對現有數據庫進行逆向工程和生成 DDL 腳本。
Visual Paradigm:Visual Paradigm 是一款全面的建模工具,支持各種建模技術,包括數據建模。它提供創建實體關系圖、UML 圖和數據流圖的功能。它還支持與其他開發工具的協作和集成。
Sparx Systems Enterprise Architect:Enterprise Architect 是一款多功能建模工具,支持數據建模以及其他建模學科。它提供創建和管理數據模型、生成 SQL 腳本以及與其他開發工具集成的功能。
九 、小結
數據建模是一個關鍵過程,可幫助組織了解和有效組織其數據。通過創建概念、邏輯和物理模型,數據建模使利益相關者能夠直觀地看到其數據中存在的結構、關系和屬性。
這可以提高數據的整體質量、正確的數據庫設計和明智的決策。通過利用可用的數據建模技術和工具,組織可以利用數據的力量,適應不斷變化的業務需求,并在當今數據驅動的世界中取得競爭優勢,從而證明“數據是新石油”的說法。