data-modeling

Data Modeling

  • 현실 세계의 데이터를 분석하고 설계하는 행위
  • 구현만을 위한 것이 아님 (+ 운영, 업무 분석 등)
  • 정보들을 일정한 표기법으로 표기
    • 업무 분석 + DB 규칙을 하나의 표기로 수행

유의점

  • 중복 제거
  • 유연성
  • 일관성

스키마 종류

  • 외부 스키마
    • 사용자 관점
    • 각기 다른 view를 가질 수 있음
    • 논리적인 부분
  • 개념 스키마
    • 모든 사용자의 관점을 통합
  • 내부 스키마
    • 물리적인 관점

독립

  • 논리적 독립: 개념 스키마가 외부 스키마에 영향을 못 줌
  • 물리적 독립: 내부 스키마가 개념 스키마에 영향을 못 줌

Entity

  • 특징

    • 해당 업무에 필요해야함
    • 유일한 식별자가 존재해야함
    • 인스턴스가 2개 이상이며, 영속적이여야함
    • 한개 이상의 관계가 필요
    • 2개 이상의 속성이 반드시 존재해야함
  • 분류

    • 기본: 다른 entity에 영향을 받지 않고 독립적으로 생성
    • 중심: 기본으로부터 발생
    • 행위: 업무가 실행될 때 발생
  • 속성

    • 이름: 전체에서 유일하게 짓는 것이 좋다.
  • 속성 분류

    • 기본: 본래의 속성
    • 설계: 설계 단계에서 데이터 관리를 위하 만든 것
    • 빠른 성능을 위해 원래 속성값으로 계산해서 저장

관계

  • 이름: 동사로 짓는 것이 좋다.
  • 분류
    • 존재에 의한 관계
    • 행위에 의한 관계

정규화

  • 정규화는 논리 데이터 모델에서 진행

  • 정규화 성능

    • 처리 성능은 증가
    • 조회 성능은 낮아짐
  • 1차: 모든 속성을 원자값으로 분리 & 비슷한 성격을 column이 나열된 것을 분리

  • 2차: entity의 기본키의 일부를 결정자로 쓰는 경우를 제거

  • 3차: entity 내부에서의 종속성을 제거

  • BCNF: 모든 결정자를 후보키 이도록 분리

  • 4차: 다치 종속 제거

  • 5차: 조인 종속 제거

식별자

  • 종류

    • 주 식별자 <-> 보조 식별자
    • 내부 <-> 외부
    • 단일 <-> 복합
    • 본질 <-> 인조 (인조 식별자는 중복데이터를 막기 힘듦)
  • 식별자 <-> 비 식별자

    • 식별자
      • 자식 주 식별자 구성에 포함됨
      • 부모 엔티티에 족속적
    • 비 식별자
      • 자식 일반 속성에 포함된
      • 독립적
      • Nullable