Computer Science/Database :: 데이터베이스

데이터베이스 7강 :: 함수적 종속성, 정규화

HJPlumtree 2022. 3. 16. 11:10

데이터베이스 7강을 보며 배운내용

 

 

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

데이터 중복

일관성 유지 어려운 릴레이션

릴레이션은 표다

 

 

좋은 릴레이션

1. 프로그래머 관점

=> 어떻게 데이터 저장해야 하나

 

2. 릴레이션의 스키마가 효율적으로 실세계를 반영하고 있는가?

고려사항

  • 한 릴레이션 내의 컬럼 간의 관계 분석
  • 원하지 않는 데이터 종속과 중복 제거
  • 새로운 컬럼들이 추가될 때 최대한 독립성 유지

 

 

함수적 종속성 정의

릴레이션 인스턴스의 속성(컬럼)들 간의 연관관계 표현한 것

릴레이션 효율성을 향상시켜 좋은 릴레이션으로 변환한다는 개념

 

항수적 종속성 추론 규칙

1. 암스트롱 공리(Armstrong's axiom)

규칙은 외워야 한다

 

2. 카노니컬 커버

함수적 종속성 추론 규칙으로 확장된 클로저에는

당연한 종속성과 중복된 종속성이 포함되어 있다

=> 불필요한 함수적 종속성을 제거해서 표준형으로 변환하고 정규화 수행

조건

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

 

 

정규화(Nomalization)

특정 정규형 조건을 만족하도록

릴레이션과 속성을 재구성 과정

=> 이상 현상을 최소화 하도록 특정 조건을 갖춘 릴레이션 형식

 

 

정규형 뭐가 좋나

  • 모든 릴레이션 효과적 표현
  • 검색 알고리즘의 효율성 증가
  • 이상 현상 발생 방지
  • 릴레이션 재구성의 필요성 축소

 

 

제 1정규형

  • 가장 단순한 정규형
  • 관계형 모델에 따라 자동 적용되는 정규형
  • 모든 속성의 도메인이 원자값만 갖는 상태

 

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

직사각형과 화살표로 직관적으로 

릴레이션 내의 종속 관계 표현

 

 

제 2정규형

제 1정규형 만족하고 있는 상태에서

기본키의 부분집합이 특성 속성을 종속하고 있지 않은 상태

=> 릴레이션 분해

 

릴레이션 무손실 분해(Lossless Decomposition)

 

 

제 3정규형

제 2정규형 만족하고,

기본키가 아닌 속성들이 어떤 키에도 이행적 종속이 없는 것

 => 이행적 종속성을 없애면 된다

 

 

BC 정규형

제 3정규형 만족하고,

X -> Y 형태의 함수정 종속성에 대해서 X가 수퍼키인 상태

 

 

역정규화의 개념

정규화의 반대 과정

정규화된 릴레이션의 통합을 수행

데이터 접근 성능을 개선하기 위해서

 

왜 사용하나?

정규화된 릴레이션은

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

 

정규화가 안된 릴레이션과

정규화 => 역정규화는 구조나 성능이 차이가 난다