NoSQL 데이터베이스 ( a.k.a "SQL뿐 아니라")는 테이블 형식이 아니며 관계형 테이블과 다르게 데이터를 저장한다. NoSQL 데이터베이스는 데이터 모델에 따라 다양한 유형으로 제공된다. 주요 유형은 문서, 키-값, 와이드 컬럼 및 그래프이다. 유연한 스키마를 제공하고 많은 양의 데이터와 높은 사용자 부하로 쉽게 확장 할 수 있다.
사람들이 "NoSQL 데이터베이스"라는 용어를 사용할 때 일반적으로 비 관계형 데이터베이스를 지칭 할 때 사용한다. 어떤 사람들은“NoSQL”이라는 용어가“비-SQL”을 의미한다고 말하는 반면 다른 사람들은“SQL뿐만 아니라”를 의미한다고 말한다. 어느 쪽이든 대부분은 NoSQL 데이터베이스가 관계형 테이블이 아닌 형식으로 데이터를 저장하는 데이터베이스라는 데 동의한다.
일반적인 오해는 NoSQL 데이터베이스가 관계 데이터를 잘 저장하지 않는다는 것이다. 하지만 NoSQL 데이터베이스는 관계 데이터를 저장할 수 있으며 관계형 데이터베이스와 다르게 저장한다. 실제로 SQL 데이터베이스와 비교할 때 많은 사람들은 관련 데이터를 테이블 간 분할할 필요가 없기 때문에 NoSQL 데이터베이스의 모델링 관계 데이터가 SQL 데이터베이스보다 더 쉽다 는 것을 알게 된다.
NoSQL 데이터 모델을 사용하면 관련 데이터를 단일 데이터 구조 내에 중첩 할 수 있다. NoSQL은 각각의 데이터들이 다른 데이터와 관계없이 개별적으로 추가되므로, 정해진 스키마가 없으므로, 관계를 정의하지 않으므로 특정 데이터가 제거되어도, 추가되어도 전혀 관계가 없다. 중복 데이터가 발생하긴 하나 각각 필요한 정보를 원하는 구조로 원하는만큼 넣을 수 있다. 데이터 저장의 편리함이 있다.
NoSQL 데이터베이스는 2000 년대 후반 스토리지 비용이 크게 감소하면서 등장했다. 단순히 데이터 중복을 줄이기 위해 복잡하고 관리하기 어려운 데이터 모델을 만들어야하는 시대는 지났다. 개발자 (스토리지가 아닌)가 소프트웨어 개발의 주요 비용이 되어 NoSQL 데이터베이스가 개발자 생산성에 최적화되었다.
스토리지 비용이 급격히 감소함에 따라 저장 및 쿼리에 필요한 데이터 애플리케이션의 양이 증가했다. 이 데이터는 구조화, 반 구조화, 다형성 등 모든 형태와 크기로 제공되었으며 미리 스키마를 정의하는 것이 거의 불가능 해졌다. NoSQL 데이터베이스를 통해 개발자는 엄청난 양의 비정형 데이터를 저장할 수 있으므로 많은 확장성, 유연성을 얻을 수 있다.
하지만 SQL은 하나의 공간에 데이터를 저장하기 때문에 보안이 철저하여 견고하고, NoSQL은 데이터를 분산시켜 저장하기 때문에 확장 가능성이 높다는 등 각각의 장단점이 존재하므로, 다뤄야 할 데이터가 사용될 방향을 생각하며 선택하는 것이 좋다!