Computer Science πŸ“š/SQLD

[SQLD] κ³Όλͺ©1 - 1μž₯. 데이터 λͺ¨λΈλ§μ˜ 이해

leejaejae 2024. 11. 8. 22:51

제1절. 데이터 λͺ¨λΈμ˜ 이해

1. λͺ¨λΈλ§

  • λ‹€μ–‘ν•œ ν˜„μ‹€μ„ 좔상화, λ‹¨μˆœν™”ν•˜μ—¬ μΌμ •ν•œ ν‘œκΈ°λ²•μ— μ˜ν•΄ ν‘œν˜„ν•˜λŠ” 것
  • λͺ¨λΈμ΄λž‘ ν˜„μ‹€ μ„Έκ²Œμ˜ 좔상화 된 반영


2. λͺ¨λΈλ§ νŠΉμ§•

  • 좔상화: μΌμ •ν•œ ν˜•μ‹μ— λ§žμΆ°μ„œ ν‘œν˜„
  • λ‹¨μˆœν™”: μ œν•œλœ ν‘œκΈ°λ²•μ΄λ‚˜ μ–Έμ–΄λ‘œ ν‘œν˜€
  • λͺ…ν™•ν™”(=μ •ν™•ν™”): 애맀λͺ¨ν˜Έν•¨μ„ μ œκ±°ν•΄ 이해가 μ‰½κ²Œ ν‘œν˜„


3. λͺ¨λΈλ§ νŠΉμ§•

  • 데이터 관점(what): 업무와 데이터 및 데이터 μ‚¬μ΄μ˜ 관계λ₯Ό λͺ¨λΈλ§
  • ν”„λ‘œμ„ΈμŠ€ 관점(how): 업무가 μ‹€μ œλ‘œ ν•˜λŠ” μžˆλŠ” 일, ν•΄μ•Ό ν•˜λŠ” 일 λͺ¨λΈλ§
  • 데이터와 ν”„λ‘œμ„ΈμŠ€μ˜ 상관 관점(interaction): 데이터에 λŒ€ν•œ 업무 처리 λ°©μ‹μ˜ 영ν–₯을 λͺ¨λΈλ§

  • 데이터 λͺ¨λΈλ§μ˜ μ€‘μš”μ„±κ³Ό 유의점
    • μ€‘μš”μ„±: νŒŒκΈ‰νš¨κ³Ό, κ°„κ²°ν•œ ν‘œν˜„, 데이터 ν’ˆμ§ˆ μœ μ§€
    • 유의점: 쀑볡(μ—¬λŸ¬ μž₯μ†Œμ— 같은 정보 μ €μž₯X), λΉ„μœ μ—°μ„±(λ°μ΄ν„°μ˜ μ •μ˜λ₯Ό 데이터 μ‚¬μš© ν”„λ‘œμ„ΈμŠ€μ™€ 뢄리), 비일관성(λͺ¨λΈλ§ ν•  λ•Œ 데이터 κ°„ μƒν˜Έ μ—°κ΄€ 관계 λͺ…ν™•νžˆ μ •μ˜)


4. 데이터 λͺ¨λΈλ¦¬μ˜ 3단계

  • κ°œλ…μ  λͺ¨λΈλ§(κ³„νš/뢄석): ERD λ„μΆœ, 업무쀑심, 포괄적인 μˆ˜μ€€μ˜ λͺ¨λΈλ§
  • 논리적 λͺ¨λΈλ§(뢄석): ν…Œμ΄λΈ” λ„μΆœ(key, 속성, 관계)λ₯Ό ν‘œν˜„, μž¬μ‚¬μš©μ„±, μ •κ·œν™” μˆ˜ν–‰
  • 물리적 λͺ¨λΈλ§(섀계): DB ꡬ좕, 물리적 성격, κ°œλ…μ λ³΄λ‹€ ꡬ체적


5. 데이터 독립성

  • λ°μ΄ν„°μ˜ ꡬ쑰가 λ³€κ²½λ˜μ–΄λ„ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ 변경될 ν•„μš”κ°€ μ—†μŒ
  • 논리적 독립성 + 물리적 λ…λ¦½μ„±μœΌλ‘œ μ‹€ν˜„λ¨.
  • ν•„μš”μ„±: 데이터 쀑볡성과 λ³΅μž‘λ„κ°€ 증가 β†’ μš”κ΅¬μ‚¬ν•­ λŒ€μ‘ μ €ν•˜, μœ μ§€λ³΄μˆ˜ λΉ„μš© 증가

  • λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ(schema)
    • 데이터 λͺ¨λΈλ§ λŒ€μƒ(ν‹€)
    • λ°μ΄ν„°λ² μ΄μŠ€ ꡬ쑰, 데이터 νƒ€μž…, μ œμ•½μ‘°κ±΄μ— λŒ€ν•œ λͺ…μ„Έ
    • λ°μ΄ν„°λ² μ΄μŠ€ 섀계 λ‹¨κ³„μ—μ„œ λͺ…μ‹œλ˜λ©° 자주 λ³€κ²½λ˜μ§€ μ•ŠμŒ
  • λ°μ΄ν„°λ² μ΄μŠ€ 3단계 ꡬ쑰
    • μ™ΈλΆ€ μŠ€ν‚€λ§ˆ: μ‘μš©ν”„λ‘œκ·Έλž¨ κ΄€μ μ—μ„œμ˜ μš”ꡬ사항, μ‚¬μš©μž κ΄€μ , DB μ •μ˜
    • κ°œλ… μŠ€ν‚€λ§ˆ: μ™ΈλΆ€ μŠ€ν‚€λ§ˆκ°€ ν•„μš”λ‘œ ν•˜λŠ” λ°μ΄ν„° λͺ¨λ‘ λͺ¨μ•„놓은 κ²ƒ, μ„€κ³„μž κ΄€μ 
      
(=DB에 μ €μž₯λ˜λŠ” 데이터와 μ‚¬μš©μž 관계 ν‘œν˜„ β†’ λͺ¨λ“  μ‚¬μš©μž 관점 톡합, 쑰직 전체 톡합)
    • λ‚΄λΆ€ μŠ€ν‚€λ§ˆ: λ°μ΄ν„°λ² μ΄μŠ€κ°€ λ¬Όλ¦¬μ μœΌλ‘œ μ €μž₯된 ν˜•μ‹, κ°œλ°œμž κ΄€μ 
  • ➑︎ λ°μ΄ν„° λͺ¨λΈλ§μ€ ν†΅ν•© κ΄€μ μ˜ κ°œλ… μŠ€ν‚€λ§ˆλ₯Ό λ§Œλ“€μ–΄ κ°€λŠ” κ³Όμ •μž„!

  • 사상 (Mapping)
    • μƒν˜Έ 독립적인 κ°œλ…μ„ μ—°κ²°μ‹œμΌœμ£ΌλŠ” 닀리
    • 논리적 사상: μ™ΈλΆ€ ν™”λ©΄ 및 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ μŠ€ν‚€λ§ˆ κ΅¬μ‘°λŠ” κ°œλ…μŠ€ν‚€λ§ˆμ™€ μ—°κ²°
    • 물리적 μ‚¬μƒ: κ°œλ…μŠ€ν‚€λ§ˆ κ΅¬μ‘°μ™€ λ¬Όλ¦¬μ  μ €μž₯된 κ΅¬μ‘°(ν…Œμ΄λΈ” μŠ€νŽ˜μ΄μŠ€)와 μ—°κ²°
  • 논리적 독립성
    • 논리적 사상(외뢀적-κ°œλ…μ )을 톡해 논리적 독립성 보μž₯
    • κ°œλ… μŠ€ν‚€λ§ˆκ°€ λ³€κ²½λ˜μ–΄λ„ μ™ΈλΆ€ μŠ€ν‚€λ§ˆμ—λŠ” 영ν–₯X
    • 논리적 κ΅¬μ‘°κ°€ λ³€κ²½λ˜μ–΄λ„ μ‘μš© ν”„λ‘œκ·Έλž¨μ—λŠ” μ˜ν–₯이 μ—†μŒ, ν†΅ν•©κ΅¬μ‘° λ³€κ²½ κ°€λŠ₯
  • 물리적 독립성
    • 물리적 사상(κ°œλ…μ -내뢀적)을 톡해 물리적 독립성 보μž₯
    • λ‚΄λΆ€μŠ€ν‚€λ§ˆκ°€ λ³€κ²½λ˜μ–΄λ„ μ™ΈλΆ€/κ°œλ… μŠ€ν‚€λ§ˆμ—λŠ” 영ν–₯X
    • μ‘μš©ν”„λ‘œκ·Έλž¨κ³Ό κ°œλ…μŠ€ν‚€λ§ˆμ— μ˜ν–₯ μ—†μ΄ μ €μž₯μž₯치 κ΅¬μ‘°λ³€κ²½ κ°€λŠ₯, λ¬Όλ¦¬μ  κ΅¬μ‘°


6. 데이터 λͺ¨λΈλ§ 3μš”μ†Œ(개체, 속성, 관계)

  • 업무가 κ΄€μ—¬ν•˜λŠ” μ–΄λ–€ 것(Thing): μ—”ν„°ν‹°νƒ€μž…, μ—”ν„°ν‹° / μ—”ν„°ν‹°, μΈμŠ€ν„΄μŠ€, μ–΄μ»€λŸ°μŠ€
  • μ–΄λ–€ 것이 κ°€μ§€λŠ” 성격(Attributes): 속성 / 속성값
  • μ–΄λ–€ κ²ƒλ“€ κ°„μ˜ κ΄€κ³„(Relationships): κ΄€κ³„ / νŽ˜μ–΄λ§

  • λ°μ΄ν„°λ² μ΄μŠ€ μΈμŠ€ν„΄μŠ€(Instance)
    • νŠΉμ • μ‹œμ μ— λ°μ΄ν„°λ² μ΄μŠ€μ— μ‹€μ œλ‘œ μ €μž₯λ˜μ–΄ μžˆλŠ” λ°μ΄ν„°μ˜ κ°’
κ°œλ…λ³΅μˆ˜/μ§‘ν•©κ°œλ…
νƒ€μž…/클래슀
κ°œλ³„/λ‹¨μˆ˜κ°œλ…
μ–΄μ»€λŸ°μŠ€/μΈμŠ€ν„΄μŠ€
μ–΄λ–€ κ²ƒμ—”ν„°ν‹° νƒ€μž…μ—”ν„°ν‹°
μ—”ν„°ν‹°μ–΄μ»€λŸ°μŠ€/μΈμŠ€ν„΄μŠ€
μ—°κ΄€κ΄€κ³„νŽ˜μ–΄λ§
성격속성속성값


7. ERD (Entity Relationship Diagram)

  • 데이터 λͺ¨λΈ ν‘œκΈ°λ²•: μ—”ν„°ν‹°λ₯Ό μ‚¬κ°ν˜•, 관계λ₯Ό λ§ˆλ¦„λͺ¨, 속성을 νƒ€μ›ν˜•μœΌλ‘œ ν‘œν˜„


8. ERD ν‘œκΈ°λ²•μ„ μ΄μš©ν•˜μ—¬ λͺ¨λΈλ§ ν•˜λŠ” 방법

β‘  μ—”ν„°ν‹°λ₯Ό κ·Έλ¦° ν›„ μ μ ˆν•˜κ²Œ 배치
β‘‘ μ—”ν„°ν‹° κ°„ 관계 μ„€μ •

    •  μ‹λ³„μž 관계λ₯Ό μš°μ„  섀정함
    • (μ‹λ³„μž 관계: λΆ€λͺ¨λ‘œλΆ€ν„° 상속받은 FK(μ™œλž˜ν‚€)κ°€ μžμ‹μ˜ PK(κΈ°λ³Έν‚€)의 일뢀가 λ˜λŠ” 관계)
    • 가급적 Cycle 관계도 λ°œμƒν•˜μ§€ μ•Šμ•„μ•Ό 함

β‘’ 관계λͺ… 기술

  • ν˜„μž¬ν˜• μ‚¬μš©, μ§€λ‚˜μΉ˜κ²Œ 포괄적인 λ‹¨μ–΄λŠ” 지양
  • μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œλŠ” ν¬κ²Œ κ³ λ €X

β‘£ κ΄€κ³„μ°¨μˆ˜, κ΄€κ³„μ˜ 참여도, 선택성 ν‘œμ‹œ


9. 쒋은 λͺ¨λΈλ§μ˜ μš”κ±΄

  • μ™„μ „μ„±: μ—…λ¬΄μ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” λͺ¨λ“  데이터가 데이터 λͺ¨λΈμ— μ •μ˜λ˜μ–΄μ•Ό 함
  • μ€‘λ³΅λ°°μ œ: λ™μΌν•œ 사싀은 λ°˜λ“œμ‹œ ν•œλ²ˆλ§Œ 기둝
  • μ—…λ¬΄κ·œμΉ™: μ—…λ¬΄κ·œμΉ™μ΄ 데이터 λͺ¨λΈμ— ν‘œν˜„λ˜μ–΄μ•Ό 함
  • 데이터 μž¬μ‚¬μš©: νšŒμ‚¬ 전체 κ΄€μ μ—μ„œ 곡톡 데이터 λ„μΆœ, μ „ μ˜μ—­ μ‚¬μš©ν•  수 μžˆλ„λ‘ 섀계
  • 톡합성: λ™μΌν•œ λ°μ΄ν„°λŠ” 쑰직의 μ „μ²΄μ—μ„œ ν•œλ²ˆλ§Œ μ •μ˜λ˜κ³  이λ₯Ό μ°Έμ‘°, ν™œμš©

 

제2절. μ—”ν„°ν‹°

1. μ—”ν„°ν‹°

  • 업무에 ν•„μš”ν•œ 정보λ₯Ό μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 집합적인 것(싀체, 객체)
  • μ—”ν„°ν‹°λŠ” μΈμŠ€ν„΄μŠ€μ˜ 집합(μΈμŠ€ν„΄μŠ€λŠ” μ—”ν„°ν‹° μ•ˆμ˜ 데이터)
  • μ˜ˆμ‹œ: μ—”ν„°ν‹°(κ³Όλͺ©), μΈμŠ€ν„΄μŠ€(κ³Όν•™, μˆ˜ν•™β€¦)


2. μ—”ν„°ν‹°μ˜ λΆ„λ₯˜

  1. μœ ν˜•, λ¬΄ν˜•μ— λ”°λ₯Έ λΆ„λ₯˜
    • μœ ν˜•(Tangible) μ—”ν„°ν‹°: 물리적인 ν˜•νƒœκ°€ 있고 μ•ˆμ •μ μ΄λ©° 지속적 ν™œμš© (ex: ꡐ수, κ°•μ˜μ‹€, 학생)
    • κ°œλ…(Conceptual) μ—”ν„°ν‹°: 물리적인 ν˜•νƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ‚˜ 관리해야 ν•  κ°œλ…μ  정보 (ex: μˆ˜μ—…, λ³΄ν—˜μƒν’ˆ)
    • 사건(Event) μ—”ν„°ν‹°: μ—…무 μˆ˜ν–‰ κ³Όμ •μ—μ„œ λ°œμƒ, λΉ„ꡐ적 λ°œμƒλŸ‰ λ§ŽμŒ, ν†΅κ³„μžλ£Œμ— μ΄μš© (ex: μˆ˜κ°•μ‹ μ²­, μ£Όλ¬Έ)
  2. λ°œμƒμ‹œμ μ— λ”°λ₯Έ μ—”ν„°ν‹°(κΈ°λ³Έ/쀑심/ν–‰μœ„)
    • κΈ°λ³Έ(key) μ—”ν„°ν‹°: λ…λ¦½μ μœΌλ‘œ μƒμ„±λ˜λŠ” μ—”ν„°ν‹°
    • 쀑심(main) μ—”ν„°ν‹°: κΈ°λ³Έ 엔터티와 ν–‰μœ„ μ—”ν„°ν‹° 쀑간에 μ‘΄μž¬ν•˜λŠ” μ—”ν„°ν‹°
    • ν–‰μœ„(active) μ—”ν„°ν‹°: 2개 μ΄μƒμ˜ λΆ€λͺ¨ μ—”ν„°ν‹°λ‘œλΆ€ν„° λ°œμƒ, λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ν•˜λ©΄μ„œ μƒμ„±λ˜λŠ” μ—”ν„°ν‹°, μ§€μ†μ  μ •λ³΄κ°€ μΆ”κ°€λ˜κ³  λ³€κ²½λ˜μ–΄ λ°μ΄ν„° μ–‘이 κ°€μž₯ λ§ŽμŒ


3. μ—”ν„°ν‹°μ˜ νŠΉμ§•

  • μ—…λ¬΄μ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” 정보 포함
  • μœ μΌν•œ μ‹λ³„μžλ₯Ό 가짐(μ‹λ³„μžμ— μ˜ν•΄ 식별이 κ°€λŠ₯ν•˜λ„λ‘, 관계엔터티 μ˜ˆμ™Έ)
  • 2개 μ΄μƒμ˜ μΈμŠ€ν„΄μŠ€λ₯Ό 포함함(μΈμŠ€ν„΄νŠΈμ˜ 집합)
  • 업무 ν”„λ‘œμ„ΈμŠ€μ— 이용됨
  • 속성 없이 μ—”ν„°ν‹°μ˜ μ΄λ¦„λ§Œ μ‘΄μž¬ν•  수 μ—†μŒ(속성이 포함)
  • λ‹€λ₯Έ 엔터티와 μ΅œμ†Œ 1개 μ΄μƒμ˜ 관계가 쑴재(톡계성, μ½”λ“œμ„±, λ‚΄λΆ€ν•„μš” μ—”ν„°ν‹° μ˜ˆμ™Έ)


4. μ—”ν„°ν‹°μ˜ λͺ…λͺ…

  • μ—”ν„°ν‹° 생성 μ˜λ―ΈλŒ€λ‘œ, μ‹€μ œ μ—…λ¬΄μ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ₯Ό μ‚¬μš©
  • μ•½μ–΄λ₯Ό μ‚¬μš©X, λ‹¨μˆ˜λͺ…사 μ‚¬μš©
  • 이름이 λ™μΌν•œ μ—”ν„°ν‹°κ°€ μ€‘λ³΅μœΌλ‘œ 쑴재X

 

제3절. 속성

1. μ†μ„±μ˜ μ •μ˜

  • μ‚¬λ¬Όμ˜ νŠΉμ§• λ˜λŠ” 본질적인 μ„±μ§ˆ (속성이 μ—†λ‹€λ©΄ 싀체λ₯Ό 생각할 수 μ—†μŒ)
  • μΈμŠ€ν„΄μŠ€μ— λŒ€ν•΄ μ˜λ―Έμƒ 더 λΆ„λ¦¬λ˜μ§€ μ•ŠλŠ” μ΅œμ†Œμ˜ 데이터 λ‹¨μœ„
  • 엔터티에 μ†ν•œ μΈμŠ€ν„΄μŠ€λ“€μ˜ 성격을 ꡬ체적으둜 λ‚˜νƒ€λƒ„
  • μ—”ν„°ν‹°, μΈμŠ€ν„΄μŠ€, 속성, μ†μ„±κ°’μ˜ λŒ€μ‘
  • μ—”ν„°ν‹°, μΈμŠ€ν„΄μŠ€ μ†μ„±μ˜ 관계
    • 1개의 μ—”ν„°ν‹°: 2개 μ΄μƒμ˜ μΈμŠ€ν„΄μŠ€ 집합 가짐
    • 1개의 μΈμŠ€ν„΄μŠ€: 2개 μ΄μƒμ˜ 속성을 가짐
    • 1개의 μ†μ„±: 1개의 μ†μ„±κ°’을 κ°€μ§


2. μ†μ„±μ˜ νŠΉμ§•

  • ν•΄λ‹Ή μ—…λ¬΄μ—μ„œ ν•„μš”ν•˜κ³  κ΄€λ¦¬ν•΄μ•Όν•˜λŠ” 정보
  • λͺ¨λ“  속성은 정해진 μ£Όμ‹λ³„μžμ— ν•¨μˆ˜μ μœΌλ‘œ μ’…μ†λ˜μ–΄μ•Ό 함
  • ν•˜λ‚˜μ˜ 속성은 ν•œ 개의 κ°’λ§Œ 가짐(닀쀑값인 경우 ν•΄λ‹Ή 속성을 λ³„λ„μ˜ μ—”ν„°ν‹°λ‘œ 뢄리)


3. μ†μ„±μ˜ λͺ…λͺ…

  • ν˜„μ—…μ—μ„œ μ‚¬μš©ν•˜λŠ” 이름을 λΆ€μ—¬
  • μ•½μ–΄ μ‚¬μš©μ€ 가급적 X
  • μˆ˜μ‹μ–΄/μ†Œμœ κ²© X, μ„œμˆ μ‹ 속성λͺ… X, λͺ…μ‚¬ν˜• μ†μ„±ν˜• O
  • 전체 데이터 λͺ¨λΈμ—μ„œ μœ μΌμ„± 확보


4. (μ†μ„±μ˜)도메인

  • 각 속성이 κ°€μ§ˆ 수 μžˆλŠ” κ°’μ˜ λ²”μœ„
    ex) 학점: 0.0~4.5 μ‚¬μ΄μ˜ μ‹€μˆ˜ / μ£Όμ†Œ: 길이 20자리 이내 λ¬Έμžμ—΄
  • μ—”ν„°ν‹° λ‚΄μ—μ„œ 속성에 λŒ€ν•œ 데이터 νƒ€μž…κ³Ό 크기, μ œμ•½μ‚¬ν•­μ„ 지정


5. μ†μ„±μ˜ λΆ„λ₯˜

  1. νŠΉμ„±μ— λ”°λ₯Έ λΆ„λ₯˜
    • κΈ°λ³Έ 속성: κ°€μž₯ 일반적인 μ†μ„±μœΌλ‘œ, μ›λž˜μ˜ μ—…λ¬΄λ‘œλΆ€ν„° 유래된 속성
    • 섀계 속성: 데이터 λͺ¨λΈλ§μ„ μœ„ν•΄ μƒˆλ‘œ λ§Œλ“  속성(μ½”λ“œ, 일련번호)
    • νŒŒμƒ μ†μ„±: λ‹€λ₯Έ μ†μ„±λ“€λ‘œλΆ€ν„° μœ λ„λœ μ†μ„±(톡계, κ³„μ‚°λœ κ°’)
  2. λΆ„ν•΄ κ°€λŠ₯ 여뢀에 λ”°λ₯Έ λΆ„λ₯˜
    • 단일 속성: ν•˜λ‚˜μ˜ 의미
    • 볡합 속성: μ—¬λŸ¬ 의미, 단일 μ†μ„±μœΌλ‘œ λΆ„ν•΄ κ°€λŠ₯
    • 단일값 속성: 속성 1개 함 개의 κ°’
    • 닀쀑값 μ†μ„±: μ†μ„± 1κ°œμ— μ—¬λŸ¬ κ°’, μ—”ν„°ν‹°λ‘œ λΆ„ν•΄ κ°€λŠ₯
  3. μ—”ν„°ν‹° ꡬ성방식에 λ”°λ₯Έ λΆ„λ₯˜
    • κΈ°λ³Έν‚€ 속성 (PK, Primary Key): μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό ꡬ별할 수 μžˆλŠ” 속성
    • μ™Έλž˜ν‚€ 속성(FK, Foregin Key): 타 μ—”ν„°ν‹°μ˜ PKλ₯Ό μ°Έμ‘°ν•˜λŠ” 속성
    • 일반 μ†μ„±: μ—”터티에 ν¬ν•¨λ˜κ³  PKλ‚˜ FK속성이 μ•„λ‹Œ μ†μ„±

 

제4절. 관계

1. 관계와 νŽ˜μ–΄λ§(Pairing)

  • 관계: μ—”ν„°ν‹°μ˜ μΈμŠ€ν„΄μŠ€ μ‚¬μ΄μ˜ 논리적인 μ—°κ΄€μ„±μœΌλ‘œμ„œ 쑴재의 ν˜•νƒœλ‘œμ„œλ‚˜ ν–‰μœ„λ‘œμ„œ μ„œλ‘œμ—κ²Œ 연관성이 λΆ€μ—¬λœ μƒνƒœ
  • νŽ˜μ–΄λ§: μ—”ν„°ν‹° λ‚΄ μΈμŠ€ν„΄μŠ€κ°„ κ°œλ³„μ  관계 β†’ μ΄κ²ƒμ˜ 집합을 κ΄€κ³„λ‘œ ν‘œν˜„
  • μΈμŠ€ν„΄μŠ€μ˜ 집합 ➑︎ μ—”ν„°ν‹° νŽ˜μ–΄λ§μ˜ 집합 ➑︎ 관계


2. κ΄€κ³„μ˜ λΆ„λ₯˜

  1. ERD: μ‘΄μž¬μ— μ˜ν•œ 관계 / ν–‰μœ„μ— μ˜ν•œ 관계 (ꡬ뢄 없이 λ‹¨μΌν™”λœ ν‘œκΈ°λ²• μ‚¬μš©)
  2. UML: μ—°κ΄€ 관계 / 의쑴 관계 (μ‹€μ„ κ³Ό 점선 ν‘œκΈ°λ²•μœΌλ‘œ ꡬ뢄)


3. κ΄€κ³„μ˜ ν‘œκΈ°λ²•

  1. 관계λͺ…: μ—”ν„°ν‹°κ°€ 관계에 μ°Έμ—¬ν•˜λŠ” ν˜•νƒœ. 각 κ΄€κ³„λŠ” 2개의 κ΄€κ²Œλͺ… 및 관점을 가짐
  2. κ΄€κ³„μ°¨μˆ˜(카디널리티): 1:1, 1:N, N:N (관계 μ—”ν„°ν‹° 이용)
  3. 관계선택사양: ν•„μˆ˜μ°Έμ—¬(Mandatory), 선택참여(Optional) (ν•„μˆ˜λŠ” I 선택은 O둜 ν‘œμ‹œ)


4. 관계 읽기

 

제5절. μ‹λ³„μž

1. μ‹λ³„μžμ˜ κ°œλ…

  • ν•˜λ‚˜μ˜ 엔터티에 κ΅¬μ„±λ˜μ–΄ μžˆλŠ” μ—¬λŸ¬ 개 속성 쀑 μ—”ν„°ν‹°λ₯Ό λŒ€ν‘œν•  수 μžˆλŠ” μ†μ„±μ˜ 의미
  • ν•˜λ‚˜μ˜ μ—”ν„°ν‹°λŠ” λ°˜λ“œμ‹œ ν•˜λ‚˜μ˜ μœ μΌν•œ μ‹λ³„μžκ°€ 쑴재


2. μ‹λ³„μžμ˜ λΆ„λ₯˜

λΆ„λ₯˜ μ‹λ³„μž μ„€λͺ…
λŒ€ν‘œμ„± μ£Όμ‹λ³„μž
  • μ—”ν„°ν‹° λ‚΄μ—μ„œ κ° μΈμŠ€ν„΄μŠ€λ₯Ό κ΅¬λΆ„ κ°€λŠ₯
  • 타 μ—”터티와 μ°Έμ‘°κ΄€κ³„λ₯Ό μ—°κ²°κ°€λŠ₯(PK(κΈ°λ³Έν‚€)에 ν•΄λ‹Ή)
보쑰 μ‹λ³„μž
  • μ—”ν„°ν‹° λ‚΄μ—μ„œ κ° μΈμŠ€ν„΄μŠ€λ₯Ό κ΅¬λΆ„ κ°€λŠ₯
  • λŒ€ν‘œμ„±μ„ κ°–지 λͺ»ν•΄ μ°Έμ‘°κ΄€κ³„ μ—°κ²°μ— μ‚¬μš©λ˜μ§€ μ•ŠμŒ(Candidate key(후보킀)에 ν•΄λ‹Ή)
λͺ©μ  λ‚΄λΆ€ μ‹λ³„μž
  • μžμ—°μŠ€λŸ½κ²Œ μ‘΄μž¬ν•˜λŠ” μ‹λ³„μž (λ³Έμ§ˆμ‹λ³„μž)
μ™ΈλΆ€ μ‹λ³„μž
  • κ΄€κ²Œλ₯Ό ν†΅ν•΄ μœ μž…λ˜λŠ” νƒ€ μ—”ν„°ν‹°μ˜ μ‹λ³„μž(Foreign key(μ™Έλž˜ν‚€)에 ν•΄λ‹Ή)
  • μ£Όμ‹λ³„μž μ†μ„± λ˜λŠ” μΌλ°˜ μ†μ„±μœΌλ‘œ ν¬ν•¨λ  μˆ˜ μžˆμŒ
속성 μˆ˜ 단일 μ‹λ³„μž
  • ν•˜λ‚˜μ˜ μ†μ„±μœΌλ‘œ κ΅¬μ„±λœ μ‹λ³„μž
볡합 μ‹λ³„μž
  • λ‘˜ μ΄μƒμ˜ μ†μ„±μœΌλ‘œ κ΅¬μ„±λœ μ‹λ³„μž
본질 본질 μ‹λ³„μž
  • 업무에 μ˜ν•΄ λ§Œλ“€μ–΄μ§€λŠ” μ‹λ³„μž
인쑰 μ‹λ³„μž
  • 인쑰 μ‹λ³„μžκ°€ λ³΅μž‘ν•œ κ΅¬μ„±μ„ κ°€μ§€κ³  μžˆκΈ° λ•Œλ¬Έμ— μΈμœ„μ μœΌλ‘œ λ§Œλ“  μ‹λ³„μž


3. μ‹λ³„μžμ˜ νŠΉμ§•

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


4. μ£Όμ‹λ³„μž λ„μΆœ κΈ°μ€€

  • μœ μΌμ„±μ„ κ°–λŠ” 속성 쀑 ν•΄λ‹Ή μ—…λ¬΄μ—μ„œ 자주 μ΄μš©λ˜λŠ” 속성을 지정
  • λͺ…μΉ­, λ‚΄μ—­ λ“±κ³Ό 같이 μ΄λ¦„μœΌλ‘œ κΈ°μˆ λ˜λŠ” 것듀은 κ°€λŠ₯ν•˜λ©΄ μ£Όμ‹λ³„μžλ‘œ 지정X
    β†’ κ΅¬λΆ„μžκ°€ μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우 μƒˆλ‘œμš΄ μ‹λ³„μž 생성 (일련번호, μ½”λ“œ λ“±)
  • λ³΅ν•©μ‹λ³„μžλ₯Ό ꡬ성할 경우 λ„ˆλ¬΄ λ§Žμ€ 속성이 ν¬ν•¨λ˜μ§€ μ•Šμ•„μ•Ό 함
    β†’ μ£Όμ‹λ³„μž κ°œμˆ˜κ°€ λ§Žμ„ 경우 μƒˆλ‘œμš΄ 인쑰 μ‹λ³„μžλ₯Ό 생성


5. μ‹λ³„μž 관계와 λΉ„μ‹λ³„μž 관계

  1. μ‹λ³„μž 관계 (μ‹€μ„ )
    • μžμ‹μ΄ λΆ€λͺ¨μ˜ κΈ°λ³Έν‚€(PK)λ₯Ό 상속받아 κΈ°λ³Έν‚€λ‘œ μ‚¬μš©ν•˜λŠ” 경우
    • κ°•ν•œ 연결관계, λΆ€λͺ¨μ— 쒅속, Null X, 1:1 or 1:N 관계
    • 문제점: μžμ‹μ˜ μ£Όμ‹λ³„μž μ†μ„±μ΄ μ§€μ†μ μœΌλ‘œ μ¦κ°€ν•  μˆ˜ μžˆμŒ β†’λ³΅μž‘, μ˜€λ₯˜ κ°€λŠ₯μ„±
  2. λΉ„μ‹λ³„μž 관계 (점선)
    • λΆ€λͺ¨λ‘œλΆ€ν„° 속성을 λ°›μ•„ 일반 μ†μ„±μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 경우 (μ•½ν•œ 쒅속)
    • 문제점: λΆ€λͺ¨κΉŒμ§€ μ‘°μΈ, λΆˆν•„μš”ν•œ ν˜„상 λ°œμƒ β†’ SQL κ΅¬λ¬Έ κΈΈμ–΄μ Έ μ„±λŠ₯ μ €ν•˜