본문 바로가기
IT/이슈 및 정보

RDBMS와 NoSQL의 차이점 완벽 정리

by ghostzoominn 2020. 9. 14.

「 데이터베이스 공부할 때 들어는 봤는데... 」

데이터베이스를 공부하다보면 DBMS. RDBMS, SQL, NoSQL등의 단어를 여러번 들어보셨을겁니다.

 

관계형데이터베이스, 쿼리문 등 이런 단어들을 설명하기위해 어려 단어가 떠오르지만 머릿속에 정리가 안되어있다면 다른 사람에게 명확하게 설명하기 힘들 수 있습니다.

 

오늘은 데이터베이스를 크게 두가지로 분류하여 RDBMS와 NoSQL에 대해 알아보도록 하겠습니다.

RDBMS vs NoSQL

 

「 기본 개념부터 확실하게! 」

RDBMS와 NoSQL에 대한 설명을 드리기에 앞서, 기본 개념부터 다시 한 번 말씀드리겠습니다.

 

이미 알고계시더라도 눈으로 한 번 읽어보시면서 다음 설명으로 넘어가시면 좋습니다!

 

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

 

DBMS : DataBase Management System의 약자로써, 사용자와 데이터베이스 사이에서, 사용자의 요청을 해석하여 데이터베이스에 저장된 정보를 관리할 수 있도록 해주는 소프트웨어.

 

SQL : Structured Query Language의 약자로써, 관계형 데이터베이스 관리 시스템에 저장된 데이터를 관리하기위해 설계된 프로그래밍 언어.

 

스키마 : 데이터베이스를 구성하는 개체(Entity), 속성(Attribute), 관계(Relationship) 및 제약조건 등에 관해 전반적으로 정의한 메타데이터의 집합.

 

지금까지, RDBMS와 NoSQL을 설명하기에 앞서 필요한 기초 지식에 대해 알아보았습니다.

 

지금부터는 RDBMS와 NoSQL에 대해 정의와 차이점, 예시 등을 활용하여 쉽게 설명 해 드리겠습니다.

 

「 RDBMS 란? 」

RDBMS는 위에서 설명드린 DBMS 앞에 R이라는 단어가 하나 더 붙었습니다.

 

여기서 R은 Relational의 약자입니다.

 

즉, 관계형 데이터베이스 관리 시스템이라는 뜻입니다.

 

현재 사용되고있는 일반적인 데이터베이스는 RDBMS를 사용하고 있다고 생각하시면 됩니다.

 

예를 들자면 재무기록, 제조 및 물류정보, 회원정보 등이 이에 해당합니다.

 

RDBMS에서는 엑셀의 형식과 유사한 2차원 테이블 형식으로 구성되며 속성(Attribute)과 값(Value)을 이용하여 데이터를 정의하고 저장·관리합니다.

 

각각의 속성과 값을 가진 테이블들은 서로 관계를 맺으며 존재합니다.

 

이러한 데이터들을 활용하기위해서 사용자는 SQL이라는 언어를 활용합니다.

 

아래는 간단한 고객정보를 저장하고 있는 테이블의 예시입니다.

 고객이름 : 홍길동 / 고객나이 : 27 / 고객 id : qwe123

 고객이름 : 이순신 / 고객나이 : 34 / 고객id : asd456

 

고객의 이름, 나이, ID이 '속성'에 해당하며, 홍길동/27/qwe123 등이 '값'에 해당합니다.

 

「 NoSQL 이란? 」

수십년간 사용되어오던 RDBMS 방식으로는 더이상 처리할 수 없을만큼의 복잡하고 큰 데이터들의 등장으로, NoSQL에 대한 필요성이 부각되기 시작했습니다.

 

NoSQL이란 Not Only SQL의 약자로써, 관계형 데이터베이스와 반대되는 방식을 사용하며, 데이터·테이블 간의 관계를 정의하지 않습니다.

 

따라서 정해진 스키마가 없어, 보다 자유롭게 데이터를 저장할 수 있습니다.

 

RDBMS로는 관리할 수 없는 복잡하고 용량이 큰 데이터들을 관리 할 수 있도록 하기위한 목적으로 등장한 개념입니다.

 

따라서 key값만 가지고 데이터에 대한 입·출력을 수행할 수 있습니다.

 

아래는 NoSQL 데이터베이스의 간단한 예시입니다.

 

고객 id : qwe123 / 고객정보 : 홍길동, 27세, 남자

고객 id : asd456 / 고객정보 : 이순신, 34세, 남자

 

이처럼 속성은 간단히 key와 Value값으로만 나타내며 특별한 형식을 요구하지 않는 형태입니다.

 

「 RDBMS vs NoSQL 」

그럼 RDBMS와 NoSQL에 대한 비교를 해 보겠습니다.

 

 1) RDBMS

장점 - Data를 Cloumn과 Row 형태로 저장
 - 데이터의 분류, 정렬, 탐색 속도가 비교적 빠름.
 - SQL이라는 구조화 된 질의를 통해 데이터를 다룰 수 있음.
 - 작업의 완전성을 보장함.
 - 데이터의 UPDATE가 빠름.
단점

 - 반드시 스키마 규격에 맞춰서 데이터를 다뤄야 함.
 - 데이터 처리에 대한 부하 발생시, 처리가 어려움.

 

 2) NoSQL

장점

 - 데이터간의 관계를 정희하지 않음.(테이블간의 관계(join) 불필요)
 - RDBMS 보다 복잡도가 떨어져, 훨씬 대용량의 데이터를 저장·관리 할 수 있음.
 - 테이블에 스키마가 정해져있지 않아 데이터 저장이 비교적 자유로움.
 - 많은양의 데이터를 저장·처리   있음

단점

 - key값에 대한 입·출력만 지원
 - 스카마가 정해져 있지 않아, 데이터에대한 규격화가 되어있지 않음.
 - DATA를 UPDATE하는데 비교적 느림.

 

「 정리 」

최근 데이터의 복잡도와 크기가 기하급수적으로 증가하면서, NoSQL이 빠르게 성장하고 있지만, RDBMS를 대체할 수 있을것이라고는 생각하지 않습니다.

 

그 이유는 아직까지도 정형화된 DB를 사용하는곳이 너무도 많고, 이를 다루기에 RDBMS가 가진 장점이 명확하기 때문입니다.

 

하지만 NoSQL이 가진 장점 또한 확실하기 때문에, 각각 필요한 분야에서 다양한 방식으로 쓰일것으로 예상됩니다.

 

따라서, 이 두가지의 개념을 확실히 이해하고, 어떠한 상황에서 어떠한 형태의 데이터베이스를 구축하여 활용할지를 잘 판단하여 적용하는것이 가장 중요하다고 할 수 있습니다.

댓글