NoSQL Guide » RavenDB https://nosqlguide.com Tips and tricks for developers using NoSQL databases. Fri, 03 Oct 2014 14:40:36 +0000 en-US hourly 1 http://wordpress.org/?v=3.9.2 Intro to RavenDB – A NoSQL Document Database https://nosqlguide.com/document-store/intro-to-ravendb-a-nosql-document-database/ https://nosqlguide.com/document-store/intro-to-ravendb-a-nosql-document-database/#comments Fri, 03 Oct 2014 13:57:45 +0000 https://nosqlguide.com/?p=211 Built for query speed and flexibility, RavenDB is designed as a document store into which “you can just dump all your objects.” The driving forces behind RavenDB are Oren Eini (aka Ayende Rahien) and the company Hibernating Rhinos. A key design goal was to “make it a joy to develop applications because (RavenDB) gets out of your way.” RavenDB is schema-less, scalable and has built-in support for replication, sharding and multi-tenancy. At the same time, RavenDB also supports ACID (Atomicity, Consistency, Isolation, and Durability) transactions, both on one node and between different nodes.

Any Platform You Like – As Long As It’s .NET

RavenDB is written in .NET. Querying can be done using LINQ (Language Integrated Query) in .NET applications. In addition, the document data store also offers a client API specifically designed for .NET and Silverlight interactions. More generally and because data is stored in JSON format, clients that communicate via HTTP (REST over HTTP) and JSON will also be able to access RavenDB stored data. The data store is available for use as open-source software under the AGPL license. That means that while it is freely available, users must buy a commercial license if they want to use the technology with proprietary software. An ISV (Independent Software Vendor) license allows royalty-free distribution of RavenDB. This may be either embedded in the ISV’s software or in server mode together with the ISV’s own software. 

Hosting Solutions

RavenDB is also available as a hosted solution, the official version being RavenHQ. This fully managed solution handles installation, updates, security, backups and licensing. While Hibernating Rhinos collaborated in setting up the hosted solution, RavenHQ is a separate company. Some users have also installed RavenDB in the Microsoft Azure environment.

Do This – Don’t Do This

RavenDB appeals to users and organizations looking for efficiency in developing web applications. While offering the flexibility of schema-less operation, RavenDB works well with many CRUD (Create, Retrieve, Update, Delete) type operations. It is suited to OLTP (online transaction processing) in particular. The data store works well for fast query processing (numbers of transactions per second) while maintaining data integrity. On the other hand, RavenDB is less well-suited to reporting database or OLAP (online analytical processing) type operations. However, reporting databases are lower transaction volume, multi-dimensional schema entities that are often built separately to their OLTP counterparts. Oren Eini suggests using a separate star schema or cube database and doing the reporting directly from there.

Who Uses RavenDB Today?

The biggest reference for RavenDB is the US cable and satellite channel MSNBC (msnbc.com.) Software development teams for this company confirm rapid development cycles thanks to schema-less nature of the data store. Insurance Marketing Technology, also in the US (Harrisburg, PA), uses RavenDB as a base for its services too. Elsewhere, Visa Global Logistics in Australia uses RavenDB in a real time shipment tracking and tracing application. Getmusic.com.au uses it to offer almost two million different products and hundreds of thousands of MP3 streams. In Japan, Nomura uses RavenDB as part of its infrastructure for providing investment and financial services. 

]]>
https://nosqlguide.com/document-store/intro-to-ravendb-a-nosql-document-database/feed/ 0
Guide to Document Databases – NoSQL Explained https://nosqlguide.com/document-store/nosql-databases-explained-document-databases/ https://nosqlguide.com/document-store/nosql-databases-explained-document-databases/#comments Wed, 30 Apr 2014 02:41:18 +0000 https://nosqlguide.com/?p=73 How do you store and retrieve different kinds of documents in traditional databases that use fixed data schemas? The answer is ‘with difficulty’. Traditional SQL or relational databases have rigidly defined ways of organizing their data. Once the schema is in place, any application using that database can only add or retrieve records that match that schema. However, another approach – that of the NoSQL (‘Not only SQL’) document database – allows a much more flexible solution.

Documents for Speed and Flexibility

NoSQL document databases use the concept of a document instead of a table or ‘relation’. They are designed to handle semi-structured data that simply don’t fit into relational databases. NoSQL databases in general have come to the forefront as the limitations of relational databases in an increasingly Big Data world have become apparent. Among further advantages of NoSQL databases or stores as they are also known are increased scalability and speed of data storage and retrieval. Whether you choose to use an RDBMS (relational database management system) or NoSQL database will depend on your application and your requirements. Both have roles to play.

Handling Document Structure

At the simplest level, document databases store pairs composed of a key and a ‘document’, which is a more or less complex data structure. A document can itself contain different pairs of key values, key arrays and possibly also nested documents. Compared with NoSQL key value stores where the objects held are not interpreted by the database system, NoSQL document stores do recognize the structure of the documents being held. Documents can also be grouped into collections. On the other hand, like a key value store (and other NoSQL databases), a document store can partition and replicate data for automatic recovery.

APIs and Document Encoding

An API or a query language then allows users and applications to retrieve documents based on their content, or the values of certain fields. The structure of the fields in the documents is dynamic. Users can freely modify, add or remove fields from existing documents. Frequently used document encodings to allow fields to be used like this include XML, JSON (JavaScript Object Notation), PDF and Microsoft Office formats (such as MS Word and Excel).

Possible Uses

Users of NoSQL document stores include publishing and media companies. They can store different text-heavy data on one platform for access for e-learning and research via content-driven applications. More generally, organizations that generate large collections of data see benefit in using NoSQL document databases to bring different data types together. Departments can cross-reference each other’s information so that enterprise-wide understanding is improved and silo thinking avoided.

Examples of NoSQL Document Database Systems

Popular NoSQL document database solutions include CouchDB, MongoDB and RavenDB. All of these solutions are Open Source, although they have different backgrounds and profiles. CouchDB is part of the Apache Software Foundation: it accepts queries using JavaScript and offers data views as simple JSON objects. It also offers eventual consistency: this is data synchronization between different machines on a ‘sooner or later’ basis.

By comparison, MongoDB offers both eventual and immediate consistency. In this sense, MongoDB is closer to an RDBMS and a guarantee of no data loss. While it runs under Linux, Mac OS X and Windows, MongoDB does not offer an Android version (CouchDB does). For Windows platform users, RavenDB offers similar NoSQL document store functionality, plus an integrated .NET API for application integration.

]]>
https://nosqlguide.com/document-store/nosql-databases-explained-document-databases/feed/ 0