NOSQL databases provide flexible, scalable alternatives to traditional relational databases. The main types of NOSQL databases are document stores, key-value stores, column family stores, and graph databases. Each has different data models and capabilities such as horizontal scaling, limited transactions, and using relationships as an index.