본문 바로가기
KNOU/요약정리

[데이터베이스시스템] 정규화

by bottlesun 2024. 5. 25.
728x90

잘못된 데이터베이스 모델링

데이터의 중복

  • 일관성 유지의 어려움
  • 저장 공간 낭비

갱신 이상

  • 삽입 이상 - 레코드 추가 시불필요한 컬럼의 값이 없이는 추가하지 못 하는 경우
  • 삭제 이상 - 삭제 시 의도하지 않았던 다른 데이터가 삭제 되는 경우
  • 수정 이상 - 중복 저장된 레코드를 수정 시 모두 반영이 안되어 데이터베이스의 일관성이 깨지는 경우

좋은 릴레이션의 개념

  • 컴퓨터 프로그래머적 관점에서의 모델링

→ 어떻게 데이터를 저장해야 하는가?

  • 릴레이션의 스키마가 얼마나 효율적으로 실세계를 반영하고 있는지 평가
  • 고려사항

→ 한 릴레이션 내의 컬럼 간의 관계 분석

→ 원하지 않는 데이터의 종속과 중복 제거

→ 새로운 컬럼들이 데이터베이스에 추가될 때, 기존 컬럼과의 관계 수정을 최소화

함수적 종속성

함수적 종속성의 정의

  • 릴레이션 인스턴스를 분석하여 속성들 간의 연관관계를 표현한 것
  • 릴레이션의 효율성을 향상시켜 좋은 릴레이션으로 변환하는데 이용되는 중요한 개념

함수의 종속성의 확장

  • 함수적 종속성은 릴레이션의 효율성 여부에 중요한 판단기준
  • 릴레이션의 인스턴스 만으로 내재된 모든 함수적 종속성을 찾아내기 어려움
  • 판별되지 않은 모든 함수적 종속성을 찾기위해 추론 규칙을 사용하여 함수적 종속성을 확장
  • 클로저(closure)

→ 판별된 함수적 종속성 집합으로부터 유추할 수 있는 모든 함수적 종속성 집합

함수적 종속성 추론 규칙

  • 암스트롱 공리 (Armstrong’s axiom)

카노니컬 커버

  • 함수적 종속성 추론 규칙으로 확장된 클로저에는 자명한 종속성과 중복된 종속성을 포함
  • 불필요한 함수적 종속성을 제거한 표준형으로 변환 후 정규화를 수행
  • 표준형 조건

→ F의 모든 함수적 종속성의 오른편 속성은 반드시 1개

→ F에서 X → A를 X의 진부분집합 Y에 대하여 Y → A로 교체 했을때, 그 집합이 F와 동등한 집합이 불가능

→ F에서 어떤 함수적 종속성을 제거했을 때, 그 집합이 F와 동등한 집합이 불가능

정규화

정규형

  • 이상 현상을 최소화 하도록 특정 조건을 갖춘 릴레이션의 형식
  • 정규형의 분류

정규화의 목적

특정 정규형의 조건을 만족하도록 릴레이션과 속성을 재구성하는 과정

  • 정규화의 기능

→ 데이터 베이스 내에 모든 릴레이션을 효과적으로 표현

→ 보다 간단한 관계 연선에 기초하여 검색 알고리즘을 효과적으로 작성할 수있도록 지원

→ 바람직하지 않은 삽입, 수정, 삭제 등의 이상 발생 방지

→ 새로운 형태의 데이터가 삽입 될 때 릴레이션 재구성의 필요성을 축소

제 1 정규형

  1. 가장 조건이 단순한 정규형
  2. 관계형 모델에 조건에 따라 자동 적용 되는 정규형 ( 함수적 종속성 x)

→ 릴레이션 스키마에서 정의된 모든 속성의 도메인이 원자값을 갖는 상태

제 1정규화가 필요한 릴레이션

번호 오픈 마감 목적
A-01 09:00,11:00 10:15,11:45 테스트
A-02 10:00,12:00 11:00,13:00 배포

→ 09:00 , 11:00 같이 원자 값을 갖지 않는 속성이 있으면 안된다.

제 1 정규화를 적용한 릴레이션

번호 오픈 마감 목적
A-01 09:00 10:15 테스트
A-01 11:00 11:45 테스트
A-02 10:00 11:00 배포
A-02 12:00 13:00 배포

→ 원자 값을 갖는 속성 제 1 정규형에 조건 충족

함수적 종속성 판별

임의의 릴레이션 스키마 R의 인스턴스 r(R)에 포함되는 서로 다른 . 두레코드 t1 , t2 와 속성 집합 X와 Y에 대해, t1[X] = t2[X] 일 때, t1[Y] = t2[Y] 이면 함수적 종속성 X→Y가 성립한다.

번호 오픈 마감 목적 관리자
A-01 09:00 10:15 테스트 관리자1
A-01 11:00 11:45 테스트 관리자1
A-02 10:00 11:00 배포 관리자2
A-02 12:00 13:00 배포 관리자2

함수적 종속성 다이어그램(FDD)

  1. 릴레이션 내의 속성간의 종속 관계를 직관적이고 이해하기 쉽게 도식화 한 표현 방식

→ 직사각형 : 속성 또는 속성 집합

→ 화살표 : 함수적 종속성

[ 목적 ] ——> [ 번호 ]

결정자 ——> 종속자

제 2 정규형의 정의

릴레이션이 제1 젱규형을 만족하고 기본키의 부분집합이 특정 속성을 종속하고 있지 않은 상태

→ 주어진 릴레이션의 인스턴스가 기본키가 아닌 속성들이 기본키에 완전히 종속되어 있는 상태

제2 정규형의 적용

관리자는 번호에게 완전히 종속이 되지 않은 상태라 중복이 될 수 있음.

→ 기본키에 완전히 종속되도록 릴레이션을 분해를 해야한다.

릴레이션의 무손실 분해

  1. 무손실 분해(lossless decomposition)

→ 스키마 R에 함수적 종속성 X→Y가 존재하고, X 와 Y가 같은 컬럼을 공유하지 않으면 R을 R - Y 와 XY로 분해

  1. 도크 관리 릴레이션 무손실 분해
  • {번호} → {관리자}
  • {번호} (공집합) {관리자} = (중복X)

→ 릴레이션1 - {번호} , {번호 , 관리자} 로 분해 를 할 . 수있다.

제2 정규화의 적용

릴레이션 1

번호 오픈 마감 목적
A-01 09:00 10:15 테스트
A-01 11:00 11:45 테스트
A-02 10:00 11:00 배포
A-02 12:00 13:00 배포

관리자 릴레이션

번호 관리자
A-01 관리자1
A-02 관리자2

제3 정규화의 정의

번호 오픈 마감 목적 관리자 담당자
A-01 09:00 10:15 테스트 관리자1 A
A-01 11:00 11:45 테스트 관리자1 A
A-02 10:00 11:00 배포 관리자2 B
A-02 12:00 13:00 배포 관리자2 B

→ 릴레이션이 제2 정규형을 만족하고, 기본키가 아닌 속성들이 어떤 키에도 이행적으로 종속되지 않은 상태

  • 이행적 종속성

X → Y 이고 Y → Z 이면 X → Z 이다.

제 3 정규화의 적용

릴레이션 1

번호 오픈 마감 목적
A-01 09:00 10:15 테스트
A-01 11:00 11:45 테스트
A-02 10:00 11:00 배포
A-02 12:00 13:00 배포

담당자 릴레이션

목적 담당자
테스트 A
배포 B

BC 정규형의 정의

릴레이션이 제3 정규형을 만족하고, 릴레이션에 성립하는 X→Y 형태의 모든 함수적 종속성에 대하여 X가 수퍼키 인 상태

BC 정규화의 적용

릴레이션 1

목적 오픈 마감
테스트 09:00 10:15
테스트 11:00 11:45
배포 10:00 11:00
배포 12:00 13:00

번호 릴레이션

목적 번호
테스트 A-01
배포 A-02

담당자 릴레이션

목적 담당자
테스트 A
배포 B

관리자 릴레이션

번호 관리자
A-01 관리자1
A-02 관리자2

역정규화의 개념

  1. 정규화

→ 릴레이션 분할을 통해 데이터의 중복성을 최소화 하는 과정

→ 사용 과정에서 많은 조인 연산을 유발

  1. 역정규화

→ 정규화의 반대 과정

→ 정규화를 통해 분리되었던 릴레이션을 통합하는 재조정을 수행 하고, 정보의 부분적 중복을 허용하는 기법

→ 데이터 접근 성능 개선 목적

  1. 정규화 되지 않은 스키마와 역정규화 스키마는 구별이 가능
728x90

댓글