NO-SQL
기존 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며, 관계형 데이터베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태이다.
특징
- RDBMS와 달리 데이터 간의 관계를 정의하지 않는다.
- RDBMS는 데이터 관계를 외래키 등으로 정의하고 JOIN 연산을 수행할 수 있지만, NoSQL은 JOIN 연산이 불가능하다.
- RDBMS에 비해 대용량의 데이터를 저장할 수 있다.
- 페타바이트 급의 대용량 데이터를 저장할 수 있다.
- 분산형 구조이다.
- 여러 곳의 서버에 데이터를 분산 저장해 특정 서버에 장애가 발생했을 때도 데이터 유실 혹은 서비스 중지가 발생하지 않도록 한다.
- 고정되지 않은 테이블 스키마를 갖는다.
- RDBMS와 달리 테이블의 스키마가 유동적이다. 데이터를 저장하는 칼럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용된다.
장점
- RDBMS에 비해 저렴한 비용으로 분산처리와 병렬 처리 가능
- 비정형 데이터 구조 설계로 설계 비용 감소
- Big Data 처리에 효과적
- 가변적인 구조로 데이터 저장이 가능
- 데이터 모델의 유연한 변화가 가능
단점
- 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
- 많은 인덱스를 사용하려면 충분한 메모리가 필요. 인덱스 구조가 메모리에 저장
- 데이터 일관성이 항상 보장되지 않음
종류
- Key-Value Database
- Wide-Column Database
- Document Database
- Graph Database
결론
SQL과 NOSQL 사이의 선택은 응용 프로그램의 특정 요구에 따라 다르다. SQL 데이터베이스는 구조화 된 데이터 및 엄격한 데이터 일관성 요구 사항이있는 애플리케이션에 적합한 선택이며, NOSQL 데이터베이스는 대량의 비정형 또는 반 구조화 된 데이터를 처리하고 확장 성 및 성능이 높은 응용 프로그램에 더 적합하다.