[국비학원 기록/DB] 데이터베이스 설계02. 정규화, 제 1, 2, 3 정규화
my code archive
article thumbnail
반응형
반응형
​함수적 종속성

0.함수적 종속성

1)릴레이션(Relation)의 속성(Attribute)들 사이의 관계 표현,

주로 기본키(primary key)와 다른 non key 속성들 사이의 관계 표현

-결정자(Determinant)라고도 함.

 

2)함수적 종속성의 분석을 통해 정규화를 실행한다!!

 

3)함수 : 입력 X의 경우 반드시 1개의 출력 Y 결정

-예) 통화(달러) --> 환율
      사원아이디 --> 사원명
      주민등록번호 --> 성명
      학번 --> 소속학과

 

정규화

1.정규화(Normalization)의 개념

1)관계형 데이터베이스의 설계에서 데이터 중복을 최소화하게 구조화하는 프로세스

 

2)함수적 종속성을 이용해서 연관성있는 속성들을 분류하고

  각 릴레이션에서 이상 현상이 생기지 않도록 하는 과정

 

3)함수적 종속성(FD) 등과 같은 이론에 근거하여 관계형 데이터베이스의 테이블의

  삽입, 삭제, 갱신, 이상(anomaly)현상 발생을 최소화하기 위해 좀더 작은 단위의 테이블로 설계하는 과정

-조회              => 처리 조건에 따라 성능 향상 or 성능 저하
-입력/수정/삭제 => 무조건 성능 향상

 

2.정규화의 목적

1)불필요한 데이터를 제거, 데이터 중복을 최소화

 

2)무결성 제약조건의 시행을 간단하게 하기 위해

 

3)이상(anomaly)현상을 방지하기 위해 테이블 구성을 논리적으로 직관적으로 만들기 위해

-삭제 이상(deletion anomaly) : 튜플을 삭제함으로써 유지되어야 하는 정보까지도 연쇄적으로 삭제되는 경우

 

4)이상 현상이 발생하는 원인

-관련없는 속성들을 다 모아서 하나의 릴레이션으로 만들었기 때문에.

-정규화를 통해 릴레이션을 관련이 있는 속성들로만 구성되는 작은 여러 개의

릴레이션으로 분해해야함.

-속성들간의 관련성 판단 : 함수적 종속성

=>하나의 릴레이션에는 하나의 함수적 종속성만 존재하도록 정규화 필요.

 

3.정규화 효과 및 장점

1)상호 종속성이 강한 데이터 요소들을 분리, 독립된 개념(엔티티,테이블)으로

정의를 하게됨에 따라 high cohesion & loose coupling 원칙에 충실해짐.

2)non key 데이터 요소의 중복이 최소화됨.

 

정규형, 제1 ~ 3 정규화(형)

4.정규형(NF : Normal Form)

-정규화 결과에 의해 도출된 데이터 모델

 

 

5.1NF (First Normal Form, 제 1정규화)

1)릴레이션에 속한 속성들은 원자값(atomic value, 하나의 값)을 가져야 한다.

2)복수의 속성값을 갖는 속성들을 분리.

3)속성의 원자값 확보

 

 

 

7. 2NF(Second Normal Form, 제 2 정규화,제 2 정규형)

1)1NF를 만족하고 모든 Non-key 컬럼은 기본키 전체에 종속되어야 함.


2)기본키에 종속적이지 않거나 기본키 일부 컬럼(들)에만 종속적인 컬럼은 분리되어야 함.


3)함수적 종속성(Functional Dependency)분석 (예)
  -주문 일자는 고객 아이디와 주문 순번으로 결정됨.
   =>기본키를 구성하는 속성(열,컬럼)전부에 함수 종속이 존재함.


  -고객명 : 고객아이디로만 결정됨.
   =>부분 함수 종속됨.
       기본키를 구성하는 열의 일부에만 함수 종속이 존재함.(제2정규화 위반)


 -고객등급 : 고객아이디로만 결정됨.
   =>부분 함수 종속됨.
       기본키를 구성하는 열의 일부에만 함수 종속이 존재함.(제2정규화 위반)

 


8. 3NF(Third Normal Form,제 3 정규화,제 3 정규형)

1)제 2정규형을 만족하고 일반 속성들간에도 종속 관계가 존재하지 않아야함.

 

2)일반 속성들간 종속관계가 존재하는 것들은 분리되어야함.

 

3)함수적 종속성(Functional Dependency)분석 (예)
   -고객명은 고객아이디로 결정됨
     =>부분 함수 종속 아님. 함수 종속이 존재함.
   -나이는 고객아이디로 결정됨.
    =>부분 함수 종속 아님. 함수 종속이 존재함.
   -직업명은 직업코드로 결정됨.
    =>일반 속성(컬럼)인 직업코드에 함수 종속이 존재함.(제3정규형 위반)
 

9. 제 4,5 정규형

1)실무에서 거의 쓰이지 않음.

2)제 3정규형까지만 이해하면 된다.

 

 

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형