ν‹°μŠ€ν† λ¦¬ λ·°

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

이상 ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ Relation을 관련이 μžˆλŠ” μ• νŠΈλ¦¬λ·°νŠΈλ“€λ‘œλ§Œ κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ Relation을 λΆ„ν•΄ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ„€κ³„ν•΄λ‚˜κ°€λŠ” 과정이닀.

 

μ—¬κΈ°μ„œ 이상 ν˜„μƒμ΄λž€?

λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 잘λͺ» μ„€κ³„ν•˜λ©΄ λΆˆν•„μš”ν•œ 데이터 쀑볡이 λ°œμƒν•΄ Relation에 λŒ€ν•œ λ°μ΄ν„°μ˜ μ‚½μž…, μˆ˜μ •, μ‚­μ œ 연산을 μˆ˜ν–‰ν•  λ•Œ λΆ€μž‘μš©μ΄ λ°œμƒν•˜λŠ”λ°, μ΄λŸ¬ν•œ λΆ€μž‘μš©μ„ 이상 ν˜„μƒ(Anomaly라고 ν•œλ‹€.

 

이상 ν˜„μƒμ„ 쑰금 μžμ„Ένžˆ μ‚΄νŽ΄ 보면, μ„Έ κ°€μ§€λ‘œ λΆ„λ₯˜ν•  수 μžˆλ‹€.

 

μ²«λ²ˆμ§ΈλŠ” μ‚½μž… 이상(Insertion Anomaly)으둜,

μƒˆ 데이터λ₯Ό μ‚½μž…ν•˜κΈ° μœ„ν•΄ λΆˆν•„μš”ν•œ 데이터도 ν•¨κ»˜ μ‚½μž…ν•΄μ•Ό ν•˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•  λ•Œ μƒκΈ°λŠ” 이상 ν˜„μƒμ΄λ‹€.

 

λ‘λ²ˆμ§ΈλŠ” κ°±μ‹  이상(Update Anomaly)으둜,

μ€‘λ³΅λ˜λŠ” νŠœν”Œλ“€ μ€‘μ—μ„œ μΌλΆ€λ§Œ λ³€κ²½λ˜μ–΄ 데이터가 λΆˆμΌμΉ˜ν•˜κ²Œλ˜λŠ” λͺ¨μˆœμ΄ μƒκΈ°λŠ” 이상 ν˜„μƒμ΄λ‹€.

 

λ§ˆμ§€λ§‰μœΌλ‘œλŠ” μ‚­μ œ 이상(Deletion Anomaly)으둜,

νŠœν”Œμ„ μ‚­μ œν•  λ•Œ κΌ­ ν•„μš”ν•œ λ°μ΄ν„°κΉŒμ§€ ν•¨κ»˜ μ‚­μ œλ˜μ–΄ 데이터가 μ†μ‹€λ˜λŠ” 이상 ν˜„μƒμ΄λ‹€.

 

이런 이상 ν˜„μƒμ€ μ™œ λ°œμƒν•˜λŠ”κ°€?

Relation에 μ—¬λŸ¬ 이상 ν˜„μƒμ΄ λ°œμƒν•˜λŠ” μ΄μœ λŠ” '관련이 μ—†λŠ” 속성듀을 ν•˜λ‚˜μ˜ λ¦΄λ ˆμ΄μ…˜μ— λͺ¨μ•„두고 있기 λ•Œλ¬Έ'이닀.

이상 ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ ν•˜λ €λ©΄, 관련이 μžˆλŠ” μ†μ„±λ“€λ‘œλ§Œ λ¦΄λ ˆμ΄μ…˜μ„ ꡬ성해야 ν•  것이닀.

즉, 이상 ν˜„μƒμ΄ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ λ¦΄λ ˆμ΄μ…˜μ„ 관련이 μžˆλŠ” μ†μ„±λ“€λ‘œλ§Œ κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ 'λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•˜λŠ” κ³Όμ •'이닀.

 


ν•¨μˆ˜ 쒅속은 λ¬΄μ—‡μ΄κΈΈλž˜ 자꾸 λ‚˜μ˜¬κΉŒ?

μœ„μ—μ„œ 봀듯이 μ •κ·œν™”λ₯Ό μˆ˜ν–‰ν•˜λ €λ©΄ μ• νŠΈλ¦¬λ·°νŠΈλ“€ κ°„μ˜ 관련성을 νŒλ‹¨ν•  수 μžˆμ–΄μ•Ό ν•  것이닀.

λ”°λΌμ„œ 이런 μ• νŠΈλ¦¬λ·°νŠΈλ“€ κ°„μ˜ 관련성을 ν•¨μˆ˜μ  쒅속성(FD: Functional Dependency)라고 μ •μ˜ν•œλ‹€.

 

쀑,고등학ꡐ λ•Œ λ°°μ› λ˜ ν•¨μˆ˜λ₯Ό μƒκ°ν•΄λ³΄μž.

X 값에 λŒ€μ‘λ˜λŠ” Y값이 μ‘΄μž¬ν•˜λŠ”λ°, 단 ν•˜λ‚˜μ˜ Yκ°’λ§Œ μ‘΄μž¬ν•œλ‹€λ©΄ 

"Xκ°€ Yλ₯Ό ν•¨μˆ˜μ μœΌλ‘œ κ²°μ •ν•œλ‹€" "Yκ°€ X에 ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λœλ‹€" 라고 ν‘œν˜„ν•œλ‹€.

ν•¨μˆ˜ 쒅속 κ΄€κ³„λŠ” μ•„λž˜μ™€ 같이 ν‘œν˜„ν•˜κ³ , Xλ₯Ό κ²°μ •μž, Yλ₯Ό μ’…μ†μžλΌκ³  ν•œλ‹€.

X (κ²°μ •μž) -> Y (μ’…μ†μž)

μΌλ°˜μ μœΌλ‘œλŠ” λ¦΄λ ˆμ΄μ…˜μ— ν•¨μˆ˜μ  쒅속성이 λ”± ν•˜λ‚˜ μ‘΄μž¬ν•˜λ„λ‘ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•œλ‹€.

 

ν•¨μˆ˜ μ’…μ†μ—λŠ” μ™„μ „ ν•¨μˆ˜ 쒅속과 λΆ€λΆ„ ν•¨μˆ˜ 쒅속이 μžˆλ‹€.

μ™„μ „ ν•¨μˆ˜ 쒅속은 λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ• νŠΈλ¦¬λ·°νŠΈ 집합 Yκ°€ μ• νŠΈλ¦¬λ·°νŠΈ 집합 X에 ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λ˜μ–΄ μžˆμ„ λ•Œ,

μ• νŠΈλ¦¬λ·°νŠΈ 집합 X의 일뢀뢄에 μ’…μ†λœ 것이 μ•„λ‹Œ μ „μ²΄μ μœΌλ‘œ μ’…μ†λ˜μ–΄ μžˆλŠ” 것을 μ˜λ―Έν•œλ‹€.

 

λΆ€λΆ„ ν•¨μˆ˜ 쒅속은 λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ• νŠΈλ¦¬λ·°νŠΈ 집합 Yκ°€ μ• νŠΈλ¦¬λ·°νŠΈ 집합 X의 전체가 μ•„λ‹Œ 일뢀뢄에도 ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λ˜λŠ” 것을 μ˜λ―Έν•œλ‹€. 

λΆ€λΆ„ ν•¨μˆ˜ 쒅속 관계가 μ„±λ¦½ν•˜λ €λ©΄ κ²°μ •μžκ°€ μ—¬λŸ¬ 개의 μ†μ„±λ“€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.

 


μ •κ·œν˜•μ˜ μ’…λ₯˜

μ •κ·œν˜•μ€ 크게 κΈ°λ³Έ μ •κ·œν˜•κ³Ό κ³ κΈ‰ μ •κ·œν˜•μœΌλ‘œ λ‚˜λˆ„μ–΄μ§„λ‹€.

κΈ°λ³Έ μ •κ·œν˜•μ—λŠ” 제1μ •κ·œν˜•, 제2μ •κ·œν˜•, 제3μ •κ·œν˜•, 보이슀/μ½”λ“œ μ •κ·œν˜•(BCNF)κ°€ 있고

κ³ κΈ‰ μ •κ·œν˜•μ—λŠ” 제4μ •κ·œν˜•, 제5μ •κ·œν˜•μ΄ μžˆλ‹€.

μ •κ·œν˜•μ˜ μ°¨μˆ˜κ°€ λ†’μ•„μ§ˆμˆ˜λ‘ μš”κ΅¬λ˜λŠ” μ œμ•½μ‘°κ±΄μ€ λ§Žμ•„μ§€κ³ , 엄격해진닀.

λ¦΄λ ˆμ΄μ…˜μ΄ νŠΉμ • μ •κ·œν˜•μ˜ μ œμ•½μ‘°κ±΄μ„ λ§Œμ‘±ν•˜λ©΄, λ¦΄λ ˆμ΄μ…˜μ΄ ν•΄λ‹Ή μ •κ·œν˜•μ— ν¬ν•¨λœλ‹€κ³  ν‘œν˜„ν•œλ‹€.

 

κΈ°λ³Έ μ •κ·œν˜•

제 1 μ •κ·œν˜•:

λ¦΄λ ˆμ΄μ…˜μ— μ†ν•œ λͺ¨λ“  μ• νŠΈλ¦¬λ·°νŠΈμ˜ 도메인이 μ›μž κ°’μœΌλ‘œλ§Œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.

 

제 2 μ •κ·œν˜•:

λ¦΄λ ˆμ΄μ…˜μ΄ 제 1μ •κ·œν˜•μ— μ†ν•˜κ³ ,

κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  μ• νŠΈλ¦¬λ·°νŠΈκ°€ 기본킀에 μ™„μ „ ν•¨μˆ˜ μ’…μ†λœλ‹€.

 

제 3μ •κ·œν˜•:

λ¦΄λ ˆμ΄μ…˜μ΄ 제 2μ •κ·œν˜•μ— μ†ν•˜κ³ ,

'κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  μ• νŠΈλ¦¬λ·°νŠΈ'κ°€ 기본킀에 이행적 ν•¨μˆ˜ 쒅속이 λ˜μ§€ μ•ŠλŠ”λ‹€.

 

보이슀/μ½”λ“œ μ •κ·œν˜•:

λ¦΄λ ˆμ΄μ…˜μ΄ 제 3μ •κ·œν˜•μ— μ†ν•˜κ³ ,

λ¦΄λ ˆμ΄μ…˜μ˜ ν•¨μˆ˜ 쒅속 κ΄€κ³„μ—μ„œ λͺ¨λ“  κ²°μ •μžκ°€ 후보킀이닀.

(후보킀가 μ•„λ‹Œ μ• νŠΈλ¦¬λ·°νŠΈκ°€ κ²°μ •μžκ°€ 되면 μ•ˆλœλ‹€.)

 

κ³ κΈ‰ μ •κ·œν˜•

제 4μ •κ·œν˜•:

λ¦΄λ ˆμ΄μ…˜μ΄ 보이슀/μ½”λ“œ μ •κ·œν˜•μ— μ†ν•˜κ³ ,

ν•¨μˆ˜ 쒅속이 μ•„λ‹Œ λ‹€μΉ˜ 쒅속성(MVD: Multi Valued Dependency)λ₯Ό μ œκ±°ν•΄μ•Ό λ§Œμ‘±ν•  수 μžˆλ‹€.

 

(λ‹€μΉ˜μ’…μ†μ΄λž€ λ‘κ°œμ˜ λ…λ¦½λœ μ• νŠΈλ¦¬λ·°νŠΈκ°€ 1:N κ΄€κ³„λ‘œ λŒ€μ‘ν•˜λŠ” κ΄€κ³„λ‘œ, "β† " ν™”μ‚΄ν‘œλ‘œ 쒅속성을 ν‘œμ‹œν•œλ‹€.)

즉, μ• νŠΈλ¦¬λ·°νŠΈκ°€ μ›μžκ°’μ΄ μ•„λ‹Œ 값을 μ—¬λŸ¬κ°œ κ°€μ§ˆ λ•Œ λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•΄ μ• νŠΈλ¦¬λ·°νŠΈκ°€ μ›μžκ°’μ„ 갖도둝 ν•˜λŠ” μ •κ·œν˜•μ΄λ‹€.

 

제 5μ •κ·œν˜•:

λ¦΄λ ˆμ΄μ…˜μ΄ 제4μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜λ©΄μ„œ

후보킀λ₯Ό ν†΅ν•˜μ§€ μ•ŠλŠ” 쑰인 쒅속(JD: Join Dependecy)λ₯Ό μ œκ±°ν•΄μ•Ό λ§Œμ‘±ν•  수 μžˆλ‹€.

 

쑰인 쒅속은 λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ˜ λͺ¨λ“  μ˜¬λ°”λ₯Έ λ¦΄λ ˆμ΄μ…˜ μƒνƒœκ°€ 뢄해될 λ•Œ,

ν•„μš” μ—†λŠ” 데이터가 생기지 μ•ŠλŠ” 비뢀가적 쑰인 λΆ„ν•΄,

ν•„μš”ν•œ 데이터가 사라지지 μ•ŠλŠ” 무손싀 λΆ„ν•΄λ₯Ό κ°€μ Έμ•Ό 함을 λ‚˜νƒ€λ‚Έλ‹€.

 

곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
Β«   2024/05   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
κΈ€ 보관함