λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Database/κ΄€κ³„ν˜• 데이터 λͺ¨λΈλ§ λ…ΈνŠΈ

04. 속성 이야기 (1)

속성

  • μ—”ν„°ν‹°μ˜ 성격을 μƒμ„Έν•˜κ²Œ κΈ°μˆ ν•˜λŠ” μš”μ†Œ
  • 데이터λ₯Ό μ €μž₯ν•˜λŠ” κ°€μž₯ μž‘μ€, λ…λ¦½λœ μ €μž₯ λ‹¨μœ„

 

μ†μ„±μ˜ λΆ„λ₯˜λ²•

  • μ‹λ³„μž 속성과 λΉ„μ‹λ³„μž 속성
  • 기초/관계/μΆ”μΆœ/μ‹œμŠ€ν…œ 속성
  • 원본 속성과 μΆ”μΆœ 속성
  • 단일 κ°’ 속성과 λ‹€κ°€ 속성
  • λ‹¨μˆœ 속성과 볡합 속성
  • ν•„μˆ˜ 속성과 선택 속성
  • μ½”λ“œ 속성과 λΉ„μ½”λ“œ 속성

 

μ‹λ³„μž 속성과 λΉ„μ‹λ³„μž 속성

μ‹λ³„μž 속성

  • 엔터티에 μ‘΄μž¬ν•˜λŠ” μΈμŠ€ν„΄μŠ€μ˜ μœ μΌμ„±μ„ 보μž₯ν•΄μ£ΌλŠ” 속성 λ˜λŠ” 속성 μ§‘ν•©
  • μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€λ§ˆλ‹€ μ„œλ‘œ λ‹€λ₯Έ 값을 κ°€μ§€λŠ” 속성

λΉ„μ‹λ³„μž 속성

  • 일반 μ†μ„±μœΌλ‘œμ„œ, μ‹λ³„μž 속성에 λ”°λ₯Έ νŠΉμ„±μ„ μ„€λͺ…ν•˜λŠ” 속성
  • μΈμŠ€ν„΄μŠ€λ§ˆλ‹€ 같은 값을 κ°€μ§ˆ 수 있음


μ‹λ³„μž μ’…λ₯˜ - 후보 μ‹λ³„μž

후보 μ‹λ³„μž: μ£Ό μ‹λ³„μžκ°€ 될 κ°€λŠ₯성이 μžˆλŠ” μ‹λ³„μž

  • λͺ¨λ“  μ‹λ³„μžλŠ” μ£Ό μ‹λ³„μžκ°€ 될 수 μžˆλŠ” ν›„λ³΄μ΄λ―€λ‘œ, μ‹λ³„μžμ™€ 후보 μ‹λ³„μžλŠ” 사싀상 동일어닀.
  • 널을 ν—ˆμš©ν•  수 μžˆλ‹€λŠ” 것을 μ œμ™Έν•˜λ©΄ 후보 μ‹λ³„μžλŠ” μ£Ό μ‹λ³„μžμ™€ 성격이 λ™μΌν•˜λ‹€. → 물리적으둜 μΈμŠ€ν„΄μŠ€μ˜ μœ μΌμ„±μ„ 보μž₯ν•΄μ£ΌκΈ° μœ„ν•΄ μœ λ‹ˆν¬ 인덱슀λ₯Ό 생성해야 ν•œλ‹€.

 

μ‹λ³„μž μ’…λ₯˜ - μ£Ό μ‹λ³„μž

μ£Ό μ‹λ³„μž: 엔터티에 ν•˜λ‚˜λ§Œ μ‘΄μž¬ν•˜λŠ” λŒ€ν‘œ μ‹λ³„μž

  • νŽΈμ˜μƒ PK와 μ£Όμ‹λ³„μžλ₯Ό λ™μΌν•˜κ²Œ μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ λ§Žμ§€λ§Œ μ—„λ°€νžˆ 보면 λ‹€λ₯Έ κ°œλ…μ΄λ‹€.
    • PKλŠ” ν…Œμ΄λΈ”μ— μ§€μ •λœ 물리적인 μ œμ•½μ„ μ˜λ―Έν•œλ‹€. 
    • μ£Ό μ‹λ³„μžλŠ” λ…Όλ¦¬μ μœΌλ‘œ μΈμŠ€ν„΄μŠ€λ₯Ό μ‹λ³„ν•˜λŠ” 기쀀을 μ˜λ―Έν•œλ‹€.
    • 논리적인 μ£Ό μ‹λ³„μžμ— λ‹€λ₯Έ 속성을 μΆ”κ°€ν•΄μ„œ 물리적인 PKλ₯Ό 생성할 μˆ˜λ„ μžˆλ‹€.

 

μ£Ό μ‹λ³„μžλ₯Ό λ°”λΌλ³΄λŠ” 두 κ°€μ§€ 관점

  1. μžμ‹ μ˜ μ—”ν„°ν‹°λ₯Ό λ°”λΌλ³΄λŠ” 관점: PK μ—­ν• 
  2. λ‹€λ₯Έ μ—”ν„°ν‹°μ—μ„œ λ°”λΌλ³΄λŠ” 관점: FK μ—­ν• 

 

μ£Ό μ‹λ³„μžλ₯Ό μ„ μ •ν•˜λŠ” 방법

  1. ν•˜λ‚˜ λ˜λŠ” μ—¬λŸ¬ 개의 후보 μ‹λ³„μž μ€‘μ—μ„œ λŒ€ν‘œλ₯Ό μ§€μ •ν•˜λŠ” 방법
  2. μ λ‹Ήν•œ 후보 μ‹λ³„μžκ°€ μ—†λ‹€λ©΄ 인쑰 μ‹λ³„μžλ₯Ό λ§Œλ“€μ–΄ μ£Ό μ‹λ³„μžλ‘œ μ‚¬μš©ν•˜λŠ” 방법

 

μ£Ό μ‹λ³„μžμ˜ νŠΉμ§•

  • μ—”ν„°ν‹°μ—λŠ” μ£Ό μ‹λ³„μžκ°€ λ°˜λ“œμ‹œ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.
  • μ£Ό μ‹λ³„μžλŠ” ν•˜λ‚˜λ§Œ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.
  • μ£Ό μ‹λ³„μžλŠ” 널 값을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ£Ό μ‹λ³„μžλŠ” μ •κ·œν™”μ˜ 기쀀이 λ˜λŠ” 속성이닀.
  • μ£Ό μ‹λ³„μžλŠ” μ—”ν„°ν‹°μ˜ 성격(정체성)을 λŒ€λ³€ν•  수 μžˆλŠ” 기초 μ†μ„±μ΄λ―€λ‘œ κ°€μž₯ μ€‘μš”ν•œ μš”μ†Œ 쀑 ν•˜λ‚˜λ‹€.

 

μ£Ό μ‹λ³„μžκ°€ λ°”λ€ŒλŠ” ν˜„μƒ

μ£Ό μ‹λ³„μžκ°€ λ°”λ€ŒλŠ” 원인

  1. μ—”ν„°ν‹° μ •μ˜κ°€ 뢈λͺ…ν™•ν•  λ•Œ
  2. 데이터 뢄석이 미흑할 λ•Œ
  3. 이λ ₯ 데이터λ₯Ό κ³ λ €ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ
  4. 업무가 변경될 λ•Œ

 

μ–΄λ–€ 속성을 μ£Ό μ‹λ³„μžλ‘œ 선택해야 ν•˜λŠ”κ°€?

μ£Ό μ‹λ³„μžλ₯Ό 선택할 λ•Œ κ³ λ €ν•  사항

  1. μ£Ό μ‹λ³„μž μ†μ„±μ˜ 값이 λ³€κ²½λ˜μ§€ μ•Šλ„λ‘ μ„ μ •
  2. 일반 속성에 μ’…μ†λ˜μ§€ μ•Šλ„λ‘ μ„ μ •
  3. 인쑰 μ‹λ³„μžμ—λŠ” 의미λ₯Ό λΆ€μ—¬ν•˜μ§€ μ•Šλ„λ‘ μ„ μ •
  4. μ£Ό μ‹λ³„μž 속성에 λ…Όλ¦¬μ μœΌλ‘œ 널 값이 μ‘΄μž¬ν•˜μ§€ μ•Šλ„λ‘ μ„ μ •
  5. μ΅œμ†Œν•œμ˜ 속성이 ν¬ν•¨λ˜λ„λ‘ μ„ μ •
  6. μ—…λ¬΄μ μœΌλ‘œ ν™œμš©λ„κ°€ 높은 μ†μ„±μœΌλ‘œ μ„ μ •
  7. 업무 μ‹λ³„μžμ™€ 인쑰 μ‹λ³„μžκ°€ ν˜Όν•©λ˜μ§€ μ•Šλ„λ‘ μ„ μ •
  8. 슈퍼 μ‹λ³„μžκ°€ λ˜μ§€ μ•Šλ„λ‘ μ„ μ •
  9. μ΅œμ†Œ 길이가 λ˜λ„λ‘ μ„ μ •
  10. μ£Ό μ‹λ³„μž 속성 값은 κ°€λŠ₯ν•œ κ³ μ • 길이가 λ˜λ„λ‘ μ„ μ •
  11. μ£Ό μ‹λ³„μž 속성은 μ „μ‚¬μ—μ„œ ν•œ 번만 μ‚¬μš©λ˜λ„λ‘ μ„ μ •
  12. μ•”ν˜Έν™” λŒ€μƒ 속성이 ν¬ν•¨λ˜μ§€ μ•Šλ„λ‘ μ„ μ •
  13. 업무λ₯Ό λŒ€ν‘œν•  수 μžˆλŠ” μ†μ„±μœΌλ‘œ μ„ μ •

 

μ£Ό μ‹λ³„μžλ₯Ό λ‹¨μˆœν•˜κ²Œ 섀계해야 ν•˜λŠ” 이유 

μ£Ό μ‹λ³„μžλ₯Ό κ΅¬μ„±ν•˜λŠ” μ†μ„±μ˜ μˆ˜λŠ” κ°€λŠ₯ν•œ μ μ„μˆ˜λ‘ μ’‹λ‹€. 업무 μ‹λ³„μžλ₯Ό μ£Ό μ‹λ³„μžλ‘œ μ±„νƒν•˜λŠ” 것이 λ°”λžŒμ§ν•˜μ§€λ§Œ, 업무 μ‹λ³„μžλ₯Ό κ΅¬μ„±ν•˜λŠ” μ†μ„±μ˜ κ°œμˆ˜κ°€ 많고 ν•΄λ‹Ή μ—”ν„°ν‹°κ°€ 비ꡐ적 μƒμœ„(λΆ€λͺ¨) 엔터티라면 ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°λ₯Ό κ³ λ €ν•΄ μ£Ό μ‹λ³„μžλ₯Ό κ°„λž΅ν•˜κ²Œ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

 

μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•˜λ©΄ λ‹€λ₯Έ 엔터티와 관계λ₯Ό ν‘œν˜„ν•  λ•Œ 관계선이 λ³΅μž‘ν•΄μ Έ 가독성이 λ–¨μ–΄μ§€λ©° 관계 μžμ²΄λ„ κ΄€λ¦¬ν•˜κΈ° μ–΄λ €μ›Œμ§„λ‹€.

 

μ£Ό μ‹λ³„μžκ°€ 많으면 쑰인 ꡬ문이 λ³΅μž‘ν•΄μ Έ 쿼리가 κΈΈμ–΄μ§„λ‹€. μ΄λŠ” 쑰인 ꡬ문의 코딩이 번거둜울 뿐만 μ•„λ‹ˆλΌ, 잘λͺ» μ½”λ”©ν•  κ°€λŠ₯성이 컀지며 ν•˜λ“œ νŒŒμ‹±μ΄ λ°œμƒν•  수 μžˆλŠ” λ“± 단점이 μ‘΄μž¬ν•œλ‹€.

 

μ£Ό μ‹λ³„μž μΈλ±μŠ€κ°€ μ»€μ§€λŠ” 것도 μ„±λŠ₯에 μ•…μ˜ν–₯을 λ―ΈμΉ  수 μžˆλ‹€. 

 

μ£Ό μ‹λ³„μž μ„ μ • 절차

 

 

λ³΅μž‘ν•œ μ£Ό μ‹λ³„μž

μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•΄μ§€λŠ” 이유

  1. κΈ°μ€€ 데이터λ₯Ό 관리할 λ•Œ
  2. 집계 데이터λ₯Ό 관리할 λ•Œ
  3. μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ” 기쀀이 λ³΅μž‘ν•  λ•Œ
  4. ꡐ차 엔터티일 λ•Œ
  5. 슈퍼 μ‹λ³„μžκ°€ μ‚¬μš©λ  λ•Œ
  6. μ£Ό μ‹λ³„μž 상속이 μ§€μ†μ μœΌλ‘œ μ΄λ£¨μ–΄μ§ˆ λ•Œ

 

볡합 μ£Ό μ‹λ³„μžμ˜ 속성 μˆœμ„œ

μ£Ό μ‹λ³„μžκ°€ μ—¬λŸ¬ μ†μ„±μœΌλ‘œ κ΅¬μ„±λœ 볡합 μ£Ό μ‹λ³„μžμΌ λ–„λŠ” 쑰회 μ„±λŠ₯을 κ³ λ €ν•˜μ—¬ μ†μ„±μ˜ μˆœμ„œλ₯Ό κ²°μ •ν•΄μ•Ό ν•œλ‹€. 이 μž‘μ—…μ€ μ£Ό μ‹λ³„μžκ°€ κ²°μ •λœ 후에 λ§ˆμ§€λ§‰μœΌλ‘œ ν•˜κ²Œ λœλ‹€.

λ¬Έμ œλŠ” 뢄석/섀계 λ‹¨κ³„μ—μ„œλŠ” 쑰회 μš”κ±΄μ„ κ²€ν† ν•  수 μ—†λ‹€λŠ” 것이닀. 쑰회 μš”κ±΄μ„ κ²€ν† ν•  수 μžˆλŠ” λ‹¨κ³„λŠ” μ΅œμ†Œν•œ 개발 단계닀. 개발이 λλ‚œ ν›„ ν…ŒμŠ€νŠΈ λ‹¨κ³„μ—μ„œ μ„±λŠ₯ 문제 λ•Œλ¬Έμ— μ£Ό μ‹λ³„μžμ˜ 속성 μˆœμ„œλ₯Ό λ³€κ²½ν•˜λŠ” 일은 자주 λ°œμƒν•œλ‹€.

 

  • μ£Ό μ‹λ³„μžλ₯Ό 물리적인 μ£Ό ν‚€λ‘œ μƒμ„±ν•˜λ©΄ μœ λ‹ˆν¬ μΈλ±μŠ€κ°€ μƒμ„±λ˜λŠ”λ° 이 μœ λ‹ˆν¬ 인덱슀의 첫 번째 속성이 ν•΄λ‹Ή μ—”ν„°ν‹°λ₯Ό μ‘°νšŒν•˜λŠ” μ‘°κ±΄μ ˆμ— 자주 μ‚¬μš©λ˜λ„λ‘ ν•˜λŠ” 것이 핡심이닀.
  • μ‘°κ±΄μ ˆμ— ν¬ν•¨λœ 속성 μ€‘μ—μ„œ 뢄포도λ₯Ό κ°€μž₯ 쀄일 수 μžˆλŠ” 속성이 μ£Ό μ‹λ³„μžμ˜ 맨 μ²˜μŒμ— μ˜€λŠ” 것이 νš¨μœ¨μ μ΄λ‹€.
  • WHERE μ‘°κ±΄μ—μ„œ '='λ‚˜ 'BETWEEN' 등이 μ‚¬μš©λ˜λŠ” 속성이 μ£Ό μ‹λ³„μžμ˜ 맨 μ•žμ— μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€. 'LIKE'κ°€ μ‚¬μš©λœ 속성이 μ£Ό μ‹λ³„μžμ˜ 맨 μ•žμ— μ‘΄μž¬ν•˜λ©΄ μ•ˆ λœλ‹€.

 

ꡐ차 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μž

 

μœ ν˜• 1.

ꡐ차 μ—”ν„°ν‹°μ˜ κ°€μž₯ 기본적인 μœ ν˜•μœΌλ‘œ μ–‘μͺ½ μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ§ŒμœΌλ‘œ ꡐ차 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό κ΅¬μ„±ν•˜λŠ” λͺ¨λΈ

μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ§ŒμœΌλ‘œ ꡐ차 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό ꡬ성할 λ•ŒλŠ”, μ—…λˆ„μ μœΌλ‘œ κΈ°μ€€ 성격이 κ°•ν•œ μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό λ¨Όμ € μœ„μΉ˜μ‹œν‚¨λ‹€.

 

μœ ν˜• 2.

μ–‘μͺ½ μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžμ— 자체 업무 μ‹λ³„μžκ°€ μΆ”κ°€λœ λͺ¨λΈ

 

μœ ν˜• 3.

업무 μ‹λ³„μžκ°€ λ³΅μž‘ν•œ μ—”ν„°ν‹°λŠ” μ£Ό μ‹λ³„μžλ₯Ό λ‹¨μˆœν™”μ‹œν‚¬ ν•„μš”κ°€ μžˆλ‹€. → 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λŠ” λͺ¨λΈ

 

μœ ν˜• 4.

λΆ€λΆ„ 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λŠ” λͺ¨λΈ

μ–‘μͺ½ μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μž μ€‘μ—μ„œ 자주 μ‚¬μš©ν•˜λŠ” ν•œμͺ½ λΆ€λͺ¨ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μž(λŒ€ν‘œ μ£Ό μ‹λ³„μž)만 μƒμ†ν•˜λ©΄μ„œ 순번 속성을 μΆ”κ°€ν•˜λŠ” λͺ¨λΈ

 

사원 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžμ™€ μ‚¬μ›μ˜ μ •μ˜μ— λŒ€ν•΄μ„œ

이 λͺ¨λΈμ—μ„œ μ£Όμ˜ν•  점: μ£Ό μ‹λ³„μžμΈ μ‚¬μ›λ²ˆν˜Έ

  • μ£Ό μ‹λ³„μž κ°’μ—λŠ” μ–΄λ–€ 체계도 μ—†λŠ” 것이 λ°”λžŒμ§ν•˜λ‹€. 
  • μ‚¬μ›λ²ˆν˜Έμ— μž…μ‚¬μ—°λ„ 등을 ν¬ν•¨ν•˜λŠ” 것은 μ’‹μ§€ μ•Šλ‹€.

홍길동 사원이 퇴사 ν›„ μž¬μž…μ‚¬ ν•œ 경우 μœ„μ™€ 같이 두 개의 μ‚¬μ›λ²ˆν˜Έλ₯Ό κ°€μ§€κ²Œ λœλ‹€. → μž…μ‚¬λ…„λ„μ— 따라 μ‚¬μ›λ²ˆν˜Έκ°€ 달라지면 사원 데이터λ₯Ό 톡합 κ΄€λ¦¬ν•˜λŠ” 데 어렀움을 κ²ͺ게 λœλ‹€.

 

μ£Ό μ‹λ³„μžμ˜ 값이 일반 μ†μ„±μ˜ 값에 μ’…μ†λ˜λŠ” 것은 기본적으둜 잘λͺ» μ„€κ³„ν•œ λͺ¨λΈμ΄λ‹€.

 

μ£Ό μ‹λ³„μžμΈ μ‚¬μ›λ²ˆν˜Έ 속성 κ°’μ—λŠ” μ–΄λ– ν•œ 체계도 μ—†μœΌλ©°, 심지어 μž…μ‚¬ μˆœμ„œλ„ μ•Œ 수 없도둝 순번이 μ•„λ‹ˆλž‘ λ¬΄μž‘μœ„λ‘œ 번호λ₯Ό μ±„λ²ˆν•œλ‹€. λ˜ν•œ ν•œ 번 λΆ€μ—¬λœ '홍길동'의 μ‚¬μ›λ²ˆν˜ΈλŠ” μž¬μž…μ‚¬ 여뢀와 λ¬΄κ΄€ν•˜κ²Œ μ§€μ†ν•΄μ„œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. μž…μ‚¬μΌμž/ν‡΄μ‚¬μΌμž λ“± λ³€κ²½ 사항은 사원이λ ₯ μ—”ν„°ν‹°μ—μ„œ λ³„λ„λ‘œ κ΄€λ¦¬ν•œλ‹€.

 

사원 데이터λ₯Ό 고겍 엔터티에 ν†΅ν•©ν•˜λŠ” 경우

 

μœ„ λͺ¨λΈμ„ 물리 λͺ¨λΈλ‘œ λ³€ν™˜ μ‹œ 

 

μ΄λ ‡κ²Œ 사원이 고객에 ν†΅ν•©λ˜λ©΄ κ³ κ°λ²ˆν˜Έμ™€ μ‘°μΈν•΄μ„œ 사원 정보λ₯Ό μ•Œκ²Œ λœλ‹€. μœ„μ™€ λ‹€λ₯΄κ²Œ 사원 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό μ‚¬μ›λ²ˆν˜Έ μ†μ„±μœΌλ‘œ 섀계할 μˆ˜λ„ μžˆλ‹€.

 

μ‹€λ¬΄μ—μ„œλŠ” μ‚¬μ›λ²ˆν˜Έμ˜ 상징성 λ•Œλ¬Έμ— μœ„ λͺ¨λΈμ΄ 많이 μ‚¬μš©λœλ‹€. μ΄λ•Œλ„ μ‚¬μ›λ²ˆν˜ΈλŠ” λ¬΄μ˜λ―Έν•œ 번호둜 μ‚¬μš©ν•˜λŠ” 것이 λ°”λžŒμ§ν•˜λ‹€. λ˜ν•œ 고객번호 μ†μ„±μ—λŠ” μœ λ‹ˆν¬ 인덱슀λ₯Ό μƒμ„±ν•΄μ„œ μ€‘λ³΅λ˜λŠ” κ³ κ°λ²ˆν˜Έκ°€ 생기지 μ•Šλ„λ‘ ν•΄μ•Ό ν•œλ‹€. κ³ κ°λ²ˆν˜Έκ°€ 후보 μ‹λ³„μžμΈλ°λ„ λΆˆκ΅¬ν•˜κ³  ν™œμš© νš¨μœ¨μ„± λ•Œλ¬Έμ— 인쑰 μ‹λ³„μžμΈ μ‚¬μ›λ²ˆν˜Έλ₯Ό μ±„νƒν•œ κ²ƒμ΄μ–΄μ„œ 업무 μ‹λ³„μžμ—λŠ” μ œμ•½μ„ μƒμ„±ν•˜λŠ” 것이 μ’‹λ‹€.

 

μ‹λ³„μž μ’…λ₯˜ - 인쑰 μ‹λ³„μž

인쑰 μ‹λ³„μž: μž„μ˜λ‘œ μƒμ„±ν•œ μ‹λ³„μžλ₯Ό 의미

  • 후보 μ‹λ³„μž μ€‘μ—μ„œ μ£Ό μ‹λ³„μžλ‘œ μ‚¬μš©ν•  λ§ˆλ•…ν•œ 후보가 없을 λ•Œ, 순번 μ„±κ²©μ˜ 속성을 μΆ”κ°€ν•΄μ„œ μ‹λ³„μžλ‘œ μ‚¬μš©ν•œλ‹€.
  • 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λ©΄ μ£Ό μ‹λ³„μžκ°€ λ‹¨μˆœν•΄μ§„λ‹€.
  • 인쑰 μ‹λ³„μžλ§Œ λ΄μ„œλŠ” μƒˆλ‘œμš΄ μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜λŠ” 기쀀을 μ•Œ 수 μ—†λ‹€.
  • 인쑰 μ‹λ³„μžλ§ŒμœΌλ‘œλŠ” 업무λ₯Ό νŒŒμ•…ν•˜κΈ° μ–΄λ ΅λ‹€.
  • 인쑰 μ‹λ³„μžλŠ” 업무와읭 결합도λ₯Ό κ°μ†Œμ‹œμΌœ 결과적으둜 λͺ¨λΈμ˜ ν™•μž₯성을 μ¦κ°€μ‹œν‚€κΈ°λ„ ν•œλ‹€. 즉 업무 변경이 μ˜ˆμƒλœλ‹€λ©΄ 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜μ—¬ μœ μ—°ν•œ λͺ¨λΈμ΄ λ˜λ„λ‘ ν•΄μ•Ό ν•œλ‹€.
  • 인쑰 μ‹λ³„μžλŠ” 주둜 검색(WHERE) 쑰건에 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” νŠΉμ„±μ΄ μžˆλ‹€.
  • 인쑰 μ‹λ³„μžλ₯Ό μ±„νƒν•˜λ©΄ 업무 μ‹λ³„μžμ— μœ λ‹ˆν¬ 인덱슀λ₯Ό 생성해야 ν•˜λ―€λ‘œ 인덱슀λ₯Ό ν•˜λ‚˜ 더 관리해야 ν•œλ‹€.(업무 μ‹λ³„μžμ— λŒ€ν•œ λ³„λ„μ˜ 관리가 ν•„μš”ν•΄μ§„λ‹€.)

 

인쑰 μ‹λ³„μžλ₯Ό μ˜€μš©ν•˜λŠ” 경우

  1. λ‹¨μˆœν•œ λͺ¨λΈμ΄ 쒋은 λͺ¨λΈμ΄κΈ° λ•Œλ¬Έμ— 인쑰 μ‹λ³„μžλ₯Ό λ¬΄λΆ„λ³„ν•˜κ²Œ μ‚¬μš©ν•˜λŠ” 것은 μ§€μ–‘ν•΄μ•Ό ν•œλ‹€. 상황(μš”κ±΄)에 따라 νŒλ‹¨μ΄ λ‹¬λΌμ§„λ‹€λŠ” 점을 염두해 두어야 ν•œλ‹€.
  2. 인쑰 μ‹λ³„μžμ— 의미λ₯Ό λΆ€μ—¬ν•˜λŠ” μ‚¬μš©ν•˜λŠ” 것은 μ§€μ–‘ν•΄μ•Ό ν•œλ‹€. 

 

인쑰 μ‹λ³„μžκ°€ μ‚¬μš©λ˜κΈ°κΉŒμ§€μ˜ μˆœμ„œ

  1. 후보(업무) μ‹λ³„μž λ„μΆœ
  2. λ„μΆœλœ 후보(업무) μ‹λ³„μž μ€‘μ—μ„œ μ£Ό μ‹λ³„μžλ‘œ μ λ‹Ήν•œ 후보가 μžˆλŠ”μ§€ κ²€ν† 
  3. μ λ‹Ήν•œ 후보가 μ—†λ‹€λ©΄ 인쑰 μ‹λ³„μž μ‚¬μš©

 

인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•΄μ•Ό 쒋을 λ•Œ

  1. μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•˜λ©΄μ„œ ν•˜μœ„ μ—”ν„°ν‹°κ°€ λ‹€μˆ˜μΌ λ•Œ
  2. 업무λ₯Ό μ§κ΄€μ μœΌλ‘œ λ§Œλ“€μ–΄μ£ΌλŠ” 번호λ₯Ό μ‚¬μš©ν•  λ•Œ
  3. μ λ‹Ήν•œ 후보 μ‹λ³„μžκ°€ 없을 λ•Œ
  4. λͺ¨λΈμ„ μœ μ—°ν•˜κ²Œ 섀계해야 ν•  λ•Œ

 

업무 μ‹λ³„μžμ™€ 인쑰 μ‹λ³„μžμ˜ ν˜Όν•©

업무 μ‹λ³„μžμ™€ 인쑰 μ‹λ³„μžλ₯Ό ν˜Όν•©ν•΄μ„œ μ‚¬μš©ν•˜λ©΄ λ°”λžŒμ§ν•˜μ§€ μ•Šμ€ 이유

  • μš”κ±΄μ„ μ•ŒκΈ° μ–΄λ €μ›Œ 가독성이 떨어짐
  • μ—”ν„°ν‹° 성격이 λͺ¨ν˜Έν•΄μ§
  • λͺ¨λΈμ„ κ΄€λ¦¬ν•˜κΈ° λ³΅μž‘ν•΄μ§

 

λΆ€λΆ„ 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” 경우

  • λ³΅μž‘ν•œ μ£Ό μ‹λ³„μžλ₯Ό λ‹¨μˆœν™”μ‹œν‚¬ ν•„μš”κ°€ μžˆμ„ λ•Œ
  • μ—”ν„°ν‹° κ°„μ˜ 관계가 쒅속 κ΄€κ³„μ΄λ©΄μ„œ 쒅속 μ—”ν„°ν‹°μ˜ 업무 μ‹λ³„μžκ°€ λΆ„λͺ…ν•˜μ§€ μ•Šμ„ λ•Œ
  • 업무 μ‹λ³„μžκ°€ 변경될 κ°€λŠ₯성이 μžˆμ„ λ•Œ
  • 일자 속성(특히 μΌμ‹œ 속성)이 ν¬ν•¨λœ μ—”ν„°ν‹°μ˜ ν•˜μœ„ μ—”ν„°ν‹°κ°€ 많으며, μ£Όμš” 업무 μ‹λ³„μžλ₯Ό 자주 μ‚¬μš©ν•΄μ•Ό ν•  λ•Œ

 

μ‹λ³„μž μ’…λ₯˜ - λŒ€λ¦¬ μ‹λ³„μž

λŒ€λ¦¬ μ‹λ³„μž: μ£Ό μ‹λ³„μžλ‘œ μ„ νƒλ˜μ§€ μ•Šμ€ 후보 μ‹λ³„μž

  • μ£Ό μ‹λ³„μžλ‘œ μ„ μ •λ˜μ§€ μ•Šμ€ 후보 μ‹λ³„μžκ°€ λŒ€λ¦¬ μ‹λ³„μžμ΄λ―€λ‘œ, 인쑰 μ‹λ³„μžλ₯Ό μ£Ό μ‹λ³„μžλ‘œ μ‚¬μš©ν•˜κ²Œ 되면 λͺ¨λ“  후보 μ‹λ³„μžκ°€ λŒ€λ¦¬ μ‹λ³„μžκ°€ λœλ‹€.(인쑰 μ‹λ³„μžκ°€ μ‚¬μš©λ˜λ©΄ 후보 μ‹λ³„μž=λŒ€λ¦¬ μ‹λ³„μž)

 

λŒ€λ¦¬ μ‹λ³„μžλ₯Ό μ„ μ •ν•˜λŠ” κ³Όμ •

  1. 후보 μ‹λ³„μžλ₯Ό μ„ μ •ν•œλ‹€. 후보 μ‹λ³„μžκ°€ μ—¬λŸ¬ 개 μ‘΄μž¬ν•  수 μžˆλ‹€.
  2. 후보 μ‹λ³„μž μ€‘μ—μ„œ μ£Ό μ‹λ³„μžλ‘œ μ„ μ •ν•  후보가 μžˆλŠ”μ§€λ₯Ό νŒλ‹¨ν•œλ‹€.
  3. 후보 μ‹λ³„μž 쀑에 μ£Ό μ‹λ³„μžκ°€ μžˆλ‹€λ©΄ λ‚˜λ¨Έμ§€λŠ” λŒ€λ¦¬ μ‹λ³„μžκ°€ λœλ‹€.
  4. 후보 μ‹λ³„μž μ€‘μ—μ„œ μ£Ό μ‹λ³„μžκ°€ μ—†λ‹€λ©΄ 인쑰 μ‹λ³„μžλ₯Ό μ±„νƒν•œλ‹€.
  5. 인쑰 μ‹λ³„μžλ₯Ό μ±„νƒν•˜λ©΄ λͺ¨λ“  후보 μ‹λ³„μžλŠ” λŒ€λ¦¬ μ‹λ³„μžκ°€ λœλ‹€.

 

λŒ€λ¦¬ μ‹λ³„μžλŠ” κ²°κ΅­ 후보 μ‹λ³„μžμ™€ 같은 역할을 ν•œλ‹€. λ”°λΌμ„œ λŒ€λ¦¬ μ‹λ³„μž 속성 값은 λ¦΄λ ˆμ΄μ…˜μ—μ„œ μœ μΌν•΄μ•Ό ν•˜λ©°, 이λ₯Ό 물리적인 μ œμ•½μœΌλ‘œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μœ λ‹ˆν¬ 인덱슀λ₯Ό μƒμ„±ν•œλ‹€. κ·Έλž˜μ•Ό 엔터티에 데이터가 잘λͺ» μž…λ ₯λ˜λŠ” 것(μ€‘λ³΅λœ 값이 μž…λ ₯λ˜λŠ” 것)을 μ›μ²œμ μœΌλ‘œ λ°©μ§€ν•  수 μžˆλ‹€.

 

μ‹λ³„μž μ’…λ₯˜ - 슈퍼 μ‹λ³„μž

슈퍼 μ‹λ³„μž: μ£Ό μ‹λ³„μžμ— λ‹€λ₯Έ 속성을 μΆ”κ°€ν•΄μ„œ λ§Œλ“  μ‹λ³„μž

  • 슈퍼 μ‹λ³„μžλ₯Ό κ΅¬μ„±ν•˜κ³  μžˆλŠ” 속성 μ€‘μ—μ„œ μƒˆλ‘œμš΄ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ” 데 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ” 속성을 μ œμ™Έν•˜λ©΄ 후보 μ‹λ³„μžκ°€ λœλ‹€.
  • 슈퍼 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λ©΄ μ—”ν„°ν‹° 성격이 λΆˆλΆ„λͺ…ν•΄μ§„λ‹€.
  • 슈퍼 μ‹λ³„μžλŠ” μ–΄λ–€ μƒν™©μ—μ„œλ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것을 μ›μΉ™μœΌλ‘œ ν•΄μ•Ό ν•œλ‹€.

 

슈퍼 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λŠ” 이유

  • 후보 μ‹λ³„μž(업무 μ‹λ³„μž)에 λŒ€ν•œ 이해가 λΆ€μ‘±ν•˜κΈ° λ•Œλ¬Έ
  • 컀버링 인덱슀둜 검색 μ‹œ λΉ λ₯Έ μ„±λŠ₯을 얻을 수 있기 λ•Œλ¬Έ
  • μ‹λ³„μžλ₯Ό μ œλŒ€λ‘œ λΆ„μ„ν•˜μ§€ λͺ»ν–ˆκΈ° λ•Œλ¬Έ