반응형

관계형 데이터베이스와 비관계형 데이터베이스

수십 년간 애플리케이션 개발에 주로 사용되어 온 데이터 모델은 관계형 데이터 모델입니다. 이 모델은 Oracle, IBM DB2, SQL Server, MySQL, PostgreSQL 등의 관계형 데이터베이스에 사용되고 있습니다. 2000년대 중반 말에 이르러 다른 데이터 모델들이 채택되고 사용되는 형상이 눈에 띄기 시작했습니다.

 

이러한 새로운 데이터베이스와 데이터 모델 클래스를 차별화하고 분류하기 위해 NoSQL이라는 용어가 만들어졌습니다. 흔히 NoSQL이란 용어는 비관계형 데이터베이스와 같은 의미로 사용됩니다.

 

  관계형(SQL) 데이터 베이스 비관계형(NoSQL) 데이터베이스
데이터 저장 열과 행 키-값, 와이드 컬럼, 그래프, 문서, 기타 모델
스키마 고정 동적
예시 DB 서비스 Amazon RDS, Aurora DynamoDB, ElastiCache

 

관계형 데이터베이스는 서로 간에 사전 정의된 관계가 있는 데이터 항목의 모음입니다. 이들 항목은 열과 행으로 이루어진 테이블 집합으로 굿어됩니다. 테이블의 각 열은 특정 종류의 데이터를 수록하며 필드는 속성의 실제 값을 저장합니다. 테이블의 행은 한 객체 또는 엔터티와 관계된 값의 모음을 나타냅니다. 이 데이터는 데이터베이스 테이블 자체를 재구성하지 않고도 여러 가지 방법으로 액세스 할 수 있습니다.

 

NoSQL은 가용성과 확장성이 뛰어나며 높은 성능을 유지하도록 최적화된 비 관계형 데이터베이스 시스템을 설명하는 데 사용되는 용어입니다. NoSQL 데이터베이스는 키 값 페어 또는 문서 스토리지 같은 데이터 관리에 관계형 모델 대신 대처 모델을 사용합니다.

 

관계형 DB / NoSQL

 

기능이 각기 다른 여러 유형의 데이터베이스가 있지만, 다음 표에서는 SQL DB와 NoSQL DB의 몇 가지 차이점에 대해 보여줍니다.

관계형 DB 비관계형 DB
엄격한 스키마 규칙 및 데이터 품질 적용이 필요 데이터베이스 크기를 수평적으로 조정해야 함
데이터베이스가 과도한 읽기/쓰기 용량을 필요로 하지 않음 데이터가 기존 스키마에 적합하지 않음
최상의 성능을 필요로 하지 않는 관계형 데이터 집합의 경우 관계형 DB 관리 시스템이 자원 소비가 적은 최고의 솔루션이 될 수 있음 읽기/쓰기 속도가 기존 정형 쿼리 언어(SQL) DB에서 경제적으로 지원할 수 있는 속도를 초과

 

관리형 서비스와 비관리형 서비스

클라우드에서 리소스를 구축할 때는 클라우드를 제어해야 하는 수준, 그리고 해당 리소스를 관리하는 데 사용할 수 있는 보유 중인 리소스를 고려해야합니다.

 

예를 들어 클라우드에서 데이터베이스를 실행할 때는 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에 설치할 수도 있고, Amazon RDS 등의 관계형 데이터베이스 옵션을 선택할 수도 있습니다.

 

  • EC2 인스턴스에 데이터베이스를 설치하면 하드웨어를 제외한 데이터베이스의 모든 측면을 완벽하게 제어할 수 있습니다. 하지만 이처럼 제어 가능 수준이 높아지므로 관리를 위한 전문 지식과 리소스가 더 많이 필요합니다.
  • 관리형 데이터베이스 서비스를 사용 시에는 획일적인 데이터베이스 관리 업무를 수행할 필요가 없습니다.

AWS가 관리하는 데이터베이스는 고가용성, 확장성 및 백업을 위한 시스템을 제공합니다. 스케일링, 고가용성, 데이터베이스 백업, 데이터베이스 소프트웨어 패치, 데이터베이스 소프트웨어 설치, OS 패치를 사용하도록 선택할 수 있습니다. 일반적으로 사용자는 데이터베이스 계층이 애플리케이션과 최대한 잘 연동하도록 애플리케이션 최적화만 책임집니다.

반응형