NoSQL has emerged as a different and alternative approach compared to relational database management systems (RDBMS).
Actually, there are fundamental differences between the scalable NoSQL systems and relational database management systems.
- Relational database management systems are transaction-based and have ACID rules. NoSQL systems do not fully support the ACID rules and there is no transaction concept in many NoSQL systems.
- Data in the relational database management systems is located on fixed tables and columns. NoSQL systems are not dependent on fixed tables and columns.
- SQL query is not used in NoSQL systems.
- Disintegration of data by primary key is not compulsory in relational database management systems. NoSQL systems access the data over primary keys.
Moreover NoSQL systems are defined in 3 groups among themselves such as document-based, key/value based and graphic-based generally and each group have differences about data consistency and data access strategies.
MongoDB (from "humongous") is an open source document-oriented database system developed and supported by 10gen. It is part of the NoSQL family of database systems. Instead of storing data in tables as is done in a "classical" relational database, MongoDB stores structured data as JSON-like documents with dynamic schemas (MongoDB calls the format BSON), making the integration of data in certain types of applications easier and faster.
Development of MongoDB began in 2007, when the company was building a platform as a service similar to Windows Azure or Google App Engine.
In 2009, MongoDB was open sourced as a stand-alone produc with an AGPL license.
The latest stable version, 2.4.0, was released in March 2013.
At this point, it would be useful to look at the mapping chart of MongoDB concepts and SQL concepts in the conventional relational database management systems:
|row||document or BSON document|
|table joins||embedded documents and linking|
Specify any unique column or column combination as primary key.
In MongoDB, the primary key is automatically set to the _id field.
|aggregation (e.g. group by)||
See the SQL to Aggregation Framework Mapping Chart.
We have to consider the following features :
- Query Support. Whereas many NoSQL solutions enables you to access the data only through the keys, MongoDB offers to query regarding the intended fields and specific ranges (range query), also it offers you to query with regular expressions.
- Secondary Index Support. As well as the querying with respect to intended fields, defining these fields as secondary index provides to access data in a high performance.
- Master-Slave Replication Support. Directing the read and write operations to separate servers, running a slave server as a master server when the master service is inaccessible is a very important positive value undoubtedly.
- Sharding Support.
- MapReduce Support.
- Driver Support for many Software Languages.
If you wanto to set up MongoDB, MongoDB documentation provides all the information you need.
Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN AND DEVELOPMENT.
How to fix excessive MySQL CPU usage
What happens if we realise that a series of databases that we thought were optimised through the use of indexes, have begun to consume CPU usage time of a server…
How to connect to MySQL with Node.js
htaccess Rules to Help Protect from SQL Injections and XSS
This list of rules by no means is a sure bet to secure your web services, but it will help in preventing script-kiddings from doing some basic browsing around. MySQL injection…
MySQL 8.0 is now fully supported in PHP 7.4
MySQL and PHP is a love story that started long time ago. However the love story with MySQL 8.0 was a bit slower to start… but don’t worry it rules…
A roadmap to becoming a web developer in 2019
There are plenty of tutorials online, which won't cost you a cent. If you are sufficiently self-driven and interested, you have no difficulty training yourself. The point to learn coding…
MYSQL: How to create a new user and give it full access only to 1 database
To create a new user in MySQL and give it full access only to 1 database, say dbTest, these are the MySQL commands to do that To create the user: CREATE USER…
ArangoDB, install and configure the popular Database in ubuntu 16.04
Introduction to ArangoDb, open source, NoSQL, multi-model database BigData seems to be getting stronger every day and more and more NoSQL databases are coming out to the market, all trying to position…
How JSON data types work in mysql
First introduced in MySQL 5.7.8, the JSON data type is a specialized binary column type, similar to a blob , but with added machinery to optimize the storage and retrieval…
How to Disable Strict SQL Mode in MySQL 5.7 and Ubuntu 16.04
If your app was written for older versions of MySQL and is not compatible with strict SQL mode in MySQL 5.7, you can disable strict SQL mode. For example, apps…
How to send an e-mail in 1984 - Vintage overdose
How to send an e mail 1980's style. Electronic message writing down the phone line. First shown on Thames TV's computer programme 'Database' in 1984 07/06/1984 Database is an old British…
MySql: How to build a performant search engine
In content-heavy websites, it becomes increasingly important to provide capable search possibilities to help your users find exactly what they’re looking for. The most obvious solution is searching your MySQL…
SQLMAP installation and usage in Ubuntu and Kali linux
Let's talk about the penetration testing using one of the KALI linux tool called SQLMAP. What is SQLMAP? sqlmap is an open source penetration testing tool that automates the process of detecting…