While much of the data we store as humans is highly relational, especially in business applications, when huge amounts of data that isn’t highly relational need to be stored, Database structures like NOSQL can have some serious advantages. For example, the structure in a NoSQL DB doesn’t need to be structured beforehand, which can save a lot of time in conception, construction and implementation. Also the NoSQL DB is constantly changing over time, making adjustments in the DB autonomous. on the other hand, it could be very time consuming if you need to change things within a purely SQL DB. NoSQL databases are highly scalable, due to horizontal construction and a technique called sharding. More machines can be added to the network to increase computing power and storage capabilities. No SQL databases are also generally much faster in retrieving data. Finally, NoSQL databases uses the JSON format for storage, which is highly compatible in the business and tech world to other software and machines. While noSQL is highly scalable, there is some functionality lost in a tradeoff. Primarily, the lack of JOIN function and the inability to create constraints. Also something to consider is the lack of atomicity. Because of the sharding, all processes do not transpire at the same time on the DB. While NoSQL is a logical choice for huge amounts of Data, if your data is highly relational, noSQL would not be the best choice, as it is difficult to organize the information into relationships in a manner for fast retrieval