분류

관계형 데이터베이스가 아닌 칠면조 채우기

추수감사절과 칠면조는 밀접한 관련이 있습니다! 칠면조 속을 채우는 것은 꽤 재미있을 수 있지만(컵케이크와 함께 - 아래 참조), 행과 열이 있는 관계형 데이터베이스에 JSON 리치 문서를 채우는 것은 그렇지 않습니다.

 

지난 몇 년 동안 JSON이 개발자들 사이에서 인기 있는 데이터 포맷으로 자리 잡으면서 많은 SQL 기반 데이터베이스 공급업체들이 JSON 지원을 제공하는 JSON 시류에 뛰어들었습니다. 그러나 이러한 시스템은 JSON 문서 저장소와 같은 직관적인 프로그래밍 표면을 제공하지 못하며, JSON을 기본적으로 지원하지 않고 이미 확장하기 어려운 관계형 기술 위에 임시방편적인 JSON 확장을 제공합니다.

 

그렇다면 관계형 데이터베이스에서 JSON이 작동하지 않는 이유는 무엇일까요?

근본적으로 해답은 데이터 모델과 아키텍처에 있습니다.

 

관계형 데이터베이스에서 레코드를 삽입할 때는 특정 유형을 가진 잘 정의된 필드 집합을 삽입하는 것이며, 이는 데이터베이스 스키마에 매우 엄격하게 정의되어 있습니다. 관계형 기술 위에 JSON을 구축하는 경우, 열에 JSON 데이터 유형이 있거나 JSON 문서를 여러 테이블로 분할해야 한다는 것을 미리 정의해야 하는 임피던스 불일치 문제가 발생합니다.

 

NoSQL 데이터베이스 사용 JSON을 기본적으로 지원하는 Couchbase와 마찬가지로 JSON 문서는 독립적이고 스키마가 없습니다. JSON 문서 형식 유연하고 사용하기 쉽습니다.. 애플리케이션 개발자는 데이터 작업을 빠르게 시작할 수 있으며 데이터베이스는 데이터 구조의 변경에 쉽게 적응할 수 있습니다. JSON 문서는 다음을 저장할 수 있습니다. 풍부한 데이터 스파스, 계층 구조 또는 배열처럼 깊이 중첩된 값일 수 있습니다. JSON 값은 또한 동적으로 입력된를 사용하여 여러 문서에 걸쳐 속성에 대한 고정된 데이터 유형이 없습니다.

 

독립된 JSON 문서 를 사용하면 클러스터 전체에서 데이터를 쉽게 샤딩할 수 있습니다. JSON 문서는 관계형 테이블의 열 안에 갇히지 않고 있는 그대로 자연스럽게 저장되며 데이터베이스에서 색인을 생성할 수 있습니다. Couchbase를 사용하면 JSON 문서가 자동 샤딩되어 여러 서버에 고르게 분산됩니다. 클러스터 내에 문서의 사본이 여러 개 있어 안정성이 높아집니다: 노드가 다운되더라도 데이터 손실 없이 데이터베이스가 계속 작동합니다.

 

스키마 프리는 데이터베이스 변경 없이 애플리케이션을 변경할 수 있다는 의미입니다. 삽입 작업 중에 스키마를 미리 바인딩할 필요가 없습니다. 그러나 나중에 다른 데이터 속성을 캡처하기로 마음이 바뀌면 관계형 데이터베이스에서처럼 스키마를 업데이트하고 모든 것을 다시 정규화할 필요가 없습니다. 데이터베이스 스키마를 변경하지 않고도 백엔드에 데이터를 계속 채울 수 있습니다.

 

Couchbase는 JSON 데이터에 대한 인덱싱과 쿼리를 지원합니다. 즉, 키-값 방식으로 데이터에 액세스하거나, 보기를 통해 또는 N1QL을 사용하여 Couchbase의 풍부한 JSON 데이터를 쿼리할 수 있는 SQL과 유사한 언어입니다. N1QL은 쉽고 친숙한 추상화를 제공하여 확장 가능한 Couchbase 앱을 빠르게 개발할 수 있습니다. 조인, 필터 표현식, 집계 표현식 및 기타 여러 기능을 통해 풍부한 애플리케이션을 구축할 수 있습니다.

 

결론

이 모든 것이 의미하는 바는 엔터프라이즈 애플리케이션 분야에서 일하고 있다면 지금이 바로 관계형 데이터베이스에 JSON을 채우는 대신 NoSQL과 같은 대체 데이터 스토리지 옵션에 익숙해져야 할 때라는 것입니다.

 

따라서 이미 JSON 문서를 생성하는 새 앱을 구축 중이거나 데이터가 너무 복잡하여 관계형 데이터베이스로 모델링하기 어려운 경우 데이터를 저장하는 데 Couchbase를 고려할 수 있습니다. 예를 들어 사용자, 시스템 또는 소셜 네트워크로부터 데이터를 수집하는 운영 스토어에서는 Couchbase와 같은 NoSQL 데이터베이스가 적합합니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 돈 핀토, 수석 제품 관리자, Couchbase

돈 핀토는 Couchbase의 수석 제품 관리자로 현재 Couchbase Server의 기능을 발전시키는 데 주력하고 있습니다. 데이터 기술에 대한 열정이 대단한 그는 과거에 기술 블로그와 백서 등 Couchbase Server에 관한 여러 기사를 저술한 바 있습니다. Couchbase에 입사하기 전에는 IBM에서 수년간 근무하며 DB2 정보 관리 그룹에서 소프트웨어 개발자의 역할을 수행했고, 가장 최근에는 Microsoft의 SQL Server 팀에서 프로그램 관리자로 근무했습니다. Don은 캐나다 토론토 대학교에서 컴퓨터 공학 석사 학위와 컴퓨터 공학 학사 학위를 받았습니다.

댓글 하나

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.