Amenable
Amenable's Blog
Amenable
  • λΆ„λ₯˜ 전체보기 (189)
    • πŸ“‚ JAVA (87)
      • μ΄νŽ™ν‹°λΈŒ μžλ°” (65)
      • μ£Όμš” κ°œλ… (22)
    • πŸ“‚ 개발 μ„œμ  (22)
      • μ‹€μš©μ£Όμ˜ ν”„λ‘œκ·Έλž˜λ¨Έ (1)
      • 객체지ν–₯의 사싀과 μ˜€ν•΄ (2)
      • 클린 μ½”λ“œ (8)
      • ν•¨κ»˜ 자라기 (1)
      • 그림으둜 λ°°μš°λŠ” HTTP&Network Basic (10)
    • πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ (8)
      • κ°œλ… (8)
      • λ¬Έμ œν’€μ΄ (0)
    • πŸ“‚ λ„€νŠΈμ›Œν¬ (14)
      • κ°œλ… (6)
      • 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리 (8)
    • πŸ“‚ μŠ€ν”„λ§ (13)
      • κΈ°λ³Έ κ°œλ… (13)
    • πŸ“‚ WEB (5)
    • πŸ“‚ 자료ꡬ쑰 (12)
      • κ°œλ… (2)
      • μ •λ ¬ (8)
      • 트리 (2)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜ (10)
      • μ΅œμ†Œμ‹ μž₯트리 (2)
      • μ΅œλ‹¨ 경둜 (2)
      • λ¬Έμžμ—΄ (2)
      • ETC (4)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜_λ¬Έμ œν’€μ΄ (4)
      • BOJ_λ°±μ€€ (4)
    • πŸ“‚ ν”„λ‘œκ·Έλž˜λ° (3)
    • πŸ“‚ DevOps (2)
      • 배포 (2)
    • πŸ“‚ ν›„κΈ° (8)
      • μš°μ•„ν•œ ν…Œν¬μ½”μŠ€(ν”„λ¦¬μ½”μŠ€) (4)
      • 2023λ…„ (3)
      • 2024λ…„ (1)
    • πŸ“‚ 회고 (1)
      • 2023λ…„ (1)

λΈ”λ‘œκ·Έ 메뉴

  • πŸš€ GitHub

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Amenable

Amenable's Blog

[DB] λ°μ΄ν„°λ² μ΄μŠ€ ν‚€(Key) κ°œλ… & ν‚€(Key) μ’…λ₯˜
πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€/κ°œλ…

[DB] λ°μ΄ν„°λ² μ΄μŠ€ ν‚€(Key) κ°œλ… & ν‚€(Key) μ’…λ₯˜

2023. 6. 13. 18:55

πŸ“™ 1. ν‚€(Key)

  λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν‚€(Key)λž€ 쑰건에 λ§Œμ‘±ν•˜λŠ” νŠœν”Œμ„ μ°Ύκ±°λ‚˜ μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•  λ•Œ λ‹€λ₯Έ νŠœν”Œλ“€κ³Ό ꡬ별할 수 μžˆλŠ” 기쀀이 λ˜λŠ” 속성이닀.

  ν…Œμ΄λΈ” κ°„μ˜ 관계λ₯Ό 쑰금 더 λͺ…ν™•ν•˜κ²Œ ν•˜κ³  ν…Œμ΄λΈ” 자체의 인덱슀λ₯Ό μœ„ν•΄ μ„€μ •λœ μž₯μΉ˜μ΄κΈ°λ„ ν•˜λ‹€.

 

 

πŸ“™ 2. μœ μΌμ„± & μ΅œμ†Œμ„±

  ν‚€μ˜ μ’…λ₯˜λ₯Ό μ•Œμ•„λ³΄κΈ°μ— μ•žμ„œμ„œ 킀듀을 κ΅¬λΆ„ν•˜λŠ” μ„±μ§ˆμΈ 'μœ μΌμ„±'κ³Ό 'μ΅œμ†Œμ„±'에 λŒ€ν•΄μ„œ λ¨Όμ € μ•Œμ•„λ³΄μž.

πŸ“Œ 1. μœ μΌμ„±

  μœ μΌμ„±μ΄λž€ ν•˜λ‚˜μ˜ ν‚€λ₯Ό μ΄μš©ν•˜μ—¬ νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” μ„±μ§ˆμ„ λ§ν•œλ‹€.

  'ν•™λ²ˆ, 주민번호, 이름'으둜 κ΅¬μ„±λœ ν…Œμ΄λΈ”μ΄ μžˆλ‹€κ³  ν•˜μž.

  μœ μΌμ„±μ„ λ§Œμ‘±ν•˜λŠ” ν‚€λ₯Ό λ§Œλ“ λ‹€λ©΄ {ν•™λ²ˆ}, {주민번호}, {ν•™λ²ˆ, 주민번호}, {ν•™λ²ˆ, 주민번호, 이름}으둜 이루어진 ν‚€λ₯Ό λ§Œλ“€ 수 μžˆλ‹€. ν‚€λ₯Ό μ΄μš©ν•΄μ„œ κ°κ°μ˜ νŠœν”Œμ„ κ΅¬λΆ„ν•  μˆ˜ μžˆμœΌλ―€λ‘œ, μ΄λŸ¬ν•œ ν‚€λ“€μ„ μœ μΌμ„±μ„ κ°€μ‘Œλ‹€κ³  ν•  μˆ˜ μžˆλ‹€.

πŸ“Œ 2. μ΅œμ†Œμ„±

  μ΅œμ†Œμ„±μ΄λž€ ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” 속성듀 쀑 κΌ­ ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ†μ„±λ“€λ‘œλ§Œ ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” μ„±μ§ˆμ„ λ§ν•œλ‹€.

  μœ„μ—μ„œ μ‚΄νŽ΄λ΄€λ˜ κ²ƒμ²˜λŸΌ {ν•™λ²ˆ}, {주민번호}, {ν•™λ²ˆ, μ£Όλ―Όλ²ˆν˜Έ}, {ν•™λ²ˆ, μ£Όλ―Όλ²ˆν˜Έ, μ΄λ¦„}으둜 μ΄λ£¨μ–΄μ§„ ν‚€λ“€μ€ μœ μΌμ„±μ„ λ§Œμ‘±ν•œλ‹€.

  {ν•™λ²ˆ}으둜 이루어진 ν‚€λŠ” 속성을 1개, {주민번호}둜 이루어진 ν‚€λŠ” 속성을 1개, {ν•™λ²ˆ, 주민번호}둜 이루어진 ν‚€λŠ” 속성을 2개, {ν•™λ²ˆ, 주민번호, 이름}으둜 이루어진 ν‚€λŠ” 속성을 3개 μ‚¬μš©ν•˜μ˜€λ‹€.

이런 경우 μ΅œμ†Œν•œμ˜ 속성 개수인 1개λ₯Ό μ‚¬μš©ν•œ {ν•™λ²ˆ}을 μ΄μš©ν•œ 킀와 {주민번호}λ₯Ό μ΄μš©ν•œ ν‚€κ°€ μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•˜κ³ , 속성을 2개 λ˜λŠ” 3개λ₯Ό μ‚¬μš©ν•œ {ν•™λ²ˆ, 주민번호}, {ν•™λ²ˆ, 주민번호, 이름}λ₯Ό μ΄μš©ν•œ ν‚€λŠ” μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•˜μ§€ λͺ»ν•œλ‹€.

 

 

πŸ“™ 3. ν‚€(Key) μ’…λ₯˜

πŸ”‘ 1. μŠˆνΌν‚€ (Super Key)

πŸ“Œ 1. μ •μ˜

μœ μΌμ„±μ„ λ§Œμ‘±ν•˜λŠ” ν‚€

πŸ“Œ 2. μ˜ˆμ‹œ

  • ν•™λ²ˆ → κ°€λŠ₯
  • 주민번호 → κ°€λŠ₯
  • ν•™λ²ˆ + 주민번호 → κ°€λŠ₯
  • 이름 → λΆˆκ°€λŠ₯ (이름이 쀑볡 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έ)

 

πŸ”‘ 2. ν›„보킀 (Candidate Key)

πŸ“Œ 1. μ •μ˜

μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•˜λŠ” ν‚€

πŸ“Œ 2. μ˜ˆμ‹œ

  • ν•™λ²ˆ → κ°€λŠ₯ (μœ μΌμ„± O, μ΅œμ†Œμ„± O)
  • 주민번호 → κ°€λŠ₯ (μœ μΌμ„± O, μ΅œμ†Œμ„± O)
  • ν•™λ²ˆ + 주민번호 → λΆˆκ°€λŠ₯ (μœ μΌμ„± O, μ΅œμ†Œμ„± X)
  • 이름 → λΆˆκ°€λŠ₯ (μœ μΌμ„± X)

 

πŸ”‘ 3. κΈ°λ³Έν‚€ (Primary Key)

πŸ“Œ 1. μ •μ˜

ν›„λ³΄ν‚€μ—μ„œ μ„ νƒλœ ν‚€

πŸ“Œ 2. μ˜ˆμ‹œ

(μ•„λž˜μ—μ„œ λŒ€μ²΄ν‚€μ™€ ν•¨κ»˜ μ˜ˆμ‹œλ₯Ό λ“€μ–΄ μ„€λͺ…)

πŸ“Œ 3. νŠΉμ§•

  • NULL λΆˆκ°€λŠ₯
  • μ€‘λ³΅λœ 값을 κ°€μ§ˆ 수 μ—†λ‹€.
  • ν…Œμ΄λΈ”μ—μ„œ κΈ°λ³Έν‚€λŠ” 였직 1개만 μ§€μ •ν•  수 μžˆλ‹€.

 

πŸ”‘ 4. λŒ€μ²΄ν‚€ (Alternate Key)

πŸ“Œ 1. μ •μ˜

후보킀 μ€‘μ—μ„œ κΈ°λ³Έν‚€λ‘œ μ„ νƒλ˜μ§€ μ•Šμ€ ν‚€

πŸ“Œ 2. μ˜ˆμ‹œ

ν›„λ³΄ν‚€μ—λŠ” {ν•™λ²ˆ}, {주민번호}κ°€ μžˆλ‹€.
λ§Œμ•½ {ν•™λ²ˆ}을 κΈ°λ³Έν‚€λ‘œ μ„ νƒν•œλ‹€λ©΄, {주민번호}λŠ” λŒ€μ²΄ν‚€κ°€ 됨

 

πŸ”‘ 5. μ™Έλž˜ν‚€ (Foreign Key)

πŸ“Œ 1. μ •μ˜

λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ κΈ°λ³Έν‚€λ₯Ό κ·ΈλŒ€λ‘œ μ°Έμ‘°ν•˜λŠ” ν‚€

πŸ“Œ 2. μ˜ˆμ‹œ

πŸ“Œ 3. νŠΉμ§•

  • NULL κ°€λŠ₯
  • κ°œμ²΄μ™€μ˜ 관계λ₯Ό μ‹λ³„ν•˜λŠ” 데 μ‚¬μš©λœλ‹€.
  • μ™Έλž˜ν‚€λ‘œ μ§€μ •λ˜λ©΄ μ°Έμ‘° ν…Œμ΄λΈ”μ˜ 기본킀에 μ—†λŠ” 값은 μž…λ ₯ν•  수 μ—†λ‹€. (μ°Έμ‘° 무결성 쑰건)
  • 쀑볡 κ°€λŠ₯

 

ν•΄λ‹Ή 글은
00yubin00 λ‹˜μ˜ '[DB] ν‚€μ˜ μ’…λ₯˜, μ΅œμ†Œμ„±κ³Ό μœ μΌμ„±',
Inpa λ‹˜μ˜ '[DB] λ°μ΄ν„°λ² μ΄μŠ€ ν‚€(Key) μ’…λ₯˜ 정리',
Limky λ‹˜μ˜ '[DataBase] ν‚€(Key)의 κ°œλ… 및 μ’…λ₯˜',
Gyoogle λ‹˜μ˜ 'ν‚€(Key)',
주홍철 λ‹˜μ˜ '면접을 μœ„ν•œ CS 전곡지식 λ…ΈνŠΈ'
λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

'πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ > κ°œλ…' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€ (Transaction Isolation Level)  (1) 2023.06.18
νŠΈλžœμž­μ…˜(Transaction)  (0) 2023.06.17
μ„œλΈŒμΏΌλ¦¬(Subquery)  (0) 2023.04.18
쑰인(JOIN)  (0) 2023.04.18
λ·°(VIEW)  (0) 2023.04.17
    'πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€/κ°œλ…' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • νŠΈλžœμž­μ…˜μ˜ 격리 μˆ˜μ€€ (Transaction Isolation Level)
    • νŠΈλžœμž­μ…˜(Transaction)
    • μ„œλΈŒμΏΌλ¦¬(Subquery)
    • 쑰인(JOIN)
    Amenable
    Amenable
    CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”