SQLD 공부 실전문제 오답노트 - PART 1 - CH1. 데이터 모델링의 이해

SQLD - Week 5 - 실전문제 Part1 - 1. 데이터 모델링의 이해

12번

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

  • 기본 -> 중심 -> 행위
    • 기본 : 독립적으로 생성됨, 고유한 주식별자를 가짐
      • 업무에 원래 존재하는 정보
      • 자식 엔터티를 가질수 있음
        • 상품, 회원
    • 중심 : 기본 엔터티에서 파생, 행위 엔터티를 생성
      • 업무에서 핵심 역할을 함
      • 데이터 양이 많이 발생
        • 주문, 매출, 계약
    • 행위 : 2개 이상의 엔터티에서 파생
      • 자주 내용이 바뀌거나 데이터 양이 증가
      • 분석 초기 단계보다 상세 설계단계/프로세스와 상관모델링을 진행하면서 도출
        • 주문내역, 이벤트 응모 이력

16번

정규화

  • 2차 정규화 : 1차정규형을 만족하고, 모든 non-key 컬럼은 PK 전체에 종속되어야 함

19번

속성명 부여 주의사항

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

22번

3단계 스키마 구조

  • ANSI-SPARC에서 정의한 3단계 스키마 구조
    1) 외부 스키마 : View 단계로 여러 사용자 관점으로 구성된 개인적 DB 스키마
    2) 개념 스키마 : 모든 사용자 관점을 통합한 전체 DB
    - 위 두 단계에서 논리적인 데이터 독립성을 고려
    3) 내부 스키마 : 물리적인 저장구조 - 데이터 저장구조, 컬럼 정의, 인덱스 등

  • 특징 : 데이터 독립성 보장

    • 논리적 독립성 : 개념 스키마 변경 -> 외부 스키마 영향 X
      • 논리적인 구조가 변경되어도 응용프로그램 영향도는 X
      • 사용자 특성에 맞게 변경 가능, 통합 구조의 변경도 가능
    • 물리적 독립성 : 내부 스키마 변경 -> 외부/개념 스키마 영향 X
      • 데이터베이스 파일 구조의 변화가 논리스키마에 영향을 주지 X
      • 데이터베이스 색인구조 변화가 응용프로그램에 영향을 주지 X

25번

두 엔터티 사이의 관계를 도출할때 확인해야할 사항

  • 두 개의 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
  • 두 개의 엔터티 사이에 정보의 조합이 발생하는가?
  • 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
  • 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?

27번

인조식별자

  • 인위적으로 만들어지는 식별자 (꼭 필요하지 않지만 관리의 편이성 등의 이유로 인위적으로 만들어지는 식별자)
    • 본질식별자가 복잡한 구성을 가질때 인위적으로 생성(후보 식별자중 PK로 선정할 만한게 없을때)
    • 꼭 필요한 경우에만 사용을 권장
  • 주로 각 행을 구분하기 위한 기본키로 사용
    • 자동으로 증가하는 일련번호 같은 형태
    • e.g. 매매 엔터티의 매매번호
  • 참고: 블로그

28번

  • 이름은 동명이인이 있을수 있기떄문에 주식별자로 사용하기 부적합함

34번

함수 종속성 Functional Dependency

  • 함수처럼 어떠한 값을 통해 종속 관계에 있는 다른 값을 유일하게 결정할수 있다
    • e.g. 테이블에 [생일], [나이]라는 컬럼이 존재할때
      • [나이]는 [생일]에 종속한다 : 생일을 알고 있으면 나이를 참조하지 않아도 나이를 결정할수 있음
  • 데이터베이스 설계단계에서 함수 종속 관계를 찾으면 중복된 데이터를 줄일수 있음

함수 종속의 성질(암스트롱의 공리 Armstrong’s axioms)

  • augmentation : X → Y이면, XZ → YZ
  • transitivity : X → Y이고 Y → Z이면, X → Z
  • reflexivity : Y $\sub$ X, X → Y
  • self-determination : X → X (자기 자신은 자신에 의해 함수 종속적이다)
  • union : X → Y이고 X → Z이면, X → YZ
  • decomposition : X → YZ이면, X → Y이고 X → Z

35번, 40, 41, 44번

정규화 단계

  1. 제1정규형(1 Normal Form: 1NF) : 엔터티의 모든 속성은 반드시 하나의 값만 가져야 한다
    • 유사한 속성이 반복되면 -> 1차 정규화!
    • 테이블의 컬럼은 하나의 값(원자값)을 갖도록 테이블 분해
  2. 제2정규형(2 Normal Form: 2NF) : 엔터티의 모든 속성은 반드시 모든 주식별자에 종속되어야한다
    • 어떤 속성이 일부 주식별자에만 종속되어있다면 -> 2차 정규화!
    • 부분 함수 종속성 제거 : 완전 함수 종속 만족
      • 릴레이션에서 종속자가 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 되어있을때
        • 기본키를 구성하는 속성 중 일부만 종속된 경우
  3. 제3정규형(3 Normal Form; 3NF) : 주식별자가 아닌 모든 속성간에는 서로 종속될수 없다
    • 2차 정규화를 진행한 테이블이행적 종속이 없도록 테이블을 분해하는 것
      • 이행적 종속 : A → B, B → C 성립할때 A → C가 성립하는 것
    • 이행함수 종속성 제거
    • 속성간에 종속되어있다면 -> 3차 정규화!
      • 기본키가 있는데 일반속성이 일반속성을 결정하는 경우
  4. 제4정규형 : 다중값 종속성 제거 -> 4차 정규화!