[Database] κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ ν‚€ μ’…λ₯˜ (κΈ°λ³Έν‚€, 후보킀, μ™Έλž˜ν‚€, μŠˆνΌν‚€, λŒ€μ²΄ν‚€)

2021. 10. 13. 14:52γ†λ°μ΄ν„°λ² μ΄μŠ€

728x90

 

κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ ν‚€ μ’…λ₯˜

 

 

1. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν‚€ (key) λž€?

ν‚€ (key) λž€ 

ν‚€λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 쑰건에 λ§Œμ‘±ν•˜λŠ” νŠœν”Œμ„ μ°Ύκ±°λ‚˜ μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•  λ•Œ 기쀀이 λ˜λŠ” 속성을 λ§ν•œλ‹€. 

ν‚€λŠ” 주어진 λ¦΄λ ˆμ΄μ…˜μ—μ„œ λͺ¨λ“  μΈμŠ€ν„΄μŠ€ κ°€μš΄λ° μœ μΌν•¨μ„ 보μž₯ν•΄μ£ΌλŠ” ν•˜λ‚˜ μ΄μƒμ˜ 속성 μ§‘ν•©μœΌλ‘œ, μ‹λ³„μžλΌκ³ λ„ ν•œλ‹€. 

 

 

 

 

2. ν‚€μ˜ 속성 

ν‚€λŠ” μš°μ„  μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ΄λΌλŠ” 속성이 μžˆλ‹€.

- μœ μΌμ„± (Uniqueness) : ν•˜λ‚˜μ˜ ν‚€ κ°’μœΌλ‘œ νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” μ„±μ§ˆμ„ μ˜λ―Έν•œλ‹€. 

- μ΅œμ†Œμ„± (Minimality) : ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” 속성듀 쀑 κΌ­ ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ†μ„±λ“€λ‘œλ§Œ ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” μ„±μ§ˆμ„ μ˜λ―Έν•œλ‹€. 

 

 

 

 

3. 후보킀 (Candidate key) 

ν›„λ³΄ν‚€λŠ” λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” 속성듀 μ€‘μ—μ„œ νŠœν”Œμ„ μœ μΌν•˜κ²Œ μ‹λ³„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” μ†μ„±λ“€μ˜ 뢀뢄집합이닀. 

ν›„λ³΄ν‚€λŠ” 즉 κΈ°λ³Έν‚€λ‘œ μ‚¬μš©ν•  수 μžˆλŠ” 속성듀을 μ˜λ―Έν•œλ‹€. 

λͺ¨λ“  λ¦΄λ ˆμ΄μ…˜μ€ λ°˜λ“œμ‹œ ν•˜λ‚˜ μ΄μƒμ˜ 후보킀λ₯Ό 가지고 있으며,λ¦΄λ ˆμ΄μ…˜μ—μžˆλŠ” λͺ¨λ“  νŠœν”Œμ— λŒ€ν•΄μ„œ μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•΄μ•Όν•œλ‹€. 

 

사진에 λ³΄μ΄λŠ” ν…Œμ΄λΈ”μ—μ„œ 보면 'ν•™λ²ˆ'κ³Ό '주민번호'κ°€ νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” 후보킀가 될 수 μžˆλ‹€. 

 

 

 

 

4. κΈ°λ³Έν‚€ (Primary key)

κΈ°λ³Έν‚€λŠ” 이제 후보킀 μ€‘μ—μ„œ νŠΉλ³„νžˆ μ„ μ •λœ μ£Όν‚€(Main key)이며, ν•œ λ¦΄λ ˆμ΄μ…˜μ—μ„œ νŠΉμ • νŠœν”Œμ„ μœ μΌν•˜κ²Œ ꡬ별할 수 μžˆλŠ” 속성이닀. 

κΈ°λ³Έν‚€λŠ” μ€‘λ³΅λœ 값을 κ°€μ§ˆ 수 μ—†κ³ , null 값을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. 

κΈ°λ³Έν‚€λ₯Ό μ„ μ •ν•  λ•Œ 값이 자주 λ³€κ²½λ˜λŠ” 속성을 ν¬ν•¨ν•œ ν›„λ³΄ν‚€λŠ” κΈ°λ³Έν‚€λ‘œ μ μ ˆν•˜μ§€ μ•Šλ‹€.

κΈ°λ³Έν‚€λŠ” ν›„λ³΄ν‚€μ˜ μ„±μ§ˆμ΄μ—ˆλ˜ μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•œλ‹€. 

 

사진에 λ³΄μ΄λŠ” ν…Œμ΄λΈ”μ—μ„œ ν›„λ³΄ν‚€μ˜€λ˜ 'ν•™λ²ˆ'κ³Ό '주민번호' 쀑 κΈ°λ³Έν‚€κ°€ 될 수 μžˆλ‹€. 

 

 

5. λŒ€μ²΄ν‚€ (Alternate key)

 

λŒ€μ²΄ν‚€λŠ” 후보킀가 λ‘˜ μ΄μƒμ΄μ—ˆμ„ λ•Œ κΈ°λ³Έν‚€λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ 후보킀듀을 λ§ν•œλ‹€. 

λŒ€μ²΄ν‚€λŠ” 보쑰킀라고도 ν•œλ‹€. 

 

μ‚¬μ§„μ˜ ν…Œμ΄λΈ”μ—μ„œ λ§Œμ•½ κΈ°λ³Έν‚€κ°€ 'ν•™λ²ˆ' 이라면 λŒ€μ²΄ν‚€λŠ” '주민번호'κ°€ λœλ‹€. 

 

 

6. μŠˆνΌν‚€ (Super key)

μŠˆνΌν‚€λŠ” ν•œ λ¦΄λ ˆμ΄μ…˜ 내에 μžˆλŠ” μ†μ„±λ“€μ˜ μ§‘ν•©μœΌλ‘œ κ΅¬μ„±λœ 킀이닀. 

λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” λͺ¨λ“  νŠœν”Œ 쀑 μŠˆνΌν‚€λ‘œ κ΅¬μ„±λœ μ†μ„±μ˜ 집합과 λ™μΌν•œ 값을 λ‚˜νƒ€λ‚΄μ§€λŠ” μ•ŠλŠ”λ‹€. 

λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” λͺ¨λ“  νŠœν”Œμ— λŒ€ν•΄ μœ μΌμ„±μ€ λ§Œμ‘±ν•˜μ§€λ§Œ, μ΅œμ†Œμ„±μ€ λ§Œμ‘±ν•˜μ§€ μ•ŠλŠ”λ‹€. 

 

μ‚¬μ§„μ˜ ν…Œμ΄λΈ”μ—μ„œ μŠˆνΌν‚€λŠ” 'ν•™λ²ˆ', '주민번호', 'ν•™λ²ˆ + 주민번호' , 'ν•™λ²ˆ + 주민번호 + μ„±λͺ…' λ“±μœΌλ‘œ μŠˆνΌν‚€ ꡬ성 κ°€λŠ₯ν•˜λ‹€. 

μ΄λ•Œ μ„±λͺ…은 λ‹¨λ…μœΌλ‘œλŠ” ꡬ별이 λΆˆκ°€λŠ₯이기 λ•Œλ¬Έμ— μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•˜μ§€ μ•Šμ•„ λ‹¨λ…μœΌλ‘œ μŠˆνΌν‚€λŠ” μ•ˆλœλ‹€. 

 

 

7. μ™Έλž˜ν‚€ (Foreign key)

μ™Έλž˜ν‚€λŠ” λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έν‚€λ₯Ό μ°Έμ‘°ν•˜λŠ” 속성 λ˜λŠ” μ†μ„±λ“€μ˜ 집합이닀. 

μ™Έλž˜ν‚€λŠ” μ°Έμ‘°λ˜λŠ” λ¦΄λ ˆμ΄μ…˜μ˜ 기본킀와 λŒ€μ‘λ˜μ–΄ λ¦΄λ ˆμ΄μ…˜ 간에 μ°Έμ‘° 관계λ₯Ό ν‘œν˜„ν•˜λŠ”λ° μ€‘μš”ν•œ λ„κ΅¬λ‘œ μ‚¬μš©λœλ‹€. 

μ™Έλž˜ν‚€λ‘œ μ§€μ •λ˜λ©΄ μ°Έμ‘° ν…Œμ΄λΈ”μ˜ 기본킀에 μ—†λŠ” 값은 μž…λ ₯ν•  수 μ—†λ‹€. 

 

μ‚¬μ§„μ˜ ν…Œμ΄λΈ”μ—μ„œλŠ” μš°μ„  μˆ˜κ°• table이 학생 table을 μ°Έμ‘°ν•˜κ³  μžˆμœΌλ―€λ‘œ, 학생 table의 κΈ°λ³Έν‚€λŠ” 'ν•™λ²ˆ'이고, μˆ˜κ°• ν…Œμ΄λΈ”μ˜ μ™Έλž˜ν‚€λŠ” 'ν•™λ²ˆ'이닀.

λ”°λΌμ„œ μˆ˜κ°• ν…Œμ΄λΈ”μ˜ 'ν•™λ²ˆ'μ—λŠ” 학생 ν…Œμ΄λΈ”μ— μ—†λŠ” 'ν•™λ²ˆ' 값을 μž…λ ₯ν•  μˆ˜λŠ” μ—†λ‹€!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90