CS 곡뢀

Key의 μ’…λ₯˜ (candidate key, primary key, alternate key, super key, foreign key)

은진 2021. 11. 11. 20:01

Key?

  • λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 쑰건에 λ§Œμ‘±ν•˜λŠ” νŠœν”Œμ„ μ°Ύκ±°λ‚˜ μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•  λ•Œ λ‹€λ₯Έ νŠœν”Œλ“€κ³Ό ꡬ별 ν•  수 μžˆλŠ” μœ μΌν•œ 기쀀이 λ˜λŠ” 속성
  • μœ μΌμ„± : ν•˜λ‚˜μ˜ ν‚€κ°’μœΌλ‘œ νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” μ„±μ§ˆ  --> 각각의 νŠœν”Œμ„ μ„œλ‘œ ꡬ뢄할 수 μžˆμ–΄μ•Ό ν•œλ‹€.
  • μ΅œμ†Œμ„± : ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” 속성듀 쀑 κΌ­ ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ†μ„±λ“€λ‘œλ§Œ ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” μ„±μ§ˆ  --> ꡳ이 없어도 될 속성은 넣지 말자.

 

 

 

μŠˆνΌν‚€ (Super Key) : μœ μΌμ„± O, μ΅œμ†Œμ„± X

  • μœ μΌμ„±μ˜ νŠΉμ„±μ„ λ§Œμ‘±ν•˜λŠ” 속성 λ˜λŠ” μ†μ„±λ“€μ˜ 집합
  • ν•œ λ¦΄λ ˆμ΄μ…˜μ˜ μ†μ„±λ“€μ˜ μ§‘ν•©μœΌλ‘œ κ΅¬μ„±λœ ν‚€
  • λ¦΄λ ˆμ΄μ…˜μ— μžˆλŠ” λͺ¨λ“  νŠœν”Œμ— λŒ€ν•΄ μœ μΌμ„±μ„ λ§Œμ‘±μ‹œν‚¨λ‹€.
  • (아이디) : κ° νŠœν”Œμ„ ꡬ뢄할 수 있음 --> μœ μΌμ„±O
  • (λ‚˜μ΄, 직업, λ“±κΈ‰) : λ‹€λ₯Έ νŠœν”Œκ³Ό μΆ©λΆ„νžˆ 쀑볡될 수 있음 --> μœ μΌμ„±X
  • (아이디, λ‚˜μ΄, 직업, λ“±κΈ‰) : κ° νŠœν”Œμ„ ꡬ뢄할 수 있음 --> μœ μΌμ„±O

 

 

후보킀 (Candidate Key) : μœ μΌμ„± O, μ΅œμ†Œμ„± O

  • μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λͺ¨λ‘ λ§Œμ‘±ν•˜λŠ” 속성 λ˜λŠ” μ†μ„±λ“€μ˜ 집합 (μŠˆνΌν‚€ μ€‘μ—μ„œ μ΅œμ†Œμ„±μ„ 만쑱)
  • λͺ¨λ“  λ¦΄λ ˆμ΄μ…˜μ€ λ°˜λ“œμ‹œ ν•˜λ‚˜ μ΄μƒμ˜ 후보킀λ₯Ό κ°€μ Έμ•Όν•œλ‹€.
  • λ¦΄λ ˆμ΄μ…˜μ— μžˆλŠ” λͺ¨λ“  νŠœν”Œμ— λŒ€ν•΄ μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±μ‹œν‚¨λ‹€.
  • (아이디) : κ° νŠœν”Œμ„ ꡬ뢄할 수 있음 --> μœ μΌμ„±O, λΆˆν•„μš”ν•œ 속성 μ—†μŒ --> μ΅œμ†Œμ„±O
  • (아이디, λ‚˜μ΄, 직업, λ“±κΈ‰) : κ° νŠœν”Œμ„ ꡬ뢄할 수 있음 --> μœ μΌμ„±O, λΆˆν•„μš”ν•œ 속성 있음 --> μ΅œμ†Œμ„±X

 

 

κΈ°λ³Έν‚€ (Primary Key) : 후보킀 쀑 선택받은  ν‚€

  • ν•œ λ¦΄λ ˆμ΄μ…˜μ—μ„œ νŠœν”Œμ„ μœ μΌλ¬΄μ΄ν•˜κ²Œ 식별할 수 μžˆλŠ” μ†μ„±μ΄λ‹€. (항상 κ³ μœ ν•œ 값을 κ°€μ Έμ•Ό ν•œλ‹€.)

κΈ°λ³Έν‚€ 선택기쀀

  • 개체 무결성 : λ¦΄λ ˆμ΄μ…˜μ—μ„œ κΈ°λ³Έν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” 속성은 Null κ°’μ΄λ‚˜ 쀑볡값을 κ°€μ§ˆ 수 μ—†λ‹€. 
  • 값이 자주 변경될 수 μžˆλŠ” 속성이 ν¬ν•¨λœ ν›„λ³΄ν‚€λŠ” κΈ°λ³Έν‚€λ‘œ λΆ€μ μ ˆν•˜λ‹€.
  • λ‹¨μˆœν•œ 후보킀λ₯Ό κΈ°λ³Έν‚€λ‘œ μ„ νƒν•œλ‹€.

 

 

λŒ€μ²΄ν‚€ (Alternate Key) : ν›„보킀 쀑 선택받지 λͺ»ν•œ ν‚€

  • κΈ°λ³Έν‚€ 선택기쀀을 λ§Œμ‘±ν•˜μ§€ λͺ»ν•œ 후보킀

 

 

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

  • λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έν‚€λ₯Ό μ°Έμ‘°ν•˜λŠ” 속성 λ˜λŠ” μ†μ„±μ˜ 집합이 μ™Έλž˜ν‚€μ΄λ‹€.
  • λ¦΄λ ˆμ΄μ…˜ 간에 참쑰관계λ₯Ό ν‘œν˜„
  • 데이터 λ¬΄κ²°μ„±(데이터가 항상 μ •ν™•ν•œ 값을 μœ μ§€ν•˜λŠ” μ„±μ§ˆ)을 μœ„ν•΄ μ™Έλž˜ν‚€κ°€ μ‘΄μž¬ν•œλ‹€. 
  • μ£Όλ¬Έ λ¦΄λ ˆμ΄μ…˜μ˜ μ™Έλž˜ν‚€(주문고객)λŠ” 고객 λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έν‚€(고객 아이디)λ₯Ό μ°Έμ‘°ν•œλ‹€.
  • 고객 (아이디, 이름, λ‚˜μ΄, λ“±κΈ‰, 직업, 적립금)
  • μ£Όλ¬Έ (주문번호주문고객, μ£Όλ¬Έμ œν’ˆ, μˆ˜λŸ‰, 단가, 주문일자)

 

 

 

 

좜처

λ°•μ—°ν˜Έ, https://kosaf04pyh.tistory.com/201