NoSQL databases, or 'not only SQL' databases, offer alternatives to traditional relational databases, optimizing for large volumes of unstructured or semi-structured data. Key types include document stores, key-value stores, column-family stores, graph databases, time series databases, object stores, and NewSQL databases, each tailored for specific use cases and data handling efficiencies. The choice of database should consider factors like data model, scalability, consistency, and ease of development.