κ°œμΈκ³΅λΆ€/SQL

40. SQLD 1κ³Όλͺ© (1)데이터 λͺ¨λΈλ§μ˜ 이해

LEE_BOMB 2021. 10. 26. 21:57
데이터λͺ¨λΈλ§

정보 μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ λ°μ΄ν„° κ΄€μ μ˜ μ—…무 λΆ„석 κΈ°λ²•
ν˜„μ‹€ μ„Έκ³„μ˜ λ°μ΄ν„°(what)에 λŒ€ν•΄ μ•½μ†λœ ν‘œκΈ°λ²•에 μ˜ν•΄ ν‘œν˜„ν•˜λŠ” κ³Όμ •
λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ λΆ„석/μ„€κ³„μ˜ κ³Όμ •

 

 

데이터λͺ¨λΈλ§ νŠΉμ§•

ν˜„μ‹€μ„Έκ³„λ₯Ό μΌμ •ν•œ ν˜•식에 λ§žμΆ”μ–΄ ν‘œν˜„ν•˜λŠ” μΆ”μƒν™”μ˜ μ˜λ―Έλ₯Ό κ°€μ§
μ‹œμŠ€ν…œ κ΅¬ν˜„, μ—…무뢄석, μ—…무 ν˜•μƒν™”μ˜ λͺ©μ μ΄ μžˆμŒ
λ³΅μž‘ν•œ ν˜„싀을 μ œν•œλœ μ–Έμ–΄λ‚˜ ν‘œκΈ°λ²•μœΌλ‘œ μ΄ν•΄ν•˜κΈ° μ‰½λ„λ‘ν•˜λŠ” λ‹¨μˆœν™”μ˜ μ˜λ―Έλ₯Ό κ°€μ§
μ• λ§€λͺ¨ν˜Έν•¨μ„ λ°°μ œν•˜κ³  λˆ„κ΅¬λ‚˜ μ΄ν•΄ κ°€λŠ₯ν•˜λ„λ‘ μ •ν™•ν•˜κ²Œ ν˜„상을 κΈ°μˆ ν•˜λŠ” μ •ν™•ν™”μ˜ μ˜λ―Έλ₯Ό κ°€μ§
데이터 λͺ¨λΈλ§ μžμ²΄λ‘œ μ—…무λ₯Ό μ„€λͺ…ν•˜κ³  λΆ„μ„ν•˜λŠ” λΆ€λΆ„μ—μ„œλ„ λ§€μš° μ€‘μš”ν•œ μ˜λ―Έλ₯Ό κ°€μ§

 

 

데이터λͺ¨λΈλ§ 유의점

β‘  쀑볡 : λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ—¬λŸ¬ μž₯μ†Œμ— 같은 정보λ₯Ό μ €μž₯ν•˜λŠ” 잘λͺ»μ„ ν•˜μ§€ μ•Šλ„λ‘ ν•œλ‹€.

 

β‘‘ λΉ„μœ μ—°μ„± : λ°μ΄ν„°μ˜ μ •μ˜λ₯Ό λ°μ΄ν„°μ˜ μ‚¬μš© ν”„λ‘œμ„ΈμŠ€μ™€ λΆ„λ¦¬ν•œλ‹€.
데이터 ν˜Ήμ€ ν”„λ‘œμ„ΈμŠ€μ˜ μž‘은 λ³€ν™”κ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό λ°μ΄ν„°λ² μ΄μŠ€μ— μ€‘λŒ€ν•œ λ³€ν™”λ₯Ό μΌμœΌν‚¬ μˆ˜ μžˆλŠ” κ°€λŠ₯성을 μ€„인닀.

 

β‘’ 비일관성 : λ°μ΄ν„°μ˜ 쀑볡이 없더라도 비일관성은 λ°œμƒν•  수 μžˆλ‹€.
데이터와 λ°μ΄ν„°κ°„μ˜ μƒν˜Έ μ—°κ΄€ κ΄€κ³„에 λŒ€ν•΄ λͺ…ν™•ν•˜κ²Œ μ •μ˜ν•˜μ—¬μ•Ό ν•œλ‹€.
μ‚¬μš©μžκ°€ μ²˜λ¦¬ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ ν˜Ήμ€ μ΄μ™€ κ΄€λ ¨λœ ν”„λ‘œκ·Έλž¨κ³Ό ν…Œμ΄λΈ”μ˜ μ—°κ³„성을 λ†’μ΄λŠ” κ²ƒμ€ λ°μ΄ν„° λͺ¨λΈμ΄ μ—…무 λ³€κ²½μ— λŒ€ν•΄ μ·¨μ•½ν•˜κ²Œ λ§Œλ“œλŠ” λ‹¨μ .

 

 

데이터 λͺ¨λΈλ§μ˜ μ’…λ₯˜

β‘  κ°œλ…μ  데이터 λͺ¨λΈλ§
좔상화 μˆ˜μ€€μ΄ λ†’λ‹€.
업무 μ€‘심적이고 ν¬κ΄„적인 μˆ˜μ€€μ˜ λͺ¨λΈλ§ μ§„ν–‰.
전사적 λ°μ΄ν„° λͺ¨λΈλ§
EA(Enterprise Architect) μˆ˜λ¦½μ‹œ λ§Žμ΄ μ‚¬μš©

β‘‘ 논리적 데이터 λͺ¨λΈλ§
μ‹œμŠ€ν…œμœΌλ‘œ κ΅¬μΆ•ν•˜κ³ μž ν•˜λŠ” μ—…무에 λŒ€ν•΄ key, μ†μ„±, κ΄€κ³„ λ“±μ„ μ •ν™•ν•˜κ²Œ ν‘œν˜„, μž¬μ‚¬μš©μ„±μ΄ λ†’μŒ.

β‘’ 물리적 데이터 λͺ¨λΈλ§
μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ— μ΄μ‹ν•  μˆ˜ μžˆλ„둝 μ„±λŠ₯, μ €μž₯ λ“± λ¬Όλ¦¬μ μΈ μ„±κ²©μ„ κ³ λ €ν•˜μ—¬ μ„€κ³„.

 

 

λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ ꡬ쑰

β‘  κ°œλ… μŠ€ν‚€λ§ˆ
λͺ¨λ“  μ‚¬μš©μž κ΄€μ μ„ ν†΅ν•©ν•œ μ‘°μ§ μ „체 κ΄€μ μ˜ ν†΅ν•©μ  ν‘œν˜„
데이터 λͺ¨λΈλ§μ€ ν†΅ν•© κ΄€μ μ„ κ°€μ§€κ³  μžˆλŠ” κ°œλ… μŠ€ν‚€λ§ˆ(Conceptual Schema)λ₯Ό λ§Œλ“€μ–΄ κ°€λŠ” κ³Όμ •.

β‘‘ μ™ΈλΆ€ μŠ€ν‚€λ§ˆ
μ‚¬μš©μž λ·°(View)
μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž˜λ¨Έκ°€ κ° κ°œμΈμ˜ μž…μž₯μ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ…Όλ¦¬μ  κ΅¬μ‘°λ₯Ό μ •μ˜
전체 λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν•œ λ…Όλ¦¬μ μΈ λΆ€λΆ„ (μ„œλΈŒ μŠ€ν‚€λ§ˆ)
같은 λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•΄μ„œλ„ μ„œλ‘œ λ‹€λ₯Έ κ΄€μ μ„ μ •μ˜ ν•  μˆ˜ μžˆλ„둝 ν—ˆμš©
일반 μ‚¬μš©μžλŠ” SQL을 μ‚¬μš©ν•˜μ—¬ DBλ₯Ό μ‚¬μš©ν•œλ‹€.

β‘’ λ‚΄λΆ€ μŠ€ν‚€λ§ˆ

μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž˜λ¨Έ, μ„€κ³„μžκ°€ λ³΄λŠ” κ΄€μ μ˜ μŠ€ν‚€λ§ˆ
물리적 μ €μž₯μž₯치 μž…μž₯μ—μ„œ λ³Έ λ°μ΄ν„°λ² μ΄μŠ€ κ΅¬μ‘°, λ¬Όλ¦¬μ μΈ μ €μž₯ μž₯μΉ˜μ™€ λ°€μ ‘ν•œ κ³„μΈ΅
μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯될 λ ˆμ½”λ“œμ˜ λ¬Όλ¦¬μ μΈ κ΅¬μ‘°λ₯Ό μ •μ˜
데이터 ν•­λͺ©μ˜ ν‘œν˜„λ°©λ²•, λ‚΄λΆ€ λ ˆμ½”λ“œμ˜ 물리적 μˆœμ„œ 등을 λ‚˜νƒ€λƒ„

 

 

Mapping( ) 사상

μƒν˜Έ 독립적인 κ°œλ…μ„ μ—°κ²°μ‹œμΌœμ£ΌλŠ” 닀리


β‘  λ…Όλ¦¬μ  μ‚¬μƒ : - μ™ΈλΆ€ μŠ€ν‚€λ§ˆ κ°œλ… μŠ€ν‚€λ§ˆ
β‘‘ λ¬Όλ¦¬μ  μ‚¬μƒ : - κ°œλ… μŠ€ν‚€λ§ˆ λ‚΄λΆ€ μŠ€ν‚€λ§ˆ

 

 

 

 

 

μ—”ν„°ν‹°?

λ°˜λ“œμ‹œ ν•΄λ‹Ή μ—…λ¬΄μ—μ„œ ν•„μš”ν•˜κ³  κ΄€λ¦¬ν•˜κ³ μž ν•˜λŠ” μ •보이어야 ν•œλ‹€.
μœ μΌν•œ μ‹λ³„μžμ— μ˜ν•΄ μ‹λ³„이 κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.
μ˜μ†μ μœΌλ‘œ μ‘΄μž¬ν•˜λŠ” λ‘ κ°œ μ΄μƒμ˜ μΈμŠ€ν„΄μŠ€ μ§‘합이어야 ν•œλ‹€.
μ—”ν„°ν‹°λŠ” λ°˜λ“œμ‹œ μ†μ„±μ΄ μžˆμ–΄μ•Ό ν•œλ‹€.
μ—”ν„°ν‹°λŠ” λ‹€λ₯Έ 엔터티와 μ΅œμ†Œ ν•œ 개 μ΄μƒμ˜ 관계가 μžˆμ–΄μ•Ό ν•œλ‹€. (톡계성/μ½”λ“œμ„± μ—”ν„°ν‹°λŠ” 관계 μƒλž΅ κ°€λŠ₯)

 

 

 

λ°œμƒ μ‹œμ μ— λ”°λ₯Έ μ—”ν„°ν‹° λΆ„λ₯˜
β‘  κΈ°λ³Έ μ—”ν„°ν‹° (ν‚€ μ—”ν„°ν‹°)
업무에 μ›λž˜ μ‘΄μž¬ν•˜λŠ” μ •보
λ‹€λ₯Έ μ—”ν„°ν‹°μ™€μ˜ 관계에 μ˜ν•΄ μƒμ„±λ˜μ§€ μ•Šκ³  λ…λ¦½μ μœΌλ‘œ 생성 κ°€λŠ₯
타 μ—”ν„°ν‹°μ˜ λΆ€λͺ¨μ—­ν• μ„ ν•˜κ²Œλ¨
ex. 사원, λΆ€μ„œ, 고객, μƒν’ˆ λ“±

β‘‘ 쀑심 μ—”ν„°ν‹°
κΈ°λ³Έ μ—”ν„°ν‹°λ‘œλΆ€ν„° λ°œμƒν•˜λ©°, 업무에 μžˆμ–΄μ„œ μ€‘μš”ν•œ 역할을 ν•œλ‹€.
λ°μ΄ν„°λŸ‰μ΄ 많이 λ°œμƒλ˜κ³  λ‹€λ₯Έ μ—”ν„°ν‹°μ™€μ˜ 관계λ₯Ό 톡해 ν–‰μœ„ μ—”ν„°ν‹°λ₯Ό μƒμ„±ν•œλ‹€.
ex. 계약, 청ꡬ, μ£Όλ¬Έ, 맀좜 λ“±

β‘’ ν–‰μœ„ μ—”ν„°ν‹°
두 개 μ΄μƒμ˜ λΆ€λͺ¨ μ—”ν„°ν‹°λ‘œλΆ€ν„° λ°œμƒ
자주 λ‚΄μš©μ΄ λ°”λ€Œκ±°λ‚˜ λ°μ΄ν„°λŸ‰μ΄ μ¦κ°€ν•œλ‹€.
뢄석 μ΄ˆκΈ° λ‹¨κ³„μ—μ„œλŠ” μž˜ λ‚˜νƒ€λ‚˜μ§€ μ•Šκ³  μƒμ„Έ μ„€κ³„λ‚˜ ν”„λ‘œμ„ΈμŠ€μ™€ μƒκ΄€ λͺ¨λΈλ§μ„ ν•˜λ©΄μ„œ λ„μΆœλ  μˆ˜ μžˆλ‹€.
ex. μ£Όλ¬Έλͺ©λ‘, 사원 변경이λ ₯ λ“±

 

 

μ—”ν„°ν‹° λͺ…λͺ… κΈ°μ€€
κ°€λŠ₯ν•˜λ©΄ ν˜„μ—…μ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ₯Ό μ‚¬μš©ν•œλ‹€.
κ°€λŠ₯ν•˜λ©΄ μ•½μ–΄λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
λ‹¨μˆ˜λͺ…사λ₯Ό μ‚¬μš©ν•œλ‹€.
λͺ¨λ“  μ—”ν„°ν‹°λ₯Ό ν†΅ν‹€μ–΄μ„œ μœ μΌν•˜κ²Œ 이름이 λΆ€μ—¬λ˜μ–΄μ•Ό ν•œλ‹€.
μ—”ν„°ν‹° 생성 μ˜λ―ΈλŒ€λ‘œ 이름을 λΆ€μ—¬ν•œλ‹€.

 

 

ERD(Entity Relationship Diagram)λž€?
개체 μ†μ„±κ³Ό κ°œμ²΄ κ°„ κ΄€κ³„λ₯Ό λ„ν‘œλ‘œ ν‘œν˜„ν•œ κ²ƒμ„ μ˜λ―Έν•œλ‹€.

 

 

ERD κ΄€κ³„ ν‘œν˜„법

* μΉ΄λ””널리티 : μ „체 ν–‰μ— λŒ€ν•œ νŠΉμ • μ»¬λŸΌμ˜ μ€‘볡 μˆ˜μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ§€ν‘œ

 

 

κ΄€κ³„μ„ μ˜ μ’…λ₯˜
β‘  μ‹€μ„ (Identifying): 식별관계
λΆ€λͺ¨ν…Œμ΄λΈ”μ˜ PKκ°€ μžμ‹ν…Œμ΄λΈ”μ˜ FK/PKκ°€ λ˜λŠ” κ²½μš°
λΆ€λͺ¨κ°€ μžˆμ–΄μ•Ό μžμ‹μ΄ μƒκΈ°λŠ” κ²½μš°

β‘‘ μ μ„ (Non-Identifying): λΉ„식별관계
λΆ€λͺ¨ν…Œμ΄λΈ”μ˜ PKκ°€ μžμ‹ν…Œμ΄λΈ”μ˜ μΌλ°˜μ†μ„±μ΄ λ˜λŠ” κ²½μš°
λΆ€λͺ¨κ°€ μ—†μ–΄λ„ μžμ‹μ΄ μƒκΈ°λŠ” κ²½μš°

 

 

ERD(Entity Relationship Model : 개체-관계 λͺ¨λΈ) μž‘μ„± μˆœμ„œ
μ—”ν„°ν‹°λ₯Ό κ·Έλ¦°λ‹€.
μ—”ν„°ν‹°λ₯Ό μ μ ˆν•˜κ²Œ λ°°μΉ˜ν•œλ‹€.
μ—”ν„°ν‹°κ°„ 관계λ₯Ό μ„€μ •ν•œλ‹€.
관계λͺ…을 κΈ°μˆ ν•œλ‹€.
κ΄€κ³„μ˜ μ°Έμ—¬λ„λ₯Ό κΈ°μˆ ν•œλ‹€.
κ΄€κ³„μ˜ ν•„μˆ˜μ—¬λΆ€λ₯Ό κΈ°μˆ ν•œλ‹€.

 

 

 

 

 

속성

μ—…λ¬΄μ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” μΈμŠ€ν„΄μŠ€μ—μ„œ κ΄€λ¦¬ν•˜κ³ μž ν•˜λŠ” μ˜λ―Έμƒ 더 이상 λΆ„λ¦¬λ˜μ§€ μ•ŠλŠ” μ΅œμ†Œμ˜ 데이터 λ‹¨μœ„
엔터티에 λŒ€ν•œ μžμ„Έν•˜κ³  ꡬ체적인 정보λ₯Ό λ‚˜νƒ€λƒ„
ν•˜λ‚˜μ˜ μ—”ν„°ν‹°λŠ” 두 개 μ΄μƒμ˜ 속성을 κ°–λŠ”λ‹€
속성도 집합이닀

 

 

μ—”ν„°ν‹°, μΈμŠ€ν„΄μŠ€, μ†μ„±, μ†μ„±κ°’μ˜ κ΄€κ³„
ν•œ κ°œμ˜ μ—”ν„°ν‹°λŠ” λ‘ κ°œ μ΄μƒμ˜ μΈμŠ€ν„΄μŠ€μ˜ μ§‘합이어야 ν•œλ‹€.
ν•œ κ°œμ˜ μ—”ν„°ν‹°λŠ” λ‘ κ°œ μ΄μƒμ˜ μ†μ„±μ„ κ°–λŠ”λ‹€.
ν•œ κ°œμ˜ μ†μ„±μ€ ν•œ κ°œμ˜ μ†μ„±κ°’을 κ°–λŠ”λ‹€.


속성 νŠΉμ„±μ— λ”°λ₯Έ λΆ„λ₯˜
β‘  κΈ°λ³Έ 속성
μ›λž˜ κ°€μ§€κ³  μžˆμ–΄μ•Ό ν•˜λŠ” μ†μ„±
μ—…λ¬΄λ‘œ λΆ€ν„° μΆ”μΆœλœ μΌλ°˜μ μΈ μ†μ„±

β‘‘ 섀계 속성
μ›λž˜ μ‘΄μž¬ν•˜μ§€ μ•Šμ§€λ§Œ 업무 κ·œμΉ™ν™”λ₯Ό μœ„ν•΄ μ„€κ³„μžκ°€ μƒˆλ‘œ λ§Œλ“€κ±°λ‚˜ λ³€ν˜• μ •μ˜ν•œ 속성 
ex. 주문번호, μ˜ˆμ•½λ²ˆν˜Έ, 고객번호, μƒν’ˆμ½”λ“œ, 일련번호 λ“±

β‘’ νŒŒμƒ μ†μ„±

λ‹€λ₯Έ 속성에 영ν–₯을 λ°›μ•„ λ°œμƒ
데이터λ₯Ό μ‘°νšŒν•  λ•Œ λΉ λ₯Έ μ„±λŠ₯을 λ‚Ό μˆ˜ μžˆλ„둝 ν•˜κΈ° μœ„ν•΄ μ›λž˜ μ†μ„±μ˜ κ°’을 κ³„μ‚°ν•˜μ—¬ μ €μž₯ν•  μˆ˜ μžˆλ„둝 λ§Œλ“  μ†μ„±

ex. ν•©


도메인
각 μ†μ„±μ΄ κ°€μ§ˆ μˆ˜ μžˆλŠ” κ°’μ˜ λ²”μœ„
μ—”ν„°ν‹° λ‚΄μ—μ„œ μ†μ„±μ— λŒ€ν•œ λ°μ΄ν„°νƒ€μž…κ³Ό μ œμ•½μ‚¬ν•­μ„ μ§€μ •ν•˜λŠ” κ²ƒ
ex. μ œν’ˆλͺ…μ΄λΌλŠ” 속성은 길이가 20자리 μ΄λ‚΄μ˜ λ¬Έμžμ—΄λ‘œ μ •μ˜ν•  수 μžˆλ‹€.


속성 λͺ…μΉ­ λΆ€μ—¬
ν•΄λ‹Ή μ—…λ¬΄μ—μ„œ μ‚¬μš©ν•˜λŠ” μ΄λ¦„을 λΆ€μ—¬ν•œλ‹€.
μ„œμˆ μ μΈ μ†μ„±λͺ…을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
μ•½μ–΄λŠ” κ°€κΈ‰μ  μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
전체 λ°μ΄ν„° λͺ¨λΈμ—μ„œ μœ μΌμ„±μ„ ν™•λ³΄ν•˜λŠ” κ²ƒμ΄ μ’‹λ‹€.




 

관계

μ—”ν„°ν‹° κ°„μ˜ 논리적인 μ—°κ΄€μ„±

쑴재의 ν˜•νƒœλ‘œμ„œλ‚˜ ν–‰μœ„λ‘œμ„œ μ„œλ‘œμ—κ²Œ 연관성이 λΆ€μ—¬λœ μƒνƒœ 관계

νŽ˜μ–΄λ§μ˜ μ§‘ν•© * νŽ˜μ–΄λ§ : μ—”ν„°ν‹° μ•ˆμ— μΈμŠ€ν„΄μŠ€κ°€ κ°œλ³„μ μœΌλ‘œ 관계λ₯Ό κ°€μ§€λŠ” 것
ex) 강사 - κ°€λ₯΄μΉœλ‹€(관계) - μˆ˜κ°•μƒ

β‘  μ‘΄μž¬μ— μ˜ν•œ 관계 : λΆ€μ„œμ™€ 사원 

β‘‘ ν–‰μœ„μ— μ˜ν•œ 관계 : 고객과 μ£Όλ¬Έ

 

 

UML(클래슀 λ‹€μ΄μ–΄κ·Έλž¨)μ—μ„œμ˜ 관계
β‘  μ—°κ΄€κ΄€κ³„(μ‹€μ„ ) : 항상 μ΄μš©ν•˜λŠ” 관계 ex. μ†Œμ†λœλ‹€
β‘‘ μ˜μ‘΄κ΄€κ³„(점선) : μƒλŒ€ ν–‰μœ„μ— μ˜ν•΄ λ°œμƒν•˜λŠ” 관계 ex. μ£Όλ¬Έν•œλ‹€

 

 

κ΄€κ³„μ˜ ν‘œκΈ°λ²•
β‘  관계λͺ… : μ—”ν„°ν‹°κ°„ 관계에 λ§Ίμ–΄μ§„ 관계 ν˜•νƒœ
β‘‘ κ΄€κ³„μ°¨μˆ˜ : 두 μ—”ν„°ν‹°κ°„ κ΄€κ³„μ—μ„œ μˆ˜ν–‰λ˜λŠ” 경우의 수 ex) 1:1, 1:M, M:N
β‘’ κ΄€κ³„선택성(=선택사양) : 항상 μ°Έμ—¬ν•˜λŠ”μ§€ μ•„λ‹ˆλ©΄ μ°Έμ—¬ν•  μˆ˜λ„ μžˆλŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 방법 ex) μ†λ‹˜-μ£Όλ¬Έ 관계

- ν•„μˆ˜ 관계 : 주문은 μ†λ‹˜μ— μ˜ν•΄ μˆ˜ν–‰λœλ‹€

- 선택 관계 : μ†λ‹˜μ€ 주문을 ν•  μˆ˜λ„ 있고, μ•ˆ ν•  μˆ˜λ„ μžˆλ‹€ (μ„ νƒμ°Έμ—¬ν•˜λŠ” μ—”ν„°ν‹°μͺ½μ— 원 ν‘œμ‹œ)



관계 λ„μΆœμ‹œ μ²΄ν¬ μ‚¬ν•­
두 κ°œμ˜ μ—”ν„°ν‹° μ‚¬μ΄μ— κ΄€μ‹¬μžˆλŠ” μ—°κ΄€ κ·œμΉ™μ΄ μ‘΄μž¬ν•˜λŠ”κ°€?
두 κ°œμ˜ μ—”ν„°ν‹° μ‚¬μ΄μ— μ •λ³΄μ˜ μ‘°ν•©μ΄ λ°œμƒν•˜λŠ”κ°€?
μ—…λ¬΄κΈ°μˆ μ„œ, μž₯ν‘œμ— κ΄€κ³„ μ—°κ²°μ— λŒ€ν•œ κ·œμΉ™μ΄ μ„œμˆ λ˜μ–΄ μžˆλŠ”κ°€?
μ—…λ¬΄κΈ°μˆ μ„œ, μž₯ν‘œμ— κ΄€κ³„ μ—°κ²°μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” λ™μ‚¬(Verb)κ°€ μžˆλŠ”κ°€?





μ‹λ³„μž

μ—”ν„°ν‹° λ‚΄μ—μ„œ μΈμŠ€ν„΄μŠ€λ₯Ό κ΅¬λΆ„ν•˜λŠ” κ΅¬λΆ„μž

μ‹λ³„μžλŠ” 논리적

KeyλŠ” 물리적 데이터 λͺ¨λΈλ§ 단계에 μ‚¬μš©

 

 

μ‹λ³„μžμ˜ μ’…λ₯˜
β‘  λŒ€ν‘œμ„± μ—¬λΆ€
μ£Ό μ‹λ³„μž : μΈμŠ€ν„΄μŠ€λ₯Ό μœ μΌν•˜κ²Œ κ΅¬λΆ„ ν•  μˆ˜ μžˆμœΌλ©° μ°Έμ‘°κ΄€κ³„λ₯Ό μ—°κ²° ν•  μˆ˜ μžˆμŒ
보쑰 μ‹λ³„μž : μœ μΌν•˜κ²Œ κ΅¬λΆ„ κ°€λŠ₯ν•˜μ§€λ§Œ λŒ€ν‘œμ„±μ„ κ°€μ§€μ§€ λͺ»ν•΄ μ°Έμ‘°κ΄€κ³„ μ—°κ²°μ„ λͺ»ν•¨

β‘‘ μŠ€μŠ€λ‘œ μƒμ„± μ—¬λΆ€
λ‚΄λΆ€ μ‹λ³„μž : μ—”ν„°ν‹° λ‚΄λΆ€μ—μ„œ μŠ€μŠ€λ‘œ λ§Œλ“€μ–΄μ§€λŠ” μ‹λ³„μž
μ™ΈλΆ€ μ‹λ³„μž : νƒ€ μ—”ν„°ν‹°μ™€μ˜ κ΄€κ³„λ₯Ό ν†΅ν•΄ νƒ€ μ—”ν„°ν‹°λ‘œλΆ€ν„° λ°›μ•„μ˜€λŠ” μ‹λ³„μž

β‘’ μ†μ„±μ˜ μˆ˜
단일 μ‹λ³„μž : ν•˜λ‚˜μ˜ μ†μ„±μœΌλ‘œ ꡬ성
볡합 μ‹λ³„μž : 2개 μ΄μƒμ˜ μ†μ„±μœΌλ‘œ ꡬ성

β‘£ λŒ€μ²΄ μ—¬λΆ€
본질 μ‹λ³„μž : μ—…무에 μ˜ν•΄ λ§Œλ“€μ–΄μ§€λŠ” μ‹λ³„μž
인쑰 μ‹λ³„μž : μ—…λ¬΄μ μœΌλ‘œ λ§Œλ“€μ–΄μ§€μ§€λŠ” μ•Šμ§€λ§Œ μ›μ‘°μ‹λ³„μžκ°€ λ³΅μž‘ν•œ κ΅¬μ„±μ„ κ°€μ§€κ³  μžˆκΈ° λ•Œλ¬Έμ— μΈμœ„μ μœΌλ‘œ λ§Œλ“  μ‹λ³„μž


μ£Ό μ‹λ³„μžμ˜ νŠΉμ§•
β‘  μœ μΌμ„± : μ—”ν„°ν‹°λ‚΄μ˜ λͺ¨λ“  μΈμŠ€ν„΄μŠ€λ₯Ό μœ μΌν•˜κ²Œ κ΅¬λΆ„함
β‘‘ μ΅œμ†Œμ„± : μ£Όμ‹λ³„μžλ₯Ό κ΅¬μ„±ν•˜λŠ” μ†μ„±μ˜ μˆ˜λŠ” μœ μΌμ„±μ„ λ§Œμ‘±ν•˜λŠ” μ΅œμ†Œμ˜ μˆ˜κ°€ λ˜μ–΄μ•Ό ν•¨
β‘’ λΆˆλ³€μ„± : μ‹λ³„μžκ°€ ν•œ λ²ˆ μ§€μ •λ˜λ©΄ κ·Έ κ°’은 λ³€ν•˜μ§€ μ•Šμ•„μ•Ό ν•¨
β‘£ μ‘΄μž¬μ„± : μ£Όμ‹λ³„μžκ°€ μ‘΄μž¬ν•˜λ©΄ λ°˜λ“œμ‹œ 데이터 값이 쑴재 (null μ•ˆ 됨)

 

 

μ£Όμ‹λ³„μž λ„μΆœκΈ°μ€€
β‘  ν•΄λ‹Ή μ—…λ¬΄μ—μ„œ 자주 μ΄μš©λ˜λŠ” μ†μ„±μž„
β‘‘ λͺ…μΉ­, λ‚΄μ—­ λ“±κ³Ό 같이 μ΄λ¦„μœΌλ‘œ κΈ°μˆ λ˜λŠ” 것듀은 X
β‘’ λ³΅ν•©μœΌλ‘œ μ£Όμ‹λ³„μžλ‘œ ꡬ성할 경우 λ„ˆλ¬΄ λ§Žμ€ 속성 X -> λ„ˆλ¬΄ 많으면 μΈμ‘°μ‹λ³„μž 생성



μ‹λ³„μž κ΄€κ³„
β‘  μ£Όμ‹λ³„μž : λΆ€λͺ¨ μ—”ν„°ν‹°μ˜ μ£Όμ‹λ³„μžκ°€ μžμ‹ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ‘œ μƒμ†λœ κ²½μš°
- λΆ€λͺ¨λ‘œλΆ€ν„° 받은 μ‹λ³„μžλ₯Ό μžμ‹μ—”ν„°ν‹°μ˜ μ£Όμ‹λ³„μžλ‘œ μ΄μš©ν•˜λŠ” κ²½μš°
-  κ°•ν•œ 연결관계 ν‘œν˜„ μ‹€μ„  ν‘œκΈ°
- μ‹λ³„μž κ΄€κ³„λ‘œλ§Œ μ„€μ • μ‹œ μ£Όμ‹λ³„μž μ¦κ°€λ‘œ 였λ₯˜ 유발

 

β‘‘ λΉ„μ‹λ³„μž : λΆ€λͺ¨ 속성을 μžμ‹μ˜ 일반 μ†μ„±μœΌλ‘œ μ‚¬μš©

- λΆ€λͺ¨ μ—†λŠ” μžμ‹μ΄ 생성될 수 μžˆλŠ” 경우

- λΆ€λͺ¨μ™€ μžμ‹μ˜ 생λͺ…μ£ΌκΈ°κ°€ λ‹€λ₯Έ 경우 (별도 μ†Œλ©Έ)
- μ—¬λŸ¬κ°œμ˜ μ—”ν„°ν‹°κ°€ ν•˜λ‚˜μ˜ μ—”ν„°ν‹°λ‘œ ν†΅ν•©λ˜μ–΄ ν‘œν˜„λ˜μ—ˆλŠ”λ° 각각의 μ—”ν„°ν‹°κ°€ λ³„λ„μ˜ 관계λ₯Ό κ°€μ§„ 경우
- μžμ‹μ—”터티에 λ³„λ„μ˜ μ£Όμ‹λ³„μžλ₯Ό μƒμ„±ν•˜λŠ” 것이 더 μœ λ¦¬ν•œ κ²½μš°
- SQL λ¬Έμž₯이 κΈΈμ–΄μ Έ λ³΅μž‘μ„± μ¦κ°€λ˜λŠ” 것 λ°©μ§€ (μ•½ν•œ 연결관계 ν‘œν˜„ 점선 ν‘œκΈ°, λΉ„μ‹λ³„μž κ΄€κ³„λ‘œλ§Œ μ„€μ • μ‹œ λΆ€λͺ¨ 엔터티와 μ‘°μΈν•˜μ—¬ μ„±λŠ₯ μ €ν•˜)