写点什么

对话图形数据库 GraphDB 创始人 Daniel Kirstenpfad

  • 2010-10-06
  • 本文字数:1519 字

    阅读完需:约 5 分钟

Daniel Kirstenpfad 是图形数据库厂商 sones GmbH 的创始人和 CTO,近期 InfoQ 就如何更好地对社交网络应用中的关系等数据类型进行建模等问题,和 Daniel 进行了沟通。

InfoQ:请解释一下什么是图形数据库,以及为什么开发者要选择它,而不再是传统数据库?

和其他以列、行或者键 / 值等形式存储数据的数据库不同,图形数据库以节点(Node)和边(Edge)的网络存储所有信息。边表示那些代表对象的节点之间的联系。因为边和节点都可以被描述为对象,开发者可以为其指定属性(Attribute,或者 property)。为边增加方向最终会创建一个属性图,它代表图形数据库中的明确结构。 所以说,与那些只能间接构成图架构的数据库不同,图形数据库可以明确地表示图。另外,其他数据库需要使用索引和关系工具(如使用 JOIN 进行联结的关系表),而图形数据库因为对象之间可以用索引自由邻接,所以它能方便地从一个对象遍历到另一个对象。

在很多种情况下,图形数据库都是最自然的方式。比如在社交网络中,使用图数据结构表示朋友关系,或者做类似”给我我朋友的朋友的所有朋友(get me all the friends of my friends friends)“的遍历和查询,都要较以前容易很多。另外,基于如路径 - 查询(Path-Search)算法的普通图,也易于通过遍历图来实现。

除了这些不错的特性,sones GraphDB 还提供了一种易于学习和使用的查询语言,如同使用 SQL 数据库,用户可以使用它运行特定的查询。比如上面的那个例子就可以用这个语言表示为:FROM Users u SELECT u.Friends.Friends.Friends WHERE Name = “Daniel”

InfoQ:你们的产品可以嵌入式运行,或者只作为一个单独的服务运行吗?

sones GraphDB 几乎可以被嵌入到任何的应用中。因为它是用 C#(.NET)写的,自然它就可以被集成到已有的.NET 环境中,如 Windows 上的.NET 环境,以及其他平台上的 Mono 环境等。在现有的产品中,我们通过客户端 / 服务器的方式提供不同的接口,比如集成了自服务的 REST 接口。”自服务“意味着你不需要任何第三方的服务,即可使用 GraphDB。它被包含在一个包中。

InfoQ:有.NET API 吗?

有的,目前的公开发行版本中就有.NET API,它可被用在嵌入式环境中,在 sonesExample 源代码(第 74、94、114 和 197 行等)中演示了它的使用方法。 我们还在努力提供一个.NET 客户端类库,让访问 sones GraphDB 服务器也能面向对象,从而不需要一定要离开熟悉的 C#环境,或者必须通过 JSON 或者 XML 解析等。在 Java 环境中我们也计划提供该类库。

为让其更具有通用性,我们还计划使用 LINQ 改造该客户端类库。

InfoQ:要在 Windows Azure 上使用它,需要做哪些改变吗?

相比于云服务架构的复杂,在 Windows Azure 平台上运行 GraphDB 产品是相当容易的。为了让 Windows Azure 架构知晓 GraphDB 的状态,我们需要增加一些粘结代码(Glue Code)。但是需要明确的是,这只是为 GraphDB 增加一些新的代码,内核和接口部分不需要做任何改变。 目前我们也正在为 GraphDB 增加一些新的模块——其中一个就是使用 Azure Page Blob Storage 技术持久化图形数据库,另外还为客户提供了更多有趣的使用场景。

InfoQ:你认为哪些图形数据库是你们的竞争对手?

现在市面上有很多图形数据库,多数只是为了满足一个或者多个应用需求。对于客户来说,多样化的选择总是好的。从一开始,sones 就在创建企业级的数据库管理系统,这一目标没有改变,我们一直在努力。就某些应用方面来说,我们将 Infogrid、Neo4j 或者 InfiniteGraph 等看做竞争对手。但是如果说到易用性,感知查询语言,与.NET 的集成,以及既允许存储图形也允许存储大的带有版本信息的二进制数据等现代数据存储技术,我想我们有一些独特的卖点。

查看英文原文: A Case for Graph Databases

2010-10-06 05:273744

评论

发布
暂无评论
发现更多内容

自研ISP芯片背后:手机厂商的目光在影像之外

脑极体

数据安全与隐私系列08:大数据与电影《少数派报告》

Databri_AI

人工智能

网络攻防学习笔记 Day149

穿过生命散发芬芳

9月日更 网络管理

使用 Chrome 调试 Vue3 的 TypeScript 源码

编程三昧

源码 Vue Vue 3 9月日更

Alibaba内部最新Java架构核心宝典 (全彩版小册开源)

Java 架构 面试 程序人生 编程语言

靠着狂刷这份面试题跟答案!我从 15K 变成了 30K!

Java 编程 程序员

字节内部不传之秘:1298页算法刷题笔记(附源码可直接运行)

Java 程序员 面试

阿里P8连肝三月,终于整理出的完美Java面试宝典,上传到Git上目前star数达到30K+

Java 架构 面试 程序人生 编程语言

推荐一款 Python 微服务框架 - Nameko

星安果

Python 微服务 Nameko

如何做到监控告警的管理?

睿象云

运维 告警 监控告警 运维平台 告警管理

音视频同步!RTCP 协议解析及代码实现

RTE开发者社区

音视频 协议 Wireshark 流媒体

剖析反序列化原理基本操作

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞分析

多媒体技术之图像频率的概念

轻口味

android 音视频 9月日更

如何加速云原生数据应用?这个开源项目备受关注

阿里巴巴云原生

阿里云 开源 云原生 Fluid

腾讯高工终于把操作系统、TCP/IP、线程与进程、CPU全部讲明白了

Java 架构 面试 操作系统 计算机

内部群炸了!字节同事写了一篇Leetc刷题心得,高管看见之后,直接给他涨了20K

算法 算法题

阿里耗时三月整理的亿级流量百万并发手册,在上传在GitHub上意外获星90K+

Java 架构 面试 程序人生 编程语言

2022前端react高频面试题汇总

buchila11

React

java 虚拟机 GC :G1学习笔记

风翱

GC 9月日更

突发猛进!数字人民币落地推广会召开

CECBC

GitHub上120K Stars国内第一的Java多线程PDF到底有什么魅力?

Java 编程 架构 面试 程序人生

高扩展的系统通常会有什么特性

卢卡多多

系统、 9月日更

我仅用了3个月就成功破茧成蝶!从简历被拒到收割8个大厂offer的辛酸历程!

编程 Java、 计算机

课程升级 | 极速构建知识体系,即学即用 Serverless

阿里巴巴云原生

阿里云 Serverless 云原生 活动 课程

JavaScript 的 undefined和null 的区别与判断

wudaxue

Log4j2同步打印日志导致线程阻塞问题剖析

快看工程技术中心

Java 线程 log4j java反射 异常处理

阿里大佬熬了三月,总结出了这套分布式架构手册,在Github上疯传!

Java 架构 面试 程序人生 编程语言

面对低碳转型 央行的两条思路和五大措施

CECBC

内卷把同事逼成了“扫地僧”,把 Github 上所有面试题都整理了一遍~足足 24W 字!

Java 程序员 面试

Redis核心原理与实践--散列类型与字典结构实现原理

binecy

数据结构 源码阅读 Redis 6.0

Prometheus 2.29.0 新特性

耳东@Erdong

release Prometheus 9月日更

对话图形数据库GraphDB创始人Daniel Kirstenpfad_.NET_Jonathan Allen_InfoQ精选文章