why rdbms cant store unstructured data?and why nosql databases can? why rdbms cant store unstructured data?and why nosql databases can? hadoop hadoop

why rdbms cant store unstructured data?and why nosql databases can?


Relational databases are based on Edgar F. Codd's relational data model which assumes strictly structured data. The whole SQL language is constructed around this model and the databases which implement it are optimized for working that way.

But in the past few years, there were attempts to add features to SQL which allow to work with unstructured data, like the SQL/XML extension which allows to store XML documents in fields of SQL tables and query their document-trees transparently.

Document-oriented databases like MongoDB or CouchDB, on the other hand, were designed from the start to work with unstructured data and their query languages were designed around this concept, so when working with unstructured data they are usually much faster and more convenient to use.


I read this question totally wrong and thought about the problem totally wrong at first (multiple locale definitions of "structured") so ignore my comments, however, MongoDB does actually store structured data. The Wikipedia definition (which may I say seems to differ across the internet in itself) is that ( http://en.wikipedia.org/wiki/Unstructured_data ):

Unstructured Data (or unstructured information) refers to information that either does not have a pre-defined data model or is not organized in a pre-defined manner.

But that is untrue for MongoDB since it actually does have one:

{    _id:{}}

Since the _id is always required, as such it has been more accurately said by MongoDB users recently that MongoDB has a "flexible" schema and not nessecarily schemaless which is why most people say it stores unstructured data.

So yes, it does kind of store unstructured data but not totally...


Simply put, NOSQL data stores are hierarchical, variable length, highly distributed file based systems with eventual consistency. The schema is embedded in the data (or in the code but NOSQLs are not schemaless), the columns can vary from one instance to the next even in the same structure, and the size of the columns is not fixed.