A very common programming language for accessing a database is called SQL. Many of these databases use the mathematical concept of relations to store the data. NoSQL is a term for databases that do not use relations, to store the data. Relational databases have the benefit of being able to guarantee that all the data stored in the database is consistent. The drawback of this is that the cost of indexing the data grows with the amount of data.
NoSQL approaches do not give strong guarantees about consistency, but they are able to better handle the situations where relational database systems have problems coping.