이상 ν˜„μƒ, μ •κ·œν™” - λ©΄μ ‘ λŒ€λΉ„

2024. 1. 1. 22:49ㆍ면접 μ€€λΉ„/λ©΄μ ‘ μŠ€ν„°λ””

2024.01.03 일자둜 진행 μ˜ˆμ •μΈ λ©΄μ ‘ μŠ€ν„°λ”” μ€€λΉ„μ˜ μΌν™˜μœΌλ‘œ, λ°°μ •λœ 파트인 이상 ν˜„μƒ, μ •κ·œν™”μ— λŒ€ν•œ 정리 후에 이λ₯Ό ν† λŒ€λ‘œ λ„μΆœν•΄λ³Όλ§Œν•œ μ§ˆλ¬Έλ“€μ„ μž‘μ„±ν•˜κ² μŠ΅λ‹ˆλ‹€.

이상 ν˜„μƒ

이상 ν˜„μƒμ΄λž€ 잘λͺ»λœ ν…Œμ΄λΈ” μ„€κ³„λ‘œ 인해 λ°œμƒν•  수 μžˆλŠ” ν…Œμ΄λΈ” 레벨의 λ¬Έμ œμ λ“€μ„ μ˜λ―Έν•œλ‹€. 이상 ν˜„μƒμ—μ„œλŠ” μ‚½μž… 이상, μˆ˜μ • 이상, μ‚­μ œ 이상이 μ‘΄μž¬ν•œλ‹€. 이상 ν˜„μƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄, μ •κ·œν™”λΌλŠ” κ°œλ…μ΄ μ‘΄μž¬ν•œλ‹€.

이상 ν˜„μƒλ“€μ„ μ„€λͺ…ν•˜κΈ° μœ„ν•΄ μ˜ˆμ‹œλ‘œ μ•„λž˜ ν…Œμ΄λΈ”μ΄ μ‘΄μž¬ν•œλ‹€κ³  κ°€μ •ν•˜μž.

이 λ•Œ 잘λͺ»λœ ν…Œμ΄λΈ” μ„€κ³„λ‘œ 인해 ν•™κ³Ό ν…Œμ΄λΈ”μ΄ λ”°λ‘œ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μƒν™©μœΌλ‘œ κ°€μ •ν•˜μž.

ν•™λ²ˆ(PK) 이름 ν•™κ³Ό ν•™κ³Ό 사무싀
xxxxxxx κΉ€μ² μˆ˜ 컴퓨터 곡학과 곡과 λŒ€ν•™ 401호
xxxxxxx 홍길동 μˆ˜ν•™κ³Ό μžμ—° λŒ€ν•™ 201호
xxxxxxx 바이든 μˆ˜ν•™κ³Ό μžμ—° λŒ€ν•™ 201호
       

μ‚½μž… 이상

μ‚½μž… μ΄μƒμ΄λž€ ν•˜λ‚˜μ˜ ν…Œμ΄λΈ” λ‚΄ λ‹€μ–‘ν•œ κ°œλ…μ΄ ν˜Όμž¬ν•˜κ³  μžˆλŠ” 탓에 μ‹ κ·œ 데이터λ₯Ό μ •μƒμ μœΌλ‘œ μΆ”κ°€ν•˜μ§€ λͺ»ν•˜λŠ” 상황을 μ˜λ―Έν•œλ‹€.

μœ„ μ˜ˆμ‹œ ν…Œμ΄λΈ”μ—μ„œ μ‹ κ·œ ν•™κ³Όκ°€ μΆ”κ°€λ‘œ κ°œμ„€λ˜μ–΄ 이λ₯Ό DB에 λ°˜μ˜ν•˜κ³ μž ν•  λ•Œ κ³Όμ—° 데이터λ₯Ό μΆ”κ°€ν•  수 μžˆμ„κΉŒ?

ν˜„μž¬ ꡬ성 상 ν•™λ²ˆμ΄ PK둜 λ˜μ–΄ 있기 λ•Œλ¬Έμ— μ‹ κ·œ 학과에 학생이 μΆ”κ°€λ˜μ§€ μ•ŠλŠ” ν•œ 데이터λ₯Ό μΆ”κ°€ν•  수 μ—†λŠ” 상황이닀.

μ΄λŸ¬ν•œ 상황을 μ‚½μž… 이상이라고 ν•œλ‹€.

μ‚­μ œ 이상

μ‚­μ œ μ΄μƒμ΄λž€ νŠΉμ • 정보λ₯Ό μ‚­μ œν•˜λŠ” μƒν™©μ—μ„œ μ›μΉ˜μ•ŠλŠ” μ •λ³΄κΉŒμ§€ ν•¨κ»˜ μ‚­μ œλ˜λŠ” 상황을 μ˜λ―Έν•œλ‹€.

μœ„ μ˜ˆμ‹œ ν…Œμ΄λΈ”μ—μ„œ κΉ€μ² μˆ˜ λ ˆμ½”λ“œλ₯Ό μ‚­μ œν•΄μ•Όν•˜λŠ” 상황이 왔을 λ•Œ,

ν…Œμ΄λΈ” λ‚΄ μœ μΌν•˜κ²Œ μ‘΄μž¬ν•˜λ˜ 컴퓨터 곡학과 학생이 μ‚­μ œλ˜λŠ” 것이기 λ•Œλ¬Έμ— μ˜λ„μΉ˜ μ•Šκ²Œ 컴퓨터 곡학과 κ΄€λ ¨λœ 정보도 μ „λΆ€ μ‚­μ œλ˜λŠ” 상황이 λœλ‹€. 

μ΄λŸ¬ν•œ 상황을 μ‚­μ œ 이상이라고 ν•œλ‹€.

κ°±μ‹  이상

μˆ˜μ • μ΄μƒμ΄λž€ μ€‘λ³΅λœ 데이터 쀑 μΌλΆ€λ§Œ μˆ˜μ •λ˜μ–΄ λ°μ΄ν„°μ˜ λͺ¨μˆœμ΄ λ°œμƒν•˜λŠ” 상황을 μ˜λ―Έν•œλ‹€.

μœ„ μ˜ˆμ‹œ ν…Œμ΄λΈ”μ—μ„œ μˆ˜ν•™κ³Όμ˜ ν•™κ³Ό 사무싀이 이사λ₯Ό ν•˜λŠ” 상황이라 μ—…λ°μ΄νŠΈλ₯Ό ν•΄μ•Όν•  λ•Œ μˆ˜ν•™κ³Όμ— λ‹€λ‹ˆλŠ” λͺ¨λ“  학생듀에 λŒ€ν•΄ 일일이 μ—…λ°μ΄νŠΈλ₯Ό 해쀄 ν•„μš”κ°€ μžˆλ‹€. 

μ΄λŸ¬ν•œ μƒν™©μ—μ„œ 데이터가 λ§Žλ‹€λ©΄ ν•΄λ‹Ή μž‘μ—…μ€ ꡉμž₯히 λ§Žμ€ 처리λ₯Ό 진행해야 ν•˜λŠ” λΉ„νš¨μœ¨μ— λΉ μ§€κ²Œ 되고 λ˜ν•œ ν•˜λ‚˜λΌλ„ λˆ„λ½λ  경우 데이터 μƒμ˜ λͺ¨μˆœμ΄ λ°œμƒν•  수 μžˆλ‹€.

μ΄λŸ¬ν•œ 상황을 κ°±μ‹  이상이라고 ν•œλ‹€.

 

μ •κ·œν™”

μ •κ·œν™”λž€ ν…Œμ΄λΈ” λ‚΄ λ°œμƒν•˜λŠ” 각쒅 이상 ν˜„μƒμ„ ν•΄κ²°ν•˜κ³ , ν–₯ν›„μ˜ μœ μ§€λ³΄μˆ˜μ„±μ„ μœ„ν•΄ 각 ν…Œμ΄λΈ”μ΄ ν•˜λ‚˜μ˜ 의미 λ‹¨μœ„λ§Œμ„ 갖도둝 더 μž‘μ€ λ‹¨μœ„μ˜ ν…Œμ΄λΈ”λ‘œ μž‘κ²Œ μͺΌκ°œλŠ” μž‘μ—…μ„ μ˜λ―Έν•œλ‹€.

μ •κ·œν™”μ—λŠ” λ‹€μ–‘ν•œ μ •κ·œν™” 레벨이 μ‘΄μž¬ν•œλ‹€.

제 1 μ •κ·œν˜•

  • ν…Œμ΄λΈ”μ˜ 각 칼럼이 μ›μž κ°’(Atomic Value)을 갖도둝 ν…Œμ΄λΈ” λΆ„ν•΄ (1:N κ΄€κ³„λ‘œ μͺΌκ°€ 수 있음)

제 2 μ •κ·œν˜•

  • 제 1 μ •κ·œν˜•μ„ 만쑱
  • ν…Œμ΄λΈ” λ‚΄ PKλ₯Ό μ œμ™Έν•œ λ‹€λ₯Έ μΉΌλŸΌλ“€μ΄ PK에 λŒ€ν•΄ μ™„μ „ ν•¨μˆ˜ 쒅속이 λ˜λ„λ‘ ν…Œμ΄λΈ” λΆ„ν•΄
    • ν•¨μˆ˜ 쒅속: Xκ°€ 결정될 경우 μ €μ ˆλ‘œ Y도 κ²°μ •λ˜λŠ” 관계λ₯Ό ν•¨μˆ˜ 쒅속이라고 ν‘œν˜„ (X -> Y)
    • μ™„μ „ ν•¨μˆ˜ 쒅속: X의 λΆ€λΆ„ 집합이 Yλ₯Ό κ²°μ •ν•΄μ„œλŠ” μ•ˆλ˜λ©°, μ˜€λ‘œμ§€ ν•˜λ‚˜μ˜ 전체 Xκ°€ Yλ₯Ό κ²°μ •ν•˜λŠ” 상황

제 3 μ •κ·œν˜•

  • 제 2 μ •κ·œν˜•μ„ 만쑱
  • ν…Œμ΄λΈ” λ‚΄ PKλ₯Ό μ œμ™Έν•œ λ‹€λ₯Έ μΉΌλŸΌλ“€μ΄ PK에 λŒ€ν•΄ 이행적 ν•¨μˆ˜ 쒅속 관계λ₯Ό 갖지 μ•Šλ„λ‘ ν…Œμ΄λΈ” λΆ„ν•΄
    • 이행적 ν•¨μˆ˜ 쒅속: X -> Y, Y -> Z 일 λ•Œ λ…Όλ¦¬μ μœΌλ‘œ X -> Zλ₯Ό λ§Œμ‘±ν•˜κ²Œ λ˜λŠ”λ° 이λ₯Ό 이행적 ν•¨μˆ˜ 쒅속이라고 ν‘œν˜„

Boyce-codd μ •κ·œν˜• (BCNF)

  • 제 3 μ •κ·œν˜•μ„ 만쑱
  • ν…Œμ΄λΈ” λ‚΄ κ²°μ •μžλ‘œ μ‘΄μž¬ν•˜λ©΄μ„œ λ™μ‹œμ— 후보킀가 μ•„λ‹Œ μΉΌλŸΌμ„ λΆ„ν•΄
    • κ²°μ •μž: X -> Y κ΄€κ³„μ—μ„œ Xλ₯Ό 의미

 

λ©΄μ ‘ μ˜ˆμƒ 질문

1. 이상 ν˜„μƒμ˜ μ’…λ₯˜λŠ” 무엇이 μžˆλŠ”μ§€ μ΄μ•ΌκΈ°ν•˜κ³ , 이 쀑 ν•˜λ‚˜μ— λŒ€ν•΄ μ˜ˆμ‹œλ₯Ό λ“€μ–΄ μ„€λͺ…ν•΄μ£Όμ„Έμš”.

2. μ •κ·œν™”κ°€ 무엇인지 μ„€λͺ…ν•˜κ³ , μ™œ μ •κ·œν™”κ°€ ν•„μš”ν•œμ§€ μ„€λͺ…ν•΄μ£Όμ„Έμš”.

3. μ •κ·œν™”μ˜ 단계에 λŒ€ν•΄ μ•„λŠ”λŒ€λ‘œ μ„€λͺ…ν•΄μ£Όμ„Έμš”.

4. μ—­μ •κ·œν™”λž€ 무엇인지 μ„€λͺ…ν•΄μ£Όμ„Έμš”.

4-1. ν…Œμ΄λΈ” κ°„ Join을 μ‚¬μš©ν•  경우 λŠλ¦¬λ‹€κ³  닡변을 μ£Όμ…¨λŠ”λ°, 닡변에 λŒ€ν•œ 객관적인 κ·Όκ±°λ₯Ό 듀어쀄 수 μžˆλŠ”μ§€?