1. 程式人生 > 實用技巧 >下一代 DATABASE EdgeDB 到底和PG有什麼關係

下一代 DATABASE EdgeDB 到底和PG有什麼關係

在NOSQL 和RDBMS以及NEW SQL 打的火熱的時候,發現了一個大言不慚的資料庫 EdgeDB. 宣稱自己是下一代的資料庫, what's the new?

宣稱 將NOSQL 和關係型資料庫進行了整合,並且能保證效能?

這幅圖並不是友情出演,而是有目的的,尤其在看到postgresql在大部分全線飄紅的時候還是綠色的.

回到正題,到底這個endge DB 是一個什麼東西?

嗯這個edgeDB 是構建在POSTGRESQL 上的,頓時明白,POSTGRESQL 的多型性一定是用到了這個資料庫上.

粗略的看了一下,這個資料庫的 schema ,建立, 下面是Edgedb提供的簡單的一個架構,和MONGODB 不一樣,不需要提前建立 schema, 基於POSTGRESQL的 EDGEDB 還是需要建立結構的.

以User表為例,這裡name和 address都是基於基本型別的欄位, 而 multi linkfriends 則是直接引用了User表.這就是一個遞迴的應用, 一個表裡面的一個欄位引用了表本身.

這裡建立表使用的是SDL ,schema definition language,通過下面的方式將建表的語句封裝在一個事務中,並且提交,完成表的建立

當然也可以一個一個表進行建立(個人理解)

資料的插入也是比較有意思,在插入中部分使用查詢語句作為資料輸入的方式.

當然這個資料庫也支援圖資料庫的方式,下面的一些東西讓我想起NEO4J 的一些熟悉的面孔

從這個資料庫的介紹中,個人理解了這個資料庫的基本思路在哪裡,個人理解這個資料庫是基於 POSTGRESQL 的 HSTORE 以及 表繼承的理念進行的二次開發的資料庫, 這裡體現的理念是程式設計師的繼承和OBJECT 的思路,而非傳統資料庫的思路模式. 如果是程式設計師則很好理解, 以下面的這個圖,如果是DB 人員想到的是主外來鍵以及表和表之間的關係,但如果拋棄這樣的思路,則四個表合成一個表,是可以的,而如果用繼承表的思路來看 MOVIE 是主表,然後在新增person ,review, user表,(當然如果你沒有用過POSTGRESQL 表繼承可能是不大理解這個思路, 這也是POSTGRESQL 是ORDBMS資料庫,不是RDBMS資料庫的一個體現)

同時POSTGRESQL 的HSTORE 資料型別,也在這個EDGEDB中有很好的展現,一個欄位但可以儲存不同類似於MONGODB 的資料方式,所以這個EDGEDB應該是良好使用了,或者借鑑了 POSTGRESQL 本身的基礎功能.

當然作者的說明書上也強調,支援JSON 資料並且是stronger support, 這裡也是藉助POSTGRESQL 本身的JSON 支援的功能.

最後藉助研發這個資料庫的"Master",的一個回答作為結尾,實際上也從這段話有所領悟,沒有什麼資料庫在任何形態上都有良好的效能體現,資料庫由什麼都行的年代,一庫走天下,已經逐步進化到根據軟體專案定位使用定向的資料庫的方式的階段.定位專項和更能靈活的承載資料庫的 DB是後期被推崇的.