사전에 엄격하게 정의된 DB schema를 오구하는 테이블 기반 데이터 구조를 갖는 데이터베이스다. 엄격한 schema로 인해 데이터 중복이 없기 때문에 데이터를 update가 많을 때 유리하다.
각 테이블의 행과 행이 연결되는 관계를 맺을 수 있어 관계형 데이터베이스라는 이름을 갖는다. 테이블 간의 관계는 일 대 일(1:1)
, 일 대 다 (1:N)
, 다 대 다 (N:N)
가 있다.
한개의 테이블에 필요한 모든 필드와 모든 데이터 항목을 넣어 저장할 수 있지만, 데이터에 대한 중복저장과, 데이터를 불러올 때 불필요한 값들 불러와 효율성을 떨어트리기 때문에 관계를 통한 데이터베이스를 형성해 데이터르 효율적으로 관리하는것이 좋다.
SQL을 사용하지 않는 Schema-less 데이터베이스
테이블 간 관계를 정의하지 않으며, 일반적으로 테이블간 Join 불가능, 데이터의 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장한 데이터 저장 기술이다.
장점
단점
정리
Q. NoSQL은 언제 사용하면 좋을까?
NoSQL은 정확한 데이터 구조가 정해지지 않은 경우, 데이터 update가 자주 이루어지지 않고, 조회가 많은 경우, 또 scale-out이 가능하므로 데이터 양이 매우 많은 경우에 사용하면 좋다.
Q. RDB는 언제 사용하면 좋을까?
RDB는 데이터 구조가 명확하여 변경될 여지가 없는 경우, 또 데이터 중복이 없으므로 데이터 update가 잦은 시스템에서 사용하면 좋다.