例子1:社交網(wǎng)絡(luò)
-
假設(shè)有一個社交網(wǎng)絡(luò)需要用數(shù)據(jù)庫存儲,其中人與人之間的關(guān)系有:朋友(friend)、父母(parent)
-
首先用關(guān)系數(shù)據(jù)庫來實現(xiàn)朋友關(guān)系,需要 3 張表:people、people_relation、relation
如果要查詢 Jam 的所有朋友的信息,那么就需要連接三張表:SELECT p.info FROM people p JOIN people_relation pr ON p.id = pr.pid2 JOIN relation r ON pr.rid = r.id WHERE r.name = 'f';
如果表的數(shù)據(jù)量較大,那么查詢效率就會下降很多
-
如果使用圖數(shù)據(jù)庫存儲呢?文章來源:http://www.zghlxwxcb.cn/news/detail-839566.html
- 首先需要創(chuàng)建節(jié)點和關(guān)系(邊)
CREATE (:people {name: 'Jam', info:...}) ...
- 接著創(chuàng)建關(guān)系
CREATE (:people {name: 'Jam'})-[:f]->(:people {name: 'Tim'}) ...
- 最終查詢 Jam 的所有朋友
MATCH (:people {name: 'Jam'})-[:f]-> (friend) RETURN friend.info;
- 首先需要創(chuàng)建節(jié)點和關(guān)系(邊)
-
總結(jié)
在這個例子中,圖數(shù)據(jù)庫相對于關(guān)系數(shù)據(jù)庫的優(yōu)勢:文章來源地址http://www.zghlxwxcb.cn/news/detail-839566.html- 直觀:通過節(jié)點和邊來表示實體(people)及其之間的關(guān)系
- 高效查詢:不需要編寫復(fù)雜的聯(lián)接查詢來找到j(luò)am的所有朋友,只需要簡單地通過jam節(jié)點遍歷與其相連的邊和節(jié)點即可。
- 靈活性和可擴展性:在關(guān)系數(shù)據(jù)庫中,如果需要添加新的關(guān)系或?qū)傩?,可能需要修改表結(jié)構(gòu)。而在圖數(shù)據(jù)庫中,可以動態(tài)地添加節(jié)點、邊和屬性
到了這里,關(guān)于【數(shù)據(jù)庫概論】圖數(shù)據(jù)庫 Vs 關(guān)系數(shù)據(jù)庫(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!