- RDBMS와 NoSQL이란?2024년 04월 02일 09시 54분 35초에 업로드 된 글입니다.작성자: do_hyuk728x90반응형
RDBMS와 NoSQL?
RDBMS란
테이블을 통해 정형화된 데이터를 저장하고, 테이블끼리 관계를 맺을 수 있다.
또한 제약 조건을 통해 데이터의 중복을 피할 수 있다.
테이블끼리 관계를 맺을 수 있으니 경우에 따라 테이블을 나누어 데이터를 관리할 수 있고 데이터를
조회해 올 때 'JOIN'을 사용해 나누어져 있는 테이블의 데이터를 불러올 수 있다.
제약 조건을 통해 데이터 중복을 막을 수 있으며 이는 데이터를 수정해야 할 때 수많은 데이터를 찾아 수정해야 하는
번거로움을 줄여줍니다.
NoSQL란
NoSQL은 비관계형 데이터 저장소 역할을 한다. 기존 RDBMS은 scale-up(수직적 확장)을 해야 하는 한계가 있다.
NoSQL은 수평적 확장을 손 쉽게 할 수 있어 많은 데이터를 저장하고 분산 처리를 손쉽게 할 수 있다.
별다른 연관관계가 없다는 것은 단순히 키(PK)만으로 모든 데이터를 조회할 수 있다는 것을
의미하기 때문에 당연히 RDBMS보다 데이터를 빠르게 조회할 수 있다.
하지만 이건 연관 관계가 필요한 경우에는 까다로워질 수 있다.
예를 들어 어떤 레코드가 어떤 속성을 가졌는지는 빠르게 파악할 수 있지만
반대로 어떤 속성을 가진 레코드들을 필터링(검색)하는 경우에는 적합하지 않다는 것이다
(불가능한 것은 아니다. NoSQL에서도 쿼리를 사용 가능)
각각 사용하기 좋은 경우
RDBMS
- 앱의 여러 부분에서 관련된 데이터가 비교적 자주 변경되는 경우
(NoSQL이라면 항상 여러 컬렉션을 수정해야 한다.) - 명확한 스키마가 중요하며, 데이터 구조가 극적으로 변경되지 않는 경우
NoSQL
- 정확한 데이터 요구 사항을 알 수 없거나, 관계를 맺고 있는 데이터가 자주 변경(수정)되는 경우
- 읽기(read) 처리를 자주 하지만, 데이터를 자주 변경하지 않는 경우
(즉, 한 번의 변경으로 수십 개의 문서를 수정할 필요가 없는 경우) - 데이터베이스를 수평적으로 확장해야 하는 경우
(즉, 막대한 양의 데이터를 다루어야 하는 경우, 읽기 쓰기 처리량이 큰 경우)
요약
SQL NoSQL 관계형 데이터베이스 관리 시스템 분산형 데이터베이스 관리 시스템 수직적 확장 = 서버 사양 높힘 수평적 확장 = 여러 대의 서버를 두고 성능 올림 스키마에 의해 선정 되어 있음 스키마가 없거나 다이나믹함(유연함) 견고하고 단단함! 부하를 잘 견딤 SQL보다 일반적으로 빠른 경향이 있음 역사가 깊은만큼 설치/설정이 쉬워 시간이 절약됨 처음 모델링 자체가 요구되지 않아서 시간이 절약됨 꾸준한 속도를 보여줌 때때로 응답속도가 느릴 수 있음 여러 테이블을 조인하는 등 복잡한 쿼리 사용가능 테이블간 관계가 없어 복잡한 쿼리사용이 부적합함 728x90반응형'백엔드' 카테고리의 다른 글
[로드맵] Internet (1) 2024.11.12 [Apache Kafka] 카프카란 무엇인가? (0) 2024.04.02 JWT (JSON Web Token) 이해하기 (0) 2024.03.27 Access Token 과 Refresh Token 이 뭐고 왜 필요한가 (1) 2024.03.22 Elasticsearch에 대하여 (2) 2024.03.21 댓글 - 앱의 여러 부분에서 관련된 데이터가 비교적 자주 변경되는 경우