The word "Database" is not new in IT Industry. Anyone who joins the world of Information Technology comes across the concept of database, DBMS, RDBMS. Oracle, SQL Server, DB2 are some of the most talk about products in Database area.
In recent few years the word “NoSQL” has gain momentum. NoSQL Databases have become very popular in recent times.
For a database professional, the Database industry can be divided into two
1. RDBMS
2. NoSQL
RDBMS databases such as Oracle, SQL Server etc. are those which support relation between tables. The data is stored in rows and columns. There are concept of primary key and foreign key. There are joins between two tables. Indexing, transactions, joins, triggers are some of the common features in all these database products.
NoSQL databases are opposite to RDBMS. There are no concepts of tables. Data is not stored in rows and columns. Data is stored in flat files. There are no concepts of relation, joins, complex transactions, triggers etc.
NoSQL Databases can be classified into Keyvalue Database, Document database, Object Database, Tabular database, Multivalue database etc.
MongoDB is a leading open source, document oriented database. This Database is written in C++. It is develop by 10gen.
Some of the leading Document oriented databases are JasDB, CouchDb, ClusterPoint, RavenDB etc. You can find a complete listing here.
MongoDB is a scalable, open source, high performance, document oriented database.
According to Wikipedia the term "Document Database" is defined as following:
A document-oriented database is a computer program designed for storing, retrieving, and managing document-oriented information, also known as semi-structured data.
Why MongoDB?
Why do we need MongoDB? The point is Relational Database has limitation. The major limitation is speed. When the data grows in Terabyets & petabytes the RDBMS performance starts to decrease. The other limitation is it can store structured data only. With the invention of Big Data and Cloud computing the need for performance and to store semi-structured and unstructured data in large volume has grown. MongoDB and similar databases of NoSQL category provides high speed performance and they can store structured and semi-structured data.
MongoDB or NoSQL databases are not replacement of RDBMS Databases such as SQL Server, Oracle, DB2 etc. They cannot replace these databases because the RDBMS design, architecture has its own advantage. In many banking system the use of Transactions are must. NoSQL do not provide support for complex transactions.
MongoDB database do not support following things:
- Joins between tables
- Complex Transactions
- Constraints
MongoDB database provide support for
- Adhoc queries
- Index can be created on any field
- Replicaiton
- Scalable
- Cross platform
- Aggregation
- File storage
MongoDB database support all platforms. You can run the MongoDB on
- Windows
- Linux
- Mac OS x
- Solaris
Some of the top companies which are using MongoDB are
- MTV
- Craiglist
- Four Square
- SAP AG
Here is a very good introductory video from Youtube on MongoDB.
Next: How to get Started with MongoDB