NoSQL은 "Non Relational Operation Database SQL"의 줄인말로서 관계형 데이터베이스가 아닌 SQL이다.(SQL은 Structured Query Language로 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.)
일반적인 관계형 데이터베이스에서는 데이터의 중복을 제거하고 무결성을 보장하기 위해서 정규화를 하게 되는데, 이러한 정규화가 과도한 JOIN으로 인해 성능 저하가 있을 수 있다.
그동안 지속적으로 관계형 데이터베이스만을 보아왔는데, 그런 형태가 아닌
위와 같은 형태로 DB가 구성될 수 있다는 것이다.
이런 형태로 DB가 구성된다는 것부터가 이미 굉장히 신기했다.
NoSQL의 장점은
1. 불필요한 JOIN의 최소화
2. 데이터 분산에 용이
3. 복제 및 장애대응에 용이
4. 데이터를 고속으로 처리할 필요가 있는 경우
등 굉장히 많은 장점들이 올라와 있는데, 아직까지 직접 사용해보지 않아서 잘 와닿지 않는다.
추가적으로 비정형 데이터로 인해 관계형 데이터베이스보다 1.5배 정도 용량을 많이 차지한다는 것도 신기했다. (Nosql이라고 해서 아예 데이터를 쌓지 않는다고 생각한 무식이 슬프다..)
NoSQL에도 종류가 여러가지 있고 그 중에서 이번에는 MongoDB를 처음 접해보았는데, 조금 더 공부하면서 배운 것들을 다시 정리해야 되겠다.