RDBMS와 NoSQL의 차이에 대해서 알아보기로 했다
[ 관련 블로그 ]
https://khj93.tistory.com/entry/Database-RDBMS%EC%99%80-NOSQL-%EC%B0%A8%EC%9D%B4%EC%A0%90
[Database] RDBMS와 NoSQL의 차이점
이번 포스팅에서는 RDBMS와 NoSQL의 차이점을 알아보려고 합니다. 그전에 RDBMS는 무엇이고 왜 사용하며 NoSQL은 무엇이고 왜 사용을 할까요? 그리고 그 두 DB의 차이점은 무엇이며 서로에 대한 장단점
khj93.tistory.com
1. RDBMS 란 ?
RDBMS란 간단하게 줄여 말하자면 관계형 데이터베이스를 의미한다
테이블과 테이블 간의 관계를 맺고 모여있는 집합체로 만들 수 있습니다. 이러한 관계를 나타내기 위해서 외래키(FK)를 사용하며, 연관 되어있는 테이블 간 Join을 가능케 하는 것이 RDBMS의 가장 큰 특징입니다.
대표적인 RDBMS
오라클, MySQL, PostgreSQL, MariaDB 등
2. NoSQL 이란 ?
NoSQL 이란 Not Only SQL의 약자로 말 RDBMS와 다른 형태의 데이터 저장 기술을 의미합니다.
테이블 간의 관계를 정의 하지 않고, 테이블은 그저 하나의 테이블일 뿐이며 관계를 정의하지 않기에 Join도 불가능합니다
NoSQL은 빅데이터와 같은 많은 데이터와 트래픽이 기하급수적으로 증가할 때 RDBMS에 가지는 단점인 성능을 향상 시키기 위해 데이터의 일관성은 포기하되 비용을 고려하여 데이터를 분산하여 저장하는 Scale-Out을 목표로 등장하였습니다.
[ Scale-Up, Out 이란 ? ]
Scale-Up : 장비의 업그레이드
Scale-Out : 장비 여러 대로 분산
자세한 것은 아래 블로그를 참고합니다
https://tecoble.techcourse.co.kr/post/2021-10-12-scale-up-scale-out/
Scale-up과 Scale-out에 대해 알아보자!
…
tecoble.techcourse.co.kr
대표적인 NoSQL
MongoDB
3. NoSQL의 종류
(1) Key - Value DB
(2) Document DB
(3) Wide Column DB
(4) Graph DB
4. RDBMS와 NoSQL의 장/단점
(1) RDBMS [ 장점 ]
- RDBMS는 스키마에 따라 데이터를 저장하기에 명확한 데이터 구조를 보장합니다.
- 데이터를 중복 없이 한번만 저장할 수 있습니다.
(2) RDBMS [ 단점 ]
- 테이블 끼리 관계를 맺고 있기에 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어 질 수 있습니다.
- 성능 향상을 위해서는 서버의 성능을 향상 시키야 하는데 Scale-up만을 지원하기에 비용이 많이 늘어날 수 있습니다
- 스키마로 인해 데이터가 유연하지 못하며, 변경 될 경우 문제가 발생할 수 있습니다
(3) NoSQL [ 장점 ]
- 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있고, 언제든 저장된 데이터를 조정하며 새로운 필드 추가가 가능합니다.
- 데이터 분산이 용이하며, 성능 향상을 위한 Scale-up 뿐 아니라 Scale-out 도 가능합니다
(4) NoSQL [ 단점 ]
- 데이터 중복이 발생할 수 있으며, 중복 된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행해야합니다.
- 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으면 데이터 구조 결정이 어려울 수 있습니다.
5. 어떨 때 어떤 DB를 선택해야 할까 ?
그러면 어떨 때 어떤 DB를 선택하는 것이 좋을까요 ?
(1) RDBMS를 선택 해야할 경우
RDBMS를 선택 해야할 경우는 데이터 구조가 명확하며 변경될 여지가 없고 명확한 스키마가 중요한 경우 사용하는 것이 좋습니다. 또한 중복 된 데이터가 없어 변경이 용이하기에 관계를 맺고 있는 데이터가 자주 변경되는 시스템에 적합합니다.
(2) NoSQL을 선택 해야할 경우
정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용하는 것이 좋습니다. 데이터 중복이 발생할 경우 모든 중복 데이터를 수정해야하기에 Update가 많이 이뤄지지 않는 시스템에 적합합니다.
또한 Scale-out이 가능하다는 장점을 활용하여 막대한 데이터를 저장해야하는 시스템에 적합합니다.
6. 결론
아래 사진으로 RDBMS와 NoSQL의 차이를 한 눈에 확인할 수 있다
기회가 된다면 NoSQL을 사용해보고 싶다
'CS' 카테고리의 다른 글
rest api란 무엇일까 ? (2) | 2024.01.22 |
---|---|
프로세스와 쓰레드란? (0) | 2023.12.07 |
프로세스와 스케줄링에 대해서 (0) | 2023.12.07 |
쿠키와 세션, 캐시의 차이란 무엇일까? (1) | 2023.11.30 |