此外還有一類數據庫,數據邏輯層與關係型數據庫相比,在表現形式上相當靈活,主要有四種形式:一是鍵值模型,這種模型在表現形式上比較單一,但卻有很強的擴展性。二是列式模型,這種模型相比於鍵值模型能夠支持較為複雜的數據,但擴展性相對較差。三是文檔模型,這種模型對於複雜數據的支持和擴展性都有很大優勢。四是圖模型,這種模型的使用場景不多,通常是基於圖數據結構的數據定製的。之所以需要這樣的數據庫,是因為有些工作場景對數據庫的邏輯結構並不明確,對於數據的擴展速度和擴展量同樣也並不明確,要是利用關係型數據庫來存儲的話,將會隨時麵臨不穩定的行列調整,在一個已經存放有海量數據的關係型數據庫中,隨時進行的列的增刪,將是一場困難甚至無法實現的災難。
因此非關係型數據庫,都是用來對付需要方便擴展,數據量極大,性能要求極高,可用性極高,數據模型靈活的應用場景。
因為這類數據庫存儲數據的方式比較離散,因此被稱作非關係型數據庫。它們基本都是為了解決海量數據,高增長數據的實際運用問題而生的,因此又被周至稱為“工科狗數據庫”。
非關係數據庫中有一類較為特殊的數據塊,其數據邏輯層是基於圖論為數據基礎的數據管理係統。
圖是一組點和邊的集合,“點”表示實體,“邊”表示實體間的關係。在圖數據庫中,數據間的關係和數據本身同樣重要,它們被作為數據的一部分存儲起來。
這樣的架構使圖數據庫能夠快速響應複雜關聯查詢,因為實體間的關係已經提前存儲到了數據庫中。
圖數據庫可以直觀地可視化關係,是存儲、查詢、分析高度互聯數據的最優辦法。
這樣的數據結構直接存儲了節點之間的依賴關係,除了把數據間關聯作為數據的一部分特征進行存儲外,在關聯上還可以添加標簽、方向以及屬性,這也是圖數據庫在關係查詢上相比其他類型數據庫有巨大性能優勢的原因。
要舉一個例子的話,點所代表實體或實例,可以是人員、企業、帳戶或要跟蹤的任何其他項目。它們大致相當於關係數據庫中的記錄、關係或行,或者文檔存儲數據庫中的文檔。
而邊也稱作關係,可以理解為將節點連接到其他節點的線;比如這些人員屬於這家企業,這個企業開設了這些賬戶等等。
在探索節點、屬性和邊的連接和互連時,往往會得到意想不到的價值洞見,比如發現企業上下遊人員對企業中某成員的不正常交易,就屬於分析出一種不合理的“邊”。
邊可以是有向的,也可以是無向的。在無向圖中,連接兩個節點的邊具有單一含義。在有向圖中,連接兩個不同節點的邊,根據它們的方向具有不同的含義。
比如家庭成員中,父和子的關係,就屬於兩個節點所構建的一條邊,在兩個方向上的不同含義。
這樣一種數據庫對於處理和分析文科知識體係來說是最合適的,因此周至決心要發展它,甚至直接將其命名為“文科狗數據庫”。
但是這個理由其實最多占到了一半,剩下的另一半,卻是因為圖數據庫到了周至穿越過來的那一世,成了最常見的社交網絡數據存儲分析的最佳工具,成了查巧及深度遍曆大量複雜且互連接的數據的最佳工具。