修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

嬴图 | 如何使用嬴图数据库构建网站后台数据库?
2021-12-24
嬴图 | 如何使用嬴图数据库构建网站后台数据库?

在数据库设计开发之初,开发人员都会面临一个重要的选择:用哪个数据库呢?用什么数据库技术来实现呢?如果您恰好有此需求、疑问,并且对图数据库不太熟悉,那么您来对地方了。在本文中,我们将以构建一套文档系统为例,具体阐述用嬴图如何将开发需求转化成图数据库的存储结构,以及图数据库区别于传统关系型数据库有哪些优势。

01 快捷| 5步完成设计创建

 

1.了解功能需求。在设计数据库之前,设计人员必须要先了解系统的功能需求。这里可以通过阅读产品需求规格说明书,与项目相关人员(比如项目经理、客户等)进行充分沟通。

2.定义实体及关系。了解系统功能需求之后,设计人员通过分析系统功能定义出系统有哪些实体,以及实体之间的关系。

比如,用户阅读响应权限的不同语言的书目及文章,可包含五种实体:

1.用户

2.权限

3.书目

4.文章

5.语言

五种关系:

1.用户-权限

2.书目-权限

3.文章-权限

4.书目-语言

5.书目-文章
对应五种属性定义:

用户-权限

用户id,权限id,授权时间,过期时间

书目-权限

书目id,权限id

文章-权限

文章id,权限id

书目-语言

书目id,语言id

书目-文章

书目id,文章id



3.绘制点边图示例。定义好实体和关系之后,接下来我们应该根据实体以及实体之间的关系绘制出点、边图。看图如下:



图1:点边图

4.总结边的创建规则

绘制好点边图以后,总结一下图中边的创建规则:

·用户-权限:每个用户可以有多个权限,每个权限可以对应多个用户;

·书目-权限:每本书可以有多个权限,每个权限可以对应多本书;

·文章-权限:每篇文章可以有多个权限,每个权限可以对应多篇文章;

·书目-语言:每本书只能有一种语言,每种语言可以对应多本书;

·书目-文章:每本书可以有多篇文章,每篇文章只能对应一本书。


5.创建数据结构。使用UQL语言进行图集、schema、属性的创建:



至此,数据库创建任务已经完成!值得一提的是,程序员可以明显地看到,在过去几十年中,很多程序员已经被训练的一定要先了解数据模型,不论它是关系型表结构还是实体E-R模式图,这也让开发流程变得更加复杂和缓慢,请问,你还记得上一次参与交钥匙解决方案的开发周期有多长?一个季度?半年?一年还是更久?在一个有8000张表的Oracle数据库中,没有任何一个DBA可以完全掌握所有表之间的关联关系,这个时候体验一下用图数据库来操作一把吧。

02 精简| 图数据与表数据相比的优势


一是,点、边分离,思路更清晰。传统数据库的设计过程往往是把重心放在各种“表”的构建上,如将上面列举的应用场景用关系型数据库的表结构来表达,见下图:



图2:传统的关系表、关系型数据库 

如图2所示,可清晰地看到表之间的区别:其中,五张彩色表对应的是图数据中的五种实体(彩色表可看作实体表),五张灰色表对应的则是图数据中的五种关系(灰色表即为关系表)。图数据、表数据虽然都存储了同样的信息,但是直观上来讲,图数据将“关系表”抽离出来,对其赋予了“边”的概念并进行存储,能把开发者从茫茫表海中解救出来,将更多的注意力放在实体上,有助于在建库之后对数据进行灵活多样的查询与分析。

二是,通过面向点、边的路径查询来替代传统SQL类数据库的多表关联查询,原因是图数据对“边”概念进行提炼的初衷是要从根本上改变数据的关联方式和存储方式,让边在查询时所发挥的作用大大超过联表查询中的“关系表”,即将针对传统关系表进行的联表查询,变成针对点、边图进行的路径查询,这是图数据查询比表数据查询速度更快的根本原因。

由于边在图中所起的作用是连接两个点,图数据库需要对边的起点和终点进行特殊管理。在为图中的边创建属性时,以前面例子中的“用户-权限”边为例,开发者并不需要创建“用户id”和“权限id”这两个属性,原因是“用户id”和“权限id”分别是“用户-权限”边的起点和终点,而起点和终点在图数据中被视为边的固有属性,是由系统自动创建并进行管理的。

虽然关系型数据库在业界仍占主流,但由于其天生的限制条件亟待被优化或技术替代: 

1.扩展困难:由于存在类似Join这样多表查询机制,使得数据库在扩展方面很艰难;

2.读写慢:这种情况主要发生在数据量达到一定规模时,由于关系型数据库的系统逻辑非常复杂,使得其非常容易发生死锁等的并发问题,所以导致其读写速度下滑非常严重;

3.成本高:企业级数据库的License价格很惊人,并且随着系统的规模,而不断上升;

4.有限的查询效率:现有关系型解决方案还无法支撑海量数据存储的高效查询。



图3:图数据库=100%的真实世界

图数据库的所有特点都是相对于传统数据库而言的,尤其是关系型数据库。简单而言,图数据库有三大特点:

·高维

·高性能

·高效率


我们正处于一个大数据的时代,互联网和移动互联网络的快速发展带来了数据产生速率的极大增长,相比于传统的关系型数据库中的关系表(见图2),图数据库(图3)就是被人们创造出来解决这种不断增长的数据挑战的利器——采用可描述复杂关联关系的高维拓扑结构,通过可视化的方式,即能创建一套达到事半功倍支持海量数据和流量、管理部署简单、提升用户满意度和优化运营成本的网站后台数据库了。

【图知识·加油站】

什么是点 ?

称之为顶点(Vertex)或点(node),也可以称作实体(Entity)。

什么是边?

连接两个点(node)的边,分为:无方向和有方向。在知识图谱范畴内也常被称作关系(relation、relationship)。

什么是路径 ?

多个相连的边(包括边连接的点)构成的一个序列称为一条路径,例如a—b—c,单独的一条边也是一个路径。

什么是属性 ?

图系统中的数据属性,主要分为点属性(node property)和边属性( edge property)。

什么是路径查询 

所谓路径查询就是在图中查找两个(或多个)顶点之间的,符合过滤条件的,相关联的路径。复杂的路径查询有多个节点组网操作,它在本质上是多对节点间的两两的路径查询。