NoSQL
관계형 데이터베이스가 아닌 SQL
클라우드 컴퓨팅 환경에서 발생하는 빅데이터를 효과적으로 저장, 관리하기 위해 나온 기술
장점
- 클라우드 컴퓨팅 환경에 적합하다.
유연한 시스템 설계가 요구되어지는데 그 목적을 달성하기 위해서는 기업 환경에 맞게 수정할 수 있는 오픈소스여야 좋다.
- 유연한 데이터 모델을 구축할 수 있다.
기존의 RDB는 정규화라는 정형화된 데이터 구조로 설계되기 때문에 데이터의 중복을 제거하고 무결성을 보장 받을 수 있지만 불필요한 테이블 개수를 증가시키고 조인 문장을 작성하게 함으로써 성능을 저하시키는 원인이 되기도 한다.
NoSQL은 비정형화 데이터 구조로 설계되기 때문에 조인을 피할 수 있고 효과적인 관리와 빠른 성능을 보장 받을 수 있다.
- 빅데이터 처리에 효과적이다.
메모리 매핑 기술로 구현되기 때문에 일반적인 관계형 데이터베이스보다 빅데이터에 대한 읽기, 쓰기 작업이 빠르며 무엇보다도 기존의 OS와 HW에 그대로 구현할 수 있기 때문에 유연성과 확장성이 좋다.
MongoDB
- JSON 타입의 데이터 저장 구조를 제공한다.
데이터 표현 방법 {필드명 : 데이터 값}
- Sharding(분산), Replica(복제) 기능을 제공한다.
- MapReduce(분산, 병렬처리) 기능을 제공한다.
- CRUD 위주의 다중 트랜잭션 처리도 가능하다.
- 메모리 매핑 기술을 기반으로 빅데이터 처리에 탁월한 성능을 제공한다.
용어
- Table -> Collection
- Row -> Document
- Column -> Field
- Primary Key -> Object_id field
- Relationship -> Embedded & link
출처 [MongoDB Master가 해설하는 New NoSQL&MongoDB]