DBMS앞에 R이 붙어 있는데 이 R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미함. RDB를 관리하는 시스템이라고 할수 있다.
(구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체)
테이블간의 관계에서 외래 키를 이용한 테이블 간 Join이 가능하다는 게 RDBMS의 가장 큰 특징.
정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장하고 있습니다. 또한 관계는 각 데이터를 중복없이 한 번만 저장할 수 있음.
데이터간의 중복체크를 빡빡하게 하기 때문에 저장속도가 느림.
또한 스키마로 인해 데이터가 유연하지 못해 나중에 스키마가 변경 될 경우 번거롭고 어려움.
관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술.
또한 NoSQL에서는 RDBMS와는 달리 테이블 간 관계를 정의하지 않음. 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능함.
데이터 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장
데이터의 일관성을 고려하지 않고 바로 DB에 저장하기 때문에 저장속도가 빠름
스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있습니다. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가가능.
하지만 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행을 해야 하고 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정이 어려울 수 있다.
사실 둘다 사용하는 조건이 다르고 각각 장단점은 있지만 어떤게 우월하다 이런게 아니기 때문에 환경에 따라 사용을 결정하는게 중요하다.
