AtraFelis's Develop Diary

[데이터베이스] 관계형 DB vs 비관계형 DB 본문

DataBase

[데이터베이스] 관계형 DB vs 비관계형 DB

AtraFelis 2024. 5. 18. 19:07

관계형 데이터베이스 (Relational Database)

MySQL, PostgreSQL, Oracle, SQLite, MSSQL

엑셀과 비슷한 형식이라고 생각하면 편하다. 테이블(Table)로 이루어져 있으며, 이 테이블은 키(Key)와 값(Value)를 가진다. 테이블의 행은 키, 열은 값을 나타낸다.

즉, 데이터 간의 관계를 중요하게 생각하는 방식이 관계형 데이터베이스라고 할 수 있겠다.

  • SQL 문법을 사용해야한다. (즉, 입문에 장벽이 조금 존재한다.)
  • 중복된 데이터를 좋아하지 않아, 이를 제거하기 위해 정규화를 한다.
  • 정확도가 중요한 서비스에서 자주 사용한다.
  • 대용량 데이터 처리에 비효율적이다.

 

비관계형 데이터베이스 (Non-Relational Database)

redis, MongoDB(document database)

No SQL(Not Only SQL)이라고 불리우며, 관계형 DB의 단점을 보완하기 위해 만들어진 데이터베이스이다. 데이터 처리 속도를 빠르게 하기 위해 개발되었다.

  • 입출력이 빠르다.
  • 데이터 중복 제거를 하지 않는다. 즉, 정규화를 하지 않는다.
  • 데이터 수정, 삭제가 관계형 DB에 비해서 느리다.
  • 대용량 데이터 처리에 효율적이다.

위에서 설명한 특징대로 생각하자면, 정확도가 중요한 서비스에서는 관계형 DB, 입출력이 빠른게 중요하면 비관계형 DB를 사용하면 좋을 수 있다. 하지만 너무 이런 특징에 매몰되지 말고 상황에 따라 사용할 DB는 유동적으로 선택해야할 것이다.