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

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

01. μ—”ν„°ν‹° 이야기 (1)

1.1 μ§‘ν•©κ³Ό μ—”ν„°ν‹°

μ§‘ν•©

게였λ₯΄κ·Έ μΉΈν† μ–΄(μ§‘ν•©λ‘ μ˜ μ°½μ‹œμž)κ°€ λ§ν•œ μ§‘ν•©μ˜ μ •μ˜(μ—”ν„°ν‹°μ˜ μ •μ˜μ™€ μœ μ‚¬)

우리의 직관 λ˜λŠ” μ‚¬κ³ μ˜ λŒ€μƒμœΌλ‘œμ„œ ν™•μ •λ˜μ–΄ 있고 μ„œλ‘œ λͺ…ν™•νžˆ κ΅¬λ³„λ˜λŠ” κ²ƒλ“€μ˜ λͺ¨μž„

 

즉, μ§‘ν•©μ΄λž€ μ–΄λ–€ 쑰건에 μ˜ν•΄ κ·Έ λŒ€μƒμ„ λΆ„λͺ…νžˆ μ•Œ 수 μžˆλŠ” κ²ƒμ˜ λͺ¨μž„이닀. 집합이 되렀면 λͺ…μΎŒν•œ 쑰건이 기쀀이 λ˜μ–΄μ•Ό ν•œλ‹€.

  • ν”„λ‘œμ•Όκ΅¬ κ°•νŒ€μ˜ μ§‘ν•© X
  • μš°μŠΉν•΄λ³Έ νŒ€μ˜ μ§‘ν•© O

이처럼 쑰건이 λΆ„λͺ…ν•˜λ©°, μ£Όμ–΄μ§„ 쑰건에 ν•΄λ‹Ήν•˜λŠ” λŒ€μƒ(μ›μ†Œ)이 λΆ„λͺ…ν•œ λͺ¨μž„을 집합이라 ν•œλ‹€.

엔터티도 이와 λ§ˆμ°¬κ°€μ§€λ‹€. λˆ„κ°€ 생각해도 λŒ€μƒ(μ›μ†Œ)이 같을 수 μžˆλ„λ‘ μ •μ˜ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

→ μ—”ν„°ν‹°λ₯Ό μ œλŒ€λ‘œ μ„€κ³„ν•˜λŠ” 것은 λͺ¨λΈλ§μ˜ μ‹œλ°œμ 

 

μ›μ†Œ

  • 집합을 이루고 μžˆλŠ” λŒ€μƒ ν•˜λ‚˜ν•˜λ‚˜. μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€μ™€ 같은 κ°œλ….
  • μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€λž€ 엔터티에 μ†ν•˜λŠ” ꡬ체적인 개체λ₯Ό μ˜λ―Έν•œλ‹€.

μ±… μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€

 

  • μ—”ν„°ν‹°μ—μ„œ μΈμŠ€ν„΄μŠ€λ₯Ό μœ μΌν•˜κ²Œ ꡬ별할 수 μžˆλŠ” 속성 → μ‹λ³„μž

 

1.2 엔터티에 λŒ€ν•œ μ„œμ„€

μ—”ν„°ν‹°

  • 업무λ₯Ό μˆ˜ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ 데이터λ₯Ό νŠΉμ„±μ΄ μœ μ‚¬ν•œ 것끼리 λͺ¨μ•„ 놓은 μ§‘ν•©

μ—”ν„°ν‹°λ₯Ό 섀계할 λ•Œ κ°€μž₯ 기본적인 νŒλ‹¨ κΈ°μ€€

  • κ΄€λ¦¬ν•˜κ³ μž ν•˜λŠ” 데이터인지λ₯Ό νŒλ‹¨ν•˜λŠ” 것
  • 관리할 ν•„μš”κ°€ μ—†λŠ” 데이터에 λŒ€ν•΄μ„œλŠ” κ³ λ―Όν•  ν•„μš”κ°€ μ—†μŒ
  • 이 λ•Œ λͺ¨λΈλŸ¬λŠ” κ°€λŠ₯ν•œ λ§Žμ€ 데이터λ₯Ό λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•˜λ„λ‘ μœ λ„ν•˜λŠ” 것이 μ’‹μŒ.(λ‚˜μ€‘μ— ν•„μš”ν•œ κ²½μš°κ°€ 있기 λ•Œλ¬Έμ—)

μ‹λ³„μž

  • 엔터티와 μ£Ό μ‹λ³„μžλŠ” ν•œλͺΈμ΄λΌκ³  생각해야 함
  • μ£Ό μ‹λ³„μžλ₯Ό λͺ¨λ₯΄κ³  μ—”ν„°ν‹°λ₯Ό 섀계(μ •μ˜)ν•  수 μ—†μŒ

μ—”ν„°ν‹°λ₯Ό 섀계(μ •μ˜)ν•˜λŠ” 것은 λŒ€λ‹¨νžˆ μ€‘μš”ν•˜λ‹€. λͺ¨λΈλ§μ˜ μ‹œλ°œμ μ΄ 엔터티이기 λ•Œλ¬Έμ΄λ‹€. λ˜ν•œ μ—”ν„°ν‹°λ₯Ό μ„€κ³„ν•˜λŠ” 것은 κ°€μž₯ μ–΄λ ΅λ‹€. μ—†λŠ” μƒνƒœμ—μ„œ 의미λ₯Ό λΆ€μ—¬ν•˜λŠ” 것은 μ–΄λ €μš΄ μž‘μ—…μ΄λ‹€.

 

1.3 μ—”ν„°ν‹° μ •μ˜κ°€ μ™œ μ€‘μš”ν•œκ°€?

μ—”ν„°ν‹°λ₯Ό μ •μ˜ν•œλ‹€λŠ” κ²ƒμ˜ 의미

  1. μ—”ν„°ν‹°μ˜ μ„€λͺ…을 μ λŠ” 것
  2. μ—”ν„°ν‹°κ°€ 본질적으둜 μ–΄λ–€ μ§‘ν•©μœΌλ‘œ 이루어져 μžˆλŠ”μ§€λ₯Ό λͺ…λ°±ν•˜κ²Œ ν•˜λŠ” 것
    • μ‹λ³„μžκ°€ 무엇이고 μ„œλΈŒνƒ€μž…μ΄ 무엇인지λ₯Ό λ°νžˆλŠ” 것

 

1.4 μ—”ν„°ν‹° λΆ„λ₯˜λ²•

  • 만질 수 μžˆλŠ” 것과 만질 수 μ—†λŠ” 것
  • 자립 엔터티와 쒅속 μ—”ν„°ν‹°
  • μ›μ²œ 데이터와 가곡 데이터
  • 싀체 • ν–‰μœ„ • 가곡 • κΈ°μ€€ μ—”ν„°ν‹°
  • λ‚΄λΆ€ 생성 데이터와 μ™ΈλΆ€ 생성 데이터
  • μ—”ν„°ν‹° μœ ν˜•μ— μ˜ν•œ κΈ°λ³Έ • λ‚΄μ—­ • 상세 λ“±μ˜ μ—”ν„°ν‹°

 

1.5 μ—”ν„°ν‹° μ •μ˜ 방법 - λ³΄μ΄λŠ” 것인가?

싀체 μ—”ν„°ν‹°

  • λ³΄μ΄λŠ” 것을 κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°
  • 고객 • λ…ΈνŠΈλΆ • μƒν’ˆ • μžλ™μ°¨ 등을 κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°

 

싀체 μ—”ν„°ν‹°μ˜ νŠΉμ§•

  • λ³΄μ΄λŠ” μ‹€μ²΄λŠ” 물리적으둜 μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— κ·Έ λŒ€μƒμ˜ κ°œμˆ˜κ°€ μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄κ·Έ κ°œμˆ˜μ™€ κ°™λ‹€λŠ” 것 (νšŒμ‚¬ λ…ΈνŠΈλΆ 100λŒ€ → μΈμŠ€ν„΄μŠ€ 100개)
  • λ³΄μ΄λŠ” 것을 μ˜λ―Έν•˜λŠ” λ°μ΄ν„°λŠ” 핡심 데이터일 κ°€λŠ₯성이 λ†’λ‹€. λ³΄μ΄λŠ” 싀체이기 λ•Œλ¬Έμ— μΈμ‹ν•˜κΈ°λ„ μ‰¬μ›Œ κ°€λŠ₯ν•˜λ©΄ λ„μΆœν•˜λŠ” 것이 μ’‹λ‹€.
  • 싀체 μ—”ν„°ν‹°λŠ” λ‹€λ₯Έ μ—¬λŸ¬ ν–‰μœ„μ˜ 주체가 되기 λ•Œλ¬Έμ— λ”μš± μ€‘μš”ν•˜λ‹€.

 

보이지 μ•ŠλŠ” κ²ƒμ˜ 두 κ°€μ§€ μ’…λ₯˜

  • 연상이 λ˜λŠ” 것 (μ£Όλ¬Έ, κ°•μ˜μ™€ 같은 ν–‰μœ„λ₯Ό 의미)
  • 연상이 λ˜μ§€ μ•ŠλŠ” 것 (ν™˜μœ¨, λΆ„λ₯˜μ™€ 같은 κ°œλ…μ„ 의미)

λ‘˜ λ‹€ 보이지 μ•Šκ³  κ°œλ…(Conceptual)으둜 쑴재

 

 

보이지 μ•ŠλŠ” κ²ƒμ˜ μ§‘ν•©μ˜ νŠΉμ§•

  • μ‹€μ œλ‘œ κ±°λž˜μ™€ 같은 ν–‰μœ„λ„ λ³΄μ΄λŠ” 것은 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ—, λ³΄μ΄λŠ” 것을 κ΄€λ¦¬ν•˜λŠ” 엔터티에 λΉ„ν•΄ 보이지 μ•ŠλŠ” 것을 κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°κ°€ 훨씬 λ§Žλ‹€.
  • κ°œλ…μ„ κ΄€λ¦¬ν•˜λŠ” 엔터티에 μ‘΄μž¬ν•˜λŠ” μΈμŠ€ν„΄μŠ€λŠ” λ‹Ήμ—°νžˆ μ‹€μ œλ‘œ μ‘΄μž¬ν•˜λŠ” μ‹€μ²΄μ™€λŠ” λ¬΄κ΄€ν•˜λ©°, ν•˜λ‚˜μ˜ κ°œλ…μ΄ ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€κ°€ λœλ‹€.

 

1.6 μ—”ν„°ν‹° μ •μ˜ 방법 - 슀슀둜 μ‘΄μž¬ν•˜λŠ”κ°€?

자립 μ—”ν„°ν‹°

  • λ‹€λ₯Έ 엔터티에 μ˜μ‘΄μ μ΄μ§€ μ•Šκ³  슀슀둜 μ‘΄μž¬ν•˜λŠ” μ—”ν„°ν‹°
  • μ–΄λ–€ 엔터티에도 쑴재 쒅속이 λ˜μ§€ μ•ŠλŠ” μ—”ν„°ν‹°

쒅속 μ—”ν„°ν‹°

  • μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ μ‘΄μž¬ν•  수 μ—†λŠ” μ—”ν„°ν‹°λ‘œ, μ–΄λ–€ μ—”ν„°ν‹°μ—”κ°€ 쑴재 μ’…μ†λœ μ—”ν„°ν‹°
  • μ—”ν„°ν‹° Bκ°€ μ‘΄μž¬ν•˜κΈ° μœ„ν•΄μ„œ μ—”ν„°ν‹° Aκ°€ λ°˜λ“œμ‹œ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€λ©΄ → BλŠ” A에 쒅속됐닀
  • ex. νŠΉμ • λŒ€ν•™μ˜ ꡐ수만 κ΄€λ¦¬ν•œλ‹€λ©΄ ꡐ수 μ—”ν„°ν‹°λŠ” 자립 엔터티이닀. ꡐ수 μ—”ν„°ν‹° μƒμœ„μ— λ°˜λ“œμ‹œ μ‘΄μž¬ν•΄μ•Ό ν•  μ—”ν„°ν‹°κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€. ν•˜μ§€λ§Œ μ „κ΅­ λŒ€ν•™μ˜ ꡐ수λ₯Ό κ΄€λ¦¬ν•œλ‹€λ©΄ ꡐ수 μ—”ν„°ν‹°λŠ” 쒅속 μ—”ν„°ν‹°κ°€ 될 수 μžˆλ‹€.

이 경우 직업 μ—”ν„°ν‹°κ°€ 없어도 고객 μ—”ν„°ν‹°λŠ” μ‘΄μž¬ν•  수 μžˆμœΌλ―€λ‘œ 고객 μ—”ν„°ν‹°λŠ” 쒅속 μ—”ν„°ν‹°κ°€ μ•„λ‹ˆλΌ 자립 엔터티이닀. 이와 같은 κ΄€κ³„λŠ” λΆ€λͺ¨/μžμ‹ 관계가 μ•„λ‹ˆλΌ μ°Έμ‘° 관계라고 ν•œλ‹€. λ”°λΌμ„œ 직업 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžμΈ μ§μ—…λ²ˆν˜Έ 속성은 고객 엔터티에 μ£Ό μ‹λ³„μžλ‘œ μƒμ†ν•˜μ§€ μ•Šκ³  일반 μ†μ„±μœΌλ‘œ μƒμ†ν•œλ‹€. μ΄λ•Œ 직업 μ—”ν„°ν‹°λŠ” λΆ€λͺ¨ μ—”ν„°ν‹°κ°€ μ•„λ‹ˆλΌ μƒμœ„ 엔터티라고 ν‘œν˜„ν•œλ‹€.

 

μ—”ν„°ν‹°λ₯Ό κ΅¬μ„±ν•œ λ°μ΄ν„°μ˜ 성격이 λ°”λ€Œμ§€ μ•ŠλŠ” ν•œ μ—”ν„°ν‹° μ •μ˜κ°€ λ°”λ€Œλ©΄ μ•ˆ λœλ‹€. 쒅속 엔터티인데 자립 μ—”ν„°ν‹°λ‘œ 잘λͺ» μ •μ˜ν•˜κ±°λ‚˜, 싀체 엔터티인데 ν–‰μœ„ μ—”ν„°ν‹°λ‘œ 잘λͺ» μ •μ˜ν•˜λ©΄ 데이터 ꡬ쑰가 νŠΌνŠΌν•  수 μ—†λ‹€. 데이터 μ„±κ²©λ§Œμ„ νŒλ‹¨ν•΄ μ—”ν„°ν‹°λ₯Ό λͺ…ν™•νžˆ μ •μ˜ν•˜λŠ” 것이 λͺ¨λΈλ§μ˜ μ‹œλ°œμ μ΄λ‹€.

 

1.7 쒅속 μ—”ν„°ν‹°μ˜ μ’…λ₯˜

쒅속 μ—”ν„°ν‹°κ°€ λ°œμƒν•˜λŠ” 경우

  • λΆ€λͺ¨ μ—”ν„°ν‹°μ˜ λΆ€κ°€ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°
  • 1μ •κ·œν™”μ— μ˜ν•΄μ„œ λ°œμƒν•œ μ—”ν„°ν‹°
  • 이λ ₯ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°
  • λ‹€λŒ€λ‹€ κ΄€κ³„μ—μ„œ λ° ν–‰ν•œ ꡐ차 μ—”ν„°ν‹°
  • μŠˆνΌνƒ€μž…μ— λŒ€ν•œ μ„œλΈŒνƒ€μž… μ—”ν„°ν‹°
  • μ—”ν„°ν‹° 뢄해에 μ˜ν•œ μΌλŒ€μΌ κ΄€κ³„μ˜ μ—”ν„°ν‹°

λΆ€λͺ¨ μ—”ν„°ν‹°μ˜ λΆ€κ°€ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°

λΆ€λͺ¨ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλŠ” 보톡 쒅속 μ—”ν„°ν‹°μ˜ μ‹λ³„μžλ‘œ μƒμ†λœλ‹€. 그리고 μƒμ†λœ μ‹λ³„μžμ™€ κ²°ν•©ν•˜μ—¬ 쒅속 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μž 역할을 ν•˜λŠ” 속성이 μΆ”κ°€λœλ‹€. → λΆ€λΆ„ μ£Ό μ‹λ³„μž(Partial Primary Identifier)

  • μœ„ κ·Έλ¦Όμ—μ„œλŠ” κΈ°μ€€μΌμžκ°€ λΆ€λΆ„ μ£Ό μ‹λ³„μžκ°€ λœλ‹€.

 

1μ •κ·œν™”μ— μ˜ν•΄μ„œ λ°œμƒν•œ μ—”ν„°ν‹°

1μ •κ·œν™”λž€

  • ν…Œμ΄λΈ”μ˜ 각 칼럼(μ—΄)에 ν•˜λ‚˜μ˜ μ…€μ—λŠ” ν•˜λ‚˜μ˜ κ°’λ§Œ μžˆμ–΄μ•Ό ν•œλ‹€λŠ” κ·œμΉ™

 

이λ ₯ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°

μƒν’ˆκ°€κ²©μ΄λ ₯ μ—”ν„°ν‹°λŠ” μƒν’ˆ 가격에 λŒ€ν•œ λ³€κ²½ 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— μ›μ²œ 엔터티인 μƒν’ˆ μ—”ν„°ν‹° μ—†μ΄λŠ” μ‘΄μž¬ν•  수 μ—†λ‹€.

 

λ‹€λŒ€λ‹€ κ΄€κ³„μ—μ„œ λ°œμƒν•œ ꡐ차 μ—”ν„°ν‹°

λ‹€λŒ€λ‹€(M:M) 관계

  • 보톡 두 개의 μΌλŒ€λ‹€(1:M) κ΄€κ³„λ‘œ ν‘œν˜„λ˜λ©΄μ„œ 쒅속 μ—”ν„°ν‹°κ°€ 생긴닀. → ꡐ차 μ—”ν„°ν‹°

μŠˆνΌνƒ€μž…μ— λŒ€ν•œ μ„œλΈŒνƒ€μž… μ—”ν„°ν‹°

μ„œλΈŒνƒ€μž…μΈ 개인고객, 법인고객 μ—”ν„°ν‹°λŠ” μŠˆνΌνƒ€μž…μΈ 고객 엔터티에 μ’…μ†λœ 엔터티이닀.

 

μ—”ν„°ν‹° 뢄해에 μ˜ν•œ μΌλŒ€μΌ κ΄€κ³„μ˜ μ—”ν„°ν‹°

μœ„ λͺ¨λΈμ€ μ›λž˜ 같은 엔터티인데 μΌλŒ€μΌ(1:1)둜 λ‚˜λˆˆ κ²ƒμ΄λ―€λ‘œ, λ‹€μ‹œ 합쳐도 아무 λ¬Έμ œκ°€ λ˜μ§€ μ•ŠλŠ”λ‹€. 고객상세 μ—”ν„°ν‹°λŠ” 고객 μ—”ν„°ν‹°κ°€ μ—†λ‹€λ©΄ μ‘΄μž¬ν•  수 μ—†λŠ” μ—”ν„°ν‹°λ‘œ 고객 엔터티에 μ’…μ†λœ 엔터티이닀.

 

1.8 λͺ¨λΈ(ERD)κ³Ό 메타 μ‹œμŠ€ν…œμ˜ 속성 μ„€λͺ…

-

 

1.9 μ—”ν„°ν‹° μ •μ˜ 방법 - μ›μ²œ 데이터인가?

μ›μ²œ 데이터

  • 슀슀둜 μ‘΄μž¬ν•˜λŠ” 졜초의 데이터
  • κ³ κ°μ΄λ‚˜ μ‚¬μš©μžκ°€ 직접 μž…λ ₯ν•¨μœΌλ‘œμ¨ μƒμ„±λœλ‹€.
  • μ—”ν„°ν‹° κ°„μ˜ μ°Έμ‘° 무결성 관계가 μ‘΄μž¬ν•œλ‹€.
  • μ •κ·œν™”λ₯Ό μ² μ €νžˆ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” 데이터이닀. → μ›μ²œ λ°μ΄ν„°μ˜ μ£Ό μ‹λ³„μžλŠ” 주둜 업무 μ‹λ³„μžκ°€ λœλ‹€.(μ›μ²œ μ—”ν„°ν‹°λŠ” 데이터 성격 자체둜 νŒλ‹¨ν•œ μ‹λ³„μžκ°€ μ‚¬μš©λ¨)

가곡 데이터

  • μ›μ²œ 데이터λ₯Ό μ‚¬μš©ν•΄μ„œ λ§Œλ“€μ–΄λ‚Έ 데이터(집계/μš”μ•½/μž„μ‹œ/μž‘μ—…μš© 데이터)
  • 주둜 ν”„λ‘œκ·Έλž¨μ— μ˜ν•΄ μƒμ„±λœλ‹€.(배치 ν”„λ‘œκ·Έλž¨ λ˜λŠ” 데이터 볡제 ν”„λ‘œκ·Έλž¨)
  • 가곡 λ°μ΄ν„°λŠ” 주둜 μ—…λ°μ΄νŠΈκ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€. λˆ„κ°€/μ–΄λ–»κ²Œ/μ–Έμ œ μƒμ„±ν–ˆλŠλƒλŠ” λ“±μ˜ λΆ€κ°€ λ°μ΄ν„°λŠ” μ—…λ°μ΄νŠΈκ°€ λ°œμƒν•  수 μžˆμ§€λ§Œ, 값을 κ΄€λ¦¬ν•˜λŠ” λ°μ΄ν„°λŠ” 슀슀둜 μ—…λ°μ΄νŠΈκ°€ λ°œμƒν•˜μ§€ μ•Šκ³  μ›μ²œμ΄ λ°”λ€Œλ©΄ λ”°λΌμ„œ μ—…λ°μ΄νŠΈν•΄μ•Ό ν•œλ‹€.
  • λΉ„μ •κ·œν™”κ°€ 비ꡐ적 λΉˆλ²ˆν•˜κ²Œ μˆ˜ν–‰λœλ‹€. → 집계 κΈ°μ€€κ³Ό 같은 λͺ©μ μ— μ˜ν•΄μ„œ μ‹λ³„μžκ°€ 결정됨. μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•΄μ§ˆ 수 있음.

 

β€» μ°Έμ‘° 무결성 관계

  • ν•œ ν…Œμ΄λΈ”μ˜ μ™Έλž˜ν‚€ κ°’(FK) 이 μ°Έμ‘°ν•˜λŠ” λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ κΈ°λ³Έν‚€(PK) κ°’κ³Ό 항상 μΌμΉ˜ν•΄μ•Ό ν•œλ‹€λŠ” μ œμ•½ 쑰건

가곡 엔터티에 μ‚¬μš©λœ 값은 μ›μ²œ μ—”ν„°ν‹°μ˜ 값이 λ°”λ€Œλ©΄ μˆ˜μ •ν•΄μ•Ό ν•œλ‹€. μ›μ²œ 데이터 μžμ²΄κ°€ λΆˆμ™„μ „ν•  μˆ˜λ„ μžˆμ§€λ§Œ, μ›μ²œ 데이터와 μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 가곡 λ°μ΄ν„°λŠ” μ™„μ „ν•˜μ§€ μ•Šμ€ 데이터닀. ν•˜λ‚˜μ˜ μ›μ²œ 데이터λ₯Ό μ‚¬μš©ν•΄μ„œ λ§Œλ“  가곡 데이터가 μ‹¬ν•˜λ©΄ μˆ˜μ‹­ 개일 수 μžˆλ‹€. μ΄λ ‡κ²Œ 되면 데이터 정합성은 μ°¨μΉ˜ν•˜κ³ λΌλ„ 관리 μžμ²΄κ°€ νž˜λ“€μ–΄μ§„λ‹€. 데이터 ν’ˆμ§ˆ μ œκ³ λŠ” μ•žμœΌλ‘œ κΈ°μ—…μ—μ„œ μ΅œμš°μ„ μœΌλ‘œ κ³ λ €ν•΄μ•Ό ν•  μš”μ†Œκ°€ 될 κ²ƒμ΄λ―€λ‘œ, 데이터 ν’ˆμ§ˆ ν–₯상에 λ…Έλ ₯을 κΈ°μšΈμ—¬μ•Ό ν•œλ‹€.

 

μ›μ²œ 데이터와 가곡 λ°μ΄ν„°μ˜ 정합성을 λ§žμΆ”λŠ” 방법

  1. μ›μ²œ 데이터가 μˆ˜μ •λ˜λŠ” μ‹œμ μ— 가곡 데이터λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ μˆ˜μ •ν•˜λŠ” 방법
  2. νŠΉμ • μ‹œκ°„μ„ μ •ν•΄ 배치둜 가곡 데이터λ₯Ό μ›μ²œ 데이터와 λ§žμΆ”λŠ” 방법

 

1.10 데이터 λ³Έμ§ˆμ— λ”°λ₯Έ μ—”ν„°ν‹° λΆ„λ₯˜λ²• - 싀체/ν–‰μœ„/가곡/κΈ°μ€€

싀체 μ—”ν„°ν‹°

μ‹€μ œ 물체(λ³΄μ΄λŠ” 싀상)에 λŒ€ν•œ 본질적인 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°

  • 싀체 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλŠ” λ‹¨μˆœν•΄μ•Ό μ’‹λ‹€. κ³ κ°λ²ˆν˜Έμ™€ 같은 인쑰 μ‹λ³„μžκ°€ 였히렀 μ§‘ν•©μ˜ 성격을 더 직관적이고 λͺ…ν™•ν•˜κ²Œ ν•΄μ€€λ‹€. λ°˜λ©΄μ— ν–‰μœ„ μ—”ν„°ν‹°λ‚˜ 가곡 엔터티에 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λ©΄ μ΄ν•΄ν•˜κΈ° μ–΄λ ΅κ³  μ˜€μš©λ˜λŠ” κ²½ν–₯이 μžˆλ‹€.
  • 싀체 μ—”ν„°ν‹°λŠ” λ‹€λ₯Έ 엔터티에 λΉ„ν•΄ λ”μš± κ³Όκ°ν•œ 톡합이 ν•„μš”ν•˜λ‹€. λ³Έμ§ˆμ„ κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ 엔터티에 λΉ„ν•΄ 톡합될 κ°€λŠ₯성이 많고 톡합이 λ”μš± μš©μ΄ν•˜λ‹€. μƒλ‹¨μ—μ„œ 싀체 μ—”ν„°ν‹°κ°€ ν†΅ν•©λ˜λ©΄ 전체 λͺ¨λΈ ꡬ쑰가 λ‹¨μˆœν•΄μ§€κ³ , λ‹¨μˆœν•œ λͺ¨λΈμ΄ 쒋은 λͺ¨λΈμ΄ 될 κ°€λŠ₯성이 λ†’λ‹€.
  • 싀체 μ—”ν„°ν‹°λŠ” 이λ ₯ 데이터λ₯Ό 섀계할 λ•Œλ„ μ£Όμ˜ν•΄μ•Ό ν•œλ‹€. 싀체 μ—”ν„°ν‹°μ˜ 이λ ₯ 데이터λ₯Ό 싀체 데이터에 ν¬ν•¨μ‹œν‚€μ§€ μ•Šλ„λ‘ μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.
  • 고객 μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€λŠ” μ‹€μ œ 고객의 μˆ«μžμ™€ κ°™λ‹€. 고객의 이λ ₯ 데이터가 고객의 μˆ«μžμ— 영ν–₯을 미치면 μ•ˆ λœλ‹€.

ν–‰μœ„ μ—”ν„°ν‹°

ν–‰μœ„λ‚˜ ν™œλ™μœΌλ‘œ λ°œμƒν•œ μ›μ²œ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°

  • ν–‰μœ„ μ—”ν„°ν‹°λ§Œμ˜ νŠΉμ§•μ€ μ—”ν„°ν‹° λ°œμƒ μˆœμ„œκ°€ μ‘΄μž¬ν•  수 μžˆλ‹€. 일반적으둜 λ°μ΄ν„°μ—λŠ” μˆœμ„œμ˜ κ°œλ…μ΄ μ—†λ‹€.(생성 μˆœμ„œκ°€ μ€‘μš”ν•˜μ§€ μ•Šλ‹€) ν•˜μ§€λ§Œ 일뢀 ν–‰μœ„ μ—”ν„°ν‹° κ°„μ—λŠ” λ°œμƒ μˆœμ„œκ°€ μ€‘μš”ν•˜λ‹€. λ°œμƒν•΄μ„œ μ†Œλ©Έν•˜λŠ” 비ꡐ적 짧은 라이프 사이클이 μ‘΄μž¬ν•œλ‹€.
  • ν–‰μœ„ μ—”ν„°ν‹°λŠ” κ΄€λ¦¬ν•˜λŠ” 속성도 λŒ€λΆ€λΆ„ λ§Žλ‹€. 엔터티도 많고 속해 μžˆλŠ” 속성도 많기 λ•Œλ¬Έμ— λͺ¨λΈλ§ μ‹œ κ°€μž₯ λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λ˜λŠ” μ—”ν„°ν‹°λ‹€.
  • ν–‰μœ„ μ—”ν„°ν‹°μ˜ κ°€μž₯ 큰 νŠΉμ§• 쀑 ν•˜λ‚˜λŠ” μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•˜λ‹€λŠ” 것이닀. ν–‰μœ„ μ—”ν„°ν‹°λŠ” λŒ€λΆ€λΆ„ ν•˜μœ„ μ—”ν„°ν‹°κ°€ μ μ–΄μ„œ ꡳ이 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•  ν•„μš”κ°€ μ—†κ³ , 업무 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•˜λ‹€.
β€» 업무 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λͺ¨λ“  μ—”ν„°ν‹°μ˜ 원칙이닀. μ •κ·œν™”λ₯Ό ν•œ 후에 λΉ„μ •κ·œν™”λ₯Ό κ³ λ €ν•˜λŠ” 것이 원칙이듯이 업무 μ‹λ³„μžλ₯Ό μ„ νƒν•œ ν›„ 인쑰 μ‹λ³„μžλ₯Ό κ³ λ €ν•˜λŠ” 것이 원칙이닀. 인쑰 μ‹λ³„μžλ₯Ό λ‚¨λ°œν•˜λ©΄ 데이터 성격을 νŒŒμ•…ν•˜κΈ° μ–΄λ €μ›Œμ§€λŠ”λ°, 특히 ν–‰μœ„ μ—”ν„°ν‹°μ—μ„œ 이런 ν˜„μƒμ΄ 많이 λ‚˜νƒ€λ‚œλ‹€.
  • ν–‰μœ„ μ—”ν„°ν‹°μ˜ 업무 μ‹λ³„μžλ₯Ό λ„μΆœν•˜λŠ” 방법: λˆ„κ°€/무엇을/μ–Έμ œ/μ–΄λ–»κ²Œ/μ–΄λ””μ—μ„œ ν–ˆλŠ”μ§€λ₯Ό λΆ„μ„ν•˜λŠ” 것
  • ν–‰μœ„ μ—”ν„°ν‹°λŠ” μ£Ό μ‹λ³„μžλΏλ§Œ μ•„λ‹ˆλΌ 관계도 λ³΅μž‘ν•˜λ‹€. 고객/κ³„μ’Œ/λΆ€μ„œ/사원/μƒν’ˆ λ“±κ³Ό 같은 λ‹€μ–‘ν•œ 싀체 엔터티와 관계가 λ°œμƒν•΄μ„œ 관계 속성이 λ§Žλ‹€. 싀체 μ—”ν„°ν‹°μ™€μ˜ κ΄€κ³„λ§ŒνΌ λ§Žμ§„ μ•Šμ§€λ§Œ, 생성 μˆœμ„œμ— μ˜ν•΄ ν–‰μœ„ μ—”ν„°ν‹°μ™€μ˜ 관계도 λ°œμƒν•˜κ³  κΈ°μ€€ 엔터티와도 관계가 λ°œμƒν•œλ‹€. ν•˜μ§€λ§Œ 일반적으둜 가곡 엔터티와 관계가 λ°œμƒν•˜λ©΄ 잘λͺ»λœ λͺ¨λΈμ΄λ‹€.
  • ν–‰μœ„ μ—”ν„°ν‹°λŠ” 쀑볡 속성이 λ§Žλ‹€. μƒμœ„ 엔터티인 싀체 엔터티와 쑰인을 ν”Όν•˜κ³ μž μƒμœ„ μ—”ν„°ν‹°μ˜ 속성을 μ€‘λ³΅μ‹œμΌœ 놓을 λ•Œκ°€ λ§Žλ‹€. 싀체 엔터티에도 μœ μ‚¬ν•œ ν˜„μƒμ΄ μžˆλŠ”λ°, ν•˜μœ„μ˜ ν–‰μœ„ μ—”ν„°ν‹°μ—μ„œ μ—¬λŸ¬ μΈμŠ€ν„΄μŠ€λ₯Ό μΆ”μΆœν•΄ κ°€μ Έλ‹€ λ†“λŠ” 것이닀. 이런 μΆ”μΆœ μ†μ„±μ΄λ‚˜ 쀑볡 속성은 κ°€λŠ₯ν•œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 λ°”λžŒμ§ν•˜λ‹€.
  • ν–‰μœ„ μ—”ν„°ν‹°μ˜ 톡합은 싀체 엔터티보닀 μ–΄λ ΅μ§€λ§Œ, μ΅œλŒ€ν•œ ν†΅ν•©ν•˜λŠ” 것이 μ’‹λ‹€. 톡합을 κ³ λ €ν•˜κΈ° 전에 업무 μ‹λ³„μžκ°€ λͺ…ν™•ν•΄μ•Ό ν•œλ‹€λŠ” 점은 염두에 두어야 ν•œλ‹€.

가곡 μ—”ν„°ν‹°

μ›μ²œ 데이터λ₯Ό μΆ”μΆœ•μ§‘κ³„ν•œ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°

  • μ›μ²œ 데이터인 싀체/ν–‰μœ„/κΈ°μ€€ μ—”ν„°ν‹°μ˜ 데이터λ₯Ό κ°€κ³΅ν•œ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°λ‘œ 주둜 집계/μš”μ•½/μž„μ‹œ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°κ°€ 가곡 μ—”ν„°ν‹°λ‹€. 
  • 가곡 μ—”ν„°ν‹°λŠ” λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ μ‚¬μš©λœλ‹€. μ—…λ¬΄μ—μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” 가곡 μ—”ν„°ν‹°λŠ” DW μ‹œμŠ€ν…œμ—μ„œ λ§Žμ€ 뢀뢄을 μ°¨μ§€ν•˜λŠ” 집계 μ—”ν„°ν‹°λ‹€. 집계 μ—”ν„°ν‹°λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” 쑰회 μ‹œκ°„μ„ 쀄이기 μœ„ν•΄μ„œλ‹€. λ§Œμ•½ μ›μ²œ 데이터λ₯Ό λ°”λ‘œ 집계해도 크게 λΆˆνŽΈν•˜μ§€ μ•Šλ‹€λ©΄ ꡳ이 집계 μ—”ν„°ν‹°λ₯Ό μ‚¬μš©ν•  μ΄μœ λŠ” μ—†λ‹€. λ”°λΌμ„œ μ›μ²œ 데이터λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ μ§‘κ³„ν•˜λŠ” 것이 κ°€λŠ₯ν•œμ§€μ— λŒ€ν•œ νŒλ‹¨μ€ 맀우 μ€‘μš”ν•˜λ‹€.
  • 업무 처리 λŒ€μƒμ„ ν•œμ •μ‹œν‚€κΈ° μœ„ν•΄ ν•΄λ‹Ή λ°μ΄ν„°λ§Œ λ³„λ„λ‘œ λ³΄κ΄€ν•˜λŠ” μž‘μ—…μš© μ—”ν„°ν‹°κ°€ κ°„ν˜Ή μ‘΄μž¬ν•œλ‹€. 처리 μ˜ˆμ • 내역을 κ΄€λ¦¬ν•˜κ±°λ‚˜, 였λ₯˜λ₯Ό λŒ€λΉ„ν•΄ λŒ€μƒμ„ λ³„λ„λ‘œ κ΄€λ¦¬ν•˜κ³€ ν•œλ‹€. 일단 이런 μž‘μ—…μš© μ—”ν„°ν‹°λŠ” 없앨 수 μžˆλŠ”μ§€λ₯Ό λ¨Όμ € κ³ λ €ν•΄μ•Ό ν•œλ‹€. μ–΄λ–€ λ°μ΄ν„°μ˜ 뢀뢄집합을 λ³„λ„λ‘œ λ³΄κ΄€ν•˜λŠ” 엔터티도 ν”ν•˜λ‹€. λ˜ν•œ 쑰회 μ„±λŠ₯을 κ³ λ €ν•΄μ„œ 데이터λ₯Ό λΆ„μ‚°μ‹œν‚€κΈ° μœ„ν•΄ μ—”ν„°ν‹°λ₯Ό λ³΅μ‚¬ν•΄μ„œ μ‚¬μš©ν•˜κΈ°λ„ ν•œλ‹€.
  • 가곡 μ—”ν„°ν‹°λŠ” 보톡 집계 κΈ°μ€€ 역할을 ν•˜λŠ” μ—”ν„°ν‹° μ΄μ™Έμ˜ μ—”ν„°ν‹°μ™€λŠ” 관계가 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€. 집계 μ—”ν„°ν‹°κ°€ ν–‰μœ„ 엔터티와 관계가 μ‘΄μž¬ν•˜κ±°λ‚˜, λ‹€λ₯Έ 집계 엔터티와 관계가 μ‘΄μž¬ν•˜λ©΄ 잘λͺ»λœ 관계가 μ•„λ‹Œμ§€ μ£Όμ˜ν•΄μ„œ κ²€ν† ν•΄μ•Ό ν•œλ‹€.
  • 가곡 μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλŠ” μ§‘κ³„ν•˜λ €λŠ” 기쀀을 μ˜λ―Έν•œλ‹€. λ”°λΌμ„œ λ³΅μž‘ν•œ κΈ°μ€€μœΌλ‘œ μ§‘κ³„ν•œλ‹€λ©΄ μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ 가곡 λ°μ΄ν„°λŠ” λŒ€λΆ€λΆ„ μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•œ 게 λ¬Έμ œκ°€ λ˜μ§€ μ•ŠλŠ”λ‹€.
  • μ‹€λ¬΄μ—μ„œ 가곡 μ—”ν„°ν‹°λŠ” λ³„λ‘œ ν†΅ν•©ν•˜μ§€ μ•Šμ§€λ§Œ, 가곡 μ—”ν„°ν‹° μ—­μ‹œ 톡합할 λ§Œν•œ μΆ©λΆ„ν•œ κ°€μΉ˜κ°€ μžˆλ‹€. μ‹œμŠ€ν…œμ— 따라 λ‹€λ₯΄μ§€λ§Œ 보톡 집계 μ„±κ²©μ˜ λ°μ΄ν„°λŠ” μ‹œμŠ€ν…œ μ „μ²΄μ—μ„œ μƒλ‹Ήν•œ 뢀뢄을 μ°¨μ§€ν•œλ‹€. 집계 μš”κ±΄μ€ 갈수둝 λ§Žμ•„μ§ˆ μˆ˜λ°–μ— μ—†μœΌλ―€λ‘œ μš”κ±΄μ΄ 생길 λ•Œλ§ˆλ‹€ μ—”ν„°ν‹°κ°€ μƒμ„±λ˜λ©΄ μ•ˆ 될 일이닀. 톡합을 적극적으둜 κ³ λ €ν•˜λŠ” 것이 μ’‹λ‹€.
β€» 집계 μ—”ν„°ν‹°μ˜ 톡합이 μ€‘μš”ν•œ 이유
데이터가 μ€‘λ³΅λ¨μœΌλ‘œ 말미암아 데이터 정합성이 λ¬Έμ œκ°€ 되기 떄문이닀. μ§‘κ³„λŠ” λ³΄κ³ ν•˜κΈ° μœ„ν•˜κ±°λ‚˜ 자료λ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©λ˜λ―€λ‘œ μ„œλ‘œ μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 데이터가 μ‘΄μž¬ν•˜λ©΄ λ°μ΄ν„°λŠ” μ‹ λ’°ν•  수 μ—†κ²Œ λœλ‹€. 정합성에 λ¬Έμ œκ°€ 없더라도 μ—”ν„°ν‹° κ°œμˆ˜κ°€ λ§Žμ€ 것은 μ‹œμŠ€ν…œμ— μ’‹μ§€ μ•Šμ€ 영ν–₯을 미치기 λ•Œλ¬Έμ— λ°”λžŒμ§ν•˜μ§€ μ•Šλ‹€.
  • 가곡 μ—”ν„°ν‹°λŠ” 일반적으둜 μ›μ²œ 엔터티보닀 μˆ«μžκ°€ μ›”λ“±νžˆ λ§Žλ‹€. 
  • 일반적으둜 가곡 μ—”ν„°ν‹°λ₯Ό μ •μ œν•˜λŠ” ν”„λ‘œμ νŠΈκ°€ λ§Žμ§€ μ•Šλ‹€. λŒ€λΆ€λΆ„ μ›μ²œ 데이터λ₯Ό μ€‘μš”μ‹œν•˜κΈ° λ•Œλ¬Έμ— 가곡 λ°μ΄ν„°λŠ” 신경을 덜 μ“°κ²Œ λœλ‹€.
  • 가곡 μ—”ν„°ν‹°λŠ” 일반적으둜 ν”„λ‘œμ νŠΈ ν›„λ°˜μ— 개발이 μ§„ν–‰λ˜λ―€λ‘œ 일정에 μ«“κΈ°κ²Œ λœλ‹€. μ›μ²œ 데이터가 확정돼야 집계 데이터가 결정될 수 있기 λ•Œλ¬Έμ— 뢄석 μ‹œκΈ°λ„ λ’€λ‘œ λ°€λ € νμ§€λΆ€μ§€λ˜κΈ° 쉽닀. ν˜„μ‹€μ μœΌλ‘œ μ›μ²œ μ—”ν„°ν‹°μ‘°μ°¨ λΆ„μ„ν•˜λŠ” μ‹œκ°„μ΄ μΆ©λΆ„ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 가곡 엔터티에 μ‹ κ²½ μ“Έ μ—¬λ ₯이 μ—†λŠ” 것은 사싀이닀. ν•˜μ§€λ§Œ μ›μ²œ μ—”ν„°ν‹°κ°€ 깔끔해도 가곡 μ—”ν„°ν‹°κ°€ λ¬΄λΆ„λ³„ν•˜λ©΄ μ‹œμŠ€ν…œ μ „λ°˜μ μœΌλ‘œ λ¬Έμ œκ°€ λ°œμƒν•˜κΈ° λ•Œλ¬Έμ— 가곡 엔터티도 μ‹ κ²½ μ¨μ„œ 뢄석해야 ν•œλ‹€. κ·Έλž˜μ•Ό μ „μ²΄μ μœΌλ‘œ 효율적이고 μ•ˆμ •μ μΈ μ‹œμŠ€ν…œμ΄ λœλ‹€. λ¬Όλ‘  가곡 λ°μ΄ν„°μ˜ μ‚¬μš©μ„ μ§€μ–‘ν• μˆ˜λ‘ μ‹œμŠ€ν…œμ˜ νš¨μœ¨μ„±μ€ λ†’μ•„μ§„λ‹€.

κΈ°μ€€ μ—”ν„°ν‹°

μ‹€μ²΄λ‚˜ ν–‰μœ„ λ°μ΄ν„°μ˜ κΈ°μ€€(업무 κΈ°μ€€)이 λ˜λŠ” 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°

  • κΈ°μ€€ μ—”ν„°ν‹°μ˜ 두 κ°€μ§€ λΆ„λ₯˜
    • μ½”λ“œ λ°μ΄ν„°μ²˜λŸΌ κΈ°μ€€ 정보 μ„±κ²©μ˜ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°
      • ν™˜μœ¨ 데이터와 같은 업무 κΈ°μ€€ 정보λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°λŠ” κ°œλ…μ μ΄κΈ° λ•Œλ¬Έμ— μ—°μƒν•˜κΈ° μ–΄λ €μ›Œ μ—”ν„°ν‹°λ‘œ λ„μΆœν•˜κΈ° μ–΄λ €μšΈ 수 μžˆλ‹€. 이런 μ—”ν„°ν‹°λŠ” ν•˜μœ„ μ—”ν„°ν‹°κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 업무 μ‹λ³„μžλ₯Ό μ£Ό μ‹λ³„μžλ‘œ μ‚¬μš©ν•˜λ©°, λ³€κ²½ 이λ ₯ λ°μ΄ν„°κΉŒμ§€ 같이 κ΄€λ¦¬ν•˜λ„λ‘ μ„€κ³„ν•˜λŠ” 게 μ£Όμš” νŠΉμ§•μ΄λ‹€. 집계 엔터티와 νŠΉμ§•μ΄ κ²ΉμΉ˜λŠ” 엔터티이닀.
    • κ³Όλͺ© λ°μ΄ν„°μ²˜λŸΌ κΈ°λ³Έ 정보 μ„±κ²©μ˜ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°
      • 싀체 엔터티와 μ—¬λŸ¬ λ©΄μ—μ„œ μœ μ‚¬ν•˜λ‹€. 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ λ³€κ²½ 이λ ₯ λ°μ΄ν„°λŠ” λ³„λ„λ‘œ 관리해야 ν•˜λŠ” λ“± 싀체 μ—”ν„°ν‹°μ˜ νŠΉμ§•μ„ κ·ΈλŒ€λ‘œ λ”°λ₯΄κ²Œ λœλ‹€.
  • λ‘˜ λ‹€ μ—…λ¬΄μ˜ 기쀀이 λ˜λŠ” μ—”ν„°ν‹°λ‘œμ„œ, 업무λ₯Ό μˆ˜ν–‰ν•  λ•Œ 참쑰되기 λ•Œλ¬Έμ— μ°Έμ‘° 엔터티라고도 ν•œλ‹€.
  • ν–‰μœ„ 엔터티에 λΉ„ν•΄ 데이터 κ±΄μˆ˜κ°€ μ λ‹€λŠ” 것이 κΈ°μ€€ μ—”ν„°ν‹°μ˜ νŠΉμ§•μ΄λ‹€. 자체 κ±΄μˆ˜κ°€ λ§Žμ§€ μ•Šμ•„ 비둝 μ†ŒλŸ‰μ˜ λ°μ΄ν„°μ§€λ§Œ, ν–‰μœ„ μ—”ν„°ν‹° λ“±μ—μ„œ μ‚¬μš©λ˜λ―€λ‘œ μ‹œμŠ€ν…œ μ „λ°˜μ μœΌλ‘œ 영ν–₯을 λ―ΈμΉ˜λŠ” 것이 κΈ°μ€€ 데이터이닀.
  • κΈ°μ€€ μ—”ν„°ν‹°λ₯Ό μ œλŒ€λ‘œ μ„€κ³„ν•˜λ©΄ 무엇보닀 데이터 ν’ˆμ§ˆμ΄ μ’‹μ•„μ§„λ‹€. μ‹€μ²΄λ‚˜ ν–‰μœ„ μ—”ν„°ν‹°μ˜ 데이터 ν’ˆμ§ˆκ³Ό μ§κ²°λ˜λŠ” 것이 κΈ°μ€€ μ—”ν„°ν‹°λ‹€. λ˜ν•œ μ–΄λ–»κ²Œ μ •μ˜ν•˜κ³  μ–΄λ–»κ²Œ ν†΅ν•©ν•˜λŠλƒμ— λ”°λΌμ„œ 전체 λͺ¨λΈ ꡬ쑰가 μ’‹μ•„μ§€λ―€λ‘œ μˆ™κ³ ν•˜μ—¬ 섀계해야 ν•œλ‹€.

 

1.15 μ—”ν„°ν‹° μ •μ˜ 방법 - 데이터 생성에 λ”°λ₯Έ λΆ„λ₯˜λ²•

데이터가 μ–΄λ””μ—μ„œ μƒμ„±λ˜μ—ˆλŠ”μ§€μ— 따라 λ‚΄λΆ€ 데이터와 μ™ΈλΆ€ λ°μ΄ν„°λ‘œ ꡬ뢄할 수 μžˆλ‹€.

 

λ‚΄λΆ€ 데이터

λ‚΄λΆ€μ—μ„œ 생성할 수 μžˆλŠ” 데이터

  • λ‚΄λΆ€μ—μ„œ μƒμ„±ν•˜κΈ° λ•Œλ¬Έμ— κ·Έ 값이 맞고 ν‹€λ¦¬λŠ”μ§€λ₯Ό κ²°μ •ν•  수 μžˆλ‹€.
  • λ‚΄λΆ€ λ°μ΄ν„°λŠ” 쀑볡 데이터λ₯Ό λ°°μ œν•˜κ³ , μ™„μ „ μ •κ·œν™”λœ κ΄€κ³„ν˜• 데이터 λͺ¨λΈμ— μ €μž₯ν•œλ‹€. 

μ™ΈλΆ€ 데이터

μ™ΈλΆ€μ—μ„œ 받은 데이터

  • λ‚΄λΆ€μ—μ„œ 값이 맞고 ν‹€λ¦¬λŠ”μ§€λ₯Ό κ²°μ •ν•  수 μ—†λ‹€. 받은 κ·ΈλŒ€λ‘œ κ΄€λ¦¬ν•˜λŠ” 데이터닀.
  • μ™ΈλΆ€ λ°μ΄ν„°λŠ” 받은 κ·ΈλŒ€λ‘œ μ €μž₯ν•  μˆ˜λ„ 있고, κ΄€κ³„ν˜• 데이터 λͺ¨λΈλ‘œ μž¬μ„€κ³„ν•΄μ„œ μ €μž₯ν•  μˆ˜λ„ μžˆλ‹€. 주둜 String ν˜•νƒœλ‘œ λ°›κΈ° λ•Œλ¬Έμ— κΈ΄ λ¬Έμžμ—΄λ‘œ μ €μž₯ν•˜κΈ°λ„ ν•œλ‹€.

 

데이터가 μ–΄λ–»κ²Œ μƒμ„±λλŠ”μ§€μ— λ”°λΌμ„œ 크게 ν™”λ©΄ μž…λ ₯(Key-In)κ³Ό 배치(Batch)둜 λ‚˜λˆŒ 수 μžˆλ‹€.

 

ν™”λ©΄ μž…λ ₯

μ™ΈλΆ€ κ³ κ°μ΄λ‚˜ λ‚΄λΆ€ μ‚¬μš©μžκ°€ 주체가 λ˜μ–΄ 화면을 μ„ νƒν•˜κ³  값을 μž…λ ₯ν•œ ν›„ μ €μž₯ν•˜λŠ” μ ˆμ°¨μ— μ˜ν•΄ 데이터가 μƒμ„±λœλ‹€.

  • 이런 μ’…λ₯˜μ˜ 데이터(μ—”ν„°ν‹°)λŠ” 주둜 화면을 κΈ°μ€€μœΌλ‘œ ν•˜κΈ° λ•Œλ¬Έμ— μ •κ·œν™”ν•˜κΈ° μ‰¬μš°λ©°, λŒ€λΆ€λΆ„ μ •κ·œν™”μ˜ λŒ€μƒμ΄λ‹€.

배치

  • 배치둜 μƒμ„±ν•˜λŠ” λ°μ΄ν„°λŠ” μ •κ·œν™” λŒ€μƒμœΌλ‘œ μƒκ°ν•˜μ§€ μ•Šκ³€ ν•œλ‹€. λ°μ΄ν„°μ˜ 의미λ₯Ό νŒŒμ•…ν•˜κΈ° μ–΄λ ΅κ³ , λŒ€λŸ‰μ˜ 데이터라 μ‘°μž‘μ΄ μ–΄λ ΅λ‹€κ³  생각해 ν•˜λ‚˜μ˜ μ—”ν„°ν‹°λ‘œ ν•΄κ²°ν•˜λ € ν•œλ‹€. ν•˜μ§€λ§Œ 배치둜 μƒμ„±λœ 데이터도 ν’ˆμ§ˆμ΄ μ€‘μš”ν•˜κ³ , μ‚¬μš©ν•˜λŠ” 데 λ¬Έμ œκ°€ μ—†μ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ •κ·œν™”λ₯Ό ν•΄μ•Ό ν•œλ‹€. 
  • 배치둜 μƒμ„±ν•˜λŠ” 데이터 μ€‘μ—λŠ” μ™ΈλΆ€λ‘œ λ³΄λ‚΄λŠ” 데이터도 μ‘΄μž¬ν•œλ‹€. μ΄λ•Œ μ™ΈλΆ€μ—μ„œ μš”μ²­ν•œ λŒ€λ‘œ ν•„μš”ν•œ λ°μ΄ν„°λ§Œ λ½‘μ•„μ„œ λ³΄κ΄€ν•˜κΈ° μœ„ν•΄ λΉ„μ •κ·œν˜•μ΄ 자주 μ‚¬μš©λœλ‹€. λ˜ν•œ λ³΄λ‚΄λŠ” μ‹œμ μ˜ 데이터λ₯Ό 보관해야 ν•˜κΈ° λ•Œλ¬Έμ— 쀑볡 데이터도 자주 μ‚¬μš©λœλ‹€.
  • 배치의 μ’…λ₯˜
    • λŒ€λŸ‰ 배치 
    • κ°œλ³„ 배치
  • λŒ€λΆ€λΆ„μ΄ λŒ€λŸ‰ λ°°μΉ˜μ§€λ§Œ, μ™ΈλΆ€μ—μ„œ λ°›λŠ” μ „λ¬Έ ν˜•μ‹μ˜ 데이터λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ 건건히 μ²˜λ¦¬ν•  λ•Œλ„ μžˆλ‹€. νŠΈλ¦¬κ±°λ„ κ°œλ³„ 배치둜 λ³Ό 수 μžˆλ‹€.

 

1.16 μ—”ν„°ν‹° μ •μ˜ 방법 - μ—”ν„°ν‹° μœ ν˜•μ— λ”°λ₯Έ λΆ„λ₯˜λ²•

μ—”ν„°ν‹°λ₯Ό μœ ν˜•λ³„λ‘œ λΆ„λ₯˜ - κΈ°λ³Έ/상세/λ‚΄μ—­/이λ ₯/μ½”λ“œ/관계/집계/λ°±μ—…/μž„μ‹œ λ“±

  • 보톡 μ—”ν„°ν‹°λͺ…을 μ •ν•  λ•Œ μ ‘λ―Έμ–΄λ‘œ 이 μœ ν˜•μ„ μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ μžˆλŠ”λ° ꢌμž₯ν•˜μ§€ μ•ŠμŒ.(μœ ν˜•μ„ λ‚˜λˆ„λŠ” 기쀀이 λͺ…ν™•ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έ)

κΈ°λ³Έ μ—”ν„°ν‹°

κΈ°λ³Έ μ—”ν„°ν‹°λŠ” 기본적으둜 싀체 엔터티와 κ°™λ‹€. 엔터티에 μ €μž₯ν•˜λŠ” 데이터가 μ‹€μ œ 물체(λ³΄μ΄λŠ” 싀상)λ₯Ό μ˜λ―Έν•˜λŠ” 데이터라면 싀체 μ—”ν„°ν‹°λ©° κΈ°λ³Έ μ—”ν„°ν‹°λ‹€.

 

λ‚΄μ—­ μ—”ν„°ν‹°

κΈ°λ³Έ μ—”ν„°ν‹°κ°€ 싀체 엔터티와 μœ μ‚¬ν•œ 것과 λ§ˆμ°¬κ°€μ§€λ‘œ λ‚΄μ—­ μ—”ν„°ν‹°λŠ” ν–‰μœ„ 엔터티와 μœ μ‚¬ν•˜λ‹€. ν™œλ™μ΄λ‚˜ ν–‰μœ„μ— μ˜ν•΄ λ°œμƒν•œ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°λŠ” ν–‰μœ„ μ—”ν„°ν‹°λ©° λ‚΄μ—­ μ—”ν„°ν‹°λ‹€.

 

상세 μ—”ν„°ν‹°

상세 μ—”ν„°ν‹°λŠ” ν•œ 개의 μ—”ν„°ν‹°λ₯Ό μΌλŒ€μΌ(1:1) κ΄€κ³„μ˜ 두 개의 μ—”ν„°ν‹°λ‘œ λΆ„ν•΄ν•  λ•Œμ˜ ν•˜μœ„ μ—”ν„°ν‹°λ₯Ό μ˜λ―Έν•œλ‹€. 이 μ—”ν„°ν‹°μ—λŠ” μ€‘μš” 속성이 μ•„λ‹Œ 속성을 κ΄€λ¦¬ν•œλ‹€. κΈ°λ³Έ μ •λ³΄λŠ” μƒμœ„ μ—”ν„°ν‹°μ—μ„œ κ΄€λ¦¬ν•˜κ³  상세 μ •λ³΄λŠ” ν•˜μœ„ μ—”ν„°ν‹°μ—μ„œ κ΄€λ¦¬ν•œλ‹€.

 

이λ ₯ μ—”ν„°ν‹°

λ°μ΄ν„°μ˜ 이λ ₯ 정보λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 엔터티이닀.

 

μ½”λ“œ μ—”ν„°ν‹°

μ½”λ“œ μ—”ν„°ν‹°λŠ” μ½”λ“œ λͺ…κ³Ό μ½”λ“œ 값을 κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°λ₯Ό μ˜λ―Έν•œλ‹€. 일반적으둜 이런 μ—”ν„°ν‹°λŠ” 곡톡 μ½”λ“œ μ—”ν„°ν‹°μ—μ„œ 톡합 κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— κ°œλ³„μ μœΌλ‘œ μ½”λ“œ μ—”ν„°ν‹°κ°€ μ‘΄μž¬ν•˜λ©΄ μ•ˆ λœλ‹€. λ˜ν•œ μ½”λ“œλͺ…/μ½”λ“œκ°’ 외읭 속성을 κ΄€λ¦¬ν•˜λ©΄ μ½”λ“œ μ—”ν„°ν‹°κ°€ μ•„λ‹ˆλ‹€.

 

관계 μ—”ν„°ν‹°

관계 μ—”ν„°ν‹°λŠ” ꡐ차 μ—”ν„°ν‹°μ˜ 일쒅이닀. λ‹€μ–‘ν•œ ꡐ차 μ—”ν„°ν‹° μ€‘μ˜ ν•˜λ‚˜μ΄κΈ° λ•Œλ¬Έμ— ν•΄λ‹Ή μ—”ν„°ν‹°μ˜ μˆ˜κ°€ 적을 수 μžˆλ‹€. μ½”λ“œ 엔터티와 λ§ˆμ°¬κ°€μ§€λ‘œ λ‹€λ₯Έ μœ ν˜•λ³΄λ‹€ 훨씬 적은 μ—”ν„°ν‹°κ°€ μ†ν•˜λŠ” μœ ν˜•μ΄λ‹€.

 

집계 μ—”ν„°ν‹°

μ–΄λ–€ 값을 μ§‘κ³„ν•œ 속성이 κ·Έ μ—”ν„°ν‹°μ˜ μ£Όμš” 속성이면 '~집계' μ—”ν„°ν‹°λ‘œ μ •ν•΄μ•Ό ν•œλ‹€.

 

λ°±μ—… μ—”ν„°ν‹°

λ°±μ—… μ—”ν„°ν‹°λŠ” μ›μ²œ μ—”ν„°ν‹°μ˜ 데이터λ₯Ό λ°±μ—…ν•œ μ—”ν„°ν‹°λ₯Ό μ˜λ―Έν•œλ‹€. 쀑볡 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” 엔터티와 ꡬ뢄해야 ν•œλ‹€.

 

μž„μ‹œ μ—”ν„°ν‹°

μž„μ‹œ 엔터티도 λ²”μœ„κ°€ λͺ¨ν˜Έν•΄μ„œ 기쀀을 λͺ…ν™•νžˆ μ •ν•  ν•„μš”κ°€ μžˆλ‹€. μ‚¬μš©ν•œ 후에 μ‚­μ œν•˜λŠ” 데이터λ₯Ό μž„μ‹œ μ—”ν„°ν‹°λ‘œ μ •ν•  수 μžˆλ‹€. 데이터λ₯Ό μ‚¬μš©ν•œ νŠΈλžœμž­μ…˜μ΄ 끝날 λ•Œ μ‚­μ œν•˜λŠ” 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” 엔터티일 μˆ˜λ„ 있고, 맀일 μ΄ˆκΈ°ν™”λ˜λŠ” 엔터티일 μˆ˜λ„ μžˆλ‹€.

 

 

→ μ—¬λŸ¬ λΆ„λ₯˜λ²• 쀑 이 μœ ν˜•μ— μ˜ν•œ λΆ„λ₯˜λ²•은 μ–΄λ– ν•œ 기쀀을 μ‚¬μš©ν•΄λ„ λͺ…ν™•ν•˜κ²Œ μ •ν•˜κΈ° μ–΄λ €μš΄ μ—”ν„°ν‹°κ°€ λ‹€μˆ˜ μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— μ˜ˆμ™Έλ₯Ό μΈμ •ν•˜κ³  λ„˜μ–΄κ°ˆ μˆ˜λ°–μ— μ—†λ‹€. μ˜ˆμ™Έκ°€ 많이 λ°œμƒν•˜λŠ” λΆ„λ₯˜λ²•은 쒋은 λΆ„λ₯˜λ²•이 μ•„λ‹ˆλ‹€.

μ—¬λŸ¬ 단점이 μ‘΄μž¬ν•˜μ§€λ§Œ, ν‘œμ€€μ„ μ •ν•΄ λ°©ν–₯을 μ œμ‹œν•œλ‹€λŠ” μΈ‘λ©΄μ—μ„œλŠ” μ ‘λ―Έμ–΄λ₯Ό λΆ™μ΄λŠ” 것이 μ‹œμŠ€ν…œμ— μœ μš©ν•  수 μžˆλ‹€. λŠ₯μˆ™ν•˜μ§€ μ•Šμ€ λͺ¨λΈλŸ¬μ—κ²Œ 지침이 될 μˆ˜λ„ 있고, κ°œλ°œμžκ°€ μ‰½κ²Œ ꡬ뢄할 μˆ˜λ„ μžˆλ‹€λŠ” 점은 μž₯점이닀.

 

1.17 ꡐ차 μ—”ν„°ν‹°λž€?

ꡐ차 μ—”ν„°ν‹°λŠ” λ‹€λŒ€λ‹€(M:M) κ΄€κ³„μ—μ„œ λ°œμƒν•œ μ—”ν„°ν‹°λ‹€. 

λͺ¨λΈλ§ν•  λ•Œ λ‹€λŒ€λ‹€(M:M) κ΄€κ³„λŠ” λ…Όλ¦¬μ μœΌλ‘œ 많이 λ°œμƒν•œλ‹€.

λ‹€λŒ€λ‹€(M:M) κ΄€κ³„λŠ” 물리 λͺ¨λΈμ—μ„œλŠ” κ΅¬ν˜„λ  수 μ—†λ‹€. λ”°λΌμ„œ 두 개의 μΌλŒ€λ‹€(1:M) 관계가 μ‘΄μž¬ν•˜λŠ” ꡐ차 μ—”ν„°ν‹°λ‘œ 섀계해야 ν•œλ‹€. ꡐ차 μ—”ν„°ν‹°λ‘œ μ„€κ³„ν•˜λŠ” 것은 κ°€λŠ₯ν•œ λΉ λ₯Έ λ‹¨κ³„μ—μ„œ ν•˜λŠ” 것이 λ°”λžŒμ§ν•˜λ‹€.

 

 

 

관계λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°(관계 μ—”ν„°ν‹°)

 

두 μ—”ν„°ν‹° κ°„μ˜ λ§€ν•‘ 정보λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°(관계 엔터티와 μœ μ‚¬)

 

λ‹€λŒ€λ‹€(M:M) μž¬κ·€ κ΄€κ³„μ—μ„œ λ°œμƒν•˜λŠ” ꡐ차 μ—”ν„°ν‹°

 

3개체 κ΄€κ³„μ—μ„œ λ°œμƒν•˜λŠ” ꡐ차 μ—”ν„°ν‹°