For nearly four decades, developers have been using relational databases such as SQL Server as a data store. Relational databases have many advantages: They save space and prevent data duplication through normalization. Perhaps most important, they’re well understood. If you’ve been building software in the past 20 years, you are likely intimately familiar with at least one commercial relational database system.
As useful as relational databases are, they have some shortcomings. Relational schemas are fixed and somewhat difficult to change. The end result is that modeling nonuniform data is difficult. ...