Reputation: 1907
Could I have a list of type of applications I should build on a sql database and a list of applications i should build on a nosql database?
Upvotes: 3
Views: 906
Reputation: 101
When chosing there is no one-stop fit all solutions
1. We need to ensure ACID compliance. For Huge enterprise applications like eCommerce or Banking applications it is a preferred option.
2. When Data is consistent.
1. Want to store large volumes of data that has very little structure or no structure.
2. Rapid development
3. Horizontal scaling possible ie. your database can split across multiple servers.
More about Non-Relational databases :
Example: Key Value based data Eg: Cassandra, Mongodb
"Eg: For Id=123 Value =
{
""name"":""Lalith Swarna"",
""address"":{
""street"":""Gachibowli Road"",
""city"":""Hyderabad""
},
""company"":""ais"",
""role"":""Specialist""
}"
1. Insert/Retrieval : simple key based w/o any joins Schema is easily
changeable
2. Built for scaling: data is partitioned internally Built for metrics/analytics/aggregation : Eg Average age, total sal etc
1. NOT built for updates(ACID-AtomicityConsistency) is not followed to update it does Delete and update.
2. Read times are lower than Sql eg: retrieve Age 30 takes all the json and filters the age.
3. Foreign key constraint not straighforward.
4. Joins are hard, have to run through everyblock of data find the relevant dataid then join with other table.
Upvotes: 0
Reputation: 147344
There is no list and the real answer IMHO is the classic "It Depends".
In very loose terms, financial applications where consistency is critical would be an example of something not suitable for NoSQL - in that case, ACID is crucial.....BASE would not be suitable (Basically Available Soft state Eventually consistent).
You really need to understand what NoSQL has to offer vs RDBMS, and the tradeoffs in order to know whether it is suitable for a given scenario.
Upvotes: 1