🧐 RDBMS 와 NoSQL 의 차이

데이터를 다루는 서비스라면 필수적으로 사용해야하는게 데이터베이스인데요, 데이터베이스에 대한 개념과 관계형 데이터 베이스와 비관계형 데이터베이스인 RDBMS 와 NoSQL 의 차이점 및 각 데이터베이스를 어떤 상황에서 사용해야하는지에 대해 잘 설명된 글이 있어 공유드립니다. 간략하게 내용을 요약하면 다음과 같습니다. 📌 데이터베이스(Database, DB) 란? 데이터베이스는 쉽게 말해서 데이터의 집합입니다. DB에는 다양한 유형이 존재하는데요. 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등이 있습니다. 📌 RDBMS(관계형 데이터베이스) 이란? 관계형 데이터베이스는 고정된 행(row)과 열(column)로 구성된 테이블에 데이터를 저장합니다. 각 열에는 하나의 속성에 대한 정보가 저장되고, 행에는 각 열의 데이터 형식에 맞는 데이터가 저장됩니다. 관계형 데이터베이스에는 핵심적인 특징이 두 가지 있습니다. 1. 데이터가 정해진 데이터 스키마에 따라 테이블에 저장된다는 점 2. 데이터가 관계를 통해 여러 테이블에 분산된다는 점 📌 NoSQL(비관계형 데이터베이스) 이란? 비관계형 데이터베이스 SQL, 즉, 관계형 데이터베이스를 제외한 나머지 유형을 말합니다. 비관계형 데이터베이스를 칭할 때 NoSQL(또는 NoSQL 데이터베이스)라고 부릅니다. NoSQL 데이터베이스는 테이블 형식이 아니며, 관계형 테이블과는 다른 방식으로 데이터를 저장합니다. 데이터 유형에 따라 다양한 유형을 갖추고 있으며, 주요 유형으로는 문서, 키 값, 와이드 컬럼, 그래프 등이 있습니다. NoSQL이라고 해서 꼭 스키마가 없는 것은 아닙니다. 유연한 스키마를 제공하며, 대량의 데이터와 높은 사용자 부하에서도 손쉽게 확장할 수 있다는 점이 큰 장점입니다. 또한 데이터를 읽어올 때 스키마에 따라 데이터를 읽어 옵니다. 📌 RDBMS VS NoSQL, 차이점은 무엇인가? ✔️ 데이터 저장(Storage) - RDBMS: 데이터를 SQL 언어를 통해 테이블에 저장합니다. 미리 작성된 스키마를 기반으로 정해진 형식에 맞게 데이터를 저장해야만 합니다. - NoSQL: key-value, document, wide-column, graph 등의 방식으로 데이터를 저장합니다. ✔️ 스키마(Schema) - RDBMS: 고정된 스키마가 필요. 처리하려는 데이터 속성별로 열(column)에 대한 정보를 미리 정해야만 데이터 처리가 가능. 스키마에 대한 변경은 가능하지만, 데이터베이스 전체를 수정하거나 오프라인으로 전환해야 할 수도 있기 때문에 최대한 신중하게 스키마를 정의해야할 필요가 있다. - NoSQL: 유연하게 스키마의 형태를 관리. 행을 추가할 때 즉시 새로운 열을 추가할 수 있고, 개별 속성에 대해서 모든 열에 대한 데이터를 반드시 입력하지 않아도 된다. ✔️ 쿼리(Query) - RDBMS: 테이블의 형식과 테이블 간의 관계에 맞춰 데이터를 요청. 요청하는 방식이 정해져 있기 때문에 SQL 언어와 같이 구조화된 쿼리 언어를 사용. - NoSQL: 데이터 그룹 자체를 조회하는 것에 초점을 두고 있기 때문에 구조화되지 않은 쿼리 언어로도 데이터 요청이 가능. 이를 UnQL이라고도 부른다. ✔️ 확장성(Scalability) - RDBMS: 수직적으로 확장(Scale Up)하며 높은 메모리와 CPU를 사용. 데이터베이스가 구축된 하드웨어의 성능을 많이 이용하므로 비용이 비싼 편이며, 여러 개의 서버에 걸쳐서 데이터베이스의 관계를 정의할 수 있지만 매우 복잡하고 시간이 오래 걸리는 것이 단점. - NoSQL: 수평적으로 확장(Scale Out)이 가능. NoSQL 데이터베이스를 위한 서버를 추가로 구축하게 되면 많은 트래픽을 편리하게 처리할 수 있고 SQL보다 저렴한 범용 하드웨어나 클라우드 기반의 인스턴스에 NoSQL 데이터베이스를 호스팅 할 수 있어 상대적으로 비용이 저렴한 것이 장점. 📌 관계형 데이터베이스(RDBMS)를 사용해야 할 때 - 데이터베이스의 ACID 성질을 준수해야 하는 소프트웨어를 개발하는 경우 - 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우 - 변경될 여지가 없고 명확한 스키마가 사용자와 데이터에게 중요한 경우 📌 NoSQL 데이터베이스를 사용해야 할 때 - 정확한 데이터의 구조를 알 수 없거나 변경, 확장될 가능성이 있는 경우 - 읽기는 자주 해도 데이터 변경은 자주 없는 경우 - 막대한 양의 데이터를 다뤄야 해서 데이터베이스를 수평으로 확장해야 하는 경우 📚 원문 - https://www.whatap.io/ko/blog/173/index.html?utm_source=facebook&utm_medium=sns_ad&utm_campaign=whatap_blog&utm_content=RDBMS_NoSQL&fbclid=PAAaZeq1mANqwrEgzgFo04B5gL6OZMhV2Jr71jAHyfiKRHq-TO8swPQr8C6KM_aem_AWUe5ZHYvT-75Unh_RPU0mt1GfoAeO7ZNE199clumiI8S60cG6xOHYGtSxTOXRgniniBAUO8b5jJb4lWZmyf1nAK 📚 함께 보면 좋은 글 - 💡 NoSQL 데이터베이스 종류: https://careerly.co.kr/comments/66826?utm_campaign=self-share

RDBMS와 NoSQL의 차이

RDBMS와 NoSQL의 차이 | 와탭 블로그

RDBMS와 NoSQL의 차이

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 9월 18일 오전 3:02

 • 

저장 33조회 2,375

댓글 0