The statement that NoSQL databases are better for unstructured data because of their schemaless nature can be found everywhere. Frankly, I don't understand that. A human voice recording is often be used as an example for unstructured data. I can store it in a relational database with datatype BLOB, in a well defined schema. Can somebody explain?
The term "unstructured data" has many connotations and probably may mean different things for different people. And a voice recording is definitely not the best example for "unstructured data". As you said, it can simply be represented as a
blob in an RDBMS. Similarly a large text document can be stored as
text type in RDBMS. When it comes to unstructured/semi-structured data, you may not know all the attributes of the data upfront. As RDBMS expects you to define everything upfront (esp the column name and datatype), it will be hard to manage this kind of data in an RDBMS.
Lets us say, you want to track per user when is the last time he visited a country. You also want to look up the date quickly given a country name. In a NoSQL database you can model the table in such a way that country name is a column and the cell will have the last visited date. You do not need to create all the columns (with all possible countries) upfront. As and when you want to add information for a user, you can add the country column and the last visited date. When you want to know when the user visited a country 'x', you can query only for that column for the userid (primary key).
Check the comparison where NoSQL has better results.
NoSQL databases can store structured, semi-structured and unstructured data. Their main advantages focus on semi-structured (JSON, XML, not all fields are known) and unstructured.
But, you can safely store BLOB in a RDBMS, e. g., Oracle Database and many others relational databases.
The people talking about NoSQL be a better sollution to store unstructured data, not always had built an IT infrastructure, and they're replaying what they heard.
Also the trend to think that newer is always better push to this.
But some scenarios NoSQL+unstructured data could be better: to scale out, hundreds of db instances, big data and cloud.
In case of CLOB or BLOB, you can not perform any query on the data looking for a key value.
What if someone has sent you a comment on your article with some racial words in between and you haven't read the comment logs at all.
How will you analyze your logs content looking for a key word if each comment is stored in CLOB or blob?