FD and Normalization

๋ฆด๋ ์ด์
 ์คํค๋ง๋ฅผ ์ค๊ณํ๋ ๋ช ๊ฐ์ง ๊ฐ๋ต์ ์ธ ์ง์นจ
๋จผ์  ์ข์ ๋ฆด๋ ์ด์
 ์ค๊ณ์ ๊ดํ ๊ฐ๊ด์ ์ธ ์ง์นจ์ ๋
ผ์ํ ํ, ํจ์์  ์ข
์์ฑ๊ณผ ์ ๊ทํ ๊ฐ๋
์ ๊ดํด ๋
ผ
์ํจ
  - ์ ๊ทํ์ ์ข
๋ฅ
    
      - 1NF (์ 1์ ๊ทํ)
 
      - 2NF (์ 2์ ๊ทํ)
 
      - 3NF (์ 3์ ๊ทํ)
 
      - BCNF (Boyce-Codd ์ ๊ทํ)
 
      - 4NF (์ 4์ ๊ทํ)
 
      - 5NF (์ 5์ ๊ทํ)
 
    
   
๋ฆด๋ ์ด์
 ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ์๋ฏธ
  - ๋ฆด๋ ์ด์
 ์คํค๋ง๋ฅผ ํ์ฑํ๊ธฐ ์ํด ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ์ง๋จํ ํ๋ ๊ฒฝ์ฐ, ํ ๋ฆด๋ ์ด์
์ ์ํ๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ ์ค์ธ๊ณ์์ ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค.
 
  - ์ฌ๋ฌ ์ํฐํฐ(EMPLOYEE, DEPARTMENT, PROJECT)์ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ด ํ๋์ ๋ฆด๋ ์ด์
์ ํผํฉ๋๋ฉด ์๋ฏธ๊ฐ ๋ถ๋ช
ํํด์ง๋ฏ๋ก ์ข์ง ์์.
    
      - ํ๋์ ๋ฆด๋ ์ด์
์ ํ๋์ ์ํฐํฐ๋ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด ๋ฐ๋์งํจ
 
    
   
  - ๋ค๋ฅธ ์ํฐํฐ๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํด์๋ ์ธ๋ํค ๋ง์ ์ฌ์ฉํด์ผ ํ๋ค.
 
Anomaly์ ์

  - ์ญ์ ์ด์(deletion anomaly)
    
      - 200๋ฒ ํ์์ด โC123โ์ ๋ฑ๋ก์ ์ทจ์
        
          - 3ํ๋
์ด๋ผ๋ ์ ๋ณด๋ ํจ๊ป ์ญ์ ๋จ
 
        
       
      - ์ฐ์ ์ญ์ (triggered deletion)์ ์ํ ์ ๋ณด์ ์์ค(loss of information)
 
    
   
  - ์ฝ์
์ด์(insertion anomaly)
    
      - 600๋ฒ ํ์์ด 2ํ๋
์ด๋ผ๋ ์ฌ์ค์ ์ฝ์
        
          - ์ด๋ค ๊ณผ๋ชฉ์ ๋ฑ๋กํ์ง ์๋ ํ ์ฝ์
์ด ๋ถ๊ฐ๋ฅ
            
              - (โต ๊ณผ๋ชฉ ๋ฒํธ๊ฐ ๊ธฐ๋ณธ ํค)
 
            
           
        
       
      - ์ํ์ง ์๋ ์ ๋ณด์ ๊ฐ์  ์ฝ์
 
    
   
  - ๊ฐฑ์ ์ด์(update anomaly)
    
      - 400๋ฒ ํ์์ ํ๋
์ 4์์ 3์ผ๋ก ๋ณ๊ฒฝ
        
          - ํ๋ฒ์ด 400์ธ 4๊ฐ์ ํฌํ ๋ชจ๋๋ฅผ ๊ฐฑ์ ์์ผ์ผ ํจ
 
        
       
      - ์ค๋ณต๋ฐ์ดํ์ ์ผ๋ถ ๊ฐฑ์ ์ผ๋ก ์ ๋ณด์ ๋ชจ์์ฑ(inconsistency) ๋ฐ์
 
    
   
๊ฒฐ๋ก  :
  ์ ํธ๋ฆฌ๋ทฐํธ๋ค ๊ฐ์ ์ข
์๊ด๊ณ๋ฅผ ๋ถ์ํ์ฌ ์ฌ๋ฌ๊ฐ์ ๋ฆด๋ ์ด์
์ผ๋ก ๋ถํด(decomposition) โ ์ ๊ทํ(normalization)
ํํ์ NULL ๊ฐ
  - ๋ฆด๋ ์ด์
์ ํฌํ๋ค์ด (๊ฐ๊ธ์ ) ๋ ๊ฐ์ ๊ฐ์ง์ง ์๋๋ก ์ค๊ณํด์ผ ํจ
    
      - ๋ ๊ฐ์ ์ ์ฅ ๋จ๊ณ์์ ๊ณต๊ฐ์ ๋ญ๋นํ๊ฒ ๋๊ณ 
 
      - ๋
ผ๋ฆฌ์  ์ฐจ์์์๋ ์กฐ์ธ ์ฐ์ฐ๋ค์ ์ง์ ํ๊ธฐ ํ๋ค๊ณ 
 
      - ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ์๋ฏธ๋ฅผ ์ดํดํ๊ธฐ ์ด๋ ค์
 
      - COUNT๋ AVG์ ๊ฐ์ ์ง๋จ ํจ์๋ค์ด ์ ์ฉ๋์์ ๋ ๋ ๊ฐ์ ํด์์ด ๋ชจํธํจ
 
      - ๋ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ง๋ก ํด์์ด ๊ฐ๋ฅํจ
        
          - ๊ทธ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์ด ํฌํ์๋ ์ ์ฉ๋์ง ์๋๋ค. (์กด์ฌ ์ฌ๋ถ๋ฅผ ๋ชจ๋ฅธ๋ค)
 
          - ์ด ํฌํ์์ ์ ํธ๋ฆฌ๋ทฐํธ์ ๊ฐ์ด ์์ง ์๋ ค์ ธ ์์ง ์๋ค (์กด์ฌํ์ง๋ง ๋ชจ๋ฅธ๋ค).
 
          - ์ ํธ๋ฆฌ๋ทฐํธ ๊ฐ์ด ์๋ ค์ ธ ์์ง๋ง DB์ ๊ธฐ๋ก๋์ง๋ ์์๋ค.
 
        
       
      - ๋ชจ๋  ๋ ๊ฐ์ ๋์ผํ๊ฒ ํํํ๋ฉด ๋ ๊ฐ์ด ๊ฐ๋ ์ฌ๋ฌ ์๋ฏธ๋ฅผ ํผ์ํ๊ฒ ๋๋ค.
 
    
   
  - ๋ ๊ฐ์ ๋ฐฉ์ง ๊ธฐ๋ฒ : ๋ฆด๋ ์ด์
์ ๋ถ๋ฆฌ
    
      - ๋ ๊ฐ์ด ๋ง์ด ๋ํ๋๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ๋ณ๋ ๋ฆด๋ ์ด์
์ผ๋ก ๋ถ๋ฆฌํจ
 
      - ์: ์ฌ์๋ค ์ค 10%๋ง์ด ์๊ธฐ์ ์ฌ๋ฌด์ค์ ๊ฐ์ง๊ณ  ์๋ ๊ฒฝ์ฐ, ์ฌ์ ๋ ์ฝ๋์ 90%๋ ๋ ๊ฐ์ผ๋ก ์ฑ์์ง
 
    
   
์ ๋ณด์ ๋ณํ์ผ๋ก ์ธํ ๊ฐ์ง ํฌํ (Spurious Tuple)
  - ๊ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ฅผ ์๋ชปํ๊ฒ ๋๋ฉด, ์กฐ์ธ ์ฐ์ฐ๋ค์ด ํ๋ฆฐ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ  ์ ์๋ค.
 
  - ์กฐ์ธ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฐ๋ฅด๊ธฐ ์ํด์๋, ๋ฆด๋ ์ด์
๋ค์ด โ๋ฌด์์ค ์กฐ์ธ(lossless join)โ ์กฐ๊ฑด์ ๋ง์กฑํ๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ค.
 
  - ๋ฌด์์ค ์กฐ์ธ ํน์ฑ: ์๋์ ๋ฆด๋ ์ด์
์ ๋ถํดํ์ฌ ๋ ๋ฆด๋ ์ด์
์ ์์ฑํ๋ ๊ฒฝ์ฐ, ๋ถํด๋ ๋ ๋ฆด๋ ์ด์
์ ์กฐ์ธํ๋ฉด ์๋์ ๋ฆด๋ ์ด์
์ด ๋ณต์๋์ด์ผ ํ๋ค.
 
  - ๋ฌด์์ค ์กฐ์ธ ํน์ฑ์ด ๋ง์กฑ๋์ง ์์ผ๋ฉด ์กฐ์ธ ์ ์๋์ ๋ฆด๋ ์ด์
์ ์๋ ๊ฐ์ง ํฌํ์ด ๋ฐ์ํจ.
 
  - ๋ถํด ์ (๊ธฐ๋ณธํค, ์ธ๋ํค) ์กฐํฉ์ ์ด์ฉํ๋ ๊ฒ์ด ๋ฐ๋์งํจ
    
      - ํค๊ฐ ์๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋งค๊ฐ๋ก ๋ถํดํ๋ฉด ์กฐ์ธ ์ ๊ฐ์ง ํฌํ์ด ๋ฐ์ํ  ์ ์์
 
    
   
ํจ์์  ์ข
์์ฑ(FD)
  - ํจ์์  ์ข
์์ฑ(FD: functional dependency)์ ์ข์ ๋ฆด๋ ์ด์
 ์ค๊ณ์ ์ ํ์  ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ๋๋ค.
 
  - FD์ ํค๋ ๋ฆด๋ ์ด์
์ ์ ๊ทํ์ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
 
  - FD๋ ๋ฐ์ดํฐ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ์๋ฏธ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ค ๊ฐ์ ์ํธ ๊ด๊ณ๋ก๋ถํฐ ์ ๋๋๋ ์ ์ฝ์กฐ๊ฑด(constraints)์ ์ผ์ข
์ด๋ค.
 
ํจ์์  ์ข
์์ฑ์ ์ ์ (1/2)
  - ํจ์์  ์ข
์์ฑ
    
      - X์ Y๋ฅผ ์์์ ์ ํธ๋ฆฌ๋ทฐํธ ์งํฉ์ด๋ผ๊ณ  ํ  ๋, X์ ๊ฐ์ด Y์ ๊ฐ์ ์ ์ผํ๊ฒ(unique) ๊ฒฐ์ ํ๋ค๋ฉด โX๋ Y๋ฅผ ํจ์์ ์ผ๋ก ๊ฒฐ์ ํ๋ค(functionally determines)โ๋ผ๊ณ  ํจ
 
      - X โ Y๋ก ํ๊ธฐํ๊ณ , โY๋ X์ ํจ์์ ์ผ๋ก ์ข
์๋๋คโ ๋ผ๊ณ  ํจ
        
          - X๋ฅผ ๊ฒฐ์ ์(determinant)
 
          - Y๋ฅผ ์ข
์์(dependent)
 
        
       
      - ํจ์์  ์ข
์์ฑ์ ๋ชจ๋  ๋ฆด๋ ์ด์
 ์ธ์คํด์ค r(R)์ ๋ํ์ฌ ์ฑ๋ฆฝํด์ผ ํจ
 
    
   
  - ํจ์์  ์ข
์์ฑ์ ๊ฒ์ฌ ๋ฐฉ๋ฒ
    
      - ๋ฆด๋ ์ด์
 ์ธ์คํด์ค r(R)์ ์ํ๋ ์ด๋ ํ ์์์ ๋ ํฌํ์ ๋ํด์๋ ์์ฑ๋ค์ ์งํฉ X์ ๋ํด ๋์ผํ ๊ฐ์ ๊ฐ์ง ๋๋ง๋ค Y์ ๋ํด์๋ ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ค๋ฉด X โ Y๋ผ๋ ํจ์์  ์ข
์์ฑ์ด ์ฑ๋ฆฝํ๋ค.
 
      - ์ฆ, r(R)์์์ ์์์ ๋ ํฌํ t1๊ณผ t2์ ๋ํด t1[X] = t2[X]์ด๋ฉด, t1[Y] = t2[Y]์ด๋ค.
 
    
   
  - FD ์ ์ฝ์กฐ๊ฑด์ ์์ 
    
      - ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๋ ์ฌ์์ ์ด๋ฆ์ ๊ฒฐ์ ํ๋ค.
        
      
 
      - ํ๋ก์ ํธ ๋ฒํธ๋ ํ๋ก์ ํธ ์ด๋ฆ๊ณผ ์์น๋ฅผ ๊ฒฐ์ ํ๋ค.
        
          - PNUMBER โ {PNAME, PLOCATION}
 
        
       
      - ์ฌ์์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ์ ํ๋ก์ ํธ ๋ฒํธ๋ ๊ทธ ์ฌ์์ด ์ผ์ฃผ์ผ ๋์ ๊ทธ ํ๋ก์ ํธ์ ์ํด์ ์ผํ๋ ์๊ฐ์ ๊ฒฐ์ ํ๋ค.
        
      
 
    
   
  - FD๋ ์คํค๋ง R์ ์๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ํน์ฑ์ด๋ฉฐ, ๋ชจ๋  ๋ฆด๋ ์ด์
 ์ธ์คํด์ค r(R)์์ ์ฑ๋ฆฝํด์ผ ํ๋ ์ฑ์ง์ด๋ค.
 
  - K๊ฐ R์ ํค์ด๋ฉด K๋ R์ ๋ชจ๋  ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ํจ์์ ์ผ๋ก ๊ฒฐ์ ํ๋ค.
    
      - (t1[K] = t2[K]์ธ ์๋ก ๋ค๋ฅธ ๋ ํฌํ์ด ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์).
 
    
   
์์  ํจ์ ์ข
์๊ณผ ๋ถ๋ถ ํจ์ ์ข
์
๋ณตํฉ ์ ํธ๋ฆฌ๋ทฐํธ X์ ๋ํ์ฌ X ยฎY๊ฐ ์ฑ๋ฆฝํ  ๋
  - ์์  ํจ์ ์ข
์ (full functional dependency)
    
      - Xโ โ X ์ด๊ณ  Xโ โ Y ๋ฅผ ๋ง์กฑํ๋ ์ ํธ๋ฆฌ๋ทฐํธ Xโ์ด ์กด์ฌํ์ง ์์
 
    
   
  - ๋ถ๋ถ ํจ์ ์ข
์ (partial functional dependency)
    
      - Xโ โ X ์ด๊ณ  Xโ โ Y ๋ฅผ ๋ง์กฑํ๋ ์ ํธ๋ฆฌ๋ทฐํธ Xโ์ด ์กด์ฌํจ
 
    
   
ํจ์ ์ข
์์ ๋ํ ์ถ๋ก  ๊ท์น
  - R1: (๋ฐ์ฌ, reflexive) A โ B์ด๋ฉด A โ B์ด๋ค. ๋ํ A โ A์ด๋ค
 
  - R2: (์ฒจ๊ฐ, augmentation) A โ B์ด๋ฉด AC โ BC์ด๊ณ  AC โ B์ด๋ค.
 
  - R3: (์ดํ, transitive) A โ B์ด๊ณ  B โ C์ด๋ฉด A โ C์ด๋ค.
 
  - R4: (๋ถํด, decomposition) A โ BC์ด๋ฉด A โ B์ด๋ค.
 
  - R5: (๊ฒฐํฉ, union) A โ B์ด๊ณ  A โ C์ด๋ฉด A โ BC์ด๋ค.
 
Note
  - ํจ์ ์ข
์์ ๋ฐ์ดํ์ ์๋ฏธ(data semantics) ๋ฅผ ํํ
    
      - ์: โํ๋ฒ โ ํ๋
โ์ ์๋ฏธ๋ โํ์์ ํ๋์ ํ๋
์๋ง ์ํ๋คโ
 
      - ์๋ฏธ์  ์ ์ฝ ์กฐ๊ฑด
 
    
   
  - DBMS๋ ํจ์ ์ข
์์ ์ ์งํ๊ธฐ ์ํ์ฌ ํจ์ ์ข
์์ ์คํค๋ง์ ๋ช
์ธํ๋ ๋ฐฉ๋ฒ๊ณผ ํจ์ ์ข
์์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ์ผ ํจ
 
์ ๊ทํ(normalization)
  - ์ ๊ทํ(normalization)
    
      - ๊ฐ๋
 : ์๋ก ๋
๋ฆฝ์ ์ธ ๊ด๊ณ(relationship)๋ ๋ณ๊ฐ์ ๋ฆด๋ ์ด์
์ผ๋ก ๋ถํด
 
      - ์ด์์ด ์๋ โ๋์โ ๋ฆด๋ ์ด์
์ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ๋๋์ด์ ๋ ์์ โ์ข์โ ๋ฆด๋ ์ด์
์ผ๋ก ๋ถํดํ๋ ๊ณผ์ 
 
    
   
  - decomposition
 
  - ์ ๊ทํ(normal form)
    
      - ํน์  ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฆด๋ ์ด์
 ์คํค๋ง์ ํํ
 
    
   
  - ์ 1์ ๊ทํ, ์ 2์ ๊ทํ, ์ 3์ ๊ทํ, BCNF
    
      - ๋ฆด๋ ์ด์
 ์คํค๋ง์ FD์ ํค์ ๊ธฐ๋ฐํ์ฌ ์ ์๋จ
 
    
   
  - ์ผ๋ฐ์ ์ผ๋ก ์
๊ณ์์๋ ์  3 ์ ๊ทํ ๋๋ BCNFํ๊น์ง ๊ณ ๋ ค
 
  - ์ฃผ์ ์ ํธ๋ฆฌ๋ทฐํธ: ํค(๊ธฐ๋ณธํค, ํ๋ณด๊ธฐ ๋ชจ๋ ํฌํจ)์ ์ํ๋ ์ ํธ๋ฆฌ๋ทฐํธ
 
  - ๋น์ฃผ์ ์ ํธ๋ฆฌ๋ทฐํธ: ์ฃผ์ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์๋ ์ ํธ๋ฆฌ๋ทฐํธ
 
์ 1์ ๊ทํ (1NF)
  - ์ ํธ๋ฆฌ๋ทฐํธ์ ๋๋ฉ์ธ์ด ์ค์ง ์์ ๊ฐ๋ง์ ํฌํจํ๊ณ , ํฌํ์ ๋ชจ๋  ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ๋๋ฉ์ธ์ ์ํ๋ ํ๋์ ๊ฐ์ ๊ฐ์ ธ์ผ ํจ
 
  - ๋ณตํฉ ์ ํธ๋ฆฌ๋ทฐํธ(composite attribute), ๋ค์น ์ ํธ๋ฆฌ๋ทฐํธ(multivalue attribute), ๊ทธ๋ฆฌ๊ณ  ์ค์ฒฉ ๋ฆด๋ ์ด์
(nested relation) ๋ฑ ๋น์์์ (non-atomic) ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ํ์ฉํ์ง ์์ ๋ฆด๋ ์ด์
์ ํํ
 
1NF์ ์ด์(anomaly)
  - 1NF๋ก ์ ๊ทํํ์ฌ๋ ์ด์(anomaly)์ด ๋ฐ์ํจ
    
      - ์ฝ์
์ด์
 
      - ์ญ์ ์ด์
 
      - ๊ฐฑ์ ์ด์
 
    
   
  - 1NF ์ด์์ ์์ธ
    
      - ๊ธฐ๋ณธํค์ ๋ถ๋ถ ํจ์ ์ข
์๋ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์กด์ฌ
 
      - ๊ธฐ๋ณธํค๋ก ์๋ณ๋๋ ๊ฐ์ฒด์ ๋ฌด๊ดํ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์กด์ฌ
 
      - ๋๊ฐ์ง ์์ดํ ์ ๋ณด๊ฐ ํฌํจ
 
    
   
  - 1NF ์ด์์ ํด๊ฒฐ
    
      - ํ๋ก์ ์
์ผ๋ก ๋ฆด๋ ์ด์
์ ๋ถํด (๋ถ๋ถ ํจ์ ์ข
์์ ์ ๊ฑฐ)
 
      - โ 2NF
 
    
   
์ 2์ ๊ทํ (2NF)
  - ์ 2์ ๊ทํ์ ๊ธฐ๋ณธํค์ ์์  ํจ์์  ์ข
์์ฑ์ ๊ฐ๋
์ ๊ธฐ๋ฐ์ ๋๋ค.
 
  - ์์  ํจ์์  ์ข
์์ฑ(full functional dependency):
    
      - FD YโZ์์ Y์ ์ด๋ค ์ ํธ๋ฆฌ๋ทฐํธ๋ผ๋ ์ ๊ฑฐํ๋ฉด ๋ ์ด์ ํจ์์  ์ข
์์ฑ์ด ์ฑ๋ฆฝํ์ง ์๋ ๊ฒฝ์ฐ
 
    
   
  - ์์ :
    
      - {SSN, PNUMBER} โ HOURS๋ SSN โ HOURS์ PNUMBER โ HOURS๊ฐ ์ฑ๋ฆฝํ์ง ์๊ธฐ ๋๋ฌธ์ ์์  ํจ์์  ์ข
์์ฑ์ด๋ค.
 
      - {SSN, PNUMBER} โ ENAME์ SSN โ ENAME์ด ์ฑ๋ฆฝํ๊ธฐ ๋๋ฌธ์ ์์  ํจ์์  ์ข
์์ฑ์ด ์๋๋ค - (์ด๋ ๋ถ๋ถ ํจ์ ์ข
์์ฑ(partial functional dependency)์ด๋ผ๊ณ  ๋ถ๋ฆ).
 
    
   
  - ์  2 ์ ๊ทํ์ ์ ์:
    
      - ๋ฆด๋ ์ด์
 ์คํค๋ง R์ ๋ชจ๋  ๋น์ฃผ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ด ๊ธฐ๋ณธํค์ ๋ํด์ ์์  ํจ์์  ์ข
์์ด๋ฉด, R์ ์ 2์ ๊ทํ(2NF)์ ์ํ๋ค.
 
      - 1NF์ด๊ณ , ํค์ ์ํ์ง ์๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ๋ชจ๋ ๊ธฐ๋ณธํค์ ์์  ํจ์ ์ข
์
 
    
   
๋ฌด์์ค ๋ถํด(nonloss decomposition)

  - ํ๋ก์ ์
ํ์ฌ ๋ถํด๋ ๋ฆด๋ ์ด์
๋ค์ ์์ฐ ์กฐ์ธ์ ํตํด ์๋์ ๋ฆด๋ ์ด์
์ผ๋ก ๋ณต๊ท ๊ฐ๋ฅ
 
  - ์๋์ ๋ฆด๋ ์ด์
์์ ์ป์ ์ ์๋ ์ ๋ณด๋ ๋ถํด๋ ๋ฆด๋ ์ด์
๋ค๋ก ๋ถํฐ๋ ์ป์ ์ ์์ ๊ทธ๋ฌ๋, ๊ทธ ์ญ์ ์ฑ๋ฆฝํ์ง ์์
 
  - (500๋ฒ ํ์์ ์ง๋๊ต์๊ฐ P4๋ผ๋ ์ ๋ณด๋ ์๋์ ๋ฆด๋ ์ด์
์์ ํํํ  ์ ์์)
 
2NF์ ์ด์(anomaly)
  - 2NF๋ก ์ ๊ทํํ์ฌ๋ ์ด์(anomaly)๊ฐ ์์ : ์) ์ง๋ ๋ฆด๋ ์ด์
    
      - ์ฝ์
์ด์
        
          - ์ด๋ค ์ง๋๊ต์๊ฐ ํน์  ํ๊ณผ์ ์ํ๋ค๋ ์ฌ์ค์ ์ฝ์
 ๋ถ๊ฐ๋ฅ
 
        
       
      - ์ญ์ ์ด์
        
          - 300๋ฒ ํ์์ ํฌํ์ ์ญ์ ํ๋ฉด ์ง๋๊ต์ P3๊ฐ ์ปดํจํฐ๊ณตํ๊ณผ์ ์ํ๋ค๋ ์ ๋ณด ์์ค
 
        
       
      - ๊ฐฑ์ ์ด์
        
          - ์ง๋๊ต์ P1์ ์์์ด ์ปดํจํฐ๊ณตํ๊ณผ์์ ์ ์๊ณผ๋ก ๋ณ๊ฒฝ๋๋ค๋ฉด ํ๋ฒ์ด 100๊ณผ 400๋ฒ์ธ ๋๊ฐ์ ํฌํ์ ๋ชจ๋ ๋ณ๊ฒฝํ์ฌ์ผ ํจ
 
        
       
    
   
  - 2NF ์ด์์ ์์ธ
    
      - ์ดํ์ (transitive) ํจ์ ์ข
์์ด ์กด์ฌ
 
    
   
  - 2NF ์ด์์ ํด๊ฒฐ
    
      - ํ๋ก์ ์
์ผ๋ก ๋ฆด๋ ์ด์
 ๋ถํด (์ดํ์  ํจ์ ์ข
์์ ์ ๊ฑฐ)
 
      - โ 3NF
 
    
   
์ 3์ ๊ทํ (3NF)
  - ์ 3์ ๊ทํ์ ์ดํ ํจ์์  ์ข
์์ฑ์ ์ ๊ฑฐ๊ฐ ๋ชฉ์ 
 
  - ์ดํ ํจ์์  ์ข
์์ฑ(transitive functional dependency):
    
      - ๋ FD Y โ X์ X โ Z์ ์ํด์ ์ถ๋ก ๋  ์ ์๋ FD Y โ Z
 
    
   
  - ์์ 
    
      - SSN โ DMGRSSN์ SSN โ DNUMBER๊ณผ DNUMBER โ DMGRSSN์ด ์ฑ๋ฆฝํ๊ธฐ ๋๋ฌธ์ ์ดํ์  ํจ์์  ์ข
์์ฑ์ด๋ค.
 
      - SSN โ ENAME๋ SSN โ X์ด๊ณ  X โ ENAME์ธ ์ ํธ๋ฆฌ๋ทฐํธ ์งํฉ X๊ฐ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ์ดํ์  ์ข
์์ฑ์ด ์๋๋ค.
 
    
   
  - ์ 3์ ๊ทํ์ ์ ์:
    
      - ๋ฆด๋ ์ด์
 ์คํค๋ง R์ด ์ 2์ ๊ทํ์ ๋ง์กฑํ๊ณ ,
 
      - R์ ์ด๋ค ๋น์ฃผ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ ๊ธฐ๋ณธํค์ ๋ํด์ ์ดํ์ ์ผ๋ก ์ข
์๋์ง ์์ผ๋ฉด R์ ์ 3์ ๊ทํ์ ๋ง์กฑํ๋ค๊ณ  ํจ
 
    
   
3NF์ ์ฝ์ 
ERD์ ์ ๊ทํ ๋ถ์
  - 1NF๋ฅผ ๋ง์กฑํ๊ณ  ์๋์ง ๋ถ์
    
      - 1NF : ์ค๋ณต๋ ํ(repeating groups)์ด ์๊ณ , ๋ชจ๋  ์์ฑ์ ์์๊ฐ(atomic value)
 
      - ERD์ ์๋ ๋ชจ๋  entity๊ฐ PK๊ฐ ์๋์ง ํ์ธ
 
      - 1NF๋ฅผ ๋ง์กฑํ๊ณ  ์๋์ง ํ๋จ
 
    
   
  - 2NF๋ฅผ ๋ง์กฑํ๊ณ  ์๋์ง ๋ถ์
    
      - 2NF : ๋ถ๋ถ์  ํจ์ ์ข
์์ ์ ๊ฑฐ
 
      - PK๊ฐ 1๊ฐ์ด๋ฉด ๋ฌด์กฐ๊ฑด 2NF๋ฅผ ๋ง์กฑ
 
      - PK๊ฐ 2๊ฐ ์ด์์ ์์ฑ์ผ๋ก ์ด๋ฃจ์ด์ง entity์์ PK์์ฑ์ผ๋ถ์ ๋๋จธ์ง ์์ฑ๋ค์ด ์ข
์ ๊ด๊ณ๊ฐ ์๋์ง ์ผ์ผ์ด ์ฒดํฌํด์ผ ํจ
 
    
   
  - 3NF๋ฅผ ๋ง์กฑํ๊ณ  ์๋์ง ๋ถ์
    
      - 3NF : ์ดํ์  ํจ์์ข
์์ ์ ๊ฑฐ
 
      - PK๊ฐ ์๋ ์์ฑ๋ค ์ค์์ ์ข
์๊ด๊ณ๊ฐ ์๋์ง ์ผ์ผ์ด ์ฒดํฌํด์ผ ํ๋ค.
 
    
   
  - ๋ฆด๋ ์ด์
 ์คํค๋ง R์์ ์ฑ๋ฆฝํ๋ ์์์ FD X โ A์์ X๊ฐ R์ ์ํผํค์ด๋ฉด R์ Boyce-Codd ์ ๊ทํ(BCNF)์ ๊ฐ๋๋ค๊ณ  ํ๋ค.
    
      - ์ฆ, ๋ฆด๋ ์ด์
 R์ ๋ชจ๋  ๊ฒฐ์ ์๊ฐ ํ๋ณดํค์ด๋ฉด ๋ฆด๋ ์ด์
 R์ BCNF์ ์ํ๋ค.
 
    
   
  - ๊ฐ ์ ๊ทํ์ ๊ทธ์ ์ ํ ์ ๊ทํ๋ณด๋ค ๋ ์๊ฒฉํ ์กฐ๊ฑด์ ๊ฐ๋๋ค. (strong 3NF๋ผ๊ณ ๋ ํจ)
    
      - ๋ชจ๋  ์ 2์ ๊ทํ ๋ฆด๋ ์ด์
์ ์ 1์ ๊ทํ์ ๊ฐ๋๋ค.
 
      - ๋ชจ๋  ์ 3์ ๊ทํ ๋ฆด๋ ์ด์
์ ์ 2์ ๊ทํ์ ๊ฐ๋๋ค.
 
      - ๋ชจ๋  BCNF ๋ฆด๋ ์ด์
์ ์ 3์ ๊ทํ์ ๊ฐ๋๋ค.
 
    
   
  - ์ 3์ ๊ทํ์๋ ์ํ๋ BCNF์๋ ์ํ์ง ์๋ ๋ฆด๋ ์ด์
์ด ์กด์ฌํ๋ค.
    
      - ๊ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ๋ชฉํ๋ ๊ฐ ๋ฆด๋ ์ด์
์ด BCNF(๋๋ 3NF)๋ฅผ ๊ฐ๊ฒ ํ๋ ๊ฒ์ด๋ค.
 
    
   
๋ ๋ง์ ์ข
์์ฑ๊ณผ ์ ๊ทํ
๋ค์น ์ข
์์ฑ๊ณผ ์ 4์ ๊ทํ(4NF)
  - ํจ์์  ์ข
์์ฑ์ ํ๋์ ๊ณตํต๋ ํํ์ ์ ์ฝ์กฐ๊ฑด์ ๋ช
๊ธฐํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ฉฐ, ํจ์์  ์ข
์์ฑ ๋ง์ ์ํด์ ๋ช
๊ธฐ๋  ์ ์๋ ๋ค๋ฅธ ํํ์ ์ ์ฝ์กฐ๊ฑด๋ค์ด ์กด์ฌํ๋ค.
 
  - ์ถ๊ฐ์ ์ธ ์ข
์์ฑ์๋ ๋ค์น ์ข
์์ฑ(multi-valued dependency)์ด ์์ผ๋ฉฐ, ์ด์ ๊ธฐ๋ฐํ ์ ๊ทํ์ด ์ 4์ ๊ทํ(4NF)์ด๋ค.
 
  - ์ 4์ ๊ทํ์ ํน์ฑ
    
      - 3NF์ BCNF๋ ๋ค์น ์ข
์์ฑ์ ๋ค๋ฃจ์ง ์๋๋ค.
 
      - ๋น๋จ์ ๋ค์น ์ข
์์ฑ์ ๊ฐ์ง๋ ๋ฆด๋ ์ด์
 ์คํค๋ง๋ ์ข์ ๋์์ธ์ด ์๋ ์ ์๋ค.
 
      - ์  4 ์ ๊ทํ์ ์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ๋ฉฐ, BCNF ์ ๊ทํ์ด ๋๋ค.
        
          - (์  4 ์ ๊ทํ์ ์ํ๋ ๋ชจ๋  ๋ฆด๋ ์ด์
์ BCNF ์ ๊ทํ์ ์ํ๋ค)
 
        
       
    
   
์กฐ์ธ ์ข
์์ฑ๊ณผ ์ 5์ ๊ทํ(5NF)
  - ๋ ๋ค๋ฅธ ์ถ๊ฐ์  ์ข
์์ฑ์ผ๋ก ์กฐ์ธ ์ข
์์ฑ(Join Dependency)์ด ์์ผ๋ฉฐ, ์ด์ ๊ธฐ๋ฐํ ์ ๊ทํ์ด ์ 5์ ๊ทํ์ด๋ค.
    
      - ์กฐ์ธ ์ข
์(JD, Join Dependency)
        
          - ๋ฆด๋ ์ด์
 R์ด ๊ทธ์ ํ๋ก์ ์
 A, B, โฆ, Z์ ์กฐ์ธ๊ณผ ๋์ผํ๋ฉด R์ JD *(A, B, โฆ, Z)์ ๋ง์กฑ.
 
        
       
    
   
  - ์ 5์ ๊ทํ(5NF)
    
      - ํจ์์  ์ข
์์ฑ, ๋ค์น ์ข
์์ฑ, ์กฐ์ธ ์ข
์์ฑ์ ๋ชจ๋ ๊ณ ๋ คํ๋ ์ ๊ทํ์ผ๋ก, ํ๋ก์ ํธ-์กฐ์ธ ์ ๊ทํ (Project-Join NF: PJNF)์ด๋ผ๊ณ ๋ ํ๋ค.
 
      - ์กฐ์ธ ์ข
์์ฑ์ ๋ฐ๊ฒฌํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ์ผ๋ก, ์ค์ ๋ก ์ 5์ ๊ทํ์ ๊ฑฐ์ ์ฐ์ด์ง ์๋๋ค.
 
    
   
Source
  - Fundamentals of Database Systems 7th Edition by Ramez Elmasri, Shamkant B. Navathe.