即刻諮詢

傳統關聯型資料庫

最初,關聯型資料庫是針對具規範的、類似紙張表格的表狀數據結構所設計。關聯型資料庫在表中存儲高度結構化的數據,表通常具有事先嚴格定義好的列和包含相同類型資訊的行。然而,現今大數據時代,數據的格式和類型更多樣、數據量更大、變化更頻繁、更新更快速,又資料會隨著時間的進展產生新的關係,數據之間的關係越來越受重視。時至今日,數據處理的需求和應用已無法被簡單的表狀結構滿足。

傳統關聯型資料庫缺點

關聯型資料庫不擅長處理現今高度關聯的數據。根本原因是關聯型資料庫不具備足夠強大的存儲和管理數據之間關係的能力。

開發人員在關聯型資料庫中,考慮的是如何將數據存儲到模型的列和行之中,但這並非數據存在的實際形式。換言之,數據更應被視為對象,以及存在於無數對象間的關係。這種複雜的、存在於現實生活的數據,其規模、產生速度、多樣性都飛速地增長。

與此同時,不僅是數據,數據之間的關係也以更快速的速度增長,這些關係往往包含著比數據本身更具價值的資訊。這就是新問題的來源,關聯型數據庫並非為保存和處理這種豐富的、存在於數據間的關係而設計,

隨之而來的問題是,現今的企業缺乏處理數據間高度關係的技術,而錯失低風險、高利潤、數據驅動的決策機會。

現今的軟件應用都需要適應敏捷開發的需求

現今,開發團隊必須正視變化頻繁的業務和用戶需求,這些變化往往需要對既有的數據架構和視圖進行修改。

資料庫管理員和開發人員時常要面對來自業務部門,關於資料庫元素及屬性的變動需求,以滿足經常變化的業務,例如存儲最新社交平台的數據。然而這種需要經常性變化的資料庫模式,對關聯型資料庫而言,較難適應且改變的代價昂貴。

關聯型資料庫這種固定的資料庫模式,只適用於能夠事先明確定義好的業務問題,在不需要經常改動的情況下才能穩定運行。這產生的問題是,緩慢和昂貴的資料庫模式使團隊無法進行快速的創新,錯失巨大的市場機會。

由上可知,關聯型資料庫並非為適應靈活快速的業務發展而設計的。

關聯型資料庫不擅長處理存儲關係

  • 大量的表與表連接 JOIN 動作

    若查詢包含過多的表連接,其複雜性和計算資源會呈現爆炸性增長,大幅增加查詢時間。

  • 大量的自連接 Self-JOIN 動作

    自連接查詢在層次和樹狀的數據結構中非常常見,然而,重複性連接表自身以達到遍歷關係的目的效率非常的低。

  • 頻繁變更的數據庫模式

    現今,業務的靈活可變性是激烈競爭中的致勝關鍵。然而,關聯型數據庫無法適應頻繁變化的數據模式和視圖。

  • 運行緩慢的查詢

    許多 SQL 的執行速度仍無法滿足應用的需求;若為提高查詢性能而採用 "扁平化" (denormalizing) 的數據模型則會對數據質量和更新方式帶來負面影響。

  • 預先計算查詢結果

    因為查詢的速度太慢,許多應用需要用歷史數據預先計算好結果。但這等於是用昨天的數據來獲得原本需要用實時數據才能獲得的查詢結果。更糟糕的是,系統往往需要計算 100% 的數據,即便真正需要的只有 1-2% 的數據。

綜上所述,對於結構已有規範、事先可定義的模式,關聯型資料庫會是很好的工具。但若需要從連結的數據中挖掘出內在洞察的應用,則無法有效地用關聯型資料庫解決。現今大數據的規模、速度、多樣性、數據間的關係,需要一種可以從根本上存儲和管理數據間的連結的解決方案,也就是下一章所提的圖資料庫。

圖資料庫介紹

圖資料庫是專門為處理和存儲數據之間的關係而設計的,能夠存儲單個數據以及數據之間的關係。其使用者能夠在數據之間的關係之上重新定義業務架構,適用於動態需求。

圖是什麼

圖 (Graph) 是一個由節點和邊連接起來的網路,節點和連接節點的關係就是圖的兩個基本元素。每一個節點代表一個實體,例如某人、某地、某事;每一個關係代表節點與節點之間的關係狀況,透過這種通用性的結構,可以對所有的情況建模。

圖資料庫是什麼

圖資料庫是一個在線數據庫管理系統,用來創建、讀取、更新、刪除圖資料庫模型中的數據。與其他資料庫不同的是,圖資料庫最擅長處理數據之間的關係,其無須依靠外鍵來推導數據間的關係,無須依靠外部系統來處理數據。圖資料庫用節點和關係所建立的模型,更加接近現實的應用問題。

對圖資料庫的數據而言,有兩個重要的特性:

Native 圖存儲

其它的資料庫使用關聯型或面向對象型資料庫來存儲圖數據;Native 圖存儲是針對圖特性專門設計的存儲模式,能有效處理大量增加的數據規模和查詢複雜度。

圖處理引擎

Native 圖處理,是無需索引的連接關係 (index -free adjacency),這是處理圖數據最有效率的手段,數據之間的關係也在圖資料庫中完整的被保存下來。

圖資料庫的優勢

  • 從分鐘到毫秒的性能提升

    查詢性能和響應速度是許多組織在建立數據平台時關注的首要問題。尤其大型 Web 應用程序,必須在毫秒內對用戶請求做出響應,才能確保客戶不會因為失去耐心而離開。關聯型資料庫,隨著應用程序數據的增長,複雜連接 (JOIN) 的侷限性開始顯現,性能會迅速下降。圖資料庫使用無需索引的連接關係 (index -free adjacency),將複雜的 JOIN 轉換為快速的圖遍歷。傳統資料庫要在資料表中來回的搜索,會隨資料的複雜程度呈現指數型的增長,要付出很大的時間成本;Neo4j只會呈現線性成長,在處理複雜資料時會有很大的差距,因此無論數據集的總體大小為何都可以保持毫秒級的性能。

  • 明顯地加快開發週期

    圖數據模型解決阻抗失配問題 (Impedance Mismatch),減少在對向模型和表格關係模型之間來回轉換的開發成本。同時,圖模型同樣消除技術和業務領域間的阻抗失配。領域專家、架構師、開發人員可以共享圖模型來討論和描繪核心的業務領域,並將其納入應用程序本身。

  • 快速響應業務變化

    商業狀況、用戶行為、技術、運營基礎架構的變化,都會推動新的需求。過去,這需要組織進行細緻和長時間的數據搬移,包括修改模式、轉換數據、維護冗餘數據,以同時支持新的、既有的功能。用圖資料庫開發可以與現今靈活的開發需求同步發展,數據團隊可以在不危及既有功能的情況下,將新的圖結構添加到既有的圖數據庫中,而非試圖在一開始就對數據庫進行詳盡和完美的建模。

  • 企業級數據庫平台

    在關鍵業務應用中,數據庫必須具有強大的可擴展性,並支援事務性。儘管圖資料庫相對新穎、應用不如 RDBMS 成熟,但 Neo4j 身為圖資料庫的一員,已具備當今大型企業所需的所有功能,如 ACID 事務性、高可用性、讀取操作水平可擴展性、存儲數十億個實體。

圖資料庫的優勢

傳統欺詐檢測方法和技術侷限於個別數據和事件的分析,以至於往往誤報正常的交易,或完全忽略真正的欺詐。

圖數據模型藉由理解數據之間的關係、從中推導出隱藏的涵義、對既有數據的再定義,能輕易地發現數據之間的模式,這些模式是傳統數據庫已表來處理數據時幾乎不可能實現的。


圖形資料庫中建模的詐騙環的子集

現今犯罪份子能偽造出大量虛假身分。在線交易包含以下身份信息:用戶標識、IP 網路地址、地理位置、瀏覽器客戶端 cookie 文件、信用卡號碼。

正常狀況下,這些信息之間的關聯為一對一;如有關係,可能是使用公共電腦、家庭成員使用同一張信用卡、同一用戶使用多台上網設備等。但,若關聯性超過合理範圍,數據的關聯性越高,欺詐的可能性就越高。


線上交易示意圖
圖資料庫的欺詐檢測,須借助關聯分析已改進檢測性能。隨著業務流程變得越來越快速和自動化,檢測欺詐行為的允許間隔也越來越小,對實時檢測的要求也越來越高。傳統的技術手段並非為檢測複雜欺詐行為而設計;而圖資料庫能夠分析數據之間的關係,則成為一種非常有效的檢測技術。圖資料庫能實現高效且易管理的在線欺詐檢測,且已成功實時檢測到多種模式,如欺詐團夥的串通作案、受過教育的高等犯罪等。