0
点赞
收藏
分享

微信扫一扫

下一代 DATABASE EdgeDB 到底和PG有什么关系

在NOSQL 和 RDBMS 以及NEW SQL 打的火热的时候,发现了一个大言不惭的数据库 EdgeDB. 宣称自己是下一代的数据库, what's the new?


下一代   DATABASE   EdgeDB  到底和PG有什么关系_postgresql

宣称 将NOSQL 和关系型数据库进行了整合, 并且能保证性能?

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据库_02

这幅图并不是友情出演,而是有目的的,尤其在看到postgresql  在大部分全线飘红的时候还是绿色的.

回到正题,到底这个endge DB 是一个什么东西?

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据库_03

嗯这个edgeDB 是构建在POSTGRESQL 上的, 顿时明白,POSTGRESQL 的多态性一定是用到了这个数据库上.

粗略的看了一下,这个数据库的 schema ,建立, 下面是Edgedb 提供的简单的一个架构,和MONGODB 不一样,不需要提前建立 schema, 基于POSTGRESQL的 EDGEDB 还是需要建立结构的.

下一代   DATABASE   EdgeDB  到底和PG有什么关系_postgresql_04

以User 表为例, 这里name 和 address 都是基于基本类型的字段, 而 multi link friends 则是直接引用了  User表.  这就是一个递归的应用, 一个表里面的一个字段引用了表本身. 

这里建立表使用的是SDL , schema definition language ,通过下面的方式将建表的语句封装在一个事务中,并且提交,完成表的建立

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据库_05

当然也可以一个一个表进行建立(个人理解)

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据库_06

数据的插入也是比较有意思,在插入中部分使用查询语句作为数据输入的方式.

下一代   DATABASE   EdgeDB  到底和PG有什么关系_postgresql_07

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据库_08

当然这个数据库也支持图数据库的方式,下面的一些东西让我想起NEO4J 的一些熟悉的面孔

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据_09


从这个数据库的介绍中,个人理解了这个数据库的基本思路在哪里, 个人理解这个数据库是基于 POSTGRESQL 的 HSTORE 以及 表继承的理念进行的二次开发的数据库, 这里体现的理念是程序员的继承和OBJECT 的思路,而非传统数据库的思路模式. 如果是程序员则很好理解, 以下面的这个图,如果是DB 人员想到的是主外键以及表和表之间的关系, 但如果抛弃这样的思路,则四个表合成一个表,是可以的,而如果用继承表的思路来看 MOVIE 是主表,然后在添加person , review  , user表, (当然如果你没有用过POSTGRESQL 表继承可能是不大理解这个思路, 这也是POSTGRESQL 是ORDBMS数据库,不是RDBMS数据库的一个体现)

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据_10

同时POSTGRESQL 的HSTORE 数据类型,也在这个EDGEDB中有很好的展现,一个字段但可以存储不同类似于MONGODB 的数据方式,所以这个EDGEDB 应该是良好使用了,或者借鉴了 POSTGRESQL 本身的基础功能. 


当然作者的说明书上也强调,支持JSON 数据并且是stronger support, 这里也是借助POSTGRESQL 本身的JSON 支持的功能. 


下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据_11

最后借助研发这个数据库的"Master",的一个回答作为结尾, 实际上也从这段话有所领悟,没有什么数据库在任何形态上都有良好的性能体现,数据库由什么都行的年代,一库走天下,已经逐步进化到根据软件项目定位使用定向的数据库的方式的阶段. 定位专项和更能灵活的承载数据库的 DB 是后期被推崇的.



下一代   DATABASE   EdgeDB  到底和PG有什么关系_postgresql_12

下一代   DATABASE   EdgeDB  到底和PG有什么关系_数据_13


举报

相关推荐

0 条评论