λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’» Computer Science/λ°μ΄ν„°λ² μ΄μŠ€

[λ°μ΄ν„°λ² μ΄μŠ€] Primary Key(κΈ°λ³Έν‚€), Candidate key (후보킀), Alternative key (λŒ€μ²΄ν‚€), Foreign key (μ™Έλž˜ν‚€), Super Key(μŠˆνΌν‚€)λž€?

by Jay Din 2023. 6. 21.
728x90
λ°˜μ‘ν˜•

Relation(= table) μ΄λž€?

λ¦΄λ ˆμ΄μ…˜(Relation)은 λ°μ΄ν„°λ“€μ˜ ν‘œ(Table)의 ν˜•νƒœλ‘œ ν‘œν˜„ν•œ κ²ƒμœΌλ‘œ, ꡬ쑰λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ™€ μ‹€μ œ 값듀인 λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€λ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ ν†΅μƒμ μœΌλ‘œ relationκ³Ό tableμ΄λž€ μš©μ–΄λ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

Relation νŠΉμ§•

  • ν•œ λ¦΄λ ˆμ΄μ…˜μ—λŠ” λ˜‘κ°™μ€ νŠœν”Œμ΄ 포함될 수 μ—†μŒ
  • ν•œ λ¦΄λ ˆμ΄μ…˜μ— ν¬ν•¨λœ νŠœν”Œ μ‚¬μ΄μ—λŠ” μˆœμ„œκ°€ μ—†μŒ
  • νŠœν”Œλ“€μ˜ μ‚½μž…, μ‚­μ œ λ“±μ˜ μž‘μ—…μœΌλ‘œ 인해 λ¦΄λ ˆμ΄μ…˜μ€ μ‹œκ°„μ— 따라 변함
  • λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆλ₯Ό κ΅¬μ„±ν•˜λŠ” 속성듀 κ°„μ˜ μˆœμ„œλŠ” μ€‘μš”ν•˜μ§€ μ•ŠμŒ
  • μ†μ„±μ˜ μœ μΌν•œ 식별을 μœ„ν•΄ μ†μ„±μ˜ λͺ…칭은 μœ μΌν•΄μ•Ό 함. ν•˜μ§€λ§Œ 속성을 κ΅¬μ„±ν•˜λŠ” 값은 λ™μΌν•œ 값이 μžˆμ„ 수 있음
  • λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” νŠœν”Œμ„ μœ μΌν•˜κ²Œ μ‹λ³„ν•˜κΈ° μœ„ν•΄ μ†μ„±λ“€μ˜ 뢀뢄집합을 ν‚€λ‘œ μ„€μ •
  • μ†μ„±μ˜ 값은 λ…Όλ¦¬μ μœΌλ‘œ 더 이상 μͺΌκ°€ 수 μ—†λŠ” μ›μžκ°’λ§Œ μ €μž₯

 

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

κΈ°λ³Έν‚€λŠ” candidate key(후보킀) 쀑 μ„ νƒν•œ main key둜써, κ° rowλ₯Ό uniqueν•˜κ²Œ κ΅¬λΆ„ν•˜λŠ” column(λ˜λŠ” column의 집합)을 λ§ν•©λ‹ˆλ‹€.

κ·Έλž˜μ„œ κΈ°λ³Έν‚€λŠ” Null κ°’κ³Ό μ€‘λ³΅λœ 값을 κ°€μ§ˆ 수 μ—†κ³  tableλ‹Ή 1개만 지정해야 ν•©λ‹ˆλ‹€.

Candidate key 쀑 μ„ νƒν–ˆμœΌλ―€λ‘œ μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•©λ‹ˆλ‹€.

 

728x90

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

λ‹€λ₯Έ table의 Primary key columnκ³Ό μ—°κ²°λ˜λŠ”(μ°Έμ‘°λ˜λŠ”) table의 column을 μ˜λ―Έν•©λ‹ˆλ‹€.

 

Super Key(μŠˆνΌν‚€)

Super Key(μŠˆνΌν‚€)λŠ” 각 rowλ₯Ό μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” ν•˜λ‚˜ λ˜λŠ” κ·Έ μ΄μƒμ˜ μ†μ„±λ“€μ˜ μ§‘ν•©μž…λ‹ˆλ‹€.

μŠˆνΌν‚€λŠ” μœ μΌμ„±λ§Œ λ§Œμ‘±ν•˜λ©΄ μŠˆνΌν‚€κ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

  • μœ μΌμ„±: ν•˜λ‚˜μ˜ key κ°’μœΌλ‘œ νŠΉμ • rowλ§Œμ„ μœ μΌν•˜κ²Œ μ°Ύμ•„λ‚Ό 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • μ˜ˆμ‹œ
    • (ν•™λ²ˆ)
    • (ν•™λ²ˆ, 이름)
    • (ν•™λ²ˆ, 이름, ν•™κ³Ό)
    • (μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ)
    • (μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ, ν•™κ³Ό, 성별)
    • λ“±λ“±

 

Candidate key (후보킀)

Candidate keyλŠ” table을 κ΅¬μ„±ν•˜λŠ” columnλ“€ μ€‘μ—μ„œ μ΅œμ†Œμ„±κ³Ό μœ μΌμ„±μ„ λ§Œμ‘±ν•˜λŠ” column λ˜λŠ” column의 μ§‘ν•©μž…λ‹ˆλ‹€.

즉, primary key둜 μ‚¬μš©ν•  수 μžˆλŠ” column듀을 λ§ν•©λ‹ˆλ‹€.

  • μ΅œμ†Œμ„±: λͺ¨λ“  rowλ₯Ό μœ μΌν•˜κ²Œ μ‹λ³„ν•˜λŠ”λ° κΌ­ ν•„μš”ν•œ μ†μ„±λ§ŒμœΌλ‘œ κ΅¬μ„±λ˜μ–΄μ•Ό ν•œλ‹€.
  • μ˜ˆμ‹œ
    • (ν•™λ²ˆ)
    • (μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ)

 

Alternative key (λŒ€μ²΄ν‚€)

primary keyλ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ candidate key듀을 λ§ν•©λ‹ˆλ‹€.

λŒ€μ²΄ν‚€/보쑰킀라고도 λΆ€λ¦…λ‹ˆλ‹€.

 

λ°˜μ‘ν˜•

 

Composite key (볡합킀)

Composite keyλž€ tableμ—μ„œ 각 rowλ₯Ό 식별할 수 μžˆλŠ” 두 개 μ΄μƒμ˜ column으둜 κ΅¬μ„±λœ candidate keyλ₯Ό λ§ν•©λ‹ˆλ‹€.

 

 

 

 

 

 

728x90
λ°˜μ‘ν˜•