Neo4j: 圖資料庫

楔子 平常使用的最多的應該是 MySQL 了,但通常不同的資料庫有它的使用情境。 簡單分就是有 SQL 和 NoSQL 系列,就二分法的方式處理。 各種資料庫都有它的好用的地方,像 NoSQL 比較有名的就 Redis (它有硬碟版 SSDB) 資料的結構常常會依據使用情境不同有所適合的資料庫。 今天來分享所謂的「圖型」資料庫,資料庫一開始比較需要掌握的就是「設計的理念」 最具代表性的就是 Neo4j 先來看一下它查詢的語法就比較容易理解他的概念。 MATCH (n {name: 'John'})-[:FRIEND]-(friend) WITH n, count(friend) AS friendsCount WHERE friendsCount > 3 RETURN n, friendsCount 其實可以「感覺」的出來就是用「node」和「relationship」來做為查詢的方式, 在每個「node」的上面有屬性,而不同的屬性可以有「條件」來進行過濾。 node 用 () 來標記,關係用 [] 來表示 特徵 就自然有人問,那這個資料庫的好處在哪? 大家覺的「圖」這種的設計,比較常出現在哪? 答案就是 社群 ,它就是點和線的連結而以。 當有這個想法後,例如我好朋友的朋友有哪些? MATCH (i {name: 'me'})-[:FRIEND]-(f1:friend)-[:FRIEND]-(f2:friend) RETURN n, f1, f2 i = 我; f1 = 我朋友; f2 = 我朋友的朋友 如果想像用 RDBMS,就要用二層 select 來處理(或使用 sub-query),...

March 5, 2022