写点什么

对话图形数据库 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:273486

评论

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

从概念到安全实践:软件供应链基础指南

SEAL安全

DevOps 安全 DevSecOps 软件供应链

教你搭建一个Telegraf+Influxdb+Grafana 监控系统

华为云开发者联盟

云计算 华为云

Nydus —— 下一代容器镜像的探索实践

SOFAStack

开源 云原生 dragonfly 容器镜像

先睹为快 | 卓越示范中心ETB003云原生安全实验测试床

青藤云安全

容器安全 信通院 云原生安全

详解GPU虚拟化技术

Finovy Cloud

人工智能 云渲染 GPU服务器

青藤“基于工业互联网的安全方案”成功入选信通院守卫者计划

青藤云安全

主机安全 互联网安全

Charles 工具如何做断点测试

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

改变世界的开发者丨以梦为码,华工小哥的致青春

华为云开发者联盟

数据库 华为云

天翼云电脑打造极致流畅与安全 助企业数字办公升级

天翼云开发者社区

【赛事预告】云上开发,高效智能——第二届阿里云ECS CloudBuild开发者大赛即将启动

阿里云弹性计算

开发者大赛 自动化运维 云上运维 机密计算 内存缓存

【ELT.ZIP】OpenHarmony啃论文俱乐部—硬件加速的快速无损压缩

ELT.ZIP

OpenHarmony 压缩算法 ELT.ZIP 啃论文俱乐部

天人合一物我相融,站点升级渐进式Web应用PWA(Progressive Web Apps)实践

刘悦的技术博客

前端 App 应用 Web JS SDK PWA

基于EasyCV复现ViTDet:单层特征超越FPN

阿里云大数据AI技术

自然语言处理 异构计算 深度学习/机器学习 编译码

天翼云为欧拉社区贡献首个C++热补丁 加速推进联创技术落地应用

天翼云开发者社区

What are the uses of LED display?

Dylan

LED LED display

认识一下什么是JSP

华为云开发者联盟

Java jsp 网页 前段

云原生存储解决方案Rook-Ceph与Rainbond结合的实践

北京好雨科技有限公司

Kubernetes PaaS Ceph rainbond

直播场景音频降噪,传统算法 VS AI 算法对比和实践

融云 RongCloud

好的产品帮助文档可以留住一个用户的心

小炮

小程序容器技术,加速工业互联网平台建设

Geek_99967b

小程序 工业互联网 小程序容器

2022,云上开发新纪元

Heighliner

云原生 #k8s 开发者, 远程开发

主数据管理平台功能模型介绍

agileai

Java 数据治理 数据模型 主数据平台 功能模型

传统企业数字化转型,到底难在哪里?

飞算JavaAI开发助手

手慢无!‘’阿里爸爸‘’6月最新开源新版Spring Cloud Alibaba全体系10w字全彩笔记

Java全栈架构师

Java 程序员 面试题 架构师 SpringCloud

什么是真正的敏捷开发?敏捷开发与瀑布开发有何不同

阿里云云效

云计算 阿里云 敏捷开发 研发 开发模式

使用GeekCode在开发中分离计算和存储

王泰

CloudIDE 云 IDE

EMQ作为首批创始会员单位,加入SAP可持续发展与实践战略联盟

EMQ映云科技

物联网 IoT SAP emq 6月月更

Vue-9-计算属性的属性

Python研究所

6月月更

详解MOVE PROTOCOL的测试版,让健康运动如影随形

鳄鱼视界

Elux-从"微前端"到“微模块”

hiisea

前端框架 微前端 微模块 elux

实战邮件攻击简要分析【网络安全】

网络安全学海

网络安全 安全 渗透测试 WEB安全 漏洞挖掘

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