众所周知,NoSQL运动旨在成为大数据时代传统关系数据库管理系统的替代品。如今Microsoft对开源的态度有所转变,RavenDB就是很好的例子。Microsoft对RavenDB(NoSQL数据库)的认可令很多人感到惊讶。RavenDB可以轻易的替代关系数据库管理系统并兼容以往的.NET应用。
NoSQL的出现与发展是非常必要的,NoSQL系统的速度和高扩展性是其具备的优势,而这并不是传统关系数据库的强项。NoSQL为Amazon、Google等需要处理大数据的公司提供行之有效的解决方案。如键值存储鼻祖BigTable以及文档数据库CouchDB。
而相关的云存储解决方案提供了在传统关系数据库之外的选择,包括Windows Azure Table(键值类型)以及基于Hadoop的Amazon EC2。
将数据存储在行或列的固定模式是像SQL Server和Oracle等传统关系性数据库的基本特性。虽然许多人认为传统的关系数据库将逐渐消亡,但不同的情况需要不同的工具。随着大量不同类型数据持续增长,未来非结构化数据存储将成为关键技术。
RavenDB是针对Windows/.NET平台而设计的文档数据库。RavenDB的出现将.NET应用与非关系数据库连接到一起。数据以Shcema-less方式存储,并直接通过HTTP、RESTful API或更方便的.NET客户端API连接。.NET客户端API使用LINQ操作RavenDB数据库文档存储。
实战RavenDB
在安装RavenDB之前,你需要安装.NET Framework 4.0。RavenDB可在三种不同的模式下运行,包括作为Windows服务、IIS 应用程序以及嵌入.NET 应用程序。
最新版RavenDB包含以下组件:
●Client:基于.NET Framework 4.0轻量级客户端
●Client 3.5:基于.NET Framework 3.5轻量级客户端
●Silverlight:Silverlight 4.0客户端
●EmbeddedClient:EmbeddedClient(包含嵌入式模式下RavenDB所需的文件)
●Server:RavenDB服务器模式所需文件
●Web: 在IIS模式下RavenDB所需的文件
●Bundles: RavenDB扩展文件
●Samples:RavenDB样本应用
以下命令用于设置服务器端
- <Raven root directory>\Server\Raven.Server.exe /install
安装成功后可通过http://localhost:8080/raven/studio.html访问。如图1。由于该接口使用Silverlight,可能会需要安装或升级Silverlight组件。
可以点击创建样本数据按钮填充样本数据存储以了解RavedDB是如何工作的。
图2显示打开RavenDB以及数据是如何存储进RavenDB的。这组数据创建了以下属性:AlbumArtUrl、Artist、Genre、Price、Title和Count Sold。
- {
- "AlbumArtUrl": "/Content/Images/placeholder.gif",
- "Artist": {
- "Id": "artists/133",
- "Name": "Stevie Ray Vaughan & Double Trouble"
- },
- "Genre": {
- "Id": "genres/6",
- "Name": "Blues"
- },
- "Price": 8.99,
- "Title": "In Step",
- "CountSold": 0
- }
样式数据库具备一个特有的网址(http://localhost:8080/raven/studio.html#/edit?id=albums/614&database=Default),同时还可以通过URL访问其他的项目。
例如流派的信息可通过如下网址访问:http://localhost:8080/raven/studio.html#/edit?id=genres/6&database=Default,同时在Web页面还可编辑数据。
数据库的未来
NoSQL专家预测传统关系数据库将要消亡的想法是不理智的。不同的场景需要不同的应用。Google、Amazon、Microsoft等巨头背后的各种产品使未来数据库的发展具有光明的未来。而对于未来数据库的发展,您又是怎么认为的呢?(李智/编译)
原文链接:techrepublic.com
将 RavenDB 嵌入 ASP.NET MVC 3 应用程序中
RavenDB在传统C/S应用下的一点实践
RavenDB 2.5带来动态聚合和查询流
RavenDB自定义analyzer
RavenDB创始人谈.NET、NoSQL上的ACID以及该项目的未来特性