开始

过去几年,迎来了NoSQL数据库解决方案和产品的大爆发。“NoSQL”是针对SQL语言的一项运动。但实际上,OrientDB允许使用SQL语法!NoSQL的特性可以描述为以下几点:

NoSQL, 全称 "not only SQL", 鼓励开发和业务人员发散思维,考虑使用超越传统关系型的方式进行数据存储的可能性。

虽然关系型数据库系统已经存在很多年,但是它们已经不是一些业务场景的优先考虑方案,例如通信,医药,CAD等等。 而对于一些NoSQL的方案(例如OrientDB)的兴趣显著增长。不奇怪的是,大多数主流的互联网公司例如Google, Amazon, Facebook, Foursquare 和 Twitter都已经将基于NoSQL的解决方案应用到他们的生产环境。

是什么驱动这些公司抛弃成熟的关系数据库的世界的舒适? 动力来自于更好的解决今天数据问题的强大需求,特别是一下几个关键的因素:

  • 性能
  • 可伸缩 (经常非常巨大的数据量)
  • 较小的存储占用
  • 开发效率和友好性
  • 灵活的模式

这些领域中大多数也恰好是现代web应用的需求。若干年前,开发者设计系统去支持数以百计的并发用户。现在普遍都是以同时服务数以千计或百万计的并发用户为潜在目标。

通过创建框架,引入标准和利用最佳实践的方式,技术变更的需求已经考虑在应用之前了。然而,在数据库世界里,现状已经维持了30年。从1970年代至今,关系型数据库一直暂居统治地位。程序语言和理论已经进化,但是数据持久化和数据库的概念大部分依然没变:仍然是表,记录和联接。

NoSQL 模型

基于NoSQL的解决方案大部分提供了一个强大的,可伸缩和灵活的方式去解决数据和用户需求,这些之前都是被关系数据库所管理的。为了总结NoSQL的选择,我们一起体验下最通用的模型或者分类:

  • 关键字 / 值 数据库: 这个数据模型被归约到一个简单的哈希表,由键值对组成。它可以很轻松的在多台服务器之间进行分布式部署。这类系统中最受认可的包括Redis, Dynamo和Riak。

  • 列式 数据库: 数据按照列进行存储,这种方式提供了更好的灵活性和更方便的聚合。Facebook的Cassandra,Google的BigTale和Amazon的SimpleDB都是列式数据库的典型代表。

  • 文档 数据库: 这种数据模型是有文档集合组成,每个独立的文档都有多个字段,但是不一定需要保持一样的定义。这类中最知名的产品就是MongoDB和CouchDB。

  • 图 数据库: 这个领域模型是由通过边连接的顶点形成的丰富的图结构所组成。最知名的产品就是OrientDB, Neo4j 和Titan。

OrientDB是一个文档-图数据库,意味着它拥有所有图的本身的特性和文档数据库独有的正常特征。

上面的分类和模型每一个都有自己的特点,优势和限制。没有一个分类或者模型比其他的都要好。然而,针对确定的问题,一些类型的数据库更具有优势。NoSQL的格言就是:根据自己的场景选择适合的NoSQL.

构建OrientDB的目标就是创造一个健壮的,可伸缩的数据库从而在尽可能多的场景下获得较好的表现。 我们的产品被设计成为一个奇妙的“go to”解决方案来满足你事实上所有可能的数据持久化需求。在接下来的章节中,我们将近距离接触 OrientDB: 当今市面上最好的开源,多模型,下一代NoSQL产品之一。