RDBMS vs NoSQL 차이 (NoSQL 사용 이유)

RDBMS와 NoSQL의 가장 큰 차이는 데이터베이스의 관계성입니다. RDBMS는 엄격한 규칙에 의해 운영되는 반면 NoSQL은 좀 더 유연합니다. 두 DB의 특징이 다른 만큼 활용처에도 차이가 있습니다.

RDBMS

가장 널리 사용되고 있는 RDBMS(Relational DataBase Management System)부터 살펴보겠습니다. RDBMS는 관계형 데이터베이스 관리 시스템으로 이해할 수 있고, 줄여서 RDB라고 부릅니다. RDB는 열과 행으로 이루어진 테이블 구조가 특징입니다. 엑셀에서 표를 만들어 데이터를 편집하는 것과 유사합니다. RDB에서는 SQL이라는 질의 언어를 사용해서 데이터를 생성, 조회, 수정, 삭제합니다. 오라클, MSSQL, MYSQL, PostgreSQL 등이 RDBMS에 속합니다.

 

RDB는 정의된 스키마가 존재합니다. 스키마란 전체 데이터의 구조를 의미합니다. 예를 들어, 데이터베이스가 어떤 테이블로 구성되어 있는지, 각 테이블엔 어떤 컬럼이 있는지, 어떤 컬럼이 기본키, 외래키로 지정되어 있는지 등의 구조입니다. 이런 형태를 갖춰야 데이터의 무결성을 지키면서 활용할 수 있기 때문에 스키마는 중요합니다. 그러나 RDB에서는 매우 중요한 개념인 스키마를 NoSQL에선 의도적으로 없앴습니다.

NoSQL

NoSQL은 관계 지향적이지 않은 DB로 이해하시면 됩니다. RDB처럼 데이터를 테이블 형태로 저장하지 않아 구조화되지 않은 데이터를 저장하는데 용이합니다. NoSQL은 문서, 그래프, 키-값 형태 등으로 데이터를 유연하게 저장합니다. 위에서 언급했듯 NoSQL은 스키마가 필요하지 않습니다. 대신 데이터의 저장 속도와 유연성을 확보했습니다. MongoDB, BigTable, Redis, RavenDB Cassandra, HBase, Neo4j, CouchDB 등이 NoSQL에 속합니다.

NoSQL 쓰는 이유

NoSQL은 덜 구조화된 방식으로 데이터를 저장할 수 있기 때문에 유연합니다. RDB의 경우 새로운 시스템을 만들기 위해선 프로젝트 초기에 구성한 스키마의 제약을 고려해야하지만 NoSQL은 스키마에 대한 걱정 없이 새로운 시스템을 만들 수 있습니다.

 

고성능, 고기능을 보여줍니다. 큰 용량의 데이터를 저장하고 간단한 질의로 데이터를 조회할 수 있습니다. 예를 들어, NoSQL은 매일 페타바이트 단위의 데이터를 수집하는 환경에서 활용됩니다. ‘빅데이터’의 출현과 관계가 있는 DB 관리 시스템인 셈입니다.

 

NoSQL은 분산 데이터 저장소를 위해 개발됐습니다. 때문에 스케일업(Scale-up)으로 하드웨어 성능을 확보하는 RDB와 다르게 NoSQL은 스케일아웃(Scale-out)으로 하드웨어의 처리 능력을 높일 수 있습니다. 다시말해, 값비싼 CPU나 RAM을 추가하는 방법 대신, 적당한 성능의 서버를 여러 개 병렬로 붙여서 분산 처리하기에 용이합니다.

 

NoSQL은 빅데이터를 다루는 대표적 빅테크인 구글, 페이스북, 인스타그램, 아마존 등에서 사용하고 있습니다.

반응형

댓글

Designed by JB FACTORY