nosql教程十多年来,数据库设计的事实标准是关系模型。关系数据库使用主键和操作表数据时具有严格的约束。这些数据库对于较小的数据存储要求有益,但您需要“大数据”功能来管理大型查询。这是NoSQL的目标。NoSQL数据库完全不同于关系数据库,因此您需要了解如何使用NoSQL进行正确管理大数据查询。如果您不正确地实现NoSQL,您实际上可以减慢您的网站或使用NoSQL数据库系统的应用程序。

开始使用MongoDB的最新NoSQL趋势和结构

NoSQL数据库的类型

NoSQL数据库系统有几种类型,尽管其中有几种比其他类型更流行。

第一种类型是最常见的。文档类型NoSQL数据库使用称为文档的结构来存储数据。该文档给出了一个ID,也可以使用与关系数据库相同的ID将这些文档链接在一起。这种类型的结构与MongoDB一起使用,即常见的开源数据库系统。您可以以同样的方式考虑文档系统,以与常规文件相同。您在数据库中“文件”文档。该文档可以包含任何数量的数据和任何数据类型。下一个文档还可以包含任何数据和任何数据类型。这些文档包含数据没有约束。

下一个流行的数据系统是键值方案。如果习惯于编程语言,则键值系统将熟悉。键值存储一个密钥,这是值的标识符。您可以使用密钥或值查找数据。同样,没有对数据的约束,因为您只有每个元素都有键值对。

使用MongoDB一步一步地学习NoSQL

其他两种类型的NoSQL是图形和宽柱存储。图表存储可以保留有关网络系统的数据,这些数据可以增长到几个数据的数据。宽列存储用于存储在多个数据集中的大数据。这些系统主要用于报告。

一个常见的图形存储NoSQL数据库是XML数据库。大多数开发人员都熟悉XML,因为它是支持数据查询和存储的旧模式。您可以更容易地在NoSQL数据库中存储XML,但XML也有点过时了。大多数开发人员更倾向于将JSON作为数据模型模式,因此将XML数据库适合于当前系统可能更加困难。

NoSQL的好处

使用大数据数据库有几个原因。最主要也是最流行的原因是查询和报告可以处理的数据量。关系数据库可以存储和处理包含数百万条记录的表。这在十年前是一个庞大的数据量。但是,当表增长到数十亿或数万亿行时,这些数据库系统就不是那么好了。对于关系数据库,惟一的选择是使用与表相同的设置来存储数据,并且任何操作数据都必须遵守任何严格的约束。这没有为动态信息提供太多空间。NoSQL数据库通常能够比关系数据库更有效地检索大型数据集。

在Udemy.com上参加一个虚拟课程来学习和实践数据库设计

NoSQL数据库还能够更快地允许更快的代码释放,并使用面向对象的编程更好地工作。例如,当您以诸如C#等语言创建对象面向的程序时,您可以使用数据库创建更多自由。NoSQL允许您使用OO类创建数据库表。当这些类存储数据时,它们表示动态地代表数据库中的文档并存储。如果更改类模型,NoSQL数据库将允许您存储新数据,而无需更改整个数据库模型。较旧的程序知道要更改代码,则需要更改表,任何约束,然后刷新数据库和代码。使用NoSQL数据库,表将自动更新。

对于较老的关系数据库,开发人员要记住首先更改数据库,然后重构代码以处理新的更改。对于旧的关系数据库,大的更改有时是不可伸缩的。NoSQL是动态的,因此对代码的更改反映在数据库中。您不需要在开发过程中多次更改数据库。betwayapp下载安装

NoSQL数据库还提供一个名为“分片”的概念。使用关系数据库,您需要垂直缩放。这意味着当您托管数据库时,通常会在一台服务器上托管它。当您需要更多资源时,将另一个数据库服务器或更多资源添加到当前服务器。使用NoSQL,您可以“拆分”您的数据库文件。这基本上意味着您可以跨多个服务器共享数据库文件。分片在非常快速的存储硬件上使用,例如SAN和NAS。使用多个数据库服务器一次加快查询,尤其是当您在数据集中有数百万行时。

您可以使用分片来实现云计算。这使您的查询尤其快速地在需要有几个不同位置的报告时。使用旧技术,您的用户将登录网络并从数英里远的报告,有时在其他国家/地区。结果是,用户有时需要等待几分钟才能呈现报告。通过云计算,从最近的数据中心向您的用户提供报告数据。结果是更快的数据处理和渲染。

NoSQL支持手动分片,但NoSQL服务器还将进行自动分片。数据库服务器将自动在多个服务器上传播动态数据量,因此每台服务器上的负载都会减少。

除了在云计算环境中使用NoSQL进行性能外,它还在成本方面也有益。云计算主机只向您收取您使用的资源,因此成本与您的业务增长相比。

使用NoSQL进行复制是一个选项。在收集数据时,可能需要将该数据复制到其他服务器。例如,出于性能原因,您可能希望将数据复制到主生产服务器上的报表服务器。NoSQL支持自动复制,因此您可以在数据库实时收集数据时将数据发送到多个服务器。

在Udemy.com上开设一门课程,将数据库设计提升到一个新的水平

您还可以在更多的当前语言中使用NoSQL。例如,NoSQL与Node.js一起用于实时网络通信web应用程序。只需给出表名和模式名,就可以直接从NoSQL数据库中提取数据。由于NoSQL在新语言中的弱类型以及NoSQL存储和实现数据的动态方式,您可以在web应用程序中创建非常强大的动态应用程序。

NoSQL仍然支持常见的CRUD查询。CRUD是“创建、读取、更新和删除”查询过程的名称。这些过程是处理任何数据库中数据的四种主要方式。create语句创建一条新记录,read (select)语句为应用程序检索数据,update语句更改并编辑已经存储在数据库中的数据,delete语句从数据库中删除一条记录。

NoSQL语句依赖于所合并的数据库结构的类型。在大多数情况下,您将使用一种编程语言来创建与NoSQL服务器接口的应用程序。语句与您在关系数据库中使用的语句有很大的不同。即使您有不同的SQL服务器,在平台(Oracle、MySQL或SQL Server)之间的语句仍然是相似的。由于NoSQL是动态的,并且与关系表完全不同,它更多地处理文档或实体,因此您的查询具有不同的结构。但是,当您使用不同的编程语言时,您可以使用插件从数据库中检索数据。这些插件有助于减少学习原始查询信息的需要。

如果您认为您需要收集大量数据,那么它可能值得调查NoSQL数据库解决方案。您也可以符合最新的数据库语言和技术。要成为一个好程序员,您需要了解最新的技术和语言。NoSQL是一种从关系数据库系统接管的趋势类型。

特色课程

NoSQL:Neo4j和Cypher(部分:2中级)

最后更新2018年3月

  • 2.5小时
  • 27日讲座
  • 中级水平
4.5 (429)

NoSQL: Neo4j -停止开发数据库的艰难之路!|By Bruce E. Hilton

探索课程

NoSQL的学生也在学习

赋予你的团队。引领行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求演示