CS

DB 관련 용어 정리( fact table, dimension table, transaction entity, master entity etc... )

프로일기꾼 2024. 5. 24. 11:05
회사 내 온보딩 기간을 거치면서, DB 관련하여 모르는 내용이 많다는 생각을 하게 되었다.
업무에 보다 잘 적응하기 위해 DB 관련 용어를 조사하여 정리하였다.

데이터 웨어하우징 영역에서 star 스키마와 snowflake 스키마는 방대한 양의 데이터를 효율적으로 구성하는 데 중요한 역할을 한다.

star schema

  • 좀 더 직관적임, 차원 테이블은 정규화 되지 않음. 팩트 테이블과 차원 테이블만 조인하여 SQL 쿼리를 더 간단하고 빠르게 만든다. 단순한 관계가 있는 데이터마트에 적합.
  • 단일 팩트 테이블이 여러 차원 테이블을 참조하여 별 모양과 유사한 패턴을 형성하는 데이터베이스 스키마의 한 유형.

snowflake schema

  • star 스키마에서 좀 더 정규화된 버전, 차원 테이블은 정규화된다. 중복 데이터가 없으므로 유지 관리가 더 용이. 데이터 웨어하우스에 적합.
  • star 스키마의 더 복잡한 변형으로, 차원 테이블이 정규화되어 여러 개의 관련 테이블이 눈송이와 유사한 패턴을 형성하는 스키마.
트랜잭션: 시간과 함께 생성되는 데이터를 기록한 것 -> 한 번 기록하면 변화하지 않음
마스터: 트랜잭션에서 참고되는 각종 정보 -> 상황에 따라 다시 쓰임
이 테이블들이 데이터 웨어하우스로 넘어오면서 팩트테이블(트랜잭션)과 디멘전테이블(마스터)이 된다.

fact table

  • 데이터 웨어하우스의 세계에서는 트랜잭션처럼 사실이 기록된 것을 팩트 테이블이라 한다.
  • 관계형 디비에서 판매이력과 같은 테이블들이 DW에서 팩트 테이블로 가공된다.
  • 지표 등을 산출하기 위해 집계의 대상이 되는 측정값, 수치 등을 저장
  • 비즈니스 측정값, 수치시간에 따라 증가하는 데이터
  • 값을 나타내는 테이블

dimension table

  • 데이터 웨어하우스의 세계에서는 팩트 테이블에서 참고되는 마스터 데이터 등을 디멘젼 테이블이라 한다.
  • 디멘전 테이블의 궁극적인 목적은 팩트 테이블을 설명하는 정보 테이블이라 할 수 있다.
  • 관계형 디비에서 마스터 테이블들이 디멘전 테이블로 가공된다.
  • 디멘전들은 비즈니스 프로세스에서 발생하는 이벤트에 대한 배경 설명을 담고 있음
  • '판매이력'이라는 팩트에 대하여 '누가, 어디서, 어떤 상품'을 구매했는지에 대한 정보
  • 값을 설명하는 테이블

master entity

  • dimension table과 동일한 개념
  • kernel entity라고도 하며, 사람, 물건, 장소, 개념처럼 원래부터 현실세계에 존재하는 엔티티.
  • 데이터베이스 설계와 데이터 관리에서 중요한 개념으로, 주로 중심적이고 핵심적인 정보를 담고 있는 엔티티를 의미
  • 다른 여러 엔티티와의 관계를 통해 데이터베이스의 구조와 데이터를 조직화하는 데 중요한 역할을 한다.
  • 마스터 엔티티는 데이터베이스의 구조와 데이터 관리에 있어서 핵심적인 역할을 합니다. 이들은 시스템의 중심 데이터를 포함하고 있으며, 다른 엔티티와의 관계를 통해 데이터의 일관성과 무결성을 유지합니다. 따라서 마스터 엔티티를 잘 정의하고 관리하는 것은 데이터베이스 설계와 운영에 있어서 매우 중요합니다.

transaction entity

  • tact table과 동일한 개념
  • 업무중심 엔티티라고 하며, 업무가 실행되면서 발생하는 엔티티(eg, 주문, 납품, 대금 청구)
  • 특정 트랜잭션과 관련된 정보를 담고 있는 데이터 개체로, "주문" 트랜잭션이 있을 경우, 이와 관련된 주문 ID, 주문 날짜, 고객 ID, 주문 항목 등이 트랜잭션 엔티티에 포함될 수 있다.
  • 트랜잭션 엔티티는 데이터베이스에서 하나의 트랜잭션과 관련된 데이터를 관리하고 저장하기 위한 구조적 단위를 의미합니다

Relation: 주체 - 객체 간 연결(eg, 고객(주체)이 상품(객체)을 구매(릴레이션))

Fact table = Transaction Table = Mapping Table

  • 트랜잭션 성격을 갖는 table 만이 N:M 관계를 가질 수 있음(ppt 그림 참조, 7p)
  • cf) 트랜잭션: 시간과 함께 생성되는 데이터를 기록한 것 -> 한 번 기록하면 변화하지 않음

SCD(Slowly Changing Dimension)

  • https://in-harvey-it.tistory.com/11
  • OLTP 환경 상에서 유의미한 결과를 뽑아낼 때, 과거와 현재의 분리 없이 데이터를 뽑게 된다. (eg, 부서를 이동한 사원에 대해 현재 부서 내에서 성과를 측정하려는 경우, 부서 이동 전의 성과는 고려대상이 아니지만, OLTP 환경 상에서는 고려대상임. 즉 과거-현재 개념 구분이 없음) 따라서 OLAP 환경을 구성할 때 위와 같은 상황을 해결하기 위해 탄생한 개념이 SCD이다.
  • SCD 테이블에서 데이터의 변화가 필요할 때, 위 블로그에 표시된 6가지 타입으로 구성할 수 있다고 한다.
  • OLAP(OnLine Analytical Processing)
    • 온라인 분석 처리
    • OLAP 환경에서는 이력 즉 과거와 현재의 개념이 중요하다.
  • OLTP(OnLine Transaction Processing)
    • 온라인 거래 처리
  • 이 둘(OLAP, OLTP)은 비즈니스 데이터를 저장하고 분석하는 데 도움이 되는 데이터 처리 시스템이다. OLAP는 다양한 관점에서 데이터를 분석할 수 있도록 데이터를 결합하고 그룹화한다. 반대로 OLTP는 트랜잭션 데이터를 안정적이고 효율적으로 대량으로 저장하고 업데이트한다. OLTP 데이터베이스는 OLAP 시스템의 여러 데이터 소스 중 하나일 수 있다.

데이터 마트

  • 데이터 마트란 조직의 사업부와 관련된 정보를 포함하는 데이터 스토리지 시스템.
  • 기업은 데이터 마트를 사용하여 부서별 정보를 보다 효율적으로 분석한다. 주요 이해 관계자가 정보게 입각한 결정을 신속하게 내리는 데 사용할 수 있는 요약 데이터를 제공한다.데이터 큐브
  • 일반적으로 데이터를 쉽게 해석하는 데 사용된다. 비즈니스 요구 사항의 특정 측정 값으로 차원과 함께 데이터를 나타낼 때 특히 유용하다.데이터 웨어하우스
  • 전체 비즈니스에 대한 정보를 저장하는 광범위한 데이터베이스 시스템.
    --> https://aws.amazon.com/ko/what-is/data-mart/

redo log buffer

  • DDL 또는 DML 문장에 의해 데이터베이스에 저장된 값 또는 데이터베이스 구조에 변경사항이 생기는 경우, 이러한 정보를 저장하는 메모리 영역
  • DB 장애 발생 시 복구에 사용되는 Log
  • 위 영역에 저장되는 정보들은 커밋되는 순간 LGWR(Log Writer)에 의해 '리두 로그 파일'로 저장된다. 다시 말해 메모리 영역에 저장된 데이터를 디스크에 쓴다고 보면 된다.undo log
  • 실행 취소 로그 레코드의 집합으로 트랜잭션 실행 후 Rollback 시 Undo Log를 참조해 이전 데이터로 복구할ㄹ 수 있도록 로깅 해놓은 영역이다.

ETL

  • https://cloud.google.com/learn/what-is-etl?hl=ko
  • 추출(Extract), 변환(Transform), 로드(Load)를 나타내며 조직에서 여러 시스템의 데이터를 단일 데이터베이스, 데이터 저장소, 데이터 웨어하우스 또는 데이터 레이크에 결합하기 위해 일반적으로 허용되는 방법.
  • ETL을 사용하여 기존 데이터를 저장하거나 집계(현재 더 일반적인 방식)하여 분석하고 이를 비즈니스 결정에 활용할 수 있다.

'CS' 카테고리의 다른 글

스레드, 프로세스  (0) 2024.01.10
Map 객체의 crud 작업 연산은 왜 O(1)일까?  (0) 2023.03.21