Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I'll just call out one or two common reasons (I'm sure people will be writing essay answers)</p> <ol> <li><p>With highly distributed systems, any given data set may be spread across multiple servers. When that happens, the relational constraints which the DB engine can guarantee are greatly reduced. <em>Some</em> of your referential integrity will need to be handled in application code. When doing so, you will quickly discover several pain points:</p> <ul> <li>your logic is spread across multiple layers (app and db)</li> <li>your logic is spread across multiple languages (SQL and your app language of choice)</li> </ul> <p>The outcome is that the logic is less encapsulated, less portable, and MUCH more expensive to change. Many devs find themselves writing more logic in app code and less in the database. Taken to the extreme, the database schema becomes irrelevant. </p></li> <li><p>Schema management—especially on systems where downtime is not an option—is difficult. reducing the schema complexity reduces that difficulty.</p></li> <li><p>ACID doesn't work very well for distributed systems (<a href="http://queue.acm.org/detail.cfm?id=1394128" rel="noreferrer">BASE</a>, <a href="http://en.wikipedia.org/wiki/CAP_theorem" rel="noreferrer">CAP</a>, etc). The SQL language (and the entire relational model to a certain extent) is optimized for a transactional ACID world. So some of the SQL language features and best practices are useless while others are actually harmful. Some developers feel uncomfortable about "against the grain" and prefer to drop SQL entirely in favor of a language which was designed from the ground up for their requirements.</p></li> <li><p>Cost: most RDBMS systems aren't free. The leaders in scaling (Oracle, Sybase, SQL Server) are all commercial products. When dealing with large ("web scale") systems, database licensing costs can meet or exceed the hardware costs! The costs are high enough to change the normal build/buy considerations drastically towards building a custom solution on top of an OSS offering (all the significant NOSQL offerings are OSS)</p></li> </ol>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload