Java 开发 2.0: NoSQL
2010-07-20 00:00:00 来源:WEB开发网核心提示:关系数据库已经统治数据存储 30 多年了,但是无模式(或 NoSQL)数据库的逐渐流行表明变化正在发生,Java 开发 2.0: NoSQL,尽管 RDBMS 为在传统的客户端 - 服务器架构中存储数据提供了一个坚实的基础,但它不能轻松地(或便宜地)扩展到多个节点,但是,如果您从域模型开始设计您的应用程序,在高度可伸缩
关系数据库已经统治数据存储 30 多年了,但是无模式(或 NoSQL)数据库的逐渐流行表明变化正在发生。尽管 RDBMS 为在传统的客户端 - 服务器架构中存储数据提供了一个坚实的基础,但它不能轻松地(或便宜地)扩展到多个节点。在高度可伸缩的 Web 应用程序(比如 Facebook 和 Twitter)的时代,这是一个非常不幸的弱点。
尽管关系数据库的早期替代方案(还记得面向对象的数据库吗?)不能解决真正紧急的问题,NoSQL 数据库(比如 Google 的 Bigtable 和 Amazon 的 SimpleDB)却作为对 Web 的高可伸缩性需求的直接响应而崛起。本质上,NoSQL 可能是一个杀手问题的杀手应用程序 —随着 Web 2.0 的演变,Web 应用程序开发人员可能会遇到更多,而不是更少这样的应用程序。
在这期 Java 开发 2.0 中,我将向您介绍无模式数据建模,这是经过关系思维模式训练的许多开发人员使用 NoSQL 的主要障碍。您将了解到,从一个域模型(而不是关系模型)入手是简化您的改变的关键。如果您使用 Bigtable(如我的示例所示),您可以借助 Gaelyk:Google App Engine 的一个轻量级框架扩展。
NoSQL:一种新的思维方式?
当开发人员谈论非关系或 NoSQL 数据库时,经常提到的第一件事是他们需要改变思维方式。我认为,那实际上取决于您的初始数据建模方法。如果您习惯通过首先建模数据库结构(即首先确定表及其关联关系)来设计应用程序,那么使用一个无模式数据存储(比如 Bigtable)来进行数据建模则需要您重新思考您的做事方式。但是,如果您从域模型开始设计您的应用程序,那么 Bigtable 的无模式结构将看起来更自然。
更多精彩
赞助商链接