데이터베이스의 종류 – 관계형 DB, 비관계형 DB

데이터베이스와 DBMS(Database Management System)

데이터베이스(Database)는 데이터의 모음을 의미합니다. 텍스트, 이미지, 영상 등 우리가 사용하는 많은 데이터들은 모두 데이터베이스에 저장됩니다. 일반적으로 데이터베이스는 해당 데이터를 다시 사용하기위해 마구잡이로 데이터를 던져놓기보다는 구조화된 형태로 저장합니다.

데이터베이스는 데이터를 보관해놓은 ‘창고’를 의미한다면, 이 창고에서 원하는 데이터를 꺼내거나 넣고, 삭제하고 업데이트 하는 등의 관리를 가능하게 하는 시스템을 ‘DBMS'(Database Management System)라고 합니다. 흔히 알고 있는 MySQL, PostgreSQL, Oracle, mongoDB 등이 모두 이러한 DBMS의 종류로, 개발자는 데이터의 특성이나 용도 등에 따라 알맞은 DBMS를 선정하게 됩니다.

이렇듯, 데이터베이스와 데이터베이스 관리 시스템은 엄밀히 말하면 약간의 다른 개념이지만, 일반적으로 DB와 DBMS는 혼용하여 사용됩니다. 그렇다면 데이터베이스의 종류를 어떻게 나눠볼 수 있는지 알아보도록 하겠습니다.

관계형 데이터베이스(Relational Database)

관계형 데이터베이스는 가장 흔한 DB의 종류입니다. RDB의 데이터 구조는 우리가 흔히 사용하는 엑셀, 스프레드시트의 형태와 유사합니다. 열(Column)과 행(Row)의 구조로 데이터의 모음인 테이블(Table)을 만들어 저장하는 형식이지요. 테이블을 생성할 때는 각 열의 들어갈 데이터의 속성(타입 등)을 지정합니다. 그리고 행에는 이러한 열에 맞춰 데이터 값을 채워넣는 형식입니다. 테이블에 자료를 저장하는 구조와 테이블 간의 관계 등을 정의한 것을 데이터베이스 스키마(Schema)라고 합니다.

relational database

관계형 데이터베이스의 가장 큰 장점은 여러 테이블의 관계를 설정할 수 있다는 것입니다. 필요한 경우에는 각각 다른 테이블에 있는 데이터를 합쳐서 원하는 형태로 조회할 수 있는데 이를 조인(Join) 기능이라고 합니다. 관계형 데이터베이스의 데이터 저장방법에 대해 AWS에서 간략하게 설명해놓은 글이 유용하므로 참고해보세요.

RDBMS의 종류

  • MySQL: 오픈소스로 공개된 RDMBS로, 무료로 사용할 수 있는만큼 높은 점유율을 자랑하고 있는 데이터베이스입니다. 일반적인 규모의 소프트웨어에서는 큰 무리없이 활용할 수 있는 성능을 지니고 있습니다.
  • Oracle: 미국의 IT 기업인 오라클에서 만들어, 유료로 제공하고 있는 데이터베이스입니다. 유료인만큼 안정적인 시스템과 성능을 자랑하므로 대기업, 금융회사 등에서 많이 사용하고 있습니다.
  • PostgreSQL: MySQL과 마찬가지로 오픈소스 데이터베이스입니다. MySQL보다 다양한 데이터타입과 기능을 제공하고 있으므로 점점 더 많은 인기를 끌고 있습니다.

SQL(Structured Query Language)

SQL은 RDB를 조작하기 위해 사용하는 언어를 의미합니다. 위에서 살펴보았듯, RDBMS에는 다양한 종류가 있지만 국제 표준화된 ‘표준 SQL’이 존재하여 SQL의 기본적인 문법은 모두 공통으로 사용합니다. 하지만 각 시스템마다 특화된 기능을 사용하기 위해 세부적인 기능의 문법은 달리 제공하고 있으므로, 알맞은 데이터베이스의 종류를 고른 후에는 각 데이터베이스를 잘 다루기 위해 제공하는 SQL 문법을 더 세부적으로 익힐 필요가 있습니다.

비관계형 데이터베이스(Non-relational Database)

관계형 데이터베이스와 같이 열과 행이 존재하는 구조를 벗어나 데이터를 관리하기 위해 다양한 데이터 모델을 사용하는 데이터베이스를 비관계형 데이터베이스라고 합니다. 이러한 데이터베이스의 경우 SQL을 사용하지 않는다는 의미로 NoSQL이라고 부르기도 합니다. 일반적으로 관계형 데이터베이스가 가지고 있는 한계를 보완하기 위해 큰 용량의 데이터, 짧은 레이턴시 등의 특징을 가진 NoSQL 데이터베이스를 사용합니다.

비관계형 데이터베이스의 종류

데이터를 저장하는 형식에 따라 크게 문서형 데이터베이스, key-value 데이터베이스, 그래프 데이터베이스로 나눠볼 수 있습니다.

  • 문서형(Document) 데이터베이스: 데이터를 문서의 형태로 저장합니다. 아래와 같은 형태의 JSON 형태의 문서로 저장을 하는 것이 일반적입니다. MongoDB가 문서형 데이터베이스 종류에 속합니다.
  • 키-값(key-value) 데이터베이스: 키-값 형태의 데이터만을 저장하는 단순한 형태의 데이터베이스입니다. 간단한 데이터를 빠르게 가져와야할 때 사용합니다. 빠른 속도를 위해 메모리에 저장하는 인메모리 데이터베이스인 Redis가 해당 유형입니다. 아래 이미지는 Redis에서 값으로 저장할 수 있는 데이터 타입입니다.
  • 그래프(graph) 데이터베이스: 구성 요소를 뜻하는 노드(node)와 요소 간의 관계를 의미하는(edge)로 구성된 자료구조를 ‘그래프’라고 합니다. 그래프 데이터베이스는 그래프에 각 노드의 정보인 프로퍼티(property)를 더해서 저장합니다. 대표적으로 Neo4j 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *