NoSQL (Not only SQL)
NoSQL 이란
비관계형 데이터베이스 설계 방법
- RDBMS 와 달리 데이터 간의 관계를 정의하지 않음
- RDBMS 는 데이터 관계를 외래키 등으로 정의하고 JOIN 연산을 수행할 수 있지만, NoSQL 은 JOIN 연산 불가능
- RDBMS 에 비해 대용량의 데이터 저장 가능
- 분산형 구조
- 여러 곳의 서버에 데이터를 분산 저장해 특정 서버에 장애가 발생했을 때도 데이터 유실 혹은 서비스 중지가 발생하지 않음
- 고정되지 않은 테이블 스키마를 갖음
- RDBMS 와 달리 테이블의 스키마가 유동적이며 데이터를 저장하는 칼럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용됨
장단점
장점 - RDBMS에 비해 저렴한 비용으로 분산처리와 병렬 처리 가능 - 비정형 데이터 구조 설계로 설계 비용 감소 - Big Data 처리에 효과적 - 가변적인 구조로 데이터 저장이 가능 - 데이터 모델의 유연한 변화가 가능
단점 - 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능 - 많은 인덱스를 사용하려면 충분한 메모리가 필요 (인덱스 구조가 메모리에 저장) - 데이터 일관성이 항상 보장되지 않음