NebulaGraph--3.数据库简介

NebulaGraph--3.数据库简介

2023年7月21日发(作者:)

NebulaGraph--3.数据库简介关系型数据库关系型数据库,是指采⽤了关系模型来组织数据的数据库。关系模型为⼆维表格模型,⼀个关系型数据库就是由⼆维表及其之间的联系所组成的⼀个数据组织。说到关系型数据库,⼤多数⼈都会想到MySQL。MySQL 是⽬前最流⾏的数据库管理系统之⼀,⽀持使⽤最常见的结构化查询语⾔(SQL)进⾏数据库操作,并以表格、⾏、列的形式存储数据。与图数据库不同,关系型数据库(或 SQL 型的数据库)中的边也是作为实体存储在专门的边表中的。先创建两个表,球员(player)和球队(team),然后再创建表 player_team 作为边表。边表通常由相关的表 join ⽽成。例如,此处的边表 player_team 就由球员表和球队表 join⽽成。这种存储边的⽅式在关联⼩型数据集时问题并不⼤,但是当关系型数据库中的关系太多时,问题就出现了。事实上,关系型数据库是⾮常“反关系的”。具体来说,当你只想查询⼀个球员的队友时,你必须对表中的所有数据进⾏ join 操作,然后再过滤掉你不需要的所有数据,当你的数据集达到⼀定规模时,这将给关系型数据库带来巨⼤压⼒。如果你想关联多张不同的表,可能在 join 爆炸(join bombs)前系统就已经⽆法响应了。NoSQL 数据库图数据库并不是可以克服关系型数据库缺点的唯⼀替代⽅案。现在市⾯上还有很多⾮关系型数据库的产品,这些产品都可以叫做 NoSQL。NoSQL 数据库可以分为四类:键值存储(key-value stores)列式存储(column-family stores)⽂件存储(document stores)图数据库(graph databases)键值存储(key-value stores)键值存储,顾名思义,就是使⽤键值对存储数据的数据库。不同于关系型数据库,键值存储是没有表和列的。如果⼀定要做类⽐,键值数据库本⾝就像⼀张有很多列(也就是键)的⼤表。在键值存储数据库中,数据(即键值对中的值)都是通过键来存储和查询的,通常⽤哈希列表来实现。这⽐传统的 SQL 数据库要简单得多,⽽且对于某些 web 应⽤来说,这就⾜够了。键值模型对于 IT 系统来说优势在于简单、易部署。多数情况下,这种存储⽅式对⾮关联的数据很适⽤。如是只是存储数据⽽⽆需查询的话,使⽤这种存储⽅法就没有问题。但是如果 DBA 只对部分值进⾏查询或更新的时候,键值模型就显得效率低下了。常见的键值存储数据库有:Redis、Voldemort、Oracle BDB。列式存储(column-family stores)NoSQL 数据库的列式存储与 NoSQL 数据库的键值存储有许多相似之处,因为列式存储仍然在使⽤键进⾏存储和检索。区别在于列式存储数据库中,列是最⼩的存储单元,每⼀列均由键、值以及⽤于版本控制和冲突解决的时间戳组成。这在分布式扩展时特别有⽤,因为在数据库更新时,可以使⽤时间戳定位过期数据。由于列式存储良好的扩展性,因此适⽤于⾮常⼤的数据集。常见的列式存储数据库有:HBase、Cassandra、HadoopDB 等。⽂件存储(document stores)准确来说,NoSQL 数据库⽂档存储实际上也是基于键值的数据库,只不过对功能做了增强。数据仍然以键值的形式存储,但是⽂档存储中的值是结构化的⽂档,⽽不仅仅是⼀个字符串或单个值。也就是说,由于信息结构的增加,⽂档存储能够执⾏更优化的查询,并且使数据检索更加容易。因此,⽂档存储特别适合存储、索引并管理⾯向⽂档的数据或者类似的半结构化数据。从技术上讲,作为⼀个半结构化的信息单元,⽂档存储中的⽂档可以是任何形式可⽤的⽂档,包括 XML、JOSN、YAML 等,这取决于数据库供应商的设计。 ⽐如,JSON 就是⼀种常见的选择。虽然 JSON 不是结构化数据的最佳选择,但是 JSON 型的数据在前端和后端应⽤中都可以使⽤。常见的⽂档存储数据库有:Elasticsearch、MongoDB、CouchDB、Terrastore 等。图数据库(graph databases)最后⼀类 NoSQL 数据库是图数据库。本书重点讨论的 Nebula Graph 也是⼀种图数据库。虽然同为 NoSQL 型数据库,但是图数据库与上述NoSQL 数据库有本质上的差异。图数据库以点、边、属性的形式存储数据。其优点在于灵活性⾼,⽀持复杂的图形算法,可⽤于构建复杂的关系图谱。常见的图数据库有:Nebula Graph、Neo4j、OrientDB 等。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689900842a293413.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信