Projects/Web Projects

[ν† μ΄ν”„λ‘œμ νŠΈ] DB μ„€κ³„ν•˜κΈ° -1

minzhen 2022. 4. 26. 15:38
πŸ“Œ 이 글은 Youtube μ‹œλ‹ˆμ–΄μ½”λ”© - '{ν’€μŠ€νƒ#22} MySQL - 데이터 λͺ¨λΈ 섀계, μ‹€λ¬΄μ—μ„œλŠ” μ΄λ ‡κ²Œ ν”„λ‘œμ νŠΈ μ‹œμž‘κ³Ό 섀계λ₯Ό ν•œλ‹€!' μ˜μƒμ„ μ°Έκ³ ν•˜μ—¬ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
링크 : https://www.youtube.com/watch?v=GroeyzBNhfU

 

μž‘μ€ 토이 ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ 쀑이닀. DB에 데이터λ₯Ό λ„£κΈ° μ „, μ†Œμœ„ 'DBλ₯Ό μ„€κ³„ν•œλ‹€'λŠ” 과정에 λŒ€ν•΄ 기초 κ°œλ…μ„ 작고 κ·Έλ₯Ό λ°˜μ˜ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό 진행해보기 μœ„ν•΄ ν¬μŠ€νŒ…μ„ μž‘μ„±ν•˜κΈ°λ‘œ ν–ˆλ‹€.

 

λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ¨λΈλ§μ€ κ°œλ…μ  λͺ¨λΈλ§ - 논리적 λͺ¨λΈλ§ - 물리적 λͺ¨λΈλ§μœΌλ‘œ μ§„ν–‰ν•œλ‹€.

 

λ°μ΄ν„°λ² μ΄μŠ€ λͺ¨λΈλ§μ΄ μ€‘μš”ν•œ μ΄μœ λŠ”, κΈ°λŠ₯ μΆ”κ°€λ‚˜ μ„œλΉ„μŠ€μ˜ κΈ°λŠ₯ 변경에 어렀움을 κ²ͺλŠ” κ²½μš°κ°€ λŒ€λΆ€λΆ„μ΄ λ°μ΄ν„°λ² μ΄μŠ€ 섀계λ₯Ό 잘λͺ»ν•œ κ²½μš°κ°€ 많기 λ•Œλ¬Έμ΄λ‹€. μ‹€μ œλ‘œ 코딩을 μž˜ν•˜λŠ” μ‚¬λžŒμ€ λ§Žμ§€λ§Œ, λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μž˜ν•˜λŠ” μ‚¬λžŒμ€ 맀우 λ§Žμ€ 것은 μ•„λ‹ˆλ‹€. 메이저 νšŒμ‚¬ 같은 κ²½μš°λŠ” DBA라고 ν•΄μ„œ λ°μ΄ν„°λ² μ΄μŠ€ 직무가 λ”°λ‘œ μžˆλŠ” κ²½μš°κ°€ μžˆμ§€λ§Œ, 보톡은 μ„œλ²„ κ°œλ°œμžκ°€ DB도 μ„€κ³„ν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€.

DB 섀계λ₯Ό 잘λͺ»ν•˜κ±°λ‚˜ λ¬Έμ œκ°€ μƒκΈ°λŠ” κ²½μš°λŠ”, μ„œλΉ„μŠ€κ°€ λͺ…ν™•νžˆ μ •μ˜λ˜μ§€ μ•Šμ€ 경우, ν˜Ήμ€ μ„œλΉ„μŠ€κ°€ 많이 λ³€κ²½λ˜μ–΄ μ΅œμ΄ˆμ— μž‘μ•„λ‘” λ°μ΄ν„°λ² μ΄μŠ€ λͺ¨λΈμ΄ λ§žμ§€ μ•ŠλŠ” κ²½μš°κ°€ μžˆλ‹€. 이런 경우, λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ§Žμ€ 문제 특히 병λͺ©μ΄ λ°œμƒν•œλ‹€. 이 경우 Query둜 μ–΄λŠμ •λ„ μˆ˜μŠ΅μ€ ν•  수 μžˆμ§€λ§Œ ꢁ극적인 해결은 μ•„λ‹ˆλ‹€.


데이터λͺ¨λΈ 섀계 κ³Όμ •

μš”κ΅¬μ‚¬ν•­ 뢄석  ➑  UseCase Diagram μž‘μ„±  ➑  Entities, Functions λ„μΆœ  ➑  Relationships - ERD μž‘μ„±  ➑  생성 (Pysical Modeling)

 

UseCase Diagram (μš”κ΅¬μ‚¬ν•­ 뢄석)

μ΄ν•΄κ΄€κ³„μžλΌκ³  λΆ€λ₯΄λŠ” userκ°€ μ‘΄μž¬ν•œλ‹€. κ²°κ΅­ 이 μ‹œμŠ€ν…œμ΄ μ–΄λ–»κ²Œ μ‚¬μš©λ˜μ–΄μ§„λ‹€λ₯Ό λ³΄μ—¬μ£ΌλŠ” λ‹€μ΄μ–΄κ·Έλž¨μ΄λ‹€. 

 

Deployment Diagram

μ„œλ²„ ꡬ성이 μ–΄λ–»κ²Œ λ˜μ–΄ μžˆλŠ”μ§€ λ³΄μ—¬μ£ΌλŠ” λ‹€μ΄μ–΄κ·Έλž¨. μ—¬κΈ°μ„œ deviceλΌλŠ” 것은 물리적인 λ””λ°”μ΄μŠ€μ™€ 논리적인 λ””λ°”μ΄μŠ€ 두 κ°€μ§€κ°€ μžˆλ‹€. κ·Έλž˜μ„œ μ„œλ²„κ°€ μ›Ή μ„œλ²„κ°€ 있고, λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„κ°€ 있고, μ–΄λ–»κ²Œ λ‚˜λ‰˜μ–΄μžˆλŠ”μ§€ ꡬ성도λ₯Ό κ·Έλ¦¬λŠ” λ‹€μ΄μ–΄κ·Έλž¨μ„ λœ»ν•œλ‹€.

 

Sequence Diagram

πŸ’‘ μΈμŠ€ν„΄μŠ€λž€?    : ν΄λž˜μŠ€λ₯Ό λ©”λͺ¨λ¦¬μ— 올린 μƒνƒœ

ν”Œλ‘œμš°κ°€ λ³΅μž‘ν•˜κ±°λ‚˜, μΈμŠ€ν„΄μŠ€λ“€μ΄ μ–΄λ–»κ²Œ μ‚΄μ•„μ›€μ§μ΄λŠ”μ§€, μ–Έμ œ μƒμ„±λ˜μ–΄μ„œ μ–Έμ œ μ†Œλ©Έλ˜λŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 즉, μΈμŠ€ν„΄μŠ€μ˜ 생λͺ… 주기와 μΈμŠ€ν„΄μŠ€κ°€ μ–΄λ–»κ²Œ μ›€μ§μ΄λŠ”μ§€, μ–΄λ–€ λͺ…령듀이 μžˆλŠ”μ§€λ₯Ό μ •μ˜ν•˜λŠ” λ‹€μ΄μ–΄κ·Έλž¨μ΄λ‹€. 많이 μ“°μ΄μ§€λŠ” μ•Šμ§€λ§Œ, μΈμŠ€ν„΄μŠ€λ“€μ΄ μ–΄λ–»κ²Œ μ›€μ§μ΄λŠ”μ§€λ₯Ό μ•Œλ €λ©΄ Sequence Diagram을 그렀두면 νŽΈν•˜λ‹€. μ˜ˆμ‹œλ₯Ό λ“€μ–΄ μ„€λͺ…ν•˜μžλ©΄, 그림을 보자. 컴퓨터가 μ„œλ²„μ—κ²Œ 메일을 λ³΄λ‚΄λŠ”λ°, μ‚¬μš©μžκ°€ checkEmail을 ν•˜κ³ , κ·Έ λ‹€μŒ μ„œλ²„μ— sendUnsentEmail을 ν•˜λ©΄ κ·Έ λ•Œ μΈμŠ€ν„΄μŠ€κ°€ 생기고, μ„œλ²„κ°€ ν™œμ„±ν™”λ˜κ³ , λ‹€ 보내고 λ‚˜λ©΄ μ’…λ£Œκ°€ 되며 μΈμŠ€ν„΄μŠ€κ°€ 죽게 λœλ‹€. 

Class Diagram

OOP(객체지ν–₯ν”„λ‘œκ·Έλž˜λ°)을 ν•  λ•Œμ— κ°€μž₯ 많이 μ“°μ΄λŠ” ν”„λ‘œκ·Έλž¨. ν΄λž˜μŠ€λ“€μ΄ μ–΄λ–»κ²Œ κ΅¬μ„±λ˜λŠ”μ§€, table듀은 value object라고 ν•΄μ„œ 보톡 클래슀둜 ν•˜λ‚˜ν•˜λ‚˜ λ–¨μ–΄μ§€κ²Œ λœλ‹€. ν™”μ‚΄ν‘œλŠ” ν™”μ‚΄ν‘œκ°€ κ°€λ¦¬ν‚€λŠ” 곳을 μƒμ†λ°›μŒμ„ μ˜λ―Έν•œλ‹€. 즉, λ‹€μ΄μ–΄κ·Έλž¨μ€ ν΄λž˜μŠ€λ“€μ˜ ꡬ성을 μ˜λ―Έν•œλ‹€. κ·Έλ¦Όμ—μ„œλŠ” μƒλž΅λ˜μ—ˆμ§€λ§Œ 멀버 λ³€μˆ˜μ™€ 멀버 ν•¨μˆ˜μ˜ Public/Protected/Private λ“±μ˜ 사항도 ν‘œν˜„λ˜κ³ λŠ” ν•œλ‹€.

 

State Diagram

μƒνƒœλ‹€μ΄μ–΄κ·Έλž¨μ΄λ‹€. 데이터든 λ³€μˆ˜λ“ , λ°μ΄ν„°μ˜ μƒνƒœκ°€ μ–΄λ–»κ²Œ μ›€μ§μ΄λŠλƒλ₯Ό λ³΄μ—¬μ£ΌλŠ” λ‹€μ΄μ–΄κ·Έλž¨μ΄λ‹€.

  • transition : μ „ν™˜ κ³Όμ •
  • transition condition : μƒνƒœ μ „ν™˜ν•˜κΈ°
  • entry action : μ‹œμž‘ν•˜λŠ” μ‹œμ μ˜ μƒνƒœ

 

Flow Chart

μˆœμ„œλ„λΌκ³  λΆˆλ¦¬λŠ” 많이 μ•Œλ €μ§„ λ‹€μ΄μ–΄κ·Έλž¨μ΄λ‹€. Base Logic이 λ³΅μž‘ν•˜λ‹€ μ‹ΆμœΌλ©΄ μˆœμ„œλ„λ₯Ό κ·Έλ €λ³΄λŠ” 것이 μ’‹λ‹€. μ–΄λ–€ μˆœμ„œλ‘œ μ§€λ‚˜κ°€λŠ”μ§€. κ°œλ°œμž 뿐만 μ•„λ‹ˆλΌ κΈ°νšμžλ„ 많이 μ‚¬μš©ν•˜λŠ” λ‹€μ΄μ–΄κ·Έλž¨μ΄λ‹€. 

  • μ›ν˜• : μ‹œμž‘
  • μ‚¬κ°ν˜• : ν•˜λ‚˜μ˜ task
  • λ§ˆλ¦„λͺ¨ : 쑰건절

 


μ •κ·œν™”(Normal Form, NF)

λ°μ΄ν„°λ² μ΄μŠ€ 섀계 쀑 λͺ¨λΈλ§ν•  λ•Œ κ°€μž₯ μ€‘μš”ν•œ 것은 μ •κ·œν™”μ΄λ‹€. 제1μ •κ·œν™”, 제2μ •κ·œν™” λ“±μ˜ μš©μ–΄λŠ” μ‹€λ¬΄μ—μ„œλŠ” μ™ΈμšΈ ν•„μš”λŠ” μ—†κ³ , 결ꡭ은 쀑볡데이터λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” 것이닀. 같은 데이터가 μ—¬λŸ¬ ν…Œμ΄λΈ”μ— λΆ„μ‚°λ˜μ–΄μžˆμœΌλ©΄ κ΄€λ¦¬ν•˜κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ— 쀑볡데이터λ₯Ό μ—†μ• κ³  관계λ₯Ό λ‹¨μˆœν•˜κ²Œ κ°€μ Έκ°„λ‹€.

μ‹ μž…κ°œλ°œμž μ‹œμ ˆμ—λŠ” ν…Œμ΄λΈ” ν•˜λ‚˜μ— 데이터λ₯Ό λ‹΄λŠ” 게 λ‹¨μˆœν•œ 것인 쀄 μ•ˆλ‹€. κ·ΈλŸ¬λ‚˜ 데이터 λͺ¨λΈλ§μ„ ν•˜λ‹€ 보면, 성격이 λ‹€λ₯Έ λ°μ΄ν„°λŠ” μ„œλ‘œ λΆ„λ¦¬ν•˜λŠ” 것이 λ§žλ‹€. 이λ₯Όν…Œλ©΄ '학생', 'μˆ˜κ°•μ‹ μ²­' ν…Œμ΄λΈ”μ„ ν•˜λ‚˜λ‘œ 두면 코딩은 μ‰½κ² μ§€λ§Œ μ‹€μ œλ‘œ λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ³΅μž‘ν•΄μ§„λ‹€. μ΄λŠ” μ‹€λ¬΄μ—μ„œ 해보닀보면 슀슀둜 μ•Œκ²Œ 되고, λ”°λΌμ„œ 이 μ •κ·œν™” 과정은 μ‹€μ œλ‘œ 해보면 λͺΈμ— 체득이 λœλ‹€. λ¬΄μ—‡μΈμ§€λ§Œ μ•Œκ³  있으면 μžμ—°μŠ€λŸ½κ²Œ λœλ‹€.

 

제1μ •κ·œν™”(1NF) : μ›μžμ„±

λͺ¨λ“  속성은 ν•˜λ‚˜μ˜ κ°’(Atomic Value)만 κ°–λŠ”λ‹€.

 μœ„ ν…Œμ΄λΈ”μ„ 보면 μΆ”μ‹ μˆ˜, λ°•μ„Έλ¦¬λŠ” μ›μžμ„±μ„ μ€€μˆ˜ν•˜μ§€ μ•ŠλŠ” 것을 확인할 수 μžˆλ‹€. 이에 1μ •κ·œν™” 과정을 거쳐 μ›μžμ„±μ„ 갖도둝 λΆ„ν•΄ν•  수 μžˆλ‹€.

 

 

제2μ •κ·œν™”(2NF) : μ™„μ „ ν•¨μˆ˜μ  쒅속 (λΆ€λΆ„ 쒅속 제거)

λͺ¨λ“  속성은 기본킀에 μ’…μ†λ˜μ–΄μ•Ό ν•œλ‹€. 즉, table에 따라 μ’…μ†λ˜λŠ” columnλ“€λ§Œ λ‘μžλŠ” 것.

μœ„μ™€ 같은 ν…Œμ΄λΈ”μ—μ„œ κΈ°λ³Έν‚€λŠ” (ν•™μƒλ²ˆν˜Έ, κ°•μ’Œμ΄λ¦„)으둜 이루어진 볡합킀이닀. 

λͺ¨λ“  ν‚€λŠ” 기본킀에 μ’…μ†λ˜μ–΄μ•Ό ν•˜λŠ”λ°, 값듀을 보면 'κ°•μ˜μ‹€' μ†μ„±μ˜ 값듀은 'κ°•μ’Œμ΄λ¦„'에 μ˜ν•΄ 결정될 수 μžˆλ‹€. 즉, κ°•μ’Œ 이름은 κΈ°λ³Έν‚€(ν•™μƒλ²ˆν˜Έ, κ°•μ’Œμ΄λ¦„)의 뢀뢄킀인데, 'κ°•μ˜μ‹€' 속성은 'κ°•μ’Œ 이름'에 μ’…μ†λ˜μ–΄μžˆλ‹€λŠ” 것이닀. 이λ₯Ό λΆ€λΆ„ ν•¨μˆ˜μ  쒅속이라고 ν•˜λŠ”λ°, 이λ₯Ό λΆ„ν•΄ν•˜λŠ” 것을 2μ •κ·œν™”λΌκ³  ν•œλ‹€.

 

제3μ •κ·œν™”(3NF) : 이행 쒅속 제거

κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  속성 κ°„μ—λŠ” μ„œλ‘œ 쒅속될 수 μ—†λ‹€! 
μ •κ·œν™”λŠ” 제4,5,6.. 계속 μžˆμ§€λ§Œ κ°€μž₯ μ£Όμš”ν•œ 것은 3κΉŒμ§€. κ·ΈλŸ¬λ‚˜ μ•žμœΌλ‘œλ„ μ •κ·œν™”λŠ” ν•„μš”ν•  λ•Œλ§ˆλ‹€ κΎΈμ€€νžˆ ν•΄λ‚˜κ°€μ•Ό ν•œλ‹€.

이행적 μ’…μ†μ΄λΌλŠ” 것은 A → B, B → C일 λ•Œ A → Cκ°€ μ„±λ¦½λ˜λŠ” 것을 μ˜λ―Έν•œλ‹€. 예λ₯Ό λ“€λ©΄, μ•„λž˜μ˜ ν…Œμ΄λΈ”μ—μ„œλŠ” 'μˆ˜κ°•λ£Œ'κ°€ 'ν•™μƒλ²ˆν˜Έ' 속성에 이행 μ’…μ†λ˜μ–΄μžˆλ‹€κ³  λ³Ό 수 μžˆλ‹€.

μ •κ·œν™”μ—μ„œ 이행적 쒅속을 μ œκ±°ν•΄μ•Ό ν•˜λŠ” μ΄μœ λŠ” λ‹€μŒκ³Ό 같이 생각해보면 쉽닀. 예λ₯Ό λ“€μ–΄, 402번 학생이 자료ꡬ쑰 μˆ˜μ—…μœΌλ‘œ μˆ˜κ°• 변경을 ν•˜κ²Œ 되면 μˆ˜κ°•λ£Œλ„ ν•¨κ»˜ λ³€κ²½ν•΄μ£Όμ–΄μ•Ό ν•˜λŠ” λ²ˆκ±°λ‘œμ›€μ΄ 생긴닀. μ΄λŸ¬ν•œ 것을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ 제3μ •κ·œν™”λ₯Ό ν•˜λŠ” 것이닀.

제3μ •κ·œν™”λ₯Ό 톡해 λΆ„ν•΄ν•œ κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

 

BCNF(Boyce and Codd Normal Form) μ •κ·œν™”

λͺ¨λ“  κ²°μ •μžλŠ” 후보킀에 속해야 ν•œλ‹€. 

BCNF μ •κ·œν™”λŠ” λͺ¨λ“  κ²°μ •μžκ°€ 후보킀가 λ˜λ„λ‘ ν…Œμ΄λΈ”μ„ λΆ„ν•΄ν•˜λŠ” 것이닀.

μœ„ ν…Œμ΄λΈ”μ—μ„œ λ¬Έμ œλŠ”, 'ꡐ수' 속성은 νŠΉκ°• 이름을 κ²°μ •ν•˜λŠ” κ²°μ •μžμž„μ—λ„ 후보킀가 μ•„λ‹ˆλΌλŠ” 점이닀. 이λ₯Ό ν›„λ³΄ν‚€λ‘œ λ§Œλ“€μ–΄μ£Όλ©΄ κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

 

 

 

❗
μ •κ·œν™”λ₯Ό 잘 ν–ˆλŠ”λ° ν…Œμ΄λΈ”μ„ 많이 μͺΌκ°œλ‹€λ³΄λ‹ˆ μ„±λŠ₯이 λ‚˜λΉ μ§€κ±°λ‚˜, λΉ„νš¨μœ¨μ„±μ΄ λ°œμƒν•  수 μžˆλ‹€. 그럴 λ•Œμ—λŠ” λ°˜μ •κ·œν™”λ₯Ό ν•œλ‹€.

 

 

λ°˜μ •κ·œν™” (μ—­μ •κ·œν™”)

μ •κ·œν™”λœ 데이터 λͺ¨λΈμ„ 톡합, 쀑볡, λΆ„λ¦¬ν•˜λŠ” κ³Όμ •. μ˜λ„μ μœΌλ‘œ μ •κ·œν™” 원칙을 μœ„λ°°ν•˜λŠ” 것이닀.
  • ν…Œμ΄λΈ” λ°˜μ •κ·œν™” (쀑볡/톡계/이λ ₯/λΆ€λΆ„ ν…Œμ΄λΈ”)
  • 컬럼 λ°˜μ •κ·œν™” (쀑볡/νŒŒμƒ 컬럼)
  • 관계 λ°˜μ •κ·œν™”
❗  데이터 μœ μ§€ κ³„νš εΏ…!!

λ°˜μ •κ·œν™”λŠ” 빅데이터λ₯Ό λ‹€λ£¨λŠ”, 데이터가 λ°©λŒ€ν•œ μ‹œμŠ€ν…œ(ex: 데이터 μ›¨μ–΄ν•˜μš°μŠ€)μ—μ„œλŠ” λ°˜μ •κ·œν™”λ₯Ό 많이 ν•œλ‹€. μ„±λŠ₯을 μœ„ν•΄ λ°˜μ •κ·œν™”λ₯Ό ν•œλ‹€λŠ” 것이닀. 단, ν•œ 데이터가 λ°”λ€Œμ—ˆμ„ λ•Œ λ‹€λ₯Έ 데이터λ₯Ό μ–΄λ–»κ²Œ λ°”κΏ€ 것인지에 λŒ€ν•œ 데이터 μœ μ§€ κ³„νšμ΄ ν•„μˆ˜μ μ΄λ‹€.

 

1μ°¨ λ°˜μ •κ·œν™”

고객에 λŒ€ν•œ μ—”ν‹°ν‹° νƒ€μž…μ— 방문을 두 λ²ˆκΉŒμ§€ κ°€λŠ₯ν•˜λ‹€κ³  ν•΄λ³΄μž.

μ•„λž˜ 그림을 보면, 고객번호, 고객λͺ…이 쀑볡 속성 값을 κ°–κΈ° λ•Œλ¬Έμ— 1μ°¨ μ •κ·œν™”μ˜ λŒ€μƒμ΄ λ˜μ–΄ 쀑간에 μžˆλŠ” 고객방문 μ—”ν‹°ν‹° νƒ€μž…μœΌλ‘œ 1μ°¨ μ •κ·œν™”κ°€ λ˜μ—ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΅œλŒ€ 2νšŒκΉŒμ§€ 방문이 κ°€λŠ₯ν•˜λ‹€λŠ” 업무 κ·œμΉ™μ„ μ΄μš©ν•˜μ—¬ μ„±λŠ₯κ³Ό λ‹¨μˆœμ„±μ„ κ³ λ €ν•˜μ—¬ 였λ₯Έμͺ½μ— μžˆλŠ” 1μ°¨ μ •κ·œν™”μ— λŒ€ν•œ λ°˜μ •κ·œν™” μ—”ν‹°ν‹° νƒ€μž…μœΌλ‘œ μ„€κ³„λœ μ˜ˆμ΄λ‹€.

 

μ΅œλŒ€ λ°œμƒν•˜λŠ” 값을 μ΄μš©ν•œ 이와 같은 λ°˜μ •κ·œν™”μ˜ μœ ν˜•μ€ μ‹€μ „ ν”„λ‘œμ νŠΈμ—μ„œ λΉˆλ²ˆν•˜κ²Œ μ‚¬μš©λ˜μ§€λ§Œ, μ΅œλŒ€ λ°œμƒ 값이 λ³€ν•  수 μžˆλŠ” κ²½μš°λŠ” μ •κ·œν™”λœ λͺ¨μŠ΅μœΌλ‘œ λͺ¨λΈλ§ν•΄μ•Ό ν™•μž₯μ„±(flexible)이 보μž₯λœλ‹€λŠ” 것을 κΈ°μ–΅ν•΄μ•Ό ν•œλ‹€.

 

2μ°¨ λ°˜μ •κ·œν™”

그림의 λͺ¨λΈμ€ μΌμžλ³„ 맀각 물건 μ—”ν‹°ν‹° νƒ€μž…μ—μ„œ 맀각 μΌμžκ°€ κ²°μ •μžκ°€ 되고, 맀각 μž₯μ†Œμ™€ 맀각 μ‹œκ°„μ΄ μ˜μ‘΄μžκ°€ 된 ν•¨μˆ˜ 쒅속성이 μ‘΄μž¬ν•˜μ—¬ 2μ°¨ μ •κ·œν™”λ₯Ό μ μš©ν–ˆλ‹€κ°€ λ‹€μ‹œ 쑰인에 μ˜ν•œ μ„±λŠ₯μ €ν•˜ 예방과 λ‹¨μˆœμ„±μ„ μœ„ν•΄ λ‹€μ‹œ μΌμžλ³„λ§€κ°λ¬Όκ±΄μ΄λΌλŠ” μ—”ν‹°ν‹° νƒ€μž…μ— λ°˜μ •κ·œν™”λ₯Ό ν•œ κ²½μš°μ΄λ‹€.

 

3μ°¨ λ°˜μ •κ·œν™”

그림을 보면 μˆ˜λ‚©μ΄λΌκ³  ν•˜λŠ” μ—”ν‹°ν‹° νƒ€μž…μ€ μ†μ„±κ°„μ˜ κ²°μ •μž(μˆ˜λ‚©ν™•μΈλ²ˆν˜Έ)와 μ˜μ‘΄μžκ°€ μ‘΄μž¬ν•˜λŠ” 3μ°¨ μ •κ·œν™”μ˜ λŒ€μƒμ΄ λ˜λŠ” λͺ¨μŠ΅μ΄λ‹€. λ”°λΌμ„œ μˆ˜λ‚©ν™•μΈλ²ˆν˜Έλ₯Ό κ²°μ •μžλ‘œ ν•˜κ³  μˆ˜λ‚©ν™•μΈλ°©λ²•, μˆ˜λ‚©ν™•μΈμΌμž, μˆ˜λ‚©ν™•μΈμžμ‚¬λ²ˆμ„ μ†μ„±μœΌλ‘œ ν•˜λŠ” 3μ°¨ μ •κ·œν™”λ₯Ό μ μš©ν•˜μ˜€λ‹€.

λ°˜μ •κ·œν™”λ₯Ό ν•˜λŠ” λŒ€μƒμœΌλ‘œλŠ” ν…Œμ΄λΈ”, 속성, 관계에 λŒ€ν•΄ μ μš©ν•  수 있으며 κΌ­ ν…Œμ΄λΈ”κ³Ό 속성, 관계에 λŒ€ν•΄ μ€‘λ³΅μœΌλ‘œ κ°€μ Έκ°€λŠ” λ°©λ²•λ§Œμ΄ λ°˜μ •κ·œν™”κ°€ μ•„λ‹ˆκ³  ν…Œμ΄λΈ”, 속성, 관계λ₯Ό μΆ”κ°€ν•  μˆ˜λ„ 있고 λΆ„ν• ν•  μˆ˜λ„ 있으며 μ œκ±°ν•  μˆ˜λ„ μžˆλ‹€. μ •κ·œν™”μ— μœ„λ°°λ˜λŠ” 것은 μ•„λ‹ˆμ§€λ§Œ μ„±λŠ₯을 μœ„ν•΄ μ μš©ν•˜λŠ” λ°˜μ •κ·œν™”μ˜ λ°©λ²•μœΌλ‘œλŠ” ν…Œμ΄λΈ” 톡합/뢄리, 속성 쀑볡, 관계 쀑볡 λ“± μ—¬λŸ¬ κ°€μ§€κ°€ μžˆμ„ 수 μžˆλ‹€.

 


참고 자료