앞으로 몇 주 동안 제가 진행할 강연의 제목입니다. 기본적으로 비정형 또는 반정형 데이터에 대한 데이터 모델링에 관한 내용입니다.

관심이 있으시다면 다음 컨퍼런스에서 강연할 예정입니다:

 

시간적 여유가 있으시다면 기본적으로 강연 소개를 정리한 글입니다:

민첩성과 스키마 없는 데이터에 대한 약속은 항상 NoSQL 데이터베이스의 핵심입니다. 그리고 이 모든 것이 사실입니다. 비정형 데이터를 쉽게 저장할 수 있습니다. 하지만 실제로 데이터를 사용할 때는 구조를 적용해야 합니다. 그 구조를 적용하는 방법에는 여러 가지가 있습니다. 오늘은 이에 대해 이야기해 보겠습니다.

하지만 먼저 정형과 비정형에 대해 알아보겠습니다. 우리가 데이터베이스에서 알고 있는 정형 데이터는 일반적으로 열을 의미합니다. 열에는 이름과 유형이 있으며 테이블별로 그룹화됩니다. 해당 테이블에 새 줄을 삽입하려고 할 때 이 줄의 모든 요소는 각 열의 이름과 유형에 일치해야 합니다. 즉석에서 새 항목을 추가하거나 유형을 동적으로 변경할 수 없습니다.

모든 것을 문자열로 저장할 수도 있지만 데이터베이스 열을 사용하는 목적에 어긋납니다(대부분의 열 저장소가 Json 유형으로 제공되고 있다는 점도 언급할 가치가 있습니다). 따라서 스키마가 있는 것과 같습니다. 그리고 저장하려는 내용이 해당 스키마에 맞지 않으면 오류가 발생합니다.

스키멀리스란 무엇인가요?

반면에 스키마가 없으면 어떤 유형이든 저장할 수 있습니다. 지도나 사전과 같은 프로그래밍 및 데이터 구조를 생각해보면 스키마 없는 구조입니다. 키/값 저장소를 생각해보면 값은 무엇이든 될 수 있습니다. 바이너리 인코딩된 이미지, 직렬화된 객체, JSON, XML, 숫자 등이 될 수 있습니다.

바이너리로 인코딩된 파일에는 구조가 포함되어 있지 않을 수 있지만, JSON과 XML에는 구조가 포함되어 있습니다. 우리는 보통 이를 반정형 데이터라고 부릅니다. 두 데이터 모두 이름과 유형이 지정된 필드를 제공하며 언제든지 원하는 필드를 추가할 수 있는 유연성을 제공합니다. 암시적 스키마와 같습니다. 그리고 둘 다 XSD 또는 JSON-SCHEMA와 같은 실제 스키마 사양을 가지고 있습니다.

따라서 대부분의 경우 데이터베이스에서 스키마리스에 대해 들으면 실제로는 반정형 데이터에 더 가깝습니다.

구조화, 비정형 또는 반구조화, 알았어요, 이제 어떻게 하나요?

물론 데이터를 저장하고 있기 때문에 언젠가는 데이터를 사용하고 싶을 것입니다. 이는 대략 세 가지를 의미합니다:

  • 해당 데이터를 작성해야 합니다.
  • 해당 데이터를 읽어야 합니다.
  • 데이터 저장소 답변을 애플리케이션에서 사용할 수 있는 구조 또는 객체에 매핑해야 합니다.

 

이 세 가지 사항을 사용 중인 스토어의 아키텍처와 결합하면 더 많은 질문이 제기될 수 있습니다:

  • 데이터를 검색하는 데 사용할 수 있는 항목(간단한 키 가져오기? 구체화된 보기? 쿼리 언어? )
  • 데이터가 분산, 복제, 일관성을 유지하고 있나요?

 

이러한 포인트는 모두 데이터 구조에 영향을 미칩니다. 이를 위해 도메인 디자인의 모든 세부 사항을 추가할 수 있습니다.

가능한 한 이러한 질문에 답하기 위해 Couchbase를 예로 들어 설명해 보겠습니다. Couchbase는 분산 키/값 저장소이자 문서 데이터베이스로서 이에 대한 좋은 후보입니다.

데이터 모델링에 대해 자세히 알아보려면 저와 함께하세요!

작성자

게시자 로랑 도귄

Laurent는 파리에 사는 괴짜 금속공학도입니다. 주로 Java로 코드를 작성하고 AsciiDoc으로 구조화된 텍스트를 작성하며 데이터, 리액티브 프로그래밍 및 기타 유행어에 대해 자주 이야기합니다. 또한 Clever Cloud와 Nuxeo의 개발자 옹호자로 활동하며 해당 커뮤니티가 더 크고 강력하게 성장할 수 있도록 자신의 시간과 전문성을 바쳤습니다. 현재 Couchbase에서 개발자 관계를 운영하고 있습니다.

댓글 남기기