NoSQL ve SQL veritabanı arasındaki temel farklar nelerdir?

SQL (Structured Query Language) ve NoSQL (Not only SQL) veritabanı yönetim sistemleri arasındaki farkları ele alırsak, bu türlerden hangisi belirli durumlar veya iş yükleri için daha uygun olabilir? İki sistemin sağladığı esneklik, ölçeklenebilirlik, performans ve veri bütünlüğü gibi belirli özellikler arasında hangi önemli farklılıklar mevcuttur? SQL ve NoSQL veritabanları arasındaki farkları açıklarken, her ikisinin de bazı iş gereksinimleri için daha uygulanabilir olduğu durumları belirtmeniz mümkün mü?