NoSQL数据库的类型与特性

在数字化时代,数据的准确性和安全性至关重要。想象一下,如果金融资产因为数据错误而错误地转移到了别人的账户,这将是多么严重的问题。然而,在网上进行交易时从未犹豫,这种差异可能源于从小就见证的交易的高准确性。银行、航空公司和电子商务等领域的无数交易为何如此准确?在很大程度上,这要归功于关系型数据库管理系统(RDBMS),它严格遵守ACID原则(原子性、一致性、隔离性和持久性)。但随着数据量的增长,开始使用NoSQL数据库。NoSQL消除了模式的需求,通过牺牲ACID原则,极大地提高了数据处理能力。然而,有了准确的支持应用程序,NoSQL提供了高数据处理能力和良好的准确性的完美结合。本文将讨论流行的NoSQL数据库。

NoSQL实际上没有完整的形式或实际意义。这个术语是偶然在一次活动中由Johan Oskarsson提出的,用于讨论开源分布式网络。"#NoSQL"只是一个Twitter标签,用于组织这次会议。然后,一些数据库人员在会议上发现这个标签适合用来命名这些非关系型数据库。实际上并没有对NoSQL的严格定义。然而,以下是NoSQL数据库的一些共同特征:

1. 它们不是关系型的。2. 大多数是开源的。3. 它们都是集群友好的。4. 它们是无模式的。5. 它们起源于21世纪的网络世界。然而,经常将NoSQL称为无模式的,这并不意味着这些数据库不遵循任何模式。例如,考虑以下NoSQL表达式:Tab1[“收入”] * Tab1[“总计数”]。NoSQL有一个隐式模式,可能在整个数据库中并不恒定。这种情况既是好事也是坏事。基本的事情是,每当想要修改一个字段时,需要理解这个隐式模式。好的方面是,随着模式的变化,它需要的努力要少得多,与RDBMS相比。此外,RDBMS在分布式网络方面并不出色,而NoSQL则不是这样。

在文献中,NoSQL被细分为四大类型。发现Martin Fowler提出了一种非常有趣的分类方法。根据NoSQL存储数据的方式,它主要有两种类型:

1. 聚合型数据库。2. 图形型数据库。两者之间的主要区别在于,在聚合类型中,数据库尝试将特定ID(这可以是个人、交易或产品等)的所有信息存储为单个对象。而图形类型则遵循完全相反的哲学。图形类型数据库尝试将数据切割成高度粒度的信息,并与所有共享的关系或边缘存储在一起。本文将讨论更常见的聚合型数据库。

键值数据库/文档数据库:键值数据库和文档数据库非常相似。可以将文档数据库视为键值数据库的嵌套形式。以下是一个简单的键值数据库:

Image Credit: http://nosql.rishabhagrawal.com

现在,如果想获取关于16GB iPod的信息,只需要向数据库提供键“13a2”。以下是一个文档数据库的样子:

请注意,在每个文档中,都有该ID的聚合信息。将其与analyticsvidhya示例联系起来。在情况下,将所有姓名、标题名称等作为键值对存储在每个文档中。现在,可以在一次操作中提取整个文档,因为它存储在同一个对象中。

Image Credit: www.timestored.com
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485