SQLD 데이터 모델링의 이해

데이터 모델링의 유의점

  • 중복
  • 비유연성
  • 비일관성

데이터베이스 스키마 3단계

  • 외부 스키마
    • 사용자 관점
    • 개별 사용자나 응용 프로그램이 보는 데이터의 뷰(View)
    • 전체 데이터베이스 중 일부만 보여주며 보안과 접근 권한 통제에 활용
  • 개념 스키마
    • 조직 전체 관점 (논리적 구조)
    • 데이터베이스의 전체 구조와 논리적 관계 정의
    • 테이블, 속성, 관계, 제약조건 등을 정의
    • DBMS가 관리하는 메인 스키마
    • ERD 모델
  • 내부 스키마
    • 물리적 저장 관점
    • 데이터가 실제로 어떻게 저장되는지를 기술
    • 저장 경로, 인덱스, 압축 방식 등 물리적 구조 포함
    • DBMS 내부에서만 사용

발생 시점에 따른 엔터티 분류

  • 기본 엔터티
  • 중심 엔터티
  • 행위 엔터티

엔터티 특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
  • 유일한 식별자에 의해 식별이 가능해야 한다. 
  • 두 개 이상의 인스턴스의 집합이어야 한다.
  • 엔터티는 업무 프로세스에 의해 이용되어야 한다.
  • 반드시 속성이 있어야 한다.
  • 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.

엔터티 분류

  • 기본 엔터티
    • 업무에서 독립적으로 존재할 수 있는 실체
    • 외부에 의존하지 않고 스스로 식별 가능
    • 가장 기본적인 데이터 저장 대상
  • 중심 엔터티
    • 기본 엔터티 간의 관계를 연결하는 중심 역할
    • 업무의 중심 흐름을 형성하며 여러 엔터티와 연결
    • 자체 식별자 (Primary Key) 를 가지고 있음
  • 행위 엔터티
    • 특정 행위나 이벤트를 기록하는 엔터티
    • 대부분 시간 속성과 함께 발생
    • 기록성, 이력성, 로그성 데이터
  • 관계 엔터티
    • n:m 관계를 해결하기 위해 새로 만든 엔터티
    • 두 개 이상의 엔터티 간 다대다 관계를 1:n, n:1 로 분해하면서 생김
    • 다른 엔터티의 PK를 외래키로 가짐

속성 명칭 부여

  • 해당 업무에서 사용하는 이름을 부여 한다.
  • 서술식 속성명은 사용하지 않는다. 
  • 약어 사용은 가급적 제한한다. 
  • 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.

식별자 관계

  • 자식 테이블의 기본키에 부모의 기본키가 포함
  • 부모 없이는 자식이 식별될 수 없음
  • 강한 결합(존재적 종속)

비식별자 관계

  • 부모의 키는 자식 테이블의 외래키(FK)로만 존재
  • 자식 테이블의 기본키에 부모 키가 포함되지 않음
  • 약한 결합(참조 관계)

식별자 분류

  • 주 식별자 
    • 엔터티의 대표 키
    • 해당 엔터티의 각 데이터를 고유하게 구분
    • 다른 엔터티에서 참조할 수 있음
  • 보조 식별자
    • 고유하게 구분은 가능하지만 대표키로 선택되지 않음
    • 참조에 사용되지 않음
  • 내부 식별자
    • 자체적으로 생성되는 식별자
    • 외부와 관계없이 생성
  • 외부 식별자
    • 다른 엔터티와의 관계를 통해 식별되는 키
    • 보통 부모의 식별자를 가져옴
  • 단일 식별자
    • 하나의 속성만으로 구성된 식별자
  • 복합 식별자
    • 2개 이상의 속성으로 구성된 식별자
  • 본질 식별자
    • 업무상 실제로 존재하는 값으로 식별
    • 현실 세계의 키를 반영
  • 인조 식별자
    • 업무상 의미 없는 번호를 인위적으로 부여

속성 분류

  • 기본 속성
    • 현실 세계에서 실제 존재하는 값을 저장하는 속성
    • 시스템에서 직접 입력 또는 저장되는 데이터
  • 설계 속성
    • 업무적으로 필요해서 설계자가 인위적으로 만든 속성
    • 현실엔 없지만 시스템 운영을 위해 필요
    • 주로 식별자(PK), 코드형 속성 등등
  • 파생 속성
    • 다른 속성에서 계산된 결과값
    • 저장하지 않고 필요할 때 계싼하거나 저장할 수 있음

 

'DB' 카테고리의 다른 글

NoSQL VS RDBMS 무엇이 다를까?  (0) 2025.05.27
SQL 기본 및 활용  (0) 2025.05.27
데이터 모델링(Data Model)  (0) 2025.04.30
인덱스(Index)와 쿼리 속도는 어떤 관계일까.  (0) 2025.02.14
'DB' 카테고리의 다른 글
  • NoSQL VS RDBMS 무엇이 다를까?
  • SQL 기본 및 활용
  • 데이터 모델링(Data Model)
  • 인덱스(Index)와 쿼리 속도는 어떤 관계일까.
memoryman
memoryman
memoryman 님의 블로그 입니다.
  • memoryman
    MEMORYMAN STACK
    memoryman
  • 전체
    오늘
    어제
    • 분류 전체보기 (55)
      • Dart (11)
      • Python (2)
      • C# (1)
      • DB (5)
      • Algorithm (1)
      • Project (4)
      • IT (12)
      • .NET (7)
      • Flutter (12)
  • 블로그 메뉴

    • 프로필
    • 방명록
    • 메모장
    • 자소서
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    D
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
memoryman
SQLD 데이터 모델링의 이해
상단으로

티스토리툴바