본문 바로가기

자격증 공부/정보처리기사 실기

[흥달쌤] 정규화 정리

12. 다음 중 데이터베이스에서 데이터의 구조를 정의하는 데 사용되는 여러 가지 정규형 중에서,

각 행이 유일하며 각 컬럼의 값이 원자적인 값을 가져야 하는 정규형은 무엇인가?

   → 제 1 정규형

도부이결다조

 

  • 정규화를 사용하는 이유?
    • 이상현상이 발생하기 때문(대표적인 이상 현상 3가지)
      • 삽입 이상 : 어떤 데이터를 삽입할 때, 다른 데이터까지 같이 삽입되는 현상
      • 삭제 이상 : 컬럼 || 행과 같은 데이터를 삭제할 때, 연쇄적으로 삭제되는 현상
      • 갱신 이상 : 어떤 필드를 수정했을 때, 무결성이 깨지는 것(정보의 모순 발생)
        • 정보의 모순? ex. 각각 다른 테이블에 공통된 내용을 수정했으나, 같이 변경되는 것이 아닌 일부만 변경되는 현상

 

  • 함수적 종속 관계
    • 완전 함수 종속
    • 부분 함수 종속 : 중복 제거로 완전 함수 종속으로 만듦
      • 중복이 되면 이상현상 발생
    • 이행적 함수 종속 : x → y → z 라면 x → z라는 관계 성립, x+y || y+z로 나눔

 

  • 도메인이 원자값?
    • 하나의 레코드에 여러개의 값이 있을 경우, 잘라서 원자값으로 만들어 제 1 정규형을 만족시킴

 

  • 정규화를 할 경우 join(곱하기 연산) 현상 발생
    • 소규모 데이터일 경우는 괜찮지만 대규모 데이터를 관리할 경우, 성능 저하
      • 파티션(물리적인 독립 공간에서 나눔)/샤딩(분산 처리하여 나눔) : 나눔
      • 클러스터 : 비슷한 공간에 모아둠(조인 진행 시, 왔다갔다하는 일 없게)
      • 인덱스 : 목표를 빨리 찾아갈 수 있는 목차같은 것
      • 뷰 : 가상의 테이블
        • 외부 스키마(뷰) : 사용자에게 보이는 것(여러개로 나올 수 있음)
          • 외부 스키마와 개념 스키마 사이에는 '논리적 독립성'이 존재
            • 논리적 독립성 : 개념 스키마가 바뀌어도 외부 스키마에는 영향을 미치지 않음
        • 개념 스키마 : 하나의 제약 조건(단일)
          • 개념 스키마와 내부 스키마 사이에는 '물리적 독립성'이 존재
            • 물리적 독립성 : 내부 스키마가 바뀌어도 개념 스키마에는 영향을 미치지 않음
        • 내부 스키마 : 물리적 저장 장치

▶ 정규화로 성능이 저하될 경우, 반정규화(정규화를 위배/비정규화, 역정규화)로 성능 향상을 진행함

 

  • 설계
    • 개념 설계 : ERD, 도식화(모델링), 요구사항분석
    • 논리 설계(개념 설계 결과를 체계적으로 모음) : 정규화, 트랜잭션/인터페이스 설계
    • 물리 설계(저장 장치 입장에서 설계) : 성능 고려
      • 파티션, 샤딩, 클러스터, 인덱스, 뷰 작업을 진행 후, 안 될 경우 반정규화 수행