NoSQL Basics, Benefits and Best-Fit Scenarios
(Page 4 of 4)
Should You Adopt NoSQL Technology?
Naturally, the answer to the question above depends on a variety of factors. Key considerations include:
Open source. Many NoSQL adopters are constrained, by money or ideology, to avoid closed-source products. Conversely, it is difficult to deal with NoSQL products' immaturity unless you're comfortable with the rough-and-tumble of open source software development.
Internet orientation. A large fraction of initial NoSQL implementations are for Web or other Internet projects such as mobile applications.
Schema mutability. If you'd like to have different schemas for different parts of the same "table," NoSQL may be for you. If you like the database reusability guarantees of the relational model, NoSQL may be a poor fit.
Project size. For a large (and suitable) project, the advantages of NoSQL technology may be large enough to outweigh its disadvantages. For a small, ultimately disposable project, the disadvantages of NoSQL may be minor. In between those extremes, you may be better off with SQL.
Remember, too, that the choice of SQL DBMS goes far beyond the "Big Three" or Big Four" of Oracle, IBM DB2, Microsoft SQL Server, and SAP/Sybase Adaptive Server Anywhere. MySQL, PostgreSQL, and other mid-range SQL DBMS -- open source or otherwise -- might meet your needs. So might some of the scale-out-oriented startups cited above. Or if your needs are more analytic, there's a whole range of powerful and cost-effective specialized products, from vendors such as Aster Data, EMC/Greenplum, Teradata and others.
The bottom line is that for cutting-edge applications -- and not just Internet-centric ones -- NoSQL technology can make sense. But in many use cases, NoSQL's drawbacks are likely to outweigh advantages.
Curt Monash runs Monash Research, which provides strategic, analysis-based advice to users and vendors of advanced information technology. He also writes the blogs DBMS2, Text Technologies, and Strategic Messaging. Write him at email@example.com