MySQL | 데이터 모델링
포스트
취소

MySQL | 데이터 모델링

데이터 모델링

  • 개념적 데이터 모델링
    • 업무 중심적, 포괄적 수준의 모델링
    • 개념적 스키마
      • 개체, 속성, 식별자, 관계 도출
  • 논리적 데이터 모델링
    • 개념적 데이터 모델링의 상세 단계
    • 개념적 스키마 -> 릴레이션 스키마 매핑
      • Relation, Attribute, Primary Key, Foreign Key
  • 물리적 데이터 모델링
    • 기본키, 컬럼 순서, 컬럼명 매핑 등을 결정
    • 인덱스, 제약조건, 파티셔닝 등 세부사항 정의

정규화

이상 (Anomaly)

  • 삽입 이상
    • 데이터 삽입시 원치않는 데이터를 반복 삽입해야 하는 경우
  • 삭제 이상
    • 삭제시 삭제가 불필요한 다른 정보도 함께 삭제되는 경우
  • 수정 이상
    • 수정 시일부 레코드만 변경되어 데이터 일관성이 깨지는 경우

함수적 종속성

  • 릴레이션에서 속성간 관계 : X가 존재하면, Y가 결정됨 (X->Y)
    • ex. (학번->이름), (전화번호->사용자), (전화번호, 개설일)
  • 완전 함수적 종속성
    • 기본키 아닌 속성기본키에 종속
  • 부분 함수적 종속성
    • 기본키 아닌 속성이, 기본키의 일부에 종속
  • 이행 함수적 종속성
    • X->Y->Z 인 관계

정규화

  1. 제 1정규형 (1NF)
    • 테이블의 각 속성은 원자 값으로 구성
  2. 제 2정규형 (2NF)
    • 부분 함수적 종속성 제거 (완전 함수적 종속성으로 변경)
  3. 제 3정규형 (3NF)
    • 이행 함수적 종속성 제거

반정규화

  • 정규화의 반대 개념이나 정규화를 푸는 개념이 아님에 주의
  • 중복 데이터를 하나 이상의 테이블에 추가

장점

  • 조인 수를 줄임
  • 검색 속도 상승

단점

  • 데이터 불일치
  • 더 많은 스토리지 필요
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
바로가기