RDBMS vs NoSQL

RDBMS

  • 장점

    • 외래키, 조인 기능을 통해 데이터를 중복 없이 여러 테이블로 분리하여 저장할 수 있게 해주는 장점이 있다.

    • ACID를 보장하는 트랜잭션 기능을 통해 강한 데이터 일관성을 보장한다.

    • 표준 SQL을 준수하므로 Learning Curve가 낮으며 복잡한 데이터를 조회할 때 적절하다.

  • 단점

    • 데이터 구조 변경 시 스키마를 수정해야 하므로 번거로울 수 있다.

    • 성능을 높이려면 서버 사양 자체를 높이는 Scale-up 방식을 써야 하므로 비용이 많이 들 수 있다.

    • 자체적으로 샤딩 기능을 제공하지 않아 애플리케이션 레벨 혹은 미들웨어를 기반으로 샤딩해야 한다.

NoSQL

  • 장점

    • 고정된 테이블 형식이 없고 다양한 형태로 데이터를 저장한다. 따라서 데이터 구조가 자주 바뀌거나 비정형 데이터를 저장할 때 적합하다.

    • 대표적으로 Key-Value, Document, Graph 타입을 지원한다.

    • 수평적 확장(Scale-out)이 용이하다.

  • 단점

    • 보통 조인 기능을 제공하지 않아 데이터를 비정규화하여 저장해야 한다.

    • 데이터 일관성 보장이 약하다.

Last updated