Relational DataBase Management System의 약자로, 관계형 데이터베이스 관리 시스템을 의미한다.
RDB를 관리하는 시스템이며 RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스이다.
이러한 관계를 통해 테이블 간 join이 가능하다. 외래키(foreign key)라는 것을 사용한 테이블간에 join이 가능하다.
ACID(Atomicity, Consistency, Isolation, Durability)원칙을 기본으로 구성된 방식이다.
Not Only SQL의 약자로, 테이블 간 상호관계가 없는 것이 특징이다. 관계가 없으므로 다른 테이블과 join도 할 수 없다.
RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장기술이다. RDBMS와는 달리 테이블 간 관계를 정의하지 않는다.
빅데이터의 등장으로 인해 데이터와 트래픽이 기하 급수적으로 증가함에 따라 RDBMS에 단점인 성능을 향상시키기 위해 등장하였다.
데이터 일관성은 포기하되 비용을 고려하여 여러대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장하였다.
NoSQL과 RDBMS의 특징과 차이점에 대해서 장단점을 들어 설명해주세요.
- 핵심키워드
- RDBMS :
관계형 데이터베이스SchemaTableSQL- NoSQL :
대용량데이터비규격화Key,Value
RDBMS는 2차원 테이블 형태의 엄격한 스키마를 갖고 있기 때문에 구조화된 데이터를 저장하거나 수정 하는 데에 장점을 가지고 있고, 무결성이 보장됩니다. 하지만 구조가 정해지지 않은 데이터들을 처리하는 데에는 비효율적이고, 규모가 커질 경우 상대적으로 비용이 큰 Scale up 형태의 확장이 주로 이루어집니다.
반면 NoSQL은 기본적으로 Key, Value의 자료 형태이기 때문에 정형화되지 않은 데이터나, 용량이 큰 데이터를 저장할 때에 유리한 구조를 가지고 있습니다. scale out 형태의 확장이 가능하므로 많은 양의 데이터를 사용할 때에도 적합합니다. 단점으로는 value에 중복 값이 발생할 수 있고, 명확한 데이터 구조를 보장해주지는 못합니다.