etc/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

minzhen 2022. 7. 19. 19:48
โ–ผ ์ง€๋‚œ ํฌ์ŠคํŒ… ๋ณด๊ธฐ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ - ์ œ 2๊ณผ๋ชฉ ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ ๊ตฌํ˜„
      1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ์š”
      2. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ E-R ๋ชจ๋ธ
      3. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

2์ฐจ์›์ ์ธ ํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ƒํ˜ธ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • 1970๋…„ IBM์— ๊ทผ๋ฌดํ•˜๋˜ ์ฝ”๋“œ(E.F.Codd)์— ์˜ํ•ด ์ฒ˜์Œ ์ œ์•ˆ๋จ

ํŠน์ง•

  • ์žฅ์  : ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ณด๊ธฐ ํŽธ๋ฆฌํ•˜๋ฉฐ, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ์˜ ๋ณ€ํ™˜์ด ์šฉ์ดํ•จ
  • ๋‹จ์  : ์„ฑ๋Šฅ์ด ๋‹ค์†Œ ๋–จ์–ด์ง

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฆด๋ ˆ์ด์…˜ ๊ตฌ์กฐ

  • Relation(๋ฆด๋ ˆ์ด์…˜) : ๋ฐ์ดํ„ฐ๋“ค์„ ํ‘œ(table)์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์œผ๋กœ, ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ์™€ ์‹ค์ œ ๊ฐ’๋“ค์ธ ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค๋กœ ๊ตฌ์„ฑ๋จ

์ถœ์ฒ˜ : https://liveyourit.tistory.com/213

  • Tuple (ํŠœํ”Œ) : ๊ฐ ํ–‰
  • Cardinality (์นด๋””๋„๋ฆฌํ‹ฐ) : (=๊ธฐ์ˆ˜, ๋Œ€์‘์ˆ˜) ํŠœํ”Œ์˜ ์ˆ˜
  • Attribute (์†์„ฑ) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋…ผ๋ฆฌ์  ๋‹จ์œ„
  • Degree (๋””๊ทธ๋ฆฌ) : (=์ฐจ์ˆ˜) ์†์„ฑ์˜ ์ˆ˜
  • Domain (๋„๋ฉ”์ธ) : ํ•˜๋‚˜์˜ ์†์„ฑ์ด ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ™์€ ํƒ€์ž…์˜ ์›์ž๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ (ex: ‘์„ฑ๋ณ„’ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ๋„๋ฉ”์ธ์€ ‘๋‚จ’, ‘์—ฌ’๋กœ, ๊ทธ ์™ธ์˜ ๊ฐ’์€ ์ž…๋ ฅ๋  ์ˆ˜ ์—†์Œ)

 

๋ฆด๋ ˆ์ด์…˜์˜ ํŠน์ง•

  • ํ•œ ๋ฆด๋ ˆ์ด์…˜์— ๋˜‘๊ฐ™์€ ํŠœํ”Œ์ด ํฌํ•จ๋  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์˜ ํŠœํ”Œ์€ ๋ชจ๋‘ ์ƒ์ดํ•˜๋‹ค.
  • ํ•œ ๋ฆด๋ ˆ์ด์…˜ ์ƒ์˜ ํŠœํ”Œ๋“ค ์‚ฌ์ด์—๋Š” ์ˆœ์„œ๊ฐ€ ์—†๋‹ค.
  • ์†์„ฑ์˜ ์œ ์ผํ•œ ์‹๋ณ„์„ ์œ„ํ•ด ์†์„ฑ์˜ ๋ช…์นญ์€ ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฆด๋ ˆ์ด์…˜์˜ ํŠœํ”Œ๋“ค์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์†์„ฑ๋“ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ key๋กœ ์„ค์ •ํ•œ๋‹ค.
  • ์†์„ฑ์˜ ๊ฐ’์€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋” ์ด์ƒ ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ์›์ž๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.

 

 

โ—
๊ด€๊ณ„ ๋ชจ๋ธ์˜ ํ…Œ์ด๋ธ”์€ Relation ↔ ๊ฐœ์ฒด๊ฐ„์˜ ๊ด€๊ณ„๋Š” Relationship

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

Relational Data Model

: 2์ฐจ์›์ ์ธ ํ‘œ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ์ƒํ˜ธ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” DB๊ตฌ์กฐ

ํŠน์ง•

  • ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
  • Primary Key(๊ธฐ๋ณธ ํ‚ค)์™€ ์ด๋ฅผ ์ฐธ์กฐํ•˜๋Š” Foreign Key(์™ธ๋ž˜ ํ‚ค)๋กœ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•จ
  • ๊ณ„์ธต ๋ชจ๋ธ๊ณผ ๋ง ๋ชจ๋ธ์˜ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๋‹จ์ˆœํ™”์‹œํ‚จ ๋ชจ๋ธ
  • ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์˜ ๋Œ€ํ‘œ์ ์ธ ์–ธ์–ด๋Š” SQL
  • 1:1, 1:N, N:M ๊ด€๊ณ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ œ์•ฝ ์กฐ๊ฑด

1. Key

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ์„ ์ฐพ๊ฑฐ๋‚˜ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•  ๋•Œ ๊ธฐ์ค€์ด ๋˜๋Š” ์†์„ฑ
  • ํ›„๋ณดํ‚ค (Candidate Key) : ์†์„ฑ๋“ค ์ค‘์—์„œ ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ๋“ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ
    • ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ์œ ์ผ์„ฑ(Unique) ๋งŒ์กฑ : ํ•˜๋‚˜์˜ ํ‚ค ๊ฐ’์œผ๋กœ ํ•˜๋‚˜์˜ ํŠœํ”Œ๋งŒ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„
    • ์ตœ์†Œ์„ฑ(Mnimality) ๋งŒ์กฑ : ์†์„ฑ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์—†๋„๋ก, ๊ผญ ํ•„์š”ํ•œ ์ตœ์†Œ์˜ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•จ
  • ๊ธฐ๋ณธํ‚ค (Primary Key) : ํ›„๋ณดํ‚ค ์ค‘์— ํŠน๋ณ„ํžˆ ์„ ์ •๋œ ์ฃผํ‚ค
    • ์ค‘๋ณต๋œ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ
    • NULL ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ
    • ํ•œ ๋ฆด๋ ˆ์ด์…˜์—์„œ ํŠน์ • ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
  • ๋Œ€์ฒดํ‚ค (Alternate Key) : ํ›„๋ณดํ‚ค๊ฐ€ ๋‘˜ ์ด์ƒ์ผ ๋•Œ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํ›„๋ณดํ‚ค (= ๋ณด์กฐํ‚ค)
  • ์Šˆํผํ‚ค (Super Key) : ํ•œ ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์— ์žˆ๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ‚ค
    • ๋ชจ๋“  ํŠœํ”Œ์— ๋Œ€ํ•ด ์œ ์ผ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€๋งŒ, ์ตœ์†Œ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•จ
  • ์™ธ๋ž˜ํ‚ค (Foreign Key) : ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์†์„ฑ ๋˜๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ

 

2. Integrity (๋ฌด๊ฒฐ์„ฑ)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ’๊ณผ ํ˜„์‹ค ์„ธ๊ณ„์˜ ์‹ค์ œ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ์ •ํ™•์„ฑ

๋ฌด๊ฒฐ์„ฑ์˜ ์ข…๋ฅ˜

  • ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ : ๊ธฐ๋ณธ ํ…Œ์ด๋ธ” ๊ธฐ๋ณธํ‚ค์˜ ์–ด๋–ค ์†์„ฑ๋„ NULL๊ฐ’์ด๋‚˜ ์ค‘๋ณต๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ : ์™ธ๋ž˜ํ‚ค ๊ฐ’์€ Null์ด๊ฑฐ๋‚˜ ์ฐธ์กฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค๊ฐ’๊ณผ ๋™์ผํ•ด์•ผ ํ•จ. ์ฆ‰, ๋ฆด๋ ˆ์ด์…˜์€ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ์™ธ๋ž˜ํ‚ค๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ
  • ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ : ์ฃผ์–ด์ง„ ์†์„ฑ ๊ฐ’์ด ์ •์˜๋œ ๋„๋ฉ”์ธ์— ์†ํ•œ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์ •
  • ์‚ฌ์šฉ์ž ์ •์˜ ๋ฌด๊ฒฐ์„ฑ : ์†์„ฑ ๊ฐ’๋“ค์ด ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ์ œ์•ฝ์กฐ๊ฑด์— ๋งŒ์กฑ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์ •
  • NULL ๋ฌด๊ฒฐ์„ฑ : ๋ฆด๋ ˆ์ด์…˜ ํŠน์ • ์†์„ฑ ๊ฐ’์ด NULL์ด ๋  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๊ทœ์ •
  • ๊ณ ์œ  ๋ฌด๊ฒฐ์„ฑ : ๋ฆด๋ ˆ์ด์…˜ ํŠน์ • ์†์„ฑ์— ๋Œ€ํ•ด ๊ฐ ํŠœํ”Œ์ด ๊ฐ–๋Š” ์†์„ฑ๊ฐ’๋“ค์ด ๋ชจ๋‘ ๋‹ฌ๋ผ์•ผ ํ•จ
  • ํ‚ค ๋ฌด๊ฒฐ์„ฑ : ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์ ์–ด๋„ ํ•˜๋‚˜์˜ Key๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•จ
  • ๊ด€๊ณ„ ๋ฌด๊ฒฐ์„ฑ : ๋ฆด๋ ˆ์ด์…˜์— ์–ด๋А ํ•œ ํŠœํ”Œ์˜ ์‚ฝ์ž…๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๋˜๋Š” ๋ฆด๋ ˆ์ด์…˜๊ฐ„์˜ ํŠœํ”Œ๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„์— ๋Œ€ํ•œ ์ ์ ˆ์„ฑ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•œ ๊ทœ์ •

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฐ•ํ™”

  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์€ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ → ๋ฐ์ดํ„ฐ ํŠน์„ฑ์— ๋งž๋Š” ์ ์ •ํ•œ ๋ฌด๊ฒฐ์„ฑ์„ ์ •์˜ํ•˜๊ณ  ๊ฐ•ํ™”ํ•ด์•ผ ํ•จ
  • ๋ฌด๊ฒฐ์„ฑ ๊ฐ•ํ™” ๋ฐฉ๋ฒ• : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋ฆฌ๊ฑฐ, ์ œ์•ฝ ์กฐ๊ฑด