NoSQL과 RDBMS의 장단점
RDBMS의 장점
- DB 수준에서의 ACID 트랜잭션을 사용하여 개발 방식이 쉽다.
- VIEW를 사용한 컬럼과 ROW에 대한 세밀한 보안 설정은 인가받지 않은 사용자들로부터의 조회나 변경을 막는다.
- 대부분의 SQL 코드는 오픈 소스를 포함한 다른 SQL 데이터베이스로 포팅이 가능하다.
- 타입형 컬럼이나 제약들을 사용해서 데이터베이스에 정보를 추가하기 전에 유효성 검사를 하여 데이터 품질을 향상시킨다.
- 개발자들은 ER 설계와 SQL에 친숙하다.
NoSQL 데이터 베이스의 장점
- 테스트 데이터 조회가 ER모델링이 완료되기 전에 드롭 앤 드랍 도구를 사용해서 가능하다.
- 클러스터에 추가된 새로운 프로세서 노드 형태로 수평확장이 가능하다.
- 객체-관계형 매핑 레이어를 필요로 하지 않는다.
- 다양한 가변성 있는 데이터 저장이 쉽다.
RDBMS의 단점
- 객체-관계형 매핑 레이어가 복잡해질 수 있음
- ER모델링이 테스팅(개발)전에 완료되어야 하며 개발이 느려질 수 있다.
- RDBMS 시스템은 조인이 필요한 경우 확장성을 제약한다.
- 전체 문서에 대한 검색은 별도의 도구가 필요하다.
- 테이블에 다양한 가변성 있는 데이터를 저장하기 어렵다.
NoSQL 데이터 베이스의 단점
- ACID 트랜잭션은 데이터베이스 수준의 문서 내에서만 작도앟ㄴ다.
- 문서 저장은 세밀한 보안을 제공하지 않는다.
- NoSQL 시스템은 많은 개발자들에게 새로운 시스템이며 교육 또는 새로운 공부가 필요하다.
- 문서 저장은 NoSQL마다 자체의 표준화되지 않는 쿼리 언어를 사용하며 이식성이 좋지 않다.