在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 link friends 则是直接引用了 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 是后期被推崇的.