RESEARCH & REPORT/그래프 기술

정합성의 RDB, 분석력의 GDB, 그리고 두 장점을 가진 RGDB

(주)비트나인 2022. 1. 26. 17:25

RDB와 GDB, 비교와 경쟁의 대상이 아니다

관계형 DB와 그래프 DB는 각각 가장 많이 쓰이고, 또 가장 트렌디한 데이터베이스(DB)입니다. 두 DB 모두 각각의 장점과 고유한 특성이 있습니다. 즉, 우열을 나누어야 하는 것이 아닌 서로 다른 성격의 것으로 이해하면 쉽습니다.

 

관계형 DB와 그래프 DB의 사용에 대한 부분은 곧 데이터의 특성과 활용 목적에 달려있습니다. 관계형 DB의 테이블 구조는 일반적인 정보 기록이나 복잡하지 않은 관계를 저장하는 데 적합합니다. 따라서 관계형 DB는 일반적으로 회계 업무나 은행의 현금거래(트랜잭션)와 같은 요건에서 주로 사용됩니다.

 

반면 그래프 DB는 복잡한 데이터 내에서 관계 중심 분석을 하는 데 효과적입니다. 이는 데이터 전문가가 예상하지 못한 연결 패턴을 찾아내는 데 도움이 되며, 데이터 간 관계가 많은 사례에 적합합니다. 그래프 DB가 가장 잘 알려진 활용 사례는 소셜 미디어 분석 및 관리, 이상거래탐지 및 실시간 추천 엔진 등이 포함됩니다. 데이터 간 관계를 매핑하는 것 또한 별도의 시각화 도구를 통해 쉽게 표현할 수 있다는 장점이 있습니다. 

 

두 데이터베이스는 관계를 구조화하는 방식에서 서로 다른 장단점을 제공할 수 있습니다. 그래프 DB가 속해있는 NoSQL이란 “Not only SQL”, 즉 관계형 DB의 SQL을 대체하지 않고 함께 아우른다는 의미를 담고 있습니다. 기존 사용하던 시스템과 더불어 데이터 활용 및 분석에 최적화된 그래프 DB의 시너지 효과로 새로운 인사이트를 얻어 비즈니스 프로세스에 대한 의사결정을 보강할 수도 있습니다.

 

하지만 관계형 DB와 그래프 DB를 활용하기 전에 각각의 DB에 대한 차이점을 이해해야 할 필요가 있습니다. 각각의 용도를 알아야 목적에 따라 사용할 수 있기 때문입니다.

 

데이터를 정확히 관리하는 관계형 DB (RDB)

관계형 DB는 데이터를 테이블에 저장합니다. 테이블은 열(column)과 행(row)으로 정의되며 각 행은 다른 테이블의 행에 연결할 수 있도록 고유 키(unique key)로 식별되고, 각 테이블에는 테이블 내에서 찾은 정보를 식별하는 기본 키(primary key)도 포함되어 있습니다. 위와 같이 정확한 스키마로 구분되어 있기에, 정합성이 매우 뛰어납니다. 즉, 데이터의 정확한 관리가 가능합니다.

 

또한, 관계형 DB는 테이블의 논리적인 구조와 물리적인 스토리지(storage)의 구조로 분리됩니다. 이를 통해 데이터 전문가는 논리적 구조에 영향을 미치지 않게끔 물리적 데이터 구조를 변경할 수 있습니다. 

 

관계형 DB는 각 테이블 간의 관계를 모델링하기 위해 기존 테이블의 정보가 담긴 추가적인 테이블을 필요로 하게 됩니다. 아래 이미지는 고객이 구매한 제품을 분석하기 위해 온갖 테이블을 총동원해서 연결하는 것을 볼 수 있습니다.

 

고객 구매 제품을 보여주는 RDB의 Join Operation

 

 

데이터 속 숨겨진 가치를 찾아내는 그래프 DB (GDB)

정형 데이터만 관리해오던 관계형 DB를 이어 현대적인 반정형 및 비정형 데이터들을 분석하기 위해 나타난 NoSQL 계열의 DB들이 있습니다. 반정형 및 비정형 데이터들은 일반적으로 스키마가 없는(Schema-less) 구조이기에 관계형 DB로 관리하기 매우 어렵습니다.

 

2013-2022 데이터베이스 트렌드, 출처: DB Engines.com

 

 

NoSQL DB들 중 가장 주목받는 것은 그래프 DB입니다. 관계형 DB를 포함해 다양한 DB들 중 압도적인 성장세를 보이며 시장을 확대해 나가며 미래 가치를 인정받고 있습니다. 글로벌 No.1 시장조사기관인 가트너(Gartner)가 오는 2025년까지 전 세계 기업의 80%가 그래프 DB를 활용할 것이라고 예측할 정도로 트렌드의 중심에 자리 잡고 있습니다.

 

그래프 데이터베이스의 기본 구성 요소는 다음과 같습니다. 

 

노드(Node): 그래프의 주요 객체. 관계형 DB의 ‘행’으로 생각할 수 있습니다.

엣지(Edge): 객체 간의 연결 관계를 표현. 관계형 DB의 ‘외래 키’로 볼 수 있습니다.

레이블(Label): 유사한 노드를 함께 그룹화하는 속성.

속성(Properties): 노드 또는 관계 내에 저장된 키/값  

 

글로 설명하는 것보다 그림으로 설명하는 것이 더 쉽겠죠? 

 

 

그래프로 나타내는 친구 관계

 

 

위 소셜 네트워크 그래프에서 모든 사람은 Person이라는 레이블이 지정된 노드로 표시됩니다. 이러한 노드에는 이름, 성별, 위치 및 이메일과 같은 속성을 포함합니다. 해당 네트워크에 있는 사람들 간의 관계는 FRIENDS_WITH로 지정되며 친구를 맺은 기간은 Friendship 기간 속성에 포함합니다. Person은 Location 레이블이 지정된 노드의 :LIVES_IN 관계를 통해 연결되어 있습니다. 그래프 DB는 이러한 데이터간 연관관계를 통해 의미있는 인사이트, 즉 ‘가치’를 뽑아낼 수 있다는 특성이 있습니다. 

 

위 이미지는 간단한 예이지만 그래프 DB가 표현하는 데이터 간 관계를 간결하게 보여줍니다. 그래프 DB는 일부 노드에 속성을 추가하는 작업이 쉽습니다. 속성을 추가하려면 열을 추가해야 하는 관계형 DB보다 더 유연하게 사용할 수 있습니다. 

 

RDB & GDB 사용 가이드

다음은 두 DB를 고려할 때를 가정한 설명입니다. 어떤 DB를 선택해야할지, 혹은 필요에 따라 기존 시스템을 유지해야할지, 더욱 고도화해야 할지 등 데이터 활용에 대한 의사결정에서 나올 수 있는 고민들입니다.

 

선택 #1: 빠른 분석 or 로그 관리

그래프 DB는 육안으로 확인하기 힘들었던 숨겨진 패턴을 쉽게 조회하고 파악할 수 있어 예측 분석 또는 이상 탐지에 활용하기 적합한 DB입니다. 데이터 조회 및 분석에 최적화되어 있기에 이 기능을 자주 사용해야 한다면 탁월한 선택이 될 것입니다. 특히 그래프 언어의 질의 방식은 관계 데이터를 명시하지 않더라도 그 패턴을 빠른 시간 안에 조회할 수 있습니다. 

 

다만, 데이터베이스를 사용하는 데 빅 데이터 분석에 대한 니즈가 없고 단순히 데이터 로그(log)를 중심으로 기록한다면 관계형 DB를 유지하는 것이 나을 수도 있습니다. 은행의 거래내역, 에너지 저장장치(ESS)의 배터리 충전/방전률 관리 등 로그 정보를 저장하여 문제가 있을 때만 즉각 반응할 수 있을 정도의 업무라면 말입니다.

 

선택 #2:  데이터 관계의 깊이 여부

그래프 DB는 저장 중인 데이터 내에 수많은 연결점이 있고, 연결된 데이터 간에 의미 있는 인사이트를 도출해야 할 경우 고려할 가치가 있습니다. 숨겨진 패턴을 찾을 수 있어 의사결정을 돕는 증거를 제공하기도 합니다. 특히 여러 정형, 반정형, 비정형 데이터 간에 관계를 그래프 DB에 변환한다면 데이터 이해에 대한 시야가 넓어질 수 있습니다. 

 

데이터의 연결이 주요 초점이 아니고 데이터 트랜잭션 중심으로 관리할 목적이라면 그래프 DB보다 관계형 DB가 적합합니다. 때로는 복잡한 데이터의 관계를 파악하는 것보다 단순히 데이터를 저장하고 관리하는 것이 나을 때도 있습니다.  

 

선택 #3: 데이터 모델의 일관성 여부

데이터 모델에 일관성이 없고 자주 변경해야 하는 경우에는 그래프 DB 사용을 권장합니다. 그래프 DB는 스키마가 없는(schema-less) 특성을 가지고 있기 때문에, 유연하게 속성을 추가할 수 있습니다. 특정 시점에서 분석의 깊이를 이해하기 위해 속성을 추가할 경우, 또는 속성 유형이 엄격하게 정의되지 않은 경우(예: 동영상, 사진 등 비정형 데이터)에도 사용하기 적합합니다. 

 

반면 일관성을 자랑하는 테이블(관계형 DB)에도 장점이 있습니다. 개인 정보 내에 이름, 생년월일, 위치 등에 대한 정보를 저장하고 있고, 새로운 필드나 데이터 변경을 자주 하지 않는 경우라면 관계형 DB가 더 효율적일 수도 있습니다.

 

RGDB, RDB와 GDB를 모두 쓸 수 있는 멀티 모델

현 시대에는 방대한 양의 빅 데이터로부터 숨겨진 인사이트를 도출하는 것이 기업의 경쟁력을 증가시키는 수단으로써 큰 화두가 되고 있습니다. 따라서, 하나의 DB가 아닌 두 DB의 장점을 활용하며 그 효율을 챙기는 사례도 증가해가고 있습니다. 

 

예를 들어 은행에서 보이스피싱을 모니터링하고자 기존부터 사용해오던 관계형 DB에 있는 데이터를 활용해 AI 관리 시스템을 구축하자는 결정을 내렸다고 가정해 보겠습니다. 은행에는 몇백 만개의 계좌 거래 정보가 있고, 계좌 간의 상세 거래 정보와 사고신고 내역들을 모두 테이블로 저장했을 것입니다. 빅 데이터 저장과 관리는 기존 관리 시스템으로 유지하되, 그중에 패턴 추적 또는 깊은 분석이 필요한 영역(예: 계좌 간 거래 정보)을 그래프 DB에 이전한 후 질의한다면, 데이터의 연관관계와 함께 비정상 거래 패턴도 함께 찾아낼 수 있을 것입니다. 

 

실제로 그래프 DB를 도입한 많은 빅 데이터 플랫폼도 데이터 관리는 관계형 DB를 유지하고 있습니다. 관계형 DB와 그래프 DB는 함께 해야 서로의 장단점을 보완하는 시너지를 낼 수 있습니다.

 

용도와 목적을 고려한 선택이 필수

모든 것에는 항상 양면이 있듯, 최신의 기술인 그래프 DB 또한 모든 문제를 해결할 수 있는 완벽한 솔루션은 아닙니다. 많은 기업들이 오랫동안 사용해오며 검증된 관계형 DB 또한 마찬가지입니다. 기업이 원하는 니즈에 따라 그래프 DB가 필요할 수도 있고, 기존 관계형 DB를 유지해야 할 수도 있습니다. 혹은 두 가지 DB를 혼용해야 할 수도 있습니다.

 

그래프 DB의 주요 선택 이유는 데이터의 관계를 분석하기 위함이고, 관계형 DB는 수많은 데이터에 대한 정확한 집계가 필요할 때입니다. 각 용도에 맞게 사용하고, 두 가지 모두 사용하며 효율을 높이고자 할 경우에는 두 가지가 혼합된 멀티모델 데이터베이스를 고려해볼 수도 있습니다. 이를테면 기존 방대한 데이터의 정확한 관리는 관계형 DB로, 그중 의미 있는 데이터만 추출한 관계 분석은 그래프 DB로 하는 것입니다. 이는 기존의 데이터 관리 패러다임은 그대로 유지하면서도 새로운 인사이트를 얻어내는 방법입니다.

 

보유한 데이터가 어떤 특성을 가지고 있는지, 혹은 데이터를 통해 무엇을 얻고자 하는지, 먼저 고민해 보는 것이 현명한 의사 결정이 될 것입니다. 또한, 이 과정에서 전문가의 컨설팅을 받아보는 것도 좋은 해답이 될 수 있습니다. 결정은 여러분의 몫입니다.

 


 

트렌디한 그래프 기술과 IT 소식을 뉴스레터로 받아보세요!

https://bitnine.net/ko/subscribe/

 

제품 및 기술문의

070-4800-3517  |   agens@bitnine.net