📜  AWS非关系数据库

📅  最后修改于: 2020-11-07 03:17:15             🧑  作者: Mango

什么是非关系数据库?

  • 非关系数据库是不遵循由关系数据库管理系统所提供的关系数据库模型的数据库。
  • 这是一个NoSQL数据库,随着大数据应用程序的增加,我们已经看到非关系数据库的稳定增长。
  • 我们有一个非关系数据库。在数据库内部,我们有一个集合。在集合中,我们有一个文档,在文档中,我们有键值对。如果从关系的角度讲,那么Collection是一个表,文档是一行,并且行由键值对组成。

非关系数据库如何工作?

非关系数据库模型使用各种不同的数据模型,例如键值,文档,图形,内存和搜索。

让我们通过一个例子来理解。

  • 在关系数据库中,书籍记录由单独的表组成,并且表之间的关系由主要约束和外部约束定义。例如, Book表具有三列,即Book ID,书名版本号,Author表具有三列,即Author id,Author nameBook id 。设计该关系模型,以便数据库可以在表之间强制引用完整性,以减少冗余。
  • 在非关系数据库中,记录以json格式存储。每个书籍项目(例如书籍ID,书籍标题,版本号,作者ID,作者名称)都作为属性存储在文档中。
JSON/NoSQL
 {
     "Book id": "1",
     "Book title": "Computer",
     "Edition Number": "121",
     "Author id": "23",
     "Author name": "Ankita"
}

为什么要使用非关系数据库

使用非关系数据库是由于以下功能:

  • 灵活性:它具有非常灵活的数据模型,可提供更快且迭代的开发。非关系数据库的灵活模型非常适合结构化,半结构化和非结构化数据。
  • 可伸缩性:非关系数据库通过使用分布式硬件集群来提供横向扩展,而不是通过添加昂贵的服务器来横向扩展。
  • 高性能:非关系数据库使用某些特定的数据模型,例如键值,文档等,它们提供的性能要高于关系数据库。
  • 高性能:非关系数据库为其各自的数据模型提供高性能的API和数据类型。

非关系数据库类型

  • 核心价值
  • 文件
  • 图形
  • 在记忆中
  • 搜索

核心价值

  • 键值数据库是一个非关系型数据库,它以键值的形式存储数据。
  • 键值数据库提供了其他类型的数据库无法实现的高度可分区和水平扩展。
  • 那些希望存储大量数据而又不增加性能开销的企业使用键值数据库。
  • 键值对中的键必须是唯一的,并且它允许您访问与键关联的值。
  • Redis,Riak和Oracle NoSQL是键值数据库的示例。
  • 键值存储是键和值的大哈希表。
  • 当值可以是字符串,JSON,BLOB等时,会自动生成一个键。
  • 键值具有一个哈希表,该表由键和指向特定数据的指针组成。
  • 哈希表是一个存储桶,由逻辑键组组成。

考虑一个简单的示例,其中键是学生ID,并且与键关联的值是学生的姓名。

Key Value
1 Akshita
2 Ankita
3 Yesha

键值数据库的缺点:

  • 它不提供传统数据库系统提供的功能,例如同时执行多个事务时的一致性。此类功能由应用程序本身提供。
  • 当数据量增加时,维护唯一密钥将成为一项艰巨的任务。

文件

  • 文档数据库是一个非关系数据库,用于将半结构化数据存储为文档。
  • 开发人员需要文档数据库,因为应用程序层中的数据以JSON格式表示。
  • 在文档数据库中,文档可以具有相同或不同的数据结构。
  • 文档被分组为集合,这些集合的行为类似于关系数据库中的表。
  • 文档数据库非常受欢迎,因为它允许您使用在应用程序代码中使用的相同模型将数据持久保存在数据库中。
  • Apache CouchDB,MongoDB是文档数据库的示例。

图形

  • 图数据库是由边缘和节点表示的网络数据库,用于存储数据。
  • 通过使用Graph数据库,可以轻松地将Graph从一种模型转换为另一种模型。
  • 节点具有某些关系,这些关系由节点之间的边缘表示。
  • 一些定义的属性与节点和边都相关。
  • 该图包含节点和边。节点用于存储实体,而边缘用于存储边缘之间的关系。
  • 边具有起点,终点,类型和方向。它还描述了父子关系。
  • 遍历Graph数据库中的联接非常快,因为节点之间的关系不是在查询时计算的,而是持久存在数据库中的。

在记忆中

  • 内存数据库是一种非关系数据库,它依赖于内存进行数据存储,而不是将数据存储在磁盘或SSD上。
  • 通过消除访问磁盘的需求,它使响应时间最小化。
  • 由于数据存储和管理在主存储器中,因此存在服务器故障时数据丢失的风险。
  • 内存数据库非常适合需要微秒响应时间的应用程序。
  • 内存数据库的用例是实时出价,游戏排行榜和缓存。

搜索

  • 搜索数据库是一个非关系数据库,用于搜索数据内容。
  • 它使用索引对数据之间的相似特征进行分类,并提高搜索能力。
  • 它主要用于可能是长数据,半结构化数据或非结构化数据的数据。
  • 它提供了一些专门的方法,例如全文搜索,复杂的搜索表达式以及搜索结果的排名。