Thursday, May 27, 2010

Step 8 - Question

a. What is MongoDB? How does it relate to MongoHQ

According to Mongodb.org (2010), MongoDB (from “humongous”) is a scalable, high-performance, open source, document-oriented database, and written in C++ programming language. As Wikipedia (2010) explain that MongoDB is designed for problems without heavy transactional requirements that are not easily solved by traditional RDBMSs, including problems that require databases to span many servers. MongoDB is not a relational database management system. The database manages collections of JSON-like documents that are stored in a binary format referred to as BSON.

MongoDB relates to MongoHQ:

MongoHQ provides a hosting platform for MongoDB and also uses MongoDB as the back-end for its service.

References

Mongodb (2010). The Best Features of Document Databases Key-Value Stores, and RDBMSes. Retrieved from www.Mongodb.org

Wikipedia (2010). MongoDB. Retrieved from http://en.wikipedia.org/wiki/MongoDB

b. What is MongoMapper

According to Github.com (2010), MongoMapper is a Ruby wrapper library which aims to make using MongoDB much easier and friendlier than the default Ruby driver provided by XGen. When is makes sense to do so, MongoMapper tries to stick closely with the familiar syntax of ActiveRecord.

Due to the way MongoDB stores data, MongoMapper consists two key concepts are: Document and the EmbeddedDocument

The Document is essentially a record with fields

An Embedded Document is exactly like a Document, except that it is injected into a Document and still retains all of ts information.

References

Github.com (2010). MongoMapper. Retrieved from http://wiki.github.com/jnunemaker/mongomapper/

c. What is the relation between MongoDB and Mysql

This table below is the quick comparision between MongoDB and MySQL (mongodb.org, 2010)

MongoDB

MySQL

Data Model

Document-Oriented (BSON)

Relational

Data Types

string, int, double, boolean, date, bytearray, object, array, others

Link

Large Objects (File)

Yes (GridFS)

Blobs?

Replication

Master-slave

Master-slace

Object (row) Storage

Collection based

Table-slave

Query Method

Dynamic; object-based query language

Dynamic; SQL

Secondary Indexes

Yes

Yes

Atomicity

Single document

Yes-advanced

Interface

Native drivers

Native drivers

Server-side batch data manipulation

Map/Reduce, server-side javascript

Yes (SQL)

Written in

C++

C

Concurrency Control

Update in Place

Reference

Mongodb.org (2010). MongoDB, CouchDB, MySQL Compare Grid. Retrieved from http://www.mongodb.org/display/DOCS/MongoDB,+CouchDB,+MySQL+Compare+Grid

No comments:

Post a Comment