This document provides an introduction and overview of NoSQL databases. It discusses what NoSQL means, the motivations behind NoSQL such as big data, scalability, flexible data formats and manageability. It covers key-value stores, document databases, column-oriented databases, graph databases and discusses when each type would be most applicable. Specific NoSQL databases discussed include MongoDB, Cassandra, Redis, CouchDB, Neo4J and others. The document also covers concepts like CAP theorem, BASE semantics, consistency hashing and more.