주요 컨텐츠로 이동

데이터베이스 스키마: 구조, 설계 및 구현을 위한 종합 가이드

소개: 현대 데이터 관리에서의 데이터베이스 스키마 이해

데이터베이스 스키마는 데이터베이스가 어떻게 구성되고 구조화되는지에 대한 청사진 역할을 합니다. 데이터베이스 스키마는 데이터베이스 테이블의 레이아웃, 포함된 필드, 테이블 간의 관계를 정의하여 일관되고 예측 가능한 방식으로 데이터에 액세스할 수 있도록 합니다. 데이터 시스템이 복잡해질수록 데이터베이스 스키마는 더욱 중요해집니다. 잘 설계된 데이터베이스 스키마를 사용하면 팀이 운영, 분석, 분산 데이터베이스 전반에서 데이터를 더 쉽게 유지 관리하고 안정적으로 액세스할 수 있습니다.

일반적으로 데이터베이스 설계에는 개념적 데이터베이스 스키마, 논리적 데이터베이스 스키마, 물리적 데이터베이스 스키마의 세 가지 고유한 스키마 유형이 사용됩니다.

최신 플랫폼에서 데이터베이스 스키마는 Unity Catalog와 같은 도구에서 볼 수 있듯이 대규모 중앙 집중식 거버넌스 및 액세스 제어도 지원합니다. 데이터 아키텍처 패턴으로 작업하는 팀의 경우 데이터베이스 스키마 디자인이 더 광범위한 시스템 디자인과 어떻게 조화를 이루는지 이해하는 것이 필수적입니다.

자세히 보기

데이터베이스 스키마란 무엇인가요?

데이터베이스 스키마는 데이터베이스 내에서 데이터가 구성, 저장, 액세스되는 방식을 정의하는 구조적 프레임워크입니다. 데이터베이스 스키마는 데이터베이스 테이블의 layout, 데이터 엔티티 간의 관계, 데이터 운영을 지원하는 데이터베이스 객체를 설명하는 용어입니다.

핵심 사항

데이터베이스 스키마는 다음을 정의합니다.

  • 데이터 엔터티가 서로 관련되는 방식
  • 데이터베이스 테이블과 스키마 객체의 구조
  • 규칙 및 제약 조건이 적용되는 방식

데이터베이스 스키마가 구조를 정의하는 반면 데이터베이스 인스턴스는 특정 시점에 저장된 실제 데이터를 의미합니다. 데이터베이스 스키마는 Oracle Database 및 SQL 데이터베이스 시스템과 같은 데이터베이스 관리 시스템 플랫폼 내에서 구현 및 관리됩니다.

데이터베이스 스키마는 더 광범위한 데이터 아키텍처의 일부이기도 하며, 시스템 전반에 걸쳐 스토리지, 처리 및 거버넌스를 조정하는 데 도움이 됩니다.

데이터베이스 스키마와 데이터베이스 테이블의 주요 차이점

데이터베이스 테이블은 데이터를 행과 열의 표 형식으로 저장하는 데 사용되는 단일 저장 구조입니다. 고객, 주문 또는 제품과 같은 특정 엔터티를 나타내며 기존 데이터를 저장합니다.

데이터베이스 스키마는 전체 데이터베이스의 구조입니다. 데이터베이스 스키마는 데이터베이스 테이블의 구성, 테이블 간의 관계, 기타 데이터베이스 객체의 사용 및 액세스 방법을 정의합니다.

비유

데이터베이스 스키마는 건물의 청사진입니다. 데이터베이스 테이블은 개별적인 방입니다.

대부분의 경우 데이터베이스는 단일 논리 스키마 아래에 여러 테이블을 포함합니다. 테이블은 인덱스 및 뷰와 같은 다른 스키마 객체와 함께 사용됩니다.

데이터베이스 스키마와 테이블이 더 큰 데이터 계획에 통합되는 방법에 대한 자세한 내용은 데이터 아키텍처 용어집을 확인하세요. 데이터베이스 스키마 디자인과 데이터 모델링 관행 간의 관계를 이해하는 것은 데이터베이스 디자이너에게 매우 중요합니다.

데이터베이스 스키마의 세 가지 유형

데이터베이스 스키마는 일반적으로 개념적 데이터베이스 스키마, 논리적 데이터베이스 스키마, 물리적 데이터베이스 스키마의 세 가지 유형으로 나뉩니다. 이러한 분리는 의도, 구조, 구현을 구별하는 데 도움이 되어 데이터베이스의 설계, 유지 관리, 발전을 더 쉽게 만듭니다. 각 데이터베이스 스키마 유형은 고유한 목적과 이해관계자 그룹에 기여하지만 통합된 스키마 설계 프로세스의 일부로 함께 작동합니다.

실제로 이러한 분리는 팀이 다운스트림 시스템을 방해하지 않고 구조를 발전시킬 수 있도록 하여 현대 데이터 엔지니어링 워크플로를 지원합니다.

개념적 데이터베이스 스키마

개념적 스키마는 데이터에 대한 상위 수준 뷰를 제공합니다. 기술적인 세부 사항 없이 비즈니스 엔터티와 관계에 중점을 둡니다.

핵심 사항:

  • 사용 가능한 데이터를 정의합니다
  • 데이터 간의 관계를 설명합니다.
  • 엔터티 관계 다이어그램 시각화를 사용합니다.
  • 비즈니스 및 기술적 관심사와 일치합니다

논리적 데이터베이스 스키마

논리적 데이터베이스 스키마는 개념적 스키마를 나타내는 상세한 데이터 구조입니다.

포함하는 내용:

  • 데이터베이스 테이블 및 관계
  • 데이터 유형
  • 기본 키와 외래 키
  • 무결성 제약

논리적 데이터베이스 구조는 데이터베이스에 독립적이며 메달리온 아키텍처와 같은 계층형 데이터 모델링 접근 방식을 따를 수 있습니다.

물리적 데이터베이스 스키마

물리적 데이터베이스 스키마는 데이터베이스 시스템에서 데이터가 저장되고 액세스되는 방식을 나타냅니다.

물리적 데이터베이스 스키마는 다음을 설명합니다.

  • 데이터 스토리지 구조
  • 파일 구조
  • 성능 향상
  • 플랫폼별 구성

이 수준은 일반적으로 데이터베이스 관리자가 처리합니다. 물리적 스키마에는 특정 데이터 인프라에서 논리적 구조가 어떻게 구현되는지에 대한 세부정보가 포함됩니다.

데이터베이스 스키마의 핵심 구성 요소

데이터베이스 스키마는 데이터를 저장, 검색, 보호하기 위해 함께 작동하는 몇 가지 주요 부분으로 구성됩니다. 데이터베이스 스키마의 주요 구성 요소는 다음과 같이 이해할 수 있습니다.

테이블 및 기타 데이터베이스 객체

데이터베이스 스키마에서 데이터가 저장되는 주요 공간은 데이터베이스 테이블입니다. 데이터베이스 스키마의 각 열에는 고유한 테이블 구조와 데이터 유형이 있어 데이터 저장의 일관성을 보장합니다.

데이터베이스 테이블 외에 다른 데이터베이스 객체는 다음과 같이 이해할 수 있습니다.

  • 뷰: 하나 이상의 테이블에서 가져온 데이터를 단순화된 방식으로 보여주는 시각적 표현 도구입니다.
  • 인덱스: 쿼리 성능을 향상시킵니다.
  • 저장 프로시저 및 트리거: 데이터 무결성을 보장합니다.

이러한 스키마 객체에 대한 액세스 기능은 권한을 통해 제어되며, 이를 통해 승인된 데이터베이스 사용자만 데이터베이스 스키마의 민감한 데이터에 액세스할 수 있도록 보장합니다.

데이터 거버넌스로 작업하는 팀의 경우, 데이터베이스 스키마 권한이 더 광범위한 거버넌스 정책과 어떻게 조화를 이루는지 이해하는 것이 중요합니다.

기본 키와 외래 키

이러한 키는 데이터베이스 스키마에서 데이터 무결성을 보장합니다.

테이블의 기본 키는 각 레코드를 고유하게 식별합니다. 테이블의 각 행은 기본 키를 사용하여 고유하게 식별할 수 있습니다. 기본 키가 있으면 테이블에 중복 데이터가 저장되지 않습니다. 전체 기본 키는 함께 작동하는 기본 키와 외래 키로 구성될 수 있습니다.

외래 키는 데이터베이스 스키마에서 두 개 이상의 테이블을 연결합니다. 외래 키는 다른 테이블의 기본 키에 연결되어 관련된 데이터 관계를 설정합니다.

이러한 관계는 관계형 데이터베이스와 최신 SQL 데이터베이스 시스템의 기본이며, 여기서 트랜잭션 신뢰성은 강력한 ACID 트랜잭션 보장에 따라 달라집니다. 기본 키와 외래 키를 올바르게 사용하면 전체 데이터베이스에서 데이터 일관성을 보장할 수 있습니다.

데이터 유형 및 제약 조건

데이터 유형은 열에 허용되는 값의 유형을 정의합니다. 일반적인 유형은 다음과 같습니다.

  • 정수
  • VARCHAR
  • DATE
  • 불리언
  • DECIMAL

데이터 정의 언어(DDL)는 create database 문을 사용하여 데이터베이스 스키마와 테이블을 정의하거나 수정하는 데 사용됩니다.

규칙은 다음과 같은 안전 기능을 추가하는 데 사용됩니다.

  • NOT NULL, null 값이 삽입되지 않도록 보장합니다
  • 중복된 값이 삽입되지 않도록 보장하는 UNIQUE
  • CHECK: 값이 특정 데이터 범위 내에 있는지 확인합니다.
  • DEFAULT, 사용할 default을(를) 지정합니다

스키마 수준에서 이러한 규칙을 정의하면 데이터베이스가 데이터의 정확성을 유지하고 데이터 일관성을 유지할 수 있습니다.

인덱스와 뷰

인덱스와 뷰는 데이터베이스 스키마 내에서 성능, 사용성, 제어 기능을 개선하는 데 사용됩니다.

인덱스는 자주 검색되는 열의 데이터 검색 속도를 높여 쿼리 성능을 향상시키는 데 사용됩니다. 하지만 인덱스는 데이터가 삽입, 업데이트 또는 삭제될 때마다 업데이트되어야 하므로 쓰기 성능을 저하시키는 것으로 알려져 있습니다.

뷰는 실제 테이블을 나타내는 데 사용되는 가상 테이블이며, 일반적으로 쿼리 작성을 더 쉽게 하거나 특정 데이터에 대한 액세스를 제한하기 위해 사용됩니다.

잘 설계된 데이터베이스 스키마는 성능과 복잡성의 균형을 맞추어 불필요한 복잡성을 피하고 우수한 성능을 보장합니다.

일반적인 데이터베이스 스키마 설계

이러한 접근 방식은 다양한 유형의 데이터 관련 활동에 적합할 수 있습니다. 스키마 설계 접근 방식의 선택은 데이터가 어떻게 사용될지에 따라 달라집니다.

데이터 웨어하우징을 위한 스타 스키마

스타 스키마는 데이터 웨어하우징에 사용되는 간단한 데이터 모델링 기법입니다. 포함하는 요소:

  • 데이터 분석에 적합하도록 여러 차원 테이블에 연결된 중앙 팩트 테이블
  • 고객, 제품, 시간과 같은 설명 데이터를 포함하며 팩트 테이블을 둘러싸는 차원 테이블

스타 스키마 데이터 모델링을 사용하는 이유:

  • 쿼리하고 이해하기 쉬움
  • 온라인 분석 처리(OLAP)에 적합
  • 비즈니스 인텔리전스 시스템에서 널리 사용됨

스타 스키마 패턴은 데이터 웨어하우스 아키텍처의 기본입니다.

스노우플레이크 스키마

눈송이 스키마에서는 차원 테이블을 여러 차원 테이블로 분할하여 데이터를 정규화함으로써 스토리지 요구사항을 줄입니다.

스타 스키마 대신 스노우플레이크 스키마를 사용할 때의 이점은 다음과 같습니다.

  • 정규화를 통한 스토리지 효율성 향상
  • 중복 데이터 감소
  • 추가 조인으로 인한 쿼리 복잡성 증가

스노우플레이크 스키마 디자인은 차원의 데이터가 여러 컨텍스트에서 공유되거나 더 많이 정규화되어야 할 때에도 사용할 수 있습니다. 스타 스키마와 스노우플레이크 스키마 패턴 모두 차원 테이블로 둘러싸인 중앙 팩트 테이블을 포함합니다.

계층적 스키마

계층적 스키마는 계층적 모델을 사용하여 데이터가 부모-자식 관계가 있는 트리형 구조로 구성되며, 각 자식은 하나의 부모를 갖습니다.

이러한 유형의 스키마는 조직 구조나 XML 문서와 같이 고유한 계층 구조를 가진 데이터에 가장 적합합니다. 계층적 스키마는 관계형 스키마보다 유연성이 떨어지며 다대다 관계를 처리할 수 없습니다. 계층적 모델이 대부분 관계형 데이터베이스로 대체되었지만 이 스키마는 일부 애플리케이션에서 여전히 사용됩니다.

NoSQL 스키마 설계

NoSQL 데이터베이스에도 스키마 설계 고려 사항이 있습니다. 관계형 데이터베이스와 달리, 데이터베이스에 연결하고 데이터를 저장하기 전에 스키마가 필요하지 않을 수 있습니다.

NoSQL 데이터베이스에 대한 가장 일반적인 스키마 디자인 패턴은 다음과 같습니다.

  • 문서 저장소
  • 키-값 저장소
  • 그래프 데이터베이스

이러한 시스템은 유연성과 확장성을 우선시하지만, 기본 내장 일관성 보장은 더 적게 제공하는 경우가 많습니다. 벡터 기반 검색 및 유사성 쿼리를 포함한 최신 애플리케이션은 벡터 데이터베이스에서 이러한 장단점을 더욱 확장합니다. NoSQL 데이터베이스와 기존의 관계형 데이터베이스 스키마 설계 중 어떤 것을 언제 사용해야 하는지 이해하는 것은 데이터베이스 설계자에게 중요합니다.

단계별 데이터베이스 스키마 설계 프로세스

데이터베이스 스키마 설계는 비즈니스 요구 사항을 이해하는 것부터 작동하는 데이터베이스를 구현하는 것까지 이어지는 순환적인 프로세스입니다.

요구사항 수집 및 분석

프로세스는 비즈니스 요구 사항을 이해하는 것부터 시작됩니다. 이 단계에서 팀은 다음을 수행합니다.

  • 비즈니스에서 저장해야 할 데이터를 식별합니다.
  • 주요 데이터 포인트, 데이터의 세부 정보 및 데이터 간의 관계를 식별합니다.
  • 이해관계자로부터 요구사항을 수집하고 기존 문서를 검토합니다
  • 데이터 액세스 방법 등 데이터의 기능을 식별합니다.

나중에 이러한 고려 사항을 구현하기는 어렵기 때문에 프로세스에서 확장성, 민감한 데이터의 보안 및 모든 규칙과 법률을 고려하는 것이 중요합니다.

엔터티 관계 다이어그램을 사용한 개념적 설계

비즈니스 요구사항이 식별되면 팀은 데이터베이스에 있는 데이터의 상위 수준 모델인 엔터티 관계 다이어그램을 생성합니다. 개념적 데이터베이스 설계에서 팀은 다음을 수행합니다.

  • 고객, 주문, 제품 등 데이터베이스의 주요 엔터티를 식별합니다.
  • 일대다 및 다대다와 같은 엔터티 간의 관계를 식별합니다.
  • 데이터베이스에 있는 엔터티의 속성을 식별합니다.

엔터티 관계 다이어그램은 비즈니스 담당자와 기술 담당자가 합의에 도달하는 데 유용한 시각적 표현을 제공합니다. 다음 단계로 넘어가기 전에 개념적 설계가 실제 요구 사항과 일치하는지 확인해야 합니다.

논리적 스키마 개발

논리적 스키마는 개념적 모델을 구현 준비가 된 상세한 데이터베이스 스키마로 변환합니다.

이 단계에서는 다음을 수행합니다.

  • 각 속성에는 데이터 유형이 할당됩니다.
  • 각 레코드에 대해 기본 키 값이 설정됩니다.
  • 테이블 간의 관계를 위해 외래 키가 설정됩니다
  • 데이터베이스 정규화는 중복 데이터를 제거하는 데 사용됩니다.

이 단계에서 논리적 데이터베이스 스키마는 구현하기에 충분히 정확하지만 특정 데이터베이스 시스템과는 독립적입니다. 논리적 스키마는 개념적 스키마와 물리적 스키마 사이의 다리 역할을 합니다.

물리적 스키마 구현

물리적 스키마는 특정 데이터베이스 기술 시스템에서의 데이터베이스 구현을 나타냅니다.

이 단계에는 일반적으로 다음이 포함됩니다:

  • 데이터베이스를 구현할 데이터베이스 시스템 선택
  • 데이터 정의 언어를 사용하여 테이블 및 관계 생성
  • 인덱스, 파티션 등을 사용하여 데이터 저장소 최적화
  • 데이터베이스 연결 프로토콜, 데이터베이스 관리자의 사용자 권한 등을 사용하여 연결 설정

데이터베이스 스키마를 다른 시스템에서 또는 기존 시스템으로 이전하는 경우 데이터 마이그레이션은 중요한 단계입니다. 물리적 데이터베이스 스키마는 대상 데이터베이스 관리 플랫폼의 특정 요구사항을 고려해야 합니다.

데이터베이스 정규화 및 데이터 무결성

정규화와 데이터 무결성은 밀접한 관련이 있으며 데이터의 정확성, 일관성, 유지 관리 용이성을 보장하는 데 도움이 됩니다.

데이터베이스 정규화 이해하기

데이터베이스 정규화는 중복성을 줄이고 데이터 무결성을 개선하기 위해 데이터를 구성하는 프로세스입니다. 정규화는 1NF, 2NF, 3NF를 포함한 점진적인 정규형을 사용하여 일반적으로 설명됩니다.

데이터베이스 정규화는 큰 테이블을 더 작은 관련 데이터 테이블로 나눕니다. 다음과 같은 이점이 있습니다.

  • 중복 데이터 감소
  • 데이터 일관성 향상
  • 데이터 업데이트 및 데이터베이스 관리 간소화

성능을 위한 비정규화

경우에 따라 정규화로 인해 속도가 느려질 수 있습니다. 비정규화는 다음과 같은 데이터베이스 설계 기법입니다:

  • 비용이 많이 드는 조인을 줄이기 위해 중복성이 사용됩니다.
  • 쿼리 속도가 정규화보다 더 중요합니다.
  • 데이터 무결성과 속도 간의 트레이드오프가 관리됩니다.

비정규화는 데이터 웨어하우징 및 분석, 그리고 온라인 분석 처리(OLAP) 워크로드를 위한 스타 스키마 및 스노우플레이크 스키마 설계에 사용됩니다.

스키마 디자인 모범 사례

좋은 스키마 설계의 목표는 일반적인 데이터 액세스 패턴을 수용하는 것입니다. 대부분의 경우, 이는 이해하기 쉽도록 정규화된 스키마를 설계한 다음, 성능이나 사용성을 위해 약간의 변경을 가하는 것을 의미합니다.

일관성은 사용성에도 중요하며, 여러 사람이 혼동 없이 데이터로 작업할 수 있도록 해줍니다. 스키마 설계는 일회성 프로세스가 아닙니다. 작은 한계가 큰 한계가 되는 것을 방지하기 위해 스키마를 자주 검토하고 변경하는 것이 중요합니다.

확장 가능한 스키마를 위한 설계 원칙

확장 가능한 데이터베이스 스키마는 몇 가지 간단한 개념을 기반으로 합니다.

  • 데이터 관계 및 액세스 패턴을 이해합니다. 데이터가 실제로 요청, 조인, 사용되는 방식에 따라 스키마를 설계하세요.
  • 일관된 명명 규칙을 사용하세요. 테이블, 열, 제약 조건에 예측 가능한 이름을 사용하여 스키마를 설계하세요.
  • 미래의 성장을 계획하세요. 새로운 데이터 소스에 충분히 유연한 스키마를 설계하세요.
  • 스키마 설계 결정을 문서화합니다. 이는 데이터베이스 설계자와 데이터베이스 관리자가 향후 의사 결정을 내리는 데 도움이 됩니다.

이러한 개념은 대규모 웨어하우스 데이터베이스에서 중요합니다. 데이터베이스 스키마 설계와 데이터 아키텍처 원칙 간의 관계를 이해하면 확장성이 보장됩니다.

보안 및 액세스 제어

스키마 설계는 데이터 보안 및 거버넌스에서도 핵심적인 역할을 합니다.

  • 민감한 데이터를 조기에 분류하세요. 위험 고려 사항, 비즈니스 규칙 및 비즈니스 요구에 따라 데이터에 대한 액세스를 결정하세요.
  • 스키마 수준 권한을 적용하세요. 데이터베이스 사용자의 데이터베이스 객체에 대한 액세스를 제어하세요.
  • 뷰를 사용하여 데이터 노출을 제어하세요. 필요한 기능은 제공하면서 공유되는 항목에 대한 액세스는 제한하세요.
  • 정기적으로 액세스를 감사하세요. 역할이 변경될 때 데이터베이스 사용자와 권한을 모니터링하세요.

포괄적인 데이터 거버넌스 전략을 구현하는 조직의 경우 데이터베이스 스키마 권한은 기본적인 제어 수단입니다.

일반적인 스키마 설계 실수 피하기

스키마 디자인 실수는 데이터 품질 및 성능 문제로 이어질 수 있습니다.

  • 정규화 건너뛰기: 중복된 데이터 및 유지 관리 문제로 이어집니다.
  • 스키마를 지나치게 복잡하게 만들기: 불필요한 테이블이 추가되고 개발 속도가 느려집니다.
  • 인덱싱 전략 무시: 쿼리 속도를 저하시킵니다
  • 약한 참조 무결성: 불완전하고 잘못된 외래 키는 데이터 불일치를 유발합니다.
  • 과도한 구조 수정 또는 유연성: 구조와 유연성의 균형을 맞추는 것이 중요합니다

SQL에서 데이터베이스 스키마 작업하기

SQL은 데이터베이스 스키마를 정의하는 데 사용됩니다. SQL은 데이터베이스 스키마가 생성 및 변경되는 방법과 데이터가 저장되거나 액세스되는 방식에 맞춰 최신 상태로 유지되는 방법에 대한 지침을 제공합니다.

SQL 스키마 생성 및 수정

SQL에서 가장 일반적인 데이터베이스 스키마 관리 작업에는 기본 데이터 정의 언어(DDL) 명령어 세트가 포함됩니다.

스키마 및 테이블 만들기: CREATE SCHEMA 문은 네임스페이스를 만들고 CREATE TABLE은 스키마에 데이터베이스 테이블을 만듭니다. SQL 스키마 명령어는 데이터베이스 관리에 필수적입니다.

구조 및 관계 정의: 열, 데이터 유형, 기본 키, 외래 키 및 기타 제약 조건은 테이블 정의에 정의됩니다. 스키마는 데이터베이스 객체들이 어떻게 관련되는지를 정의합니다.

기존 테이블 수정: ALTER TABLE 문을 사용하면 SQL 데이터베이스 구조 내에서 열을 추가하거나 데이터 유형 및 제약 조건을 변경할 수 있습니다.

스키마 객체 제거: DROP TABLE 또는 DROP SCHEMA 문은 잠재적인 데이터 손실을 완전히 인지한 상태에서 테이블 또는 스키마를 삭제합니다.

이것들은 Spark SQL과 같은 분산 분석 엔진에서 사용되는 가장 중요한 SQL 스키마 관리 명령어입니다.

다양한 데이터베이스 시스템의 스키마 관리

SQL이 표준임에도 불구하고 스키마 관리는 데이터베이스마다 다를 수 있습니다.

Oracle Database 대 SQL Server: Oracle Database 스키마는 데이터베이스 사용자와 연결되는 반면 SQL Server 스키마는 별도의 조직 단위입니다. 데이터베이스 관리 시스템 아키텍처는 플랫폼마다 다릅니다.

기타 데이터베이스 용어: MySQL에서는 데이터베이스라고 부르고 PostgreSQL에서는 스키마라고 부릅니다. 각 데이터베이스 시스템에는 고유한 규칙이 있습니다.

이식성 문제: 서로 다른 데이터 유형, 제약 조건, 인덱싱 및 DDL 구문으로 인해 한 데이터베이스 시스템에서 다른 데이터베이스 시스템으로 스키마를 이동하기 어려울 수 있습니다.

이러한 차이점 때문에 설계가 표준 SQL 관행을 따르는 경우에도 데이터베이스 스키마를 관리하려면 종종 데이터베이스별 조정이 필요합니다. 데이터베이스 관리자는 이러한 플랫폼 차이점을 이해해야 합니다.

최신 데이터 아키텍처의 데이터베이스 스키마

데이터베이스 스키마는 데이터 웨어하우스, 데이터 레이크, 스트리밍 플랫폼을 포함한 최신 데이터 시스템 전반에서 사용됩니다. 사용되는 데이터베이스 기술은 다르지만 스키마를 사용하는 목적은 데이터에 구조, 의미, 일관성을 제공한다는 점에서 동일합니다.

클라우드 데이터 플랫폼의 스키마

클라우드 데이터 플랫폼은 특히 공유 데이터와 사용자에 걸쳐 데이터베이스 스키마를 대규모로 관리합니다.

핵심 사항:

  • 확장 및 공유: 스키마를 사용하면 중앙 집중식 구조와 보안을 통해 대규모 다중 사용자 작업을 수행할 수 있습니다.
  • 컴퓨팅과 스토리지의 분리: 물리적 스키마 선택은 인프라와 분리되어 독립적으로 최적화할 수 있습니다.
  • 서버리스 데이터베이스 모델: 물리적 데이터베이스 관리가 보이지 않는 경우가 많아 논리적 스키마에 집중할 수 있습니다.

이러한 패턴은 Unified Data Warehouse 모델을 중심으로 구축된 클라우드 네이티브 분석 플랫폼에서 일반적입니다. 최신 클라우드 플랫폼은 데이터베이스 스키마를 핵심 거버넌스 계층으로 취급합니다.

스키마 변화 및 버전 관리

프로덕션 환경에서 데이터베이스 스키마를 변경하는 것은 어려우며, 특히 여러 테이블과 워크로드가 데이터베이스 스키마에 종속된 경우에는 더욱 그렇습니다.

데이터베이스 스키마를 발전시키는 일반적인 접근 방식은 다음과 같습니다.

  • 데이터베이스 스키마에 대한 하위 호환성 변경
  • 블루-그린 배포를 사용하여 데이터베이스 스키마 발전시키기
  • 데이터 사전을 사용하여 데이터베이스 스키마를 버전 관리하기

이러한 관행은 최신 데이터 엔지니어링 환경에서 신뢰할 수 있는 스키마 변화를 지원합니다.

데이터 거버넌스와의 통합

데이터베이스 스키마는 데이터 거버넌스 및 규정 준수에서 중요한 역할을 합니다.

데이터베이스 스키마는 다음을 제공합니다.

  • 스키마를 통한 데이터 정의 및 구조는 메커니즘을 정의합니다.
  • 데이터베이스 관리 메타데이터
  • 문서화를 위한 데이터 사전 리소스

이러한 데이터베이스 스키마 기능은 Unity Catalog에 구현된 대로 데이터 거버넌스 환경 생성을 보장합니다. 스키마 데이터는 데이터 구성 및 데이터베이스 관리를 위한 신뢰할 수 있는 단일 소스가 됩니다.

실제 예시: 전자상거래 데이터베이스 스키마

간단한 전자상거래 시스템은 실제 시나리오에서 데이터베이스 스키마가 어떻게 적용되는지 확인할 수 있는 실용적인 방법을 제공합니다.

트랜잭션 스키마: 핵심 테이블 및 관계

트랜잭션 전자상거래 시스템에서 데이터베이스 스키마는 온라인 트랜잭션 처리를 위해 주문 접수 및 고객 관리와 같은 일상적인 운영을 지원하도록 설계됩니다.

일반적인 관계형 데이터베이스 스키마에는 다음이 포함됩니다.

  • 고객: 고객 정보를 저장합니다
  • 주문: 개별 구매 기록을 저장합니다
  • 제품: 판매 가능한 품목을 정의합니다.
  • OrderItems: 주문과 제품을 연결하고 수량과 가격을 기록합니다

이러한 데이터베이스 테이블은 기본 키와 외래 키를 사용하여 연결됩니다.

  • Orders 테이블에는 고객을 참조하는 외래 키가 포함됩니다.
  • OrderItems 테이블에는 Orders와 제품을 모두 참조하는 외래 키가 포함됩니다.

이 구조는 일대다 관계를 적용하고, 중복성을 최소화하며, 트랜잭션 워크로드에 대한 데이터 무결성을 유지합니다. 데이터베이스 스키마 설계는 온라인 트랜잭션 처리 운영 전반에 걸쳐 데이터 일관성을 보장합니다.

분석 스키마: 스타 스키마 패턴

보고 및 분석을 위해 이 트랜잭션 스키마는 종종 스타 스키마 패턴으로 변환됩니다.

이 패턴에서는:

  • Orders 테이블은 주문 총액 및 수량과 같은 측정값을 저장하는 중앙 팩트 테이블 역할을 합니다.
  • '고객'과 'Products' 테이블은 설명적인 컨텍스트를 제공하는 차원 테이블 역할을 합니다

이 스키마 설계는 온라인 분석 처리를 사용하는 데이터 웨어하우스 및 비즈니스 인텔리전스 시스템에서 쿼리를 단순화하고 효율적인 보고를 지원합니다.

정규화와 비정규화의 장단점

스키마 설계는 데이터 무결성, 쿼리 성능, 스토리지 효율성 간의 균형을 맞춥니다.

  • 트랜잭션 스키마는 일반적으로 정규화를 선호하여 중복을 줄이고 관련 데이터 전반의 일관성을 보장합니다.
  • 분석 스키마는 쿼리 속도를 개선하고 분석을 단순화하기 위해 선택적 비정규화를 사용하는 경우가 많습니다

스타 스키마 및 차원 모델링 결정에 대한 자세한 내용은 차원 데이터 웨어하우스 구현 블로그를 참조하세요.

결론: 효과적인 데이터베이스 스키마 구축

잘 설계된 데이터베이스 스키마는 신뢰할 수 있는 고성능 데이터 시스템의 기초가 됩니다. 개념적 의도, 논리적 구조 및 물리적 구현을 분리함으로써 데이터베이스 스키마는 명확성, 확장성 및 장기적인 유지 관리성을 지원합니다.

스키마 설계는 설계, 테스트, 개선의 반복적인 프로세스로 진행할 때 가장 효과적입니다. ERD, 데이터베이스 모델링 도구, SQL 클라이언트와 같은 도구가 이러한 발전을 지원합니다. 데이터베이스 관리자와 데이터베이스 설계자는 전체 프로세스에 걸쳐 협력하여 데이터베이스 스키마 설계가 모든 요구사항을 충족하는지 확인해야 합니다.

계속 학습하려면 스키마 설계를 연습하고, 데이터베이스 정규화에 대한 이해를 심화하며, 다양한 스키마 설계 패턴을 탐색하세요. 더 폭넓은 기초를 원하시면 데이터 아키텍처 용어집을 참조하세요.

데이터베이스 스키마 원칙이 최신 데이터 아키텍처 데이터 모델링 관행에 어떻게 적용되는지 이해하면 조직의 요구사항에 맞춰 확장되는 더 효과적인 데이터 시스템을 구축하는 데 도움이 됩니다. 관계형 데이터베이스, NoSQL 데이터베이스 또는 하이브리드 시스템 중 어떤 것을 사용하든 강력한 데이터베이스 스키마 설계는 여전히 필수적입니다.

    용어집으로 돌아가기