본문 바로가기
Knowledge/CS

[CS] RDBMS 와 NoSQL 의 차이

by YoonJong 2023. 2. 9.
728x90

프로젝트 때 RDBMS 의 종류인 MySQL을 사용해서 진행했는데, NoSQL은 사용해보지 않아 RDMS 와 NoSQL 의 차이를 알아보려고 합니다.

 

먼저 데이터베이스란 무엇일까요?

여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리하는 데이터의 집합입니다.

특징으로는 실시간접근 , 지속적인 변화, 동시 공유가 있습니다.

 

 

RDBMS 는 관계형 데이터 베이스 입니다.

정해진 스키마에 대에 따라 데이터를 저장합니다.

따라서, 데이터 구조가 명확할 때 사용하는 것이 좋습니다.

 

장점으로는 정합성을 보장할 수 있고, 데이터의 중복이 없기 때문에 수정이 쉽습니다.

단점으로는 연관된 테이블은 join 을 이용해서 관계를 맺는데, 시스템이 커지면 성능저하의 가능성이 있습니다.

또한, 성능을 향상시키기 위해서는 scale - up 을 사용해야하는데 그 비용이 상당합니다.

scale - up :  확장하는 개념


NoSQL은 스키마 없이 자유로운 형태로 저장할 수 있습니다.

RDBMS 의 단점인 성능을 개선시키기 위한 방법으로 많이 사용한다고 합니다.

따라서, 정확한 데이터 구조를 알 수 없고, 막대한 데이터를 저장해서 scale - out 이 필요할 때 사용하는 것이 좋습니다.

 

장점으로는 데이터를 분산시키는 환경에서 scale - out 이 가능하기 때문에 비용절감이 가능합니다.

또한, 유연하고 자유롭게 데이터를 저장할 수 있습니다.

단점으로는, 데이터 중복이 발생할 수 있어 수정 시 모든 컬렉션의 값을 변경해야 하는 번거로움이 있습니다.

추가로 명확한 데이터 구조를 보장하지 않기 때문에 데이터 구조의 결정이 어려울 수 있습니다.


페이스북, 트위터 같은 곳에서는 NoSQL을 많이 사용한다고 합니다.

NoSQL 이 RDBMS 를 대체할 수 있다고 생각은 하지 않고, 특정 서비스 분야나 특징에 맞게 사용해야 한다고 생각합니다.

728x90

'Knowledge > CS' 카테고리의 다른 글

[CS] 트랜잭션(Transaction) 이란?  (0) 2023.01.28
[CS] 시스템 콜  (0) 2023.01.23
[CS] 스프링 프레임워크란?  (0) 2023.01.13
[CS] HTTP 1.0 / 1.1 / 2  (0) 2023.01.11
[CS] 네트워크 토폴로지  (0) 2022.12.30

댓글