-
RDB(관계형 데이터베이스) NoSQL(비관계형 데이터베이스) 비교데이터베이스 2023. 2. 3. 15:25
RDB(관계형 데이터베이스)
특징
- 관계형 데이터베이스는 여러 컬럼을 가지는 레코드를 하나의 테이블에 한다.
- 정규화를 통해 여러 테이블에 데이터를 분산하여 저장한다.
장점
- 데이터의 무결성을 보장한다.
- 중복이 적은 데이터에 대해 인덱스를 통해 빠른 정렬이 가능하다.
단점
- 초기에 생성한 스키마를 나중에 수정하기 어렵다.
- 데이터베이스 모델링이 완료되어야 이후 개발작업 수행이 가능하다.
- JOIN을 통해 복잡한 쿼리를 만들어야 하는 경우가 생기고 인덱스가 있어도 인덱스가 잡힌 열에 카디널리티가 낮다면 조회 성능이 낮다.
NoSQL(비관계형 데이터베이스)
특징
- 테이블을 나눌 필요없이 동일한 컬렉션에 데이터를 저장한다.
- 정규화를 통해 여러 테이블에 데이터를 분산하여 저장한다.
장점
- 대용량 데이터 처리를 하는데 효율적이다.
- 관계형 데이터베이스에 비해 쓰기와 읽기 성능이 빠르다.
- 데이터 모델링이 유연하고 복잡한 데이터 구조를 표현할 수 있다.
단점
- 유연함으로 인해 데이터 구조 결정이 어렵다.
- NoSQL 마다 다른 언어로 인해 이식성이 낮다.
RDB vs NoSQL
RDB를 사용하는 경우
- 관계를 맺고 있는 데이터가 자주 변경된다.
- 무결성이 보장되는 데이터 구조가 중요하다.
NoSQL을 사용하는 경우
- 정확한 데이터 구조를 알 수 없거나, 확장 가능성이 있는 경우
- 읽기 작업이 빈번하지만, 데이터를 자주 변경할 필요가 없는 경우(ex, 세션 정보)
- 대용량 데이터 작업 및 수평적 확장이 필요한 경우 (ex, 검색 로그 처리)
'데이터베이스' 카테고리의 다른 글
트랜잭션(Transaction)이란? (0) 2023.02.03 [MySQL] 인덱스(index) 에 대해서 (0) 2019.12.04 [mybatis] @Alias 어노테이션에 대해 (1) 2019.10.31