Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I've been reading up on NoSQL, but I can't figure out one thing. Is it meant to be a replacement for traditional SQL, or is it meant to be used in conjunction with it?

Basically, what I'm asking (I think) is: if you have some structured data that could be represented in an SQL database with tables for each kind of object and connections between them (e.g. users, messages, friendships, whatever), are there any advantages / does it make sense to store all of it in a NoSQL database, or should you just store it in a traditional SQL database and use a NoSQL one just for the stuff that needs to be accessed more frequently (e.g. cache)?

share

migration rejected from stackoverflow.com 1 hour ago

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

put on hold as primarily opinion-based by Colin 't Hart, RLF, Max Vernon, RolandoMySQLDBA, Paul White 1 hour ago

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

2  
It sounds like someone hasn't done basic research. Not a "real question". (NoSQL only means "No SQL" while this often means that relationships are ... less important ... it is not always the case. Consider neo4j or Tutorial D are also "No SQL" databases). –  pst Oct 8 '11 at 22:47
2  
Actually it means "Not Only SQL" and embraces polyglot persistence. See the article by Martin Fowler (martinfowler.com/bliki/PolyglotPersistence.html). And there is a range from NOSQL stores handling large amounts of simple data to NOSQL stores handling complex, rich data (skillsmatter.com/podcast/nosql/…) –  Michael Hunger Nov 18 '11 at 5:58

2 Answers 2

Apart from the above, a great reason to use NoSQL is for caching when building websites. You don't want to keep running complex queries, so you store the results in a NoSQL store. If sh*t hits the NoSQL fan (as detractors often point out, but I am not finding in practice) then design, and structure things so that you can always recover the cache in an emergency by running your cache generation process again over your tables.

You may also find NoSQL very useful for persisting API calls, and even for inter-process communication, since the performance is good enough.

share

If you've read through the answers posted above, you already know why NO SQL is much hyped. In simpler terms I can say it's being used because of the following reasons:

  1. If your data is very very huge (in terms of PETABYTES, TERABYTES etc.)
  2. If this huge data is very loosly coupled and there is no need for relational algebra. (i.e., information is very loosly related and you don't need lot of joins on tables to retireve data.)
  3. You need to scale up your database once in a while as well as you need to change it to make Database changes - adding more columns to your tables according to your requirement etc.
  4. If your data is not structured (file systems, images storage, videos) i.e., it can't be implemented or harder to implement using Tabular Databases (Oracle SQL Developer, MS SQL Server etc.)
share

Not the answer you're looking for? Browse other questions tagged or ask your own question.