在本文中,我们将简要介绍NoSQL数据库的四种类型。
什么是NoSQL数据库?一般而言,以不同于关系数据库的格式存储数据的数据库被称为NoSQL数据库。NoSQL代表“不仅是 SQL”,它涉及这样一个事实,即数据库可以完全使用“无SQL”来存储和管理数据,或者它可以结合使用新方法(NoSQL)的灵活性和传统关系系统(SQL)的强大功能。
NoSQL数据存储有哪些不同类型?NoSQL数据库可以分为四种类型:
一、键值(KV)商店
这是最简单的NoSQL数据库类型。在这种类型下,数据以键/值对的形式存储。对于每个键,都有一个分配给它的值。每个Key都是唯一的,只接受字符串,而对应于特定Key的值可以接受String、JSON、XML等。由于这种行为,它能够处理海量数据。
键值存储将数据维护为由索引键和值组成的对。KV使用索引Key存储查询值。数据库中的每个项目都存储在键(索引)和值对中。KV存储类似于关系数据库,但每个表只有两列。
一些KV存储甚至可能允许基本连接来帮助我们扫描,如果有复合连接,它们可能不是合适的选择。有多个KV Stores可用,每个KV Stores的主要区别在于它们对CAP定理的适应以及它们的内存v/s存储使用配置。KV存储具有快速查询性能,最适合需要内容缓存的应用程序,例如不断更新前 10 名得分和玩家的游戏网站。
1、特点:一致性;交易;查询特征;数据结构和缩放。
2、优点:简单数据模型;可扩展;值可以包括JSON、XML、灵活的模式;;由于它的简单性,速度极快;最适合数据不高度相关的情况。
3、缺点:没有关系,创建自己的外键;不适合复杂数据;缺乏扫描功能;不适合操作而不是CRUD(创建、读取、更新、删除)
二、文档存储
文档存储是键值存储简单性的扩展,其中值存储在结构化文档(如 XML或JSON)中。文档存储使得在面向对象软件中映射对象变得容易。
文档数据库是无模式的,我们不必事先定义模式并遵守它。它允许我们以文档格式(JSON、XML等)存储复杂数据。文档数据库不支持关系。文档存储中的每个文档都是独立的,没有关系完整性。
文档存储可以用于KV存储数据库的所有用例,但它还有额外的优点,比如没有仅通过键查询的限制,甚至可以查询文档中的属性,而且每个文档中的数据可以在不同的格式。例如,一个产品评论网站,零个或多个用户可以评论每个产品,每个评论都可以被其他用户评论,零个到多个用户可以喜欢或不喜欢。
例如,一个产品评论网站,零个或多个用户可以对每个产品进行评论,每个评论都可以被其他用户评论,并且可以被零个或多个用户喜欢或不喜欢。
1、特点:更快的查询;由于其结构,可以轻松处理大量数据;灵活的索引。
2、优点:简单而强大的数据模型;可扩展;开放格式;没有外键。
3、缺点:不适用于关系数据;查询仅限于键和索引;Map Reduce 用于更重要的查询
三、列族数据存储或宽列数据存储
宽列数据存储采用混合方法,将关系数据库的声明性特征游戏与基于键值对且完全可变的键值存储模式相结合。宽列数据库将数据表存储为数据列的部分而不是数据行。列族数据库将列族中的数据存储为具有许多与行键关联的列的行。列族是一组经常一起访问的相关数据。
1、特点:多维密钥存储;本质上是持久的;分散式;高灵活性。
2、优点:支持半结构化数据;自然索引;可扩展。
3、缺点:不适用于关系数据。
四、图数据库
图数据库的特定用途是存储面向图的数据结构。图数据库是任何提供无索引邻接的存储系统。这意味着每个节点都包含一个指向其相邻元素的直接指针,并且不需要进行索引查找。随着节点数量的增加,一跳的成本保持不变。
图数据库针对遍历连接数据进行了优化,例如遍历社交网络上的联系人列表以找出连接程度。图数据库通常带有灵活的数据模型,这意味着不需要定义边和顶点的类型。
1、特点:灵活性;敏捷;提高性能,即使有大量数据。
2、优点:极其强大;连接的数据在本地索引;可以提供酸;实时结果;敏捷结构。
3、缺点:难以横向扩展,但可以纵向扩展。
总结:NoSQL数据库的四种类型分别为键值 (KV) 存储、文档存储、列族数据存储和图形数据库。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !