4 AnswersNew Answer
You can call me outdated but I have never used a NoSQL database before. They both do the same thing. To store data. But they do it differently. SQL databases stores data in database systems hosted on your server. NoSQL databases are more portable as they store data in binary json or other formats. If SQL is mainframe, NoSQL is Azure! Absurd comparison but hope you get it 😉
Just as XML and json are different, sql and nosql(mongoDB) are different. You can use both databases as you want. But I recommend for you sql. Cause sql is simple
@Ore I suspect you have used a NoSQL database before without realising it. Key-value stores are a form of NoSQL databases, i.e. Python dictionaries. Berkeley DB (BDB) is a software library intended to provide a high-performance embedded database for key/value data. Although not touted as a NoSQL database it is. The term NoSQL database is a relatively recent term (1998) while BDB was released around 1994. The original unix dbm library (1974) was also a key value database See: https://en.wikipedia.org/wiki/NoSQL https://en.wikipedia.org/wiki/Berkeley_DB https://en.wikipedia.org/wiki/DBM_(computing)
@Apurbo Kumar SQL databases use SQL as a query language it isn't the tables that make it an SQL database. dBASE contains tables but was not an SQL database in it's original form. It didn't get SQL until dBASE IV in 1988. The original version was called Vulcan and ran on an IMSAI 8080 back in the stone age of computing. Ashton Tate then had it ported to CP/M by the original author and branded it as dBASE II (c1979). Furthermore, NoSQL databases are not all JSON based. They can use key value pairs or, like dBASE II be comprised of multiple tables. You could also consider a flat file database to be a NoSQL database, though given that you can implement one in a single table you could also build one in an SQL database. A relational database has tables but it does not have to have SQL, though that would be rare these days since SQL is so common. SQL was specifically designed for managing data held in a relational database management system (RDBMS).