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

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

05. 관계 이야기 (1)

관계에 λŒ€ν•œ μ„œμ„€

κ΄€κ³„μ˜ λ³Έμ§ˆ

  • κ΄€κ³„ν˜• DB의 ν•΅μ‹¬: λ°μ΄ν„°λ₯Ό μ€‘볡 μ—†μ΄ ν•œ κ³³μ— μ €μž₯ν•˜κ³ , ν•„μš” μ‹œ μ‘°μΈμœΌλ‘œ μ—°κ²°.
  • κ΄€κ³„λŠ” λ¦΄λ ˆμ΄μ…˜μ„ λΆ„ν•΄ν•œ ν›„ λ‹€μ‹œ μ—°κ²°ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•˜λ©°, λ¬Όλ¦¬μ μœΌλ‘œλŠ” 관계 속성(FK)κ³Ό μ°Έμ‘° 무결성 μ œμ•½μ„ 생성함
  • κ΄€κ³„μ„ μ˜ μ‹€μ²΄λŠ” 속성이며, DB에선 μ°Έμ‘° 무결성 μ œμ•½μœΌλ‘œ κ΅¬ν˜„λ¨.

κ΄€κ³„μ˜ μ˜¬λ°”λ₯Έ μ˜λ―Έ

  • λ‹¨μˆœν•œ ‘μ—°κ΄€μ„±’이 μ•„λ‹ˆλΌ λ…Όλ¦¬μ  μ—°κ΄€μ„±κ³Ό 1μ°¨ κ΄€κ³„κ°€ μžˆμ–΄μ•Ό ν•¨.
  • μ°Έμ‘° λ¬΄κ²°μ„±μ€ λ…Όλ¦¬μ  μ—°κ΄€μ„±, 1μ°¨ κ΄€κ³„λŠ” λ°”λ‘œ μƒμœ„ κ΄€κ³„λ₯Ό μ˜λ―Έ.
  • 관계와 ν˜Όλ™ν•˜κΈ° μ‰¬μš΄ μ—…무 νλ¦„은 λ³„κ°œ κ°œλ…μ΄λ©°, μΌλΆ€ κ²½μš°μ—λ§Œ κ΄€κ³„λ‘œ ν‘œν˜„ κ°€λŠ₯.

업무 νλ¦„κ³Ό κ΄€κ³„ κ΅¬λΆ„

  • 업무 ν™œλ™μ΄ λ°μ΄ν„°λ₯Ό μƒμ„±ν•  μˆ˜ μžˆμ§€λ§Œ, μ—…무 ν™œλ™(ν”„λ‘œμ„ΈμŠ€) ≠ λ°μ΄ν„°(μ—”ν„°ν‹°).
  • μƒνƒœ λ³€ν™”λ‚˜ μˆœμ°¨ μ—…λ¬΄λ‘œ μΈν•΄ μƒμ„±λœ λ°μ΄ν„° κ°„ μ—°κ΄€μ„ κ΄€λ¦¬ν•  ν•„μš”κ°€ μžˆμ„ λ•Œλ§Œ κ΄€κ³„λ‘œ μ„€κ³„.

관계λ₯Ό μ΄ν•΄ν•˜λŠ” ν•΅μ‹¬ ν¬μΈνŠΈ

  • 관계선 = 좔상 κ°œλ…μ΄ μ•„λ‹ˆλΌ 속성(FK)μ΄λΌλŠ” 싀체.
  • 쑰인을 μœ„ν•΄μ„œλŠ” μ–‘μͺ½ μ—”터티에 ν•΄λ‹Ή μ†μ„±μ΄ μ‘΄μž¬ν•΄μ•Ό ν•¨.
  • 관계·μ†μ„±·μ°Έμ‘° λ¬΄κ²°μ„±·μ‘°μΈμ€ μ„œλ‘œ λ°€μ ‘ν•˜κ²Œ μ—°κ²°λΌ μžˆμŒ.

 

관계선이 μ˜λ―Έν•˜λŠ” 것

관계선에 ν¬ν•¨λœ μ—¬λŸ¬ κ°€μ§€ 의미

 

업무 κ·œμΉ™

  • 관계λ₯Ό μ •ν™•νžˆ ν‘œν˜„ν–ˆλ‹€λ©΄ 관계 선은 μ–΄λ–€ μ‹μœΌλ‘œλ“  두 μ—”ν„°ν‹° κ°„μ˜ 업무 κ·œμΉ™μ„ 보여쀀닀.
  • 업무 κ·œμΉ™μ€ 기본적으둜 쒅속 관계냐 μ°Έμ‘° κ΄€κ³„λƒλ‘œ ꡬ뢄할 수 μžˆλ‹€.

업무 ν”„λ‘œμ„ΈμŠ€

  • 업무 ν”„λ‘œμ„ΈμŠ€μ— μ˜ν•΄ λ°œμƒν•˜λŠ” 데이터면 관계선이 μ—…λ¬΄μ˜ 흐름을 μ˜λ―Έν•˜κΈ°λ„ ν•œλ‹€.

쑰인

  • 관계선은 λ‹Ήμ—°νžˆ 데이터λ₯Ό μ‘°νšŒν•  λ–„ μ‘°μΈν•˜λŠ” 경둜λ₯Ό μ˜λ―Έν•œλ‹€.

μž…λ ₯ μˆœμ„œ

  • 일반적으둜 λ°μ΄ν„°λŠ” μƒμœ„ μ—”ν„°ν‹°λΆ€ν„° μƒμ„±λ˜κ³  ν•˜μœ„ 엔터티에 μƒμ„±λœλ‹€. 

 

관계λ₯Ό 섀계할 λ•Œ κ³ λ €ν•  사항

  1. μ†μ„±μœΌλ‘œ κ΄€λ¦¬ν•˜λ €λŠ” 관계
    • 관계선을 ν‘œν˜„ν•˜λ©΄ 속성이 λ”°λΌκ°€κ²Œ λœλ‹€. κ·Έ 속성이 λ°˜λ“œμ‹œ ν•„μš”ν•œ 속성인지, 없어도 λ¬΄κ΄€ν•œ 속성인지λ₯Ό 뢄석해야 ν•œλ‹€.
  2. μ°Έμ‘° 무결성 관계
    • μ°Έμ‘° 무결성 관계가 μ•„λ‹ˆλΌλ©΄ 관계선을 ν‘œν˜„ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
  3. λ°”λ‘œ μƒμœ„μ˜ 1μ°¨ 관계
    • λ°”λ‘œ μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹° ν•˜λ‚˜μ™€μ˜ κ΄€κ³„μ„ λ§Œμ„ κ΄€κ³„μ„ μœΌλ‘œ ν‘œν˜„ν•΄μ•Ό ν•œλ‹€.

 

μ°Έμ‘° 무결성

μ°Έμ‘° 무결성: μ°Έμ‘°ν•˜λŠ” 데이터 κ°„μ˜ 결점이 μ—†λŠ” 것을 의미

  • ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°μ˜ μ™Έλž˜ μ‹λ³„μž 속성(관계 속성)에 μ‘΄μž¬ν•˜λŠ” 값이 μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μž κ°’κ³Ό μΌμΉ˜ν•˜κ±°λ‚˜ 널이면 μ°Έμ‘° 무결성을 λ§Œμ‘±ν•œλ‹€κ³  ν•œλ‹€.
  • 두 μ—”ν„°ν‹°κ°€ 이와 같은 μƒνƒœμ— 있으면 μ°Έμ‘° 무결성 관계라고 ν•œλ‹€.
  • μ°Έμ‘° 무결성은 논리적인 κ°œλ…μ΄λ‹€. 이λ₯Ό λͺ¨λΈ(ERD)에 ν‘œν˜„ν•œ 것이 관계선이며, DBMS에 물리적으둜 κ΅¬ν˜„ν•œ 것이 μ°Έμ‘° 무결성 μ œμ•½(FK μ œμ•½)이닀.

μ‹€μ œλ‘œ μ°Έμ‘° 무결성 μ œμ•½μ„ 거의 μƒμ„±ν•˜μ§€ μ•ŠλŠ” 이유

  • μ„±λŠ₯의 μ €ν•˜ → 15% μ •λ„μ˜ μ„±λŠ₯ 손해λ₯Ό λ³Έλ‹€ ν•˜λ”λΌλ„ 데이터 무결성이 κΉ¨μ‘Œμ„ λ•Œμ˜ λΉ„μš©μ„ κ³ λ €ν•˜λ©΄ 무결성을 μ§€ν‚€λŠ” 것에 μš°μ„ μˆœμœ„λ₯Ό 둬야 ν•œλ‹€
  • 개발 μ‹œ λΆˆνŽΈν•¨ → ν˜„μ‹€μ μœΌλ‘œ κ°œλ°œν•˜κ³  ν…ŒμŠ€νŠΈν•˜λŠ” 게 λΆˆνŽΈν•  μˆ˜λŠ” μžˆμ§€λ§Œ, 개발의 λΆˆνŽΈν•¨ λ•Œλ¬Έμ— 데이터 무결성을 ν›Όμ†μ‹œν‚¬ μˆ˜λŠ” μ—†λ‹€.

 

κΈ°μ€€ μ—”ν„°ν‹°μ˜ μ°Έμ‘° 무결성

κΈ°μ€€ μ—”ν„°ν‹°: μ—…λ¬΄μ—μ„œ μ°Έμ‘°ν•˜λŠ” μΌμžλ‚˜ κΈˆμ•‘, 율 λ“±μ˜ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ—”ν„°ν‹°(ex. ν™˜μœ¨, 우편번호, 이자율 λ“±)

κΈ°μ€€ 엔터티와 κΈ°μ€€ μ—”ν„°ν‹°λ₯Ό μ‚¬μš©ν•˜λŠ” μ—”ν„°ν‹° 간에 관계선을 ν‘œν˜„ν• μ§€λŠ” μ‹€μ œ μ°Έμ‘° 무결성 μ œμ•½μ΄ μ‘΄μž¬ν•˜λŠ”μ§€λ‘œ λ”°μ Έμ•Ό ν•œλ‹€.

 

κΈ°μ€€ μ—”ν„°ν‹°μ˜ 데이터가 λ°”λ€Œλ©΄ κ·Έ κΈ°μ€€ 데이터λ₯Ό μ°Έμ‘°ν•΄ μ‚¬μš©ν–ˆλ˜ 데이터λ₯Ό μ „λΆ€ λ°”κΏ€ 것인지, μ•„λ‹ˆλ©΄ 선택할 λ‹Ήμ‹œμ˜ μ‹œμ  λ°μ΄ν„°μ΄λ―€λ‘œ λ°”κΎΈμ§€ 말지λ₯Ό μˆ™κ³ ν•΄μ•Ό ν•œλ‹€. λŒ€λΆ€λΆ„μ˜ κΈ°μ€€ λ°μ΄ν„°λŠ” μ‘°νšŒν•΄μ„œ μ°Έμ‘°ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ μ°Έμ‘° 무결성 관계가 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 것이 μΌλ°˜μ μ΄μ§€λ§Œ, 이 νŒλ‹¨μ€ 업무 μš”κ±΄μ— 따라 달라진닀.

 

κΈ°μ€€ μ—”ν„°ν‹°μ™€μ˜ 관계λ₯Ό 섀계할 λ•ŒλŠ”, κΈ°μ€€ μ—”ν„°ν‹°μ˜ 값이 μ°Έμ‘° 엔터티에 κ°’μœΌλ‘œ μ‘΄μž¬ν•΄μ•Ό ν•˜λŠ”μ§€, μ•„λ‹ˆλ©΄ κ΄€κ³„λ‘œ μ‘΄μž¬ν•˜λŠ”μ§€λ₯Ό 뢄석해야 ν•œλ‹€. μž…λ ₯된 κ°’μœΌλ‘œ μ‘΄μž¬ν•œλ‹€λ©΄ μ°Έμ‘° 무결성 κ΄€κ³„λŠ” μ—†λŠ” 것이닀. κΈ°μ€€ λ°μ΄ν„°λŠ” κ°’μœΌλ‘œ μ €μž₯ν•˜μ—¬ κ΄€λ¦¬ν•˜λŠ” 것이 μΌλ°˜μ μ΄λ‹€.

 

λ§Œμ•½ μ°Έμ‘° 무결성 관계가 μ‘΄μž¬ν•˜λ©΄, κΈ°μ€€ 엔터티에 μ‘΄μž¬ν•˜λŠ” 값이 λ°”λ€Œλ©΄ μ°Έμ‘° 엔터티에 μ‚¬μš©ν•œ 값도 λ°”κΏ”μ•Ό ν•œλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€. λ¬Όλ‘  μ°Έμ‘°ν•œ 값이 μ°Έμ‘°ν•  μ‹œμ μ˜ 값을 μ˜λ―Έν•œλ‹€λ©΄ 값을 μž„μ˜λ‘œ λ°”κΎΈλ©΄ μ•ˆ λœλ‹€. 이λ ₯ 데이터λ₯Ό κ΄€λ¦¬ν•˜λ©΄ μ°ΎλŠ” 것이 κ°€λŠ₯ν•˜μ§€λ§Œ, 싀읡이 μ—†λ‹€.

 

 

쒅속 관계와 μ°Έμ‘° 관계

  • 쒅속 관계: λΆ€λͺ¨ 엔터티와 μžμ‹ μ—”ν„°ν‹° κ°„μ˜ 관계. λΆ€λͺ¨ μ—”ν„°ν‹°κ°€ μ—†μœΌλ©΄ μžμ‹ μ—”ν„°ν‹°κ°€ μ‘΄μž¬ν•  수 μ—†λ‹€.
    • λΆ€λͺ¨ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό μžμ‹ μ—”ν„°ν‹°μ˜ μ‹λ³„μžλ‘œ μƒμ†ν•˜λŠ” 게 μΌλ°˜μ μ΄λ‹€.
  • μ°Έμ‘° 관계: 단지 μ–΄λ–€ μ—”ν„°ν‹°μ™€μ˜ 연관성을 κ΄€λ¦¬ν•˜λ €λŠ” 관계일 뿐, μƒμœ„ μ—”ν„°ν‹°κ°€ μ—†λ‹€κ³  μ‘΄μž¬ν•  수 μ—†λŠ” κ΄€κ³„λŠ” μ•„λ‹ˆλ‹€.
    • μƒμœ„ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό ν•˜μœ„ μ—”ν„°ν‹°μ˜ μ‹λ³„μžλ‘œ μƒμ†ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.

 

쒅속 κ΄€κ³„μ˜ 두 μ’…λ₯˜

  1. 데이터 본질적으둜 쒅속 관계인 것
  2. μ—…λ¬΄μ μœΌλ‘œ 쒅속 관계인 것

 

식별 관계와 비식별 관계

식별 관계: μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°λ‘œ 상속할 λ•Œ, μ£Ό μ‹λ³„μžμ— ν¬ν•¨λ˜λŠ” 관계

  • 업무 μš”κ±΄μ„ λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•˜κ³  κ΄€λ¦¬ν•œλ‹€.
  • μ£Ό μ‹λ³„μžλ₯Ό 인덱슀둜 μ‚¬μš©ν•  수 μžˆλ‹€.
  • 두 μ—”ν„°ν‹°κ°€ 쒅속 관계일 λ–„λŠ” 식별 관계λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 κΈ°λ³Έ 원칙이닀.

비식별 관계: μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžκ°€ ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°λ‘œ 상속될 λ•Œ 일반 속성에 ν¬ν•¨λ˜λŠ” 관계

  • 두 μ—”ν„°ν‹°κ°€ μ°Έμ‘° 관계일 λ•ŒλŠ” 비식별 관계λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

 

쒅속/μ°Έμ‘° 관계와 식별/비식별 관계

두 μ—”ν„°ν‹°μ˜ 관계가 쒅속 관계일 λ•ŒλŠ” μ‹λ³„μžλ‘œμ„œ μƒμ†ν•˜λŠ” 것이닀. λ°˜λ©΄μ— ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°κ°€ μƒμœ„(λΆ€λͺ¨) 엔터티에 쑴재 μ’…μ†λ˜μ§€ μ•ŠμœΌλ©΄, 즉 μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°κ°€ μ‘΄μž¬ν•˜μ§€ μ•Šμ•„λ„ ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°κ°€ μ‘΄μž¬ν•  수 있으면 일반 μ†μ„±μœΌλ‘œ μƒμ†ν•˜λŠ” 것이 원칙이닀.

 

쒅속/μ°Έμ‘° 관계: 두 μ—”ν„°ν‹° μ‚¬μ΄μ˜ 성격을 νŒŒμ•…ν•˜λŠ” 논리적인 κ°œλ…

식별/비식별 관계: CASE 툴의 물리적인 ν‘œκΈ° 방법

 

  1. 쒅속 κ΄€κ³„μ΄λ©΄μ„œ 식별 관계
    • λΆ€λͺ¨ 엔터티에 쑴재 μ’…μ†λœ 쒅속 μ—”ν„°ν‹°λŠ” λŒ€λΆ€λΆ„ 식별 κ΄€κ³„λ‘œ 상속 λ°›λŠ”λ‹€.
    • 변화에 μ·¨μ•½ν•˜κ³ , ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•΄μ§„λ‹€λŠ” 단점이 μžˆλ‹€.
  2. 쒅속 κ΄€κ³„μ΄λ©΄μ„œ 비식별 관계
    • μš”κ±΄μ΄ 변경될 κ°€λŠ₯성이 μžˆκ±°λ‚˜, 볡합 μ£Ό μ‹λ³„μžκ°€ λ°”λžŒμ§ν•˜μ§€ μ•Šμ„ λ•ŒλŠ” 비식별 관계λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.
    • 1번 λͺ¨λΈλ³΄λ‹€ 훨씬 μœ μ—°ν•˜κ²Œ μ‚¬μš©ν•  수 있고, 속성 엔터티에 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜μ—¬ μ£Ό μ‹λ³„μžκ°€ λ‹¨μˆœν•΄μ§„λ‹€.
  3. μ°Έμ‘° κ΄€κ³„μ΄λ©΄μ„œ 비식별 관계
    • ν•˜μœ„ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžμ— μƒμœ„ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžκ°€ κ΄€μ—¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • ν•˜μœ„ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλŠ” 인쑰 μ‹λ³„μžκ±°λ‚˜ μžμ‹ μ˜ 업무 μ‹λ³„μžμ΄λ‹€.
  4. μ°Έμ‘° κ΄€κ³„μ΄λ©΄μ„œ 식별 관계
    • 맀우 λ“œλ¬Έ 관계(μΌλ°˜μ μœΌλ‘œλŠ” 잘λͺ» μ„€κ³„ν•œ λͺ¨λΈ)

κ²°λ‘ :

  • 두 μ—”ν„°ν‹°κ°€ 업무적인 쒅속성이 μ—†μŒμ—λ„ μ‹λ³„μžλ‘œ μƒμ†ν•˜λŠ” 것은 μ§€μ–‘ν•΄μ•Ό ν•œλ‹€.
  • 두 μ—”ν„°ν‹°κ°€ 업무적인 쒅속성이 μ‘΄μž¬ν•¨μ—λ„ λΆˆκ΅¬ν•˜κ³  λ¬΄μ˜μ‹μ μœΌλ‘œ ν•˜μœ„(μžμ‹) 엔터티에 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜κ³  μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžλ₯Ό 일반 μ†μ„±μœΌλ‘œ μ‚¬μš©ν•  λ•Œκ°€ μžˆλŠ”λ°, μ΄λ ‡κ²Œ 인쑰 μ‹λ³„μžλ₯Ό λ‚¨λ°œν•˜λŠ” 것 μ—­μ‹œ μ§€μ–‘ν•΄μ•Ό ν•œλ‹€.
  • 쒅속 관계라면 식별 관계λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 λ°”λžŒμ§ν•˜λ©°, μ°Έμ‘° 관계라면 비식별 관계λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 λ°”λžŒμ§ν•˜λ‹€.

 

식별 관계와 비식별 관계λ₯Ό μ±„νƒν•˜λŠ” μ˜ˆμ™Έ 경우

μ„±λŠ₯ κ³ λ €

  • μ‹¬κ°ν•œ μ„±λŠ₯ μ΄μŠˆκ°€ μžˆμ„ λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” 방법. μ‹€λ¬΄μ—μ„œλŠ” 단지 μ‘°μΈν•˜μ§€ μ•ŠκΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ μžˆλŠ”λ° μ„±λŠ₯ λ¬Έμ œκ°€ μ—†λ‹€λ©΄ μ‚¬μš©ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.

λͺ¨λΈ ꡬ쑰 κ³ λ €

  • λͺ¨λΈμ„ λ‹¨μˆœν•˜κ²Œ λ§Œλ“€ λ•Œ 주둜 μ‚¬μš©ν•˜λŠ” 방법. μ£Ό μ‹λ³„μžκ°€ λ³΅μž‘ν•΄μ§€λŠ” 것을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ 업무 μ‹λ³„μžλ₯Ό λŒ€μ²΄ν•΄μ„œ 인쑰 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. 

 

관계 속성과 관계 μ—”ν„°ν‹°

  • μ„Έ 개의 관계 속성이 μžˆμœΌλ―€λ‘œ 관계선을 μ„Έ 개 ν‘œν˜„ν•΄μ•Ό ν•œλ‹€.
  • λ˜ν•œ 관계선이 μ—¬λŸ¬ 개이기 λ•Œλ¬Έμ— 관계 λͺ…에 μˆ˜μ‹μ–΄λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

  • κ³„μ•½μžλŠ” ν•œ λͺ…μ΄μ§€λ§Œ ν”Όλ³΄ν—˜μžλŠ” 두 λͺ…, μ—°λŒ€λ³΄μ¦μΈμ€ μ„Έ λͺ…κΉŒμ§€ κ°€λŠ₯ν•˜λ‹€λŠ” μš”κ±΄μ΄ 생겼을 경우의 λͺ¨λΈ
  • 관계 속성이 λ§Žμ•„μ‘Œμ§€λ§Œ 더 이상 λŠ˜μ–΄λ‚˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μ‚¬μš©ν•  수 μžˆλŠ” λͺ¨λΈ

  • 두 μ—”ν„°ν‹° κ°„μ˜ μ—°κ΄€ κ΄€κ³„κΉŒ ν•œμ •μ μΌ λ–„λŠ” 관계 μ†μ„±μœΌλ‘œ 관리할 수 μžˆμ§€λ§Œ, μ—°κ΄€ 관계가 λ§Žμ•„μ§€κ±°λ‚˜ λ§Žμ•„μ§ˆ κ°€λŠ₯성이 μžˆλ‹€λ©΄ 관계 μ†μ„±μœΌλ‘œ 관리할 수 μ—†κ³  μ—”ν„°ν‹°λ‘œ 관리해야 ν•œλ‹€.
  • 두 μ—”ν„°ν‹° 간에 λ§Žμ€ 관계가 μ‘΄μž¬ν•˜λ©΄ 이처럼 μ—”ν„°ν‹°λ‘œ 관리해야 ν•œλ‹€.

 

관계 μ—”ν„°ν‹°μ˜ νŠΉμ§•

  • 관계 μ—”ν„°ν‹°λ₯Ό μ‚¬μš©ν•˜λ©΄ ERD 뿐만 μ•„λ‹ˆλΌ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‚˜ 쿼리의 μˆ˜μ •κΉŒμ§€ μ΅œμ†Œν™”μ‹œν‚€λŠ” μœ μ—°ν•œ λͺ¨λΈμ΄ λœλ‹€.
  • λΆ€κ°€ 속성을 κ΄€λ¦¬ν•˜κΈ° μ‰¬μ›Œμ§„λ‹€.
  • λΉˆλ²ˆν•˜κ²Œ λ°œμƒν•˜μ§„ μ•Šμ§€λ§Œ, 관계 μ—”ν„°ν‹°μ˜ ν•˜μœ„ μ—”ν„°ν‹°κ°€ 생길 수 μžˆλ‹€.
  • 쀑볡 관계, 쀑볡 속성을 κ΄€λ¦¬ν•˜λŠ” 것이 관계 μ—”ν„°ν‹°μ—μ„œ κ³ λ €ν•  수 μžˆλŠ” λΉ„μ •κ·œν˜• κ°€μš΄λ° 일뢀이닀.
  • 자체적으둜 이λ ₯을 관리할 수 μžˆλŠ” ꡬ쑰이닀.

 

관계 μ—”ν„°ν‹° 선택 κΈ°μ€€

ꡬ뢄 관계 속성(컬럼 관리 방식) 관계 μ—”ν„°ν‹°(둜우 관리 방식)
선택기쀀 - 반볡 μ†μ„±μ˜ κ°œμˆ˜κ°€ 적으며, μ—…λΆ€ λ³€κ²½μœΌλ‘œ μΈν•œ μ†μ„±μ˜ λ³€κ²½ κ°€λŠ₯성이 없을 λ•Œ - 업무 λ³€κ²½μœΌλ‘œ μΈν•œ μ†μ„±μ˜ λ³€κ²½ κ°€λŠ₯성이 μ‘°κΈˆμ΄λΌλ„ μ‘΄μž¬ν•  λ•Œ
- 속성에 λŒ€ν•œ ν•˜μœ„ μ—”ν„°ν‹° 관리가 ν•„μš”ν•  λ•Œ
- μ†μ„±μ˜ 이λ ₯ 관리가 ν•„μš”ν•  λ•Œ
νŠΉμ§• - μ†μ„±μœΌλ‘œ λŠ˜μ–΄λ‚¨
- 업무 변화에 μœ μ—°ν•˜μ§€ μ•ŠμŒ
- μΈλ±μŠ€κ°€ 반볡 속성 숫자 μ΄μƒμœΌλ‘œ 증가함
- 쑰회 쿼리가 λ³΅μž‘ν•˜κ³  λΉ„νš¨μœ¨μ μž„
- 속성에 λŒ€ν•œ ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°λ₯Ό κ΄€λ¦¬ν•˜κΈ° νž˜λ“¦
- 이λ ₯ 관리가 λ³΅μž‘ν•΄μ§€κ³  λΉ„νš¨μœ¨μ μž„
- νŠΉμ • μš”κ±΄μ— λŒ€ν•œ μ„±λŠ₯이 뛰어남
- μ—”ν„°ν‹°κ°€ 좔가됨
- 업무 변화에 μœ μ—°ν•˜κ³  ν™•μž₯성이 μ’‹μŒ
- μΈλ±μŠ€κ°€ ν•˜λ‚˜λ§Œ ν•„μš”ν•¨
- 쑰회 쿼리가 λ‹¨μˆœν•˜κ³  νš¨μœ¨μ μž„
- 속성에 λŒ€ν•œ ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°λ₯Ό 관리할 수 있음
- μΈμŠ€ν„΄μŠ€ μˆ˜κ°€ 증가함
- 이λ ₯ 관리가 νš¨μœ¨μ μž„

 

κ΄€κ³„μ„ μ˜ ꡬ성 μš”μ†Œ

 

관계비

  • 관계비(Cardinality)λŠ” ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€μ™€ κ΄€κ³„μžˆλŠ” μƒλŒ€ μΈμŠ€ν„΄μŠ€ 개수λ₯Ό μ˜λ―Έν•œλ‹€. κ΄€κ³„λΉ„λŠ” 보톡 μƒˆ 발(Crow's Foot)둜 ν‘œμ‹œν•œλ‹€.

관계 μ‘΄μž¬μ„±

  • 관계 μ‘΄μž¬μ„±(Optionality)은 ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€μ™€ κ΄€κ³„μžˆλŠ” μƒλŒ€ μΈμŠ€ν„΄μŠ€μ˜ 쑴재 μ—¬λΆ€λ₯Ό μ˜λ―Έν•œλ‹€.

관계 νƒ€μž…

  • 관계λ₯Ό 상속할 λ•Œ 식별 κ΄€κ³„λ‘œ μƒμ†ν•˜λŠ”μ§€ 비식별 κ΄€κ³„λ‘œ μƒμ†ν•˜λŠ”μ§€λ₯Ό 관계 νƒ€μž…μ΄λΌκ³  ν•œλ‹€.

관계 μ°Έμ—¬μˆ˜

  • 관계 μ°Έμ—¬μˆ˜λŠ” 관계선과 μ—°κ΄€λœ μ—”ν„°ν‹°μ˜ 개수λ₯Ό μ˜λ―Έν•œλ‹€.

관계λͺ…

  • 관계 λͺ…은 λͺ¨λΈμ˜ 가독성을 높이기 μœ„ν•΄ 뢙인닀. λ”°λΌμ„œ μ§κ΄€μ μœΌλ‘œ μ•Œ 수 μžˆλŠ” λŒ€λΆ€λΆ„ κ΄€κ³„μ—λŠ” 관계 λͺ…을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

관계 ꡬ성 μš”μ†Œ - 관계비

관계비: μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ ν•œ 개의 μΈμŠ€ν„΄μŠ€κ°€ ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°μ˜ λͺ‡ 개의 μΈμŠ€ν„΄μŠ€μ™€ 연관이 μžˆλŠ”μ§€λ₯Ό μ˜λ―Έν•˜λŠ” μš©μ–΄

  • μΌλŒ€μΌ 관계
  • μΌλŒ€λ‹€ 관계
  • λ‹€λŒ€λ‹€ 관계

 

관계비 뢄석 방법

관계비 λΆ„μ„μ˜ ν•΅μ‹œμ€ μƒλŒ€ μΈμŠ€ν„΄μŠ€ κ°œμˆ˜κ°€ ν•˜λ‚˜μΈμ§€, ν•˜λ‚˜ 이상인지λ₯Ό νŒŒμ•…ν•˜λŠ” 것이닀.

κ΄€κ³„λΉ„λŠ” 일반적으둜 관계 μ‘΄μž¬μ„±μ„ ν¬ν•¨ν•˜κ³  μžˆλ‹€. 

  • '0'이 ν¬ν•˜λœ μΌλŒ€μΌ 관계
  • '0'이 ν¬ν•¨λ˜μ§€ μ•Šμ€ μΌλŒ€μΌ 관계
  • '0'이 ν¬ν•¨λœ μΌλŒ€λ‹€ 관계
  • '0'이 ν¬ν•¨λ˜μ§€ μ•Šμ€ μΌλŒ€λ‹€ 관계

관계비 뢄석 μ‹œ μ£Όμ˜ν•  점

  1. κ΄€κ³„λΉ„λŠ” νŠΉμ • μ‹œμ μ„ κΈ°μ€€μœΌλ‘œ ν•˜μ§€ μ•ŠλŠ” 것
    • κ΄€κ³„λΉ„λŠ” λ°œμƒν•  수 μžˆλŠ” κ°€λŠ₯성을 μ˜λ―Έν•œλ‹€. μ–Έμ  κ°€ 생길 κ°€λŠ₯성이 μžˆλŠ” 관계λ₯Ό μ˜λ―Έν•˜κΈ° λ•Œλ¬Έμ— νŠΉμ • μ‹œμ κ³ΌλŠ” λ¬΄κ΄€ν•˜λ‹€.
    • λ°μ΄ν„°λŠ” 계속 μ‚΄μ•„μ„œ μ›€μ§μ΄λŠ” μœ κΈ°μ²΄μ™€ κ°™κΈ° λ•Œλ¬Έμ— κ³ μ •λœ μ‹œμ μ΄ μ•„λ‹Œ 미래λ₯Ό ν¬ν•¨ν•œ 전체 μ‹œμ μœΌλ‘œ νŒλ‹¨ν•΄μ•Ό ν•œλ‹€.
  2. 이λ ₯ 데이터
    • μ›μ²œ λ°μ΄ν„°λ§Œ ν¬ν•¨λœ 업무 κ·œμΉ™μ— λ”°λ₯Έ κ΄€κ³„λΉ„λŠ” μΌλŒ€μΌμ΄μ§€λ§Œ, 이λ ₯ λ°μ΄ν„°κΉŒμ§€ ν¬ν•¨ν•˜λ©΄ 관계비가 μΌλŒ€λ‹€κ°€ 될 수 μžˆλ”°λŠ” 점은 μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.
    • 관계비λ₯Ό 섀계할 λ–„λŠ” 이λ ₯ 데이터가 관계비 μ œμ•½μ— 영ν–₯을 λ―ΈμΉœλ‹€λŠ” 사싀을 항상 염두해 두어야 ν•œλ‹€.

 

관계 ꡬ성 μš”μ†Œ - 관계 μ‘΄μž¬μ„±

관계 μ‘΄μž¬μ„±: ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€μ™€ κ΄€κ³„μžˆλŠ” μƒλŒ€ μΈμŠ€ν„΄μŠ€μ˜ 쑴재 μ—¬λΆ€λ₯Ό μ˜γ…£

  • ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€μ™€ μ—°κ΄€λ˜λŠ” μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€κ°€ λ°˜λ“œμ‹œ μ‘΄μž¬ν•΄μ•Ό ν•˜λŠ”μ§€, μ‘΄μž¬ν•˜μ§€ μ•Šμ•„λ„ λ˜λŠ”μ§€λ₯Ό 의미
  • ν•˜μœ„(μžμ‹) μ—”ν„°ν‹°μ˜ 관계 속성에 μ‚¬μš©λœ 값이 μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μž 속성에 λ°˜λ“œμ‹œ μ‘΄μž¬ν•˜λŠ”μ§€λ₯Ό 의미
  • μ΅œμ†Œ κ°œμˆ˜κ°€ '0'이면 선택 관계이고, '1'이면 ν•„μˆ˜ 관계이닀. ν•„μˆ˜ 관계이면 μƒλŒ€ μΈμŠ€ν„΄μŠ€κ°€ λ°˜λ“œμ‹œ μ‘΄μž¬ν•΄μ•Ό ν•˜λ©°, 선택 관계이면 μƒλŒ€ μΈμŠ€ν„΄μŠ€κ°€ μ‘΄μž¬ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.

 

μƒμœ„ μ—”ν„°ν‹°μ˜ 관계 μ‘΄μž¬μ„±

μƒμœ„(λΆ€λͺ¨) μ—”ν„°ν‹°μ˜ 관계 μ‘΄μž¬μ„±μ΄ 선택일 λ–„λŠ” μ–΄λΆ€ κ·œμΉ™μ΄ 관계선에 μ œλŒ€λ‘œ 반영된 것인지, μ—”ν„°ν‹°κ°€ μ œλŒ€λ‘œ λ„μΆœλœ 것인지 λ‹€μ‹œ ν•œ 번 μ‚΄νŽ΄μ•Ό ν•œλ‹€. μƒμœ„ μ—”ν„°ν‹°μ˜ 관계 μ‘΄μž¬μ„±μ΄ ν•„μˆ˜μ—¬μ•Ό 두 μ—”ν„°ν‹° 사이에 업무 κ·œμΉ™μ΄ μ‘΄μž¬ν•˜λŠ” 것이닀.

 

관계비와 관계 μ‘΄μž¬μ„±μ˜ ν‘œκΈ°λ²•

 

 

관계 μ‘΄μž¬μ„±κ³Ό 관계 μ†μ„±μ˜ 널 μ œμ•½

  • 관계 μ‘΄μž¬μ„±κ³Ό 관계 μ†μ„±μ˜ NULL ν—ˆμš© μ—¬λΆ€λŠ” μ„œλ‘œ 관련이 μ—†λ‹€.
  • μ°Έμ‘° 무결성은 관계 속성 값이 μƒμœ„ μ—”ν„°ν‹°μ˜ κ°’μ΄κ±°λ‚˜ NULL일 수 μžˆμŒμ„ ν—ˆμš©ν•˜λ©°, μ΄λŠ” μƒμœ„ μ—”ν„°ν‹°μ˜ μ£Ό μ‹λ³„μžμ—λŠ” NULL이 μžˆμ„ 수 μ—†κΈ° λ•Œλ¬Έμ— μ •μ˜λœ 것이닀.
  • 두 κ°œλ…μ„ ν˜Όλ™ν•˜λ©΄ λ°μ΄ν„° κ΄€λ¦¬μ— μ˜€λ₯˜κ°€ λ°œμƒν•  μˆ˜ μžˆμœΌλ―€λ‘œ κ΅¬λΆ„ν•΄μ„œ μ΄ν•΄ν•΄μ•Ό ν•œλ‹€.