한마디로 관계형 데이터 모델을 사용하지 않고 SQL 을 사용하지 않는 그 이외의 모든 데이터 베이스 시스템 또는 데이터 스토어를 일컬어 NoSQL 이라 칭하게 된 것이죠. 그래서 어느쯤엔가 No SQL 이 아니라 Not Only SQL 의 약자다 머다 해서 말을 다시 만들어내고 아무튼 NoSQL 이란 용어를 사용하게 된 것은 그리 얼마되지 않았지만, 관련된 기술은 오래전부터 인메모리기반의 분산 캐싱 서버에서부터 컬럼데이터를 지원하는 데이터베이스에 이르기까지 이미 존재했던 것들입니다. 물론 최근에 이러한 아키텍쳐를 계승발전해서 새로이 구현되어 인기를 끌고 있는 것들도 많이 있죠.
그간에는 수십년간 관계형 데이터베이스라는 것이 데이터를 저장하는데 최적이라고 믿고 있었고 기업 시장에서는 ACID 라는 데이터의 무결성이라는 점에 더 무게를 두었고 무엇보다도 SQL 이라고 하는 언어의 편이성 때문인지 나머지 데이터베이스 시스템들은 그간 주목을 못받아 왔다고 생각하시면 될 것 같습니다.
그러다가 최근에 인터넷 시대가 되고 소셜네트워크 서비스등이 등장하면서 관계형데이터 또는 정형데이터가 아닌 데이터, 즉 비정형데이터라는 것을 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 가진 데이터 베이스들이 관심을 가지게 되었고 이를 통칭해서 NoSQL 이라 부르게 된 것입니다.
NoSQL 의 가장 큰 특징을 뽑으라면 여러가지가 있겠지만 네트워크 기반의 분산 데이터베이스가 기본적으로 가지는 확장성, 가용성, 높은 성능 그리고 다양한 데이터 형태(schema-less) 를 수용할 수 있고, 어떤 NoSQL 의 경우에는 런타임때도 데이터 스키마 변경이 가능하기도 합니다.
소위 NoSQL 이라고 불리어지는 데이터 베이스에는 어떤 것들이 있을까요?
http://nosql-database.org/ 또는
http://en.wikipedia.org/wiki/NoSQL
이들 링크를 눌러보시면 얼마나 많은 NoSQL 데이터베이스가 있는지 아실 수 있을 것입니다.
http://groups.google.com/group/nosql-discussion
이 구글 그룹에 보면 여러 사람들이 꾸준히 새로운 NoSQL 을 만들고 있는 모습을 보실 수도 있습니다.