1

I would like to seek knowledge about databases. I understand relational databases like MySQL, DB2 etc. I would like to understand what is NoSQL. It would be great is someone can answer my questions and it's not a duplicate question, please understand the intricate details.

  1. What is NoSQL? Is NoSQL different from relational only in that it stores data in JSON format?
  2. How are NoSQL versions Firebase, Cloudant, MongoDB different?
  3. How is Elastic-search different from NoSQL database?
  4. Can Elastic-search be independently used as a database?
Community
  • 1
  • 1
user2609410
  • 319
  • 1
  • 3
  • 12

1 Answers1

1

What is NoSQL? Is NoSQL different from relational only in that it stores data in JSON format?

As Tim commented above, there are dozens of different database products that fall under the umbrella of "NoSQL". That's really a marketing term, not a technical term and not a product name.

In the automobile world, if you say "coupe" we know that's a certain type of car, and coupes are expected to share certain characteristics, but there are many different car models from many makers that fit in that category.

You might like to read info about the 225+ database products that could be considered NoSQL: http://nosql-database.org

I don't know of any NoSQL databases that store data in JSON format. Some transfer data as query results in JSON format.

The way data is stored has nothing to do with whether it is relational or not. Relational databases are about how data is organized into tables, and tables have a header that names their columns with data types, and then rows. SQL is the most popular language for interacting with relational databases. Many relational database products exist (e.g. Oracle, MySQL, and Microsoft SQL Server are the most popular), and each stores data in their own way.

Whereas NoSQL does not use the SQL language for querying, and they are not necessarily constrained to storing data in well-defined tables. But that's where the general statements end. How they query data and how they organize data varies a lot between each product.

So "NoSQL" is really the inverse of a type—it's more like saying "not a coupe." Well what is it then? It's every other type besides coupes. It's vans, and trucks, and motorcycles, and unicycles, and snowmobiles, and waterskiis.

How are NoSQL versions Firebase, Cloudant, MongoDB different?

This is too broad of a question for Stack Overflow's format. Stack Overflow wants to host questions about specific coding problems.

Briefly:

  • Cloudant is an IBM hosted database service, based on Apache CouchDB, making it a document store.
  • Firebase is a Google hosted database service targeted toward providing back-end data, authentication, and messaging for mobile apps.
  • MongoDB is an open-source document store, which you can run on your own server. MongoDB was the technology used by Facebook's Parse service, before that shut down. Parse was targeted at the same mobile-app market as Firebase.

How is Elastic-search different from NoSQL database?

Elastic-search internally uses Apache Lucene, a fulltext-indexing technology. It not usually presented as a general-purpose NoSQL database, it's more of a search engine.

Can Elastic-search be independently used as a database?

I really wouldn't recommend it. Lots of people ask the same question, can they replace their relational database with a search engine like Lucene. The answer from people who have tried it is always, "we tried that, until the Lucene index corrupted itself and then we were hosed."

People underestimate the importance of strong data durability and crash recovery, until they fall victim to weak durability and crash recovery.

Use a search engine as an indexing technology for data you store safely in a durable database. When (not if) it blows up, you can reload it from your orignal data. Run multiple search engine instances so you can keep one available while you rebuild the other.

Bill Karwin
  • 538,548
  • 86
  • 673
  • 828