Become a fan of Slashdot on Facebook


Forgot your password?
Data Storage

NoSQL Document Storage Benefits and Drawbacks 96

Nerval's Lobster writes "NoSQL databases sometimes feature a concept called document storage, a way of storing data that differs in radical ways from the means available to traditional relational SQL databases. But what does 'document storage' actually mean, and what are its implications for developers and other IT pros? This SlashBI article focuses on MongoDB; the techniques utilized here are similar in other document-based databases."
This discussion has been archived. No new comments can be posted.

NoSQL Document Storage Benefits and Drawbacks

Comments Filter:
  • Same as the old boss (Score:5, Interesting)

    by greg1104 ( 461138 ) <> on Monday June 04, 2012 @04:27PM (#40213101) Homepage

    It's so cute how NoSQL developers have reinvented the XML database.

  • Unstructured Data (Score:5, Interesting)

    by Bigby ( 659157 ) on Monday June 04, 2012 @04:49PM (#40213413)

    I don't know when unstructured data turned into NoSQL or Big Data, but it is a pretty simple concept with complex Enterprise level requirements. I work in this field and have for various companies. The biggest obstacle is conforming to the laws of various jurisdictions and levels of government.

    You have unstructured data, but it NEEDS some level of structure. That structure is there to restrict access to certain groups within the organization and also for retention rules, which differ by type of data being stored. Not to mention that you must store certain documents in the country of origin, so structured field-based distributed storage plays a role. Oh yea, laws/policies around encryption and whether or not an index violates those laws/policies.

    This doesn't work well with a relational database. Sure, you can jam it into a RDBMS like IBM Content Manager, but it becomes inflexible. However, there are constraints that must be followed and all documents need some kind of structure wrapped around them in a RDBMS-like fashion.

    I haven't dove into these NoSQL systems myself. They seem like a good idea, but I hesitate if they are too loose. In an Enterprise with sensitive information, you need to deny first. Also, how do they index the fields? Like when you have 100,000,000 documents with invoice numbers...

  • by jd ( 1658 ) <> on Monday June 04, 2012 @05:07PM (#40213613) Homepage Journal

    The "old old boss" would be the CDF/NetCDF/HDF family of self-describing distributed storage solutions. They predate XML by a long way and are - I believe - the first true self-describing method of storing, indexing and searching data.

    For the most part, they support network interconnections between instances, so you can have your virtual storage distributed over as many physical systems as you like. The users will never see the difference except in terms of speed. This gives you all the benefit of NoSQL's distributed model (which XML lacks) but with several decades more development in the database design.

    But wait! There's more! If you order in the next gazillion years, you get OpENDAP absolutely free! (Which it is anyway.) OpENDAP will translate between any two data formats, so if one site wants to view the data as, say, a conventional database, another wants to look at it as a collection of spreadsheets and a third is expecting XML data, you'd have OpENDAP translate between client form and central repository form.

    I have no objections to Mongo or Memcache, they're very powerful and are very useful, but we're still ultimately talking about technology everyone else has had since 1985, thanks be to NASA, and many NoSQL technologies are really just network-aware versions of the DBM/NDBM/BDB/GDBM/QDBM family which have existed since Unix began.

    NoSQL definitely has a place - I would not want to try serving cached web data from HDF5 - and it's an important place. But that's just as true for Hierarchical Databases, Star Databases (aka "Data Warehouses"), "genuine" (ie: actually complies with Codd's rules) relational databases (SQL isn't truly relational in the Codd model, merely a subset), and so on.

    It's time we got away from one-size-fits-all ideas, which violates the Unix ethos anyway, and get back to using best solutions for specific problems rather than passable solutions that fail at everything. These are all wonderful, highly specialized solutions to highly specific problem types. Treating them as such will always produce a better answer than force-fitting solutions into not-quite-failing with problems they aren't designed for.

  • Re:Unstructured Data (Score:4, Interesting)

    by Bigby ( 659157 ) on Monday June 04, 2012 @05:12PM (#40213647)

    Some of those documents with invoice numbers are not invoices. In fact, they could have many invoice numbers. An invoice numbers are just an example. There is a lot of value to a company to find all documents relating to product #XYZ that was shipped to company ABC. Maybe throw some date constraints in there. And they don't want useless garbage in the results. Also, all invoices should have an invoice number. And an invoice number should have a certain pattern. Otherwise, garbage-in garbage-out.

    Also, the part where RDBMS based document storage falls flat on it's face is versioning of the schema itself. Business requirements change; they want to require a field that wasn't required before. They want to make one optional. They want to change the type or the pattern format. But the searches should still go across all those documents. NoSQL based stuff, assuming they are properly and efficiently indexed, may do better in this department.

Variables don't; constants aren't.